agentic-mermaid 0.5.3 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/Instructions_for_agents.md +1 -1
  3. package/README.md +1 -1
  4. package/dist/agent-core.d.ts +7 -7
  5. package/dist/agent-core.js +1 -1
  6. package/dist/agent.d.ts +7 -7
  7. package/dist/agent.js +1 -1
  8. package/dist/agentic-mermaid-mcp.js +1 -1
  9. package/dist/am.js +1 -1
  10. package/dist/browser-lazy/chunks/{agentic-producer-core-CC6OOLDW.js → agentic-producer-core-CWRJNRIK.js} +1 -1
  11. package/dist/browser-lazy/chunks/{architecture-QUFVKYJR.js → architecture-VU5WEHCH.js} +6 -6
  12. package/dist/browser-lazy/chunks/{block-6J3Q63BO.js → block-Z2DOU2NP.js} +5 -5
  13. package/dist/browser-lazy/chunks/{builtin-backends-7SOZZHPF.js → builtin-backends-6UTVDXF4.js} +6 -6
  14. package/dist/browser-lazy/chunks/c4-6FTCDDGS.js +10 -0
  15. package/dist/browser-lazy/chunks/{chunk-TYZOZXUJ.js → chunk-37ORXEBA.js} +6 -6
  16. package/dist/browser-lazy/chunks/{chunk-2UIA2IME.js → chunk-3VXXFUXR.js} +1 -1
  17. package/dist/browser-lazy/chunks/{chunk-2SH76OTH.js → chunk-6RXXXV66.js} +1 -1
  18. package/dist/browser-lazy/chunks/chunk-AVGL6Y22.js +1 -0
  19. package/dist/browser-lazy/chunks/chunk-BCPZYXNZ.js +20 -0
  20. package/dist/browser-lazy/chunks/chunk-CPO5P4L2.js +1 -0
  21. package/dist/browser-lazy/chunks/{chunk-OZ443IVJ.js → chunk-CURBYGWU.js} +8 -8
  22. package/dist/browser-lazy/chunks/{chunk-2GPK4VFF.js → chunk-DS3L2TY6.js} +1 -1
  23. package/dist/browser-lazy/chunks/{chunk-BU5LHXNJ.js → chunk-EBJK4IHL.js} +3 -3
  24. package/dist/browser-lazy/chunks/{chunk-AMJLVPUB.js → chunk-FCXWXIUB.js} +3 -3
  25. package/dist/browser-lazy/chunks/chunk-FNGOGVYM.js +6 -0
  26. package/dist/browser-lazy/chunks/{chunk-5B2Z7575.js → chunk-K6V5KN7D.js} +1 -1
  27. package/dist/browser-lazy/chunks/{chunk-J7FFAFQF.js → chunk-LRN76QCY.js} +1 -1
  28. package/dist/browser-lazy/chunks/chunk-NIAOQ3V2.js +1 -0
  29. package/dist/browser-lazy/chunks/{chunk-E2WMJZNM.js → chunk-OF4QKIRV.js} +1 -1
  30. package/dist/browser-lazy/chunks/{chunk-CN7WTBWB.js → chunk-OLZVJBI5.js} +1 -1
  31. package/dist/browser-lazy/chunks/{chunk-QA6GJQ4X.js → chunk-PRBLS664.js} +1 -1
  32. package/dist/browser-lazy/chunks/{chunk-X2UYKWKM.js → chunk-PRXEMB2V.js} +3 -3
  33. package/dist/browser-lazy/chunks/{chunk-NO7ZIVRU.js → chunk-Q6FTXOZS.js} +1 -1
  34. package/dist/browser-lazy/chunks/{chunk-PQGPS2YV.js → chunk-QRPOIILY.js} +1 -1
  35. package/dist/browser-lazy/chunks/{chunk-YCEICNM6.js → chunk-TG7JY42H.js} +1 -1
  36. package/dist/browser-lazy/chunks/{chunk-UL6NDWLL.js → chunk-TWYX5NPD.js} +1 -1
  37. package/dist/browser-lazy/chunks/{chunk-BY2CPG6B.js → chunk-TZMTDADJ.js} +1 -1
  38. package/dist/browser-lazy/chunks/chunk-UG33LVTQ.js +1 -0
  39. package/dist/browser-lazy/chunks/{chunk-HLWUNUCM.js → chunk-UJLLOK3R.js} +1 -1
  40. package/dist/browser-lazy/chunks/{chunk-SZELX2EJ.js → chunk-UKIYI4IO.js} +1 -1
  41. package/dist/browser-lazy/chunks/{chunk-VWVZGQE2.js → chunk-UOXZICCT.js} +1 -1
  42. package/dist/browser-lazy/chunks/{chunk-5X6MJX3H.js → chunk-VRXTQTLX.js} +1 -1
  43. package/dist/browser-lazy/chunks/{chunk-DF6765YX.js → chunk-WSZXZ4HF.js} +6 -6
  44. package/dist/browser-lazy/chunks/chunk-XBLK7VXJ.js +20 -0
  45. package/dist/browser-lazy/chunks/{chunk-ICC7HBJX.js → chunk-XJVCY4DA.js} +1 -1
  46. package/dist/browser-lazy/chunks/{class-5QA4SCTS.js → class-B7ED4IO7.js} +8 -8
  47. package/dist/{zenuml/chunks/decode-BWERFDGK.js → browser-lazy/chunks/decode-5MFOG3AZ.js} +1 -1
  48. package/dist/browser-lazy/chunks/{elk.bundled-L4CADV5W.js → elk.bundled-RYWHIS5N.js} +8 -8
  49. package/dist/browser-lazy/chunks/er-RJO33M6U.js +11 -0
  50. package/dist/browser-lazy/chunks/{eventmodeling-2BPLHWRN.js → eventmodeling-NZJFH7CB.js} +9 -9
  51. package/dist/browser-lazy/chunks/{flowchart-NEIMZTB5.js → flowchart-6WEGVIJH.js} +1 -1
  52. package/dist/browser-lazy/chunks/{forest-implementation-AEP24AIP.js → forest-implementation-RWFF7XDV.js} +1 -1
  53. package/dist/browser-lazy/chunks/{gantt-RDPIFYAF.js → gantt-3EBT47PN.js} +5 -5
  54. package/dist/browser-lazy/chunks/{gitgraph-N4Y5RYB7.js → gitgraph-LXYWMWAG.js} +4 -4
  55. package/dist/browser-lazy/chunks/{ishikawa-LD3YBDJN.js → ishikawa-TNFYQLXS.js} +2 -2
  56. package/dist/browser-lazy/chunks/{journey-6YQR5DJX.js → journey-ATEGEGT7.js} +7 -7
  57. package/dist/browser-lazy/chunks/{kanban-PLMJ7NBW.js → kanban-4SGNSK5P.js} +11 -11
  58. package/dist/browser-lazy/chunks/{mermaid-yaml-runtime-QVYX4EWK.js → mermaid-yaml-runtime-IK4ET4BT.js} +8 -8
  59. package/dist/browser-lazy/chunks/{mindmap-K2UBFO3Y.js → mindmap-5T7X3ENQ.js} +6 -6
  60. package/dist/browser-lazy/chunks/{packet-CUW4QY6Y.js → packet-4SQYN6UC.js} +3 -3
  61. package/dist/browser-lazy/chunks/{pie-7F7UUCG3.js → pie-HNPY7QHS.js} +7 -7
  62. package/dist/browser-lazy/chunks/{quadrant-TOONO2WC.js → quadrant-HG5UVCOG.js} +4 -4
  63. package/dist/browser-lazy/chunks/{radar-J6JVWVAX.js → radar-EIHX3Y7A.js} +7 -7
  64. package/dist/browser-lazy/chunks/render-core-37F7UHHU.js +3 -0
  65. package/dist/browser-lazy/chunks/{requirement-CMAKDJPO.js → requirement-PDLTNSWC.js} +7 -7
  66. package/dist/browser-lazy/chunks/{sankey-AWXQEP3F.js → sankey-K5QOVS24.js} +6 -6
  67. package/dist/browser-lazy/chunks/{sequence-Q2RJRB4L.js → sequence-CVTNAN4F.js} +1 -1
  68. package/dist/browser-lazy/chunks/{state-WRBFQEDX.js → state-EMHRVZIX.js} +2 -2
  69. package/dist/browser-lazy/chunks/{timeline-D2KILFXM.js → timeline-GCGZPQWS.js} +4 -4
  70. package/dist/browser-lazy/chunks/{treemap-N3VYX5D4.js → treemap-BXAVM6C5.js} +3 -3
  71. package/dist/browser-lazy/chunks/xychart-DSHCGE3Q.js +16 -0
  72. package/dist/browser-lazy/chunks/{zenuml-H4BXNYXR.js → zenuml-QU75FNEC.js} +8 -8
  73. package/dist/browser-lazy/index.js +1 -1
  74. package/dist/browser.global.js +507 -507
  75. package/dist/chunk-2WNJCUZG.js +52 -0
  76. package/dist/{chunk-XU5LPD2D.js → chunk-5BYN55G4.js} +1 -1
  77. package/dist/{chunk-JZOJ4YGS.js → chunk-5JQIK3AC.js} +47 -47
  78. package/dist/chunk-BHJZLM35.js +2 -0
  79. package/dist/{chunk-GVCHLSHH.js → chunk-BNS3NO3O.js} +2 -2
  80. package/dist/{chunk-NKNFOREZ.js → chunk-BRFXOVQK.js} +2 -2
  81. package/dist/{chunk-UA234O4M.js → chunk-CPO4MGL7.js} +2 -2
  82. package/dist/chunk-E4AJQAEN.js +2 -0
  83. package/dist/{chunk-H3NCS2XZ.js → chunk-NZQWSAD5.js} +2 -2
  84. package/dist/chunk-QULSM7S3.js +58 -0
  85. package/dist/{chunk-MKE7GNYU.js → chunk-ZKCI4BXW.js} +10 -6
  86. package/dist/{cli-YGGTJZH7.js → cli-6N2OYXG7.js} +43 -43
  87. package/dist/{index-EeXqJXr5.d.ts → index-BvPnCHcw.d.ts} +14 -4
  88. package/dist/index.d.ts +4 -4
  89. package/dist/index.js +1 -1
  90. package/dist/{mcp-cli-63DYXTVD.js → mcp-cli-O4YD2NQB.js} +2 -2
  91. package/dist/{paint-certification-6rwQjIv_.d.ts → paint-certification-6UB6BRr6.d.ts} +2 -2
  92. package/dist/server-ZKAXVFA2.js +527 -0
  93. package/dist/{svg-styles-BdnoM7AT.d.ts → svg-styles-CyT8yUfG.d.ts} +1 -1
  94. package/dist/svg-styles.d.ts +1 -1
  95. package/dist/svg-styles.js +1 -1
  96. package/dist/svg.d.ts +4 -4
  97. package/dist/svg.js +1 -1
  98. package/dist/{types-BcS52Mjt.d.ts → types-DMKjdWeL.d.ts} +1 -1
  99. package/dist/zenuml/chunks/{appearance-UOQ5KA6O.js → appearance-UJSXEKCJ.js} +1 -1
  100. package/dist/zenuml/chunks/{builtin-backends-KDKE7YHO.js → builtin-backends-2ETI2OTB.js} +11 -11
  101. package/dist/zenuml/chunks/{chunk-QWX77U7G.js → chunk-AT55WY2L.js} +2 -2
  102. package/dist/zenuml/chunks/chunk-NGGC5EHN.js +1 -0
  103. package/dist/zenuml/chunks/chunk-O23VFGJM.js +29 -0
  104. package/dist/zenuml/chunks/{chunk-42DXZ5C6.js → chunk-S2NMJ7E6.js} +2 -2
  105. package/dist/zenuml/chunks/{chunk-OXQWRSBM.js → chunk-WLQR46A6.js} +9 -9
  106. package/dist/zenuml/chunks/chunk-Y7DUY2UU.js +29 -0
  107. package/dist/{browser-lazy/chunks/decode-63UIZGD2.js → zenuml/chunks/decode-LDNNXEAO.js} +1 -1
  108. package/dist/zenuml/chunks/{mermaid-yaml-runtime-KZVU74WU.js → mermaid-yaml-runtime-A5CNJ3IE.js} +8 -8
  109. package/dist/zenuml/chunks/render-core-MBXTLSVO.js +3 -0
  110. package/dist/zenuml/chunks/{zenuml-EA2ZFRUX.js → zenuml-FDVVN4IM.js} +8 -8
  111. package/dist/zenuml.d.ts +2 -2
  112. package/dist/zenuml.js +1 -1
  113. package/docs/api.md +84 -4
  114. package/docs/quality.md +6 -3
  115. package/docs/style-authoring.md +23 -0
  116. package/docs/testing-strategy.md +5 -3
  117. package/package.json +3 -2
  118. package/server.json +2 -2
  119. package/skills/agentic-mermaid-diagram-workflow/references/code-mode.md +10 -1
  120. package/skills/agentic-mermaid-diagram-workflow/references/hosted-mcp.md +5 -1
  121. package/dist/browser-lazy/chunks/c4-SQVBZAKJ.js +0 -10
  122. package/dist/browser-lazy/chunks/chunk-4LHYF3BS.js +0 -1
  123. package/dist/browser-lazy/chunks/chunk-FAIMVOX5.js +0 -6
  124. package/dist/browser-lazy/chunks/chunk-GVOEAY52.js +0 -1
  125. package/dist/browser-lazy/chunks/chunk-J35HAQQF.js +0 -20
  126. package/dist/browser-lazy/chunks/chunk-RIVTHZAQ.js +0 -1
  127. package/dist/browser-lazy/chunks/chunk-Z3FDIVLN.js +0 -20
  128. package/dist/browser-lazy/chunks/er-7ZSKGN7Y.js +0 -11
  129. package/dist/browser-lazy/chunks/render-core-BZOM3K7D.js +0 -3
  130. package/dist/browser-lazy/chunks/xychart-G73OGK66.js +0 -16
  131. package/dist/chunk-7CRDX2QR.js +0 -2
  132. package/dist/chunk-DQDKA5ND.js +0 -2
  133. package/dist/chunk-EHCMJUMD.js +0 -52
  134. package/dist/chunk-OMY6NRQD.js +0 -58
  135. package/dist/server-5NEOHOFS.js +0 -524
  136. package/dist/zenuml/chunks/chunk-7TVYPTDW.js +0 -1
  137. package/dist/zenuml/chunks/chunk-RLJEI7YN.js +0 -29
  138. package/dist/zenuml/chunks/chunk-RZ6XK5CD.js +0 -29
  139. package/dist/zenuml/chunks/render-core-V5RQ737O.js +0 -3
  140. package/docs/MCP-DIRECTORY-LISTINGS.md +0 -76
  141. /package/dist/browser-lazy/chunks/{chunk-5FQ534HP.js → chunk-BMZ24VPS.js} +0 -0
  142. /package/dist/browser-lazy/chunks/{chunk-2I4UPL7Q.js → chunk-D6MQ7QSU.js} +0 -0
  143. /package/dist/browser-lazy/chunks/{chunk-CQE4HQEW.js → chunk-HJVO5VC3.js} +0 -0
  144. /package/dist/browser-lazy/chunks/{chunk-LH7HUDKW.js → chunk-L4UC3KGS.js} +0 -0
  145. /package/dist/browser-lazy/chunks/{chunk-NMQQMRIR.js → chunk-MFTQWHUB.js} +0 -0
  146. /package/dist/browser-lazy/chunks/{chunk-N5ELX7LR.js → chunk-PJJSDGLB.js} +0 -0
  147. /package/dist/browser-lazy/chunks/{chunk-CSFUKSU6.js → chunk-QCU5G5PZ.js} +0 -0
  148. /package/dist/browser-lazy/chunks/{chunk-VQYYGAXP.js → chunk-TLFX3U6S.js} +0 -0
  149. /package/dist/browser-lazy/chunks/{chunk-5UVGUSD6.js → chunk-YHMTSXIR.js} +0 -0
  150. /package/dist/zenuml/chunks/{chunk-EVPSMEKN.js → chunk-GC7IPQ5P.js} +0 -0
@@ -1,12 +1,12 @@
1
- import{i as t,p as e,r as s,s as r,t as n,u as a,y as i}from"./chunk-J35HAQQF.js";import{m as o}from"./chunk-TYZOZXUJ.js";import{Ka as l,N as h,Q as u,Ub as p,Vb as c,W as f,ea as d,fb as g,n as k,qa as y,sa as M,ta as m,ub as x}from"./chunk-Z3FDIVLN.js";import"./chunk-5UVGUSD6.js";import"./chunk-CSFUKSU6.js";function v(t,e,s){if(t&&t.length){let[r,n]=e,a=Math.PI/180*s,i=Math.cos(a),o=Math.sin(a);for(let e of t){let[t,s]=e;e[0]=(t-r)*i-(s-n)*o+r,e[1]=(t-r)*o+(s-n)*i+n}}}function b(t,e){var s;let r=e.hachureAngle+90,n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.round(Math.max(n,.1));let a=1;return e.roughness>=1&&((null==(s=e.randomizer)?void 0:s.next())||Math.random())>.7&&(a=n),function(t,e,s,r=1){let n=Math.max(e,.1),a=t[0]&&t[0][0]&&"number"==typeof t[0][0]?[t]:t,i=[0,0];if(s)for(let t of a)v(t,i,s);let o=function(t,e,s){let r=[];for(let e of t){var n,a;let t=[...e];n=t[0],a=t[t.length-1],n[0]===a[0]&&n[1]===a[1]||t.push([t[0][0],t[0][1]]),t.length>2&&r.push(t)}let i=[];e=Math.max(e,.1);let o=[];for(let t of r)for(let e=0;e<t.length-1;e++){let s=t[e],r=t[e+1];if(s[1]!==r[1]){let t=Math.min(s[1],r[1]);o.push({ymin:t,ymax:Math.max(s[1],r[1]),x:t===s[1]?s[0]:r[0],islope:(r[0]-s[0])/(r[1]-s[1])})}}if(o.sort((t,e)=>t.ymin<e.ymin?-1:t.ymin>e.ymin?1:t.x<e.x?-1:t.x>e.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)),!o.length)return i;let l=[],h=o[0].ymin,u=0;for(;l.length||o.length;){if(o.length){let t=-1;for(let e=0;e<o.length&&!(o[e].ymin>h);e++)t=e;o.splice(0,t+1).forEach(t=>{l.push({s:h,edge:t})})}if((l=l.filter(t=>!(t.edge.ymax<=h))).sort((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)),(1!==s||u%e==0)&&l.length>1)for(let t=0;t<l.length;t+=2){let e=t+1;if(e>=l.length)break;let s=l[t].edge,r=l[e].edge;i.push([[Math.round(s.x),h],[Math.round(r.x),h]])}h+=s,l.forEach(t=>{t.edge.x=t.edge.x+s*t.edge.islope}),u++}return i}(a,n,r);if(s){let t;for(let t of a)v(t,i,-s);t=[],o.forEach(e=>t.push(...e)),v(t,i,-s)}return o}(t,n,r,a||1)}var $=class{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){let s=b(t,e);return{type:"fillSketch",ops:this.renderLines(s,e)}}renderLines(t,e){let s=[];for(let r of t)s.push(...this.helper.doubleLineOps(r[0][0],r[0][1],r[1][0],r[1][1],e));return s}};function P(t){let e=t[0],s=t[1];return Math.sqrt(Math.pow(e[0]-s[0],2)+Math.pow(e[1]-s[1],2))}var w=class extends ${fillPolygons(t,e){let s=e.hachureGap;s<0&&(s=4*e.strokeWidth);let r=b(t,Object.assign({},e,{hachureGap:s=Math.max(s,.1)})),n=Math.PI/180*e.hachureAngle,a=[],i=.5*s*Math.cos(n),o=.5*s*Math.sin(n);for(let[t,e]of r)P([t,e])&&a.push([[t[0]-i,t[1]+o],[...e]],[[t[0]+i,t[1]-o],[...e]]);return{type:"fillSketch",ops:this.renderLines(a,e)}}},S=class extends ${fillPolygons(t,e){let s=this._fillPolygons(t,e),r=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),n=this._fillPolygons(t,r);return s.ops=s.ops.concat(n.ops),s}},O=class{constructor(t){this.helper=t}fillPolygons(t,e){let s=b(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(s,e)}dotsOnLines(t,e){let s=[],r=e.hachureGap;r<0&&(r=4*e.strokeWidth),r=Math.max(r,.1);let n=e.fillWeight;n<0&&(n=e.strokeWidth/2);let a=r/4;for(let i of t){let t=P(i),o=Math.ceil(t/r)-1,l=t-o*r,h=(i[0][0]+i[1][0])/2-r/4,u=Math.min(i[0][1],i[1][1]);for(let t=0;t<o;t++){let i=h-a+2*Math.random()*a,o=u+l+t*r-a+2*Math.random()*a,p=this.helper.ellipse(i,o,n,n,e);s.push(...p.ops)}}return{type:"fillSketch",ops:s}}},L=class{constructor(t){this.helper=t}fillPolygons(t,e){let s=b(t,e);return{type:"fillSketch",ops:this.dashedLine(s,e)}}dashedLine(t,e){let s=e.dashOffset<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashOffset,r=e.dashGap<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashGap,n=[];return t.forEach(t=>{let a=P(t),i=Math.floor(a/(s+r)),o=(a+r-i*(s+r))/2,l=t[0],h=t[1];l[0]>h[0]&&(l=t[1],h=t[0]);let u=Math.atan((h[1]-l[1])/(h[0]-l[0]));for(let t=0;t<i;t++){let a=t*(s+r),i=a+s,h=[l[0]+a*Math.cos(u)+o*Math.cos(u),l[1]+a*Math.sin(u)+o*Math.sin(u)],p=[l[0]+i*Math.cos(u)+o*Math.cos(u),l[1]+i*Math.sin(u)+o*Math.sin(u)];n.push(...this.helper.doubleLineOps(h[0],h[1],p[0],p[1],e))}}),n}},j=class{constructor(t){this.helper=t}fillPolygons(t,e){let s=e.hachureGap<0?4*e.strokeWidth:e.hachureGap,r=e.zigzagOffset<0?s:e.zigzagOffset,n=b(t,e=Object.assign({},e,{hachureGap:s+r}));return{type:"fillSketch",ops:this.zigzagLines(n,r,e)}}zigzagLines(t,e,s){let r=[];return t.forEach(t=>{let n=Math.round(P(t)/(2*e)),a=t[0],i=t[1];a[0]>i[0]&&(a=t[1],i=t[0]);let o=Math.atan((i[1]-a[1])/(i[0]-a[0]));for(let t=0;t<n;t++){let n=2*t*e,i=(t+1)*2*e,l=Math.sqrt(2*Math.pow(e,2)),h=[a[0]+n*Math.cos(o),a[1]+n*Math.sin(o)],u=[a[0]+i*Math.cos(o),a[1]+i*Math.sin(o)],p=[h[0]+l*Math.cos(o+Math.PI/4),h[1]+l*Math.sin(o+Math.PI/4)];r.push(...this.helper.doubleLineOps(h[0],h[1],p[0],p[1],s),...this.helper.doubleLineOps(p[0],p[1],u[0],u[1],s))}}),r}},I={},_=class{constructor(t){this.seed=t}next(){return this.seed?(0x80000000-1&(this.seed=Math.imul(48271,this.seed)))/0x80000000:Math.random()}},W={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function z(t){let e=[],s=function(t){let e=[];for(;""!==t;)if(t.match(/^([ \t\r\n,]+)/))t=t.substr(RegExp.$1.length);else if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:0,text:RegExp.$1},t=t.substr(RegExp.$1.length);else{if(!t.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:1,text:`${parseFloat(RegExp.$1)}`},t=t.substr(RegExp.$1.length)}return e[e.length]={type:2,text:""},e}(t),r="BOD",n=0,a=s[0];for(;2!==a.type;){let i=0,o=[];if("BOD"===r)if("M"!==a.text&&"m"!==a.text)return z("M0,0"+t);else n++,i=W[a.text],r=a.text;else 1===a.type?i=W[r]:(n++,i=W[a.text],r=a.text);if(n+i<s.length){for(let t=n;t<n+i;t++){let e=s[t];if(1===e.type)o[o.length]=+e.text;else throw Error("Param not a number: "+r+","+e.text)}if("number"==typeof W[r]){let t={key:r,data:o};e.push(t),n+=i,a=s[n],"M"===r&&(r="L"),"m"===r&&(r="l")}else throw Error("Bad segment: "+r)}else throw Error("Path data ended short")}return e}function A(t){let e=0,s=0,r=0,n=0,a=[];for(let{key:i,data:o}of t)switch(i){case"M":a.push({key:"M",data:[...o]}),[e,s]=o,[r,n]=o;break;case"m":e+=o[0],s+=o[1],a.push({key:"M",data:[e,s]}),r=e,n=s;break;case"L":a.push({key:"L",data:[...o]}),[e,s]=o;break;case"l":e+=o[0],s+=o[1],a.push({key:"L",data:[e,s]});break;case"C":a.push({key:"C",data:[...o]}),e=o[4],s=o[5];break;case"c":{let t=o.map((t,r)=>r%2?t+s:t+e);a.push({key:"C",data:t}),e=t[4],s=t[5];break}case"Q":a.push({key:"Q",data:[...o]}),e=o[2],s=o[3];break;case"q":{let t=o.map((t,r)=>r%2?t+s:t+e);a.push({key:"Q",data:t}),e=t[2],s=t[3];break}case"A":a.push({key:"A",data:[...o]}),e=o[5],s=o[6];break;case"a":e+=o[5],s+=o[6],a.push({key:"A",data:[o[0],o[1],o[2],o[3],o[4],e,s]});break;case"H":a.push({key:"H",data:[...o]}),e=o[0];break;case"h":e+=o[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...o]}),s=o[0];break;case"v":s+=o[0],a.push({key:"V",data:[s]});break;case"S":a.push({key:"S",data:[...o]}),e=o[2],s=o[3];break;case"s":{let t=o.map((t,r)=>r%2?t+s:t+e);a.push({key:"S",data:t}),e=t[2],s=t[3];break}case"T":a.push({key:"T",data:[...o]}),e=o[0],s=o[1];break;case"t":e+=o[0],s+=o[1],a.push({key:"T",data:[e,s]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=r,s=n}return a}function C(t){let e=[],s="",r=0,n=0,a=0,i=0,o=0,l=0;for(let{key:h,data:u}of t){switch(h){case"M":e.push({key:"M",data:[...u]}),[r,n]=u,[a,i]=u;break;case"C":e.push({key:"C",data:[...u]}),r=u[4],n=u[5],o=u[2],l=u[3];break;case"L":e.push({key:"L",data:[...u]}),[r,n]=u;break;case"H":r=u[0],e.push({key:"L",data:[r,n]});break;case"V":n=u[0],e.push({key:"L",data:[r,n]});break;case"S":{let t=0,a=0;"C"===s||"S"===s?(t=r+(r-o),a=n+(n-l)):(t=r,a=n),e.push({key:"C",data:[t,a,...u]}),o=u[0],l=u[1],r=u[2],n=u[3];break}case"T":{let[t,a]=u,i=0,h=0;"Q"===s||"T"===s?(i=r+(r-o),h=n+(n-l)):(i=r,h=n);let p=r+2*(i-r)/3,c=n+2*(h-n)/3,f=t+2*(i-t)/3,d=a+2*(h-a)/3;e.push({key:"C",data:[p,c,f,d,t,a]}),o=i,l=h,r=t,n=a;break}case"Q":{let[t,s,a,i]=u,h=r+2*(t-r)/3,p=n+2*(s-n)/3,c=a+2*(t-a)/3,f=i+2*(s-i)/3;e.push({key:"C",data:[h,p,c,f,a,i]}),o=t,l=s,r=a,n=i;break}case"A":{let t=Math.abs(u[0]),s=Math.abs(u[1]),a=u[2],i=u[3],o=u[4],l=u[5],h=u[6];0===t||0===s?(e.push({key:"C",data:[r,n,l,h,l,h]}),r=l,n=h):(r!==l||n!==h)&&((function t(e,s,r,n,a,i,o,l,h,u){let p=Math.PI*o/180,c=[],f=0,d=0,g=0,k=0;if(u)[f,d,g,k]=u;else{[e,s]=T(e,s,-p),[r,n]=T(r,n,-p);let t=(e-r)/2,o=(s-n)/2,u=t*t/(a*a)+o*o/(i*i);u>1&&(a*=u=Math.sqrt(u),i*=u);let c=a*a,y=i*i,M=(l===h?-1:1)*Math.sqrt(Math.abs((c*y-c*o*o-y*t*t)/(c*o*o+y*t*t)));g=M*a*o/i+(e+r)/2,k=-(M*i)*t/a+(s+n)/2,f=Math.asin(parseFloat(((s-k)/i).toFixed(9))),d=Math.asin(parseFloat(((n-k)/i).toFixed(9))),e<g&&(f=Math.PI-f),r<g&&(d=Math.PI-d),f<0&&(f=2*Math.PI+f),d<0&&(d=2*Math.PI+d),h&&f>d&&(f-=2*Math.PI),!h&&d>f&&(d-=2*Math.PI)}let y=d-f;if(Math.abs(y)>120*Math.PI/180){let e=d,s=r,l=n;c=t(r=g+a*Math.cos(d=h&&d>f?f+120*Math.PI/180*1:f+-(120*Math.PI/180*1)),n=k+i*Math.sin(d),s,l,a,i,o,0,h,[d,e,g,k])}y=d-f;let M=Math.cos(f),m=Math.cos(d),x=Math.tan(y/4),v=4/3*a*x,b=4/3*i*x,$=[e,s],P=[e+v*Math.sin(f),s-b*M],w=[r+v*Math.sin(d),n-b*m],S=[r,n];if(P[0]=2*$[0]-P[0],P[1]=2*$[1]-P[1],u)return[P,w,S].concat(c);{c=[P,w,S].concat(c);let t=[];for(let e=0;e<c.length;e+=3){let s=T(c[e][0],c[e][1],p),r=T(c[e+1][0],c[e+1][1],p),n=T(c[e+2][0],c[e+2][1],p);t.push([s[0],s[1],r[0],r[1],n[0],n[1]])}return t}})(r,n,l,h,t,s,a,i,o).forEach(function(t){e.push({key:"C",data:t})}),r=l,n=h);break}case"Z":e.push({key:"Z",data:[]}),r=a,n=i}s=h}return e}function T(t,e,s){return[t*Math.cos(s)-e*Math.sin(s),t*Math.sin(s)+e*Math.cos(s)]}var G={randOffset:function(t,e){return J(t,e)},randOffsetWithRange:function(t,e,s){return D(t,e,s)},ellipse:function(t,e,s,r,n){let a=Z(s,r,n);return Q(t,e,n,a).opset},doubleLineOps:function(t,e,s,r,n){return K(t,e,s,r,n,!0)}};function E(t,e,s,r,n){return{type:"path",ops:K(t,e,s,r,n)}}function F(t,e,s){let r=(t||[]).length;if(r>2){let n=[];for(let e=0;e<r-1;e++)n.push(...K(t[e][0],t[e][1],t[e+1][0],t[e+1][1],s));return e&&n.push(...K(t[r-1][0],t[r-1][1],t[0][0],t[0][1],s)),{type:"path",ops:n}}return 2===r?E(t[0][0],t[0][1],t[1][0],t[1][1],s):{type:"path",ops:[]}}function R(t,e){if(t.length){let s="number"==typeof t[0][0]?[t]:t,r=Y(s[0],+(1+.2*e.roughness),e),n=e.disableMultiStroke?[]:Y(s[0],1.5*(1+.22*e.roughness),H(e));for(let t=1;t<s.length;t++){let a=s[t];if(a.length){let t=Y(a,+(1+.2*e.roughness),e),s=e.disableMultiStroke?[]:Y(a,1.5*(1+.22*e.roughness),H(e));for(let e of t)"move"!==e.op&&r.push(e);for(let t of s)"move"!==t.op&&n.push(t)}}return{type:"path",ops:r.concat(n)}}return{type:"path",ops:[]}}function Z(t,e,s){let r=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),n=2*Math.PI/Math.ceil(Math.max(s.curveStepCount,s.curveStepCount/Math.sqrt(200)*r)),a=Math.abs(t/2),i=Math.abs(e/2),o=1-s.curveFitting;return a+=J(a*o,s),i+=J(i*o,s),{increment:n,rx:a,ry:i}}function Q(t,e,s,r){let[n,a]=te(r.increment,t,e,r.rx,r.ry,1,r.increment*D(.1,D(.4,1,s),s),s),i=tt(n,null,s);if(!s.disableMultiStroke&&0!==s.roughness){let[n]=te(r.increment,t,e,r.rx,r.ry,1.5,0,s),a=tt(n,null,s);i=i.concat(a)}return{estimatedPoints:a,opset:{type:"path",ops:i}}}function q(t,e,s,r,n,a,i,o,l){let h=Math.abs(s/2),u=Math.abs(r/2);h+=J(.01*h,l),u+=J(.01*u,l);let p=n,c=a;for(;p<0;)p+=2*Math.PI,c+=2*Math.PI;c-p>2*Math.PI&&(p=0,c=2*Math.PI);let f=Math.min(2*Math.PI/l.curveStepCount/2,(c-p)/2),d=ts(f,t,e,h,u,p,c,1,l);if(!l.disableMultiStroke){let s=ts(f,t,e,h,u,p,c,1.5,l);d.push(...s)}return i&&(o?d.push(...K(t,e,t+h*Math.cos(p),e+u*Math.sin(p),l),...K(t,e,t+h*Math.cos(c),e+u*Math.sin(c),l)):d.push({op:"lineTo",data:[t,e]},{op:"lineTo",data:[t+h*Math.cos(p),e+u*Math.sin(p)]})),{type:"path",ops:d}}function B(t,e){let s=C(A(z(t))),r=[],n=[0,0],a=[0,0];for(let{key:t,data:i}of s)switch(t){case"M":a=[i[0],i[1]],n=[i[0],i[1]];break;case"L":r.push(...K(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]];break;case"C":{let[t,s,n,o,l,h]=i;r.push(...function(t,e,s,r,n,a,i,o){let l=[],h=[o.maxRandomnessOffset||1,(o.maxRandomnessOffset||1)+.3],u=[0,0],p=o.disableMultiStroke?1:2,c=o.preserveVertices;for(let f=0;f<p;f++)0===f?l.push({op:"move",data:[i[0],i[1]]}):l.push({op:"move",data:[i[0]+(c?0:J(h[0],o)),i[1]+(c?0:J(h[0],o))]}),u=c?[n,a]:[n+J(h[f],o),a+J(h[f],o)],l.push({op:"bcurveTo",data:[t+J(h[f],o),e+J(h[f],o),s+J(h[f],o),r+J(h[f],o),u[0],u[1]]});return l}(t,s,n,o,l,h,a,e)),a=[l,h];break}case"Z":r.push(...K(a[0],a[1],n[0],n[1],e)),a=[n[0],n[1]]}return{type:"path",ops:r}}function V(t,e){let s=[];for(let r of t)if(r.length){let t=e.maxRandomnessOffset||0,n=r.length;if(n>2){s.push({op:"move",data:[r[0][0]+J(t,e),r[0][1]+J(t,e)]});for(let a=1;a<n;a++)s.push({op:"lineTo",data:[r[a][0]+J(t,e),r[a][1]+J(t,e)]})}}return{type:"fillPath",ops:s}}function N(t,e){return(function(t,e){let s=t.fillStyle||"hachure";if(!I[s])switch(s){case"zigzag":I[s]||(I[s]=new w(e));break;case"cross-hatch":I[s]||(I[s]=new S(e));break;case"dots":I[s]||(I[s]=new O(e));break;case"dashed":I[s]||(I[s]=new L(e));break;case"zigzag-line":I[s]||(I[s]=new j(e));break;default:I[s="hachure"]||(I[s]=new $(e))}return I[s]})(e,G).fillPolygons(t,e)}function H(t){let e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}function U(t){return t.randomizer||(t.randomizer=new _(t.seed||0)),t.randomizer.next()}function D(t,e,s,r=1){return s.roughness*r*(U(s)*(e-t)+t)}function J(t,e,s=1){return D(-t,t,e,s)}function K(t,e,s,r,n,a=!1){let i=a?n.disableMultiStrokeFill:n.disableMultiStroke,o=X(t,e,s,r,n,!0,!1);if(i)return o;let l=X(t,e,s,r,n,!0,!0);return o.concat(l)}function X(t,e,s,r,n,a,i){let o=Math.pow(t-s,2)+Math.pow(e-r,2),l=Math.sqrt(o),h=1;h=l<200?1:l>500?.4:-.0016668*l+1.233334;let u=n.maxRandomnessOffset||0;u*u*100>o&&(u=l/10);let p=u/2,c=.2+.2*U(n),f=n.bowing*n.maxRandomnessOffset*(r-e)/200,d=n.bowing*n.maxRandomnessOffset*(t-s)/200;f=J(f,n,h),d=J(d,n,h);let g=[],k=n.preserveVertices;return a&&(i?g.push({op:"move",data:[t+(k?0:J(p,n,h)),e+(k?0:J(p,n,h))]}):g.push({op:"move",data:[t+(k?0:J(u,n,h)),e+(k?0:J(u,n,h))]})),i?g.push({op:"bcurveTo",data:[f+t+(s-t)*c+J(p,n,h),d+e+(r-e)*c+J(p,n,h),f+t+2*(s-t)*c+J(p,n,h),d+e+2*(r-e)*c+J(p,n,h),s+(k?0:J(p,n,h)),r+(k?0:J(p,n,h))]}):g.push({op:"bcurveTo",data:[f+t+(s-t)*c+J(u,n,h),d+e+(r-e)*c+J(u,n,h),f+t+2*(s-t)*c+J(u,n,h),d+e+2*(r-e)*c+J(u,n,h),s+(k?0:J(u,n,h)),r+(k?0:J(u,n,h))]}),g}function Y(t,e,s){if(!t.length)return[];let r=[];r.push([t[0][0]+J(e,s),t[0][1]+J(e,s)]),r.push([t[0][0]+J(e,s),t[0][1]+J(e,s)]);for(let n=1;n<t.length;n++)r.push([t[n][0]+J(e,s),t[n][1]+J(e,s)]),n===t.length-1&&r.push([t[n][0]+J(e,s),t[n][1]+J(e,s)]);return tt(r,null,s)}function tt(t,e,s){let r=t.length,n=[];if(r>3){let a=[],i=1-s.curveTightness;n.push({op:"move",data:[t[1][0],t[1][1]]});for(let e=1;e+2<r;e++){let s=t[e];a[0]=[s[0],s[1]],a[1]=[s[0]+(i*t[e+1][0]-i*t[e-1][0])/6,s[1]+(i*t[e+1][1]-i*t[e-1][1])/6],a[2]=[t[e+1][0]+(i*t[e][0]-i*t[e+2][0])/6,t[e+1][1]+(i*t[e][1]-i*t[e+2][1])/6],a[3]=[t[e+1][0],t[e+1][1]],n.push({op:"bcurveTo",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&2===e.length){let t=s.maxRandomnessOffset;n.push({op:"lineTo",data:[e[0]+J(t,s),e[1]+J(t,s)]})}}else 3===r?(n.push({op:"move",data:[t[1][0],t[1][1]]}),n.push({op:"bcurveTo",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):2===r&&n.push(...X(t[0][0],t[0][1],t[1][0],t[1][1],s,!0,!0));return n}function te(t,e,s,r,n,a,i,o){let l=0===o.roughness,h=[],u=[];if(l){t/=4,u.push([e+r*Math.cos(-t),s+n*Math.sin(-t)]);for(let a=0;a<=2*Math.PI;a+=t){let t=[e+r*Math.cos(a),s+n*Math.sin(a)];h.push(t),u.push(t)}u.push([e+ +r,s+0*n]),u.push([e+r*Math.cos(t),s+n*Math.sin(t)])}else{let l=J(.5,o)-Math.PI/2;u.push([J(a,o)+e+.9*r*Math.cos(l-t),J(a,o)+s+.9*n*Math.sin(l-t)]);let p=2*Math.PI+l-.01;for(let i=l;i<p;i+=t){let t=[J(a,o)+e+r*Math.cos(i),J(a,o)+s+n*Math.sin(i)];h.push(t),u.push(t)}u.push([J(a,o)+e+r*Math.cos(l+2*Math.PI+.5*i),J(a,o)+s+n*Math.sin(l+2*Math.PI+.5*i)]),u.push([J(a,o)+e+.98*r*Math.cos(l+i),J(a,o)+s+.98*n*Math.sin(l+i)]),u.push([J(a,o)+e+.9*r*Math.cos(l+.5*i),J(a,o)+s+.9*n*Math.sin(l+.5*i)])}return[u,h]}function ts(t,e,s,r,n,a,i,o,l){let h=a+J(.1,l),u=[];u.push([J(o,l)+e+.9*r*Math.cos(h-t),J(o,l)+s+.9*n*Math.sin(h-t)]);for(let a=h;a<=i;a+=t)u.push([J(o,l)+e+r*Math.cos(a),J(o,l)+s+n*Math.sin(a)]);return u.push([e+r*Math.cos(i),s+n*Math.sin(i)]),u.push([e+r*Math.cos(i),s+n*Math.sin(i)]),tt(u,null,l)}function tr(t,e=0){let s=t.length;if(s<3)throw Error("A curve must have at least three points.");let r=[];if(3===s)r.push([...t[0]],[...t[1]],[...t[2]],[...t[2]]);else{let s=[];s.push(t[0],t[0]);for(let e=1;e<t.length;e++)s.push(t[e]),e===t.length-1&&s.push(t[e]);let n=[],a=1-e;r.push([...s[0]]);for(let t=1;t+2<s.length;t++){let e=s[t];n[0]=[e[0],e[1]],n[1]=[e[0]+(a*s[t+1][0]-a*s[t-1][0])/6,e[1]+(a*s[t+1][1]-a*s[t-1][1])/6],n[2]=[s[t+1][0]+(a*s[t][0]-a*s[t+2][0])/6,s[t+1][1]+(a*s[t][1]-a*s[t+2][1])/6],n[3]=[s[t+1][0],s[t+1][1]],r.push(n[1],n[2],n[3])}}return r}function tn(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function ta(t,e,s){return[t[0]+(e[0]-t[0])*s,t[1]+(e[1]-t[1])*s]}function ti(t,e,s,r,n){let a=n||[],i=t[e],o=t[s-1],l=0,h=1;for(let r=e+1;r<s-1;++r){let e=function(t,e,s){let r=tn(e,s);if(0===r)return tn(t,e);let n=((t[0]-e[0])*(s[0]-e[0])+(t[1]-e[1])*(s[1]-e[1]))/r;return tn(t,ta(e,s,n=Math.max(0,Math.min(1,n))))}(t[r],i,o);e>l&&(l=e,h=r)}return Math.sqrt(l)>r?(ti(t,e,h+1,r,a),ti(t,h,s,r,a)):(a.length||a.push(i),a.push(o)),a}function to(t,e=.15,s){let r=[],n=(t.length-1)/3;for(let s=0;s<n;s++)!function t(e,s,r,n){let a,i,o,l,h,u,p,c,f=n||[];if(a=e[s+0],i=e[s+1],o=e[s+2],l=e[s+3],h=3*i[0]-2*a[0]-l[0],h*=h,u=3*i[1]-2*a[1]-l[1],u*=u,p=3*o[0]-2*l[0]-a[0],p*=p,c=3*o[1]-2*l[1]-a[1],c*=c,h<p&&(h=p),u<c&&(u=c),h+u<r){let t=e[s+0];f.length?Math.sqrt(tn(f[f.length-1],t))>1&&f.push(t):f.push(t),f.push(e[s+3])}else{let n=e[s+0],a=e[s+1],i=e[s+2],o=e[s+3],l=ta(n,a,.5),h=ta(a,i,.5),u=ta(i,o,.5),p=ta(l,h,.5),c=ta(h,u,.5),d=ta(p,c,.5);t([n,l,p,d],0,r,f),t([d,c,u,o],0,r,f)}return f}(t,3*s,e,r);return s&&s>0?ti(r,0,r.length,s):r}var tl="none",th=new class{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(0x80000000*Math.random())}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,s){return{shape:t,sets:e||[],options:s||this.defaultOptions}}line(t,e,s,r,n){let a=this._o(n);return this._d("line",[E(t,e,s,r,a)],a)}rectangle(t,e,s,r,n){let a=this._o(n),i=[],o=F([[t,e],[t+s,e],[t+s,e+r],[t,e+r]],!0,a);if(a.fill){let n=[[t,e],[t+s,e],[t+s,e+r],[t,e+r]];"solid"===a.fillStyle?i.push(V([n],a)):i.push(N([n],a))}return a.stroke!==tl&&i.push(o),this._d("rectangle",i,a)}ellipse(t,e,s,r,n){let a=this._o(n),i=[],o=Z(s,r,a),l=Q(t,e,a,o);if(a.fill)if("solid"===a.fillStyle){let s=Q(t,e,a,o).opset;s.type="fillPath",i.push(s)}else i.push(N([l.estimatedPoints],a));return a.stroke!==tl&&i.push(l.opset),this._d("ellipse",i,a)}circle(t,e,s,r){let n=this.ellipse(t,e,s,s,r);return n.shape="circle",n}linearPath(t,e){let s=this._o(e);return this._d("linearPath",[F(t,!1,s)],s)}arc(t,e,s,r,n,a,i=!1,o){let l=this._o(o),h=[],u=q(t,e,s,r,n,a,i,!0,l);if(i&&l.fill)if("solid"===l.fillStyle){let i=Object.assign({},l);i.disableMultiStroke=!0;let o=q(t,e,s,r,n,a,!0,!1,i);o.type="fillPath",h.push(o)}else h.push(function(t,e,s,r,n,a,i){let o=Math.abs(s/2),l=Math.abs(r/2);o+=J(.01*o,i),l+=J(.01*l,i);let h=n,u=a;for(;h<0;)h+=2*Math.PI,u+=2*Math.PI;u-h>2*Math.PI&&(h=0,u=2*Math.PI);let p=(u-h)/i.curveStepCount,c=[];for(let s=h;s<=u;s+=p)c.push([t+o*Math.cos(s),e+l*Math.sin(s)]);return c.push([t+o*Math.cos(u),e+l*Math.sin(u)]),c.push([t,e]),N([c],i)}(t,e,s,r,n,a,l));return l.stroke!==tl&&h.push(u),this._d("arc",h,l)}curve(t,e){let s=this._o(e),r=[],n=R(t,s);if(s.fill&&s.fill!==tl)if("solid"===s.fillStyle){let e=R(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));r.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else{let e=[];if(t.length)for(let r of"number"==typeof t[0][0]?[t]:t)r.length<3?e.push(...r):3===r.length?e.push(...to(tr([r[0],r[0],r[1],r[2]]),10,(1+s.roughness)/2)):e.push(...to(tr(r),10,(1+s.roughness)/2));e.length&&r.push(N([e],s))}return s.stroke!==tl&&r.push(n),this._d("curve",r,s)}polygon(t,e){let s=this._o(e),r=[],n=F(t,!0,s);return s.fill&&("solid"===s.fillStyle?r.push(V([t],s)):r.push(N([t],s))),s.stroke!==tl&&r.push(n),this._d("polygon",r,s)}path(t,e){let s=this._o(e),r=[];if(!t)return this._d("path",r,s);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let n=s.fill&&"transparent"!==s.fill&&s.fill!==tl,a=s.stroke!==tl,i=!!(s.simplification&&s.simplification<1),o=i?4-4*(s.simplification||1):(1+s.roughness)/2,l=function(t,e,s){let r=C(A(z(t))),n=[],a=[],i=[0,0],o=[],l=()=>{o.length>=4&&a.push(...to(o,1)),o=[]},h=()=>{l(),a.length&&(n.push(a),a=[])};for(let{key:t,data:e}of r)switch(t){case"M":h(),i=[e[0],e[1]],a.push(i);break;case"L":l(),a.push([e[0],e[1]]);break;case"C":if(!o.length){let t=a.length?a[a.length-1]:i;o.push([t[0],t[1]])}o.push([e[0],e[1]]),o.push([e[2],e[3]]),o.push([e[4],e[5]]);break;case"Z":l(),a.push([i[0],i[1]])}if(h(),!s)return n;let u=[];for(let t of n){let e=ti(t,0,t.length,s);e.length&&u.push(e)}return u}(t,0,o),h=B(t,s);if(n)if("solid"===s.fillStyle)if(1===l.length){let e=B(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));r.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else r.push(V(l,s));else r.push(N(l,s));return a&&(i?l.forEach(t=>{r.push(F(t,!1,s))}):r.push(h)),this._d("path",r,s)}opsToPath(t,e){let s="";for(let r of t.ops){let t="number"==typeof e&&e>=0?r.data.map(t=>+t.toFixed(e)):r.data;switch(r.op){case"move":s+=`M${t[0]} ${t[1]} `;break;case"bcurveTo":s+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case"lineTo":s+=`L${t[0]} ${t[1]} `}}return s.trim()}toPaths(t){let e=t.sets||[],s=t.options||this.defaultOptions,r=[];for(let t of e){let e=null;switch(t.type){case"path":e={d:this.opsToPath(t),stroke:s.stroke,strokeWidth:s.strokeWidth,fill:tl};break;case"fillPath":e={d:this.opsToPath(t),stroke:tl,strokeWidth:0,fill:s.fill||tl};break;case"fillSketch":e=this.fillSketch(t,s)}e&&r.push(e)}return r}fillSketch(t,e){let s=e.fillWeight;return s<0&&(s=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||tl,strokeWidth:s,fill:tl}}_mergedShape(t){return t.filter((t,e)=>0===e||"move"!==t.op)}};function tu(t){return{roughness:t?.roughness??1,bowing:t?.bowing??1,passes:t?.passes??2,strokeWidth:t?.strokeWidth??1.6,fill:t?.fill??"none",hachureAngle:t?.hachureAngle??-41,hachureGap:t?.hachureGap??5,fillWeight:t?.fillWeight??.9}}function tp(t,e,s,r,n,a={},i){let o=[],l=function(t={}){return[`stroke-linecap="${t.lineCap??"round"}"`,`stroke-linejoin="${t.lineJoin??"round"}"`,...void 0!==t.miterLimit?[`stroke-miterlimit="${h(String(t.miterLimit))}"`]:[],...void 0!==t.dashArray?[`stroke-dasharray="${h(t.dashArray)}"`]:[],...void 0!==t.dashOffset?[`stroke-dashoffset="${h(String(t.dashOffset))}"`]:[],...void 0!==t.opacity?[`stroke-opacity="${h(String(t.opacity))}"`]:[],...void 0!==t.pathLength?[`pathLength="${h(String(t.pathLength))}"`]:[],...void 0!==t.paintOrder?[`paint-order="${h(t.paintOrder)}"`]:[],...void 0!==t.mixBlendMode?[`style="mix-blend-mode:${t.mixBlendMode}"`]:[],...t.nonScaling?['vector-effect="non-scaling-stroke"']:[]].join(" ")}(a),p=l?` ${l}`:" ",c=i?.stroke===void 0?"":` stroke-opacity="${h(String(i.stroke))}"`,f=i?.fill===void 0?"":` stroke-opacity="${h(String(i.fill))}"`;for(let a of t){let t=th.opsToPath(a,2);t&&("path"===a.type?o.push(`<path d="${t}" fill="none" stroke="${e}" stroke-width="${u(s)}"${p}${c} />`):"fillPath"===a.type?o.push(`<path d="${t}" fill="${r}" fill-opacity="${h(String(i?.fill??.92))}" stroke="none" />`):"fillSketch"===a.type&&o.push(`<path d="${t}" fill="none" stroke="${r}" stroke-width="${u(n.fillWeight)}"${f} />`))}return o.join(`
1
+ import{i as t,p as e,r as s,s as r,t as n,u as a,y as i}from"./chunk-BCPZYXNZ.js";import{m as o}from"./chunk-37ORXEBA.js";import{Ka as l,N as h,Q as u,W as p,Wb as c,Xb as f,fa as d,fb as g,n as k,ra as y,ta as M,ua as m,vb as x}from"./chunk-XBLK7VXJ.js";import"./chunk-YHMTSXIR.js";import"./chunk-QCU5G5PZ.js";function v(t,e,s){if(t&&t.length){let[r,n]=e,a=Math.PI/180*s,i=Math.cos(a),o=Math.sin(a);for(let e of t){let[t,s]=e;e[0]=(t-r)*i-(s-n)*o+r,e[1]=(t-r)*o+(s-n)*i+n}}}function b(t,e){var s;let r=e.hachureAngle+90,n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.round(Math.max(n,.1));let a=1;return e.roughness>=1&&((null==(s=e.randomizer)?void 0:s.next())||Math.random())>.7&&(a=n),function(t,e,s,r=1){let n=Math.max(e,.1),a=t[0]&&t[0][0]&&"number"==typeof t[0][0]?[t]:t,i=[0,0];if(s)for(let t of a)v(t,i,s);let o=function(t,e,s){let r=[];for(let e of t){var n,a;let t=[...e];n=t[0],a=t[t.length-1],n[0]===a[0]&&n[1]===a[1]||t.push([t[0][0],t[0][1]]),t.length>2&&r.push(t)}let i=[];e=Math.max(e,.1);let o=[];for(let t of r)for(let e=0;e<t.length-1;e++){let s=t[e],r=t[e+1];if(s[1]!==r[1]){let t=Math.min(s[1],r[1]);o.push({ymin:t,ymax:Math.max(s[1],r[1]),x:t===s[1]?s[0]:r[0],islope:(r[0]-s[0])/(r[1]-s[1])})}}if(o.sort((t,e)=>t.ymin<e.ymin?-1:t.ymin>e.ymin?1:t.x<e.x?-1:t.x>e.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)),!o.length)return i;let l=[],h=o[0].ymin,u=0;for(;l.length||o.length;){if(o.length){let t=-1;for(let e=0;e<o.length&&!(o[e].ymin>h);e++)t=e;o.splice(0,t+1).forEach(t=>{l.push({s:h,edge:t})})}if((l=l.filter(t=>!(t.edge.ymax<=h))).sort((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)),(1!==s||u%e==0)&&l.length>1)for(let t=0;t<l.length;t+=2){let e=t+1;if(e>=l.length)break;let s=l[t].edge,r=l[e].edge;i.push([[Math.round(s.x),h],[Math.round(r.x),h]])}h+=s,l.forEach(t=>{t.edge.x=t.edge.x+s*t.edge.islope}),u++}return i}(a,n,r);if(s){let t;for(let t of a)v(t,i,-s);t=[],o.forEach(e=>t.push(...e)),v(t,i,-s)}return o}(t,n,r,a||1)}var $=class{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){let s=b(t,e);return{type:"fillSketch",ops:this.renderLines(s,e)}}renderLines(t,e){let s=[];for(let r of t)s.push(...this.helper.doubleLineOps(r[0][0],r[0][1],r[1][0],r[1][1],e));return s}};function P(t){let e=t[0],s=t[1];return Math.sqrt(Math.pow(e[0]-s[0],2)+Math.pow(e[1]-s[1],2))}var w=class extends ${fillPolygons(t,e){let s=e.hachureGap;s<0&&(s=4*e.strokeWidth);let r=b(t,Object.assign({},e,{hachureGap:s=Math.max(s,.1)})),n=Math.PI/180*e.hachureAngle,a=[],i=.5*s*Math.cos(n),o=.5*s*Math.sin(n);for(let[t,e]of r)P([t,e])&&a.push([[t[0]-i,t[1]+o],[...e]],[[t[0]+i,t[1]-o],[...e]]);return{type:"fillSketch",ops:this.renderLines(a,e)}}},S=class extends ${fillPolygons(t,e){let s=this._fillPolygons(t,e),r=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),n=this._fillPolygons(t,r);return s.ops=s.ops.concat(n.ops),s}},O=class{constructor(t){this.helper=t}fillPolygons(t,e){let s=b(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(s,e)}dotsOnLines(t,e){let s=[],r=e.hachureGap;r<0&&(r=4*e.strokeWidth),r=Math.max(r,.1);let n=e.fillWeight;n<0&&(n=e.strokeWidth/2);let a=r/4;for(let i of t){let t=P(i),o=Math.ceil(t/r)-1,l=t-o*r,h=(i[0][0]+i[1][0])/2-r/4,u=Math.min(i[0][1],i[1][1]);for(let t=0;t<o;t++){let i=h-a+2*Math.random()*a,o=u+l+t*r-a+2*Math.random()*a,p=this.helper.ellipse(i,o,n,n,e);s.push(...p.ops)}}return{type:"fillSketch",ops:s}}},L=class{constructor(t){this.helper=t}fillPolygons(t,e){let s=b(t,e);return{type:"fillSketch",ops:this.dashedLine(s,e)}}dashedLine(t,e){let s=e.dashOffset<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashOffset,r=e.dashGap<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashGap,n=[];return t.forEach(t=>{let a=P(t),i=Math.floor(a/(s+r)),o=(a+r-i*(s+r))/2,l=t[0],h=t[1];l[0]>h[0]&&(l=t[1],h=t[0]);let u=Math.atan((h[1]-l[1])/(h[0]-l[0]));for(let t=0;t<i;t++){let a=t*(s+r),i=a+s,h=[l[0]+a*Math.cos(u)+o*Math.cos(u),l[1]+a*Math.sin(u)+o*Math.sin(u)],p=[l[0]+i*Math.cos(u)+o*Math.cos(u),l[1]+i*Math.sin(u)+o*Math.sin(u)];n.push(...this.helper.doubleLineOps(h[0],h[1],p[0],p[1],e))}}),n}},j=class{constructor(t){this.helper=t}fillPolygons(t,e){let s=e.hachureGap<0?4*e.strokeWidth:e.hachureGap,r=e.zigzagOffset<0?s:e.zigzagOffset,n=b(t,e=Object.assign({},e,{hachureGap:s+r}));return{type:"fillSketch",ops:this.zigzagLines(n,r,e)}}zigzagLines(t,e,s){let r=[];return t.forEach(t=>{let n=Math.round(P(t)/(2*e)),a=t[0],i=t[1];a[0]>i[0]&&(a=t[1],i=t[0]);let o=Math.atan((i[1]-a[1])/(i[0]-a[0]));for(let t=0;t<n;t++){let n=2*t*e,i=(t+1)*2*e,l=Math.sqrt(2*Math.pow(e,2)),h=[a[0]+n*Math.cos(o),a[1]+n*Math.sin(o)],u=[a[0]+i*Math.cos(o),a[1]+i*Math.sin(o)],p=[h[0]+l*Math.cos(o+Math.PI/4),h[1]+l*Math.sin(o+Math.PI/4)];r.push(...this.helper.doubleLineOps(h[0],h[1],p[0],p[1],s),...this.helper.doubleLineOps(p[0],p[1],u[0],u[1],s))}}),r}},I={},_=class{constructor(t){this.seed=t}next(){return this.seed?(0x80000000-1&(this.seed=Math.imul(48271,this.seed)))/0x80000000:Math.random()}},W={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function z(t){let e=[],s=function(t){let e=[];for(;""!==t;)if(t.match(/^([ \t\r\n,]+)/))t=t.substr(RegExp.$1.length);else if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:0,text:RegExp.$1},t=t.substr(RegExp.$1.length);else{if(!t.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:1,text:`${parseFloat(RegExp.$1)}`},t=t.substr(RegExp.$1.length)}return e[e.length]={type:2,text:""},e}(t),r="BOD",n=0,a=s[0];for(;2!==a.type;){let i=0,o=[];if("BOD"===r)if("M"!==a.text&&"m"!==a.text)return z("M0,0"+t);else n++,i=W[a.text],r=a.text;else 1===a.type?i=W[r]:(n++,i=W[a.text],r=a.text);if(n+i<s.length){for(let t=n;t<n+i;t++){let e=s[t];if(1===e.type)o[o.length]=+e.text;else throw Error("Param not a number: "+r+","+e.text)}if("number"==typeof W[r]){let t={key:r,data:o};e.push(t),n+=i,a=s[n],"M"===r&&(r="L"),"m"===r&&(r="l")}else throw Error("Bad segment: "+r)}else throw Error("Path data ended short")}return e}function C(t){let e=0,s=0,r=0,n=0,a=[];for(let{key:i,data:o}of t)switch(i){case"M":a.push({key:"M",data:[...o]}),[e,s]=o,[r,n]=o;break;case"m":e+=o[0],s+=o[1],a.push({key:"M",data:[e,s]}),r=e,n=s;break;case"L":a.push({key:"L",data:[...o]}),[e,s]=o;break;case"l":e+=o[0],s+=o[1],a.push({key:"L",data:[e,s]});break;case"C":a.push({key:"C",data:[...o]}),e=o[4],s=o[5];break;case"c":{let t=o.map((t,r)=>r%2?t+s:t+e);a.push({key:"C",data:t}),e=t[4],s=t[5];break}case"Q":a.push({key:"Q",data:[...o]}),e=o[2],s=o[3];break;case"q":{let t=o.map((t,r)=>r%2?t+s:t+e);a.push({key:"Q",data:t}),e=t[2],s=t[3];break}case"A":a.push({key:"A",data:[...o]}),e=o[5],s=o[6];break;case"a":e+=o[5],s+=o[6],a.push({key:"A",data:[o[0],o[1],o[2],o[3],o[4],e,s]});break;case"H":a.push({key:"H",data:[...o]}),e=o[0];break;case"h":e+=o[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...o]}),s=o[0];break;case"v":s+=o[0],a.push({key:"V",data:[s]});break;case"S":a.push({key:"S",data:[...o]}),e=o[2],s=o[3];break;case"s":{let t=o.map((t,r)=>r%2?t+s:t+e);a.push({key:"S",data:t}),e=t[2],s=t[3];break}case"T":a.push({key:"T",data:[...o]}),e=o[0],s=o[1];break;case"t":e+=o[0],s+=o[1],a.push({key:"T",data:[e,s]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=r,s=n}return a}function A(t){let e=[],s="",r=0,n=0,a=0,i=0,o=0,l=0;for(let{key:h,data:u}of t){switch(h){case"M":e.push({key:"M",data:[...u]}),[r,n]=u,[a,i]=u;break;case"C":e.push({key:"C",data:[...u]}),r=u[4],n=u[5],o=u[2],l=u[3];break;case"L":e.push({key:"L",data:[...u]}),[r,n]=u;break;case"H":r=u[0],e.push({key:"L",data:[r,n]});break;case"V":n=u[0],e.push({key:"L",data:[r,n]});break;case"S":{let t=0,a=0;"C"===s||"S"===s?(t=r+(r-o),a=n+(n-l)):(t=r,a=n),e.push({key:"C",data:[t,a,...u]}),o=u[0],l=u[1],r=u[2],n=u[3];break}case"T":{let[t,a]=u,i=0,h=0;"Q"===s||"T"===s?(i=r+(r-o),h=n+(n-l)):(i=r,h=n);let p=r+2*(i-r)/3,c=n+2*(h-n)/3,f=t+2*(i-t)/3,d=a+2*(h-a)/3;e.push({key:"C",data:[p,c,f,d,t,a]}),o=i,l=h,r=t,n=a;break}case"Q":{let[t,s,a,i]=u,h=r+2*(t-r)/3,p=n+2*(s-n)/3,c=a+2*(t-a)/3,f=i+2*(s-i)/3;e.push({key:"C",data:[h,p,c,f,a,i]}),o=t,l=s,r=a,n=i;break}case"A":{let t=Math.abs(u[0]),s=Math.abs(u[1]),a=u[2],i=u[3],o=u[4],l=u[5],h=u[6];0===t||0===s?(e.push({key:"C",data:[r,n,l,h,l,h]}),r=l,n=h):(r!==l||n!==h)&&((function t(e,s,r,n,a,i,o,l,h,u){let p=Math.PI*o/180,c=[],f=0,d=0,g=0,k=0;if(u)[f,d,g,k]=u;else{[e,s]=T(e,s,-p),[r,n]=T(r,n,-p);let t=(e-r)/2,o=(s-n)/2,u=t*t/(a*a)+o*o/(i*i);u>1&&(a*=u=Math.sqrt(u),i*=u);let c=a*a,y=i*i,M=(l===h?-1:1)*Math.sqrt(Math.abs((c*y-c*o*o-y*t*t)/(c*o*o+y*t*t)));g=M*a*o/i+(e+r)/2,k=-(M*i)*t/a+(s+n)/2,f=Math.asin(parseFloat(((s-k)/i).toFixed(9))),d=Math.asin(parseFloat(((n-k)/i).toFixed(9))),e<g&&(f=Math.PI-f),r<g&&(d=Math.PI-d),f<0&&(f=2*Math.PI+f),d<0&&(d=2*Math.PI+d),h&&f>d&&(f-=2*Math.PI),!h&&d>f&&(d-=2*Math.PI)}let y=d-f;if(Math.abs(y)>120*Math.PI/180){let e=d,s=r,l=n;c=t(r=g+a*Math.cos(d=h&&d>f?f+120*Math.PI/180*1:f+-(120*Math.PI/180*1)),n=k+i*Math.sin(d),s,l,a,i,o,0,h,[d,e,g,k])}y=d-f;let M=Math.cos(f),m=Math.cos(d),x=Math.tan(y/4),v=4/3*a*x,b=4/3*i*x,$=[e,s],P=[e+v*Math.sin(f),s-b*M],w=[r+v*Math.sin(d),n-b*m],S=[r,n];if(P[0]=2*$[0]-P[0],P[1]=2*$[1]-P[1],u)return[P,w,S].concat(c);{c=[P,w,S].concat(c);let t=[];for(let e=0;e<c.length;e+=3){let s=T(c[e][0],c[e][1],p),r=T(c[e+1][0],c[e+1][1],p),n=T(c[e+2][0],c[e+2][1],p);t.push([s[0],s[1],r[0],r[1],n[0],n[1]])}return t}})(r,n,l,h,t,s,a,i,o).forEach(function(t){e.push({key:"C",data:t})}),r=l,n=h);break}case"Z":e.push({key:"Z",data:[]}),r=a,n=i}s=h}return e}function T(t,e,s){return[t*Math.cos(s)-e*Math.sin(s),t*Math.sin(s)+e*Math.cos(s)]}var G={randOffset:function(t,e){return J(t,e)},randOffsetWithRange:function(t,e,s){return D(t,e,s)},ellipse:function(t,e,s,r,n){let a=Z(s,r,n);return F(t,e,n,a).opset},doubleLineOps:function(t,e,s,r,n){return K(t,e,s,r,n,!0)}};function E(t,e,s,r,n){return{type:"path",ops:K(t,e,s,r,n)}}function R(t,e,s){let r=(t||[]).length;if(r>2){let n=[];for(let e=0;e<r-1;e++)n.push(...K(t[e][0],t[e][1],t[e+1][0],t[e+1][1],s));return e&&n.push(...K(t[r-1][0],t[r-1][1],t[0][0],t[0][1],s)),{type:"path",ops:n}}return 2===r?E(t[0][0],t[0][1],t[1][0],t[1][1],s):{type:"path",ops:[]}}function B(t,e){if(t.length){let s="number"==typeof t[0][0]?[t]:t,r=Y(s[0],+(1+.2*e.roughness),e),n=e.disableMultiStroke?[]:Y(s[0],1.5*(1+.22*e.roughness),H(e));for(let t=1;t<s.length;t++){let a=s[t];if(a.length){let t=Y(a,+(1+.2*e.roughness),e),s=e.disableMultiStroke?[]:Y(a,1.5*(1+.22*e.roughness),H(e));for(let e of t)"move"!==e.op&&r.push(e);for(let t of s)"move"!==t.op&&n.push(t)}}return{type:"path",ops:r.concat(n)}}return{type:"path",ops:[]}}function Z(t,e,s){let r=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),n=2*Math.PI/Math.ceil(Math.max(s.curveStepCount,s.curveStepCount/Math.sqrt(200)*r)),a=Math.abs(t/2),i=Math.abs(e/2),o=1-s.curveFitting;return a+=J(a*o,s),i+=J(i*o,s),{increment:n,rx:a,ry:i}}function F(t,e,s,r){let[n,a]=te(r.increment,t,e,r.rx,r.ry,1,r.increment*D(.1,D(.4,1,s),s),s),i=tt(n,null,s);if(!s.disableMultiStroke&&0!==s.roughness){let[n]=te(r.increment,t,e,r.rx,r.ry,1.5,0,s),a=tt(n,null,s);i=i.concat(a)}return{estimatedPoints:a,opset:{type:"path",ops:i}}}function Q(t,e,s,r,n,a,i,o,l){let h=Math.abs(s/2),u=Math.abs(r/2);h+=J(.01*h,l),u+=J(.01*u,l);let p=n,c=a;for(;p<0;)p+=2*Math.PI,c+=2*Math.PI;c-p>2*Math.PI&&(p=0,c=2*Math.PI);let f=Math.min(2*Math.PI/l.curveStepCount/2,(c-p)/2),d=ts(f,t,e,h,u,p,c,1,l);if(!l.disableMultiStroke){let s=ts(f,t,e,h,u,p,c,1.5,l);d.push(...s)}return i&&(o?d.push(...K(t,e,t+h*Math.cos(p),e+u*Math.sin(p),l),...K(t,e,t+h*Math.cos(c),e+u*Math.sin(c),l)):d.push({op:"lineTo",data:[t,e]},{op:"lineTo",data:[t+h*Math.cos(p),e+u*Math.sin(p)]})),{type:"path",ops:d}}function q(t,e){let s=A(C(z(t))),r=[],n=[0,0],a=[0,0];for(let{key:t,data:i}of s)switch(t){case"M":a=[i[0],i[1]],n=[i[0],i[1]];break;case"L":r.push(...K(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]];break;case"C":{let[t,s,n,o,l,h]=i;r.push(...function(t,e,s,r,n,a,i,o){let l=[],h=[o.maxRandomnessOffset||1,(o.maxRandomnessOffset||1)+.3],u=[0,0],p=o.disableMultiStroke?1:2,c=o.preserveVertices;for(let f=0;f<p;f++)0===f?l.push({op:"move",data:[i[0],i[1]]}):l.push({op:"move",data:[i[0]+(c?0:J(h[0],o)),i[1]+(c?0:J(h[0],o))]}),u=c?[n,a]:[n+J(h[f],o),a+J(h[f],o)],l.push({op:"bcurveTo",data:[t+J(h[f],o),e+J(h[f],o),s+J(h[f],o),r+J(h[f],o),u[0],u[1]]});return l}(t,s,n,o,l,h,a,e)),a=[l,h];break}case"Z":r.push(...K(a[0],a[1],n[0],n[1],e)),a=[n[0],n[1]]}return{type:"path",ops:r}}function N(t,e){let s=[];for(let r of t)if(r.length){let t=e.maxRandomnessOffset||0,n=r.length;if(n>2){s.push({op:"move",data:[r[0][0]+J(t,e),r[0][1]+J(t,e)]});for(let a=1;a<n;a++)s.push({op:"lineTo",data:[r[a][0]+J(t,e),r[a][1]+J(t,e)]})}}return{type:"fillPath",ops:s}}function V(t,e){return(function(t,e){let s=t.fillStyle||"hachure";if(!I[s])switch(s){case"zigzag":I[s]||(I[s]=new w(e));break;case"cross-hatch":I[s]||(I[s]=new S(e));break;case"dots":I[s]||(I[s]=new O(e));break;case"dashed":I[s]||(I[s]=new L(e));break;case"zigzag-line":I[s]||(I[s]=new j(e));break;default:I[s="hachure"]||(I[s]=new $(e))}return I[s]})(e,G).fillPolygons(t,e)}function H(t){let e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}function X(t){return t.randomizer||(t.randomizer=new _(t.seed||0)),t.randomizer.next()}function D(t,e,s,r=1){return s.roughness*r*(X(s)*(e-t)+t)}function J(t,e,s=1){return D(-t,t,e,s)}function K(t,e,s,r,n,a=!1){let i=a?n.disableMultiStrokeFill:n.disableMultiStroke,o=U(t,e,s,r,n,!0,!1);if(i)return o;let l=U(t,e,s,r,n,!0,!0);return o.concat(l)}function U(t,e,s,r,n,a,i){let o=Math.pow(t-s,2)+Math.pow(e-r,2),l=Math.sqrt(o),h=1;h=l<200?1:l>500?.4:-.0016668*l+1.233334;let u=n.maxRandomnessOffset||0;u*u*100>o&&(u=l/10);let p=u/2,c=.2+.2*X(n),f=n.bowing*n.maxRandomnessOffset*(r-e)/200,d=n.bowing*n.maxRandomnessOffset*(t-s)/200;f=J(f,n,h),d=J(d,n,h);let g=[],k=n.preserveVertices;return a&&(i?g.push({op:"move",data:[t+(k?0:J(p,n,h)),e+(k?0:J(p,n,h))]}):g.push({op:"move",data:[t+(k?0:J(u,n,h)),e+(k?0:J(u,n,h))]})),i?g.push({op:"bcurveTo",data:[f+t+(s-t)*c+J(p,n,h),d+e+(r-e)*c+J(p,n,h),f+t+2*(s-t)*c+J(p,n,h),d+e+2*(r-e)*c+J(p,n,h),s+(k?0:J(p,n,h)),r+(k?0:J(p,n,h))]}):g.push({op:"bcurveTo",data:[f+t+(s-t)*c+J(u,n,h),d+e+(r-e)*c+J(u,n,h),f+t+2*(s-t)*c+J(u,n,h),d+e+2*(r-e)*c+J(u,n,h),s+(k?0:J(u,n,h)),r+(k?0:J(u,n,h))]}),g}function Y(t,e,s){if(!t.length)return[];let r=[];r.push([t[0][0]+J(e,s),t[0][1]+J(e,s)]),r.push([t[0][0]+J(e,s),t[0][1]+J(e,s)]);for(let n=1;n<t.length;n++)r.push([t[n][0]+J(e,s),t[n][1]+J(e,s)]),n===t.length-1&&r.push([t[n][0]+J(e,s),t[n][1]+J(e,s)]);return tt(r,null,s)}function tt(t,e,s){let r=t.length,n=[];if(r>3){let a=[],i=1-s.curveTightness;n.push({op:"move",data:[t[1][0],t[1][1]]});for(let e=1;e+2<r;e++){let s=t[e];a[0]=[s[0],s[1]],a[1]=[s[0]+(i*t[e+1][0]-i*t[e-1][0])/6,s[1]+(i*t[e+1][1]-i*t[e-1][1])/6],a[2]=[t[e+1][0]+(i*t[e][0]-i*t[e+2][0])/6,t[e+1][1]+(i*t[e][1]-i*t[e+2][1])/6],a[3]=[t[e+1][0],t[e+1][1]],n.push({op:"bcurveTo",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&2===e.length){let t=s.maxRandomnessOffset;n.push({op:"lineTo",data:[e[0]+J(t,s),e[1]+J(t,s)]})}}else 3===r?(n.push({op:"move",data:[t[1][0],t[1][1]]}),n.push({op:"bcurveTo",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):2===r&&n.push(...U(t[0][0],t[0][1],t[1][0],t[1][1],s,!0,!0));return n}function te(t,e,s,r,n,a,i,o){let l=0===o.roughness,h=[],u=[];if(l){t/=4,u.push([e+r*Math.cos(-t),s+n*Math.sin(-t)]);for(let a=0;a<=2*Math.PI;a+=t){let t=[e+r*Math.cos(a),s+n*Math.sin(a)];h.push(t),u.push(t)}u.push([e+ +r,s+0*n]),u.push([e+r*Math.cos(t),s+n*Math.sin(t)])}else{let l=J(.5,o)-Math.PI/2;u.push([J(a,o)+e+.9*r*Math.cos(l-t),J(a,o)+s+.9*n*Math.sin(l-t)]);let p=2*Math.PI+l-.01;for(let i=l;i<p;i+=t){let t=[J(a,o)+e+r*Math.cos(i),J(a,o)+s+n*Math.sin(i)];h.push(t),u.push(t)}u.push([J(a,o)+e+r*Math.cos(l+2*Math.PI+.5*i),J(a,o)+s+n*Math.sin(l+2*Math.PI+.5*i)]),u.push([J(a,o)+e+.98*r*Math.cos(l+i),J(a,o)+s+.98*n*Math.sin(l+i)]),u.push([J(a,o)+e+.9*r*Math.cos(l+.5*i),J(a,o)+s+.9*n*Math.sin(l+.5*i)])}return[u,h]}function ts(t,e,s,r,n,a,i,o,l){let h=a+J(.1,l),u=[];u.push([J(o,l)+e+.9*r*Math.cos(h-t),J(o,l)+s+.9*n*Math.sin(h-t)]);for(let a=h;a<=i;a+=t)u.push([J(o,l)+e+r*Math.cos(a),J(o,l)+s+n*Math.sin(a)]);return u.push([e+r*Math.cos(i),s+n*Math.sin(i)]),u.push([e+r*Math.cos(i),s+n*Math.sin(i)]),tt(u,null,l)}function tr(t,e=0){let s=t.length;if(s<3)throw Error("A curve must have at least three points.");let r=[];if(3===s)r.push([...t[0]],[...t[1]],[...t[2]],[...t[2]]);else{let s=[];s.push(t[0],t[0]);for(let e=1;e<t.length;e++)s.push(t[e]),e===t.length-1&&s.push(t[e]);let n=[],a=1-e;r.push([...s[0]]);for(let t=1;t+2<s.length;t++){let e=s[t];n[0]=[e[0],e[1]],n[1]=[e[0]+(a*s[t+1][0]-a*s[t-1][0])/6,e[1]+(a*s[t+1][1]-a*s[t-1][1])/6],n[2]=[s[t+1][0]+(a*s[t][0]-a*s[t+2][0])/6,s[t+1][1]+(a*s[t][1]-a*s[t+2][1])/6],n[3]=[s[t+1][0],s[t+1][1]],r.push(n[1],n[2],n[3])}}return r}function tn(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function ta(t,e,s){return[t[0]+(e[0]-t[0])*s,t[1]+(e[1]-t[1])*s]}function ti(t,e,s,r,n){let a=n||[],i=t[e],o=t[s-1],l=0,h=1;for(let r=e+1;r<s-1;++r){let e=function(t,e,s){let r=tn(e,s);if(0===r)return tn(t,e);let n=((t[0]-e[0])*(s[0]-e[0])+(t[1]-e[1])*(s[1]-e[1]))/r;return tn(t,ta(e,s,n=Math.max(0,Math.min(1,n))))}(t[r],i,o);e>l&&(l=e,h=r)}return Math.sqrt(l)>r?(ti(t,e,h+1,r,a),ti(t,h,s,r,a)):(a.length||a.push(i),a.push(o)),a}function to(t,e=.15,s){let r=[],n=(t.length-1)/3;for(let s=0;s<n;s++)!function t(e,s,r,n){let a,i,o,l,h,u,p,c,f=n||[];if(a=e[s+0],i=e[s+1],o=e[s+2],l=e[s+3],h=3*i[0]-2*a[0]-l[0],h*=h,u=3*i[1]-2*a[1]-l[1],u*=u,p=3*o[0]-2*l[0]-a[0],p*=p,c=3*o[1]-2*l[1]-a[1],c*=c,h<p&&(h=p),u<c&&(u=c),h+u<r){let t=e[s+0];f.length?Math.sqrt(tn(f[f.length-1],t))>1&&f.push(t):f.push(t),f.push(e[s+3])}else{let n=e[s+0],a=e[s+1],i=e[s+2],o=e[s+3],l=ta(n,a,.5),h=ta(a,i,.5),u=ta(i,o,.5),p=ta(l,h,.5),c=ta(h,u,.5),d=ta(p,c,.5);t([n,l,p,d],0,r,f),t([d,c,u,o],0,r,f)}return f}(t,3*s,e,r);return s&&s>0?ti(r,0,r.length,s):r}var tl="none",th=new class{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(0x80000000*Math.random())}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,s){return{shape:t,sets:e||[],options:s||this.defaultOptions}}line(t,e,s,r,n){let a=this._o(n);return this._d("line",[E(t,e,s,r,a)],a)}rectangle(t,e,s,r,n){let a=this._o(n),i=[],o=R([[t,e],[t+s,e],[t+s,e+r],[t,e+r]],!0,a);if(a.fill){let n=[[t,e],[t+s,e],[t+s,e+r],[t,e+r]];"solid"===a.fillStyle?i.push(N([n],a)):i.push(V([n],a))}return a.stroke!==tl&&i.push(o),this._d("rectangle",i,a)}ellipse(t,e,s,r,n){let a=this._o(n),i=[],o=Z(s,r,a),l=F(t,e,a,o);if(a.fill)if("solid"===a.fillStyle){let s=F(t,e,a,o).opset;s.type="fillPath",i.push(s)}else i.push(V([l.estimatedPoints],a));return a.stroke!==tl&&i.push(l.opset),this._d("ellipse",i,a)}circle(t,e,s,r){let n=this.ellipse(t,e,s,s,r);return n.shape="circle",n}linearPath(t,e){let s=this._o(e);return this._d("linearPath",[R(t,!1,s)],s)}arc(t,e,s,r,n,a,i=!1,o){let l=this._o(o),h=[],u=Q(t,e,s,r,n,a,i,!0,l);if(i&&l.fill)if("solid"===l.fillStyle){let i=Object.assign({},l);i.disableMultiStroke=!0;let o=Q(t,e,s,r,n,a,!0,!1,i);o.type="fillPath",h.push(o)}else h.push(function(t,e,s,r,n,a,i){let o=Math.abs(s/2),l=Math.abs(r/2);o+=J(.01*o,i),l+=J(.01*l,i);let h=n,u=a;for(;h<0;)h+=2*Math.PI,u+=2*Math.PI;u-h>2*Math.PI&&(h=0,u=2*Math.PI);let p=(u-h)/i.curveStepCount,c=[];for(let s=h;s<=u;s+=p)c.push([t+o*Math.cos(s),e+l*Math.sin(s)]);return c.push([t+o*Math.cos(u),e+l*Math.sin(u)]),c.push([t,e]),V([c],i)}(t,e,s,r,n,a,l));return l.stroke!==tl&&h.push(u),this._d("arc",h,l)}curve(t,e){let s=this._o(e),r=[],n=B(t,s);if(s.fill&&s.fill!==tl)if("solid"===s.fillStyle){let e=B(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));r.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else{let e=[];if(t.length)for(let r of"number"==typeof t[0][0]?[t]:t)r.length<3?e.push(...r):3===r.length?e.push(...to(tr([r[0],r[0],r[1],r[2]]),10,(1+s.roughness)/2)):e.push(...to(tr(r),10,(1+s.roughness)/2));e.length&&r.push(V([e],s))}return s.stroke!==tl&&r.push(n),this._d("curve",r,s)}polygon(t,e){let s=this._o(e),r=[],n=R(t,!0,s);return s.fill&&("solid"===s.fillStyle?r.push(N([t],s)):r.push(V([t],s))),s.stroke!==tl&&r.push(n),this._d("polygon",r,s)}path(t,e){let s=this._o(e),r=[];if(!t)return this._d("path",r,s);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let n=s.fill&&"transparent"!==s.fill&&s.fill!==tl,a=s.stroke!==tl,i=!!(s.simplification&&s.simplification<1),o=i?4-4*(s.simplification||1):(1+s.roughness)/2,l=function(t,e,s){let r=A(C(z(t))),n=[],a=[],i=[0,0],o=[],l=()=>{o.length>=4&&a.push(...to(o,1)),o=[]},h=()=>{l(),a.length&&(n.push(a),a=[])};for(let{key:t,data:e}of r)switch(t){case"M":h(),i=[e[0],e[1]],a.push(i);break;case"L":l(),a.push([e[0],e[1]]);break;case"C":if(!o.length){let t=a.length?a[a.length-1]:i;o.push([t[0],t[1]])}o.push([e[0],e[1]]),o.push([e[2],e[3]]),o.push([e[4],e[5]]);break;case"Z":l(),a.push([i[0],i[1]])}if(h(),!s)return n;let u=[];for(let t of n){let e=ti(t,0,t.length,s);e.length&&u.push(e)}return u}(t,0,o),h=q(t,s);if(n)if("solid"===s.fillStyle)if(1===l.length){let e=q(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));r.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else r.push(N(l,s));else r.push(V(l,s));return a&&(i?l.forEach(t=>{r.push(R(t,!1,s))}):r.push(h)),this._d("path",r,s)}opsToPath(t,e){let s="";for(let r of t.ops){let t="number"==typeof e&&e>=0?r.data.map(t=>+t.toFixed(e)):r.data;switch(r.op){case"move":s+=`M${t[0]} ${t[1]} `;break;case"bcurveTo":s+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case"lineTo":s+=`L${t[0]} ${t[1]} `}}return s.trim()}toPaths(t){let e=t.sets||[],s=t.options||this.defaultOptions,r=[];for(let t of e){let e=null;switch(t.type){case"path":e={d:this.opsToPath(t),stroke:s.stroke,strokeWidth:s.strokeWidth,fill:tl};break;case"fillPath":e={d:this.opsToPath(t),stroke:tl,strokeWidth:0,fill:s.fill||tl};break;case"fillSketch":e=this.fillSketch(t,s)}e&&r.push(e)}return r}fillSketch(t,e){let s=e.fillWeight;return s<0&&(s=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||tl,strokeWidth:s,fill:tl}}_mergedShape(t){return t.filter((t,e)=>0===e||"move"!==t.op)}};function tu(t){return{roughness:t?.roughness??1,bowing:t?.bowing??1,passes:t?.passes??2,strokeWidth:t?.strokeWidth??1.6,fill:t?.fill??"none",hachureAngle:t?.hachureAngle??-41,hachureGap:t?.hachureGap??5,fillWeight:t?.fillWeight??.9}}function tp(t,e,s,r,n,a={},i){let o=[],l=function(t={}){return[`stroke-linecap="${t.lineCap??"round"}"`,`stroke-linejoin="${t.lineJoin??"round"}"`,...void 0!==t.miterLimit?[`stroke-miterlimit="${h(String(t.miterLimit))}"`]:[],...void 0!==t.dashArray?[`stroke-dasharray="${h(t.dashArray)}"`]:[],...void 0!==t.dashOffset?[`stroke-dashoffset="${h(String(t.dashOffset))}"`]:[],...void 0!==t.opacity?[`stroke-opacity="${h(String(t.opacity))}"`]:[],...void 0!==t.pathLength?[`pathLength="${h(String(t.pathLength))}"`]:[],...void 0!==t.paintOrder?[`paint-order="${h(t.paintOrder)}"`]:[],...void 0!==t.mixBlendMode?[`style="mix-blend-mode:${t.mixBlendMode}"`]:[],...t.nonScaling?['vector-effect="non-scaling-stroke"']:[]].join(" ")}(a),p=l?` ${l}`:" ",c=i?.stroke===void 0?"":` stroke-opacity="${h(String(i.stroke))}"`,f=i?.fill===void 0?"":` stroke-opacity="${h(String(i.fill))}"`;for(let a of t){let t=th.opsToPath(a,2);t&&("path"===a.type?o.push(`<path d="${t}" fill="none" stroke="${e}" stroke-width="${u(s)}"${p}${c} />`):"fillPath"===a.type?o.push(`<path d="${t}" fill="${r}" fill-opacity="${h(String(i?.fill??.92))}" stroke="none" />`):"fillSketch"===a.type&&o.push(`<path d="${t}" fill="none" stroke="${r}" stroke-width="${u(n.fillWeight)}"${f} />`))}return o.join(`
2
2
  `)}function tc(t,e,s,r,n,a,i,o,l){var h,u,p,c,f;let d={...o,...void 0!==i?{dashArray:i}:{}},g={seed:e,roughness:a.roughness,bowing:a.bowing,stroke:s,strokeWidth:r,disableMultiStroke:a.passes<2,...n?{fill:n,fillStyle:"solid"===a.fill?"solid":"hachure",fillWeight:a.fillWeight,hachureGap:a.hachureGap,hachureAngle:a.hachureAngle}:{},preserveVertices:!1};try{switch(t.kind){case"rect":let e;return(t.rx??0)>.5?tp(th.path((h=t.x,u=t.y,p=t.width,c=t.height,f=t.rx,e=Math.min(f,p/2,c/2),`M ${h+e} ${u} L ${h+p-e} ${u} Q ${h+p} ${u} ${h+p} ${u+e} L ${h+p} ${u+c-e} Q ${h+p} ${u+c} ${h+p-e} ${u+c} L ${h+e} ${u+c} Q ${h} ${u+c} ${h} ${u+c-e} L ${h} ${u+e} Q ${h} ${u} ${h+e} ${u} Z`),g).sets,s,r,n,a,d,l):tp(th.rectangle(t.x,t.y,t.width,t.height,g).sets,s,r,n,a,d,l);case"circle":return tp(th.circle(t.cx,t.cy,2*t.r,g).sets,s,r,n,a,d,l);case"ellipse":return tp(th.ellipse(t.cx,t.cy,2*t.rx,2*t.ry,g).sets,s,r,n,a,d,l);case"line":return tp(th.line(t.x1,t.y1,t.x2,t.y2,g).sets,s,r,void 0,a,d,l);case"polygon":return tp(th.polygon(t.points.map(t=>[t.x,t.y]),g).sets,s,r,n,a,d,l);case"polyline":return tp(th.linearPath(t.points.map(t=>[t.x,t.y]),g).sets,s,r,void 0,a,d,l);case"path":return tp(th.path(t.d,g).sets,s,r,n,a,d,l);case"compound":return""}}catch{return""}}function tf(t,e,s,r,n,a,i,o,l){if(t.sketcher){let h=t.sketcher(e,{seed:s,stroke:r,width:n,fill:a,p:t.p,style:t.ctx.style,dash:i,strokeProjection:o,opacity:l});if(null!==h)return h}return tc(e,s,r,n,a,t.p,i,o,l)}function td(t,e,s){return t.replace(`<${e} `,`<${e} ${s} `)}function tg(t){if(void 0===t)return 1;let e="number"==typeof t?t:parseFloat(t);return Number.isNaN(e)?1:e}function tk(t,e){return void 0!==t?t:e}function ty(t,e){return e&&""!==t?`<g transform="${l(e)}">${t}</g>`:t}function tM(t){return t.startsWith("var(--_node-fill")||t.startsWith("var(--_group")||"var(--bg)"===t||"var(--surface)"===t}function tm(t,e){return/<text\b[^>]*?\sfill="/.test(t)?t.replace(/(<text\b[^>]*?\sfill=")[^"]*(")/,`$1${h(e)}$2`):t.replace(/<text /,`<text fill="${h(e)}" `)}function tx(t,e){switch(t.kind){case"document":return x(t);case"shape":return"shape"===k(t.role).sketch?function(t,e){let s=e.p,r=x(t),n=function(t){let e=[],s=0,r,n=/<\/([a-zA-Z][a-zA-Z0-9-]*)>/g,a=[];for(let e of g(t)){let t=new Map(e.attributes.map(t=>[t.name,t.value]));a.push({index:e.start,kind:e.selfClosing?"self":"open",tag:e.name,attrs:t})}for(;null!==(r=n.exec(t));)a.push({index:r.index,kind:"close",tag:r[1]});for(let t of(a.sort((t,e)=>t.index-e.index),a))"self"===t.kind?0===s&&e.push({tag:t.tag,attrs:t.attrs}):"open"===t.kind?(0===s&&e.push({tag:t.tag,attrs:t.attrs}),s++):s--;return e}(r),a="compound"===t.geometry.kind?t.geometry.children:[t.geometry];if(n.length<a.length)return r;let i=r.split(`
3
- `),o=t=>1===i.length&&0===t?r:i[t]??"",l=[];for(let r=0;r<a.length;r++){var h,u;let i=n[r],p=tk(i.attrs.get("stroke"),t.paint.stroke),f=tk(i.attrs.get("fill"),t.paint.fill),d=c(e.ctx.seed,t.id,`outline:${r}`)||1,g=tg(tk(i.attrs.get("stroke-width"),t.paint.strokeWidth)),k=tk(i.attrs.get("stroke-dasharray"),t.paint.strokeDasharray),y=void 0!==p&&"none"!==p&&g>0,M=void 0!==f&&"none"!==f,m=M&&"none"!==s.fill?f:void 0,x=function(t,e){let s=t.get("opacity")??e.opacity,r=t.get("fill-opacity")??e.fillOpacity,n=t.get("stroke-opacity")??e.strokeOpacity;if(void 0===s&&void 0===r&&void 0===n)return;let a=t=>void 0===t?s:void 0===s?t:Number(s)*Number(t);return{fill:a(r),stroke:a(n)}}(i.attrs,t.paint)??{};if("wash"===s.fill&&t.channels?.category!==void 0&&["pie-slice","actor","legend","point","bar"].includes(t.role)&&(x.fill??="1"),!y){if(t.surfaceFragment&&M&&"none"===s.fill&&tM(f))continue;if(m){let s=tf(e,a[r],d,"none",0,m,k,void 0,x);if(s){l.push(ty(s,t.transform));continue}}l.push(o(r));continue}let v=Math.max(.6,Math.min(s.strokeWidth*g,4*s.strokeWidth)),b=tf(e,a[r],d,p,v,m,k,void 0,x);if(!b){l.push(o(r));continue}M&&"none"===s.fill&&!tM(f)&&l.push((h=o(r),u=i.tag,/style="/.test(h)?h.replace(/style="([^"]*)"/,(t,e)=>{let s=0===e.trim().length||/;\s*$/.test(e)?"":";";return`style="${e}${s}stroke:none"`}):td(h,u,'style="stroke:none"'))),l.push(ty(b,t.transform))}let p=l.filter(Boolean).join(`
4
- `);return t.identity&&!/\sdata-id=/.test(p)?f(p,t.identity):p}(t,e):x(t);case"connector":return"connector"===k(t.role).sketch?function(t,e){let s=x(t);if("invisible"===t.lineStyle||""===s)return s;let r=t.stroke.color,n=tg(t.stroke.width);if(n<=0)return s;let a=t.stroke.encodesValue?n:e.p.strokeWidth*n,i=c(e.ctx.seed,t.id,"stroke")||1,o=t.stroke.dash?"string"==typeof t.stroke.dash.array?t.stroke.dash.array:t.stroke.dash.array.join(" "):void 0,l={...void 0!==o?{dashArray:o}:{},...t.stroke.dash?.offset!==void 0?{dashOffset:t.stroke.dash.offset}:{},lineCap:t.stroke.lineCap,lineJoin:t.stroke.lineJoin,miterLimit:t.stroke.miterLimit,...void 0!==t.stroke.opacity?{opacity:t.stroke.opacity}:{},...void 0!==t.stroke.pathLength?{pathLength:t.stroke.pathLength}:{},...void 0!==t.stroke.paintOrder?{paintOrder:t.stroke.paintOrder}:{},...void 0!==t.stroke.mixBlendMode?{mixBlendMode:t.stroke.mixBlendMode}:{},nonScaling:t.stroke.nonScaling},h="",u=t.route.geometry;if("polyline"===u.kind)h=tf(e,{kind:"polyline",points:u.points},i,r,a,void 0,o,l);else if("line"===u.kind)h=tf(e,u,i,r,a,void 0,o,l);else{let s=d(u,t.route.closed);if(1===s.length&&(h=tf(e,{kind:"path",d:u.d},i,r,a,void 0,o,l)),!h&&u.points.length>1){let t=s.map((t,s)=>{let n=t.points[0],h=t.points.at(-1);return tf(e,{kind:"polyline",points:[...t.closed&&n&&h&&(n.x!==h.x||n.y!==h.y)?[...t.points,n]:t.points]},i+s,r,a,void 0,o,l)});h=t.every(Boolean)?t.join(`
3
+ `),o=t=>1===i.length&&0===t?r:i[t]??"",l=[];for(let r=0;r<a.length;r++){var h,u;let i=n[r],p=tk(i.attrs.get("stroke"),t.paint.stroke),c=tk(i.attrs.get("fill"),t.paint.fill),d=f(e.ctx.seed,t.id,`outline:${r}`)||1,g=tg(tk(i.attrs.get("stroke-width"),t.paint.strokeWidth)),k=tk(i.attrs.get("stroke-dasharray"),t.paint.strokeDasharray),y=void 0!==p&&"none"!==p&&g>0,M=void 0!==c&&"none"!==c,m=M&&"none"!==s.fill?c:void 0,x=function(t,e){let s=t.get("opacity")??e.opacity,r=t.get("fill-opacity")??e.fillOpacity,n=t.get("stroke-opacity")??e.strokeOpacity;if(void 0===s&&void 0===r&&void 0===n)return;let a=t=>void 0===t?s:void 0===s?t:Number(s)*Number(t);return{fill:a(r),stroke:a(n)}}(i.attrs,t.paint)??{};if("wash"===s.fill&&t.channels?.category!==void 0&&["pie-slice","actor","legend","point","bar"].includes(t.role)&&(x.fill??="1"),!y){if(t.surfaceFragment&&M&&"none"===s.fill&&tM(c))continue;if(m){let s=tf(e,a[r],d,"none",0,m,k,void 0,x);if(s){l.push(ty(s,t.transform));continue}}l.push(o(r));continue}let v=Math.max(.6,Math.min(s.strokeWidth*g,4*s.strokeWidth)),b=tf(e,a[r],d,p,v,m,k,void 0,x);if(!b){l.push(o(r));continue}M&&"none"===s.fill&&!tM(c)&&l.push((h=o(r),u=i.tag,/style="/.test(h)?h.replace(/style="([^"]*)"/,(t,e)=>{let s=0===e.trim().length||/;\s*$/.test(e)?"":";";return`style="${e}${s}stroke:none"`}):td(h,u,'style="stroke:none"'))),l.push(ty(b,t.transform))}let c=l.filter(Boolean).join(`
4
+ `);return t.identity&&!/\sdata-id=/.test(c)?p(c,t.identity):c}(t,e):x(t);case"connector":return"connector"===k(t.role).sketch?function(t,e){let s=x(t);if("invisible"===t.lineStyle||""===s)return s;let r=t.stroke.color,n=tg(t.stroke.width);if(n<=0)return s;let a=t.stroke.encodesValue?n:e.p.strokeWidth*n,i=f(e.ctx.seed,t.id,"stroke")||1,o=t.stroke.dash?"string"==typeof t.stroke.dash.array?t.stroke.dash.array:t.stroke.dash.array.join(" "):void 0,l={...void 0!==o?{dashArray:o}:{},...t.stroke.dash?.offset!==void 0?{dashOffset:t.stroke.dash.offset}:{},lineCap:t.stroke.lineCap,lineJoin:t.stroke.lineJoin,miterLimit:t.stroke.miterLimit,...void 0!==t.stroke.opacity?{opacity:t.stroke.opacity}:{},...void 0!==t.stroke.pathLength?{pathLength:t.stroke.pathLength}:{},...void 0!==t.stroke.paintOrder?{paintOrder:t.stroke.paintOrder}:{},...void 0!==t.stroke.mixBlendMode?{mixBlendMode:t.stroke.mixBlendMode}:{},nonScaling:t.stroke.nonScaling},h="",u=t.route.geometry;if("polyline"===u.kind)h=tf(e,{kind:"polyline",points:u.points},i,r,a,void 0,o,l);else if("line"===u.kind)h=tf(e,u,i,r,a,void 0,o,l);else{let s=d(u,t.route.closed);if(1===s.length&&(h=tf(e,{kind:"path",d:u.d},i,r,a,void 0,o,l)),!h&&u.points.length>1){let t=s.map((t,s)=>{let n=t.points[0],h=t.points.at(-1);return tf(e,{kind:"polyline",points:[...t.closed&&n&&h&&(n.x!==h.x||n.y!==h.y)?[...t.points,n]:t.points]},i+s,r,a,void 0,o,l)});h=t.every(Boolean)?t.join(`
5
5
  `):""}}if(!h)return s;let p=s.replace(/\sstroke-opacity=(?:"[^"]*"|'[^']*')/,' stroke-opacity="0"');return`${p===s?td(s,t.route.geometry.kind,'stroke-opacity="0"'):p}
6
6
  ${ty(h,t.transform)}`}(t,e):x(t);case"text":return k(t.role).textHalo?(void 0!==t.pageFill?tm(x(t),t.pageFill):function(t,e,s){let r=s.colors,n=void 0===r?void 0:o("var(--bg)",r);if(void 0===r||void 0===n)return t;let a=e.fontSize>=24?m:M,i=t=>{let e=o(t,r);return void 0!==e&&(y(e,n)??a)<a};return(void 0!==e.paint.fill&&i(e.paint.fill)?tm(t,"var(--_text)"):t).replace(/(<tspan\b[^>]*?\sfill=")([^"]*)(")/g,(t,e,s,r)=>i(s)?`${e}var(--_text)${r}`:t)}(x(t),t,e)).replace(/<text\b[^>]*>/g,t=>t.replace(/\s(?:paint-order|stroke|stroke-width|stroke-linejoin|stroke-linecap)="[^"]*"/g,"").replace(/^<text/,'<text paint-order="stroke" stroke="var(--bg)" stroke-width="3" stroke-linejoin="round" stroke-linecap="round"')):x(t);case"group":return r(t.open,t.close,t.join,t.children.map(t=>({serialized:tx(t.node,e),indent:t.indent})))}}function tv(r,a){return{id:r,capabilities:t(`backend:${r}`,"sketch",a?"hybrid":"rough"),drawNode:(t,e)=>tx(t,{ctx:e,p:tu(e.style),sketcher:a}),render(t,r){let i=e(t),o={ctx:r,p:tu(r.style),sketcher:a,colors:i.colors},l=[];for(let t=0;t<i.parts.length;t++){let e=i.parts[t];if(l.push(s(r,e,tx(e,o))),0===t&&"document"===e.kind&&"open"===e.element){let t=n(i,r);t&&l.push(t);let e=function(t,e){let s=t?.backdrop??"plain";if("paper-ruled"===s){let t=['<g data-backdrop="paper-ruled">'];for(let s=26;s<e.height;s+=26)t.push(` <line x1="0" y1="${s}" x2="${e.width}" y2="${s}" stroke="var(--_line)" stroke-width="0.5" opacity="0.14" />`);return t.push("</g>"),t.join(`
7
7
  `)}if("grid"===s){let t=['<g data-backdrop="grid">'];for(let s=22;s<e.width;s+=22)t.push(` <line x1="${s}" y1="0" x2="${s}" y2="${e.height}" stroke="var(--_line)" stroke-width="0.5" opacity="0.10" />`);for(let s=22;s<e.height;s+=22)t.push(` <line x1="0" y1="${s}" x2="${e.width}" y2="${s}" stroke="var(--_line)" stroke-width="0.5" opacity="0.10" />`);return t.push("</g>"),t.join(`
8
8
  `)}return""}(r.style,i);e&&l.push(e)}}return l.join(`
9
- `)}}}var tb=tv("rough"),{PI:t$}=Math,tP=t$+1e-4,tw=.5,tS=[1,1];function tO(t,e,s,r=t=>t){return t*r(.5-e*(.5-s))}var{min:tL}=Math;function tj(t,e,s){let r=tL(1,e/s);return tL(1,t+(tL(1,1-r)-t)*(.275*r))}function tI(t,e){return[t[0]+e[0],t[1]+e[1]]}function t_(t,e,s){return t[0]=e[0]+s[0],t[1]=e[1]+s[1],t}function tW(t,e){return[t[0]-e[0],t[1]-e[1]]}function tz(t,e,s){return t[0]=e[0]-s[0],t[1]=e[1]-s[1],t}function tA(t,e){return[t[0]*e,t[1]*e]}function tC(t,e,s){return t[0]=e[0]*s,t[1]=e[1]*s,t}function tT(t){return[t[1],-t[0]]}function tG(t,e){let s=e[0];return t[0]=e[1],t[1]=-s,t}function tE(t,e){return t[0]*e[0]+t[1]*e[1]}function tF(t,e){let s=t[0]-e[0],r=t[1]-e[1];return s*s+r*r}function tR(t){var e;return e=Math.hypot(t[0],t[1]),[t[0]/e,t[1]/e]}function tZ(t,e,s){let r=Math.sin(s),n=Math.cos(s),a=t[0]-e[0],i=t[1]-e[1];return[a*n-i*r+e[0],a*r+i*n+e[1]]}function tQ(t,e,s,r){let n=Math.sin(r),a=Math.cos(r),i=e[0]-s[0],o=e[1]-s[1];return t[0]=i*a-o*n+s[0],t[1]=i*n+o*a+s[1],t}function tq(t,e,s){return tI(t,tA(tW(e,t),s))}var tB=[0,0],tV=[0,0],tN=[0,0];function tH(t,e,s){return!1===t||void 0===t?0:!0===t?Math.max(e,s):t}var tU=[0,0];function tD(t){return null!=t&&t>=0}var tJ=t=>Math.round(1e3*t)/1e3,tK=(t,e,s)=>t+(e-t)*s,tX=t=>Math.max(0,Math.min(1,t));function tY(t){switch(t.kind){case"rect":return[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}];case"polygon":return t.points;case"circle":{let e=[];for(let s=0;s<24;s++){let r=s/24*Math.PI*2;e.push({x:t.cx+Math.cos(r)*t.r,y:t.cy+Math.sin(r)*t.r})}return e}case"ellipse":{let e=[];for(let s=0;s<28;s++){let r=s/28*Math.PI*2;e.push({x:t.cx+Math.cos(r)*t.rx,y:t.cy+Math.sin(r)*t.ry})}return e}default:return null}}function t0(t,e,s){if(t.length<2)return"";var r=function(t,e={}){return function(t,e={}){var s,r;let{size:n=16,smoothing:a=.5,thinning:i=.5,simulatePressure:o=!0,easing:l=t=>t,start:h={},end:u={},last:p=!1}=e,{cap:c=!0,easing:f=t=>t*(2-t)}=h,{cap:d=!0,easing:g=t=>--t*t*t+1}=u;if(0===t.length||n<=0)return[];let k=t[t.length-1].runningLength,y=tH(h.taper,n,k),M=tH(u.taper,n,k),m=(n*a)**2,x=[],v=[],b=t.slice(0,10).reduce((t,e)=>{let s=e.pressure;return o&&(s=tj(t,e.distance,n)),(t+s)/2},t[0].pressure),$=tO(n,i,t[t.length-1].pressure,l),P,w=t[0].vector,S=t[0].point,O=S,L=S,j=O,I=!1;for(let e=0;e<t.length;e++){let{pressure:s}=t[e],{point:r,vector:a,distance:h,runningLength:u}=t[e],p=e===t.length-1;if(!p&&k-u<3)continue;i?(o&&(s=tj(b,h,n)),$=tO(n,i,s,l)):$=n/2,void 0===P&&(P=$),$=Math.max(.01,$*Math.min(u<y?f(u/y):1,k-u<M?g((k-u)/M):1));let c=(p?t[e]:t[e+1]).vector,d=p?1:tE(a,c),_=0>tE(a,w)&&!I,W=null!==d&&d<0;if(_||W){tG(tB,w),tC(tB,tB,$);for(let t=0;t<=1;t+=.07692307692307693)tz(tV,r,tB),tQ(tV,tV,r,tP*t),L=[tV[0],tV[1]],x.push(L),t_(tN,r,tB),tQ(tN,tN,r,-(tP*t)),j=[tN[0],tN[1]],v.push(j);S=L,O=j,W&&(I=!0);continue}if(I=!1,p){tG(tB,a),tC(tB,tB,$),x.push(tW(r,tB)),v.push(tI(r,tB));continue}(function(t,e,s,r){let n=s[0]-e[0],a=s[1]-e[1];t[0]=e[0]+n*r,t[1]=e[1]+a*r})(tB,c,a,d),tG(tB,tB),tC(tB,tB,$),tz(tV,r,tB),L=[tV[0],tV[1]],(e<=1||tF(S,L)>m)&&(x.push(L),S=L),t_(tN,r,tB),j=[tN[0],tN[1]],(e<=1||tF(O,j)>m)&&(v.push(j),O=j),b=s,w=a}let _=[t[0].point[0],t[0].point[1]],W=t.length>1?[t[t.length-1].point[0],t[t.length-1].point[1]]:tI(t[0].point,[1,1]),z=[],A=[];if(1===t.length){if(!(y||M)||p)return function(t,e){var s;let r=(s=tR(tT(tW(t,tI(t,[1,1])))),tI(t,tA(s,-e))),n=[],a=1/13;for(let e=a;e<=1;e+=a)n.push(tZ(r,t,2*tP*e));return n}(_,P||$)}else{let e,n,a;y||M&&1===t.length||(c?z.push(...function(t,e,s){let r=[],n=1/13;for(let s=n;s<=1;s+=n)r.push(tZ(e,t,tP*s));return r}(_,v[0],0)):z.push(...(n=tA(e=tW(x[0],v[0]),.5),a=tA(e,.51),[tW(_,n),tW(_,a),tI(_,a),tI(_,n)])));let i=tT([-(s=t[t.length-1].vector)[0],-s[1]]);M||y&&1===t.length?A.push(W):d?A.push(...function(t,e,s,r){let n=[],a=tI(t,tA(e,s)),i=1/29;for(let e=i;e<1;e+=i)n.push(tZ(a,t,3*tP*e));return n}(W,i,$,0)):A.push(tI(W,tA(i,r=$)),tI(W,tA(i,.99*r)),tW(W,tA(i,.99*r)),tW(W,tA(i,r)))}return x.concat(A,v.reverse(),z)}(function(t,e={}){let{streamline:s=.5,size:r=16,last:n=!1}=e;if(0===t.length)return[];let a=.15+(1-s)*.85,i=Array.isArray(t[0])?t:t.map(({x:t,y:e,pressure:s=tw})=>[t,e,s]);if(2===i.length){let t=i[1];i=i.slice(0,-1);for(let e=1;e<5;e++)i.push(tq(i[0],t,e/4))}1===i.length&&(i=[...i,[...tI(i[0],tS),...i[0].slice(2)]]);let o=[{point:[i[0][0],i[0][1]],pressure:tD(i[0][2])?i[0][2]:.25,vector:[...tS],distance:0,runningLength:0}],l=!1,h=0,u=o[0],p=i.length-1;for(let t=1;t<i.length;t++){var c,f;let e=n&&t===p?[i[t][0],i[t][1]]:tq(u.point,i[t],a);if((c=u.point)[0]===e[0]&&c[1]===e[1])continue;let s=(f=u.point,Math.hypot(e[1]-f[1],e[0]-f[0]));if(h+=s,t<p&&!l){if(h<r)continue;l=!0}tz(tU,u.point,e),u={point:e,pressure:tD(i[t][2])?i[t][2]:tw,vector:tR(tU),distance:s,runningLength:h},o.push(u)}return o[0].vector=o[1]?.vector||[0,0],o}(t,e),e)}(function(t,e,s,r){let n=s?[...t,t[0]]:t,a=[];for(let t=0;t<n.length-1;t++){let r=n[t],i=n[t+1],o=Math.hypot(i.x-r.x,i.y-r.y)||1,l=Math.max(1,Math.ceil(o/14)),h=-(i.y-r.y)/o,u=(i.x-r.x)/o;for(let o=0;o<l;o++){if(t>0&&0===o)continue;let p=o/l,c=s||(0!==t||0!==o)&&(t!==n.length-2||o!==l)?(e()-.5)*2:0,f={x:tK(r.x,i.x,p)+h*c,y:tK(r.y,i.y,p)+u*c},d=tX(.52+.12*Math.sin((t+p)/Math.max(1,n.length-1)*Math.PI*2)+(e()-.5)*.16);a.push([f.x,f.y,d])}}let i=n[n.length-1];return a.push([i.x,i.y,s?a[0]?.[2]??.55:.46]),a}(t,e,s.closed,0),{size:s.width,thinning:.58,smoothing:.62,streamline:.35,simulatePressure:!1,start:{cap:!0,taper:10*!s.closed},end:{cap:!0,taper:14*!s.closed},last:!0});if(r.length<2)return"";let n=[`M${tJ(r[0][0])},${tJ(r[0][1])}`];for(let t=1;t<r.length;t++){let[e,s]=r[t],[a,i]=r[(t+1)%r.length];n.push(`Q${tJ(e)},${tJ(s)} ${tJ((e+a)/2)},${tJ((s+i)/2)}`)}return n.push("Z"),n.join(" ")}var t1=Object.freeze([a,tb,tv("hybrid",(t,e)=>{var s,r,n,a,i,o,l,u;let c=e.style?.stroke??"jittered",f=(e.style?.fill??"none")==="wash"&&void 0!==e.fill,d="freehand"===c,g=e.opacity?.fill===void 0?void 0:Number(e.opacity.fill),k=e.opacity?.stroke===void 0?void 0:Number(e.opacity.stroke);if(!f&&!d)return null;let y=[];if(f){let a,i=p((0x9e3779b9^e.seed)>>>0),o="path"===t.kind?null:tY(t);o?y.push((s=e.fill,r=g??e.style?.washOpacity??.3,n=e.style?.washEdge??.34,a=o.map(t=>({x:t.x+(i()-.5)*3,y:t.y+(i()-.5)*3})).map((t,e)=>`${e?"L":"M"}${tJ(t.x)},${tJ(t.y)}`).join(" ")+" Z",`<path d="${a}" fill="${s}" fill-opacity="${r}" stroke="none" />
10
- <path d="${a}" fill="none" stroke="${s}" stroke-width="1.4" stroke-opacity="${n}" />`)):"path"===t.kind&&y.push(`<path d="${t.d}" fill="${e.fill}" fill-opacity="${g??e.style?.washOpacity??.3}" stroke="${e.fill}" stroke-width="1.4" stroke-opacity="${e.style?.washEdge??.34}" />`)}if(d&&!e.dash){let s=p(e.seed||1),r=Math.max(2.5,2.2*e.width),n="";if("polyline"===t.kind)n=t0(t.points,s,{width:r,closed:!1});else if("line"===t.kind)n=t0([{x:t.x1,y:t.y1},{x:t.x2,y:t.y2}],s,{width:r,closed:!1});else{let e=tY(t);e&&(n=t0(e,s,{width:r,closed:!0}))}if(n){let t=e.strokeProjection?[...void 0!==e.strokeProjection.opacity?[`opacity="${h(String(e.strokeProjection.opacity))}"`]:[],...void 0!==e.strokeProjection.paintOrder?[`paint-order="${h(e.strokeProjection.paintOrder)}"`]:[],...void 0!==e.strokeProjection.mixBlendMode?[`style="mix-blend-mode:${e.strokeProjection.mixBlendMode}"`]:[]].join(" "):"",s=void 0===k?"":` fill-opacity="${h(String(k))}"`;return y.push(`<path d="${n}" fill="${e.stroke}" stroke="none"${s}${t?` ${t}`:""} />`),y.join(`
11
- `)}}let M=(a=e.seed,i=e.stroke,o=e.width,l=f?void 0:e.fill,u=e.p,tc(t,a,i,o,l,u,e.dash,e.strokeProjection,e.opacity));return M&&y.push(M),y.length>0?y.join(`
9
+ `)}}}var tb=tv("rough"),{PI:t$}=Math,tP=t$+1e-4,tw=.5,tS=[1,1];function tO(t,e,s,r=t=>t){return t*r(.5-e*(.5-s))}var{min:tL}=Math;function tj(t,e,s){let r=tL(1,e/s);return tL(1,t+(tL(1,1-r)-t)*(.275*r))}function tI(t,e){return[t[0]+e[0],t[1]+e[1]]}function t_(t,e,s){return t[0]=e[0]+s[0],t[1]=e[1]+s[1],t}function tW(t,e){return[t[0]-e[0],t[1]-e[1]]}function tz(t,e,s){return t[0]=e[0]-s[0],t[1]=e[1]-s[1],t}function tC(t,e){return[t[0]*e,t[1]*e]}function tA(t,e,s){return t[0]=e[0]*s,t[1]=e[1]*s,t}function tT(t){return[t[1],-t[0]]}function tG(t,e){let s=e[0];return t[0]=e[1],t[1]=-s,t}function tE(t,e){return t[0]*e[0]+t[1]*e[1]}function tR(t,e){let s=t[0]-e[0],r=t[1]-e[1];return s*s+r*r}function tB(t){var e;return e=Math.hypot(t[0],t[1]),[t[0]/e,t[1]/e]}function tZ(t,e,s){let r=Math.sin(s),n=Math.cos(s),a=t[0]-e[0],i=t[1]-e[1];return[a*n-i*r+e[0],a*r+i*n+e[1]]}function tF(t,e,s,r){let n=Math.sin(r),a=Math.cos(r),i=e[0]-s[0],o=e[1]-s[1];return t[0]=i*a-o*n+s[0],t[1]=i*n+o*a+s[1],t}function tQ(t,e,s){return tI(t,tC(tW(e,t),s))}var tq=[0,0],tN=[0,0],tV=[0,0];function tH(t,e,s){return!1===t||void 0===t?0:!0===t?Math.max(e,s):t}var tX=[0,0];function tD(t){return null!=t&&t>=0}var tJ=t=>Math.round(1e3*t)/1e3,tK=(t,e,s)=>t+(e-t)*s,tU=t=>Math.max(0,Math.min(1,t));function tY(t){switch(t.kind){case"rect":return[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}];case"polygon":return t.points;case"circle":{let e=[];for(let s=0;s<24;s++){let r=s/24*Math.PI*2;e.push({x:t.cx+Math.cos(r)*t.r,y:t.cy+Math.sin(r)*t.r})}return e}case"ellipse":{let e=[];for(let s=0;s<28;s++){let r=s/28*Math.PI*2;e.push({x:t.cx+Math.cos(r)*t.rx,y:t.cy+Math.sin(r)*t.ry})}return e}default:return null}}function t0(t,e,s){if(t.length<2)return"";var r=function(t,e={}){return function(t,e={}){var s,r;let{size:n=16,smoothing:a=.5,thinning:i=.5,simulatePressure:o=!0,easing:l=t=>t,start:h={},end:u={},last:p=!1}=e,{cap:c=!0,easing:f=t=>t*(2-t)}=h,{cap:d=!0,easing:g=t=>--t*t*t+1}=u;if(0===t.length||n<=0)return[];let k=t[t.length-1].runningLength,y=tH(h.taper,n,k),M=tH(u.taper,n,k),m=(n*a)**2,x=[],v=[],b=t.slice(0,10).reduce((t,e)=>{let s=e.pressure;return o&&(s=tj(t,e.distance,n)),(t+s)/2},t[0].pressure),$=tO(n,i,t[t.length-1].pressure,l),P,w=t[0].vector,S=t[0].point,O=S,L=S,j=O,I=!1;for(let e=0;e<t.length;e++){let{pressure:s}=t[e],{point:r,vector:a,distance:h,runningLength:u}=t[e],p=e===t.length-1;if(!p&&k-u<3)continue;i?(o&&(s=tj(b,h,n)),$=tO(n,i,s,l)):$=n/2,void 0===P&&(P=$),$=Math.max(.01,$*Math.min(u<y?f(u/y):1,k-u<M?g((k-u)/M):1));let c=(p?t[e]:t[e+1]).vector,d=p?1:tE(a,c),_=0>tE(a,w)&&!I,W=null!==d&&d<0;if(_||W){tG(tq,w),tA(tq,tq,$);for(let t=0;t<=1;t+=.07692307692307693)tz(tN,r,tq),tF(tN,tN,r,tP*t),L=[tN[0],tN[1]],x.push(L),t_(tV,r,tq),tF(tV,tV,r,-(tP*t)),j=[tV[0],tV[1]],v.push(j);S=L,O=j,W&&(I=!0);continue}if(I=!1,p){tG(tq,a),tA(tq,tq,$),x.push(tW(r,tq)),v.push(tI(r,tq));continue}(function(t,e,s,r){let n=s[0]-e[0],a=s[1]-e[1];t[0]=e[0]+n*r,t[1]=e[1]+a*r})(tq,c,a,d),tG(tq,tq),tA(tq,tq,$),tz(tN,r,tq),L=[tN[0],tN[1]],(e<=1||tR(S,L)>m)&&(x.push(L),S=L),t_(tV,r,tq),j=[tV[0],tV[1]],(e<=1||tR(O,j)>m)&&(v.push(j),O=j),b=s,w=a}let _=[t[0].point[0],t[0].point[1]],W=t.length>1?[t[t.length-1].point[0],t[t.length-1].point[1]]:tI(t[0].point,[1,1]),z=[],C=[];if(1===t.length){if(!(y||M)||p)return function(t,e){var s;let r=(s=tB(tT(tW(t,tI(t,[1,1])))),tI(t,tC(s,-e))),n=[],a=1/13;for(let e=a;e<=1;e+=a)n.push(tZ(r,t,2*tP*e));return n}(_,P||$)}else{let e,n,a;y||M&&1===t.length||(c?z.push(...function(t,e,s){let r=[],n=1/13;for(let s=n;s<=1;s+=n)r.push(tZ(e,t,tP*s));return r}(_,v[0],0)):z.push(...(n=tC(e=tW(x[0],v[0]),.5),a=tC(e,.51),[tW(_,n),tW(_,a),tI(_,a),tI(_,n)])));let i=tT([-(s=t[t.length-1].vector)[0],-s[1]]);M||y&&1===t.length?C.push(W):d?C.push(...function(t,e,s,r){let n=[],a=tI(t,tC(e,s)),i=1/29;for(let e=i;e<1;e+=i)n.push(tZ(a,t,3*tP*e));return n}(W,i,$,0)):C.push(tI(W,tC(i,r=$)),tI(W,tC(i,.99*r)),tW(W,tC(i,.99*r)),tW(W,tC(i,r)))}return x.concat(C,v.reverse(),z)}(function(t,e={}){let{streamline:s=.5,size:r=16,last:n=!1}=e;if(0===t.length)return[];let a=.15+(1-s)*.85,i=Array.isArray(t[0])?t:t.map(({x:t,y:e,pressure:s=tw})=>[t,e,s]);if(2===i.length){let t=i[1];i=i.slice(0,-1);for(let e=1;e<5;e++)i.push(tQ(i[0],t,e/4))}1===i.length&&(i=[...i,[...tI(i[0],tS),...i[0].slice(2)]]);let o=[{point:[i[0][0],i[0][1]],pressure:tD(i[0][2])?i[0][2]:.25,vector:[...tS],distance:0,runningLength:0}],l=!1,h=0,u=o[0],p=i.length-1;for(let t=1;t<i.length;t++){var c,f;let e=n&&t===p?[i[t][0],i[t][1]]:tQ(u.point,i[t],a);if((c=u.point)[0]===e[0]&&c[1]===e[1])continue;let s=(f=u.point,Math.hypot(e[1]-f[1],e[0]-f[0]));if(h+=s,t<p&&!l){if(h<r)continue;l=!0}tz(tX,u.point,e),u={point:e,pressure:tD(i[t][2])?i[t][2]:tw,vector:tB(tX),distance:s,runningLength:h},o.push(u)}return o[0].vector=o[1]?.vector||[0,0],o}(t,e),e)}(function(t,e,s,r){let n=s?[...t,t[0]]:t,a=[];for(let t=0;t<n.length-1;t++){let r=n[t],i=n[t+1],o=Math.hypot(i.x-r.x,i.y-r.y)||1,l=Math.max(1,Math.ceil(o/14)),h=-(i.y-r.y)/o,u=(i.x-r.x)/o;for(let o=0;o<l;o++){if(t>0&&0===o)continue;let p=o/l,c=s||(0!==t||0!==o)&&(t!==n.length-2||o!==l)?(e()-.5)*2:0,f={x:tK(r.x,i.x,p)+h*c,y:tK(r.y,i.y,p)+u*c},d=tU(.52+.12*Math.sin((t+p)/Math.max(1,n.length-1)*Math.PI*2)+(e()-.5)*.16);a.push([f.x,f.y,d])}}let i=n[n.length-1];return a.push([i.x,i.y,s?a[0]?.[2]??.55:.46]),a}(t,e,s.closed,0),{size:s.width,thinning:.58,smoothing:.62,streamline:.35,simulatePressure:!1,start:{cap:!0,taper:10*!s.closed},end:{cap:!0,taper:14*!s.closed},last:!0});if(r.length<2)return"";let n=[`M${tJ(r[0][0])},${tJ(r[0][1])}`];for(let t=1;t<r.length;t++){let[e,s]=r[t],[a,i]=r[(t+1)%r.length];n.push(`Q${tJ(e)},${tJ(s)} ${tJ((e+a)/2)},${tJ((s+i)/2)}`)}return n.push("Z"),n.join(" ")}var t1=Object.freeze([a,tb,tv("hybrid",(t,e)=>{var s,r,n,a,i;let o=e.style?.stroke??"jittered",l=(e.style?.fill??"none")==="wash"&&void 0!==e.fill,u="freehand"===o,p=e.opacity?.fill===void 0?void 0:Number(e.opacity.fill),f=e.opacity?.stroke===void 0?void 0:Number(e.opacity.stroke);if(!l&&!u)return null;let d=[];if(l){let a,i=c((0x9e3779b9^e.seed)>>>0),o="path"===t.kind?null:tY(t);o?d.push((s=e.fill,r=p??e.style?.washOpacity??.3,n=e.style?.washEdge??.34,a=o.map(t=>({x:t.x+(i()-.5)*3,y:t.y+(i()-.5)*3})).map((t,e)=>`${e?"L":"M"}${tJ(t.x)},${tJ(t.y)}`).join(" ")+" Z",`<path d="${a}" fill="${s}" fill-opacity="${r}" stroke="none" />
10
+ <path d="${a}" fill="none" stroke="${s}" stroke-width="1.4" stroke-opacity="${n}" />`)):"path"===t.kind&&d.push(`<path d="${t.d}" fill="${e.fill}" fill-opacity="${p??e.style?.washOpacity??.3}" stroke="${e.fill}" stroke-width="1.4" stroke-opacity="${e.style?.washEdge??.34}" />`)}if(u&&!e.dash){let s=c(e.seed||1),r=Math.max(2.5,2.2*e.width),n="";if("polyline"===t.kind)n=t0(t.points,s,{width:r,closed:!1});else if("line"===t.kind)n=t0([{x:t.x1,y:t.y1},{x:t.x2,y:t.y2}],s,{width:r,closed:!1});else{let e=tY(t);e&&(n=t0(e,s,{width:r,closed:!0}))}if(n){let t=e.strokeProjection?[...void 0!==e.strokeProjection.opacity?[`opacity="${h(String(e.strokeProjection.opacity))}"`]:[],...void 0!==e.strokeProjection.paintOrder?[`paint-order="${h(e.strokeProjection.paintOrder)}"`]:[],...void 0!==e.strokeProjection.mixBlendMode?[`style="mix-blend-mode:${e.strokeProjection.mixBlendMode}"`]:[]].join(" "):"",s=void 0===f?"":` fill-opacity="${h(String(f))}"`;return d.push(`<path d="${n}" fill="${e.stroke}" stroke="none"${s}${t?` ${t}`:""} />`),d.join(`
11
+ `)}}let g=(a=e.seed,i=e.stroke,tc(t,a,i,e.width,l?void 0:e.fill,e.p,e.dash,e.strokeProjection,e.opacity));return g&&d.push(g),d.length>0?d.join(`
12
12
  `):null})]);for(let t of t1)t!==a&&i(t);export{t1 as BUILTIN_BACKENDS};
@@ -0,0 +1,10 @@
1
+ import{a as e}from"./chunk-EBJK4IHL.js";import"./chunk-OF4QKIRV.js";import"./chunk-MFTQWHUB.js";import{D as t,E as i,N as n,Q as a,R as r,S as o,W as l,X as s,Y as d,Z as c,aa as h,g as g,xa as p}from"./chunk-AVGL6Y22.js";import"./chunk-HJVO5VC3.js";import"./chunk-L4UC3KGS.js";import"./chunk-BMZ24VPS.js";import"./chunk-TZMTDADJ.js";import"./chunk-UKIYI4IO.js";import{d as m}from"./chunk-PRBLS664.js";import{a as u,e as f,l as y}from"./chunk-6RXXXV66.js";import{d as x}from"./chunk-FCXWXIUB.js";import{s as b,u as _}from"./chunk-WSZXZ4HF.js";import{d as w}from"./chunk-BCPZYXNZ.js";import{a as v,b as k}from"./chunk-OLZVJBI5.js";import{C as F,D as S,a as $,b as M,c as C,d as W,e as L,g as R,h as I,i as z,j as B,o as E}from"./chunk-UJLLOK3R.js";import{M as q,U as T,ba as P,c as O,ca as X,j as j,na as A,oa as N,r as D,x as U}from"./chunk-PRXEMB2V.js";import{c as Y}from"./chunk-37ORXEBA.js";import{d as Z,h as H,i as J,j as Q,k as V,n as G}from"./chunk-Q6FTXOZS.js";import{Bb as K,G as ee,K as et,N as ei,Sb as en,_ as ea,a as er,o as eo,tb as el}from"./chunk-XBLK7VXJ.js";import{J as es,K as ed}from"./chunk-PJJSDGLB.js";import{a as ec}from"./chunk-YHMTSXIR.js";import"./chunk-QCU5G5PZ.js";var eh=Object.freeze({id:"c4",upstreamId:"c4",maturity:"experimental",label:"C4",headers:["C4Context","C4Container","C4Component","C4Dynamic","C4Deployment"],aliases:[],config:{section:"c4",keys:["diagramMarginX","diagramMarginY","c4ShapeMargin","c4ShapePadding","width","height","boxMargin","nextLinePaddingX","c4ShapeInRow","c4BoundaryInRow","wrap","wrapPadding","maxWidth","compact","typeLegend","personFontSize","personFontWeight","person_bg_color","person_border_color","external_personFontSize","external_personFontWeight","external_person_bg_color","external_person_border_color","systemFontSize","systemFontWeight","system_bg_color","system_border_color","system_dbFontSize","system_dbFontWeight","system_db_bg_color","system_db_border_color","system_queueFontSize","system_queueFontWeight","system_queue_bg_color","system_queue_border_color","external_systemFontSize","external_systemFontWeight","external_system_bg_color","external_system_border_color","external_system_dbFontSize","external_system_dbFontWeight","external_system_db_bg_color","external_system_db_border_color","external_system_queueFontSize","external_system_queueFontWeight","external_system_queue_bg_color","external_system_queue_border_color","containerFontSize","containerFontWeight","container_bg_color","container_border_color","container_dbFontSize","container_dbFontWeight","container_db_bg_color","container_db_border_color","container_queueFontSize","container_queueFontWeight","container_queue_bg_color","container_queue_border_color","external_containerFontSize","external_containerFontWeight","external_container_bg_color","external_container_border_color","external_container_dbFontSize","external_container_dbFontWeight","external_container_db_bg_color","external_container_db_border_color","external_container_queueFontSize","external_container_queueFontWeight","external_container_queue_bg_color","external_container_queue_border_color","componentFontSize","componentFontWeight","component_bg_color","component_border_color","component_dbFontSize","component_dbFontWeight","component_db_bg_color","component_db_border_color","component_queueFontSize","component_queueFontWeight","component_queue_bg_color","component_queue_border_color","external_componentFontSize","external_componentFontWeight","external_component_bg_color","external_component_border_color","external_component_dbFontSize","external_component_dbFontWeight","external_component_db_bg_color","external_component_db_border_color","external_component_queueFontSize","external_component_queueFontWeight","external_component_queue_bg_color","external_component_queue_border_color","boundaryFontSize","boundaryFontWeight","boundary_bg_color","boundary_border_color","nodeFontSize","nodeFontWeight","node_bg_color","node_border_color","useMaxWidth","personFont","personFontFamily","external_personFont","external_personFontFamily","systemFont","systemFontFamily","system_dbFont","system_dbFontFamily","system_queueFont","system_queueFontFamily","external_systemFont","external_systemFontFamily","external_system_dbFont","external_system_dbFontFamily","external_system_queueFont","external_system_queueFontFamily","containerFont","containerFontFamily","container_dbFont","container_dbFontFamily","container_queueFont","container_queueFontFamily","external_containerFont","external_containerFontFamily","external_container_dbFont","external_container_dbFontFamily","external_container_queueFont","external_container_queueFontFamily","componentFont","componentFontFamily","component_dbFont","component_dbFontFamily","component_queueFont","component_queueFontFamily","external_componentFont","external_componentFontFamily","external_component_dbFont","external_component_dbFontFamily","external_component_queueFont","external_component_queueFontFamily","boundaryFont","boundaryFontFamily","nodeFont","nodeFontFamily","messageFont","messageFontFamily","messageFontSize","messageFontWeight"],noopKeys:["useMaxWidth","personFont","personFontFamily","external_personFont","external_personFontFamily","systemFont","systemFontFamily","system_dbFont","system_dbFontFamily","system_queueFont","system_queueFontFamily","external_systemFont","external_systemFontFamily","external_system_dbFont","external_system_dbFontFamily","external_system_queueFont","external_system_queueFontFamily","containerFont","containerFontFamily","container_dbFont","container_dbFontFamily","container_queueFont","container_queueFontFamily","external_containerFont","external_containerFontFamily","external_container_dbFont","external_container_dbFontFamily","external_container_queueFont","external_container_queueFontFamily","componentFont","componentFontFamily","component_dbFont","component_dbFontFamily","component_queueFont","component_queueFontFamily","external_componentFont","external_componentFontFamily","external_component_dbFont","external_component_dbFontFamily","external_component_queueFont","external_component_queueFontFamily","boundaryFont","boundaryFontFamily","nodeFont","nodeFontFamily","messageFont","messageFontFamily","messageFontSize","messageFontWeight"]},identity:{id:"family:c4",kind:"family",version:"1.0.0",compatibility:{core:"0.5.5"},provenance:{owner:"agentic-mermaid",source:"built-in"}},collisionPriority:100,semanticChannels:["category","status"],semanticRoles:["prelude","title","defs","chrome","group","group-header","edge","edge-label","node","label","legend"],scenePrimitiveEvidence:[{role:"prelude",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"title",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"defs",primitive:"marker",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"document",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"chrome",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group-header",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"group-header",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"edge",primitive:"connector",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"edge-label",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"node",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"node",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"label",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"legend",primitive:"text",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"legend",primitive:"shape",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]},{role:"legend",primitive:"container",applicability:"applicable",realization:"native",evidence:["src/__tests__/section-a-family-descriptor-conformance.test.ts"]}],example:`C4Context
2
+ Person(user, "Customer")
3
+ System(api, "API", "Serves requests")
4
+ Rel(user, api, "Uses", "HTTPS")`,detect:es,detectLoose:ed}),eg=new Map([["person","person"],["box","rectangle"],["rectangle","rectangle"],["cylinder","database"],["database","database"],["db","database"],["queue","queue"],["pipe","queue"]]);function ep(e){return void 0===e?void 0:eg.get(e.trim().toLowerCase())}function em(e){return ep(e.style.shape)??e.shape}var eu=(e,t,i=0)=>{if(void 0===e)return t;if("number"!=typeof e||!Number.isFinite(e)||e<i||e>1e4)throw RangeError(`Invalid C4 numeric configuration ${JSON.stringify(e)}; expected a finite number from ${i} to 10000`);return e},ef=(e,t)=>{let i=eu(e,t,1);if(!Number.isSafeInteger(i))throw RangeError(`Invalid C4 row count ${JSON.stringify(e)}; expected a positive integer`);return i};function ey(e={},t={}){let i=!0===(e=Object.fromEntries(Object.entries(e).filter(([e,t])=>ev[e]?.valid(t)??!0))).compact;return{compact:i,typeLegend:!1!==e.typeLegend,...void 0===e.maxWidth?{}:{maxWidth:eu(e.maxWidth,1e4,1)},marginX:eu(e.diagramMarginX,i?16:24),marginY:eu(e.diagramMarginY,i?16:24),gap:eu(e.c4ShapeMargin,i?32:56),padding:eu(e.c4ShapePadding,i?10:16,4),minimumWidth:eu(e.width,i?120:150,24),minimumHeight:eu(e.height,i?60:76,24),boundaryPadding:eu(e.boxMargin,i?16:24,12),rowGap:eu(e.nextLinePaddingX,i?36:56),shapesPerRow:ef(e.c4ShapeInRow,3),boundariesPerRow:ef(e.c4BoundaryInRow,2),...!1===e.wrap?{}:{wrapWidth:eu(e.wrapPadding,i?220:260,40)},input:e,themeVariables:t}}function ex(e,t){let i="external"in e?`${e.external?"external_":""}${e.kind}${"database"===e.shape?"_db":"queue"===e.shape?"_queue":""}`:"deployment"===e.kind?"node":"boundary",{input:n,themeVariables:a}=t,r=(t,i)=>{if(void 0===t)return;let n=Y(t,"color"!==i);if(void 0===n)throw new P(`C4 ${e.id}`,i,String(t),`UpdateElementStyle(${e.id})`);return n},o=n[`${i}FontSize`],l=n[`${i}FontWeight`];return{fill:r(e.style.bgColor??n[`${i}_bg_color`]??a[`${i}_bg_color`],"fill"),stroke:r(e.style.borderColor??n[`${i}_border_color`]??a[`${i}_border_color`],"stroke"),text:r(e.style.fontColor??e.style.textColor,"color"),...void 0===o?{}:{fontSize:eu(o,13,1)},...void 0===l?{}:{fontWeight:eu("string"==typeof l&&/^\d+$/.test(l)?Number(l):l,500,1)},dashed:void 0===e.style.lineStyle?"external"in e&&e.external:"dashed"===e.style.lineStyle||"dotted"===e.style.lineStyle}}var eb=["person","external_person",...["system","container","component"].flatMap(e=>["","external_"].flatMap(t=>["","_db","_queue"].map(i=>`${t}${e}${i}`))),"boundary","node"],e_=Object.freeze(["diagramMarginX","diagramMarginY","c4ShapeMargin","c4ShapePadding","width","height","boxMargin","nextLinePaddingX","c4ShapeInRow","c4BoundaryInRow","wrap","wrapPadding","maxWidth","compact","typeLegend",...eb.flatMap(e=>[`${e}FontSize`,`${e}FontWeight`,`${e}_bg_color`,`${e}_border_color`])]),ew=(Object.freeze(["useMaxWidth",...[...eb,"message"].flatMap(e=>[`${e}Font`,`${e}FontFamily`]),"messageFontSize","messageFontWeight"]),Object.freeze({maxWidth:1,diagramMarginX:0,diagramMarginY:0,c4ShapeMargin:0,c4ShapePadding:4,width:24,height:24,boxMargin:12,nextLinePaddingX:0,c4ShapeInRow:1,c4BoundaryInRow:1,wrapPadding:40})),ev=(()=>{let e=Object.assign(Object.create(null),{wrap:f,compact:f,typeLegend:f});for(let[t,i]of Object.entries(ew)){let n=y(i,1e4);e[t]="c4ShapeInRow"===t||"c4BoundaryInRow"===t?u("an integer from 1 through 10000",e=>Number.isSafeInteger(e)&&n.valid(e)):n}for(let t of e_)if(/FontSize$/.test(t)&&(e[t]=y(1,1e4)),/FontWeight$/.test(t)){let i=y(1,1e3);e[t]=u(i.expected,e=>i.valid("string"==typeof e&&/^\d+$/.test(e)?Number(e):e))}return Object.freeze(e)})();function ek(e){let t=new Map([...e.elements,...e.boundaries].map(e=>[e.id,e.id])),i=new Map(e.relationships.map(e=>[e.id,e.id]));return{nodes:t,relationships:i,generated:en([...t.keys(),...i.keys(),...e.legend?.entries.map(e=>e.id)??[]])}}function eF(e){let t=`${e.external?"External ":""}${e.kind[0].toUpperCase()}${e.kind.slice(1)}${"database"===e.shape?": Database":"queue"===e.shape?": Queue":""}`,i=e.style.techn??e.technology;return[e.label,`[${t}${i?`: ${i}`:""}]`,e.description,e.tags.length?`[tags: ${e.tags.join(", ")}]`:void 0,e.sprite?`[sprite: ${e.sprite}]`:void 0].filter(e=>void 0!==e&&""!==e).join(`
5
+ `)}function eS(e){let t="deployment"===e.kind?"Deployment Node":`${"boundary"===e.kind?"":`${e.kind[0].toUpperCase()}${e.kind.slice(1)} `}Boundary`;return[e.label,`[${t}${e.type?`: ${e.type}`:""}]`,e.description,e.tags.length?`[tags: ${e.tags.join(", ")}]`:void 0,e.sprite?`[sprite: ${e.sprite}]`:void 0].filter(e=>void 0!==e&&""!==e).join(`
6
+ `)}function e$(e,t){let i=t.index??("C4Dynamic"===e.variant?String(t.order):void 0);return[`${void 0!==i?`${i}: `:""}${t.label}`,t.technology?`[${t.technology}]`:void 0,t.description,t.tags.length?`[tags: ${t.tags.join(", ")}]`:void 0,t.sprite?`[sprite: ${t.sprite}]`:void 0].filter(e=>void 0!==e&&""!==e).join(`
7
+ `)}function eM(e,t){return e.statements.find(e=>e.id===t)?.span.line}function eC(e,t){let i=ek(e),n=new Map;for(let a of e.elements){let e=`${a.external?"external-":""}${a.kind}:${a.shape}`,r=`${a.external?"External ":""}${a.kind[0].toUpperCase()}${a.kind.slice(1)}${"database"===a.shape?" / Database":"queue"===a.shape?" / Queue":""}`;if(!n.has(e)){let o=t?ex(a,t):void 0;n.set(e,{id:i.generated(`c4:legend:${e}`,["c4","legend",e]),label:r,kind:"element",shape:em(a),external:a.external,style:{...a.style,...o?.fill?{bgColor:o.fill}:{},...o?.stroke?{borderColor:o.stroke}:{}}})}}return[...t?.typeLegend!==!1&&n.size>1||e.legend?.visible?[...n.values()]:[],...e.legend?.visible?e.legend.entries:[]]}var eW=class extends RangeError{code="C4_ROUTE_WORK_LIMIT";constructor(){super("C4_ROUTE_WORK_LIMIT: physical corridor checks exceed 400000; split the diagram or reduce its relationships"),this.name="C4RouteWorkLimitError"}},eL={T:{x:0,y:-1},R:{x:1,y:0},B:{x:0,y:1},L:{x:-1,y:0}},eR=(e,t)=>e.x<=t.x&&e.y<=t.y&&e.x+e.width>=t.x+t.width&&e.y+e.height>=t.y+t.height,eI=e=>({x:e.x+e.width/2,y:e.y+e.height/2});function ez(e,t,i){if("T"===t||"B"===t){let n=e.cylinder?8*(1-Math.sqrt(Math.max(0,1-(2*i-1)**2))):0;return{x:e.x+e.width*i,y:e.y+("B"===t?e.height-n:n)}}let n=e.container?e.headerHeight??0:8*!!e.cylinder;return{x:e.x+("R"===t?e.width:0),y:e.y+n+(e.height-n-8*!!e.cylinder)*i}}function eB(e,t,i,n){return ez(e,t,(i+1)/(n+1))}var eE={T:"B",R:"L",B:"T",L:"R"};function eq(e){if(!e.label||!e.labelPosition||!e.labelBlock)return;let t=e.labelBlock.width+20,i=e.labelBlock.height+16;return{x:e.labelPosition.x-t/2,y:e.labelPosition.y-i/2,width:t,height:i}}var eT=(e,t)=>Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),eP=(e,t)=>({x:e.x-t,y:e.y-t,width:e.width+2*t,height:e.height+2*t}),eO=e=>e.flatMap(e=>[e,...eO(e.children)]);function eX(e,t,i){let n=0,a=1;for(let r of["x","y"]){let o=t[r]-e[r],l=i[r]+.01,s=i[r]+("x"===r?i.width:i.height)-.01;if(.001>Math.abs(o)){if(e[r]<=l||e[r]>=s)return!1;continue}let d=(l-e[r])/o,c=(s-e[r])/o;if((n=Math.max(n,Math.min(d,c)))>=(a=Math.min(a,Math.max(d,c))))return!1}return n<a}function ej(e,t){let i=[],n=e.inlineStyle?.["stroke-width"]?1:t*("thick"===e.style?2:1),a=Z.width*n,r=(e.inlineStyle?.["stroke-width"]?Z.width:Z.height)*n/2,o=.375*n;for(let t of[!0,!1]){if(!(t?e.hasArrowStart:e.hasArrowEnd))continue;let n=e.points.at(t?0:-1),l=(t?e.points.slice(1):e.points.slice(0,-1).reverse()).find(e=>n&&Math.hypot(e.x-n.x,e.y-n.y)>.01);if(!n||!l)continue;let s=Math.hypot(n.x-l.x,n.y-l.y),d=(n.x-l.x)/s,c=(n.y-l.y)/s,h=[n,{x:n.x-d*a-c*r,y:n.y-c*a+d*r},{x:n.x-d*a+c*r,y:n.y-c*a-d*r}],g=Math.min(...h.map(e=>e.x)),p=Math.min(...h.map(e=>e.y));i.push({...eP({x:g,y:p,width:Math.max(...h.map(e=>e.x))-g,height:Math.max(...h.map(e=>e.y))-p},o),endpoint:t?e.source:e.target,polygon:h,strokePadding:o})}return i}function eA(e,t){return[...e,...eO(t).flatMap(e=>[{x:e.x,y:e.y,width:e.width,height:e.headerHeight??0},{x:e.x,y:e.y,width:1,height:e.height},{x:e.x+e.width-1,y:e.y,width:1,height:e.height},{x:e.x,y:e.y+e.height-1,width:e.width,height:1}])]}var eN=["C4Context","C4Container","C4Component","C4Dynamic","C4Deployment"],eD=class extends D{},eU=/^(Person|System|Container|Component)(Db|Queue)?(_Ext)?$/,eY={Boundary:"boundary",Enterprise_Boundary:"enterprise",System_Boundary:"system",Container_Boundary:"container",Deployment_Node:"deployment",Node:"deployment",Node_L:"deployment",Node_R:"deployment"},eZ=new Set(["Rel","BiRel","Rel_U","Rel_Up","Rel_D","Rel_Down","Rel_L","Rel_Left","Rel_R","Rel_Right","Rel_Back","RelIndex"]),eH={U:"BT",Up:"BT",D:"TB",Down:"TB",L:"RL",Left:"RL",R:"LR",Right:"LR"},eJ=["elementName","bgColor","fontColor","borderColor","shadowing","shape","sprite","techn","legendText","legendSprite"],eQ=["from","to","textColor","lineColor","offsetX","offsetY"],eV=["tagStereo","bgColor","fontColor","borderColor","shadowing","shape","sprite","techn","legendText","legendSprite"],eG=["tagStereo","textColor","lineColor","lineStyle","sprite","techn","legendText","legendSprite"];function eK(e,t){if(!L("c4"))return;let{start:i,end:n,line:a,column:r}=e.span;R("c4",t,e.raw,{line:a,column:r,offset:i,endOffset:n,unit:"physical"})}function e0(e,t=!0){let i=e.trim();if(i.length>=2&&('"'===i[0]||"'"===i[0])&&i.at(-1)===i[0]){let e=i.slice(1,-1).trim();return t?m(e):e}return t?m(i):i}function e4(e,t,i){let n;for(let a=0;a<e.length;a++)(e[a].name??t[a])===i&&(n=e[a]);if(n)return m(et(e0(n.name?n.raw.replace(/^\s*\$[A-Za-z_][A-Za-z_0-9]*\s*=/,""):n.raw,!1)))}function e1(e,t=[]){return e.length>0&&e.length>=t.length&&e.every((i,n)=>{if(i.name&&(t.includes(i.name)||n<t.length&&"label"!==t[n])||i.raw.includes("%%{"))return!1;let a=(i.name?i.raw.replace(/^\s*\$[A-Za-z_][A-Za-z_0-9]*\s*=/,""):i.raw).trim();return i.name?/^ *\$[A-Za-z_][A-Za-z_0-9]* *= *"[^"]+"$/.test(i.raw):a.startsWith('"')?/^ *"[^"]*"$/.test(i.raw):""===i.raw&&n<e.length-1||n<e.length-1&&a.length>0&&!/^[\$']|[(),\r\n]/.test(a)})}function e2(e,t,i){if(!e.name&&t<i.length-1&&!/^["'$)]/.test(e.raw.trim())&&!e.raw.includes(","))return!1;for(let t of(e.name?e.raw.replace(/^\s*\$[A-Za-z_][A-Za-z_0-9]*\s*=/,""):e.raw).matchAll(/"[^"]*"|'[^']*'|(\$[A-Za-z_][A-Za-z_0-9]*\s*(?:=|["']))/g))if(t[1])return!0;return!1}function e3(e,t){let i=Object.create(null);for(let n=0;n<e.length;n++){let a=e[n],r=a.name??t[n];void 0!==r&&(i[r]=a.value)}return i}function e6(e){return e.startsWith("Person")||e.startsWith("System")?["alias","label","descr","sprite","tags","link"]:["alias","label","techn","descr","sprite","tags","link"]}function e8(e){return"deployment"===eY[e]?["alias","label","type","descr","sprite","tags","link"]:"Boundary"===e?["alias","label","type","tags","link"]:["alias","label","tags","link"]}function e5(e){return"RelIndex"===e?["index","from","to","label","tags","link"]:["from","to","label","techn","descr","sprite","tags","link"]}function e9(e){return e?e.split("+").map(e=>e.trim()).filter(Boolean):[]}function e7(e){return""===e?void 0:e}function te(e,t,i){let n=e[t];if(void 0===n||"label"!==t&&!n.trim())throw Error(`C4: ${i} requires ${"label"===t?"a":"a non-empty"} ${t}`);return n}function tt(e,t,i,n){let a=e4(e,t,"label");return void 0!==a?a:e[t.indexOf("label")]?.name?"":te(i,"label",n)}function ti(e){let{args:t,style:i,effectiveLink:n,statementId:a,...r}=e;return"name"in e?JSON.stringify([e.name,e.args.map(e=>[e.name,e.value])]):JSON.stringify(r)}function tn(e,t,i,n,a="warning"){e.diagnostics.push({code:"UNSUPPORTED_SYNTAX",syntax:i,severity:a,statementId:t,message:n})}var ta=new Set(["UpdateElementStyle","UpdateRelStyle","UpdateLayoutConfig"]);function tr(e,t){return Object.fromEntries(Object.entries(e).filter(([e,i])=>!t.includes(e)&&""!==i))}var to=O(function(t,i){let n=i.positioned,{body:a,config:r,identities:o}=n,l=H(i.resolved.renderOptions,void 0,i.resolved.styleFace),s=e=>e&&"strict"!==i.resolved.renderOptions.security&&w(e)?` data-href="${ei(e)}" role="link" tabindex="0"`:"",d=(e,t)=>o.generated(`c4:${e}:${t}`,["c4",e,t]),c=(e,i,n,a,r=!1)=>t.shape({id:d(e,i),role:r?"group":"node",geometry:n,paint:a}),h=e=>[`data-id="${ei(e.id)}"`,`data-c4-kind="${ei(e.kind)}"`,`data-c4-macro="${ei(e.macro)}"`,...e.parentId?[`data-parent-id="${ei(e.parentId)}"`]:[],...e.tags.length?[`data-tags="${ei(JSON.stringify(e.tags))}"`]:[],...s(e.effectiveLink??e.link)?[s(e.effectiveLink??e.link)]:[],...e.sprite?[`data-sprite="${ei(e.sprite)}"`]:[],...void 0!==eM(a,e.statementId)?[`data-source-line="${eM(a,e.statementId)}"`]:[],..."external"in e?[`data-external="${e.external}"`,`data-c4-shape="${e.shape}"`,`data-effective-c4-shape="${em(e)}"`]:[`data-alignment="${e.alignment??"center"}"`]].join(" "),g=new Map(a.boundaries.map(e=>[e.id,e])),p=e=>{let n=g.get(e.id),a=ex(n,r),{x:o,y:s,width:m,height:u}=e,f=a.stroke??l.groupBorderColor??"var(--_node-stroke)",y=a.fill??l.groupFillColor??"var(--_group-fill)",x=a.fill??l.groupHeaderFillColor??"var(--_group-hdr)",b=a.text??A(a.fill?{fill:a.fill}:void 0,l.groupTextColor??N("var(--_text-sec)",x,i.colors)),_=e.headerHeight??36,w=[],v=e=>w.push({node:e,indent:2}),k="solid"===n.style.lineStyle?void 0:"dotted"===n.style.lineStyle?"1 3":"dashed"===n.style.lineStyle?"5 3":"deployment"===n.kind?void 0:"6 4";v(c(n.id,"boundary-frame",{kind:"rect",x:o,y:s,width:m,height:u,rx:l.groupCornerRadius,ry:l.groupCornerRadius},{fill:y,stroke:f,strokeWidth:String(l.groupLineWidth),...k?{strokeDasharray:k}:{}},!0));let F={kind:"path",d:el(o,s,m,_,l.groupCornerRadius)},S={fill:x,stroke:f,strokeWidth:String(l.groupLineWidth)};v(t.shape({id:d(n.id,"boundary-band"),role:"group-header",geometry:F,paint:S}));let $=e.labelBlock,M="left"===n.alignment?"start":"right"===n.alignment?"end":"middle",C="left"===n.alignment?o+r.padding:"right"===n.alignment?o+m-r.padding:o+m/2,W=s+_/2;for(let i of(v(t.text({id:d(n.id,"boundary-text"),role:"group-header",text:$.text,block:$,x:C,y:W,fontSize:$.fontSize,fontWeight:$.fontWeight,letterSpacing:$.letterSpacing,anchor:M,paint:{fill:b}})),e.children))v(p(i));return t.group({id:d(n.id,"frame"),role:"group",open:`<g class="cluster c4-boundary" ${h(n)}>`,close:"</g>",children:w,channels:{category:n.kind}})},m=new Map(a.relationships.map(e=>[e.id,e])),u=e({...t,connector:e=>{let n=K(e),a=m.get(n.identity?.id??"");if(!a)return t.connector(e);let r="dotted"===a.style.lineStyle?{...n.stroke,dash:{array:"1 3"}}:n.stroke,o="strict"===i.resolved.renderOptions.security?void 0:a.effectiveLink??a.link,{markers:l}=n,s=n.labels[0],c={className:"edge",data:{style:n.lineStyle,"arrow-start":String(!!l.start),"arrow-end":String(!!l.end),...l.start?{"marker-start":l.start.shape}:{},...l.end?{"marker-end":l.end.shape}:{},...s?{label:er(s.text)}:{},"c4-macro":a.macro,"authored-from":a.from,"authored-to":a.to,order:String(a.order),...void 0!==a.index?{index:a.index}:{},...a.tags.length?{tags:JSON.stringify(a.tags)}:{},...o&&w(o)?{href:o}:{}},...o&&w(o)?{tabIndex:0}:{}},h={id:d(a.id,"relationship"),role:"edge",identity:n.identity,geometry:n.route.geometry,paint:{stroke:r.color,strokeWidth:String(r.width)},lineStyle:n.lineStyle,endpoints:n.endpoints,relationship:{...n.relationship,kind:`c4-${a.macro}`},route:n.route,stroke:r,markers:n.markers,hit:n.hit,labels:n.labels.map(e=>({...e,visual:{kind:"companion",markId:d(a.id,"label-text")},...a.style.textColor?{paint:{...e.paint,fill:a.style.textColor}}:{}})),channels:{category:"relationship",...a.tags.length?{status:a.tags.join(",")}:{}},attributes:c};return t.connector(h)}},i,{surfaces:!1,edgeLabels:!1,beforeEdges:()=>n.groups.map(p)}),f=u.parts,y=n.edges.flatMap(e=>{if(!e.label||!e.labelBlock||!e.labelPosition)return[];let n=m.get(e.id),a=e.labelBlock,{x:r,y:o}=e.labelPosition,s=n.style.textColor??n.style.fontColor??l.edgeTextColor??"var(--_text-sec)",c={kind:"rect",...eq(e),rx:3,ry:3};return[t.group({id:d(n.id,"relationship-label"),role:"edge-label",open:`<g class="edge-label" data-id="${ei(d(n.id,"label"))}" data-role="edge-label" data-edge-id="${ei(n.id)}" data-from="${ei(n.source)}" data-to="${ei(n.target)}">`,close:"</g>",children:[{indent:2,node:t.shape({id:d(n.id,"label-halo"),role:"chrome",geometry:c,paint:{fill:"var(--bg)",stroke:"var(--_inner-stroke)",strokeWidth:"1"}})},{indent:2,node:t.text({id:d(n.id,"label-text"),role:"label",text:a.text,block:a,x:r,y:o,fontSize:a.fontSize,fontWeight:a.fontWeight,letterSpacing:a.letterSpacing,anchor:"middle",paint:{fill:s},pageFill:n.style.textColor??n.style.fontColor??N("var(--_text-sec)","var(--bg)",i.colors)})}]})]});if(f.splice(f.length-1,0,...y,...n.nodes.map(e=>((e,n)=>{let{x:a,y:o,width:s,height:g}=n,p=ex(e,r),m=em(e),u=p.fill??l.nodeFillColor??"var(--_node-fill)",f=p.stroke??l.nodeBorderColor??"var(--_node-stroke)",y=p.text??A(p.fill?{fill:p.fill}:void 0,l.nodeTextColor??N("var(--_text)",u,i.colors)),x={fill:u,stroke:f,strokeWidth:String(l.nodeLineWidth),...p.dashed?{strokeDasharray:"5 3"}:{}},b=[],_=e=>b.push({node:e,indent:2});if("database"===m){let t=`M ${a} ${o+8} A ${s/2} 8 0 0 1 ${a+s} ${o+8} L ${a+s} ${o+g-8} A ${s/2} 8 0 0 1 ${a} ${o+g-8} Z`;_(c(e.id,"surface",{kind:"path",d:t},x)),_(c(e.id,"database-rim",{kind:"ellipse",cx:a+s/2,cy:o+8,rx:s/2,ry:8},{fill:"none",stroke:f,strokeWidth:"1"}))}else{if(_(c(e.id,"surface",{kind:"rect",x:a,y:o,width:s,height:g,rx:l.cornerRadius??0,ry:l.cornerRadius??0},x)),"queue"===m)for(let[t,i]of[a+8,a+s-8].entries())_(c(e.id,`queue-end:${t}`,{kind:"line",x1:i,y1:o,x2:i,y2:o+g},{stroke:f,strokeWidth:"1"}));if("person"===m){let t=a+s/2,i=o+g/2+19-n.labelBlock.height/2-31,r={fill:y,stroke:y,strokeWidth:"1"};_(c(e.id,"person-head",{kind:"circle",cx:t,cy:i,r:7},r));let l=`M ${t-16} ${i+26} Q ${t-16} ${i+11} ${t} ${i+11} Q ${t+16} ${i+11} ${t+16} ${i+26} Z`;_(c(e.id,"person-shoulders",{kind:"path",d:l},r))}}let w=n.labelBlock;return _(t.text({id:d(e.id,"text"),role:"label",text:w.text,block:w,x:a+s/2,y:o+g/2+("person"===m?19:4*("database"===m)),fontSize:w.fontSize,fontWeight:w.fontWeight,letterSpacing:w.letterSpacing,anchor:"middle",paint:{fill:y}})),t.group({id:d(e.id,"card"),role:"node",open:`<g class="node c4-${e.kind}" ${h(e)}>`,close:"</g>",children:b,channels:{category:`${e.external?"external-":""}${e.kind}`,...e.tags.length?{status:e.tags.join(",")}:{}}})})(a.elements.find(t=>t.id===e.id),e))),n.legend){let e=n.legend,a=[],r=eo(i.resolved.styleFace,"legend",{},{includeFallback:!1}),o=r?.textColor??"var(--_text)",s=e.heading,c=e.x+12,h=e.y+8+s.height/2,g=t.text({id:d("legend","heading"),role:"legend",text:s.text,block:s,x:c,y:h,fontSize:s.fontSize,fontWeight:s.fontWeight,letterSpacing:s.letterSpacing,anchor:"start",paint:{fill:o}});a.push({node:g,indent:2});let p=e.y+20+s.height;for(let i of e.entries){let{block:n}=i,s=e.x+38,c=p+n.height/2,h=i.style.borderColor??i.style.lineColor??r?.strokeColor??r?.borderColor??l.nodeBorderColor??"var(--_line)",g=i.style.bgColor??r?.fillColor??l.nodeFillColor??"var(--_node-fill)",m=String(r?.lineWidth??1),u="dotted"===i.style.lineStyle?"1 3":"dashed"===i.style.lineStyle||i.external?"5 3":void 0,f={fill:g,stroke:h,strokeWidth:m,...u?{strokeDasharray:u}:{}},y=e.x+10,x=n.height,b=(e,n)=>a.push({indent:2,node:t.shape({id:d(i.id,e),role:"legend",geometry:n,paint:f})});if("relationship"===i.kind)b("legend-swatch",{kind:"line",x1:y,y1:c,x2:y+18,y2:c});else if("database"===i.shape){let e=Math.min(3,x/4);b("legend-swatch",{kind:"path",d:`M ${y} ${p+e} A 9 ${e} 0 0 1 ${y+18} ${p+e} L ${y+18} ${p+x-e} A 9 ${e} 0 0 1 ${y} ${p+x-e} Z`}),b("legend-rim",{kind:"ellipse",cx:y+9,cy:p+e,rx:9,ry:e})}else if("person"===i.shape){let e=Math.min(3,x/5),t=y+9;b("legend-head",{kind:"circle",cx:t,cy:p+e,r:e}),b("legend-swatch",{kind:"path",d:`M ${y+3} ${p+x} Q ${y+3} ${p+2.5*e} ${t} ${p+2.5*e} Q ${y+15} ${p+2.5*e} ${y+15} ${p+x} Z`})}else if(b("legend-swatch",{kind:"rect",x:y,y:p,width:18,height:x}),"queue"===i.shape)for(let[e,t]of[y+3,y+15].entries())b(`legend-end:${e}`,{kind:"line",x1:t,y1:p,x2:t,y2:p+x});a.push({indent:2,node:t.text({id:d(i.id,"legend-text"),role:"legend",text:n.text,block:n,x:s,y:c,fontSize:n.fontSize,fontWeight:n.fontWeight,letterSpacing:n.letterSpacing,anchor:"start",paint:{fill:o}})}),p+=n.height+10}f.splice(f.length-1,0,t.group({id:d("legend","container"),role:"legend",open:'<g class="c4-legend">',close:"</g>",children:a}))}return{...u,family:"c4",parts:f}}),tl=W(eh,{configDiagnostics:e=>x("c4",e,ev),normalizeRequest:e=>{let t=e.source.authoredWrapperLength??e.source.wrapperSource?.length??0,i=e.source.originalText.slice(0,t),n=function(e){let t=function(e,t){let i="string"==typeof e?e:e.join(`
8
+ `),n=function(e="C4Context"){return{kind:"c4",variant:e,elements:[],boundaries:[],relationships:[],directives:[],statements:[],diagnostics:[],layout:{hints:[]}}}();L("c4")&&z("c4","initialize",n),n.statements=function(e){let t=[],i=0,n=1,a=1,r=!0,o=(r,o="unknown")=>{let l=e.slice(i,r);t.push({id:`c4-statement-${t.length+1}`,kind:o,raw:l,span:{start:i,end:r,line:n,column:a}}),L("c4")&&I("c4",`chunk:${o}`,l,{line:n,column:a,offset:i,endOffset:r,unit:"physical"});let s=e[i-1];for(let e of l)"\r"===e||e===`
9
+ `&&"\r"!==s?(n++,a=1):e!==`
10
+ `&&a++,s=e;i=r};for(;i<e.length;){let t=i;if(/\s|;/.test(e[t])){let i=t+1;for(;i<e.length&&/\s|;/.test(e[i]);)i++;o(i,"trivia");continue}if(e.startsWith("%%",t)){let i=b(e,t),n=i<0?e.length:i,a=!r&&U([e.slice(t,n)],0)?.form==="native";o(n,a?"accessibility":"trivia");continue}if(r){r=!1;let i=b(e,t),n=i<0?e.length:i,a=n;for(let i=t;i<n;i++){if("&"===e[i]){let t=/^&(?:#\d+|#x[0-9a-f]+|[a-z][a-z0-9]*);/i.exec(e.slice(i,n));if(t){i+=t[0].length-1;continue}}if(";"===e[i]){a=i;break}}let l=ec(e.slice(t,a)).trim();if(eN.some(e=>e.toLowerCase()===l.toLowerCase())){o(a,"header");continue}}if("}"===e[t]){o(t+1,"boundary-close");continue}let a=e.slice(t),l=/^[A-Za-z_][A-Za-z_0-9]*/.exec(a)?.[0],s=t+(l?.length??0);for(;s<e.length&&/[ \t\r\n]/.test(e[s]);)s++;if(l&&"("===e[s]){let t=0,i="";for(;s<e.length;s++){let n=e[s];if(i)n===i&&(i="");else if('"'===n||"'"===n)i=n;else if("("===n)t++;else if(")"===n&&0==--t){s++;break}}if(t||i)throw Error(`C4: unclosed ${l} argument list at line ${n}`);let a=s;for(;a<e.length&&/\s/.test(e[a]);)a++;if("{"===e[a]){if(eY[l]){o(a+1,"boundary-open");continue}let t=1;for(i="",s=a+1;s<e.length&&t;s++){let n=e[s];if(i)n===i&&(i="");else if('"'===n||"'"===n)i=n;else if("%"===n&&"%"===e[s+1]){let t=b(e,s+2);s=t<0?e.length:t}else"{"===n?t++:"}"===n&&t--}if(t)throw Error(`C4: unclosed ${l} block at line ${n}`)}o(s);continue}let d=b(e,t);if(/^accDescr[ \t]*:?[ \t]*\{/i.test(a)){let i=e.indexOf("}",t);if(i<0)throw Error(`C4: unclosed accessibility block at line ${n}`);o(i+1,"accessibility");continue}o(d<0?e.length:d)}return t}(i);let a=[],r=new Set,o=new Set,l=!1,s=!1,d=!1;for(let e of n.statements){let i=e.raw.trim();if("trivia"===e.kind){eK(e,"trivia"),!i.startsWith("%%")&&i.includes(";")?(tn(n,e.id,"c4_semicolon_separator","Semicolon statement separators are a reader extension; pinned Mermaid C4 requires line breaks"),s=d=!1):i.startsWith("%%")?d||=s:/[\r\n]/.test(e.raw)&&!d&&(s=!1);continue}if(s&&"boundary-close"!==e.kind&&tn(n,e.id,"c4_statements_on_one_line","Statements sharing a line are a reader extension; pinned Mermaid C4 requires a line break after each statement and after `{`, and a comment after a statement takes its line break"),s=!0,d=!1,!l){let t=ec(i),a=eN.find(e=>e.toLowerCase()===t.toLowerCase());if(!a)throw Error("C4: expected C4Context, C4Container, C4Component, C4Dynamic, or C4Deployment");eK(e,"header"),n.variant=a,L("c4")&&z("c4","set-variant",a),e.kind="header",e.signature=a,l=!0;continue}if("boundary-close"===e.kind){eK(e,"boundary-close");let t=a.pop();if(!t)throw Error(`C4: unmatched closing boundary at line ${e.span.line}`);L("c4")&&z("c4","close-boundary",{id:t}),e.entityId=t;continue}if(j(i)!==i&&tn(n,e.id,"c4_entity_prepass","The global Mermaid entity prepass changes this statement; the writer protects its text fields without changing their values"),/^title\s/i.test(i)){eK(e,"title"),a.length&&tn(n,e.id,"c4_nested_header_directive","Metadata inside a boundary is read as global. Pinned Mermaid requires it at document scope; the writer moves it after the header"),/[#;]/.test(j(i.replace(/^title\s+/i,"")))&&tn(n,e.id,"c4_title_token","The title contains literal token delimiters; serialization writes entity escapes for pinned Mermaid"),n.title=m(et(i.replace(/^title\s+/i,""))),L("c4")&&z("c4","set-title",n.title),e.kind="title",e.signature=n.title;continue}let c=U(i.split(/\r\n?|\n/),0);if(c){eK(e,"accessibility"),a.length&&tn(n,e.id,"c4_nested_header_directive","Metadata inside a boundary is read as global. Pinned Mermaid requires it at document scope; the writer moves it after the header"),c.title||"native"===c.form||""!==c.value||tn(n,e.id,"c4_empty_accessibility_description","An empty accessibility description block is a reader extension; the writer preserves its value in a native metadata comment"),c.title?n.accessibilityTitle=c.value:n.accessibilityDescription=c.value,L("c4")&&z("c4",c.title?"set-accessibility-title":"set-accessibility-description",c.value),e.kind="accessibility",e.entityId=c.title?"title":"description",e.signature=c.value;continue}if(/^accDescription\s+/i.test(i)){eK(e,"accessibility"),n.accessibilityDescription=i.replace(/^accDescription\s+/i,""),L("c4")&&z("c4","set-accessibility-description",n.accessibilityDescription),e.kind="accessibility",e.entityId="description",e.signature=n.accessibilityDescription;continue}let h=/^direction\s+(LR|RL|TB|BT)\s*$/.exec(i);if(h){eK(e,"direction");let t={id:e.id,name:"direction",args:[{value:h[1],raw:h[1]}],category:"layout",statementId:e.id};n.directives.push(t),L("c4")&&z("c4","add-directive",t),e.kind="directive",e.entityId=t.id,e.signature=ti(t);continue}let g=/^([A-Za-z_][A-Za-z_0-9]*)\s*\(([\s\S]*)\)\s*(\{)?$/.exec(i);if(!g){eK(e,"unknown"),tn(n,e.id,"c4_unknown_statement","C4 statement is preserved but has no native interpretation","error");continue}let p=g[1],u=function(e){if(!e.trim())return[];let t=[],i=0,n=0,a="";for(let r=0;r<e.length;r++){let o=e[r];a?o===a&&(a=""):'"'===o||"'"===o?a=o:"("===o?n++:")"===o?n--:","===o&&0===n&&(t.push(e.slice(i,r)),i=r+1)}return t.push(e.slice(i)),t.map(e=>{let t=/^\s*\$([A-Za-z_][A-Za-z_0-9]*)\s*=([\s\S]*)$/.exec(e);return{...t?{name:t[1]}:{},value:e0(t?t[2]:e),raw:e}})}(g[2]);if("UpdateLayoutConfig"===p&&(0===u.length||1===u.length&&!u[0].name&&""===u[0].value)&&!g[3]){a.length&&r.add(a.at(-1)),"("===i[p.length]&&e1(u)||tn(n,e.id,"c4_empty_layout_arguments","An empty layout call is a no-op; the writer supplies the attribute required by pinned Mermaid"),e.kind="trivia";continue}/[\r\n]/.test(g[2].replace(/"[^"]*"|'[^']*'/g,""))&&tn(n,e.id,"c4_multiline_arguments","Line breaks between C4 arguments are a reader extension; quoted multiline text remains supported"),u.some(e=>e.name&&""===e.value)&&tn(n,e.id,"c4_empty_named_argument","Empty named arguments are retained; pinned Mermaid requires a positional empty slot");let f=eU.exec(p),y=!!(f&&!("Person"===f[1]&&f[2]))||Object.hasOwn(eY,p)||eZ.has(p)||ta.has(p);if(y&&a.length&&r.add(a.at(-1)),y&&u.some(e2))throw new eD(`C4 argument is ambiguous in ${i}: separate named arguments with commas and use $name="value", or quote the entire value when it is literal text`);if(y&&u.some((e,t)=>{let i=e.raw.trim();return e.name?!/^\$[A-Za-z_][A-Za-z_0-9]*\s*=\s*"/.test(i)&&""!==e.value:i.startsWith("$")||t===u.length-1&&""!==i&&!/^["']/.test(i)})&&tn(n,e.id,"c4_unquoted_argument","Unquoted C4 argument text is read literally here, but pinned Mermaid requires a quoted final argument and quoted named values; serialization writes those values in double quotes"),y&&"("!==i[p.length]&&tn(n,e.id,"c4_space_before_arguments",`Pinned Mermaid reads "(" only straight after ${p} and rejects whitespace between them; ours reads the call. Write ${p}( with no space`),f&&!("Person"===f[1]&&f[2])){if(eK(e,"element"),g[3])throw Error(`C4: ${p} cannot open a boundary`);let i=e3(u,e6(p)),r=te(i,"alias",p);if(o.has(r))throw Error(`C4: duplicate declaration alias ${JSON.stringify(r)}`);o.add(r);let l={id:r,macro:p,kind:f[1].toLowerCase(),external:!!f[3],shape:"Person"===f[1]?"person":"Db"===f[2]?"database":"Queue"===f[2]?"queue":"rectangle",label:tt(u,e6(p),i,p),technology:e7(e4(u,e6(p),"techn")),description:e7(e4(u,e6(p),"descr")),parentId:a.at(-1),tags:e9(i.tags),link:e7(i.link),sprite:e7(i.sprite),style:{},args:u,statementId:e.id};t&&q("nodes",n.elements.length+n.boundaries.length+1),n.elements.push(l),L("c4")&&z("c4","add-element",l),e.kind="element",e.entityId=r,e.signature=ti(l)}else if(eY[p]){if(eK(e,"boundary-open"),!g[3])throw Error(`C4: ${p} requires a boundary block`);let i=e3(u,e8(p)),r=te(i,"alias",p);if(o.has(r))throw Error(`C4: duplicate declaration alias ${JSON.stringify(r)}`);o.add(r);let l={id:r,macro:p,kind:eY[p],label:tt(u,e8(p),i,p),type:e7(e4(u,e8(p),"type")),description:e7(e4(u,e8(p),"descr")),parentId:a.at(-1),tags:e9(i.tags),link:e7(i.link),sprite:e7(i.sprite),style:{},args:u,statementId:e.id,..."Node_L"===p?{alignment:"left"}:"Node_R"===p?{alignment:"right"}:{}};t&&(q("nodes",n.elements.length+n.boundaries.length+1),q("nesting",a.length+1)),n.boundaries.push(l),a.push(r),L("c4")&&z("c4","open-boundary",l),e.entityId=r,e.signature=ti(l)}else if(eZ.has(p)){eK(e,"relationship");let i=e3(u,e5(p)),a=te(i,"from",p),r=te(i,"to",p),o="Rel_Back"===p,l={id:"",macro:p,from:a,to:r,source:o?r:a,target:o?a:r,label:tt(u,e5(p),i,p),technology:e7(e4(u,e5(p),"techn")),description:e7(e4(u,e5(p),"descr")),tags:e9(i.tags),link:e7(i.link),sprite:e7(i.sprite),style:{},args:u,statementId:e.id,index:"RelIndex"===p?te(i,"index",p):void 0,order:n.relationships.length+1,bidirectional:"BiRel"===p,reversed:o,direction:eH[p.slice(4)]};t&&q("edges",n.relationships.length+n.layout.hints.length+1),n.relationships.push(l),L("c4")&&z("c4","add-relationship",l),e.kind="relationship","RelIndex"===p&&u.slice(4).some(e=>!e.name)&&tn(n,e.id,"c4_relindex_positional_metadata","RelIndex positional metadata follows documented tags/link slots; pinned Mermaid instead treats them as technology/description. Named $tags/$link avoids this ambiguity")}else{eK(e,"directive");let t={id:e.id,name:p,args:u,category:"UpdateElementStyle"===p?"element-style":"UpdateRelStyle"===p?"relationship-style":"AddElementTag"===p?"element-tag":"AddRelTag"===p?"relationship-tag":"UpdateLayoutConfig"===p||p.startsWith("Lay_")||p.startsWith("LAYOUT_")?"layout":"ShowLegend"===p||"SHOW_LEGEND"===p||"SHOW_FLOATING_LEGEND"===p?"legend":"AddElementLink"===p||"AddRelLink"===p?"link":"unknown",statementId:e.id};n.directives.push(t),L("c4")&&z("c4","add-directive",t),e.kind="directive",e.entityId=t.id,e.signature=ti(t),"unknown"===t.category?tn(n,e.id,"c4_unknown_macro",`${p} is preserved but has no native interpretation`,"error"):p.startsWith("Update")||tn(n,e.id,"c4_directive_extension",`${p} is a reader extension; pinned Mermaid does not accept this directive`)}let x=f?e6(p):eY[p]?e8(p):eZ.has(p)?e5(p):("UpdateElementStyle"===p?eJ:"UpdateRelStyle"===p?eQ:"UpdateLayoutConfig"===p?["c4ShapeInRow","c4BoundaryInRow"]:void 0)??("AddElementTag"===p?eV:"AddRelTag"===p?eG:void 0);if(x){let t=new Set;for(let i=0;i<u.length;i++){let a=u[i],r=a.name??x[i];void 0!==r&&x.includes(r)?t.has(r)&&tn(n,e.id,"c4_duplicate_argument",`${p} assigns ${r} more than once; every argument is retained`,"error"):tn(n,e.id,"c4_unknown_argument",`${p} argument ${a.name??i+1} is retained but has no native interpretation`,"error"),r&&t.add(r)}}u.some(e=>/^\s*'/.test(e.raw)||/\\["']/.test(e.raw))?tn(n,e.id,"c4_quoted_string_extension","Quoted-string extension is preserved; typed edits write Mermaid entity escapes"):!y||e1(u)||n.diagnostics.some(t=>t.statementId===e.id&&["c4_multiline_arguments","c4_empty_named_argument"].includes(t.syntax))||tn(n,e.id,"c4_argument_spelling","Argument text is retained as its native value; the writer emits complete quoted argument tokens instead of ambiguous imported spelling")}if(!l)throw Error("C4: missing diagram header");if(a.length)throw Error(`C4: unclosed boundary ${JSON.stringify(a.at(-1))}`);t&&T(n);let c=en(o),h=new Map(n.statements.map(e=>[e.id,e]));for(let e of n.relationships){if(e.id=c(`c4-rel-${e.order}`,["c4-relationship",e.order]),L("c4")&&z("c4","set-relationship-identity",{id:e.id,order:e.order}),!o.has(e.from)||!o.has(e.to))throw Error(`C4: relationship ${e.id} references an undeclared endpoint`);let t=h.get(e.statementId);t.entityId=e.id,t.signature=ti(e)}for(let e of(!function(e,t=!1){for(let t of[...e.elements,...e.boundaries,...e.relationships])t.style={},delete t.effectiveLink,L("c4")&&z("c4","reset-presentation",{id:t.id,style:t.style});e.layout={hints:[]},L("c4")&&z("c4","reset-layout",e.layout);let i=new Map([...e.elements,...e.boundaries].map(e=>[e.id,e])),n=new Map,a=(e,t)=>JSON.stringify([e,t]);for(let t of e.relationships){let e=a(t.from,t.to),i=n.get(e)??[];i.push(t),n.set(e,i)}let r=(e,t)=>{let i=e3(e.args,t);for(let n of["techn","legendText"]){let a=e4(e.args,t,n);void 0!==a&&(i[n]=a)}return i},o=new Map,l=new Map;for(let t of e.directives){if("element-tag"!==t.category&&"relationship-tag"!==t.category)continue;let e=r(t,"element-tag"===t.category?eV:eG);("element-tag"===t.category?o:l).set(e.tagStereo??"",tr(e,["tagStereo"])),L("c4")&&z("c4","define-tag",{category:t.category,tag:e.tagStereo??"",style:("element-tag"===t.category?o:l).get(e.tagStereo??"")})}for(let t of[...e.elements,...e.boundaries])for(let e of t.tags)Object.assign(t.style,o.get(e)),L("c4")&&z("c4","apply-tag",{id:t.id,tag:e,style:t.style});for(let t of e.relationships)for(let e of t.tags)Object.assign(t.style,l.get(e)),L("c4")&&z("c4","apply-tag",{id:t.id,tag:e,style:t.style});for(let o of e.directives)if("element-style"===o.category){let e=r(o,eJ),t=i.get(e.elementName);if(!t)throw Error(`C4: UpdateElementStyle references undeclared alias ${JSON.stringify(e.elementName)}`);Object.assign(t.style,tr(e,["elementName"])),L("c4")&&z("c4","set-element-style",{id:t.id,style:t.style})}else if("relationship-style"===o.category){let e=e3(o.args,eQ),t=n.get(a(e.from,e.to));if(!t)throw Error("C4: UpdateRelStyle references an undeclared relationship pair");for(let t of["offsetX","offsetY"])if(void 0!==e[t]&&!Number.isFinite(Number(e[t])))throw Error(`C4: ${t} must be finite`);for(let i of t)Object.assign(i.style,tr(e,["from","to"])),L("c4")&&z("c4","set-relationship-style",{id:i.id,style:i.style})}else if("UpdateLayoutConfig"===o.name){let t=e3(o.args,["c4ShapeInRow","c4BoundaryInRow"]);for(let[i,n]of[["c4ShapeInRow","shapesPerRow"],["c4BoundaryInRow","boundariesPerRow"]]){if(void 0===t[i]||""===t[i])continue;let a=Number(t[i]);if(!Number.isSafeInteger(a)||a<1)throw Error(`C4: ${i} must be a positive integer`);e.layout[n]=a,L("c4")&&z("c4","set-layout-option",{name:n,value:a})}}else if(o.name.startsWith("Lay_")){let n=eH[o.name.slice(4)],a=e3(o.args,["from","to"]);if(!n||!a.from||!a.to||!i.has(a.from)||!i.has(a.to))throw Error(`C4: ${o.name} requires two declared aliases`);n&&a.from&&a.to&&(t&&q("edges",e.relationships.length+e.layout.hints.length+1),e.layout.hints.push({from:a.from,to:a.to,direction:n,statementId:o.statementId}),L("c4")&&z("c4","add-layout-hint",e.layout.hints.at(-1)))}else if("direction"===o.name)e.layout.direction=o.args[0]?.value,L("c4")&&z("c4","set-direction",e.layout.direction);else if("LAYOUT_LEFT_RIGHT"===o.name||"LAYOUT_TOP_DOWN"===o.name)e.layout.direction="LAYOUT_LEFT_RIGHT"===o.name?"LR":"TB",L("c4")&&z("c4","set-direction",e.layout.direction);else if("AddElementLink"===o.name){let e=e3(o.args,["alias","link"]),t=i.get(e.alias);t&&(t.effectiveLink=e.link,L("c4")&&z("c4","set-effective-link",{id:t.id,link:t.effectiveLink}))}else if("AddRelLink"===o.name){let e=e3(o.args,["from","to","link"]);for(let t of n.get(a(e.from,e.to))??[])t.effectiveLink=e.link,L("c4")&&z("c4","set-effective-link",{id:t.id,link:t.effectiveLink})}let s=en([...e.elements,...e.boundaries,...e.relationships].map(e=>e.id));e.legend={visible:e.directives.some(e=>"legend"===e.category),entries:[...[...o.entries()].map(([e,t])=>({id:s(`c4-tag-${e}`,["element-tag",e]),label:t.legendText??e,kind:"element",style:{...t}})),...[...l.entries()].map(([e,t])=>({id:s(`c4-tag-${e}`,["relationship-tag",e]),label:t.legendText??e,kind:"relationship",style:{...t}}))]},L("c4")&&z("c4","set-legend",e.legend)}(n,t),n.boundaries))r.has(e.id)||tn(n,e.statementId,"c4_empty_boundary","An empty boundary is retained; the writer supplies a no-op layout statement because pinned Mermaid requires a statement inside its block");if(n.directives.some(e=>"direction"===e.name)){let e=n.directives.find(e=>"direction"===e.name);tn(n,e.statementId,"c4_direction","A standalone direction directive is a reader extension to legacy C4")}for(let e of[...n.elements,...n.boundaries,...n.relationships])for(let t of(e.sprite&&tn(n,e.statementId,"c4_sprite","C4 sprite metadata is preserved; offline native output uses an explicit text fallback"),void 0===e.style.lineStyle||["solid","dashed","dotted"].includes(e.style.lineStyle)||tn(n,e.statementId,"c4_line_style",`C4 lineStyle ${JSON.stringify(e.style.lineStyle)} is preserved but has no native paint effect; the route uses solid strokes`),Object.keys(e.style)))"shape"===t&&"external"in e&&void 0!==ep(e.style.shape)||["bgColor","fontColor","borderColor","textColor","lineColor","lineStyle","offsetX","offsetY","legendText","techn"].includes(t)||tn(n,e.statementId,"c4_style_property",`C4 style ${t} is preserved as metadata but has no native paint effect`);return n}(e,!0),i=t.diagnostics.find(e=>"error"===e.severity);if(i){let e;throw Error(`C4 unsupported syntax: ${(e=t.statements.find(e=>e.id===i.statementId))?`${i.message} (in: ${e.raw.trim()})`:i.message}`)}return t}(e.source.originalText.slice(t)),a=i.split(/\r\n?|\n/).length-1;for(let e of n.statements)e.span.start+=i.length,e.span.end+=i.length,e.span.line+=a;let r=_(e.source.frontmatter);return void 0===n.title&&void 0!==r&&(n.title=r),void 0!==e.source.accessibility.title&&(n.accessibilityTitle=e.source.accessibility.title),void 0!==e.source.accessibility.descr&&(n.accessibilityDescription=e.source.accessibility.descr),{familyConfig:{model:n,c4:e.source.config.c4??{},themeVariables:e.source.config.themeVariables??{}}}},layout:e=>{let m=e.familyConfig;return C(function(e,m={},u,f={},y={}){var x;let b,_,w,v,k,F,S,$,M,C;T(e);let W=ey({...void 0===m.padding?{}:{diagramMarginX:m.padding,diagramMarginY:m.padding},...void 0===m.nodeSpacing?{}:{c4ShapeMargin:m.nodeSpacing},...void 0===m.layerSpacing?{}:{nextLinePaddingX:m.layerSpacing},...f},y),L=H(m,void 0,u),R=function(e,t=ey()){for(let t of[...e.elements,...e.boundaries,...e.relationships,...e.legend?.entries??[]]){let e=t.style;X({...void 0===e.bgColor?{}:{fill:e.bgColor},...void 0===e.borderColor&&void 0===e.lineColor?{}:{stroke:e.borderColor??e.lineColor},...void 0===e.fontColor&&void 0===e.textColor?{}:{color:e.fontColor??e.textColor}},`C4 ${t.id}`)}let i=ek(e),n={direction:e.layout.direction??e.layout.hints[0]?.direction??e.relationships.find(e=>e.direction)?.direction??"LR",nodes:new Map,edges:[],subgraphs:[],classDefs:new Map,classAssignments:new Map,nodeStyles:new Map,linkStyles:new Map},a=new Map;for(let t of e.boundaries)a.set(t.id,{id:i.nodes.get(t.id)??t.id,label:eS(t),nodeIds:[],children:[]});for(let t of e.boundaries){let e=a.get(t.id),i=t.parentId&&a.get(t.parentId);i?i.children.push(e):n.subgraphs.push(e)}for(let r of e.elements){let e=i.nodes.get(r.id)??r.id,o=ex(r,t),l=em(r);n.nodes.set(e,{id:e,label:eF(r),shape:"database"===l?"cylinder":"queue"===l?"subroutine":"rectangle",href:r.effectiveLink??r.link}),r.parentId&&a.get(r.parentId)?.nodeIds.push(e),n.nodeStyles.set(e,{...o.fill?{fill:o.fill}:{},...o.stroke?{stroke:o.stroke}:{},...o.text?{color:o.text}:{},...o.dashed?{"stroke-dasharray":"5 3"}:{}})}for(let t of e.relationships){let a=e$(e,t);n.edges.push({id:i.relationships.get(t.id)??t.id,source:t.source,target:t.target,label:a,labelContent:{value:a,prepared:ee(a,"literal")},style:"dashed"===t.style.lineStyle||"dotted"===t.style.lineStyle?"dotted":"solid",hasArrowStart:t.bidirectional,hasArrowEnd:!0}),n.linkStyles.set(n.edges.length-1,X({...t.style.lineColor?{stroke:t.style.lineColor}:{},...t.style.textColor?{color:t.style.textColor}:{}},`UpdateRelStyle(${t.from}, ${t.to})`))}return n}(e,W),I=new Map,z=new Map([...e.elements,...e.boundaries].map(e=>[e.id,e.parentId])),B=e=>{let t=[];for(let i=z.get(e);i&&!t.includes(i);i=z.get(i))t.push(i);return t},q=e=>void 0!==W.input.c4ShapePadding?W.padding:W.compact&&u?.node?.["X"===e?"paddingX":"paddingY"]===void 0?Math.min(W.padding,L["X"===e?"nodePaddingX":"nodePaddingY"]):L["X"===e?"nodePaddingX":"nodePaddingY"],P=e=>{if(void 0===W.wrapWidth)return;if(void 0===W.maxWidth)return W.wrapWidth;let t=void 0===e?0:B(e).length;return Math.max(24,W.minimumWidth-2*q("X")-20,Math.min(W.wrapWidth,W.maxWidth-(W.marginX+40)*2-t*W.boundaryPadding*2-2*q("X")-20))},O=(e,t,i=!1)=>{let n=ex(e,W);return ea(t,{display:"literal",fontSize:n.fontSize??(i?L.groupHeaderFontSize:L.nodeLabelFontSize),fontWeight:n.fontWeight??(i?L.groupHeaderFontWeight:L.nodeLabelFontWeight),transform:i?L.groupTextTransform:L.nodeTextTransform,maxWidth:P(e.id),letterSpacing:i?L.groupLetterSpacing:L.nodeLetterSpacing,fontFamily:n.fontFamily??(i?L.groupFont:void 0)})},j=e.elements.map(e=>{let t=eF(e),i=O(e,t),n=em(e),a=Math.max(W.minimumWidth,i.width+2*q("X")+20*("queue"===n)),r=Math.max(W.minimumHeight,i.height+2*q("Y")+("person"===n?38:16*("database"===n)));return I.set(e.id,{id:e.id,x:0,y:0,width:a,height:r,..."database"===n?{cylinder:!0}:{}}),{...R.nodes.get(e.id),x:0,y:0,width:a,height:r,labelBlock:i,inlineStyle:R.nodeStyles.get(e.id)}}),A=new Map;for(let t of e.boundaries){let e=eS(t),i=O(t,e,!0),n=i.height+2*W.padding,a={id:t.id,label:e,labelBlock:i,x:0,y:0,width:Math.max(W.minimumWidth,i.width+2*W.padding),height:n+2*W.boundaryPadding,headerHeight:n,children:[]};A.set(t.id,a),I.set(t.id,{...a,container:!0})}let N=R.edges.map((t,i)=>({...t,points:[],labelBlock:ea(e$(e,e.relationships[i]),{display:"literal",fontSize:L.edgeLabelFontSize,fontWeight:L.edgeLabelFontWeight,letterSpacing:L.edgeLetterSpacing,transform:L.edgeTextTransform,...void 0===W.maxWidth?{}:{maxWidth:P()}}),inlineStyle:R.linkStyles.get(i),edgeIndex:i}));for(let t of e.boundaries){let e=N.filter(e=>e.source===t.id&&B(e.target).includes(t.id)||e.target===t.id&&B(e.source).includes(t.id));e.length&&(I.get(t.id).bottomPadding=Math.max(W.boundaryPadding,...e.map(e=>(e.labelBlock?.height??0)+48))*e.length)}let D="LR"===R.direction||"RL"===R.direction;for(let[e,t]of I){let i=N.filter(t=>t.source===e||t.target===e),n=Math.max(0,...i.map(e=>(e.labelBlock?.height??0)+28)),a=Math.max(0,...i.map(e=>(e.labelBlock?.width??0)+24)),r=new Map;for(let t of i){let i=t.source===e?t.target:t.source;r.set(i,(r.get(i)??0)+1)}let o=Math.max(0,...r.values());D?t.height=Math.max(t.height,(o+1)*n+(t.headerHeight??0),(i.length+1)*16+(t.headerHeight??0)):t.width=Math.max(t.width,(o+1)*a,(i.length+1)*16)}let U=m.diagramTitle??e.title,Y=void 0===U?void 0:ea(U,{display:"literal",fontSize:J,fontWeight:Q,transform:L.groupTextTransform,letterSpacing:L.groupLetterSpacing,fontFamily:L.groupFont,...void 0===W.maxWidth?{}:{maxWidth:Math.max(24,W.maxWidth-2*W.marginX)}}),Z=Y?{text:Y.text,width:Y.width,height:Y.height+V,block:Y}:void 0,K=Math.max(W.gap,...N.map(e=>(e.labelBlock?.width??0)*2+48)),et=Math.max(W.rowGap,...N.map(e=>(e.labelBlock?.height??0)*2+48)),ei=new Map;for(let e of N){let t=JSON.stringify([e.source,e.target].sort());ei.set(t,(ei.get(t)??0)+1)}let en=Math.max(1,...ei.values()),er=en>1?en+1:1,eo=(x={gapX:K*er,gapY:et*er,padding:W.boundaryPadding,marginX:W.marginX+40,marginY:W.marginY+40+(Z?.height??0),shapesPerRow:e.layout.shapesPerRow??W.shapesPerRow,boundariesPerRow:e.layout.boundariesPerRow??W.boundariesPerRow,direction:"TD"===R.direction?"TB":R.direction,maxWidth:W.maxWidth},b=new Map([...I].map(([e,t])=>[e,{...t}])),_=[],w=new Map(e.statements.map((e,t)=>[e.id,t])),k=new Map((v=[...e.boundaries,...e.elements].sort((e,t)=>(w.get(e.statementId)??0)-(w.get(t.statementId)??0))).map(e=>[e.id,e.parentId])),F=[...e.layout.hints,...e.relationships.filter(e=>e.direction).map(e=>({from:e.from,to:e.to,direction:e.direction,statementId:e.statementId}))],S=(e,t)=>{let i=new Set;for(;k.get(e)!==t;){if(i.has(e))return;i.add(e);let t=k.get(e);if(!t)return;e=t}return e},M=($=(e,t,i)=>{let n=v.filter(t=>t.parentId===e&&b.has(t.id));for(let e of n)if(b.get(e.id).container&&!t.has(e.id)){let n=new Set(t);n.add(e.id);let a=$(e.id,n,void 0===i?void 0:Math.max(1,i-2*x.padding)),r=b.get(e.id);r.width=Math.max(r.width,a.width+2*x.padding),r.height=Math.max(r.height,a.height+(r.headerHeight??0)+x.padding+Math.max(x.padding,r.bottomPadding??0))}let a=n.some(e=>b.get(e.id).container)?x.boundariesPerRow:x.shapesPerRow,r=x.direction,o="LR"===r||"RL"===r;if(!o&&void 0!==i){let e=Math.max(1,...n.map(e=>b.get(e.id).width)),t=Math.max(1,Math.floor((i+x.gapX)/(e+x.gapX)));a=Math.max(a,Math.ceil(n.length/t))}let l=0,s=0,d=0,c=0,h=0;n.forEach(e=>{let t=b.get(e.id);h&&(h>=a||o&&void 0!==i&&l+t.width>i)&&(o?(l=0,s+=d+x.gapY,d=0):(s=0,l+=c+x.gapX,c=0),h=0),t.x=l,t.y=s,o?l+=t.width+x.gapX:s+=t.height+x.gapY,d=Math.max(d,t.height),c=Math.max(c,t.width),h++});let g=[];for(let t of F){let i=S(t.from,e),n=S(t.to,e);if(!i||!n||i===n||!b.has(i)||!b.has(n))continue;let a="LR"===t.direction||"RL"===t.direction?"x":"y",r="RL"===t.direction||"BT"===t.direction,o=r?n:i,l=r?i:n,s=(e,t,i=new Set)=>e===t||!i.has(e)&&(i.add(e),g.some(n=>n.axis===a&&n.before===e&&s(n.after,t,i)));if(s(l,o)){_.push({code:"C4_LAYOUT_CONFLICT",severity:"warning",statementId:t.statementId,message:`Conflicting C4 ${"x"===a?"horizontal":"vertical"} direction for ${t.from} and ${t.to}; the earlier constraint is retained.`});continue}g.push({before:o,after:l,axis:a,statementId:t.statementId})}if(g.length){for(let e of n){let t=b.get(e.id);g.some(t=>"x"===t.axis&&(t.before===e.id||t.after===e.id))&&(t.x=0),g.some(t=>"y"===t.axis&&(t.before===e.id||t.after===e.id))&&(t.y=0)}let e=()=>{for(let e=0;e<n.length;e++)for(let e of g){let t=b.get(e.before),i=b.get(e.after);i[e.axis]=Math.max(i[e.axis],t[e.axis]+("x"===e.axis?t.width+x.gapX:t.height+x.gapY))}};e();for(let t=0;t<n.length;t++){let t=!1;for(let e=0;e<n.length;e++)for(let i=e+1;i<n.length;i++){let a=b.get(n[e].id),r=b.get(n[i].id);a.x<r.x+r.width&&r.x<a.x+a.width&&a.y<r.y+r.height&&r.y<a.y+a.height&&(r.y=a.y+a.height+x.gapY,t=!0)}if(e(),!t)break}}else if("RL"===r||"BT"===r){let e=Math.max(0,...n.map(e=>{let t=b.get(e.id);return"RL"===r?t.x+t.width:t.y+t.height}));for(let t of n){let i=b.get(t.id);"RL"===r?i.x=e-i.x-i.width:i.y=e-i.y-i.height}}return{width:Math.max(0,...n.map(e=>{let t=b.get(e.id);return t.x+t.width})),height:Math.max(0,...n.map(e=>{let t=b.get(e.id);return t.y+t.height}))}})(void 0,new Set,void 0===x.maxWidth?void 0:Math.max(1,x.maxWidth-2*x.marginX)),(C=(e,t,i,n)=>{for(let a of v.filter(t=>t.parentId===e)){let e=b.get(a.id);!e||n.has(a.id)||(n.add(a.id),e.x+=t,e.y+=i,e.container&&C(a.id,e.x+x.padding,e.y+(e.headerHeight??0)+x.padding,n))}})(void 0,x.marginX,x.marginY,new Set),{boxes:b,width:M.width+2*x.marginX,height:M.height+2*x.marginY,diagnostics:_});for(let e of j)Object.assign(e,eo.boxes.get(e.id));let el=[];for(let t of e.boundaries){let e=A.get(t.id);Object.assign(e,eo.boxes.get(t.id));let i=t.parentId&&A.get(t.parentId);i?i.children.push(e):el.push(e)}(function(e,i,m,u,f){let{edges:y}=i,x=[...e.values()].filter(e=>e.container).map(e=>({...e,id:f.generated(`c4-header-obstacle:${e.id}`,["c4","header-obstacle",e.id]),height:e.headerHeight??1,shape:"rectangle",label:""})),b=[...i.nodes,...x],_=0,w=()=>{if(++_>4e5)throw new eW},v=(e,t,i)=>(w(),h(e,t,i)),k=(e,t,i,n,a)=>{let r={x:eL[t].x*i,y:eL[t].y*i},o=n;for(let t of b){if(w(),t.id===a||!(r.x?e.y>t.y&&e.y<t.y+t.height:e.x>t.x&&e.x<t.x+t.width))continue;let i=r.x>0?t.x-e.x:r.x<0?e.x-t.x-t.width:r.y>0?t.y-e.y:e.y-t.y-t.height;i>=0&&(o=Math.min(o,Math.max(0,i-2)))}return{x:e.x+r.x*o,y:e.y+r.y*o}},F=new Map,S=new Map,$=new Map,M=y.flatMap(t=>{let i=e.get(t.source),n=e.get(t.target);if(!i||!n)return[];let[a,r]=function(e,t){if(e.id===t.id)return["R","B"];if(e.container&&eR(e,t)||t.container&&eR(t,e))return["B","B"];let i=eI(e),n=eI(t);return Math.abs(i.x-n.x)>=Math.abs(i.y-n.y)?i.x<=n.x?["R","L"]:["L","R"]:i.y<=n.y?["B","T"]:["T","B"]}(i,n);for(let[e,t]of[[i.id,a],[n.id,r]]){let i=`${e}\0${t}`;S.set(i,(S.get(i)??0)+1)}return[{edge:t,source:i,target:n,startSide:a,endSide:r}]}),C=new Map;for(let e of M){let t=JSON.stringify([e.source.id,e.target.id].sort()),i=C.get(t)??[];i.push(e),C.set(t,i)}for(let[e,i]of M.entries()){let n,{edge:a,source:r,target:o,startSide:l,endSide:s}=i,d=(e,t)=>{let i=`${e.id}\0${t}`,n=$.get(i)??0;return $.set(i,n+1),{index:n,count:S.get(i)}},c=d(r,l),h=d(o,s),p=eB(r,l,c.index,c.count),m=r.id===o.id?eB(o,s,h.index,h.count):function(e,t,i,n,a,r){let o=eB(i,n,a,r);if(eE[t]!==n)return o;let l="L"===n||"R"===n?"y":"x",s=e[l]-o[l];if(0===s||Math.abs(s)>=8)return o;let d=ez(i,n,0),c=ez(i,n,1),h=(e[l]-d[l])/(c[l]-d[l]);if(!(h>0&&h<1))return o;let g=ez(i,n,h);for(let e=0;e<r;e++)if(e!==a&&8>Math.abs(eB(i,n,e,r)[l]-g[l]))return o;return g}(p,l,o,s,h.index,h.count),f=r.container&&r.id!==o.id&&eR(r,o)?-1:1,y=o.container&&r.id!==o.id&&eR(o,r)?-1:1,x=C.get(JSON.stringify([r.id,o.id].sort())),b="R"===l||"L"===l?Math.max(24,...x.map(e=>(e.edge.labelBlock?.width??0)+32)):Math.max(24,...x.map(e=>(e.edge.labelBlock?.height??0)+24)),_=(x.indexOf(i)-(x.length-1)/2)*b,w=14+e%5*4,v=g(a,u),M=k(p,l,f,Math.max(w,v.start?v.start+(u.edgeBendRadius??0):0),r.id),W=k(m,s,y,Math.max(w,v.end?v.end+(u.edgeBendRadius??0):0),o.id);if(F.set(a,{start:p,end:m,startExit:M,endExit:W}),r.id===o.id){let e=r.x+r.width+w+(a.labelBlock?.width??0)/2,t=r.y+r.height+w+(a.labelBlock?.height??0)/2;n=[M,{x:e,y:M.y},{x:e,y:t},{x:W.x,y:t},W]}else if("R"===l||"L"===l){let e=(M.x+W.x)/2+_;n=[M,{x:e,y:M.y},{x:e,y:W.y},W]}else{let e=(M.y+W.y)/2+_;n=[M,{x:M.x,y:e},{x:W.x,y:e},W]}a.points=t([p,...n,m]),F.get(a).seed=a.points,a.label&&(a.labelPosition=E(a.points))}for(let n of(r(i,m,new Set,u),l(i,m,u),s(i,m,u),c(i,m,u),y)){let a=F.get(n),r=e.get(n.source),o=e.get(n.target),l=Math.abs(eI(r).x-eI(o).x)>=Math.abs(eI(r).y-eI(o).y)?eI(r).x<=eI(o).x?"LR":"RL":eI(r).y<=eI(o).y?"TB":"BT",s={id:f.generated(`${n.id}:routing-source`,["c4",n.id,"routing-source"]),label:"",shape:"rectangle",...a.startExit,width:0,height:0},d={id:f.generated(`${n.id}:routing-target`,["c4",n.id,"routing-target"]),label:"",shape:"rectangle",...a.endExit,width:0,height:0},c={...n,source:s.id,target:d.id,points:t([a.startExit,...a.seed.slice(1,-1),a.endExit])},h=(n.labelBlock?.width??0)/2+10,g=(n.labelBlock?.height??0)/2+8;p([...[...i.nodes,...x].map(e=>e.id===n.source||e.id===n.target?e:{...e,x:e.x-h,y:e.y-g,width:e.width+2*h,height:e.height+2*g}),s,d],[c],{...m,direction:l}),c.points.slice(1).some((e,t)=>b.some(i=>v(c.points[t],e,i)))&&(c.points=function(e,i,n,a){let r=(t,a)=>{let r=[...new Set(n.flatMap(e=>[e[t]-10,e[t]+e[a]+10]))],o=[Math.min(e[t],i[t],...r),Math.max(e[t],i[t],...r)],l=n=>Math.min(Math.abs(n-e[t]),Math.abs(n-i[t]));return[...new Set([...o,...r.sort((e,t)=>l(e)-l(t)||e-t).slice(0,14)])]},o=r("x","width"),l=r("y","height"),s=[];for(let t of o)s.push([e,{x:t,y:e.y},{x:t,y:i.y},i]);for(let t of l)s.push([e,{x:e.x,y:t},{x:i.x,y:t},i]);for(let t of o)for(let n of l)s.push([e,{x:e.x,y:n},{x:t,y:n},{x:t,y:i.y},i]),s.push([e,{x:t,y:e.y},{x:t,y:n},{x:i.x,y:n},i]);let d=e=>e.slice(1).reduce((t,i,n)=>t+Math.hypot(i.x-e[n].x,i.y-e[n].y),0),c=(e,t)=>n.every(i=>!a(e,t,i)),h=e=>e.map(t).sort((e,t)=>d(e)-d(t)||e.length-t.length).find(e=>e.slice(1).every((t,i)=>c(e[i],t))),g=h(s);if(g)return g;let p=l.filter(t=>c(e,{x:e.x,y:t})),m=l.filter(e=>c({x:i.x,y:e},i)),u=o.filter(t=>c(e,{x:t,y:e.y})),f=o.filter(e=>c({x:e,y:i.y},i)),y=[];for(let t of o)for(let n of p)for(let a of m)y.push([e,{x:e.x,y:n},{x:t,y:n},{x:t,y:a},{x:i.x,y:a},i]);for(let t of l)for(let n of u)for(let a of f)y.push([e,{x:n,y:e.y},{x:n,y:t},{x:a,y:t},{x:a,y:i.y},i]);return h(y)}(a.startExit,a.endExit,b,v)??c.points),n.points=t([a.start,...c.points,a.end]),n.labelPosition=E(n.points)}d(i,m,u);let W=[...i.nodes,...x],L={...i,nodes:W},{ctx:R}=a(W,y,m.direction,u,i.groups);for(let e of(R.finalLabelClearance=!0,y))if(e.label)for(let{start:t,end:i}of e.points.slice(1).map((t,i)=>({start:e.points[i],end:t})).sort((e,t)=>Math.abs(t.end.x-t.start.x)+Math.abs(t.end.y-t.start.y)-(Math.abs(e.end.x-e.start.x)+Math.abs(e.end.y-e.start.y)))){let a=n(e,t,i,R);if(a){e.labelPosition=a;break}}for(let t of(s(L,m,u),y)){let i=e.get(t.source),n=e.get(t.target);o(t,t.routeCertificate,{...i,label:"",shape:"rectangle"},{...n,label:"",shape:"rectangle"})}})(eo.boxes,{nodes:j,groups:el,edges:N},R,L,ek(e)),function(e,t,i){let{edges:n}=e,a=eA(e.nodes,e.groups),r=n.flatMap(e=>ej(e,t)),o=[],l=new Map(i.relationships.map(e=>[e.id,e.style])),s=n.flatMap(e=>e.points.slice(1).map((t,i)=>({edge:e,start:e.points[i],end:t})));for(let{edge:e,rect:t}of n.map((e,t)=>({edge:e,index:t,rect:eq(e)})).filter(e=>e.rect).sort((e,t)=>t.rect.width*t.rect.height-e.rect.width*e.rect.height||e.index-t.index)){let i=l.get(e.id),n=e=>Number.isFinite(Number(e))?Number(e):0,d=n(i?.offsetX),c=n(i?.offsetY),h=e=>({x:e.x+d,y:e.y+c}),g=h(e.labelPosition),p=[g],m=t.width,u=t.height,f=t=>{let i={x:t.x-m/2,y:t.y-u/2,width:m,height:u},n=eP(i,3);return[r.reduce((e,t)=>e+eT(n,t),0),a.reduce((e,t)=>e+eT(n,t),0),o.reduce((e,t)=>e+eT(eP(i,4),t),0),s.reduce((t,n)=>t+(n.edge!==e&&eX(n.start,n.end,eP(i,2))?1:0),0)]},y=g,x=f(g);if(x.every(e=>0===e)){e.labelPosition=g,o.push(eq(e));continue}for(let{start:t,end:i}of s.filter(t=>t.edge===e).sort((e,t)=>Math.hypot(t.end.x-t.start.x,t.end.y-t.start.y)-Math.hypot(e.end.x-e.start.x,e.end.y-e.start.y))){let e=Math.hypot(i.x-t.x,i.y-t.y);if(e<.01)continue;let n=-(i.y-t.y)/e,a=(i.x-t.x)/e,r=Math.abs(n)*m/2+Math.abs(a)*u/2;for(let e of[.5,.25,.75,.1,.9])for(let o of[0,r+6,-r-6,r+20,-r-20])p.push(h({x:t.x+(i.x-t.x)*e+n*o,y:t.y+(i.y-t.y)*e+a*o}))}for(let e of(p.sort((e,t)=>Math.hypot(e.x-g.x,e.y-g.y)-Math.hypot(t.x-g.x,t.y-g.y)),p)){let t=f(e),i=t.findIndex((e,t)=>e!==x[t]);if(i>=0&&t[i]<x[i]&&(y=e,x=t),t.every(e=>0===e))break}e.labelPosition=y,o.push(eq(e))}}({nodes:j,groups:el,edges:N},L.lineWidth,e);let es=N.flatMap(e=>{let t=eq(e);return t?[{...t,id:e.id,label:"",shape:"rectangle"}]:[]}),ed=N.flatMap(e=>ej(e,L.lineWidth).map(t=>({...t,id:e.id,label:"",shape:"rectangle"})));i([...j,...es,...ed],N,el,Math.max(W.marginX,W.marginY)+(Z?.height??0));let ec=[...j,...A.values(),...es,...ed],eh=Math.max(eo.width,...ec.map(e=>e.x+e.width+W.marginX),...N.flatMap(e=>[...e.points.map(e=>e.x+W.marginX),(e.labelPosition?.x??0)+(e.labelBlock?.width??0)/2+W.marginX]),Z?Z.width+2*W.marginX:0),eg=Math.max(eo.height,...ec.map(e=>e.y+e.height+W.marginY),...N.flatMap(e=>[...e.points.map(e=>e.y+W.marginY),(e.labelPosition?.y??0)+(e.labelBlock?.height??0)/2+W.marginY])),ep=eC(e,W).map(e=>({...e,block:ea(e.label,{display:"literal",fontSize:L.edgeLabelFontSize,fontWeight:L.edgeLabelFontWeight,letterSpacing:L.edgeLetterSpacing,transform:L.edgeTextTransform,...void 0===W.maxWidth?{}:{maxWidth:Math.max(24,W.maxWidth-2*W.marginX-64)}})})),eu=ea("Legend",{display:"literal",fontSize:u?.text?.fontSize??13,fontWeight:u?.text?.fontWeight??600,letterSpacing:u?.text?.letterSpacing??0,transform:u?.text?.textTransform,...void 0===W.maxWidth?{}:{maxWidth:Math.max(24,W.maxWidth-2*W.marginX-24)}}),ef=ep.length?{x:W.marginX,y:eg+12,width:Math.max(eu.width+24,...ep.map(e=>e.block.width+64)),height:eu.height+20+ep.reduce((e,t)=>e+t.block.height+10,0),heading:eu,entries:ep}:void 0;ef&&(eh=Math.max(eh,ef.x+ef.width+W.marginX),eg=ef.y+ef.height+W.marginY);let eb=[...eo.diagnostics,...function(e,t,i,n){let a=[],{edges:r,nodes:o,groups:l}=t,s=eA(o,l),d=r.map(e=>({edge:e,box:eq(e)})).filter(e=>e.box),c=t=>e.relationships.find(e=>e.id===t.id)?.statementId;for(let{edge:e,box:t}of d)(s.some(e=>eT(t,e)>.01)||d.some(i=>i.edge!==e&&eT(t,i.box)>.01)||r.some(i=>i!==e&&i.points.slice(1).some((e,n)=>eX(i.points[n],e,t))))&&a.push({code:"C4_LABEL_COLLISION",severity:"warning",statementId:c(e),message:`Relationship ${e.id} has a label halo overlapping another label, card, boundary header/frame or relationship route; all authored text is retained.`});let h=eO(l).map(e=>({...e,height:e.headerHeight??0})),g=r.flatMap(e=>ej(e,i).map(t=>({edge:e,head:t})));for(let e of r){let t=g.filter(t=>t.edge===e).map(e=>e.head);((e.hasArrowEnd||e.hasArrowStart)&&!t.length||t.some(e=>d.some(t=>eT(e,t.box)>.01)||[...o,...h].some(t=>t.id!==e.endpoint&&eT(e,t)>.01)||g.some(t=>t.head!==e&&function(e,t){if(.01>=eT(e,t))return!1;for(let i of[e.polygon,t.polygon])for(let[n,a]of i.entries()){let r=i[(n+1)%i.length],o=-(r.y-a.y),l=r.x-a.x,s=Math.hypot(o,l);if(s<.001)continue;let d=e=>e.polygon.map(e=>(e.x*o+e.y*l)/s),c=d(e),h=d(t);if(Math.max(...c)+e.strokePadding<=Math.min(...h)-t.strokePadding+.01||Math.max(...h)+t.strokePadding<=Math.min(...c)-e.strokePadding+.01)return!1}return!0}(e,t.head))||n&&(e.x<-.01||e.y<-.01||e.x+e.width>n.width+.01||e.y+e.height>n.height+.01)))&&a.push({code:"C4_ARROW_OCCLUDED",severity:"warning",statementId:c(e),message:`Relationship ${e.id} has an arrowhead overlapping a label, card, boundary header or another arrowhead, exceeds the final canvas, or lacks a nonzero terminal segment.`})}return a}(e,{nodes:j,groups:el,edges:N},L.lineWidth,{width:eh,height:eg})];return void 0!==W.maxWidth&&eh>W.maxWidth+.01&&eb.push({code:"C4_WIDTH_EXCEEDED",severity:"warning",message:`The requested C4 width ${W.maxWidth}px cannot contain the ${Math.ceil(eh)}px artifact without shrinking or clipping content; minimum card widths, nesting, explicit direction constraints and authored offsets retain precedence.`}),{width:eh,height:eg,...ef?{legend:ef}:{},nodes:j,groups:el,edges:N,...Z?{title:G(Z,eh,W.marginY)}:{},body:e,config:W,diagnostics:eb,identities:ek(e),textContext:{node:L.nodeTextTransform,edge:L.edgeTextTransform,group:L.groupTextTransform,legendHeading:u?.text?.textTransform,title:U}}}(m.model,e.renderOptions,e.styleFace,m.c4,m.themeVariables))},projectPositioned:$(function({positioned:e,options:t}){let i=e.body,n=e.textContext,a=(e,t,i,n)=>{if(!i||i.prepared.source!==t||"literal"!==i.prepared.display||i.prepared.transform!==n)throw Error("C4 "+e+" changed its retained prepared text")},r=new Map(i.elements.map(e=>[e.id,e])),o=new Map(i.relationships.map(e=>[e.id,e])),l=new Map,s=new Map,d=(e,t)=>{for(let i of e){if(l.has(i.id))throw Error(`C4 boundary "${i.id}" has a repeated positioned frame`);l.set(i.id,i),s.set(i.id,t),d(i.children,i.id)}};d(e.groups);let c=new Set(e.nodes.map(e=>e.id));if(c.size!==e.nodes.length||c.size!==r.size||i.elements.some(e=>!c.has(e.id)))throw Error("C4 positioned cards do not match the authored identities");if(l.size!==i.boundaries.length)throw Error("C4 positioned frames do not match the authored boundaries");let h=new Set(e.edges.map(e=>e.id));if(h.size!==e.edges.length||h.size!==o.size)throw Error("C4 positioned relationships do not match the authored identities");for(let t of e.nodes){let e=eF(r.get(t.id));if(t.label!==e)throw Error("C4 card "+t.id+" changed its authored text");a(t.id,e,t.labelBlock,n.node)}for(let t of e.edges){let e=void 0===t.id?void 0:o.get(t.id);if(!e)throw Error("C4 positioned relationship has no authored interaction identity");let r=e$(i,e),l="dashed"===e.style.lineStyle||"dotted"===e.style.lineStyle?"dotted":"solid";if(t.source!==e.source||t.target!==e.target||t.label!==r||t.style!==l||t.hasArrowStart!==e.bidirectional||!t.hasArrowEnd||(t.startMarker??"arrow")!=="arrow"||(t.endMarker??"arrow")!=="arrow")throw Error("C4 relationship "+t.id+" changed its authored endpoints, label, shaft or markers");a(t.id,r,t.labelBlock,n.edge)}let g=[];for(let t of i.boundaries){let i=l.get(t.id);if(!i||s.get(t.id)!==t.parentId)throw Error(`C4 boundary "${t.id}" changed its authored parent`);let r=eS(t);if(i.label!==r)throw Error("C4 boundary "+t.id+" changed its authored text");a(t.id,r,i.labelBlock,n.group);let o="left"===t.alignment?"start":"right"===t.alignment?"end":"middle",d="left"===t.alignment?i.x+e.config.padding:"right"===t.alignment?i.x+i.width-e.config.padding:i.x+i.width/2,c=i.headerHeight??36;g.push({id:`boundary-label:${t.id}`,text:i.labelBlock?.text??i.label,bounds:F(i.labelBlock,d,i.y+c/2,o),container:k({...i,height:c})})}if(void 0!==n.title!=(void 0!==e.title))throw Error("C4 positioned title does not match the authored title");if(e.title){let t=e.title;a("title",n.title,t.block,n.group),g.push({id:"title",text:t.text,bounds:F(t.block,t.x,t.y),container:k(v(e))})}let p=eC(i,e.config);if(p.length>0!=(void 0!==e.legend))throw Error("C4 positioned legend does not match the authored legend");if(e.legend){let t=e.legend;if(t.entries.length!==p.length||t.entries.some((e,t)=>e.id!==p[t].id))throw Error("C4 positioned legend entries do not match the authored legend");a("legend heading","Legend",t.heading,n.legendHeading);let i=k(t);g.push({id:"legend:heading",text:t.heading.text,bounds:F(t.heading,t.x+12,t.y+8+t.heading.height/2,"start"),container:i});let r=t.y+20+t.heading.height;for(let[e,o]of t.entries.entries())a(o.id,p[e].label,o.block,n.edge),g.push({id:`legend:entry:${o.id}`,text:o.block.text,bounds:F(o.block,t.x+38,r+o.block.height/2,"start"),container:i}),r+=o.block.height+10}return{version:1,nodes:e.nodes.map(e=>{let t=r.get(e.id),i=em(t),n=e.y+e.height/2+("person"===i?19:4*("database"===i));return{id:t.id,x:B(e.x),y:B(e.y),w:B(e.width),h:B(e.height),shape:i,label:t.label,role:"box",...S(e.labelBlock,e.x+e.width/2,n,e),...void 0!==t.parentId?{parentId:t.parentId}:{}}}),edges:e.edges.map(e=>{let i=void 0===e.id?void 0:o.get(e.id);if(!i)throw Error("C4 positioned relationship has no authored interaction identity");return{id:i.id,from:e.source,to:e.target,path:e.points.map(e=>[B(e.x),B(e.y)]),...void 0!==e.label&&e.labelPosition?{label:{x:B(e.labelPosition.x),y:B(e.labelPosition.y),text:e.label,bounds:F(e.labelBlock,e.labelPosition.x,e.labelPosition.y)}}:{},...t.debug&&e.routeCertificate?{route:e.routeCertificate}:{}}}),groups:i.boundaries.map(e=>{let t=l.get(e.id);if(!t)throw Error(`C4 boundary "${e.id}" has no positioned frame`);return{id:e.id,label:e.label,x:B(t.x),y:B(t.y),w:B(t.width),h:B(t.height),members:i.elements.filter(t=>t.parentId===e.id).map(e=>e.id),...void 0!==e.parentId?{parentId:e.parentId}:{}}}),bounds:{w:B(e.width),h:B(e.height)},labels:g}}),lowerScene:M(to)});export{tl as default};
@@ -1,6 +1,6 @@
1
- import{B as e,N as r,Q as t,R as i,fb as o,ib as n,ka as s,kb as a,ma as l,mb as f,na as u,qa as c,ra as d,sa as g,ua as h,wa as v,ya as p,za as $}from"./chunk-Z3FDIVLN.js";import{a as m}from"./chunk-5UVGUSD6.js";var w=/^(?:#[0-9a-f]{3,4}|#[0-9a-f]{6}|#[0-9a-f]{8}|[a-z][a-z0-9-]*)$/i,b=/^var\(--[a-z_][a-z0-9_-]*\)$/i,x=/^[a-z0-9_#(),.%+\-\s/]*$/i,y=new Set(["color","color-mix","device-cmyk","hsl","hsla","hwb","lab","lch","oklab","oklch","rgb","rgba"]);function k(e){let r=[],t=0,i=0;for(let o=0;o<e.length;o++){let n=e[o];if("("===n?t++:")"===n?t--:","===n&&0===t&&(r.push(e.slice(i,o)),i=o+1),t<0)return[e]}return 0!==t?[e]:(r.push(e.slice(i)),r)}function B(e){return _(e,!1)}function _(e,r){if("string"!=typeof e)return;let t=e.trim();if(0===t.length||t.length>256)return;if(w.test(t))return t;if(!x.test(t))return;let i=t.indexOf("(");if(i<=0||!t.endsWith(")"))return;let o=0;for(let e of t)if("("===e)o++;else if(")"===e&&--o<0)return;if(0!==o)return;for(let e of t.matchAll(/([a-z][a-z0-9-]*)\s*\(/gi)){let t=e[1].toLowerCase();if(!(r&&"var"===t)&&!y.has(t))return}let n=t.slice(0,i).trim().toLowerCase();return r&&"var"===n||y.has(n)?t:void 0}function z(e,r=!1){let t=j(e);if(void 0===t)return;let i=t.toLowerCase();return"currentcolor"===i||r&&"none"===i||b.test(t)||null!==$(t)?t:void 0}function S(e){return`a color name, #RGB, #RGBA, #RRGGBB, #RRGGBBAA, rgb(), rgba(), hsl(), hsla(), transparent, currentColor${e?", none":""}, or var(--name)`}function j(e){return"string"==typeof e&&e.length<=256&&b.test(e)?e:_(e,!0)}var M=/^[a-z0-9_,'(). \t-]+$/i;function F(e){if("string"!=typeof e)return;let r=function(e){if(!e.includes('"')&&!e.includes("'"))return e;let r="";for(let t=0;t<e.length;t++){let i=e[t];if('"'!==i&&"'"!==i){r+=i;continue}let o=e.indexOf(i,t+1);if(o<0)return;let n=e.slice(t+1,o);if(n.includes('"')||n.includes("'"))return;r+=`'${n}'`,t=o}return r}(e.trim());if(void 0===r||0===r.length||r.length>256||!M.test(r))return;let t=0;for(let e of r)if("("===e)t++;else if(")"===e&&--t<0)return;if(0===t){for(let e of r.matchAll(/([a-z][a-z0-9-]*)\s*\(/gi))if("var"!==e[1].toLowerCase())return;if(!/\b(?:url|expression|import)\b/i.test(r))return r}}function A(e){let r=F(e);if(void 0===r)throw Error("font family must be a safe non-fetching CSS family or var() fallback");return r}function E(e,r){let t=new WeakSet,i=0,o=e=>{if(!(i>r)){if("string"==typeof e){i+=4*e.length+16;return}if(null===e||"object"!=typeof e){i+=16;return}if(t.has(e)){i+=8;return}if(t.add(e),i+=64,e instanceof Map){for(let[t,n]of e)if(i+=32,o(t),o(n),i>r)break}else if(e instanceof Set){for(let t of e)if(i+=16,o(t),i>r)break}else if(e instanceof ArrayBuffer)i+=e.byteLength;else if(ArrayBuffer.isView(e))o(e.buffer);else for(let t of Object.keys(e))if(i+=2*t.length+16,o(e[t]),i>r)break}};return o(e),i}var C={bg:"#FFFFFF",fg:"#27272A"};function O(e){if(!e.shadow)return"";let r=function(e){if(e.replace("#","").length<6)return!1;let[r,t,i]=s(e);return p(r,t,i)/255<.4}(e.bg);return` <filter id="bm-shadow" x="-12%" y="-10%" width="128%" height="136%">
1
+ import{Aa as e,B as r,N as t,Q as i,R as o,fb as n,ib as s,kb as a,la as l,mb as f,na as u,oa as c,ra as d,sa as g,ta as h,va as v,xa as p,za as $}from"./chunk-XBLK7VXJ.js";import{a as m}from"./chunk-YHMTSXIR.js";var w=/^(?:#[0-9a-f]{3,4}|#[0-9a-f]{6}|#[0-9a-f]{8}|[a-z][a-z0-9-]*)$/i,b=/^var\(--[a-z_][a-z0-9_-]*\)$/i,x=/^[a-z0-9_#(),.%+\-\s/]*$/i,y=new Set(["color","color-mix","device-cmyk","hsl","hsla","hwb","lab","lch","oklab","oklch","rgb","rgba"]);function k(e){let r=[],t=0,i=0;for(let o=0;o<e.length;o++){let n=e[o];if("("===n?t++:")"===n?t--:","===n&&0===t&&(r.push(e.slice(i,o)),i=o+1),t<0)return[e]}return 0!==t?[e]:(r.push(e.slice(i)),r)}function B(e){return _(e,!1)}function _(e,r){if("string"!=typeof e)return;let t=e.trim();if(0===t.length||t.length>256)return;if(w.test(t))return t;if(!x.test(t))return;let i=t.indexOf("(");if(i<=0||!t.endsWith(")"))return;let o=0;for(let e of t)if("("===e)o++;else if(")"===e&&--o<0)return;if(0!==o)return;for(let e of t.matchAll(/([a-z][a-z0-9-]*)\s*\(/gi)){let t=e[1].toLowerCase();if(!(r&&"var"===t)&&!y.has(t))return}let n=t.slice(0,i).trim().toLowerCase();return r&&"var"===n||y.has(n)?t:void 0}function z(r,t=!1){let i=j(r);if(void 0===i)return;let o=i.toLowerCase();return"currentcolor"===o||t&&"none"===o||b.test(i)||null!==e(i)?i:void 0}function S(e){return`a color name, #RGB, #RGBA, #RRGGBB, #RRGGBBAA, rgb(), rgba(), hsl(), hsla(), transparent, currentColor${e?", none":""}, or var(--name)`}function j(e){return"string"==typeof e&&e.length<=256&&b.test(e)?e:_(e,!0)}var M=/^[a-z0-9_,'(). \t-]+$/i;function F(e){if("string"!=typeof e)return;let r=function(e){if(!e.includes('"')&&!e.includes("'"))return e;let r="";for(let t=0;t<e.length;t++){let i=e[t];if('"'!==i&&"'"!==i){r+=i;continue}let o=e.indexOf(i,t+1);if(o<0)return;let n=e.slice(t+1,o);if(n.includes('"')||n.includes("'"))return;r+=`'${n}'`,t=o}return r}(e.trim());if(void 0===r||0===r.length||r.length>256||!M.test(r))return;let t=0;for(let e of r)if("("===e)t++;else if(")"===e&&--t<0)return;if(0===t){for(let e of r.matchAll(/([a-z][a-z0-9-]*)\s*\(/gi))if("var"!==e[1].toLowerCase())return;if(!/\b(?:url|expression|import)\b/i.test(r))return r}}function A(e){let r=F(e);if(void 0===r)throw Error("font family must be a safe non-fetching CSS family or var() fallback");return r}function E(e,r){let t=new WeakSet,i=0,o=e=>{if(!(i>r)){if("string"==typeof e){i+=4*e.length+16;return}if(null===e||"object"!=typeof e){i+=16;return}if(t.has(e)){i+=8;return}if(t.add(e),i+=64,e instanceof Map){for(let[t,n]of e)if(i+=32,o(t),o(n),i>r)break}else if(e instanceof Set){for(let t of e)if(i+=16,o(t),i>r)break}else if(e instanceof ArrayBuffer)i+=e.byteLength;else if(ArrayBuffer.isView(e))o(e.buffer);else for(let t of Object.keys(e))if(i+=2*t.length+16,o(e[t]),i>r)break}};return o(e),i}var C={bg:"#FFFFFF",fg:"#27272A"};function O(e){if(!e.shadow)return"";let r=function(e){if(e.replace("#","").length<6)return!1;let[r,t,i]=l(e);return $(r,t,i)/255<.4}(e.bg);return` <filter id="bm-shadow" x="-12%" y="-10%" width="128%" height="136%">
2
2
  <feDropShadow dx="0" dy="1.5" stdDeviation="2.5" flood-color="${r?"#ffffff":"#000000"}" flood-opacity="${r?"0.12":"0.08"}" />
3
- </filter>`}function L(e){return/^[A-Za-z0-9][A-Za-z0-9 _-]*$/.test(e)}function R(e,r,t,i=!1){e=A(e);let o=i?[...L(e)?[`@import url('https://fonts.googleapis.com/css2?family=${encodeURIComponent(e)}:wght@400;500;600;700&amp;display=swap');`]:[],...r?["@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;display=swap');"]:[]]:[],n=`
3
+ </filter>`}function R(e){return/^[A-Za-z0-9][A-Za-z0-9 _-]*$/.test(e)}function L(e,r,t,i=!1){e=A(e);let o=i?[...R(e)?[`@import url('https://fonts.googleapis.com/css2?family=${encodeURIComponent(e)}:wght@400;500;600;700&amp;display=swap');`]:[],...r?["@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;display=swap');"]:[]]:[],n=`
4
4
  /* Derived from --bg and --fg (overridable via --line, --accent, etc.) */
5
5
  --_text: var(--fg);
6
6
  --_text-sec: var(--muted, color-mix(in srgb, var(--fg) 78%, var(--bg)));
@@ -14,9 +14,9 @@ import{B as e,N as r,Q as t,R as i,fb as o,ib as n,ka as s,kb as a,ma as l,mb as
14
14
  --_group-hdr: color-mix(in srgb, var(--fg) 5%, var(--bg));
15
15
  --_inner-stroke: color-mix(in srgb, var(--fg) 12%, var(--bg));
16
16
  --_key-badge: color-mix(in srgb, var(--fg) 10%, var(--bg));`,s=t?`
17
- .node, .class-node, .entity, .actor[data-type="participant"], .note, .block, .timeline-event, .journey-task, .sankey-node { filter: url(#bm-shadow); }`:"",a=` svg { font-family: var(--font, ${L(e)?`'${e}'`:e}), system-ui, sans-serif; }`;return["<style>",...o.length>0?[` ${o.join(`
17
+ .node, .class-node, .entity, .actor[data-type="participant"], .note, .block, .timeline-event, .journey-task, .sankey-node { filter: url(#bm-shadow); }`:"",a=` svg { font-family: var(--font, ${R(e)?`'${e}'`:e}), system-ui, sans-serif; }`;return["<style>",...o.length>0?[` ${o.join(`
18
18
  `)}`,a]:[a],...r?[" .mono { font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', ui-monospace, monospace; }"]:[],` svg {${n}`,` }${s}`,"</style>"].join(`
19
- `)}function D(e,r,o,n,s){let a=void 0===o.font?void 0:A(o.font);for(let e of["bg","fg","line","accent","muted","surface","border"]){let r=o[e];void 0!==r&&function(e,r){if(void 0===j(e))throw Error(`${r} must be a safe non-fetching CSS color or var() reference`)}(r,e)}let l=[`--bg:${o.bg}`,`--fg:${o.fg}`,o.line?`--line:${o.line}`:"",o.accent?`--accent:${o.accent}`:"",o.muted?`--muted:${o.muted}`:"",o.surface?`--surface:${o.surface}`:"",o.border?`--border:${o.border}`:"",a?`--font:${a}`:""].filter(Boolean).join(";"),f=s&&("width"in s||"height"in s||"style"in s||"attrs"in s)?s:void 0,u=f?.attrs??s??{},c=`${l}${n?"":";background:var(--bg)"}${f?.style?`;${f.style}`:""}`,d=Object.entries(u).filter(([,e])=>void 0!==e).map(([e,r])=>`${e}="${r}"`).join(" "),g=d?` ${d}`:"";return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${t(e)} ${t(r)}" width="${i("width",String(f?.width??e))}" height="${i("height",String(f?.height??r))}" style="${c}"${g}>`}var W=new e(64,262144);function G(e){let r=[e.bg,e.fg,e.line,e.accent,e.muted,e.surface,e.border].join(`
20
- `),t=W.get(r);if(t)return t;let i=Object.freeze(function(e){let{bg:r,fg:t}=e,i=e.surface??u(t,r,3),o=u(t,r,5),n=u(t,r,10),s=I(e,[r,i,o,n]),{text:a,textSec:f,textMuted:g,textFaint:v}=s.legible?s:I(e,[r,o,n]);return{bg:r,fg:t,text:a,textSec:f,textMuted:g,textFaint:v,line:d(e.line??u(t,r,50),r,3,a),arrow:d(e.accent??u(t,r,85),r,3,a),nodeFill:i,nodeStroke:function(e,r,t){let i=$(e),o=$(r);if(!i||!o||1!==i[3]||1!==o[3])return e;let n=l(i[0],i[1],i[2]),s=l(o[0],o[1],o[2]);if((c(n,s)??1/0)>=h)return e;let a=$(t);return d(n,s,h,a?.[3]===1?l(a[0],a[1],a[2]):void 0)}(e.border??u(t,r,20),r,a),groupFill:r,groupHdr:o,innerStroke:u(t,r,12),keyBadge:n}}(U(e)??e)),o=2*r.length+E(i,262144);return W.set(r,i,o),i}function U(e){if(v(e.bg)&&v(e.fg))return e;let r=$(e.bg),t=$(e.fg);if(!(!r||!t||1!==r[3]||1!==t[3]))return{...e,bg:l(r[0],r[1],r[2]),fg:l(t[0],t[1],t[2])}}function I(e,r){let{bg:t,fg:i}=e,o=V(i,r),n=V(e.muted??u(i,t,78),r,o),s=V(e.muted??u(i,t,66),r,o),a=V(u(i,t,54),r,o,h),l=(e,t)=>r.every(r=>(c(e,r)??1/0)>=t),f=[o,n,s].every(e=>l(e,g))&&l(a,h);return{text:o,textSec:n,textMuted:s,textFaint:a,legible:f}}function V(e,r,t,i=g){let o=e;for(let e=0;e<2;e++)for(let e of r)o=d(o,e,i,t);return o}function H(e){if(!U(e))return;let r=G(e),t=new Map;return t.set("bg",r.bg),t.set("fg",r.fg),e.line&&v(e.line)&&t.set("line",e.line),e.accent&&v(e.accent)&&t.set("accent",e.accent),e.muted&&v(e.muted)&&t.set("muted",e.muted),e.surface&&v(e.surface)&&t.set("surface",e.surface),e.border&&v(e.border)&&t.set("border",e.border),t.set("_text",r.text),t.set("_text-sec",r.textSec),t.set("_text-muted",r.textMuted),t.set("_text-faint",r.textFaint),t.set("_line",r.line),t.set("_arrow",r.arrow),t.set("_node-fill",r.nodeFill),t.set("_node-stroke",r.nodeStroke),t.set("_group-fill",r.groupFill),t.set("_group-hdr",r.groupHdr),t.set("_inner-stroke",r.innerStroke),t.set("_key-badge",r.keyBadge),t}function N(e,r){if(v(e))return e;let t=e.match(/^var\(\s*--([\w-]+)\s*(?:,\s*(#[0-9a-fA-F]{3,8})\s*)?\)$/);if(t)return H(r)?.get(t[1])??t[2]}function P(e){let r=new Map;for(let t of e.styleContexts)for(let i of e.source.slice(t.start,t.end).matchAll(/--([\w-]+)\s*:\s*([^;{}]+)/g)){let e=i[2].trim();("none"===e||"currentcolor"===e.toLowerCase()||$(e)||e.startsWith("var(")&&j(e))&&r.set(i[1],e)}return r}function Z(e,r){let t=T(r,e);return t?X(e,t):e}function q(e,t){return J(r(e),T(t))}function K(){let e,t;return(i,o)=>{let n=r(i);if(o!==e){let r=Object.isFrozen(o)?Object.getOwnPropertyDescriptors(o):void 0;if(!(r&&Reflect.ownKeys(r).every(e=>"value"in r[e])&&["bg","fg","line","accent","muted","surface","border","font"].every(e=>{let t=r[e];return Object.hasOwn(r,e)&&(void 0===t.value||"string"==typeof t.value)})))return J(n,T(o));t=T(o),e=o}return J(n,t)}}function J(e,r){let t=r?r.resolveCss(e,r.vars,10):e;return r&&/[<"]/.test(t)?n(o(X(`<rect fill="${e}"/>`,r))[0],"fill"):m(t)}function T(e,r){let t=H(e);if(!t)return;let i=G(e),o=void 0===r?void 0:a(r),n=o?P(o):new Map;for(let[e,r]of t)(e.startsWith("_")||void 0!==r&&!n.has(e))&&n.set(e,r);n.set("bg",i.bg),n.set("fg",i.fg);let s=new Set(["font"]);for(let r of[e.font,e.line,e.accent,e.muted,e.surface,e.border])if(r)for(let e of r.matchAll(/var\(\s*--([\w-]+)/g))n.has(e[1])||s.add(e[1]);return{vars:n,SKIP_VARS:s,resolveCss:(e,r,t)=>{let o=e;for(let e=0;e<t;e++){let e=o;if((o=(o=(o=o.replace(/var\(--([\w-]+)\)/g,(e,t)=>s.has(t)?e:r.get(t)??e)).replace(/var\(--([\w-]+),\s*([^()]+)\)/g,(e,t,i)=>s.has(t)?e:r.get(t)??i.trim())).replace(/color-mix\(in srgb,\s*(#[0-9a-fA-F]{3,8})\s+(\d+(?:\.\d+)?)%,\s*(#[0-9a-fA-F]{3,8}|transparent)\)/g,(e,r,t,o)=>u(r,"transparent"===o?i.bg:o,parseFloat(t))))===e)break}return o},projection:o}}function X(e,r){let{vars:t,SKIP_VARS:i,resolveCss:o}=r,n=r.projection??a(e),s=new Map,l=f(e,e=>{let r=s.get(e);if(void 0!==r)return r;let i=o(e,t,10);return s.set(e,i),i},n),u=l.includes("color-mix(");if(!u){for(let e of l.matchAll(/var\((?=\s*--([\w-]+))/g))if(!i.has(e[1])){u=!0;break}}if(!u)return l;let c=a(l),d=P(c);if(d.size>0)for(let e=0;e<5;e++){let e=f(l,e=>o(e,d,1),c);if(e===l)break;c=a(l=e)}return l}function Q(e,r,t,i,o){let n={};return o?(n.role="img",n["aria-roledescription"]=o):(e||r)&&(n.role="img"),e&&(n["aria-labelledby"]=t),r&&(n["aria-describedby"]=i),n}function Y(e,r,t,i,o){if("start"!==t&&"end"!==t)throw TypeError("Arrow endpoint must be start or end");let{width:n,height:s}=r,a="start"===t?0:n,l="start"===t?n:0,f={id:e,shape:"arrow",size:{width:n,height:s},ref:{x:a,y:s/2},...o?{units:o}:{},orient:"auto",geometry:{kind:"polygon",points:[{x:l,y:0},{x:a,y:s/2},{x:l,y:s}]},paint:i};return et(f),f}function ee(e,r){if(!Number.isFinite(e))throw Error(`Marker ${r} must be finite`);return e}function er(e){return e.map(e=>`${ee(e.x,"point.x")} ${ee(e.y,"point.y")}`).join(", ")}function et(e){if("string"!=typeof e.id||""===e.id.trim())throw Error("Marker id must not be empty");if(!["arrow","open-arrow","circle","cross","triangle","diamond","diamond-open"].includes(String(e.shape)))throw Error(`Marker "${e.id}" has an unknown shape`);if(!e.geometry)throw Error(`Marker "${e.id}" must declare geometry`);if(!e.size)throw Error(`Marker "${e.id}" must declare marker size`);if(!e.ref)throw Error(`Marker "${e.id}" must declare a reference point`);if(!(e.size.width>0)||!(e.size.height>0))throw Error(`Marker "${e.id}" size must be positive`);if(ee(e.size.width,"size.width"),ee(e.size.height,"size.height"),ee(e.ref.x,"ref.x"),ee(e.ref.y,"ref.y"),void 0!==e.units&&"strokeWidth"!==e.units&&"userSpaceOnUse"!==e.units)throw Error(`Marker "${e.id}" units must be strokeWidth or userSpaceOnUse`);if("number"==typeof e.orient)ee(e.orient,"orient");else if(void 0!==e.orient&&"auto"!==e.orient&&"auto-start-reverse"!==e.orient)throw Error(`Marker "${e.id}" orient must be auto, auto-start-reverse, or a finite angle`);if(void 0!==e.overflow&&"hidden"!==e.overflow&&"visible"!==e.overflow)throw Error(`Marker "${e.id}" overflow must be hidden or visible`);if(e.viewBox&&(ee(e.viewBox.x,"viewBox.x"),ee(e.viewBox.y,"viewBox.y"),ee(e.viewBox.width,"viewBox.width"),ee(e.viewBox.height,"viewBox.height"),!(e.viewBox.width>0)||!(e.viewBox.height>0)))throw Error(`Marker "${e.id}" viewBox must be positive`)}function ei(e,t={}){et(e);let i=" ".repeat(t.indent??2),o=`${i} `,n=e.units,s=e.orient??"auto",a=[`id="${r(e.id)}"`,`markerWidth="${ee(e.size.width,"size.width")}"`,`markerHeight="${ee(e.size.height,"size.height")}"`,`refX="${ee(e.ref.x,"ref.x")}"`,`refY="${ee(e.ref.y,"ref.y")}"`,`orient="${r(String(s))}"`,...n?[`markerUnits="${r(n)}"`]:[],...e.viewBox?[`viewBox="${ee(e.viewBox.x,"viewBox.x")} ${ee(e.viewBox.y,"viewBox.y")} ${ee(e.viewBox.width,"viewBox.width")} ${ee(e.viewBox.height,"viewBox.height")}"`]:[],...e.overflow?[`overflow="${r(e.overflow)}"`]:[]];return[`${i}<marker ${a.join(" ")}>`,...function e(t,i,o){let n=function(e){if(!e)return"";let t=[];return void 0!==e.fill&&t.push(`fill="${r(e.fill)}"`),void 0!==e.stroke&&t.push(`stroke="${r(e.stroke)}"`),void 0!==e.strokeWidth&&t.push(`stroke-width="${r(e.strokeWidth)}"`),void 0!==e.strokeDasharray&&t.push(`stroke-dasharray="${r(e.strokeDasharray)}"`),void 0!==e.strokeDashoffset&&t.push(`stroke-dashoffset="${r(e.strokeDashoffset)}"`),void 0!==e.strokeLinecap&&t.push(`stroke-linecap="${r(e.strokeLinecap)}"`),void 0!==e.strokeLinejoin&&t.push(`stroke-linejoin="${r(e.strokeLinejoin)}"`),void 0!==e.strokeMiterlimit&&t.push(`stroke-miterlimit="${r(e.strokeMiterlimit)}"`),void 0!==e.vectorEffect&&t.push(`vector-effect="${r(e.vectorEffect)}"`),void 0!==e.paintOrder&&t.push(`paint-order="${r(e.paintOrder)}"`),void 0!==e.opacity&&t.push(`opacity="${r(e.opacity)}"`),t.length>0?` ${t.join(" ")}`:""}(i);switch(t.kind){case"rect":return[`${o}<rect x="${ee(t.x,"rect.x")}" y="${ee(t.y,"rect.y")}" width="${ee(t.width,"rect.width")}" height="${ee(t.height,"rect.height")}"${void 0!==t.rx?` rx="${ee(t.rx,"rect.rx")}"`:""}${void 0!==t.ry?` ry="${ee(t.ry,"rect.ry")}"`:""}${n} />`];case"circle":return[`${o}<circle cx="${ee(t.cx,"circle.cx")}" cy="${ee(t.cy,"circle.cy")}" r="${ee(t.r,"circle.r")}"${n} />`];case"ellipse":return[`${o}<ellipse cx="${ee(t.cx,"ellipse.cx")}" cy="${ee(t.cy,"ellipse.cy")}" rx="${ee(t.rx,"ellipse.rx")}" ry="${ee(t.ry,"ellipse.ry")}"${n} />`];case"line":return[`${o}<line x1="${ee(t.x1,"line.x1")}" y1="${ee(t.y1,"line.y1")}" x2="${ee(t.x2,"line.x2")}" y2="${ee(t.y2,"line.y2")}"${n} />`];case"polygon":return[`${o}<polygon points="${er(t.points)}"${n} />`];case"polyline":return[`${o}<polyline points="${er(t.points)}"${n} />`];case"path":return[`${o}<path d="${r(t.d)}"${n} />`];case"compound":return t.children.flatMap(r=>e(r,i,o))}}(e.geometry,e.paint,o),`${i}</marker>`].join(`
19
+ `)}function W(e,r,t,n,s){let a=void 0===t.font?void 0:A(t.font);for(let e of["bg","fg","line","accent","muted","surface","border"]){let r=t[e];void 0!==r&&function(e,r){if(void 0===j(e))throw Error(`${r} must be a safe non-fetching CSS color or var() reference`)}(r,e)}let l=[`--bg:${t.bg}`,`--fg:${t.fg}`,t.line?`--line:${t.line}`:"",t.accent?`--accent:${t.accent}`:"",t.muted?`--muted:${t.muted}`:"",t.surface?`--surface:${t.surface}`:"",t.border?`--border:${t.border}`:"",a?`--font:${a}`:""].filter(Boolean).join(";"),f=s&&("width"in s||"height"in s||"style"in s||"attrs"in s)?s:void 0,u=f?.attrs??s??{},c=`${l}${n?"":";background:var(--bg)"}${f?.style?`;${f.style}`:""}`,d=Object.entries(u).filter(([,e])=>void 0!==e).map(([e,r])=>`${e}="${r}"`).join(" "),g=d?` ${d}`:"";return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${i(e)} ${i(r)}" width="${o("width",String(f?.width??e))}" height="${o("height",String(f?.height??r))}" style="${c}"${g}>`}var D=new r(64,262144);function G(r){let t=[r.bg,r.fg,r.line,r.accent,r.muted,r.surface,r.border].join(`
20
+ `),i=D.get(t);if(i)return i;let o=Object.freeze(function(r){let{bg:t,fg:i}=r,o=r.surface??c(i,t,3),n=c(i,t,5),s=c(i,t,10),a=I(r,[t,o,n,s]),{text:l,textSec:f,textMuted:h,textFaint:p}=a.legible?a:I(r,[t,n,s]);return{bg:t,fg:i,text:l,textSec:f,textMuted:h,textFaint:p,line:g(r.line??c(i,t,50),t,3,l),arrow:g(r.accent??c(i,t,85),t,3,l),nodeFill:o,nodeStroke:function(r,t,i){let o=e(r),n=e(t);if(!o||!n||1!==o[3]||1!==n[3])return r;let s=u(o[0],o[1],o[2]),a=u(n[0],n[1],n[2]);if((d(s,a)??1/0)>=v)return r;let l=e(i);return g(s,a,v,l?.[3]===1?u(l[0],l[1],l[2]):void 0)}(r.border??c(i,t,20),t,l),groupFill:t,groupHdr:n,innerStroke:c(i,t,12),keyBadge:s}}(H(r)??r)),n=2*t.length+E(o,262144);return D.set(t,o,n),o}function H(r){if(p(r.bg)&&p(r.fg))return r;let t=e(r.bg),i=e(r.fg);if(!(!t||!i||1!==t[3]||1!==i[3]))return{...r,bg:u(t[0],t[1],t[2]),fg:u(i[0],i[1],i[2])}}function I(e,r){let{bg:t,fg:i}=e,o=U(i,r),n=U(e.muted??c(i,t,78),r,o),s=U(e.muted??c(i,t,66),r,o),a=U(c(i,t,54),r,o,v),l=(e,t)=>r.every(r=>(d(e,r)??1/0)>=t),f=[o,n,s].every(e=>l(e,h))&&l(a,v);return{text:o,textSec:n,textMuted:s,textFaint:a,legible:f}}function U(e,r,t,i=h){let o=e;for(let e=0;e<2;e++)for(let e of r)o=g(o,e,i,t);return o}function X(e){if(!H(e))return;let r=G(e),t=new Map;return t.set("bg",r.bg),t.set("fg",r.fg),e.line&&p(e.line)&&t.set("line",e.line),e.accent&&p(e.accent)&&t.set("accent",e.accent),e.muted&&p(e.muted)&&t.set("muted",e.muted),e.surface&&p(e.surface)&&t.set("surface",e.surface),e.border&&p(e.border)&&t.set("border",e.border),t.set("_text",r.text),t.set("_text-sec",r.textSec),t.set("_text-muted",r.textMuted),t.set("_text-faint",r.textFaint),t.set("_line",r.line),t.set("_arrow",r.arrow),t.set("_node-fill",r.nodeFill),t.set("_node-stroke",r.nodeStroke),t.set("_group-fill",r.groupFill),t.set("_group-hdr",r.groupHdr),t.set("_inner-stroke",r.innerStroke),t.set("_key-badge",r.keyBadge),t}function K(e,r){if(p(e))return e;let t=e.match(/^var\(\s*--([\w-]+)\s*(?:,\s*(#[0-9a-fA-F]{3,8})\s*)?\)$/);if(t)return X(r)?.get(t[1])??t[2]}function P(r){let t=new Map;for(let i of r.styleContexts)for(let o of r.source.slice(i.start,i.end).matchAll(/--([\w-]+)\s*:\s*([^;{}]+)/g)){let r=o[2].trim();("none"===r||"currentcolor"===r.toLowerCase()||e(r)||r.startsWith("var(")&&j(r))&&t.set(o[1],r)}return t}function V(e,r){let t=Z(r,e);return t?q(e,t):e}function J(e,r){return T(t(e),Z(r))}function N(){let e,r;return(i,o)=>{let n=t(i);if(o!==e){let t=Object.isFrozen(o)?Object.getOwnPropertyDescriptors(o):void 0;if(!(t&&Reflect.ownKeys(t).every(e=>"value"in t[e])&&["bg","fg","line","accent","muted","surface","border","font"].every(e=>{let r=t[e];return Object.hasOwn(t,e)&&(void 0===r.value||"string"==typeof r.value)})))return T(n,Z(o));r=Z(o),e=o}return T(n,r)}}function T(e,r){let t=r?r.resolveCss(e,r.vars,10):e;return r&&/[<"]/.test(t)?s(n(q(`<rect fill="${e}"/>`,r))[0],"fill"):m(t)}function Z(e,r){let t=X(e);if(!t)return;let i=G(e),o=void 0===r?void 0:a(r),n=o?P(o):new Map;for(let[e,r]of t)(e.startsWith("_")||void 0!==r&&!n.has(e))&&n.set(e,r);n.set("bg",i.bg),n.set("fg",i.fg);let s=new Set(["font"]);for(let r of[e.font,e.line,e.accent,e.muted,e.surface,e.border])if(r)for(let e of r.matchAll(/var\(\s*--([\w-]+)/g))n.has(e[1])||s.add(e[1]);return{vars:n,SKIP_VARS:s,resolveCss:(e,r,t)=>{let o=e;for(let e=0;e<t;e++){let e=o;if((o=(o=(o=o.replace(/var\(--([\w-]+)\)/g,(e,t)=>s.has(t)?e:r.get(t)??e)).replace(/var\(--([\w-]+),\s*([^()]+)\)/g,(e,t,i)=>s.has(t)?e:r.get(t)??i.trim())).replace(/color-mix\(in srgb,\s*(#[0-9a-fA-F]{3,8})\s+(\d+(?:\.\d+)?)%,\s*(#[0-9a-fA-F]{3,8}|transparent)\)/g,(e,r,t,o)=>c(r,"transparent"===o?i.bg:o,parseFloat(t))))===e)break}return o},projection:o}}function q(e,r){let{vars:t,SKIP_VARS:i,resolveCss:o}=r,n=r.projection??a(e),s=new Map,l=f(e,e=>{let r=s.get(e);if(void 0!==r)return r;let i=o(e,t,10);return s.set(e,i),i},n),u=l.includes("color-mix(");if(!u){for(let e of l.matchAll(/var\((?=\s*--([\w-]+))/g))if(!i.has(e[1])){u=!0;break}}if(!u)return l;let c=a(l),d=P(c);if(d.size>0)for(let e=0;e<5;e++){let e=f(l,e=>o(e,d,1),c);if(e===l)break;c=a(l=e)}return l}function Y(e,r,t,i,o){let n={};return o?(n.role="img",n["aria-roledescription"]=o):(e||r)&&(n.role="img"),e&&(n["aria-labelledby"]=t),r&&(n["aria-describedby"]=i),n}function Q(e,r,t,i,o){if("start"!==t&&"end"!==t)throw TypeError("Arrow endpoint must be start or end");let{width:n,height:s}=r,a="start"===t?0:n,l="start"===t?n:0,f={id:e,shape:"arrow",size:{width:n,height:s},ref:{x:a,y:s/2},...o?{units:o}:{},orient:"auto",geometry:{kind:"polygon",points:[{x:l,y:0},{x:a,y:s/2},{x:l,y:s}]},paint:i};return et(f),f}function ee(e,r){if(!Number.isFinite(e))throw Error(`Marker ${r} must be finite`);return e}function er(e){return e.map(e=>`${ee(e.x,"point.x")} ${ee(e.y,"point.y")}`).join(", ")}function et(e){if("string"!=typeof e.id||""===e.id.trim())throw Error("Marker id must not be empty");if(!["arrow","open-arrow","circle","cross","triangle","diamond","diamond-open"].includes(String(e.shape)))throw Error(`Marker "${e.id}" has an unknown shape`);if(!e.geometry)throw Error(`Marker "${e.id}" must declare geometry`);if(!e.size)throw Error(`Marker "${e.id}" must declare marker size`);if(!e.ref)throw Error(`Marker "${e.id}" must declare a reference point`);if(!(e.size.width>0)||!(e.size.height>0))throw Error(`Marker "${e.id}" size must be positive`);if(ee(e.size.width,"size.width"),ee(e.size.height,"size.height"),ee(e.ref.x,"ref.x"),ee(e.ref.y,"ref.y"),void 0!==e.units&&"strokeWidth"!==e.units&&"userSpaceOnUse"!==e.units)throw Error(`Marker "${e.id}" units must be strokeWidth or userSpaceOnUse`);if("number"==typeof e.orient)ee(e.orient,"orient");else if(void 0!==e.orient&&"auto"!==e.orient&&"auto-start-reverse"!==e.orient)throw Error(`Marker "${e.id}" orient must be auto, auto-start-reverse, or a finite angle`);if(void 0!==e.overflow&&"hidden"!==e.overflow&&"visible"!==e.overflow)throw Error(`Marker "${e.id}" overflow must be hidden or visible`);if(e.viewBox&&(ee(e.viewBox.x,"viewBox.x"),ee(e.viewBox.y,"viewBox.y"),ee(e.viewBox.width,"viewBox.width"),ee(e.viewBox.height,"viewBox.height"),!(e.viewBox.width>0)||!(e.viewBox.height>0)))throw Error(`Marker "${e.id}" viewBox must be positive`)}function ei(e,r={}){et(e);let i=" ".repeat(r.indent??2),o=`${i} `,n=e.units,s=e.orient??"auto",a=[`id="${t(e.id)}"`,`markerWidth="${ee(e.size.width,"size.width")}"`,`markerHeight="${ee(e.size.height,"size.height")}"`,`refX="${ee(e.ref.x,"ref.x")}"`,`refY="${ee(e.ref.y,"ref.y")}"`,`orient="${t(String(s))}"`,...n?[`markerUnits="${t(n)}"`]:[],...e.viewBox?[`viewBox="${ee(e.viewBox.x,"viewBox.x")} ${ee(e.viewBox.y,"viewBox.y")} ${ee(e.viewBox.width,"viewBox.width")} ${ee(e.viewBox.height,"viewBox.height")}"`]:[],...e.overflow?[`overflow="${t(e.overflow)}"`]:[]];return[`${i}<marker ${a.join(" ")}>`,...function e(r,i,o){let n=function(e){if(!e)return"";let r=[];return void 0!==e.fill&&r.push(`fill="${t(e.fill)}"`),void 0!==e.stroke&&r.push(`stroke="${t(e.stroke)}"`),void 0!==e.strokeWidth&&r.push(`stroke-width="${t(e.strokeWidth)}"`),void 0!==e.strokeDasharray&&r.push(`stroke-dasharray="${t(e.strokeDasharray)}"`),void 0!==e.strokeDashoffset&&r.push(`stroke-dashoffset="${t(e.strokeDashoffset)}"`),void 0!==e.strokeLinecap&&r.push(`stroke-linecap="${t(e.strokeLinecap)}"`),void 0!==e.strokeLinejoin&&r.push(`stroke-linejoin="${t(e.strokeLinejoin)}"`),void 0!==e.strokeMiterlimit&&r.push(`stroke-miterlimit="${t(e.strokeMiterlimit)}"`),void 0!==e.vectorEffect&&r.push(`vector-effect="${t(e.vectorEffect)}"`),void 0!==e.paintOrder&&r.push(`paint-order="${t(e.paintOrder)}"`),void 0!==e.opacity&&r.push(`opacity="${t(e.opacity)}"`),r.length>0?` ${r.join(" ")}`:""}(i);switch(r.kind){case"rect":return[`${o}<rect x="${ee(r.x,"rect.x")}" y="${ee(r.y,"rect.y")}" width="${ee(r.width,"rect.width")}" height="${ee(r.height,"rect.height")}"${void 0!==r.rx?` rx="${ee(r.rx,"rect.rx")}"`:""}${void 0!==r.ry?` ry="${ee(r.ry,"rect.ry")}"`:""}${n} />`];case"circle":return[`${o}<circle cx="${ee(r.cx,"circle.cx")}" cy="${ee(r.cy,"circle.cy")}" r="${ee(r.r,"circle.r")}"${n} />`];case"ellipse":return[`${o}<ellipse cx="${ee(r.cx,"ellipse.cx")}" cy="${ee(r.cy,"ellipse.cy")}" rx="${ee(r.rx,"ellipse.rx")}" ry="${ee(r.ry,"ellipse.ry")}"${n} />`];case"line":return[`${o}<line x1="${ee(r.x1,"line.x1")}" y1="${ee(r.y1,"line.y1")}" x2="${ee(r.x2,"line.x2")}" y2="${ee(r.y2,"line.y2")}"${n} />`];case"polygon":return[`${o}<polygon points="${er(r.points)}"${n} />`];case"polyline":return[`${o}<polyline points="${er(r.points)}"${n} />`];case"path":return[`${o}<path d="${t(r.d)}"${n} />`];case"compound":return r.children.flatMap(r=>e(r,i,o))}}(e.geometry,e.paint,o),`${i}</marker>`].join(`
21
21
  `)}function eo(e,r={}){let t=new Set;for(let r of e){if(t.has(r.id))throw Error(`Duplicate marker resource "${r.id}"`);t.add(r.id)}return e.map(e=>ei(e,r)).join(`
22
- `)}export{k as a,B as b,z as c,S as d,j as e,F as f,E as g,C as h,O as i,R as j,D as k,G as l,N as m,Z as n,q as o,K as p,Q as q,Y as r,et as s,ei as t,eo as u};
22
+ `)}export{k as a,B as b,z as c,S as d,j as e,F as f,E as g,C as h,O as i,L as j,W as k,G as l,K as m,V as n,J as o,N as p,Y as q,Q as r,et as s,ei as t,eo as u};
@@ -1,3 +1,3 @@
1
- import{i as t,j as e,k as o}from"./chunk-TYZOZXUJ.js";function h(h,n,i,r,s,a){let d=r.font??"Inter",p=t(r);return{family:n,width:i.width,height:i.height,colors:r,transparent:s,parts:[h.documentOpen({id:"prelude",width:i.width,height:i.height,colors:r,transparent:s,font:d,hasMonoFont:!1},`${o(i.width,i.height,r,s)}
1
+ import{i as t,j as e,k as o}from"./chunk-37ORXEBA.js";function h(h,n,i,r,s,a){let d=r.font??"Inter",p=t(r);return{family:n,width:i.width,height:i.height,colors:r,transparent:s,parts:[h.documentOpen({id:"prelude",width:i.width,height:i.height,colors:r,transparent:s,font:d,hasMonoFont:!1},`${o(i.width,i.height,r,s)}
2
2
  ${e(d,!1,r.shadow,r.embedFontImport)}${p?`
3
3
  <defs>${p}</defs>`:""}`),...a,h.documentClose()]}}export{h as a};
@@ -1 +1 @@
1
- import{f as e}from"./chunk-TYZOZXUJ.js";var t=(e,t)=>({expected:e,valid:t}),i=t("a finite positive number",e=>"number"==typeof e&&Number.isFinite(e)&&e>0),n=t("a finite non-negative number",e=>"number"==typeof e&&Number.isFinite(e)&&e>=0),r=t("a finite number",e=>"number"==typeof e&&Number.isFinite(e)),a=t("a boolean",e=>"boolean"==typeof e),o=t("a string",e=>"string"==typeof e),s=t("a non-empty string",e=>"string"==typeof e&&e.trim().length>0),m=t("a CSS font-family list without url(), @import or other functions besides var()",t=>void 0!==e(t)),f=t("a non-empty array of strings",e=>Array.isArray(e)&&e.length>0&&e.every(e=>"string"==typeof e)),u=(...e)=>t(`one of: ${e.join(", ")}`,t=>"string"==typeof t&&e.includes(t)),p=(...e)=>t(`one of: ${e.join(", ")} (case-insensitive)`,t=>"string"==typeof t&&e.some(e=>e.toLowerCase()===t.toLowerCase())),b=(e,i,n=!0)=>t(`a finite number ${n?"from":"greater than"} ${e} through ${i}`,t=>"number"==typeof t&&Number.isFinite(t)&&(n?t>=e:t>e)&&t<=i),y=e=>t(`a finite positive number no greater than ${e}`,t=>"number"==typeof t&&Number.isFinite(t)&&t>0&&t<=e),g=e=>t(`a finite non-negative number no greater than ${e}`,t=>"number"==typeof t&&Number.isFinite(t)&&t>=0&&t<=e),l=t("a finite positive number or non-empty CSS size string",e=>"number"==typeof e&&Number.isFinite(e)&&e>0||"string"==typeof e&&e.trim().length>0),h=(e,i=!1)=>t(`a numeric value${i?` greater than ${e}`:` of at least ${e}`}`,t=>{let n="number"==typeof t?t:"string"==typeof t&&/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:px)?$/i.test(t.trim())?Number.parseFloat(t):NaN;return Number.isFinite(n)&&(i?n>e:n>=e)});export{t as a,i as b,n as c,r as d,a as e,o as f,s as g,m as h,f as i,u as j,p as k,b as l,y as m,g as n,l as o,h as p};
1
+ import{f as e}from"./chunk-37ORXEBA.js";var t=(e,t)=>({expected:e,valid:t}),i=t("a finite positive number",e=>"number"==typeof e&&Number.isFinite(e)&&e>0),n=t("a finite non-negative number",e=>"number"==typeof e&&Number.isFinite(e)&&e>=0),r=t("a finite number",e=>"number"==typeof e&&Number.isFinite(e)),a=t("a boolean",e=>"boolean"==typeof e),o=t("a string",e=>"string"==typeof e),s=t("a non-empty string",e=>"string"==typeof e&&e.trim().length>0),m=t("a CSS font-family list without url(), @import or other functions besides var()",t=>void 0!==e(t)),f=t("a non-empty array of strings",e=>Array.isArray(e)&&e.length>0&&e.every(e=>"string"==typeof e)),u=(...e)=>t(`one of: ${e.join(", ")}`,t=>"string"==typeof t&&e.includes(t)),p=(...e)=>t(`one of: ${e.join(", ")} (case-insensitive)`,t=>"string"==typeof t&&e.some(e=>e.toLowerCase()===t.toLowerCase())),b=(e,i,n=!0)=>t(`a finite number ${n?"from":"greater than"} ${e} through ${i}`,t=>"number"==typeof t&&Number.isFinite(t)&&(n?t>=e:t>e)&&t<=i),y=e=>t(`a finite positive number no greater than ${e}`,t=>"number"==typeof t&&Number.isFinite(t)&&t>0&&t<=e),g=e=>t(`a finite non-negative number no greater than ${e}`,t=>"number"==typeof t&&Number.isFinite(t)&&t>=0&&t<=e),l=t("a finite positive number or non-empty CSS size string",e=>"number"==typeof e&&Number.isFinite(e)&&e>0||"string"==typeof e&&e.trim().length>0),h=(e,i=!1)=>t(`a numeric value${i?` greater than ${e}`:` of at least ${e}`}`,t=>{let n="number"==typeof t?t:"string"==typeof t&&/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:px)?$/i.test(t.trim())?Number.parseFloat(t):NaN;return Number.isFinite(n)&&(i?n>e:n>=e)});export{t as a,i as b,n as c,r as d,a as e,o as f,s as g,m as h,f as i,u as j,p as k,b as l,y as m,g as n,l as o,h as p};