agentic-mermaid 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/README.md +2 -0
  3. package/dist/agent-core.d.ts +2 -2
  4. package/dist/agent-core.js +2 -2
  5. package/dist/agent.d.ts +2 -2
  6. package/dist/agent.js +4 -4
  7. package/dist/agentic-mermaid-mcp.js +5 -5
  8. package/dist/am.js +6 -6
  9. package/dist/browser-lazy/chunks/{architecture-WMSX5L4P.js → architecture-KTHE2HX3.js} +1 -1
  10. package/dist/browser-lazy/chunks/{chunk-EX6TP7QM.js → chunk-2XCPFAD5.js} +2 -2
  11. package/dist/browser-lazy/chunks/{chunk-TDGTBGV3.js → chunk-3H4F7RBT.js} +1 -1
  12. package/dist/browser-lazy/chunks/{chunk-RLS545DI.js → chunk-4EVLW2NJ.js} +1 -1
  13. package/dist/browser-lazy/chunks/{chunk-TEH2PRKN.js → chunk-6OAPWSDO.js} +1 -1
  14. package/dist/browser-lazy/chunks/{chunk-AOCFMYYH.js → chunk-C7FJO2I3.js} +1 -1
  15. package/dist/browser-lazy/chunks/{chunk-ZZECLXC3.js → chunk-D3XXDKIO.js} +1 -1
  16. package/dist/browser-lazy/chunks/{chunk-CCTZFX43.js → chunk-DXA5WL7H.js} +1 -1
  17. package/dist/browser-lazy/chunks/{chunk-TBZAU7KC.js → chunk-G6OLSHRG.js} +1 -1
  18. package/dist/browser-lazy/chunks/{chunk-QYJMRNS3.js → chunk-L227EPFP.js} +1 -1
  19. package/dist/browser-lazy/chunks/{chunk-QMZ4Y6I7.js → chunk-LNIHDJSF.js} +1 -1
  20. package/dist/browser-lazy/chunks/{chunk-EBPTM2RP.js → chunk-NZRUMODH.js} +1 -1
  21. package/dist/browser-lazy/chunks/{chunk-ANTNEVJC.js → chunk-PXKL3O6H.js} +1 -1
  22. package/dist/browser-lazy/chunks/{chunk-WN7SFUCZ.js → chunk-SUFMSWTX.js} +1 -1
  23. package/dist/browser-lazy/chunks/{chunk-32FWKUUV.js → chunk-UAEZO5VL.js} +1 -1
  24. package/dist/browser-lazy/chunks/{chunk-W6Q4PHPC.js → chunk-X64T74C5.js} +1 -1
  25. package/dist/browser-lazy/chunks/{class-7JRALQIM.js → class-F7R6TJ73.js} +1 -1
  26. package/dist/browser-lazy/chunks/{er-UDCGHKBX.js → er-BDK7CM5L.js} +1 -1
  27. package/dist/browser-lazy/chunks/{flowchart-5FP7RRIK.js → flowchart-KFU6XV7S.js} +1 -1
  28. package/dist/browser-lazy/chunks/{gantt-NTOIC5CW.js → gantt-I64VVDSP.js} +1 -1
  29. package/dist/browser-lazy/chunks/{gitgraph-JYAPXUIJ.js → gitgraph-EDUVJ5IJ.js} +1 -1
  30. package/dist/browser-lazy/chunks/{journey-646EFIB6.js → journey-TLO2RNM3.js} +1 -1
  31. package/dist/browser-lazy/chunks/{mindmap-2SBTQHQO.js → mindmap-OJCNDYPM.js} +1 -1
  32. package/dist/browser-lazy/chunks/{pie-7FDXZ24K.js → pie-HVG6XO7K.js} +1 -1
  33. package/dist/browser-lazy/chunks/{quadrant-72UT4XAW.js → quadrant-U6S2L4MJ.js} +1 -1
  34. package/dist/browser-lazy/chunks/{radar-SU7BO56J.js → radar-ZDLOBTVG.js} +1 -1
  35. package/dist/browser-lazy/chunks/{render-core-Q2JWXDDL.js → render-core-Y2DFNMQG.js} +1 -1
  36. package/dist/browser-lazy/chunks/{sequence-5O5ET264.js → sequence-Z4WFS3VB.js} +1 -1
  37. package/dist/browser-lazy/chunks/{state-IWPLFQ6R.js → state-2HV2YGN3.js} +1 -1
  38. package/dist/browser-lazy/chunks/{timeline-WJWYHH5Y.js → timeline-XM4UFPOC.js} +1 -1
  39. package/dist/browser-lazy/chunks/{xychart-HHQVQA5O.js → xychart-7JDHWTQY.js} +1 -1
  40. package/dist/browser-lazy/index.js +1 -1
  41. package/dist/browser.global.js +5 -5
  42. package/dist/{chunk-NE6JBHSE.js → chunk-GGXCNCNA.js} +39 -44
  43. package/dist/{chunk-YWKCUBQN.js → chunk-IVD4NXNE.js} +2 -2
  44. package/dist/{chunk-IVN6KP3W.js → chunk-JDMRPUAG.js} +2 -2
  45. package/dist/{chunk-R5U67OIW.js → chunk-JWAAW3FH.js} +4 -4
  46. package/dist/{chunk-3D4EHVQ4.js → chunk-LCGBT32P.js} +7 -7
  47. package/dist/{chunk-GX7UT56Q.js → chunk-RWMZRUIC.js} +2 -2
  48. package/dist/{index-BFg_LoZS.d.ts → index-BGA_-6LV.d.ts} +1 -1
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.js +1 -1
  51. package/dist/mcp-cli-4MLKC3ZH.js +17 -0
  52. package/docs/MCP-DIRECTORY-LISTINGS.md +72 -0
  53. package/docs/MCP-PRIVACY.md +52 -0
  54. package/docs/style-authoring.md +1 -1
  55. package/package.json +12 -1
  56. package/server.json +2 -2
  57. package/skills/agentic-mermaid-diagram-workflow/SKILL.md +64 -1
  58. package/skills/agentic-mermaid-diagram-workflow/references/hosted-mcp.md +110 -0
  59. package/dist/mcp-cli-XGZP6CMW.js +0 -17
@@ -1,4 +1,4 @@
1
- import{a as ne}from"./chunk-5Q4S74UO.js";import{g as I}from"./chunk-EBPTM2RP.js";import{a as q}from"./chunk-M6BT2HIP.js";import{e as A,g as R,h as W,j as L,k as N}from"./chunk-32FWKUUV.js";import{G as Q,H as O,I as G,N as X,O as p,P as z,Q as K,ea as U,fa as Y,i as E,ia as C,ja as T,ka as P,la as _,na as J,oa as ee,pa as v,qa as te,v as V,xa as re,y as Z,z as B}from"./chunk-EX6TP7QM.js";function Je(e){let{positioned:s,colors:n,resolved:o}=e,t=o.renderOptions,r=n.font??"Inter",i=t.transparent??!1,$=[],c=o.familyAppearance?.visual??t.stateVisual,a=N(t,c?.styleDefaults,o.styleFace);$.push(te({id:"prelude",width:s.width,height:s.height,colors:n,transparent:i,font:r,hasMonoFont:!1},G(s.width,s.height,n,i)+`
1
+ import{a as ne}from"./chunk-5Q4S74UO.js";import{g as I}from"./chunk-NZRUMODH.js";import{a as q}from"./chunk-M6BT2HIP.js";import{e as A,g as R,h as W,j as L,k as N}from"./chunk-UAEZO5VL.js";import{G as Q,H as O,I as G,N as X,O as p,P as z,Q as K,ea as U,fa as Y,i as E,ia as C,ja as T,ka as P,la as _,na as J,oa as ee,pa as v,qa as te,v as V,xa as re,y as Z,z as B}from"./chunk-2XCPFAD5.js";function Je(e){let{positioned:s,colors:n,resolved:o}=e,t=o.renderOptions,r=n.font??"Inter",i=t.transparent??!1,$=[],c=o.familyAppearance?.visual??t.stateVisual,a=N(t,c?.styleDefaults,o.styleFace);$.push(te({id:"prelude",width:s.width,height:s.height,colors:n,transparent:i,font:r,hasMonoFont:!1},G(s.width,s.height,n,i)+`
2
2
  `+O(r,!1,n.shadow,n.embedFontImport)));let d=[];d.push("<defs>");let l=Q(n);l&&d.push(l);let h=new Set;a.edgeStrokeColor&&h.add(a.edgeStrokeColor);let u=!1,f=!1;for(let m of s.edges)m.inlineStyle?.stroke&&h.add(m.inlineStyle.stroke),(m.startMarker==="circle"||m.endMarker==="circle")&&(u=!0),(m.startMarker==="cross"||m.endMarker==="cross")&&(f=!0);let g=pe(h,u,f);d.splice(1,0,re(g)),d.push("</defs>"),$.push(J({id:"defs",markerResources:g},d.join(`
3
3
  `)));for(let m of s.groups)$.push(j(m,r,a));let x=new Map,S=new Map;for(let m of s.edges){if(m.points.length<2)continue;let y=`${m.source}->${m.target}`,k=x.get(y)??0;x.set(y,k+1);let b=`edge:${y}#${k}`;S.set(m,b),$.push(fe(m,a,b,g))}for(let m of s.edges){let y=S.get(m);m.label&&y&&$.push(ke(m,r,a,he(y)))}for(let m of s.nodes)$.push(be(m,r,a,t.security!=="strict"));for(let m of s.notes??[])$.push(ge(m,r,a));return $.push(ee()),{family:"flowchart",width:s.width,height:s.height,colors:n,transparent:i,parts:$}}function oe(e){let s=R.width,n=R.height,o=s-1,t=e??"var(--_arrow)",r=e?`-${H(e)}`:"",i={fill:t,stroke:t,strokeWidth:"0.75",strokeLinejoin:"round"};return[{id:`arrowhead${r}`,shape:"arrow",size:{width:s,height:n},ref:{x:o,y:n/2},orient:"auto",geometry:{kind:"polygon",points:[{x:0,y:0},{x:s,y:n/2},{x:0,y:n}]},paint:i},{id:`arrowhead-start${r}`,shape:"arrow",size:{width:s,height:n},ref:{x:1,y:n/2},orient:"auto",geometry:{kind:"polygon",points:[{x:s,y:0},{x:0,y:n/2},{x:s,y:n}]},paint:i}]}function ie(e){let s=R.width,n=e?`-${H(e)}`:"",o=e??"var(--_arrow)",t=s/2-.75,r={shape:"circle",size:{width:s,height:s},orient:"auto",geometry:{kind:"circle",cx:s/2,cy:s/2,r:t},paint:{fill:"none",stroke:o,strokeWidth:"1"}};return[{...r,id:`circlehead${n}`,ref:{x:s-.5,y:s/2}},{...r,id:`circlehead-start${n}`,ref:{x:.5,y:s/2}}]}function se(e){let s=R.width,n=e?`-${H(e)}`:"",o=e??"var(--_arrow)",t=1.25,r=t,i=s-t,$={shape:"cross",size:{width:s,height:s},orient:"auto",geometry:{kind:"compound",children:[{kind:"line",x1:r,y1:r,x2:i,y2:i},{kind:"line",x1:r,y1:i,x2:i,y2:r}]},paint:{stroke:o,strokeWidth:"1.25",strokeLinecap:"round"}};return[{...$,id:`crosshead${n}`,ref:{x:i,y:s/2}},{...$,id:`crosshead-start${n}`,ref:{x:t,y:s/2}}]}function pe(e,s,n){let o=[...oe()];s&&o.push(...ie()),n&&o.push(...se());for(let t of e)o.push(...oe(t)),s&&o.push(...ie(t)),n&&o.push(...se(t));return o}function ae(e){return e==="circle"?"circlehead":e==="cross"?"crosshead":"arrowhead"}function H(e){return e.replace(/[^a-zA-Z0-9]/g,s=>s.charCodeAt(0).toString(16))}function j(e,s,n,o){if(e.concurrencyRegion)return v({id:`group:${e.id}`,role:"group",open:`<g class="concurrency-region" data-id="${p(e.id)}"${o?` data-parent-id="${p(o)}"`:""}>`,close:"</g>",children:e.children.map(u=>({indent:0,node:j(u,s,n,e.id)}))});let t=n.groupHeaderFontSize+16,r=[],i=`<g class="subgraph" data-id="${p(e.id)}" data-region="subgraph" data-label="${p(e.label)}"${o?` data-parent-id="${p(o)}"`:""}>`,$=n.groupFillColor??"var(--_group-fill)",c=n.groupBorderColor??"var(--_node-stroke)";r.push({indent:2,node:C({id:`group-rect:${e.id}`,role:"group",geometry:{kind:"rect",x:e.x,y:e.y,width:e.width,height:e.height,rx:n.groupCornerRadius,ry:n.groupCornerRadius},paint:{fill:$,stroke:c,strokeWidth:String(n.groupLineWidth)}},`<rect x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="${n.groupCornerRadius}" ry="${n.groupCornerRadius}" fill="${p($)}" stroke="${p(c)}" stroke-width="${n.groupLineWidth}" />`)});let a=n.groupHeaderFillColor??"var(--_group-hdr)",d=q(e.x,e.y,e.width,t,n.groupCornerRadius);r.push({indent:2,node:C({id:`group-header:${e.id}`,role:"group-header",geometry:{kind:"path",d},paint:{fill:a,stroke:c,strokeWidth:String(n.groupLineWidth)}},`<path d="${d}" fill="${p(a)}" stroke="${p(c)}" stroke-width="${n.groupLineWidth}" />`)});let l=L(e.label,n.groupTextTransform),h=n.groupTextColor??"var(--_text-sec)";r.push({indent:2,node:P({id:`group-label:${e.id}`,role:"group-header",text:l,x:e.x+n.groupLabelPaddingX,y:e.y+t/2,fontSize:n.groupHeaderFontSize,anchor:"start",paint:{fill:h}},z(l,e.x+n.groupLabelPaddingX,e.y+t/2,n.groupHeaderFontSize,`font-size="${n.groupHeaderFontSize}" font-weight="${n.groupHeaderFontWeight}"${n.groupFont?` font-family="${p(n.groupFont)}"`:""}${n.groupLetterSpacing!==0?` letter-spacing="${n.groupLetterSpacing}"`:""} fill="${p(h)}"`))});for(let u of me(e,t))r.push({indent:2,node:C({id:`region-separator:${e.id}:${u.index}`,role:"group",geometry:{kind:"line",x1:u.x1,y1:u.y1,x2:u.x2,y2:u.y2},paint:{stroke:c,strokeWidth:String(n.groupLineWidth),strokeDasharray:"6 4"}},`<line class="region-separator" x1="${u.x1}" y1="${u.y1}" x2="${u.x2}" y2="${u.y2}" stroke="${p(c)}" stroke-width="${n.groupLineWidth}" stroke-dasharray="6 4" />`)});for(let u of e.children)r.push({indent:0,node:j(u,s,n,e.id)});return v({id:`group:${e.id}`,role:"group",open:i,close:"</g>",children:r})}function me(e,s){let n=e.children.filter(c=>c.concurrencyRegion);if(n.length<2)return[];let o=c=>Math.max(...n.map(c))-Math.min(...n.map(c)),t=o(c=>c.x+c.width/2)>=o(c=>c.y+c.height/2),r=[...n].sort((c,a)=>t?c.x-a.x:c.y-a.y),i=4,$=[];for(let c=1;c<r.length;c++){let a=r[c-1],d=r[c];if(t){let l=(a.x+a.width+d.x)/2;$.push({index:c-1,x1:l,y1:e.y+s+i,x2:l,y2:e.y+e.height-i})}else{let l=(a.y+a.height+d.y)/2;$.push({index:c-1,x1:e.x+i,y1:l,x2:e.x+e.width-i,y2:l})}}return $}function ge(e,s,n){let{x:o,y:t,width:r,height:i}=e,$=n.groupHeaderFillColor??"var(--_group-hdr)",c=n.groupBorderColor??"var(--_node-stroke)",a=n.edgeTextColor??"var(--_text-sec)",d=L(e.text,n.nodeTextTransform),l=`state-note:${e.id}`;return v({id:l,role:"note",open:`<g class="state-note" data-id="${p(e.id)}" data-target="${p(e.target)}" data-side="${e.side}">`,close:"</g>",children:[{indent:2,node:C({id:`${l}:rect`,role:"note",geometry:{kind:"rect",x:o,y:t,width:r,height:i,rx:4,ry:4},paint:{fill:$,stroke:c,strokeWidth:String(A.innerBox)}},`<rect x="${o}" y="${t}" width="${r}" height="${i}" rx="4" ry="4" fill="${p($)}" stroke="${p(c)}" stroke-width="${A.innerBox}" />`)},{indent:2,node:P({id:`${l}:text`,role:"label",text:d,x:o+r/2,y:t+i/2,fontSize:n.edgeLabelFontSize,anchor:"middle",paint:{fill:a}},z(d,o+r/2,t+i/2,n.edgeLabelFontSize,`text-anchor="middle" font-size="${n.edgeLabelFontSize}" font-weight="${n.edgeLabelFontWeight}"${n.edgeLetterSpacing!==0?` letter-spacing="${n.edgeLetterSpacing}"`:""} fill="${p(a)}"`))}]})}function fe(e,s,n,o){let t=e.style==="dotted"?"dotted":e.style==="thick"?"thick":e.style==="invisible"?"invisible":"solid",r=he(n),i=e.labelPosition??ue(e.points),$=s.edgeTextColor??"var(--_text-sec)",c=e.label?[{id:`${n}:label`,text:e.label,anchor:i,paint:{fill:$},fontSize:s.edgeLabelFontSize,textAnchor:"middle",visual:{kind:"companion",markId:`${r}:text`}}]:[],a={identity:{id:e.id??n},endpoints:{from:e.source,to:e.target},relationship:{kind:"flowchart-edge",direction:e.source===e.target?"self":e.hasArrowStart&&e.hasArrowEnd?"bidirectional":e.hasArrowStart?"reverse":e.hasArrowEnd?"forward":"undirected"},route:{ownership:"layout",bendRadius:s.edgeBendRadius,labelAnchors:e.labelPosition?[e.labelPosition]:[]},labels:c};if(e.style==="invisible")return T({id:n,role:"edge",geometry:{kind:"polyline",points:e.points},lineStyle:"invisible",paint:{},...a},"");let d=e.curve?xe(e.points):s.edgeBendRadius>0?Y(e.points,s.edgeBendRadius,{precision:3}):void 0,l=d?.geometry.d??ye(e.points),h=e.style==="dotted"?`${W.dash} ${W.gap}`:e.animate?"8 4":void 0,u=h?` stroke-dasharray="${h}"`:"",f=e.style==="thick"?s.lineWidth*2:s.lineWidth,g=e.inlineStyle?.stroke??s.edgeStrokeColor,x=p(g??"var(--_line)"),S=p(e.inlineStyle?.["stroke-width"]??String(f)),m=g?`-${H(g)}`:"",y="",k,b;if(e.hasArrowEnd){let M=ae(e.endMarker??"arrow");if(k=o.find(F=>F.id===`${M}${m}`),!k)throw new Error(`Missing marker resource "${M}${m}"`);y+=` marker-end="url(#${M}${m})"`}if(e.hasArrowStart){let M=ae(e.startMarker??"arrow");if(b=o.find(F=>F.id===`${M}-start${m}`),!b)throw new Error(`Missing marker resource "${M}-start${m}"`);y+=` marker-start="url(#${M}-start${m})"`}let w=['class="edge"',...e.id?[`data-id="${p(e.id)}"`]:[],`data-from="${p(e.source)}"`,`data-to="${p(e.target)}"`,`data-style="${e.style}"`,`data-arrow-start="${e.hasArrowStart}"`,`data-arrow-end="${e.hasArrowEnd}"`];e.hasArrowStart&&w.push(`data-marker-start="${e.startMarker??"arrow"}"`),e.hasArrowEnd&&w.push(`data-marker-end="${e.endMarker??"arrow"}"`),e.label&&w.push(`data-label="${p(e.label)}"`),e.curve&&w.push(`data-curve="${p(e.curve)}"`),e.animate&&w.push('data-animate="true"',`data-animation="${e.animation??"slow"}"`);let D={stroke:g??"var(--_line)",strokeWidth:e.inlineStyle?.["stroke-width"]??String(f),...h?{strokeDasharray:h}:{}};if(s.edgeBendRadius>0||e.curve){if(!d)throw new Error(`Missing path projection for flowchart edge "${n}"`);return T({id:n,role:"edge",geometry:d.geometry,lineStyle:t,paint:D,markers:{...b?{start:b}:{},mid:[],...k?{end:k}:{}},...a,route:{...a.route,contours:d.contours}},`<path ${w.join(" ")} d="${l}" fill="none" stroke="${x}" stroke-width="${S}"${u}${y} />`)}return T({id:n,role:"edge",geometry:{kind:"polyline",points:e.points},lineStyle:t,paint:D,markers:{...b?{start:b}:{},mid:[],...k?{end:k}:{}},...a},`<polyline ${w.join(" ")} points="${l}" fill="none" stroke="${x}" stroke-width="${S}"${u}${y} />`)}function he(e){return e.startsWith("edge:")?`edge-label:${e.slice(5)}`:`${e}:label`}function xe(e){let s=e[0],n=`M ${s.x} ${s.y}`,o=[];for(let t=1;t<e.length;t++){let r=e[t-1],i=e[t],$=(r.x+i.x)/2;n+=` C ${$} ${r.y}, ${$} ${i.y}, ${i.x} ${i.y}`,o.push({kind:"cubic",control1:{x:$,y:r.y},control2:{x:$,y:i.y},end:i})}return U(n,s,o)}function ye(e){return e.map(s=>`${s.x},${s.y}`).join(" ")}function et(e){let s=/<((?:[A-Za-z_][\w.-]*:)?(?:style|text|title|desc|metadata))\b[\s\S]*?<\/\1>/gi,n=[],o=0,t;for(;(t=s.exec(e))!==null;)t.index>o&&n.push({kind:"plain",text:e.slice(o,t.index)}),n.push({kind:"protected",text:t[0]}),o=t.index+t[0].length;return o<e.length&&n.push({kind:"plain",text:e.slice(o)}),n.map(r=>r.kind==="protected"?r.text:r.text.replace(/>\s*\r?\n\s*</g,"><")).join("")}function tt(e,s){if(!/^[A-Za-z0-9_.:-]+$/.test(s))throw new Error("idPrefix must be non-empty and contain only ASCII letters, digits, underscore, hyphen, dot, and colon");let n=new Set;for(let r of V(e))for(let i of r.attributes)i.name==="id"&&n.add(i.value);let o=r=>r.startsWith(s)?r:`${s}${r}`,t=Z(e,r=>{if(r.name==="id")return o(r.value);if(r.name==="aria-labelledby"||r.name==="aria-describedby")return r.value.split(/\s+/).map(i=>n.has(i)?o(i):i).join(" ");if((r.name==="href"||r.name==="xlink:href")&&r.value.startsWith("#")){let i=r.value.slice(1);return n.has(i)?`#${o(i)}`:r.value}});return B(t,r=>r.replace(/url\(#([^)]+)\)/g,(i,$)=>n.has($)?`url(#${o($)})`:i))}function ke(e,s,n,o){let t=e.labelPosition??ue(e.points),r=L(e.label,n.edgeTextTransform),i=8,$=e.style==="thick"?n.lineWidth*2:n.lineWidth,c=i+Math.max(4,$*2),a=E(r,n.edgeLabelFontSize,n.edgeLabelFontWeight),d=a.width+c*2,l=a.height+c*2,h=t.x-d/2,u=t.y-l/2,f=C({id:`${o}:halo`,role:"chrome",geometry:{kind:"rect",x:h,y:u,width:d,height:l,rx:4,ry:4},paint:{fill:"var(--bg)",stroke:"none"}},`<rect class="edge-label-halo" x="${h}" y="${u}" width="${d}" height="${l}" rx="4" ry="4" fill="var(--bg)" stroke="none" />`),g=n.edgeTextColor??"var(--_text-sec)",x=P({id:`${o}:text`,role:"label",text:r,x:t.x,y:t.y,fontSize:n.edgeLabelFontSize,anchor:"middle",paint:{fill:g}},K(r,t.x,t.y,a.width,a.height,n.edgeLabelFontSize,i,`text-anchor="middle" font-size="${n.edgeLabelFontSize}" font-weight="${n.edgeLabelFontWeight}"${n.edgeLetterSpacing!==0?` letter-spacing="${n.edgeLetterSpacing}"`:""} fill="${p(g)}"`,'rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="1"'));return v({id:o,role:"edge-label",open:`<g class="edge-label" data-from="${p(e.source)}" data-to="${p(e.target)}" data-label="${p(e.label)}">`,close:"</g>",children:[{indent:2,node:f},{indent:2,node:x}]})}function ue(e){if(e.length===0)return{x:0,y:0};if(e.length===1)return e[0];let s=0;for(let o=1;o<e.length;o++)s+=ce(e[o-1],e[o]);let n=s/2;for(let o=1;o<e.length;o++){let t=ce(e[o-1],e[o]);if(n<=t){let r=n/t;return{x:e[o-1].x+r*(e[o].x-e[o-1].x),y:e[o-1].y+r*(e[o].y-e[o-1].y)}}n-=t}return e[e.length-1]}function ce(e,s){return Math.sqrt((s.x-e.x)**2+(s.y-e.y)**2)}function be(e,s,n,o){let t=Me(e,n),r=Ee(e,s,n),$=["node",...(e.classNames??[]).map(u=>u.replace(/[^A-Za-z0-9_-]/g,"")).filter(Boolean)].join(" "),c=e.shape==="state-start"?{status:"start"}:e.shape==="state-end"?{status:"end"}:void 0,a=[{indent:2,node:t}],d=we(e,n);d&&a.push({indent:2,node:d}),r&&a.push({indent:2,node:r});let l=e.semanticShape?` data-semantic-shape="${p(e.semanticShape)}"`:"",h=o&&e.href?` data-href="${p(e.href)}" role="link" tabindex="0"`:"";return v({id:`node:${e.id}`,role:"node",open:`<g class="${$}" data-id="${p(e.id)}" data-label="${p(e.label)}" data-shape="${e.shape}"${l}${h}>`,close:"</g>",children:a,channels:c})}function Se(e,s,n,o){let{x:t,y:r,width:i,height:$}=e,c=t+i,a=r+$,d=t+i/2,l=r+$/2,h=(f,g="")=>({geometry:{kind:"path",d:f},crisp:`<path d="${f}" fill="${g.includes('fill="none"')?"none":s}" stroke="${n}" stroke-width="${o}" />`}),u=f=>({geometry:{kind:"polygon",points:f},crisp:`<polygon points="${f.map(g=>`${g.x},${g.y}`).join(" ")}" fill="${s}" stroke="${n}" stroke-width="${o}" />`});switch(e.semanticShape){case"bang":{let f=Array.from({length:16},(g,x)=>{let S=-Math.PI/2+x*Math.PI/8,m=x%2===0?1:.62;return{x:d+Math.cos(S)*i/2*m,y:l+Math.sin(S)*$/2*m}});return u(f)}case"notch-rect":return u([{x:t+10,y:r},{x:c,y:r},{x:c,y:a},{x:t,y:a},{x:t,y:r+10}]);case"cloud":return h(`M${t+i*.18} ${a}C${t-4} ${a} ${t-4} ${l} ${t+i*.12} ${l}C${t+i*.08} ${r+$*.15} ${t+i*.38} ${r-4} ${t+i*.48} ${r+$*.18}C${t+i*.65} ${r-5} ${c} ${r+$*.16} ${t+i*.88} ${l}C${c+5} ${l} ${c+5} ${a} ${t+i*.72} ${a}Z`);case"hourglass":return u([{x:t,y:r},{x:c,y:r},{x:t+i*.62,y:l},{x:c,y:a},{x:t,y:a},{x:t+i*.38,y:l}]);case"bolt":return u([{x:t+i*.55,y:r},{x:t+i*.25,y:l},{x:t+i*.48,y:l},{x:t+i*.35,y:a},{x:t+i*.78,y:r+$*.4},{x:t+i*.55,y:r+$*.4}]);case"brace":return h(`M${c} ${r}C${t+i*.4} ${r} ${t+i*.7} ${l} ${t} ${l}C${t+i*.7} ${l} ${t+i*.4} ${a} ${c} ${a}`,' fill="none"');case"brace-r":return h(`M${t} ${r}C${t+i*.6} ${r} ${t+i*.3} ${l} ${c} ${l}C${t+i*.3} ${l} ${t+i*.6} ${a} ${t} ${a}`,' fill="none"');case"braces":return h(`M${t+i*.25} ${r}C${t} ${r} ${t+i*.15} ${l} ${t} ${l}C${t+i*.15} ${l} ${t} ${a} ${t+i*.25} ${a}M${t+i*.75} ${r}C${c} ${r} ${t+i*.85} ${l} ${c} ${l}C${t+i*.85} ${l} ${c} ${a} ${t+i*.75} ${a}`,' fill="none"');case"datastore":return h(`M${t+8} ${r}H${c}V${a}H${t+8}M${t+8} ${r}C${t-2} ${r+$*.2} ${t-2} ${a-$*.2} ${t+8} ${a}`,' fill="none"');case"delay":return h(`M${t} ${r}H${c-$/2}A${$/2} ${$/2} 0 0 1 ${c-$/2} ${a}H${t}Z`);case"h-cyl":return h(`M${t+10} ${r}H${c-10}A10 ${$/2} 0 0 1 ${c-10} ${a}H${t+10}A10 ${$/2} 0 0 1 ${t+10} ${r}Z M${c-10} ${r}A10 ${$/2} 0 0 0 ${c-10} ${a}`);case"lin-cyl":return h(`M${t} ${r+8}A${i/2} 8 0 0 1 ${c} ${r+8}V${a-8}A${i/2} 8 0 0 1 ${t} ${a-8}Z M${t} ${r+8}A${i/2} 8 0 0 0 ${c} ${r+8}M${t} ${a-16}A${i/2} 8 0 0 0 ${c} ${a-16}`);case"curv-trap":return h(`M${t+12} ${r}Q${d} ${r+8} ${c-12} ${r}L${c} ${a}Q${d} ${a-8} ${t} ${a}Z`);case"div-rect":return h(`M${t} ${r}H${c}V${a}H${t}ZM${t} ${l}H${c}`);case"doc":return h(`M${t} ${r}H${c}V${a-8}Q${t+i*.75} ${a+2} ${d} ${a-8}Q${t+i*.25} ${a-18} ${t} ${a-8}Z`);case"tri":return u([{x:d,y:r},{x:c,y:a},{x:t,y:a}]);case"fork":return{geometry:{kind:"rect",x:t,y:l-4,width:i,height:8},crisp:`<rect x="${t}" y="${l-4}" width="${i}" height="8" fill="${n}" stroke="${n}" stroke-width="${o}" />`};case"win-pane":return h(`M${t} ${r}H${c}V${a}H${t}ZM${t+i*.28} ${r}V${a}M${t} ${r+$*.32}H${c}`);case"f-circ":return{geometry:{kind:"circle",cx:d,cy:l,r:Math.min(i,$)/2},crisp:`<circle cx="${d}" cy="${l}" r="${Math.min(i,$)/2}" fill="${n}" stroke="${n}" stroke-width="${o}" />`};case"lin-doc":return h(`M${t} ${r}H${c}V${a-8}Q${t+i*.75} ${a+2} ${d} ${a-8}Q${t+i*.25} ${a-18} ${t} ${a-8}ZM${t+8} ${r+8}H${c-8}`);case"lin-rect":return h(`M${t} ${r}H${c}V${a}H${t}ZM${t+6} ${r}V${a}M${c-6} ${r}V${a}`);case"notch-pent":return u([{x:t,y:r},{x:c-10,y:r},{x:c,y:l},{x:c-10,y:a},{x:t,y:a},{x:t+8,y:l}]);case"flip-tri":return u([{x:t,y:r},{x:c,y:r},{x:d,y:a}]);case"docs":return h(`M${t+8} ${r}H${c}V${a-8}Q${t+i*.7} ${a} ${t+i*.45} ${a-8}Q${t+i*.22} ${a-16} ${t+8} ${a-8}ZM${t} ${r+8}H${t+8}M${t} ${r+8}V${a}`);case"st-rect":return h(`M${t+8} ${r}H${c}V${a-8}H${t+8}ZM${t} ${r+8}H${c-8}V${a}H${t}Z`);case"flag":return h(`M${t} ${r+6}Q${t+i*.25} ${r-4} ${d} ${r+6}Q${t+i*.75} ${r+16} ${c} ${r+6}V${a-6}Q${t+i*.75} ${a+4} ${d} ${a-6}Q${t+i*.25} ${a-16} ${t} ${a-6}Z`);case"sm-circ":return{geometry:{kind:"circle",cx:d,cy:l,r:Math.min(i,$)*.22},crisp:`<circle cx="${d}" cy="${l}" r="${Math.min(i,$)*.22}" fill="${s}" stroke="${n}" stroke-width="${o}" />`};case"cross-circ":return h(`M${d} ${r}A${i/2} ${$/2} 0 1 1 ${d-.01} ${r}M${t+i*.28} ${r+$*.28}L${t+i*.72} ${r+$*.72}M${t+i*.72} ${r+$*.28}L${t+i*.28} ${r+$*.72}`);case"bow-rect":return h(`M${t} ${r}Q${t+12} ${l} ${t} ${a}H${c}Q${c-12} ${l} ${c} ${r}Z`);case"tag-doc":return h(`M${t+10} ${r}H${c}V${a-8}Q${t+i*.7} ${a} ${d} ${a-8}Q${t+i*.25} ${a-16} ${t} ${a-8}V${r+10}ZM${t} ${r+10}L${t+10} ${r}`);case"tag-rect":return u([{x:t+10,y:r},{x:c,y:r},{x:c,y:a},{x:t,y:a},{x:t,y:r+10}]);case"text":return{geometry:{kind:"path",d:`M${t} ${r}`},crisp:`<path d="M${t} ${r}" fill="none" stroke="none" />`};default:return null}}function we(e,s){let n=p(s.nodeTextColor??"var(--_text)"),o=Math.min(28,e.height*.4),t=e.x+e.width/2,r=e.y+6;if(e.icon){let i=ne(e.icon);if(i){let c=o/24,a=i.paths.map(d=>`<path d="${d}"/>`).join("");return _({id:`node:${e.id}:icon`,role:"icon"},`<g class="flowchart-icon" data-icon="${p(e.icon)}" transform="translate(${t-o/2} ${r}) scale(${c})" fill="${n}" stroke="${n}" stroke-width="0.8">${a}</g>`)}let $=e.icon.split(/[:/\s-]+/).filter(Boolean).at(-1)?.slice(0,2).toUpperCase()||"?";return P({id:`node:${e.id}:icon`,role:"icon",text:$,x:t,y:r+o/2,fontSize:10,anchor:"middle",paint:{fill:n}},`<text class="flowchart-icon-fallback" data-icon="${p(e.icon)}" x="${t}" y="${r+o/2}" text-anchor="middle" font-size="10" fill="${n}">${X($)}</text>`)}if(e.image){let i=t-o/2;return _({id:`node:${e.id}:image`,role:"icon"},`<g class="flowchart-image-placeholder" data-image-src="${p(e.image)}" fill="none" stroke="${n}" stroke-width="1.2"><rect x="${i}" y="${r}" width="${o}" height="${o*.72}" rx="2"/><circle cx="${i+o*.72}" cy="${r+o*.2}" r="${o*.08}"/><path d="M${i+2} ${r+o*.66}L${i+o*.36} ${r+o*.36}L${i+o*.52} ${r+o*.5}L${i+o*.7} ${r+o*.32}L${i+o-2} ${r+o*.66}"/></g>`)}return null}function Me(e,s){let{x:n,y:o,width:t,height:r,shape:i,inlineStyle:$}=e,c=$?.fill??s.nodeFillColor??"var(--_node-fill)",a=$?.stroke??s.nodeBorderColor??"var(--_node-stroke)",d=$?.["stroke-width"]??String(s.nodeLineWidth),l=p(c),h=p(a),u=p(d),f=(()=>{let x=Se(e,l,h,u);if(x)return x;switch(i){case"service":return $e(n,o,t,r,l,h,u,s.cornerRadius??0);case"diamond":return le(n,o,t,r,l,h,u);case"rounded":return Ce(n,o,t,r,l,h,u,s.cornerRadius??6);case"stadium":return Pe(n,o,t,r,l,h,u);case"circle":return de(n,o,t,r,l,h,u);case"subroutine":return ve(n,o,t,r,l,h,u,s.cornerRadius??0);case"doublecircle":return Re(n,o,t,r,l,h,u);case"hexagon":return Le(n,o,t,r,l,h,u);case"cylinder":return Ae(n,o,t,r,l,h,u);case"asymmetric":return ze(n,o,t,r,l,h,u);case"trapezoid":return Te(n,o,t,r,l,h,u);case"trapezoid-alt":return He(n,o,t,r,l,h,u);case"lean-r":return Fe(n,o,t,r,l,h,u);case"lean-l":return We(n,o,t,r,l,h,u);case"state-start":return _e(n,o,t,r);case"state-end":return je(n,o,t,r);case"state-fork":case"state-join":return De(n,o,t,r);case"state-choice":return le(n,o,t,r,l,h,u);case"state-history":return de(n,o,t,r,l,h,u);default:return $e(n,o,t,r,l,h,u,s.cornerRadius??0)}})(),g=i==="state-start"||i==="state-fork"||i==="state-join"?{fill:"var(--_text)",stroke:"none"}:i==="state-end"?{fill:"var(--_text)",stroke:"var(--_text)"}:{fill:c,stroke:a,strokeWidth:d};return C({id:`node-shape:${e.id}`,role:"node",geometry:f.geometry,paint:g},f.crisp)}function $e(e,s,n,o,t,r,i,$=0){return{geometry:{kind:"rect",x:e,y:s,width:n,height:o,rx:$,ry:$},crisp:`<rect x="${e}" y="${s}" width="${n}" height="${o}" rx="${$}" ry="${$}" fill="${t}" stroke="${r}" stroke-width="${i}" />`}}function Ce(e,s,n,o,t,r,i,$=6){return{geometry:{kind:"rect",x:e,y:s,width:n,height:o,rx:$,ry:$},crisp:`<rect x="${e}" y="${s}" width="${n}" height="${o}" rx="${$}" ry="${$}" fill="${t}" stroke="${r}" stroke-width="${i}" />`}}function Pe(e,s,n,o,t,r,i){let $=o/2;return{geometry:{kind:"rect",x:e,y:s,width:n,height:o,rx:$,ry:$},crisp:`<rect x="${e}" y="${s}" width="${n}" height="${o}" rx="${$}" ry="${$}" fill="${t}" stroke="${r}" stroke-width="${i}" />`}}function de(e,s,n,o,t,r,i){let $=e+n/2,c=s+o/2,a=Math.min(n,o)/2;return{geometry:{kind:"circle",cx:$,cy:c,r:a},crisp:`<circle cx="${$}" cy="${c}" r="${a}" fill="${t}" stroke="${r}" stroke-width="${i}" />`}}function le(e,s,n,o,t,r,i){let $=e+n/2,c=s+o/2,a=n/2,d=o/2,l=[{x:$,y:c-d},{x:$+a,y:c},{x:$,y:c+d},{x:$-a,y:c}],h=l.map(u=>`${u.x},${u.y}`).join(" ");return{geometry:{kind:"polygon",points:l},crisp:`<polygon points="${h}" fill="${t}" stroke="${r}" stroke-width="${i}" />`}}function ve(e,s,n,o,t,r,i,$=0){return{geometry:{kind:"compound",children:[{kind:"rect",x:e,y:s,width:n,height:o,rx:$,ry:$},{kind:"line",x1:e+8,y1:s,x2:e+8,y2:s+o},{kind:"line",x1:e+n-8,y1:s,x2:e+n-8,y2:s+o}]},crisp:`<rect x="${e}" y="${s}" width="${n}" height="${o}" rx="${$}" ry="${$}" fill="${t}" stroke="${r}" stroke-width="${i}" />
4
4
  <line x1="${e+8}" y1="${s}" x2="${e+8}" y2="${s+o}" stroke="${r}" stroke-width="${i}" />
@@ -1 +1 @@
1
- import{a as d,f as V}from"./chunk-FFOHLPDA.js";import{B as P,C as q,E as J,T as B,U as G,V as X,W as g,X as I,Y as h,Z as j,_ as R}from"./chunk-EX6TP7QM.js";var x=Object.freeze({contrast:Object.freeze({properties:Object.freeze({role:Object.freeze({kind:"role"}),minimum:Object.freeze({kind:"number",minimum:1,maximum:21})}),recovery:"Choose an authored text/surface pair that meets the requested ratio, or remove the rule; the renderer will not repaint it."}),"accent-area":Object.freeze({properties:Object.freeze({maxFraction:Object.freeze({kind:"number",minimum:0,maximum:1,required:!0})}),recovery:"Reduce authored accent-filled area or raise the declared maximum; the renderer will not rewrite fills."}),"mono-role":Object.freeze({properties:Object.freeze({role:Object.freeze({kind:"role",required:!0})}),recovery:"Use measurable monochrome paint for the named role or remove the rule; the renderer will not rewrite paint."})}),k=Object.freeze(Object.keys(x));function w(e){return x[e].properties}function U(e){return Object.freeze(["kind","action",...Object.keys(x[e].properties)])}function H(e){let n=w(e);return Object.freeze(["kind","action",...Object.entries(n).filter(([,t])=>t.required===!0).map(([t])=>t)])}var We=Object.freeze({warn:Object.freeze({code:"BRAND_CONSTRAINT_WARNING",severity:"warning",tier:"lint"}),error:Object.freeze({code:"BRAND_CONSTRAINT_ERROR",severity:"error",tier:"lint"})});var O=1;function D(e){if(typeof e!="object"||e===null||Object.isFrozen(e))return e;for(let n of Object.values(e))D(n);return Object.freeze(e)}var v=D({bg:{description:"Diagram page background."},fg:{description:"Primary text and foreground paint."},line:{description:"Connector and secondary line paint."},accent:{description:"Accent paint for emphasis and data series."},muted:{description:"Muted text and secondary data paint."},surface:{description:"Node and group surface fill."},border:{description:"Node and group border paint."}}),$=Object.freeze(["category"]),T=D({formatVersion:{kind:"const",value:O,group:"metadata",description:"Persisted wire-format version. Optional on input and normalized to 1 on output."},$schema:{kind:"string",group:"metadata",description:"Optional JSON Schema pointer for file-backed styles; ignored while rendering."},name:{kind:"string",group:"metadata",description:"Canonical look:name or palette:name identity; required only when registering a style."},blurb:{kind:"string",group:"metadata",description:"Short human-readable description used by discovery surfaces."},colors:{kind:"colors",group:"palette",description:"Partial palette of safe, non-fetching CSS color tokens."},font:{kind:"string",runtimeValidator:"safeCssFontFamily",group:"typography",description:"Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face."},roles:{kind:"roles",group:"roles",description:"Partial semantic SceneRole defaults. Family-authored styling remains authoritative."},semanticSlots:{kind:"semanticSlots",group:"policy",description:"Named brand-neutral role-style slots selected by semantic bindings."},bindings:{kind:"bindings",group:"policy",description:"Ordered equality bindings from authored/domain meaning to semantic slots."},constraints:{kind:"constraints",group:"policy",description:"Closed inspect-only brand constraints with warn or error actions."},stroke:{kind:"enum",values:["crisp","jittered","freehand"],group:"stroke",description:"Stroke treatment; crisp is the default renderer."},roughness:{kind:"number",minimum:0,maximum:10,expected:"between 0 and 10",group:"stroke",description:"Rough.js stroke irregularity."},bowing:{kind:"number",minimum:0,maximum:10,expected:"between 0 and 10",group:"stroke",description:"Rough.js line bowing."},passes:{kind:"integer",minimum:1,maximum:8,expected:"an integer from 1 through 8",group:"stroke",description:"Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke."},strokeWidth:{kind:"number",exclusiveMinimum:0,maximum:20,expected:"greater than 0 and at most 20",group:"stroke",description:"Base stroke width in SVG user units."},fill:{kind:"enum",values:["none","hachure","solid","wash"],group:"fill",description:"Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends."},hachureAngle:{kind:"number",minimum:-360,maximum:360,expected:"between -360 and 360",group:"fill",description:"Hachure line angle in degrees; requires fill hachure in the final stack."},hachureGap:{kind:"number",exclusiveMinimum:0,maximum:100,expected:"greater than 0 and at most 100",group:"fill",description:"Gap between hachure lines; requires fill hachure in the final stack."},fillWeight:{kind:"number",exclusiveMinimum:0,maximum:20,expected:"greater than 0 and at most 20",group:"fill",description:"Hachure line weight; requires fill hachure in the final stack."},washOpacity:{kind:"number",minimum:0,maximum:1,expected:"between 0 and 1",group:"fill",description:"Watercolor glaze opacity; requires fill wash in the final stack."},washEdge:{kind:"number",minimum:0,maximum:1,expected:"between 0 and 1",group:"fill",description:"Watercolor edge-darkening opacity; requires fill wash in the final stack."},backdrop:{kind:"enum",values:["plain","paper-ruled","grid"],group:"page",description:"Flat page furniture drawn behind the diagram."},intent:{kind:"enum",values:["premium","draft","lofi"],group:"advisory",description:"Advisory intent metadata for pickers and quality tooling."},mono:{kind:"boolean",group:"advisory",description:"Advisory monochrome contract: express tone through shading and weight."}});function S(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function z(e,n){return!(typeof e!="number"||!Number.isFinite(e)||n.kind==="integer"&&!Number.isInteger(e)||n.minimum!==void 0&&e<n.minimum||n.exclusiveMinimum!==void 0&&e<=n.exclusiveMinimum||n.maximum!==void 0&&e>n.maximum)}var me=Object.freeze(["--bg","--fg","--_text","--_text-sec","--_text-muted","--_text-faint","--_line","--_arrow","--_node-fill","--_node-stroke","--_group-fill","--_group-hdr","--_inner-stroke","--_key-badge"]),ye=new Set(me);function ge(e){return typeof e!="string"||J(e)===void 0?!1:[...e.matchAll(/var\(\s*(--[a-z0-9_-]+)/gi)].map(t=>t[1]).every(t=>ye.has(t))}var W=new Map(R.map(e=>[e.role,e])),ee=I.map(e=>W.get(e)),Se=new Set(h),be=/^[A-Za-z][A-Za-z0-9._-]{0,63}$/,L=new Set(["__proto__","constructor","prototype"]);function ne(e,n,t){if(!S(e))return[`"${n}" must be an object`];let i=[];for(let[r,o]of Object.entries(e)){if(!Object.hasOwn(g,r)){i.push(`unknown role style field "${n.slice(n.indexOf(".")+1)}.${r}"`);continue}if(t&&!t.has(r)){i.push(`role style field "${n}.${r}" is not applicable`);continue}let s=g[r],a=`${n}.${r}`;o!==void 0&&(s.kind==="number"&&!z(o,s)?i.push(`"${a}" must be ${s.expected}`):s.kind==="font"&&(typeof o!="string"||P(o)===void 0)?i.push(`"${a}" must be a safe non-fetching CSS font family or stack`):s.kind==="color"&&!ge(o)?i.push(`"${a}" must be a safe non-fetching CSS paint`):s.kind==="enum"&&(typeof o!="string"||!s.values.includes(o))&&i.push(`"${a}" must be one of ${s.values.join(" | ")}`))}return i}function he(e){if(!S(e))return['"roles" must be an object of SceneRole records'];let n=[];for(let[t,i]of Object.entries(e)){let r=W.get(t);if(!r){n.push(`unknown scene role "${t}"`);continue}if(r.traits.styleConsumption==="fallback-only"){n.push(`scene role "${t}" is fallback-only; set roles.${r.style.fallbackRole} instead`);continue}let o=new Set(r.style.applicableProperties),s=ne(i,`roles.${t}`,o).map(a=>a===`"roles.${t}" must be an object`?a:a.replace(`role style field "roles.${t}.`,`role style field "${t}.`).replace('" is not applicable',`" is not applicable to ${t} roles`));n.push(...s)}return n}function te(e){return typeof e=="string"&&be.test(e)&&!L.has(e)}function Re(e){if(!S(e))return['"semanticSlots" must be an object of named role-style slots'];if(Object.keys(e).length>d.maxItemsPerContainer)return[`"semanticSlots" must contain at most ${d.maxItemsPerContainer} slots`];let n=[];for(let[t,i]of Object.entries(e)){if(!te(t)){n.push(`invalid semantic slot name "${t}"`);continue}n.push(...ne(i,`semanticSlots.${t}`))}return n}function ke(e){if(!Array.isArray(e))return['"bindings" must be an array'];if(e.length>d.maxItemsPerContainer)return[`"bindings" must contain at most ${d.maxItemsPerContainer} entries`];let n=[];return e.forEach((t,i)=>{let r=`bindings[${i}]`;if(!S(t)){n.push(`"${r}" must be an object`);return}for(let o of Object.keys(t))["channel","value","slot","role"].includes(o)||n.push(`unknown binding field "${r}.${o}"`);(typeof t.channel!="string"||!$.includes(t.channel))&&n.push(`"${r}.channel" must be one of ${$.join(" | ")}`),(typeof t.value!="string"||t.value.length===0||t.value.length>256||/[\r\n\0]/.test(t.value))&&n.push(`"${r}.value" must be a non-empty single-line string of at most 256 characters`),te(t.slot)||n.push(`"${r}.slot" must be a valid semantic slot name`),t.role!==void 0&&!Se.has(t.role)&&n.push(`"${r}.role" must be a SceneRole with an executable category-binding consumer (${h.join(" | ")})`)}),n}function Oe(e){if(!Array.isArray(e))return['"constraints" must be an array'];if(e.length>d.maxItemsPerContainer)return[`"constraints" must contain at most ${d.maxItemsPerContainer} entries`];let n=[];return e.forEach((t,i)=>{let r=`constraints[${i}]`;if(!S(t)){n.push(`"${r}" must be an object`);return}if(typeof t.kind!="string"||!k.includes(t.kind)){n.push(`"${r}.kind" must be one of ${k.join(" | ")}`);return}let o=t.kind,s=w(o),a=new Set(U(o));for(let l of Object.keys(t))a.has(l)||n.push(`unknown constraint field "${r}.${l}"`);t.action!=="warn"&&t.action!=="error"&&n.push(`"${r}.action" must be one of warn | error`);for(let[l,c]of Object.entries(s)){let f=t[l];if(f===void 0){c.required&&n.push(`"${r}.${l}" is required for ${o}`);continue}c.kind==="role"&&!W.has(f)?n.push(`"${r}.${l}" must be a registered built-in SceneRole`):c.kind==="number"&&!z(f,c)&&n.push(`"${r}.${l}" must be between ${c.minimum} and ${c.maximum}`)}}),n}function A(e){if(!S(e))return["style spec must be a plain object"];if(Object.keys(e).length>d.maxItemsPerContainer)return[`style spec must contain at most ${d.maxItemsPerContainer} fields`];let n=[];for(let[t,i]of Object.entries(e)){if(!Object.hasOwn(T,t)){n.push(`unknown field "${t}"`);continue}let r=T[t];if(i!==void 0)switch(r.kind){case"const":i!==r.value&&n.push(`"${t}" must be ${r.value}`);break;case"string":typeof i!="string"?n.push(`"${t}" must be a string`):r.runtimeValidator==="safeCssFontFamily"&&P(i)===void 0&&n.push(`"${t}" must be a safe non-fetching CSS font family or stack`);break;case"boolean":typeof i!="boolean"&&n.push(`"${t}" must be a boolean`);break;case"number":case"integer":z(i,r)||n.push(`"${t}" must be ${r.expected}`);break;case"enum":(typeof i!="string"||!r.values.includes(i))&&n.push(`"${t}" must be one of ${r.values.join(" | ")}`);break;case"roles":n.push(...he(i));break;case"semanticSlots":n.push(...Re(i));break;case"bindings":n.push(...ke(i));break;case"constraints":n.push(...Oe(i));break;case"colors":{if(!S(i)){n.push('"colors" must be an object of color tokens');break}for(let[o,s]of Object.entries(i))Object.hasOwn(v,o)?s!==void 0&&typeof s!="string"?n.push(`color token "${o}" must be a string`):s!==void 0&&q(s)===void 0&&n.push(`color token "${o}" must be a safe non-fetching CSS color`):n.push(`unknown color token "${o}"`);break}}}return V(n,"Style validation")}function Ce(){return Object.fromEntries(Object.entries(g).map(([e,n])=>{if(n.kind==="number"){let t=n;return[e,{type:"number",...t.minimum!==void 0?{minimum:t.minimum}:{},...t.exclusiveMinimum!==void 0?{exclusiveMinimum:t.exclusiveMinimum}:{},...t.maximum!==void 0?{maximum:t.maximum}:{},description:t.description}]}return n.kind==="enum"?[e,{type:"string",enum:[...n.values],description:n.description}]:[e,{type:"string",description:n.description,"x-agentic-mermaid-runtime-validator":n.kind==="font"?"safeCssFontFamily":"safeStylePaint"}]}))}function Z(e=Object.keys(g)){let n=Ce();return{type:"object",additionalProperties:!1,maxProperties:e.length,properties:Object.fromEntries(e.map(t=>[t,n[t]]))}}function re(e){return`roleStyle-${e.role}`}var Q="^[A-Za-z][A-Za-z0-9._-]{0,63}$";function Ee(e){switch(e.kind){case"const":return{const:e.value,description:e.description};case"string":return{type:"string",description:e.description,...e.runtimeValidator?{"x-agentic-mermaid-runtime-validator":e.runtimeValidator}:{}};case"boolean":return{type:"boolean",description:e.description};case"enum":return{type:"string",enum:[...e.values],description:e.description};case"number":case"integer":return{type:e.kind,...e.minimum!==void 0?{minimum:e.minimum}:{},...e.exclusiveMinimum!==void 0?{exclusiveMinimum:e.exclusiveMinimum}:{},...e.maximum!==void 0?{maximum:e.maximum}:{},description:e.description};case"roles":return{type:"object",additionalProperties:!1,description:e.description,properties:Object.fromEntries(ee.map(n=>[n.role,{$ref:`#/$defs/${re(n)}`}]))};case"semanticSlots":return{type:"object",description:e.description,maxProperties:d.maxItemsPerContainer,propertyNames:{pattern:Q,not:{enum:[...L]}},additionalProperties:{$ref:"#/$defs/roleStyle-any"}};case"bindings":return{type:"array",description:e.description,maxItems:d.maxItemsPerContainer,items:{type:"object",additionalProperties:!1,maxProperties:4,required:["channel","value","slot"],properties:{channel:{type:"string",enum:[...$]},value:{type:"string",minLength:1,maxLength:256,pattern:"^[^\\r\\n\\u0000]+$"},slot:{type:"string",pattern:Q,not:{enum:[...L]}},role:{type:"string",enum:[...h]}}}};case"constraints":{let n={type:"string",enum:["warn","error"]},t={type:"string",enum:R.map(r=>r.role)},i=k.map(r=>{let o=w(r),s=Object.fromEntries(Object.entries(o).map(([a,l])=>[a,l.kind==="role"?t:{type:"number",minimum:l.minimum,maximum:l.maximum}]));return{type:"object",additionalProperties:!1,required:[...H(r)],properties:{kind:{const:r},action:n,...s}}});return{type:"array",description:e.description,maxItems:d.maxItemsPerContainer,items:{oneOf:i}}}case"colors":return{type:"object",additionalProperties:!1,maxProperties:Object.keys(v).length,description:`${e.description} Runtime validation applies the stricter safe-color policy.`,properties:Object.fromEntries(Object.entries(v).map(([n,t])=>[n,{type:"string",description:`${t.description} Must be a safe, non-fetching CSS color.`,"x-agentic-mermaid-runtime-validator":"safeCssColor"}]))}}}function xe(){let e=Object.fromEntries(ee.map(n=>[re(n),Z(n.style.applicableProperties)]));return{$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://agentic-mermaid.dev/schemas/style-spec.schema.json",title:"Agentic Mermaid StyleSpec",description:"A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",type:"object",additionalProperties:!1,maxProperties:Object.keys(T).length,properties:Object.fromEntries(Object.entries(T).map(([n,t])=>[n,Ee(t)])),$defs:{...e,"roleStyle-any":Z()}}}var ie=Object.freeze([{id:"palette:paper",inputName:"paper",displayLabel:"Paper",colors:{bg:"#F5F0E4",fg:"#221E16",accent:"#9A4A24"}},{id:"palette:dusk",inputName:"dusk",displayLabel:"Dusk",colors:{bg:"#2A2521",fg:"#E9DFCC",accent:"#CC8A57"}},{id:"palette:zinc-light",inputName:"zinc-light",displayLabel:"Zinc Light",colors:{bg:"#FFFFFF",fg:"#27272A"}},{id:"palette:zinc-dark",inputName:"zinc-dark",displayLabel:"Zinc Dark",colors:{bg:"#18181B",fg:"#FAFAFA"}},{id:"palette:tokyo-night",inputName:"tokyo-night",displayLabel:"Tokyo Night",colors:{bg:"#1a1b26",fg:"#a9b1d6",line:"#3d59a1",accent:"#7aa2f7",muted:"#565f89"}},{id:"palette:tokyo-night-storm",inputName:"tokyo-night-storm",displayLabel:"Tokyo Night Storm",colors:{bg:"#24283b",fg:"#a9b1d6",line:"#3d59a1",accent:"#7aa2f7",muted:"#565f89"}},{id:"palette:tokyo-night-light",inputName:"tokyo-night-light",displayLabel:"Tokyo Night Light",colors:{bg:"#d5d6db",fg:"#343b58",line:"#34548a",accent:"#34548a",muted:"#9699a3"}},{id:"palette:catppuccin-mocha",inputName:"catppuccin-mocha",displayLabel:"Catppuccin Mocha",colors:{bg:"#1e1e2e",fg:"#cdd6f4",line:"#585b70",accent:"#cba6f7",muted:"#6c7086"}},{id:"palette:catppuccin-latte",inputName:"catppuccin-latte",displayLabel:"Catppuccin Latte",colors:{bg:"#eff1f5",fg:"#4c4f69",line:"#9ca0b0",accent:"#8839ef",muted:"#9ca0b0"}},{id:"palette:nord",inputName:"nord",displayLabel:"Nord",colors:{bg:"#2e3440",fg:"#d8dee9",line:"#4c566a",accent:"#88c0d0",muted:"#616e88"}},{id:"palette:nord-light",inputName:"nord-light",displayLabel:"Nord Light",colors:{bg:"#eceff4",fg:"#2e3440",line:"#aab1c0",accent:"#5e81ac",muted:"#7b88a1"}},{id:"palette:dracula",inputName:"dracula",displayLabel:"Dracula",colors:{bg:"#282a36",fg:"#f8f8f2",line:"#6272a4",accent:"#bd93f9",muted:"#6272a4"}},{id:"palette:github-light",inputName:"github-light",displayLabel:"GitHub Light",colors:{bg:"#ffffff",fg:"#1f2328",line:"#d1d9e0",accent:"#0969da",muted:"#59636e"}},{id:"palette:github-dark",inputName:"github-dark",displayLabel:"GitHub Dark",colors:{bg:"#0d1117",fg:"#e6edf3",line:"#3d444d",accent:"#4493f8",muted:"#9198a1"}},{id:"palette:solarized-light",inputName:"solarized-light",displayLabel:"Solarized Light",colors:{bg:"#fdf6e3",fg:"#657b83",line:"#93a1a1",accent:"#268bd2",muted:"#93a1a1"}},{id:"palette:solarized-dark",inputName:"solarized-dark",displayLabel:"Solarized Dark",colors:{bg:"#002b36",fg:"#839496",line:"#586e75",accent:"#268bd2",muted:"#586e75"}},{id:"palette:one-dark",inputName:"one-dark",displayLabel:"One Dark",colors:{bg:"#282c34",fg:"#abb2bf",line:"#4b5263",accent:"#c678dd",muted:"#5c6370"}},{id:"palette:salmon",inputName:"salmon",displayLabel:"Salmon",colors:{bg:"#FFFBF5",fg:"#521000",line:"#C9A88A",accent:"#FF4801",muted:"#85532E",surface:"#FFFDFB",border:"#D4B89E"}},{id:"palette:salmon-dark",inputName:"salmon-dark",displayLabel:"Salmon Dark",colors:{bg:"#1F1008",fg:"#F5DCC8",line:"#6B4A2E",accent:"#FF6B35",muted:"#A07858",surface:"#2A1810",border:"#5A3A22"}},{id:"palette:tufte-dark",inputName:"tufte-dark",displayLabel:"Tufte Dark",colors:{bg:"#1C1C1A",fg:"#E8E4DC",line:"#666660",accent:"#C87070",muted:"#908880",surface:"#2A2926",border:"#444440"}}]);var F=Object.freeze(["fontSize","fontWeight","letterSpacing","textTransform","textColor"]),oe=Object.freeze(["paddingX","paddingY","cornerRadius","lineWidth","fillColor","borderColor"]),un=Object.freeze({text:Object.freeze({sourceRole:"label",fields:F}),node:Object.freeze({sourceRole:"node",fields:Object.freeze([...F,...oe])}),edge:Object.freeze({sourceRole:"edge",fields:Object.freeze([...F,"lineWidth","bendRadius","strokeColor"])}),group:Object.freeze({sourceRole:"group",fields:Object.freeze([...F,...oe,"fontFamily","headerFillColor"])})}),se="1.0.0",le=Object.freeze({core:"^0.3.0"}),Te=Object.freeze({owner:"agentic-mermaid",source:"built-in",reference:"src/scene/style-registry.ts"}),_e=Object.freeze({owner:"host",source:"in-process"}),m=new Map,C=new Map,Y=0;function Ne(){if(Y>0)throw new Error("Style registry mutation is forbidden while a Style input is undergoing admission")}function de(e){Y++;try{return e()}finally{Y--}}function Ie(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function je(e){let n=new WeakMap,t=new WeakSet,i=new Set(["__proto__","prototype","constructor"]),r=0,o=0,s=(a,l)=>{if(l>d.maxDepth)throw new TypeError(`Style input exceeds maximum nesting depth ${d.maxDepth}`);if(r++,r>d.maxNodes)throw new TypeError(`Style input exceeds the ${d.maxNodes}-node limit`);if(typeof a=="string"){if(o+=a.length,o>d.maxAggregateTextCharacters)throw new TypeError(`Style input exceeds the ${d.maxAggregateTextCharacters}-character text limit`);return a}if(typeof a!="object"||a===null)return a;if(t.has(a))throw new TypeError("Style input must be acyclic");let c=n.get(a);if(c!==void 0)return c;if(Array.isArray(a)){if(a.length>d.maxItemsPerContainer)throw new TypeError(`Style array must contain at most ${d.maxItemsPerContainer} items`);let p=[];n.set(a,p),t.add(a);for(let y=0;y<a.length;y++){if(!Object.prototype.hasOwnProperty.call(a,y))throw new TypeError("Style arrays must not be sparse");p.push(s(a[y],l+1))}return t.delete(a),Object.freeze(p)}if(!Ie(a))return a;let f=Object.entries(a);if(f.length>d.maxItemsPerContainer)throw new TypeError(`Style object must contain at most ${d.maxItemsPerContainer} properties`);let b=Object.create(null);n.set(a,b),t.add(a);for(let[p,y]of f){if(i.has(p))throw new TypeError(`Style input uses forbidden key "${p}"`);if(o+=p.length,o>d.maxAggregateTextCharacters)throw new TypeError(`Style input exceeds the ${d.maxAggregateTextCharacters}-character text limit`);Object.defineProperty(b,p,{value:s(y,l+1),enumerable:!0,writable:!1,configurable:!1})}return t.delete(a),Object.freeze(b)};return s(e,0)}function we(e){let n=je(e),t=A(n);if(t.length)throw new Error(`Invalid style spec: ${t.join("; ")}`);return n}function K(e){if(e)return Object.freeze(Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Object.freeze({...t})])))}function M(e){if(e)return Object.freeze(Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Object.freeze({...t})])))}function E(e){return e?Object.freeze(e.map(n=>Object.freeze({...n}))):void 0}function N(e){if(!e)return;let{displayLabel:n,...t}=e;return Object.freeze({...t,formatVersion:O,...t.colors?{colors:Object.freeze({...t.colors})}:{},...t.roles?{roles:K(t.roles)}:{},...t.semanticSlots?{semanticSlots:M(t.semanticSlots)}:{},...t.bindings?{bindings:E(t.bindings)}:{},...t.constraints?{constraints:E(t.constraints)}:{}})}function ve(e,n,t){return G({id:e,kind:n,version:t.version??se,compatibility:{...le,...t.compatibility},provenance:t.provenance??_e})}function $e(e,n,t,i){let r=e.name,o=Object.freeze({...e,formatVersion:O,...e.colors?{colors:Object.freeze({...e.colors})}:{},...e.roles?{roles:K(e.roles)}:{},...e.semanticSlots?{semanticSlots:M(e.semanticSlots)}:{},...e.bindings?{bindings:E(e.bindings)}:{},...e.constraints?{constraints:E(e.constraints)}:{}}),s=ve(r,n,t);if(X(m,{identity:s,value:o}),i!==void 0){let a=C.get(i),l=m.has(i)&&i!==r?i:void 0;if(a!==void 0||l!==void 0)throw m.delete(r),new Error(`Style input name "${i}" already selects "${a??l}"`);C.set(i,r)}return()=>{if(Ne(),m.get(r)?.identity!==s)return!1;let l=m.delete(r);return l&&i!==void 0&&C.get(i)===r&&C.delete(i),l}}function u(e,n="look",t=e.name??""){if(!e.name)throw new Error("registerBuiltInStyle requires a name");let i=e.name,r=B(n,i),o=A(N({...e,name:r}));if(o.length)throw new Error(`Invalid built-in style "${r}": ${o.join("; ")}`);$e({...e,name:r},n,{version:se,compatibility:le,provenance:Te},t)}function ce(e){return m.has(e)?e:C.get(e)}function fn(e){let n=ce(e);if(!n)return;let t=N(m.get(n)?.value);if(t)return Object.freeze({canonicalId:n,spec:t})}function Ae(){return Fe().map(e=>e.inputName)}function Fe(){return Object.freeze(Array.from(m.values(),({identity:e,value:n})=>{let t=Array.from(C.entries()).find(([,o])=>o===e.id)?.[0]??e.id,i=e.id.slice(e.id.indexOf(":")+1),r=n.displayLabel??i.split("-").filter(Boolean).map(o=>o==="ops"?"OPS":o.charAt(0).toUpperCase()+o.slice(1)).join(" ");return Object.freeze({identity:e,spec:N(n),inputName:t,displayLabel:r,kind:e.kind,isDefault:e.id==="look:crisp"})}))}function _(e){return e.stroke==="freehand"||e.fill==="wash"?"hybrid":e.stroke==="jittered"||e.fill==="hachure"||e.backdrop!==void 0&&e.backdrop!=="plain"||e.roughness!==void 0||e.bowing!==void 0||e.passes!==void 0||e.hachureGap!==void 0||e.hachureAngle!==void 0||e.fillWeight!==void 0?"rough":"default"}function Pe(e,n){if(!e&&!n)return;let t={...e},i=t;for(let[r,o]of Object.entries(n??{}))o!==void 0&&(i[r]={...i[r],...o});return t}function Be(e,n){if(!e&&!n)return;let t={...e};for(let[i,r]of Object.entries(n??{}))t[i]={...t[i],...r};return t}function ae(e,n){if(!e&&!n)return;let t=[],i=new Set;for(let r of[...e??[],...n??[]]){let o=JSON.stringify(r);i.has(o)||(i.add(o),t.push(r))}return t}function ue(e){if(e===void 0)return;let n=Array.isArray(e)?e:[e],t=[];for(let r of n)if(typeof r=="string"){let o=ce(r);if(o==="look:crisp")continue;let s=o?m.get(o)?.value:void 0;if(!s)throw new Error(`Unknown style "${r}". Known styles: ${Ae().join(", ")}`);t.push(s)}else t.push(we(r));if(t.length===0)return;let i={formatVersion:O};for(let r of t)for(let[o,s]of Object.entries(r))if(s!==void 0)if(o==="colors"){let a={...i.colors};for(let[l,c]of Object.entries(r.colors??{}))c!==void 0&&(a[l]=c);i.colors=a}else o==="roles"?i.roles=Pe(i.roles,r.roles):o==="semanticSlots"?i.semanticSlots=Be(i.semanticSlots,r.semanticSlots):o==="bindings"?i.bindings=ae(i.bindings,r.bindings):o==="constraints"?i.constraints=ae(i.constraints,r.constraints):i[o]=s;return i}function pn(e){return de(()=>{let n=ue(e);return n&&fe(n),N(n)})}function Le(e){return e?{...e}:void 0}function De(e){let n=e.strokeWidth,t=e.roles?Object.fromEntries(Object.entries(e.roles).map(([s,a])=>[s,Le(a)])):void 0,i={...n!==void 0&&n>0&&_(e)==="default"?{lineWidth:n}:{},...t?.node},r={...n!==void 0&&n>0&&_(e)==="default"?{lineWidth:n}:{},...t?.edge},o={...n!==void 0&&n>0&&_(e)==="default"?{lineWidth:n}:{},...t?.group};if(!(!t&&!e.semanticSlots&&!e.bindings&&!e.constraints&&Object.keys(i).length===0&&Object.keys(r).length===0&&Object.keys(o).length===0))return{...t?{roles:K(t)}:{},...e.semanticSlots?{semanticSlots:M(e.semanticSlots)}:{},...e.bindings?{bindings:E(e.bindings)}:{},...e.constraints?{constraints:E(e.constraints)}:{},...t?.label?{text:{...t.label}}:{},...Object.keys(i).length?{node:i}:{},...Object.keys(r).length?{edge:r}:{},...Object.keys(o).length?{group:o}:{}}}function ze(e,n){let t=n[e.channel];return Array.isArray(t)?t.includes(e.value):String(t??"")===e.value}function mn(e,n,t={},i={}){let r=R.find(f=>f.role===n),o=e?.roles,s=i.includeFallback===!1?void 0:r?o?.[r.style.fallbackRole]:void 0,a=o?.[n],l=s||a?{...s,...a}:void 0,c=new Set(r?.style.applicableProperties??[]);for(let f of e?.bindings??[]){if(f.role!==void 0&&f.role!==n||!ze(f,t))continue;let b=e?.semanticSlots?.[f.slot];if(!b)continue;let p=Object.fromEntries(Object.entries(b).filter(([y])=>c.has(y)));l={...l,...p}}return l?Object.freeze(l):void 0}function fe(e){for(let[o,s]of(e.bindings??[]).entries()){let a=e.semanticSlots?.[s.slot];if(!a)throw new Error(`Invalid style spec: binding ${o+1} references missing semantic slot "${s.slot}"`);let l=s.role===void 0?new Set(j):new Set(R.find(c=>c.role===s.role).style.applicableProperties);if(!Object.keys(a).some(c=>l.has(c)))throw new Error(s.role===void 0?`Invalid style spec: semantic slot "${s.slot}" has no field applicable to any executable category-binding role`:`Invalid style spec: semantic slot "${s.slot}" has no field applicable to role "${s.role}"`)}let t=["hachureAngle","hachureGap","fillWeight"].filter(o=>e[o]!==void 0&&e.fill!=="hachure");if(t.length>0)throw new Error(`Invalid style spec: ${t.map(o=>`"${o}"`).join(", ")} require fill "hachure" in the final Style stack`);let r=["washOpacity","washEdge"].filter(o=>e[o]!==void 0&&e.fill!=="wash");if(r.length>0)throw new Error(`Invalid style spec: ${r.map(o=>`"${o}"`).join(", ")} require fill "wash" in the final Style stack`);if(e.fill!==void 0&&_(e)==="default")throw new Error('Invalid style spec: "fill" has no crisp/default backend projection; combine it with stroke "jittered"/"freehand" or another rough/hybrid backend field')}function yn(e){return de(()=>{let n=ue(e);if(n===void 0)return{};fe(n);let t=N(n),i=De(n);return{...t?{style:t}:{},...i?{face:i}:{}}})}function gn(e){return _(e)!=="default"||e.colors!==void 0||e.font!==void 0||e.strokeWidth!==void 0||e.roles!==void 0||e.semanticSlots!==void 0||e.bindings!==void 0||e.constraints!==void 0}u({name:"crisp",displayLabel:"Crisp",blurb:"The default renderer with precise SVG geometry.",stroke:"crisp"},"look");for(let e of ie){let{inputName:n,colors:t}=e;if(B("palette",n)!==e.id)throw new Error(`Built-in palette identity mismatch: ${e.id}`);u({name:n,displayLabel:e.displayLabel,blurb:`Palette: ${n}.`,colors:{bg:t.bg,fg:t.fg,line:t.line,accent:t.accent,muted:t.muted,surface:t.surface,border:t.border}},"palette",n)}u({name:"hand-drawn",displayLabel:"Hand-drawn",blurb:"Black ink on ruled paper \u2014 wobbly double strokes, unfilled boxes.",intent:"draft",colors:{bg:"#f7f5ef",fg:"#1a1a1e",line:"#26262b",accent:"#26262b",border:"#26262b"},font:"Caveat",stroke:"jittered",roughness:1,bowing:1,passes:2,strokeWidth:1.8,fill:"none",backdrop:"paper-ruled",mono:!0});u({name:"excalidraw",displayLabel:"Excalidraw",blurb:"Virtual whiteboard style \u2014 rough strokes, pastel hachure fills.",intent:"draft",colors:{bg:"#ffffff",fg:"#1e1e1e",line:"#1e1e1e",accent:"#4263eb",surface:"#f1f3f5"},font:"Caveat",stroke:"jittered",roughness:1.1,bowing:1.2,passes:2,strokeWidth:1.6,fill:"hachure",hachureAngle:-41,hachureGap:5.5,fillWeight:.9});u({name:"pen-and-ink",displayLabel:"Pen & ink",blurb:"Fine single-pass linework on warm cream \u2014 no interior hatching.",intent:"premium",colors:{bg:"#faf6ec",fg:"#241f1a",line:"#2b241d",accent:"#2b241d",border:"#2b241d"},font:"EB Garamond",stroke:"jittered",roughness:.5,bowing:.6,passes:1,strokeWidth:1.5,fill:"none",mono:!0});u({name:"freehand",displayLabel:"Freehand",blurb:"Pressure-sensitive marker ribbons \u2014 variable-width filled strokes.",intent:"draft",colors:{bg:"#fbfaf7",fg:"#16161a",line:"#1d1d22",accent:"#1d1d22",border:"#1d1d22"},font:"Architects Daughter",stroke:"freehand",roughness:.9,passes:1,strokeWidth:1.6,fill:"none",mono:!0});u({name:"watercolor",displayLabel:"Watercolor",blurb:"Rough outlines over translucent glazes with pigment-pooled edges.",intent:"premium",colors:{bg:"#fdfbf6",fg:"#31302c",line:"#4d4a44",accent:"#7a6a52",surface:"#ead9b9",border:"#5a564e"},font:"Caveat",stroke:"jittered",roughness:.9,bowing:.8,passes:1,strokeWidth:1.5,fill:"wash",washOpacity:.3,washEdge:.34});u({name:"blueprint",displayLabel:"Blueprint",blurb:"Cyanotype: white linework on Prussian blue with a drafting grid.",intent:"premium",colors:{bg:"#123a63",fg:"#eaf2fb",line:"#dbe9f7",accent:"#ffffff",muted:"#b8cfe6",surface:"#1c4a78",border:"#dbe9f7"},font:"Share Tech Mono",stroke:"jittered",roughness:.4,bowing:.4,passes:1,strokeWidth:1.4,fill:"none",backdrop:"grid",mono:!0});u({name:"tufte",displayLabel:"Tufte",blurb:"Maximal data-ink: crisp hairlines, warm paper, one red accent.",intent:"premium",colors:{bg:"#fffff8",fg:"#111111",line:"#4a4a45",accent:"#a00000",muted:"#6b6b64",border:"#8a8a80"},font:"EB Garamond",roles:{node:{lineWidth:.8,cornerRadius:0},edge:{lineWidth:.8},group:{lineWidth:.8}},mono:!0},"look","look:tufte");u({name:"accessible-high-contrast",displayLabel:"Accessible Contrast",blurb:"Accessibility-first: large labels, heavy strokes, white ground, colorblind-safe blue accent.",intent:"premium",colors:{bg:"#ffffff",fg:"#050505",line:"#111111",accent:"#005fcc",muted:"#333333",surface:"#ffffff",border:"#050505"},roles:{node:{fontSize:17,fontWeight:700,textColor:"var(--fg)",paddingX:28,paddingY:16,cornerRadius:8,lineWidth:2.4,borderColor:"var(--fg)"},edge:{fontSize:14,fontWeight:700,textColor:"var(--fg)",lineWidth:2.6,bendRadius:10,strokeColor:"var(--fg)"},group:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:22,cornerRadius:8,lineWidth:2.2,borderColor:"var(--fg)"}}});u({name:"patent-drawing",displayLabel:"Patent Hatching",blurb:"Print-safe patent figure: uniform ink, strong outlines, tone via oblique hatching.",intent:"premium",colors:{bg:"#ffffff",fg:"#111111",line:"#111111",accent:"#111111",muted:"#444444",surface:"#ffffff",border:"#111111"},font:"EB Garamond",stroke:"jittered",roughness:.3,bowing:.2,passes:1,strokeWidth:1.35,fill:"hachure",hachureAngle:-50,hachureGap:7,fillWeight:.65,roles:{node:{fontSize:14,fontWeight:600,textColor:"var(--fg)",paddingX:24,paddingY:13,lineWidth:1.35,cornerRadius:0,borderColor:"var(--fg)"},edge:{fontSize:12,textColor:"var(--fg)",lineWidth:1.45,bendRadius:0,strokeColor:"var(--fg)"},group:{fontSize:12,fontWeight:700,textColor:"var(--fg)",paddingX:22,paddingY:18,lineWidth:1.35,cornerRadius:0,borderColor:"var(--fg)"}},mono:!0});u({name:"status-dashboard",displayLabel:"Dark Ops Dashboard",blurb:"Operational dashboard: dark surface, rounded modules, bright status-friendly accent.",intent:"premium",colors:{bg:"#08111f",fg:"#e6f4ff",line:"#5a7c99",accent:"#2dd4bf",muted:"#8aa6bf",surface:"#102033",border:"#2e4c63"},roles:{node:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:13,cornerRadius:10,lineWidth:1.4,borderColor:"var(--fg)"},edge:{fontSize:12,fontWeight:600,textColor:"var(--fg)",lineWidth:2,bendRadius:14,strokeColor:"var(--fg)"},group:{fontSize:13,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.06,paddingX:22,paddingY:20,cornerRadius:10,lineWidth:1.3,borderColor:"var(--fg)"}}});u({name:"ops-schematic",displayLabel:"Compact Trace Map",blurb:"Dense operational schematic: compact mono labels, sturdy traces, theme-friendly geometry.",intent:"lofi",colors:{bg:"#f8faf7",fg:"#17211c",line:"#24523b",accent:"#0f766e",muted:"#4f665a",surface:"#f0f5ef",border:"#24523b"},font:"Share Tech Mono",stroke:"jittered",roughness:.18,bowing:.2,passes:1,strokeWidth:1.6,fill:"none",roles:{node:{fontSize:12,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",paddingX:16,paddingY:8,cornerRadius:2,lineWidth:1.6,borderColor:"var(--fg)"},edge:{fontSize:10,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",lineWidth:1.8,bendRadius:0,strokeColor:"var(--fg)"},group:{fontSize:11,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.05,paddingX:16,paddingY:16,cornerRadius:2,lineWidth:1.5,borderColor:"var(--fg)"}}});u({name:"chalkboard",displayLabel:"Chalkboard",blurb:"Classroom chalkboard: dusty off-white strokes on green slate.",intent:"draft",colors:{bg:"#17362f",fg:"#f5f1df",line:"#ece6cf",accent:"#ffe08a",muted:"#c7d2c4",surface:"#17362f",border:"#f3ecd5"},font:"Caveat",stroke:"jittered",roughness:1.25,bowing:1,passes:2,strokeWidth:1.9,fill:"none",roles:{node:{fontSize:16,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:12,borderColor:"var(--fg)"},edge:{fontSize:13,textColor:"var(--fg)",lineWidth:1.8,strokeColor:"var(--fg)"},group:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:20,paddingY:20,lineWidth:1.7,borderColor:"var(--fg)"}},mono:!0});u({name:"risograph",displayLabel:"Riso Print",blurb:"Two-ink poster print: warm stock, offset blue linework, coral accent, coarse hachure.",intent:"premium",colors:{bg:"#fff5df",fg:"#2b2725",line:"#1f3d5a",accent:"#ff5a5f",muted:"#876a52",surface:"#ffd166",border:"#1f3d5a"},font:"EB Garamond",stroke:"jittered",roughness:.7,bowing:.55,passes:1,strokeWidth:1.5,fill:"hachure",hachureAngle:18,hachureGap:6.5,fillWeight:.75,roles:{node:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:13,cornerRadius:3,borderColor:"var(--fg)"},edge:{fontSize:12,textColor:"var(--fg)",lineWidth:1.5,strokeColor:"var(--fg)"},group:{fontSize:13,fontWeight:700,textColor:"var(--fg)",paddingX:22,paddingY:18,cornerRadius:3,borderColor:"var(--fg)"}}});u({name:"architectural-plan",displayLabel:"Plan Drafting",blurb:"Architectural plan: square technical linework, uppercase mono labels, room-like frames.",intent:"premium",colors:{bg:"#fbf7ea",fg:"#202a2f",line:"#38535e",accent:"#1f6f8b",muted:"#60727a",surface:"#fffaf0",border:"#38535e"},font:"Share Tech Mono",stroke:"jittered",roughness:.18,bowing:.25,passes:1,strokeWidth:1.45,fill:"none",roles:{node:{fontSize:12,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",paddingX:20,paddingY:10,cornerRadius:0,lineWidth:1.45,borderColor:"var(--fg)"},edge:{fontSize:10,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",lineWidth:1.55,bendRadius:0,strokeColor:"var(--fg)"},group:{fontSize:11,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.06,paddingX:20,paddingY:20,cornerRadius:0,lineWidth:1.45,borderColor:"var(--fg)"}}});u({name:"publication-figure",displayLabel:"Report Figure",blurb:"Polished publication figure: serif labels, confident rules, rounded boxes, one quiet accent.",intent:"premium",colors:{bg:"#fffdf8",fg:"#171512",line:"#24211d",accent:"#1d4ed8",muted:"#5f5a52",surface:"#faf5ea",border:"#24211d"},font:"EB Garamond",strokeWidth:1.45,roles:{node:{fontSize:15,fontWeight:700,textColor:"var(--fg)",paddingX:26,paddingY:14,cornerRadius:7,lineWidth:1.45,borderColor:"var(--fg)"},edge:{fontSize:12,fontWeight:600,textColor:"var(--fg)",lineWidth:1.45,bendRadius:8,strokeColor:"var(--fg)"},group:{fontSize:12,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.08,paddingX:24,paddingY:22,cornerRadius:7,lineWidth:1.35,borderColor:"var(--fg)"}}});export{xe as a,fn as b,_ as c,pn as d,mn as e,yn as f,gn as g};
1
+ import{a as d,f as V}from"./chunk-FFOHLPDA.js";import{B as P,C as q,E as J,T as B,U as G,V as X,W as g,X as I,Y as h,Z as j,_ as R}from"./chunk-2XCPFAD5.js";var x=Object.freeze({contrast:Object.freeze({properties:Object.freeze({role:Object.freeze({kind:"role"}),minimum:Object.freeze({kind:"number",minimum:1,maximum:21})}),recovery:"Choose an authored text/surface pair that meets the requested ratio, or remove the rule; the renderer will not repaint it."}),"accent-area":Object.freeze({properties:Object.freeze({maxFraction:Object.freeze({kind:"number",minimum:0,maximum:1,required:!0})}),recovery:"Reduce authored accent-filled area or raise the declared maximum; the renderer will not rewrite fills."}),"mono-role":Object.freeze({properties:Object.freeze({role:Object.freeze({kind:"role",required:!0})}),recovery:"Use measurable monochrome paint for the named role or remove the rule; the renderer will not rewrite paint."})}),k=Object.freeze(Object.keys(x));function w(e){return x[e].properties}function U(e){return Object.freeze(["kind","action",...Object.keys(x[e].properties)])}function H(e){let n=w(e);return Object.freeze(["kind","action",...Object.entries(n).filter(([,t])=>t.required===!0).map(([t])=>t)])}var We=Object.freeze({warn:Object.freeze({code:"BRAND_CONSTRAINT_WARNING",severity:"warning",tier:"lint"}),error:Object.freeze({code:"BRAND_CONSTRAINT_ERROR",severity:"error",tier:"lint"})});var O=1;function D(e){if(typeof e!="object"||e===null||Object.isFrozen(e))return e;for(let n of Object.values(e))D(n);return Object.freeze(e)}var v=D({bg:{description:"Diagram page background."},fg:{description:"Primary text and foreground paint."},line:{description:"Connector and secondary line paint."},accent:{description:"Accent paint for emphasis and data series."},muted:{description:"Muted text and secondary data paint."},surface:{description:"Node and group surface fill."},border:{description:"Node and group border paint."}}),$=Object.freeze(["category"]),T=D({formatVersion:{kind:"const",value:O,group:"metadata",description:"Persisted wire-format version. Optional on input and normalized to 1 on output."},$schema:{kind:"string",group:"metadata",description:"Optional JSON Schema pointer for file-backed styles; ignored while rendering."},name:{kind:"string",group:"metadata",description:"Canonical look:name or palette:name identity; required only when registering a style."},blurb:{kind:"string",group:"metadata",description:"Short human-readable description used by discovery surfaces."},colors:{kind:"colors",group:"palette",description:"Partial palette of safe, non-fetching CSS color tokens."},font:{kind:"string",runtimeValidator:"safeCssFontFamily",group:"typography",description:"Safe, non-fetching CSS font family or stack; the rendering environment supplies the font face."},roles:{kind:"roles",group:"roles",description:"Partial semantic SceneRole defaults. Family-authored styling remains authoritative."},semanticSlots:{kind:"semanticSlots",group:"policy",description:"Named brand-neutral role-style slots selected by semantic bindings."},bindings:{kind:"bindings",group:"policy",description:"Ordered equality bindings from authored/domain meaning to semantic slots."},constraints:{kind:"constraints",group:"policy",description:"Closed inspect-only brand constraints with warn or error actions."},stroke:{kind:"enum",values:["crisp","jittered","freehand"],group:"stroke",description:"Stroke treatment; crisp is the default renderer."},roughness:{kind:"number",minimum:0,maximum:10,expected:"between 0 and 10",group:"stroke",description:"Rough.js stroke irregularity."},bowing:{kind:"number",minimum:0,maximum:10,expected:"between 0 and 10",group:"stroke",description:"Rough.js line bowing."},passes:{kind:"integer",minimum:1,maximum:8,expected:"an integer from 1 through 8",group:"stroke",description:"Number of sketch strokes; 1 is single-pass and 2 is the usual double stroke."},strokeWidth:{kind:"number",exclusiveMinimum:0,maximum:20,expected:"greater than 0 and at most 20",group:"stroke",description:"Base stroke width in SVG user units."},fill:{kind:"enum",values:["none","hachure","solid","wash"],group:"fill",description:"Fill policy for rough/hybrid rendering; none and solid require a final stack that activates one of those backends."},hachureAngle:{kind:"number",minimum:-360,maximum:360,expected:"between -360 and 360",group:"fill",description:"Hachure line angle in degrees; requires fill hachure in the final stack."},hachureGap:{kind:"number",exclusiveMinimum:0,maximum:100,expected:"greater than 0 and at most 100",group:"fill",description:"Gap between hachure lines; requires fill hachure in the final stack."},fillWeight:{kind:"number",exclusiveMinimum:0,maximum:20,expected:"greater than 0 and at most 20",group:"fill",description:"Hachure line weight; requires fill hachure in the final stack."},washOpacity:{kind:"number",minimum:0,maximum:1,expected:"between 0 and 1",group:"fill",description:"Watercolor glaze opacity; requires fill wash in the final stack."},washEdge:{kind:"number",minimum:0,maximum:1,expected:"between 0 and 1",group:"fill",description:"Watercolor edge-darkening opacity; requires fill wash in the final stack."},backdrop:{kind:"enum",values:["plain","paper-ruled","grid"],group:"page",description:"Flat page furniture drawn behind the diagram."},intent:{kind:"enum",values:["premium","draft","lofi"],group:"advisory",description:"Advisory intent metadata for pickers and quality tooling."},mono:{kind:"boolean",group:"advisory",description:"Advisory monochrome contract: express tone through shading and weight."}});function S(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function z(e,n){return!(typeof e!="number"||!Number.isFinite(e)||n.kind==="integer"&&!Number.isInteger(e)||n.minimum!==void 0&&e<n.minimum||n.exclusiveMinimum!==void 0&&e<=n.exclusiveMinimum||n.maximum!==void 0&&e>n.maximum)}var me=Object.freeze(["--bg","--fg","--_text","--_text-sec","--_text-muted","--_text-faint","--_line","--_arrow","--_node-fill","--_node-stroke","--_group-fill","--_group-hdr","--_inner-stroke","--_key-badge"]),ye=new Set(me);function ge(e){return typeof e!="string"||J(e)===void 0?!1:[...e.matchAll(/var\(\s*(--[a-z0-9_-]+)/gi)].map(t=>t[1]).every(t=>ye.has(t))}var W=new Map(R.map(e=>[e.role,e])),ee=I.map(e=>W.get(e)),Se=new Set(h),be=/^[A-Za-z][A-Za-z0-9._-]{0,63}$/,L=new Set(["__proto__","constructor","prototype"]);function ne(e,n,t){if(!S(e))return[`"${n}" must be an object`];let i=[];for(let[r,o]of Object.entries(e)){if(!Object.hasOwn(g,r)){i.push(`unknown role style field "${n.slice(n.indexOf(".")+1)}.${r}"`);continue}if(t&&!t.has(r)){i.push(`role style field "${n}.${r}" is not applicable`);continue}let s=g[r],a=`${n}.${r}`;o!==void 0&&(s.kind==="number"&&!z(o,s)?i.push(`"${a}" must be ${s.expected}`):s.kind==="font"&&(typeof o!="string"||P(o)===void 0)?i.push(`"${a}" must be a safe non-fetching CSS font family or stack`):s.kind==="color"&&!ge(o)?i.push(`"${a}" must be a safe non-fetching CSS paint`):s.kind==="enum"&&(typeof o!="string"||!s.values.includes(o))&&i.push(`"${a}" must be one of ${s.values.join(" | ")}`))}return i}function he(e){if(!S(e))return['"roles" must be an object of SceneRole records'];let n=[];for(let[t,i]of Object.entries(e)){let r=W.get(t);if(!r){n.push(`unknown scene role "${t}"`);continue}if(r.traits.styleConsumption==="fallback-only"){n.push(`scene role "${t}" is fallback-only; set roles.${r.style.fallbackRole} instead`);continue}let o=new Set(r.style.applicableProperties),s=ne(i,`roles.${t}`,o).map(a=>a===`"roles.${t}" must be an object`?a:a.replace(`role style field "roles.${t}.`,`role style field "${t}.`).replace('" is not applicable',`" is not applicable to ${t} roles`));n.push(...s)}return n}function te(e){return typeof e=="string"&&be.test(e)&&!L.has(e)}function Re(e){if(!S(e))return['"semanticSlots" must be an object of named role-style slots'];if(Object.keys(e).length>d.maxItemsPerContainer)return[`"semanticSlots" must contain at most ${d.maxItemsPerContainer} slots`];let n=[];for(let[t,i]of Object.entries(e)){if(!te(t)){n.push(`invalid semantic slot name "${t}"`);continue}n.push(...ne(i,`semanticSlots.${t}`))}return n}function ke(e){if(!Array.isArray(e))return['"bindings" must be an array'];if(e.length>d.maxItemsPerContainer)return[`"bindings" must contain at most ${d.maxItemsPerContainer} entries`];let n=[];return e.forEach((t,i)=>{let r=`bindings[${i}]`;if(!S(t)){n.push(`"${r}" must be an object`);return}for(let o of Object.keys(t))["channel","value","slot","role"].includes(o)||n.push(`unknown binding field "${r}.${o}"`);(typeof t.channel!="string"||!$.includes(t.channel))&&n.push(`"${r}.channel" must be one of ${$.join(" | ")}`),(typeof t.value!="string"||t.value.length===0||t.value.length>256||/[\r\n\0]/.test(t.value))&&n.push(`"${r}.value" must be a non-empty single-line string of at most 256 characters`),te(t.slot)||n.push(`"${r}.slot" must be a valid semantic slot name`),t.role!==void 0&&!Se.has(t.role)&&n.push(`"${r}.role" must be a SceneRole with an executable category-binding consumer (${h.join(" | ")})`)}),n}function Oe(e){if(!Array.isArray(e))return['"constraints" must be an array'];if(e.length>d.maxItemsPerContainer)return[`"constraints" must contain at most ${d.maxItemsPerContainer} entries`];let n=[];return e.forEach((t,i)=>{let r=`constraints[${i}]`;if(!S(t)){n.push(`"${r}" must be an object`);return}if(typeof t.kind!="string"||!k.includes(t.kind)){n.push(`"${r}.kind" must be one of ${k.join(" | ")}`);return}let o=t.kind,s=w(o),a=new Set(U(o));for(let l of Object.keys(t))a.has(l)||n.push(`unknown constraint field "${r}.${l}"`);t.action!=="warn"&&t.action!=="error"&&n.push(`"${r}.action" must be one of warn | error`);for(let[l,c]of Object.entries(s)){let f=t[l];if(f===void 0){c.required&&n.push(`"${r}.${l}" is required for ${o}`);continue}c.kind==="role"&&!W.has(f)?n.push(`"${r}.${l}" must be a registered built-in SceneRole`):c.kind==="number"&&!z(f,c)&&n.push(`"${r}.${l}" must be between ${c.minimum} and ${c.maximum}`)}}),n}function A(e){if(!S(e))return["style spec must be a plain object"];if(Object.keys(e).length>d.maxItemsPerContainer)return[`style spec must contain at most ${d.maxItemsPerContainer} fields`];let n=[];for(let[t,i]of Object.entries(e)){if(!Object.hasOwn(T,t)){n.push(`unknown field "${t}"`);continue}let r=T[t];if(i!==void 0)switch(r.kind){case"const":i!==r.value&&n.push(`"${t}" must be ${r.value}`);break;case"string":typeof i!="string"?n.push(`"${t}" must be a string`):r.runtimeValidator==="safeCssFontFamily"&&P(i)===void 0&&n.push(`"${t}" must be a safe non-fetching CSS font family or stack`);break;case"boolean":typeof i!="boolean"&&n.push(`"${t}" must be a boolean`);break;case"number":case"integer":z(i,r)||n.push(`"${t}" must be ${r.expected}`);break;case"enum":(typeof i!="string"||!r.values.includes(i))&&n.push(`"${t}" must be one of ${r.values.join(" | ")}`);break;case"roles":n.push(...he(i));break;case"semanticSlots":n.push(...Re(i));break;case"bindings":n.push(...ke(i));break;case"constraints":n.push(...Oe(i));break;case"colors":{if(!S(i)){n.push('"colors" must be an object of color tokens');break}for(let[o,s]of Object.entries(i))Object.hasOwn(v,o)?s!==void 0&&typeof s!="string"?n.push(`color token "${o}" must be a string`):s!==void 0&&q(s)===void 0&&n.push(`color token "${o}" must be a safe non-fetching CSS color`):n.push(`unknown color token "${o}"`);break}}}return V(n,"Style validation")}function Ce(){return Object.fromEntries(Object.entries(g).map(([e,n])=>{if(n.kind==="number"){let t=n;return[e,{type:"number",...t.minimum!==void 0?{minimum:t.minimum}:{},...t.exclusiveMinimum!==void 0?{exclusiveMinimum:t.exclusiveMinimum}:{},...t.maximum!==void 0?{maximum:t.maximum}:{},description:t.description}]}return n.kind==="enum"?[e,{type:"string",enum:[...n.values],description:n.description}]:[e,{type:"string",description:n.description,"x-agentic-mermaid-runtime-validator":n.kind==="font"?"safeCssFontFamily":"safeStylePaint"}]}))}function Z(e=Object.keys(g)){let n=Ce();return{type:"object",additionalProperties:!1,maxProperties:e.length,properties:Object.fromEntries(e.map(t=>[t,n[t]]))}}function re(e){return`roleStyle-${e.role}`}var Q="^[A-Za-z][A-Za-z0-9._-]{0,63}$";function Ee(e){switch(e.kind){case"const":return{const:e.value,description:e.description};case"string":return{type:"string",description:e.description,...e.runtimeValidator?{"x-agentic-mermaid-runtime-validator":e.runtimeValidator}:{}};case"boolean":return{type:"boolean",description:e.description};case"enum":return{type:"string",enum:[...e.values],description:e.description};case"number":case"integer":return{type:e.kind,...e.minimum!==void 0?{minimum:e.minimum}:{},...e.exclusiveMinimum!==void 0?{exclusiveMinimum:e.exclusiveMinimum}:{},...e.maximum!==void 0?{maximum:e.maximum}:{},description:e.description};case"roles":return{type:"object",additionalProperties:!1,description:e.description,properties:Object.fromEntries(ee.map(n=>[n.role,{$ref:`#/$defs/${re(n)}`}]))};case"semanticSlots":return{type:"object",description:e.description,maxProperties:d.maxItemsPerContainer,propertyNames:{pattern:Q,not:{enum:[...L]}},additionalProperties:{$ref:"#/$defs/roleStyle-any"}};case"bindings":return{type:"array",description:e.description,maxItems:d.maxItemsPerContainer,items:{type:"object",additionalProperties:!1,maxProperties:4,required:["channel","value","slot"],properties:{channel:{type:"string",enum:[...$]},value:{type:"string",minLength:1,maxLength:256,pattern:"^[^\\r\\n\\u0000]+$"},slot:{type:"string",pattern:Q,not:{enum:[...L]}},role:{type:"string",enum:[...h]}}}};case"constraints":{let n={type:"string",enum:["warn","error"]},t={type:"string",enum:R.map(r=>r.role)},i=k.map(r=>{let o=w(r),s=Object.fromEntries(Object.entries(o).map(([a,l])=>[a,l.kind==="role"?t:{type:"number",minimum:l.minimum,maximum:l.maximum}]));return{type:"object",additionalProperties:!1,required:[...H(r)],properties:{kind:{const:r},action:n,...s}}});return{type:"array",description:e.description,maxItems:d.maxItemsPerContainer,items:{oneOf:i}}}case"colors":return{type:"object",additionalProperties:!1,maxProperties:Object.keys(v).length,description:`${e.description} Runtime validation applies the stricter safe-color policy.`,properties:Object.fromEntries(Object.entries(v).map(([n,t])=>[n,{type:"string",description:`${t.description} Must be a safe, non-fetching CSS color.`,"x-agentic-mermaid-runtime-validator":"safeCssColor"}]))}}}function xe(){let e=Object.fromEntries(ee.map(n=>[re(n),Z(n.style.applicableProperties)]));return{$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://agentic-mermaid.dev/schemas/style-spec.schema.json",title:"Agentic Mermaid StyleSpec",description:"A partial declarative style record for Agentic Mermaid rendering. All fields, including formatVersion, are optional on input; resolved and registered specs normalize formatVersion to 1.",type:"object",additionalProperties:!1,maxProperties:Object.keys(T).length,properties:Object.fromEntries(Object.entries(T).map(([n,t])=>[n,Ee(t)])),$defs:{...e,"roleStyle-any":Z()}}}var ie=Object.freeze([{id:"palette:paper",inputName:"paper",displayLabel:"Paper",colors:{bg:"#F5F0E4",fg:"#221E16",accent:"#9A4A24"}},{id:"palette:dusk",inputName:"dusk",displayLabel:"Dusk",colors:{bg:"#2A2521",fg:"#E9DFCC",accent:"#CC8A57"}},{id:"palette:zinc-light",inputName:"zinc-light",displayLabel:"Zinc Light",colors:{bg:"#FFFFFF",fg:"#27272A"}},{id:"palette:zinc-dark",inputName:"zinc-dark",displayLabel:"Zinc Dark",colors:{bg:"#18181B",fg:"#FAFAFA"}},{id:"palette:tokyo-night",inputName:"tokyo-night",displayLabel:"Tokyo Night",colors:{bg:"#1a1b26",fg:"#a9b1d6",line:"#3d59a1",accent:"#7aa2f7",muted:"#565f89"}},{id:"palette:tokyo-night-storm",inputName:"tokyo-night-storm",displayLabel:"Tokyo Night Storm",colors:{bg:"#24283b",fg:"#a9b1d6",line:"#3d59a1",accent:"#7aa2f7",muted:"#565f89"}},{id:"palette:tokyo-night-light",inputName:"tokyo-night-light",displayLabel:"Tokyo Night Light",colors:{bg:"#d5d6db",fg:"#343b58",line:"#34548a",accent:"#34548a",muted:"#9699a3"}},{id:"palette:catppuccin-mocha",inputName:"catppuccin-mocha",displayLabel:"Catppuccin Mocha",colors:{bg:"#1e1e2e",fg:"#cdd6f4",line:"#585b70",accent:"#cba6f7",muted:"#6c7086"}},{id:"palette:catppuccin-latte",inputName:"catppuccin-latte",displayLabel:"Catppuccin Latte",colors:{bg:"#eff1f5",fg:"#4c4f69",line:"#9ca0b0",accent:"#8839ef",muted:"#9ca0b0"}},{id:"palette:nord",inputName:"nord",displayLabel:"Nord",colors:{bg:"#2e3440",fg:"#d8dee9",line:"#4c566a",accent:"#88c0d0",muted:"#616e88"}},{id:"palette:nord-light",inputName:"nord-light",displayLabel:"Nord Light",colors:{bg:"#eceff4",fg:"#2e3440",line:"#aab1c0",accent:"#5e81ac",muted:"#7b88a1"}},{id:"palette:dracula",inputName:"dracula",displayLabel:"Dracula",colors:{bg:"#282a36",fg:"#f8f8f2",line:"#6272a4",accent:"#bd93f9",muted:"#6272a4"}},{id:"palette:github-light",inputName:"github-light",displayLabel:"GitHub Light",colors:{bg:"#ffffff",fg:"#1f2328",line:"#d1d9e0",accent:"#0969da",muted:"#59636e"}},{id:"palette:github-dark",inputName:"github-dark",displayLabel:"GitHub Dark",colors:{bg:"#0d1117",fg:"#e6edf3",line:"#3d444d",accent:"#4493f8",muted:"#9198a1"}},{id:"palette:solarized-light",inputName:"solarized-light",displayLabel:"Solarized Light",colors:{bg:"#fdf6e3",fg:"#657b83",line:"#93a1a1",accent:"#268bd2",muted:"#93a1a1"}},{id:"palette:solarized-dark",inputName:"solarized-dark",displayLabel:"Solarized Dark",colors:{bg:"#002b36",fg:"#839496",line:"#586e75",accent:"#268bd2",muted:"#586e75"}},{id:"palette:one-dark",inputName:"one-dark",displayLabel:"One Dark",colors:{bg:"#282c34",fg:"#abb2bf",line:"#4b5263",accent:"#c678dd",muted:"#5c6370"}},{id:"palette:salmon",inputName:"salmon",displayLabel:"Salmon",colors:{bg:"#FFFBF5",fg:"#521000",line:"#C9A88A",accent:"#FF4801",muted:"#85532E",surface:"#FFFDFB",border:"#D4B89E"}},{id:"palette:salmon-dark",inputName:"salmon-dark",displayLabel:"Salmon Dark",colors:{bg:"#1F1008",fg:"#F5DCC8",line:"#6B4A2E",accent:"#FF6B35",muted:"#A07858",surface:"#2A1810",border:"#5A3A22"}},{id:"palette:tufte-dark",inputName:"tufte-dark",displayLabel:"Tufte Dark",colors:{bg:"#1C1C1A",fg:"#E8E4DC",line:"#666660",accent:"#C87070",muted:"#908880",surface:"#2A2926",border:"#444440"}}]);var F=Object.freeze(["fontSize","fontWeight","letterSpacing","textTransform","textColor"]),oe=Object.freeze(["paddingX","paddingY","cornerRadius","lineWidth","fillColor","borderColor"]),un=Object.freeze({text:Object.freeze({sourceRole:"label",fields:F}),node:Object.freeze({sourceRole:"node",fields:Object.freeze([...F,...oe])}),edge:Object.freeze({sourceRole:"edge",fields:Object.freeze([...F,"lineWidth","bendRadius","strokeColor"])}),group:Object.freeze({sourceRole:"group",fields:Object.freeze([...F,...oe,"fontFamily","headerFillColor"])})}),se="1.0.0",le=Object.freeze({core:"^0.4.0"}),Te=Object.freeze({owner:"agentic-mermaid",source:"built-in",reference:"src/scene/style-registry.ts"}),_e=Object.freeze({owner:"host",source:"in-process"}),m=new Map,C=new Map,Y=0;function Ne(){if(Y>0)throw new Error("Style registry mutation is forbidden while a Style input is undergoing admission")}function de(e){Y++;try{return e()}finally{Y--}}function Ie(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function je(e){let n=new WeakMap,t=new WeakSet,i=new Set(["__proto__","prototype","constructor"]),r=0,o=0,s=(a,l)=>{if(l>d.maxDepth)throw new TypeError(`Style input exceeds maximum nesting depth ${d.maxDepth}`);if(r++,r>d.maxNodes)throw new TypeError(`Style input exceeds the ${d.maxNodes}-node limit`);if(typeof a=="string"){if(o+=a.length,o>d.maxAggregateTextCharacters)throw new TypeError(`Style input exceeds the ${d.maxAggregateTextCharacters}-character text limit`);return a}if(typeof a!="object"||a===null)return a;if(t.has(a))throw new TypeError("Style input must be acyclic");let c=n.get(a);if(c!==void 0)return c;if(Array.isArray(a)){if(a.length>d.maxItemsPerContainer)throw new TypeError(`Style array must contain at most ${d.maxItemsPerContainer} items`);let p=[];n.set(a,p),t.add(a);for(let y=0;y<a.length;y++){if(!Object.prototype.hasOwnProperty.call(a,y))throw new TypeError("Style arrays must not be sparse");p.push(s(a[y],l+1))}return t.delete(a),Object.freeze(p)}if(!Ie(a))return a;let f=Object.entries(a);if(f.length>d.maxItemsPerContainer)throw new TypeError(`Style object must contain at most ${d.maxItemsPerContainer} properties`);let b=Object.create(null);n.set(a,b),t.add(a);for(let[p,y]of f){if(i.has(p))throw new TypeError(`Style input uses forbidden key "${p}"`);if(o+=p.length,o>d.maxAggregateTextCharacters)throw new TypeError(`Style input exceeds the ${d.maxAggregateTextCharacters}-character text limit`);Object.defineProperty(b,p,{value:s(y,l+1),enumerable:!0,writable:!1,configurable:!1})}return t.delete(a),Object.freeze(b)};return s(e,0)}function we(e){let n=je(e),t=A(n);if(t.length)throw new Error(`Invalid style spec: ${t.join("; ")}`);return n}function K(e){if(e)return Object.freeze(Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Object.freeze({...t})])))}function M(e){if(e)return Object.freeze(Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Object.freeze({...t})])))}function E(e){return e?Object.freeze(e.map(n=>Object.freeze({...n}))):void 0}function N(e){if(!e)return;let{displayLabel:n,...t}=e;return Object.freeze({...t,formatVersion:O,...t.colors?{colors:Object.freeze({...t.colors})}:{},...t.roles?{roles:K(t.roles)}:{},...t.semanticSlots?{semanticSlots:M(t.semanticSlots)}:{},...t.bindings?{bindings:E(t.bindings)}:{},...t.constraints?{constraints:E(t.constraints)}:{}})}function ve(e,n,t){return G({id:e,kind:n,version:t.version??se,compatibility:{...le,...t.compatibility},provenance:t.provenance??_e})}function $e(e,n,t,i){let r=e.name,o=Object.freeze({...e,formatVersion:O,...e.colors?{colors:Object.freeze({...e.colors})}:{},...e.roles?{roles:K(e.roles)}:{},...e.semanticSlots?{semanticSlots:M(e.semanticSlots)}:{},...e.bindings?{bindings:E(e.bindings)}:{},...e.constraints?{constraints:E(e.constraints)}:{}}),s=ve(r,n,t);if(X(m,{identity:s,value:o}),i!==void 0){let a=C.get(i),l=m.has(i)&&i!==r?i:void 0;if(a!==void 0||l!==void 0)throw m.delete(r),new Error(`Style input name "${i}" already selects "${a??l}"`);C.set(i,r)}return()=>{if(Ne(),m.get(r)?.identity!==s)return!1;let l=m.delete(r);return l&&i!==void 0&&C.get(i)===r&&C.delete(i),l}}function u(e,n="look",t=e.name??""){if(!e.name)throw new Error("registerBuiltInStyle requires a name");let i=e.name,r=B(n,i),o=A(N({...e,name:r}));if(o.length)throw new Error(`Invalid built-in style "${r}": ${o.join("; ")}`);$e({...e,name:r},n,{version:se,compatibility:le,provenance:Te},t)}function ce(e){return m.has(e)?e:C.get(e)}function fn(e){let n=ce(e);if(!n)return;let t=N(m.get(n)?.value);if(t)return Object.freeze({canonicalId:n,spec:t})}function Ae(){return Fe().map(e=>e.inputName)}function Fe(){return Object.freeze(Array.from(m.values(),({identity:e,value:n})=>{let t=Array.from(C.entries()).find(([,o])=>o===e.id)?.[0]??e.id,i=e.id.slice(e.id.indexOf(":")+1),r=n.displayLabel??i.split("-").filter(Boolean).map(o=>o==="ops"?"OPS":o.charAt(0).toUpperCase()+o.slice(1)).join(" ");return Object.freeze({identity:e,spec:N(n),inputName:t,displayLabel:r,kind:e.kind,isDefault:e.id==="look:crisp"})}))}function _(e){return e.stroke==="freehand"||e.fill==="wash"?"hybrid":e.stroke==="jittered"||e.fill==="hachure"||e.backdrop!==void 0&&e.backdrop!=="plain"||e.roughness!==void 0||e.bowing!==void 0||e.passes!==void 0||e.hachureGap!==void 0||e.hachureAngle!==void 0||e.fillWeight!==void 0?"rough":"default"}function Pe(e,n){if(!e&&!n)return;let t={...e},i=t;for(let[r,o]of Object.entries(n??{}))o!==void 0&&(i[r]={...i[r],...o});return t}function Be(e,n){if(!e&&!n)return;let t={...e};for(let[i,r]of Object.entries(n??{}))t[i]={...t[i],...r};return t}function ae(e,n){if(!e&&!n)return;let t=[],i=new Set;for(let r of[...e??[],...n??[]]){let o=JSON.stringify(r);i.has(o)||(i.add(o),t.push(r))}return t}function ue(e){if(e===void 0)return;let n=Array.isArray(e)?e:[e],t=[];for(let r of n)if(typeof r=="string"){let o=ce(r);if(o==="look:crisp")continue;let s=o?m.get(o)?.value:void 0;if(!s)throw new Error(`Unknown style "${r}". Known styles: ${Ae().join(", ")}`);t.push(s)}else t.push(we(r));if(t.length===0)return;let i={formatVersion:O};for(let r of t)for(let[o,s]of Object.entries(r))if(s!==void 0)if(o==="colors"){let a={...i.colors};for(let[l,c]of Object.entries(r.colors??{}))c!==void 0&&(a[l]=c);i.colors=a}else o==="roles"?i.roles=Pe(i.roles,r.roles):o==="semanticSlots"?i.semanticSlots=Be(i.semanticSlots,r.semanticSlots):o==="bindings"?i.bindings=ae(i.bindings,r.bindings):o==="constraints"?i.constraints=ae(i.constraints,r.constraints):i[o]=s;return i}function pn(e){return de(()=>{let n=ue(e);return n&&fe(n),N(n)})}function Le(e){return e?{...e}:void 0}function De(e){let n=e.strokeWidth,t=e.roles?Object.fromEntries(Object.entries(e.roles).map(([s,a])=>[s,Le(a)])):void 0,i={...n!==void 0&&n>0&&_(e)==="default"?{lineWidth:n}:{},...t?.node},r={...n!==void 0&&n>0&&_(e)==="default"?{lineWidth:n}:{},...t?.edge},o={...n!==void 0&&n>0&&_(e)==="default"?{lineWidth:n}:{},...t?.group};if(!(!t&&!e.semanticSlots&&!e.bindings&&!e.constraints&&Object.keys(i).length===0&&Object.keys(r).length===0&&Object.keys(o).length===0))return{...t?{roles:K(t)}:{},...e.semanticSlots?{semanticSlots:M(e.semanticSlots)}:{},...e.bindings?{bindings:E(e.bindings)}:{},...e.constraints?{constraints:E(e.constraints)}:{},...t?.label?{text:{...t.label}}:{},...Object.keys(i).length?{node:i}:{},...Object.keys(r).length?{edge:r}:{},...Object.keys(o).length?{group:o}:{}}}function ze(e,n){let t=n[e.channel];return Array.isArray(t)?t.includes(e.value):String(t??"")===e.value}function mn(e,n,t={},i={}){let r=R.find(f=>f.role===n),o=e?.roles,s=i.includeFallback===!1?void 0:r?o?.[r.style.fallbackRole]:void 0,a=o?.[n],l=s||a?{...s,...a}:void 0,c=new Set(r?.style.applicableProperties??[]);for(let f of e?.bindings??[]){if(f.role!==void 0&&f.role!==n||!ze(f,t))continue;let b=e?.semanticSlots?.[f.slot];if(!b)continue;let p=Object.fromEntries(Object.entries(b).filter(([y])=>c.has(y)));l={...l,...p}}return l?Object.freeze(l):void 0}function fe(e){for(let[o,s]of(e.bindings??[]).entries()){let a=e.semanticSlots?.[s.slot];if(!a)throw new Error(`Invalid style spec: binding ${o+1} references missing semantic slot "${s.slot}"`);let l=s.role===void 0?new Set(j):new Set(R.find(c=>c.role===s.role).style.applicableProperties);if(!Object.keys(a).some(c=>l.has(c)))throw new Error(s.role===void 0?`Invalid style spec: semantic slot "${s.slot}" has no field applicable to any executable category-binding role`:`Invalid style spec: semantic slot "${s.slot}" has no field applicable to role "${s.role}"`)}let t=["hachureAngle","hachureGap","fillWeight"].filter(o=>e[o]!==void 0&&e.fill!=="hachure");if(t.length>0)throw new Error(`Invalid style spec: ${t.map(o=>`"${o}"`).join(", ")} require fill "hachure" in the final Style stack`);let r=["washOpacity","washEdge"].filter(o=>e[o]!==void 0&&e.fill!=="wash");if(r.length>0)throw new Error(`Invalid style spec: ${r.map(o=>`"${o}"`).join(", ")} require fill "wash" in the final Style stack`);if(e.fill!==void 0&&_(e)==="default")throw new Error('Invalid style spec: "fill" has no crisp/default backend projection; combine it with stroke "jittered"/"freehand" or another rough/hybrid backend field')}function yn(e){return de(()=>{let n=ue(e);if(n===void 0)return{};fe(n);let t=N(n),i=De(n);return{...t?{style:t}:{},...i?{face:i}:{}}})}function gn(e){return _(e)!=="default"||e.colors!==void 0||e.font!==void 0||e.strokeWidth!==void 0||e.roles!==void 0||e.semanticSlots!==void 0||e.bindings!==void 0||e.constraints!==void 0}u({name:"crisp",displayLabel:"Crisp",blurb:"The default renderer with precise SVG geometry.",stroke:"crisp"},"look");for(let e of ie){let{inputName:n,colors:t}=e;if(B("palette",n)!==e.id)throw new Error(`Built-in palette identity mismatch: ${e.id}`);u({name:n,displayLabel:e.displayLabel,blurb:`Palette: ${n}.`,colors:{bg:t.bg,fg:t.fg,line:t.line,accent:t.accent,muted:t.muted,surface:t.surface,border:t.border}},"palette",n)}u({name:"hand-drawn",displayLabel:"Hand-drawn",blurb:"Black ink on ruled paper \u2014 wobbly double strokes, unfilled boxes.",intent:"draft",colors:{bg:"#f7f5ef",fg:"#1a1a1e",line:"#26262b",accent:"#26262b",border:"#26262b"},font:"Caveat",stroke:"jittered",roughness:1,bowing:1,passes:2,strokeWidth:1.8,fill:"none",backdrop:"paper-ruled",mono:!0});u({name:"excalidraw",displayLabel:"Excalidraw",blurb:"Virtual whiteboard style \u2014 rough strokes, pastel hachure fills.",intent:"draft",colors:{bg:"#ffffff",fg:"#1e1e1e",line:"#1e1e1e",accent:"#4263eb",surface:"#f1f3f5"},font:"Caveat",stroke:"jittered",roughness:1.1,bowing:1.2,passes:2,strokeWidth:1.6,fill:"hachure",hachureAngle:-41,hachureGap:5.5,fillWeight:.9});u({name:"pen-and-ink",displayLabel:"Pen & ink",blurb:"Fine single-pass linework on warm cream \u2014 no interior hatching.",intent:"premium",colors:{bg:"#faf6ec",fg:"#241f1a",line:"#2b241d",accent:"#2b241d",border:"#2b241d"},font:"EB Garamond",stroke:"jittered",roughness:.5,bowing:.6,passes:1,strokeWidth:1.5,fill:"none",mono:!0});u({name:"freehand",displayLabel:"Freehand",blurb:"Pressure-sensitive marker ribbons \u2014 variable-width filled strokes.",intent:"draft",colors:{bg:"#fbfaf7",fg:"#16161a",line:"#1d1d22",accent:"#1d1d22",border:"#1d1d22"},font:"Architects Daughter",stroke:"freehand",roughness:.9,passes:1,strokeWidth:1.6,fill:"none",mono:!0});u({name:"watercolor",displayLabel:"Watercolor",blurb:"Rough outlines over translucent glazes with pigment-pooled edges.",intent:"premium",colors:{bg:"#fdfbf6",fg:"#31302c",line:"#4d4a44",accent:"#7a6a52",surface:"#ead9b9",border:"#5a564e"},font:"Caveat",stroke:"jittered",roughness:.9,bowing:.8,passes:1,strokeWidth:1.5,fill:"wash",washOpacity:.3,washEdge:.34});u({name:"blueprint",displayLabel:"Blueprint",blurb:"Cyanotype: white linework on Prussian blue with a drafting grid.",intent:"premium",colors:{bg:"#123a63",fg:"#eaf2fb",line:"#dbe9f7",accent:"#ffffff",muted:"#b8cfe6",surface:"#1c4a78",border:"#dbe9f7"},font:"Share Tech Mono",stroke:"jittered",roughness:.4,bowing:.4,passes:1,strokeWidth:1.4,fill:"none",backdrop:"grid",mono:!0});u({name:"tufte",displayLabel:"Tufte",blurb:"Maximal data-ink: crisp hairlines, warm paper, one red accent.",intent:"premium",colors:{bg:"#fffff8",fg:"#111111",line:"#4a4a45",accent:"#a00000",muted:"#6b6b64",border:"#8a8a80"},font:"EB Garamond",roles:{node:{lineWidth:.8,cornerRadius:0},edge:{lineWidth:.8},group:{lineWidth:.8}},mono:!0},"look","look:tufte");u({name:"accessible-high-contrast",displayLabel:"Accessible Contrast",blurb:"Accessibility-first: large labels, heavy strokes, white ground, colorblind-safe blue accent.",intent:"premium",colors:{bg:"#ffffff",fg:"#050505",line:"#111111",accent:"#005fcc",muted:"#333333",surface:"#ffffff",border:"#050505"},roles:{node:{fontSize:17,fontWeight:700,textColor:"var(--fg)",paddingX:28,paddingY:16,cornerRadius:8,lineWidth:2.4,borderColor:"var(--fg)"},edge:{fontSize:14,fontWeight:700,textColor:"var(--fg)",lineWidth:2.6,bendRadius:10,strokeColor:"var(--fg)"},group:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:22,cornerRadius:8,lineWidth:2.2,borderColor:"var(--fg)"}}});u({name:"patent-drawing",displayLabel:"Patent Hatching",blurb:"Print-safe patent figure: uniform ink, strong outlines, tone via oblique hatching.",intent:"premium",colors:{bg:"#ffffff",fg:"#111111",line:"#111111",accent:"#111111",muted:"#444444",surface:"#ffffff",border:"#111111"},font:"EB Garamond",stroke:"jittered",roughness:.3,bowing:.2,passes:1,strokeWidth:1.35,fill:"hachure",hachureAngle:-50,hachureGap:7,fillWeight:.65,roles:{node:{fontSize:14,fontWeight:600,textColor:"var(--fg)",paddingX:24,paddingY:13,lineWidth:1.35,cornerRadius:0,borderColor:"var(--fg)"},edge:{fontSize:12,textColor:"var(--fg)",lineWidth:1.45,bendRadius:0,strokeColor:"var(--fg)"},group:{fontSize:12,fontWeight:700,textColor:"var(--fg)",paddingX:22,paddingY:18,lineWidth:1.35,cornerRadius:0,borderColor:"var(--fg)"}},mono:!0});u({name:"status-dashboard",displayLabel:"Dark Ops Dashboard",blurb:"Operational dashboard: dark surface, rounded modules, bright status-friendly accent.",intent:"premium",colors:{bg:"#08111f",fg:"#e6f4ff",line:"#5a7c99",accent:"#2dd4bf",muted:"#8aa6bf",surface:"#102033",border:"#2e4c63"},roles:{node:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:13,cornerRadius:10,lineWidth:1.4,borderColor:"var(--fg)"},edge:{fontSize:12,fontWeight:600,textColor:"var(--fg)",lineWidth:2,bendRadius:14,strokeColor:"var(--fg)"},group:{fontSize:13,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.06,paddingX:22,paddingY:20,cornerRadius:10,lineWidth:1.3,borderColor:"var(--fg)"}}});u({name:"ops-schematic",displayLabel:"Compact Trace Map",blurb:"Dense operational schematic: compact mono labels, sturdy traces, theme-friendly geometry.",intent:"lofi",colors:{bg:"#f8faf7",fg:"#17211c",line:"#24523b",accent:"#0f766e",muted:"#4f665a",surface:"#f0f5ef",border:"#24523b"},font:"Share Tech Mono",stroke:"jittered",roughness:.18,bowing:.2,passes:1,strokeWidth:1.6,fill:"none",roles:{node:{fontSize:12,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",paddingX:16,paddingY:8,cornerRadius:2,lineWidth:1.6,borderColor:"var(--fg)"},edge:{fontSize:10,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",lineWidth:1.8,bendRadius:0,strokeColor:"var(--fg)"},group:{fontSize:11,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.05,paddingX:16,paddingY:16,cornerRadius:2,lineWidth:1.5,borderColor:"var(--fg)"}}});u({name:"chalkboard",displayLabel:"Chalkboard",blurb:"Classroom chalkboard: dusty off-white strokes on green slate.",intent:"draft",colors:{bg:"#17362f",fg:"#f5f1df",line:"#ece6cf",accent:"#ffe08a",muted:"#c7d2c4",surface:"#17362f",border:"#f3ecd5"},font:"Caveat",stroke:"jittered",roughness:1.25,bowing:1,passes:2,strokeWidth:1.9,fill:"none",roles:{node:{fontSize:16,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:12,borderColor:"var(--fg)"},edge:{fontSize:13,textColor:"var(--fg)",lineWidth:1.8,strokeColor:"var(--fg)"},group:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:20,paddingY:20,lineWidth:1.7,borderColor:"var(--fg)"}},mono:!0});u({name:"risograph",displayLabel:"Riso Print",blurb:"Two-ink poster print: warm stock, offset blue linework, coral accent, coarse hachure.",intent:"premium",colors:{bg:"#fff5df",fg:"#2b2725",line:"#1f3d5a",accent:"#ff5a5f",muted:"#876a52",surface:"#ffd166",border:"#1f3d5a"},font:"EB Garamond",stroke:"jittered",roughness:.7,bowing:.55,passes:1,strokeWidth:1.5,fill:"hachure",hachureAngle:18,hachureGap:6.5,fillWeight:.75,roles:{node:{fontSize:14,fontWeight:700,textColor:"var(--fg)",paddingX:24,paddingY:13,cornerRadius:3,borderColor:"var(--fg)"},edge:{fontSize:12,textColor:"var(--fg)",lineWidth:1.5,strokeColor:"var(--fg)"},group:{fontSize:13,fontWeight:700,textColor:"var(--fg)",paddingX:22,paddingY:18,cornerRadius:3,borderColor:"var(--fg)"}}});u({name:"architectural-plan",displayLabel:"Plan Drafting",blurb:"Architectural plan: square technical linework, uppercase mono labels, room-like frames.",intent:"premium",colors:{bg:"#fbf7ea",fg:"#202a2f",line:"#38535e",accent:"#1f6f8b",muted:"#60727a",surface:"#fffaf0",border:"#38535e"},font:"Share Tech Mono",stroke:"jittered",roughness:.18,bowing:.25,passes:1,strokeWidth:1.45,fill:"none",roles:{node:{fontSize:12,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",paddingX:20,paddingY:10,cornerRadius:0,lineWidth:1.45,borderColor:"var(--fg)"},edge:{fontSize:10,fontWeight:700,textTransform:"uppercase",textColor:"var(--fg)",lineWidth:1.55,bendRadius:0,strokeColor:"var(--fg)"},group:{fontSize:11,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.06,paddingX:20,paddingY:20,cornerRadius:0,lineWidth:1.45,borderColor:"var(--fg)"}}});u({name:"publication-figure",displayLabel:"Report Figure",blurb:"Polished publication figure: serif labels, confident rules, rounded boxes, one quiet accent.",intent:"premium",colors:{bg:"#fffdf8",fg:"#171512",line:"#24211d",accent:"#1d4ed8",muted:"#5f5a52",surface:"#faf5ea",border:"#24211d"},font:"EB Garamond",strokeWidth:1.45,roles:{node:{fontSize:15,fontWeight:700,textColor:"var(--fg)",paddingX:26,paddingY:14,cornerRadius:7,lineWidth:1.45,borderColor:"var(--fg)"},edge:{fontSize:12,fontWeight:600,textColor:"var(--fg)",lineWidth:1.45,bendRadius:8,strokeColor:"var(--fg)"},group:{fontSize:12,fontWeight:700,textColor:"var(--fg)",textTransform:"uppercase",letterSpacing:.08,paddingX:24,paddingY:22,cornerRadius:7,lineWidth:1.35,borderColor:"var(--fg)"}}});export{xe as a,fn as b,_ as c,pn as d,mn as e,yn as f,gn as g};
@@ -1 +1 @@
1
- import{E as l,F as i,l as u,r as g}from"./chunk-EX6TP7QM.js";var m={default:{bg:i.bg,fg:i.fg},base:{bg:i.bg,fg:i.fg},neutral:{bg:"#ffffff",fg:"#1f2937",line:"#9ca3af",accent:"#6b7280",muted:"#6b7280"},dark:{bg:"#18181B",fg:"#FAFAFA"},forest:{bg:"#f0fdf4",fg:"#14532d",line:"#4d7c0f",accent:"#15803d",muted:"#65a30d",border:"#86efac"}},d={bg:["background","mainBkg"],fg:["primaryTextColor","textColor","nodeTextColor"],line:["lineColor","defaultLinkColor"],accent:["arrowheadColor","primaryColor"],muted:["secondaryTextColor","tertiaryTextColor"],surface:["primaryColor","nodeBkg","mainBkg"],border:["primaryBorderColor","secondaryBorderColor"]};function F(e,r,n,o=!1){let t=b(r.theme),a=r.themeVariables,s=(...c)=>{let f=C(a,...c);return o?f:l(f)};return{bg:e.bg??s(...d.bg)??t?.bg??i.bg,fg:e.fg??s(...d.fg)??t?.fg??i.fg,line:e.line??s(...d.line)??t?.line,accent:e.accent??s(...d.accent)??t?.accent,muted:e.muted??s(...d.muted)??t?.muted,surface:e.surface??s(...d.surface)??t?.surface,border:e.border??s(...d.border)??t?.border,shadow:e.shadow??t?.shadow,font:n,embedFontImport:e.embedFontImport}}function b(e){if(e)return m[e.toLowerCase()]}function C(e,...r){if(e)for(let n of r){let o=e[n];if(typeof o=="string"&&o.length>0)return o}}function M(e,r){let n,o=r.classAssignments.get(e);if(o){let a=r.classDefs.get(o);a&&(n={...a})}let t=r.nodeStyles.get(e);return t&&(n=n?{...n,...t}:{...t}),n}function v(e,r){let n,o=r.linkStyles.get("default");o&&(n={...o});let t=r.linkStyles.get(e);return t&&(n=n?{...n,...t}:{...t}),n}function p(e){let r=u(e);return r?{r:r[0],g:r[1],b:r[2]}:null}function y(e){let r=e.match(/^rgba?\(\s*(\d{1,3})(?:\s*,\s*|\s+)(\d{1,3})(?:\s*,\s*|\s+)(\d{1,3})/i);if(!r)return null;let n={r:Number.parseInt(r[1],10),g:Number.parseInt(r[2],10),b:Number.parseInt(r[3],10)};return Object.values(n).every(o=>o>=0&&o<=255)?n:null}function x(e){let r=p(e)??y(e);return r?g(r.r,r.g,r.b)>140?"#000000":"#FFFFFF":void 0}function D(e,r="var(--_text)"){return e?.color?e.color:e?.fill?x(e.fill)??r:r}export{d as a,F as b,C as c,M as d,v as e,x as f,D as g};
1
+ import{E as l,F as i,l as u,r as g}from"./chunk-2XCPFAD5.js";var m={default:{bg:i.bg,fg:i.fg},base:{bg:i.bg,fg:i.fg},neutral:{bg:"#ffffff",fg:"#1f2937",line:"#9ca3af",accent:"#6b7280",muted:"#6b7280"},dark:{bg:"#18181B",fg:"#FAFAFA"},forest:{bg:"#f0fdf4",fg:"#14532d",line:"#4d7c0f",accent:"#15803d",muted:"#65a30d",border:"#86efac"}},d={bg:["background","mainBkg"],fg:["primaryTextColor","textColor","nodeTextColor"],line:["lineColor","defaultLinkColor"],accent:["arrowheadColor","primaryColor"],muted:["secondaryTextColor","tertiaryTextColor"],surface:["primaryColor","nodeBkg","mainBkg"],border:["primaryBorderColor","secondaryBorderColor"]};function F(e,r,n,o=!1){let t=b(r.theme),a=r.themeVariables,s=(...c)=>{let f=C(a,...c);return o?f:l(f)};return{bg:e.bg??s(...d.bg)??t?.bg??i.bg,fg:e.fg??s(...d.fg)??t?.fg??i.fg,line:e.line??s(...d.line)??t?.line,accent:e.accent??s(...d.accent)??t?.accent,muted:e.muted??s(...d.muted)??t?.muted,surface:e.surface??s(...d.surface)??t?.surface,border:e.border??s(...d.border)??t?.border,shadow:e.shadow??t?.shadow,font:n,embedFontImport:e.embedFontImport}}function b(e){if(e)return m[e.toLowerCase()]}function C(e,...r){if(e)for(let n of r){let o=e[n];if(typeof o=="string"&&o.length>0)return o}}function M(e,r){let n,o=r.classAssignments.get(e);if(o){let a=r.classDefs.get(o);a&&(n={...a})}let t=r.nodeStyles.get(e);return t&&(n=n?{...n,...t}:{...t}),n}function v(e,r){let n,o=r.linkStyles.get("default");o&&(n={...o});let t=r.linkStyles.get(e);return t&&(n=n?{...n,...t}:{...t}),n}function p(e){let r=u(e);return r?{r:r[0],g:r[1],b:r[2]}:null}function y(e){let r=e.match(/^rgba?\(\s*(\d{1,3})(?:\s*,\s*|\s+)(\d{1,3})(?:\s*,\s*|\s+)(\d{1,3})/i);if(!r)return null;let n={r:Number.parseInt(r[1],10),g:Number.parseInt(r[2],10),b:Number.parseInt(r[3],10)};return Object.values(n).every(o=>o>=0&&o<=255)?n:null}function x(e){let r=p(e)??y(e);return r?g(r.r,r.g,r.b)>140?"#000000":"#FFFFFF":void 0}function D(e,r="var(--_text)"){return e?.color?e.color:e?.fill?x(e.fill)??r:r}export{d as a,F as b,C as c,M as d,v as e,x as f,D as g};
@@ -1 +1 @@
1
- import{O as i}from"./chunk-EX6TP7QM.js";var t=r=>Math.round(r*1e3)/1e3,n=r=>`fill="${i(r.fill)}" stroke="${i(r.stroke)}" stroke-width="${i(r.strokeWidth)}"`;function l(r,s){let e=n(s);switch(r.kind){case"rect":return`<rect x="${t(r.x)}" y="${t(r.y)}" width="${t(r.width)}" height="${t(r.height)}" rx="${r.rx??0}" ry="${r.ry??0}" ${e} />`;case"circle":return`<circle cx="${t(r.cx)}" cy="${t(r.cy)}" r="${t(r.r)}" ${e} />`;case"ellipse":return`<ellipse cx="${t(r.cx)}" cy="${t(r.cy)}" rx="${t(r.rx)}" ry="${t(r.ry)}" ${e} />`;case"polygon":return`<polygon points="${r.points.map(c=>`${t(c.x)},${t(c.y)}`).join(" ")}" ${e} />`}}export{l as a};
1
+ import{O as i}from"./chunk-2XCPFAD5.js";var t=r=>Math.round(r*1e3)/1e3,n=r=>`fill="${i(r.fill)}" stroke="${i(r.stroke)}" stroke-width="${i(r.strokeWidth)}"`;function l(r,s){let e=n(s);switch(r.kind){case"rect":return`<rect x="${t(r.x)}" y="${t(r.y)}" width="${t(r.width)}" height="${t(r.height)}" rx="${r.rx??0}" ry="${r.ry??0}" ${e} />`;case"circle":return`<circle cx="${t(r.cx)}" cy="${t(r.cy)}" r="${t(r.r)}" ${e} />`;case"ellipse":return`<ellipse cx="${t(r.cx)}" cy="${t(r.cy)}" rx="${t(r.rx)}" ry="${t(r.ry)}" ${e} />`;case"polygon":return`<polygon points="${r.points.map(c=>`${t(c.x)},${t(c.y)}`).join(" ")}" ${e} />`}}export{l as a};
@@ -1 +1 @@
1
- import{i as l}from"./chunk-32FWKUUV.js";import{f as S}from"./chunk-P7HMSKHJ.js";var h=["compositTitleSize","dividerMargin","fontSize","forkHeight","forkWidth","nodeSpacing","noteMargin","padding","radius","rankSpacing"],F=["arrowMarkerAbsolute","edgeLengthFactor","fontSizeFactor","labelHeight","miniPadding","sizeUnit","textHeight","titleShift","titleTopMargin"],k=["arrowMarkerAbsolute","compositTitleSize","defaultRenderer","dividerMargin","edgeLengthFactor","fontSize","fontSizeFactor","forkHeight","forkWidth","labelHeight","miniPadding","nodeSpacing","noteMargin","padding","radius","rankSpacing","sizeUnit","textHeight","titleShift","titleTopMargin"],C=new Set(k),E=new Set(h),R=new Set(F),I=new Set(["fontSize","compositTitleSize","forkWidth","forkHeight"]),f=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0,a=e=>typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0;function y(e){return e.filter(n=>!!n&&typeof n=="object"&&!Array.isArray(n))}function w(e,n=!1){let i=new Map;for(let t of y(e))for(let[o,r]of Object.entries(t))i.set(o,r);let s=[];for(let[t,o]of[...i].sort(([r],[d])=>S(r,d))){if(!C.has(t)){n&&s.push({code:"INEFFECTIVE_CONFIG",field:`state.${t}`,message:`State config field "state.${t}" is unknown and has no effect; check the spelling or remove it.`});continue}if(R.has(t)){s.push({code:"INEFFECTIVE_CONFIG",field:`state.${t}`,message:`State config field "state.${t}" is a legacy Dagre/fixed-metric option with no faithful effect in the ELK measured-text renderer.`});continue}if(t==="defaultRenderer"){o!=="elk"&&s.push({code:"INEFFECTIVE_CONFIG",field:"state.defaultRenderer",message:`State config field "state.defaultRenderer" requested ${JSON.stringify(o)}; this renderer supports only "elk" and will not silently select a different engine.`});continue}if(E.has(t)){let r=I.has(t);(r?f(o)!==void 0:a(o)!==void 0)||s.push({code:"INEFFECTIVE_CONFIG",field:`state.${t}`,message:`State config field "state.${t}" must be a ${r?"positive":"non-negative"} finite number; the supplied value was ignored.`})}}return s}function p(e){let n=e?.state;return n&&typeof n=="object"&&!Array.isArray(n)?n:{}}function D(e,n){let i={...p(e),...p(n.mermaidConfig)},s=a(i.nodeSpacing),t=a(i.rankSpacing),o=a(i.padding),r=a(i.radius),d=f(i.fontSize),c=f(i.compositTitleSize),m={...l,...o===void 0?{}:{nodePaddingX:o,nodePaddingY:o},...r===void 0?{}:{nodeCornerRadius:r},...d===void 0?{}:{nodeLabelFontSize:d,edgeLabelFontSize:d},...c===void 0?{}:{groupHeaderFontSize:c}},g=n.nodeSpacing??s,u=n.layerSpacing??t;return{...n,...g===void 0?{}:{nodeSpacing:g},...u===void 0?{}:{layerSpacing:u},stateVisual:{forkWidth:f(i.forkWidth)??70,forkHeight:f(i.forkHeight)??10,noteMargin:a(i.noteMargin)??18,dividerMargin:a(i.dividerMargin)??0,styleDefaults:m}}}export{w as a,D as b};
1
+ import{i as l}from"./chunk-UAEZO5VL.js";import{f as S}from"./chunk-P7HMSKHJ.js";var h=["compositTitleSize","dividerMargin","fontSize","forkHeight","forkWidth","nodeSpacing","noteMargin","padding","radius","rankSpacing"],F=["arrowMarkerAbsolute","edgeLengthFactor","fontSizeFactor","labelHeight","miniPadding","sizeUnit","textHeight","titleShift","titleTopMargin"],k=["arrowMarkerAbsolute","compositTitleSize","defaultRenderer","dividerMargin","edgeLengthFactor","fontSize","fontSizeFactor","forkHeight","forkWidth","labelHeight","miniPadding","nodeSpacing","noteMargin","padding","radius","rankSpacing","sizeUnit","textHeight","titleShift","titleTopMargin"],C=new Set(k),E=new Set(h),R=new Set(F),I=new Set(["fontSize","compositTitleSize","forkWidth","forkHeight"]),f=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0,a=e=>typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0;function y(e){return e.filter(n=>!!n&&typeof n=="object"&&!Array.isArray(n))}function w(e,n=!1){let i=new Map;for(let t of y(e))for(let[o,r]of Object.entries(t))i.set(o,r);let s=[];for(let[t,o]of[...i].sort(([r],[d])=>S(r,d))){if(!C.has(t)){n&&s.push({code:"INEFFECTIVE_CONFIG",field:`state.${t}`,message:`State config field "state.${t}" is unknown and has no effect; check the spelling or remove it.`});continue}if(R.has(t)){s.push({code:"INEFFECTIVE_CONFIG",field:`state.${t}`,message:`State config field "state.${t}" is a legacy Dagre/fixed-metric option with no faithful effect in the ELK measured-text renderer.`});continue}if(t==="defaultRenderer"){o!=="elk"&&s.push({code:"INEFFECTIVE_CONFIG",field:"state.defaultRenderer",message:`State config field "state.defaultRenderer" requested ${JSON.stringify(o)}; this renderer supports only "elk" and will not silently select a different engine.`});continue}if(E.has(t)){let r=I.has(t);(r?f(o)!==void 0:a(o)!==void 0)||s.push({code:"INEFFECTIVE_CONFIG",field:`state.${t}`,message:`State config field "state.${t}" must be a ${r?"positive":"non-negative"} finite number; the supplied value was ignored.`})}}return s}function p(e){let n=e?.state;return n&&typeof n=="object"&&!Array.isArray(n)?n:{}}function D(e,n){let i={...p(e),...p(n.mermaidConfig)},s=a(i.nodeSpacing),t=a(i.rankSpacing),o=a(i.padding),r=a(i.radius),d=f(i.fontSize),c=f(i.compositTitleSize),m={...l,...o===void 0?{}:{nodePaddingX:o,nodePaddingY:o},...r===void 0?{}:{nodeCornerRadius:r},...d===void 0?{}:{nodeLabelFontSize:d,edgeLabelFontSize:d},...c===void 0?{}:{groupHeaderFontSize:c}},g=n.nodeSpacing??s,u=n.layerSpacing??t;return{...n,...g===void 0?{}:{nodeSpacing:g},...u===void 0?{}:{layerSpacing:u},stateVisual:{forkWidth:f(i.forkWidth)??70,forkHeight:f(i.forkHeight)??10,noteMargin:a(i.noteMargin)??18,dividerMargin:a(i.dividerMargin)??0,styleDefaults:m}}}export{w as a,D as b};
@@ -1 +1 @@
1
- import{e as f,g as S}from"./chunk-EX6TP7QM.js";function R(n,e,t){return f(n,e,t)}function P(n,e){return S(n,e)}var C="'JetBrains Mono'",y=`${C}, 'SF Mono', 'Fira Code', ui-monospace, monospace`,b={nodeLabel:13,edgeLabel:11,groupHeader:12},c={nodeLabel:500,edgeLabel:400,groupHeader:600};var s={horizontal:20,vertical:10,diamondExtra:24},m={outerBox:1,innerBox:.75,connector:1},z="0.35em",H={width:8,height:5},E={dash:4,gap:4},F={nodeLabelFontSize:b.nodeLabel,edgeLabelFontSize:b.edgeLabel,groupHeaderFontSize:b.groupHeader,nodeLabelFontWeight:c.nodeLabel,edgeLabelFontWeight:c.edgeLabel,groupHeaderFontWeight:c.groupHeader,nodePaddingX:s.horizontal,nodePaddingY:s.vertical,diamondExtraPadding:s.diamondExtra,edgeLineWidth:m.connector,groupCornerRadius:0,groupPaddingX:16,groupPaddingY:16,groupLabelPaddingX:12,groupLineWidth:m.outerBox};function p(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function a(n,...e){for(let t of e){let r=p(t);if(r!=null&&r>0)return r}return n}function l(n,...e){for(let t of e){let r=p(t);if(r!=null&&r>=0)return r}return n}function g(...n){for(let e of n)if(typeof e=="string"&&e.trim().length>0)return e}function T(...n){for(let e of n){let t=g(e)?.toLowerCase();if(t==="uppercase"||t==="lowercase"||t==="capitalize")return t}}var h=/(<\/?(?:b|strong|i|em|u|s|del)\s*>)/gi;function N(n,e){if(!e)return n;let t=r=>{switch(e){case"uppercase":return r.toUpperCase();case"lowercase":return r.toLowerCase();case"capitalize":return r.replace(/\b\p{L}/gu,o=>o.toUpperCase())}};return n.split(h).map(r=>/^<\/?(?:b|strong|i|em|u|s|del)\s*>$/i.test(r)?r:t(r)).join("")}function X(n={},e=F,t){let r=t??n.styleFace,o=r?.text,d=r?.node,u=r?.edge,i=r?.group,x=l(void 0,i?.paddingX),L=e.nodeCornerRadius==null?l(void 0,d?.cornerRadius):l(e.nodeCornerRadius,d?.cornerRadius);return{nodeLabelFontSize:a(e.nodeLabelFontSize,d?.fontSize,o?.fontSize),edgeLabelFontSize:a(e.edgeLabelFontSize,u?.fontSize,o?.fontSize),groupHeaderFontSize:a(e.groupHeaderFontSize,i?.fontSize,o?.fontSize),nodeLabelFontWeight:a(e.nodeLabelFontWeight,d?.fontWeight,o?.fontWeight),edgeLabelFontWeight:a(e.edgeLabelFontWeight,u?.fontWeight,o?.fontWeight),groupHeaderFontWeight:a(e.groupHeaderFontWeight,i?.fontWeight,o?.fontWeight),nodeTextTransform:T(d?.textTransform,o?.textTransform,e.nodeTextTransform),edgeTextTransform:T(u?.textTransform,o?.textTransform,e.edgeTextTransform),nodeLetterSpacing:p(d?.letterSpacing)??p(o?.letterSpacing)??e.nodeLetterSpacing??0,edgeLetterSpacing:p(u?.letterSpacing)??p(o?.letterSpacing)??e.edgeLetterSpacing??0,groupLetterSpacing:p(i?.letterSpacing)??p(o?.letterSpacing)??e.groupLetterSpacing??0,nodePaddingX:l(e.nodePaddingX,d?.paddingX),nodePaddingY:l(e.nodePaddingY,d?.paddingY),diamondExtraPadding:e.diamondExtraPadding??s.diamondExtra,cornerRadius:L,nodeLineWidth:a(e.nodeLineWidth??m.innerBox,d?.lineWidth),nodeFillColor:g(d?.fillColor,e.nodeFillColor),nodeBorderColor:g(d?.borderColor,e.nodeBorderColor),nodeTextColor:g(d?.textColor,o?.textColor,e.nodeTextColor),lineWidth:a(e.edgeLineWidth,u?.lineWidth),edgeBendRadius:l(e.edgeBendRadius??0,u?.bendRadius),edgeStrokeColor:g(u?.strokeColor,e.edgeStrokeColor),edgeTextColor:g(u?.textColor,o?.textColor,e.edgeTextColor),groupFont:g(i?.fontFamily,e.groupFont),groupTextTransform:T(i?.textTransform,o?.textTransform,e.groupTextTransform),groupCornerRadius:l(e.groupCornerRadius,i?.cornerRadius),groupBorderColor:g(i?.borderColor,e.groupBorderColor),groupFillColor:g(i?.fillColor,e.groupFillColor),groupHeaderFillColor:g(i?.headerFillColor,e.groupHeaderFillColor),groupTextColor:g(i?.textColor,o?.textColor,e.groupTextColor),groupPaddingX:x??e.groupPaddingX,groupPaddingY:l(e.groupPaddingY,i?.paddingY),groupLabelPaddingX:x??e.groupLabelPaddingX??e.groupPaddingX,groupLineWidth:a(e.groupLineWidth??m.outerBox,i?.lineWidth)}}export{R as a,P as b,b as c,c as d,m as e,z as f,H as g,E as h,F as i,N as j,X as k};
1
+ import{e as f,g as S}from"./chunk-2XCPFAD5.js";function R(n,e,t){return f(n,e,t)}function P(n,e){return S(n,e)}var C="'JetBrains Mono'",y=`${C}, 'SF Mono', 'Fira Code', ui-monospace, monospace`,b={nodeLabel:13,edgeLabel:11,groupHeader:12},c={nodeLabel:500,edgeLabel:400,groupHeader:600};var s={horizontal:20,vertical:10,diamondExtra:24},m={outerBox:1,innerBox:.75,connector:1},z="0.35em",H={width:8,height:5},E={dash:4,gap:4},F={nodeLabelFontSize:b.nodeLabel,edgeLabelFontSize:b.edgeLabel,groupHeaderFontSize:b.groupHeader,nodeLabelFontWeight:c.nodeLabel,edgeLabelFontWeight:c.edgeLabel,groupHeaderFontWeight:c.groupHeader,nodePaddingX:s.horizontal,nodePaddingY:s.vertical,diamondExtraPadding:s.diamondExtra,edgeLineWidth:m.connector,groupCornerRadius:0,groupPaddingX:16,groupPaddingY:16,groupLabelPaddingX:12,groupLineWidth:m.outerBox};function p(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function a(n,...e){for(let t of e){let r=p(t);if(r!=null&&r>0)return r}return n}function l(n,...e){for(let t of e){let r=p(t);if(r!=null&&r>=0)return r}return n}function g(...n){for(let e of n)if(typeof e=="string"&&e.trim().length>0)return e}function T(...n){for(let e of n){let t=g(e)?.toLowerCase();if(t==="uppercase"||t==="lowercase"||t==="capitalize")return t}}var h=/(<\/?(?:b|strong|i|em|u|s|del)\s*>)/gi;function N(n,e){if(!e)return n;let t=r=>{switch(e){case"uppercase":return r.toUpperCase();case"lowercase":return r.toLowerCase();case"capitalize":return r.replace(/\b\p{L}/gu,o=>o.toUpperCase())}};return n.split(h).map(r=>/^<\/?(?:b|strong|i|em|u|s|del)\s*>$/i.test(r)?r:t(r)).join("")}function X(n={},e=F,t){let r=t??n.styleFace,o=r?.text,d=r?.node,u=r?.edge,i=r?.group,x=l(void 0,i?.paddingX),L=e.nodeCornerRadius==null?l(void 0,d?.cornerRadius):l(e.nodeCornerRadius,d?.cornerRadius);return{nodeLabelFontSize:a(e.nodeLabelFontSize,d?.fontSize,o?.fontSize),edgeLabelFontSize:a(e.edgeLabelFontSize,u?.fontSize,o?.fontSize),groupHeaderFontSize:a(e.groupHeaderFontSize,i?.fontSize,o?.fontSize),nodeLabelFontWeight:a(e.nodeLabelFontWeight,d?.fontWeight,o?.fontWeight),edgeLabelFontWeight:a(e.edgeLabelFontWeight,u?.fontWeight,o?.fontWeight),groupHeaderFontWeight:a(e.groupHeaderFontWeight,i?.fontWeight,o?.fontWeight),nodeTextTransform:T(d?.textTransform,o?.textTransform,e.nodeTextTransform),edgeTextTransform:T(u?.textTransform,o?.textTransform,e.edgeTextTransform),nodeLetterSpacing:p(d?.letterSpacing)??p(o?.letterSpacing)??e.nodeLetterSpacing??0,edgeLetterSpacing:p(u?.letterSpacing)??p(o?.letterSpacing)??e.edgeLetterSpacing??0,groupLetterSpacing:p(i?.letterSpacing)??p(o?.letterSpacing)??e.groupLetterSpacing??0,nodePaddingX:l(e.nodePaddingX,d?.paddingX),nodePaddingY:l(e.nodePaddingY,d?.paddingY),diamondExtraPadding:e.diamondExtraPadding??s.diamondExtra,cornerRadius:L,nodeLineWidth:a(e.nodeLineWidth??m.innerBox,d?.lineWidth),nodeFillColor:g(d?.fillColor,e.nodeFillColor),nodeBorderColor:g(d?.borderColor,e.nodeBorderColor),nodeTextColor:g(d?.textColor,o?.textColor,e.nodeTextColor),lineWidth:a(e.edgeLineWidth,u?.lineWidth),edgeBendRadius:l(e.edgeBendRadius??0,u?.bendRadius),edgeStrokeColor:g(u?.strokeColor,e.edgeStrokeColor),edgeTextColor:g(u?.textColor,o?.textColor,e.edgeTextColor),groupFont:g(i?.fontFamily,e.groupFont),groupTextTransform:T(i?.textTransform,o?.textTransform,e.groupTextTransform),groupCornerRadius:l(e.groupCornerRadius,i?.cornerRadius),groupBorderColor:g(i?.borderColor,e.groupBorderColor),groupFillColor:g(i?.fillColor,e.groupFillColor),groupHeaderFillColor:g(i?.headerFillColor,e.groupHeaderFillColor),groupTextColor:g(i?.textColor,o?.textColor,e.groupTextColor),groupPaddingX:x??e.groupPaddingX,groupPaddingY:l(e.groupPaddingY,i?.paddingY),groupLabelPaddingX:x??e.groupLabelPaddingX??e.groupPaddingX,groupLineWidth:a(e.groupLineWidth??m.outerBox,i?.lineWidth)}}export{R as a,P as b,b as c,c as d,m as e,z as f,H as g,E as h,F as i,N as j,X as k};