@jaabiri/bmad-studio 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/index.js +1996 -0
  2. package/package.json +53 -0
  3. package/ui-dist/assets/_baseUniq-B_n4QFRL.js +1 -0
  4. package/ui-dist/assets/_workflowId.lazy-FP56r40x.js +12 -0
  5. package/ui-dist/assets/arc-D8SlLs2L.js +1 -0
  6. package/ui-dist/assets/architectureDiagram-Q4EWVU46-BhKy9qBN.js +36 -0
  7. package/ui-dist/assets/blockDiagram-DXYQGD6D-DHQ9TuqQ.js +132 -0
  8. package/ui-dist/assets/c4Diagram-AHTNJAMY-BTPifryG.js +10 -0
  9. package/ui-dist/assets/channel-qsfw27Pz.js +1 -0
  10. package/ui-dist/assets/chevron-right-C3gMQbwP.js +1 -0
  11. package/ui-dist/assets/chunk-4BX2VUAB-DJJtjuLz.js +1 -0
  12. package/ui-dist/assets/chunk-4TB4RGXK-ONYWO0S_.js +206 -0
  13. package/ui-dist/assets/chunk-55IACEB6-CKub8aEM.js +1 -0
  14. package/ui-dist/assets/chunk-EDXVE4YY-c2zVzCwr.js +1 -0
  15. package/ui-dist/assets/chunk-FMBD7UC4-CnUcBH4x.js +15 -0
  16. package/ui-dist/assets/chunk-OYMX7WX6-DI7UEGCn.js +231 -0
  17. package/ui-dist/assets/chunk-QZHKN3VN-Dlq9g4FR.js +1 -0
  18. package/ui-dist/assets/chunk-YZCP3GAM-CpE3yTZs.js +1 -0
  19. package/ui-dist/assets/classDiagram-6PBFFD2Q-C6zNtups.js +1 -0
  20. package/ui-dist/assets/classDiagram-v2-HSJHXN6E-C6zNtups.js +1 -0
  21. package/ui-dist/assets/clone-lFRGLeBs.js +1 -0
  22. package/ui-dist/assets/cose-bilkent-S5V4N54A-BcwRulTx.js +1 -0
  23. package/ui-dist/assets/cytoscape.esm-5J0xJHOV.js +321 -0
  24. package/ui-dist/assets/dagre-KV5264BT-kD6LwyTY.js +4 -0
  25. package/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  26. package/ui-dist/assets/diagram-5BDNPKRD-7BtLyPf7.js +10 -0
  27. package/ui-dist/assets/diagram-G4DWMVQ6-BeU21gzV.js +24 -0
  28. package/ui-dist/assets/diagram-MMDJMWI5-BcZe7DAu.js +43 -0
  29. package/ui-dist/assets/diagram-TYMM5635-30qZErT6.js +24 -0
  30. package/ui-dist/assets/erDiagram-SMLLAGMA-DZzYsGd-.js +85 -0
  31. package/ui-dist/assets/flowDiagram-DWJPFMVM-CEyo_5fY.js +162 -0
  32. package/ui-dist/assets/ganttDiagram-T4ZO3ILL-CdxjNHta.js +292 -0
  33. package/ui-dist/assets/gitGraphDiagram-UUTBAWPF-OI6nqhRA.js +106 -0
  34. package/ui-dist/assets/graph-CJuDDeAK.js +1 -0
  35. package/ui-dist/assets/index-1QFQcLya.js +56 -0
  36. package/ui-dist/assets/index-BvVxlmMK.js +29 -0
  37. package/ui-dist/assets/index-DPA4A8ah.js +9 -0
  38. package/ui-dist/assets/index-DbkfLjQe.js +1 -0
  39. package/ui-dist/assets/index-cvXQBc8Y.css +1 -0
  40. package/ui-dist/assets/infoDiagram-42DDH7IO-Bgvk_VTG.js +2 -0
  41. package/ui-dist/assets/init-Gi6I4Gst.js +1 -0
  42. package/ui-dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  43. package/ui-dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  44. package/ui-dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  45. package/ui-dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  46. package/ui-dist/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  47. package/ui-dist/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  48. package/ui-dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  49. package/ui-dist/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  50. package/ui-dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  51. package/ui-dist/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  52. package/ui-dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  53. package/ui-dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  54. package/ui-dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  55. package/ui-dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  56. package/ui-dist/assets/ishikawaDiagram-UXIWVN3A-Cz2e8g4P.js +70 -0
  57. package/ui-dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  58. package/ui-dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  59. package/ui-dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  60. package/ui-dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  61. package/ui-dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  62. package/ui-dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  63. package/ui-dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  64. package/ui-dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  65. package/ui-dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  66. package/ui-dist/assets/journeyDiagram-VCZTEJTY-B7EdpiRX.js +139 -0
  67. package/ui-dist/assets/kanban-definition-6JOO6SKY-DiUf0qIs.js +89 -0
  68. package/ui-dist/assets/katex-BzTkCl_B.js +265 -0
  69. package/ui-dist/assets/layout-BhnDrrIT.js +1 -0
  70. package/ui-dist/assets/linear-BDwQpyTv.js +1 -0
  71. package/ui-dist/assets/mermaid.core-BR4XzyQe.js +303 -0
  72. package/ui-dist/assets/min-BJhF9j1-.js +1 -0
  73. package/ui-dist/assets/mindmap-definition-QFDTVHPH-D05ylhL6.js +96 -0
  74. package/ui-dist/assets/minus-M76p8_Mr.js +1 -0
  75. package/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
  76. package/ui-dist/assets/pieDiagram-DEJITSTG-Bn-HlZLK.js +30 -0
  77. package/ui-dist/assets/proxy-B7DZsNQK.js +1 -0
  78. package/ui-dist/assets/quadrantDiagram-34T5L4WZ-BElRpUWb.js +7 -0
  79. package/ui-dist/assets/requirementDiagram-MS252O5E-CHPWxs3l.js +84 -0
  80. package/ui-dist/assets/sankeyDiagram-XADWPNL6-tlvafq0R.js +10 -0
  81. package/ui-dist/assets/sequenceDiagram-FGHM5R23-FgarYdCI.js +157 -0
  82. package/ui-dist/assets/sprint.lazy-CPHJj3lM.js +1 -0
  83. package/ui-dist/assets/stateDiagram-FHFEXIEX-BMEGKFsF.js +1 -0
  84. package/ui-dist/assets/stateDiagram-v2-QKLJ7IA2-BzoNePd4.js +1 -0
  85. package/ui-dist/assets/timeline-definition-GMOUNBTQ-REImLpEb.js +120 -0
  86. package/ui-dist/assets/timeline.lazy-BY5ZUkY-.js +1 -0
  87. package/ui-dist/assets/tooltip-DA8LKiqR.js +1 -0
  88. package/ui-dist/assets/validators-2LNt2eLU.js +1 -0
  89. package/ui-dist/assets/vennDiagram-DHZGUBPP-DcFGfj6d.js +34 -0
  90. package/ui-dist/assets/wardley-RL74JXVD-B9TLQgzI.js +162 -0
  91. package/ui-dist/assets/wardleyDiagram-NUSXRM2D-Hcgh3jSX.js +20 -0
  92. package/ui-dist/assets/x-CPRWsjef.js +1 -0
  93. package/ui-dist/assets/xychartDiagram-5P7HB3ND-BTe2ICiH.js +7 -0
  94. package/ui-dist/favicon.ico +0 -0
  95. package/ui-dist/index.html +32 -0
  96. package/ui-dist/logo192.png +0 -0
  97. package/ui-dist/logo512.png +0 -0
  98. package/ui-dist/manifest.json +25 -0
  99. package/ui-dist/robots.txt +3 -0
@@ -0,0 +1,120 @@
1
+ import{_ as o,D as pt,V as Ct,W as Rt,X as Wt,c as gt,l as E,I as Pt,N as Bt,Y as ft,d as U,C as Vt,$ as Ft,z as zt}from"./mermaid.core-BR4XzyQe.js";import{d as ot}from"./arc-D8SlLs2L.js";import"./index-1QFQcLya.js";var tt=(function(){var e=o(function(k,s,d,l){for(d=d||{},l=k.length;l--;d[k[l]]=s);return d},"o"),t=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],h=[1,15],c=[1,16],a=[1,19],f=[1,20],g={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:o(function(s,d,l,p,x,u,S){var v=u.length-1;switch(x){case 1:return u[v-1];case 3:p.setDirection("LR");break;case 4:p.setDirection("TD");break;case 5:this.$=[];break;case 6:u[v-1].push(u[v]),this.$=u[v-1];break;case 7:case 8:this.$=u[v];break;case 9:case 10:this.$=[];break;case 11:p.getCommonDb().setDiagramTitle(u[v].substr(6)),this.$=u[v].substr(6);break;case 12:this.$=u[v].trim(),p.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=u[v].trim(),p.getCommonDb().setAccDescription(this.$);break;case 15:p.addSection(u[v].substr(8)),this.$=u[v].substr(8);break;case 18:p.addTask(u[v],0,""),this.$=u[v];break;case 19:p.addEvent(u[v].substr(2)),this.$=u[v];break}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(t,[2,5],{5:6}),e(t,[2,2]),e(t,[2,3]),e(t,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:n,15:i,17:r,19:h,20:c,21:17,22:18,23:a,24:f},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:n,15:i,17:r,19:h,20:c,21:17,22:18,23:a,24:f},e(t,[2,8]),e(t,[2,9]),e(t,[2,11]),{16:[1,22]},{18:[1,23]},e(t,[2,14]),e(t,[2,15]),e(t,[2,16]),e(t,[2,17]),e(t,[2,18]),e(t,[2,19]),e(t,[2,7]),e(t,[2,12]),e(t,[2,13])],defaultActions:{},parseError:o(function(s,d){if(d.recoverable)this.trace(s);else{var l=new Error(s);throw l.hash=d,l}},"parseError"),parse:o(function(s){var d=this,l=[0],p=[],x=[null],u=[],S=this.table,v="",I=0,C=0,W=2,O=1,L=u.slice.call(arguments,1),w=Object.create(this.lexer),H={yy:{}};for(var V in this.yy)Object.prototype.hasOwnProperty.call(this.yy,V)&&(H.yy[V]=this.yy[V]);w.setInput(s,H.yy),H.yy.lexer=w,H.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var F=w.yylloc;u.push(F);var K=w.options&&w.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(A){l.length=l.length-2*A,x.length=x.length-A,u.length=u.length-A}o(N,"popStack");function b(){var A;return A=p.pop()||w.lex()||O,typeof A!="number"&&(A instanceof Array&&(p=A,A=p.pop()),A=d.symbols_[A]||A),A}o(b,"lex");for(var _,$,T,P,R={},G,B,Z,j;;){if($=l[l.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((_===null||typeof _>"u")&&(_=b()),T=S[$]&&S[$][_]),typeof T>"u"||!T.length||!T[0]){var Y="";j=[];for(G in S[$])this.terminals_[G]&&G>W&&j.push("'"+this.terminals_[G]+"'");w.showPosition?Y="Parse error on line "+(I+1)+`:
2
+ `+w.showPosition()+`
3
+ Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Y="Parse error on line "+(I+1)+": Unexpected "+(_==O?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Y,{text:w.match,token:this.terminals_[_]||_,line:w.yylineno,loc:F,expected:j})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+_);switch(T[0]){case 1:l.push(_),x.push(w.yytext),u.push(w.yylloc),l.push(T[1]),_=null,C=w.yyleng,v=w.yytext,I=w.yylineno,F=w.yylloc;break;case 2:if(B=this.productions_[T[1]][1],R.$=x[x.length-B],R._$={first_line:u[u.length-(B||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(B||1)].first_column,last_column:u[u.length-1].last_column},K&&(R._$.range=[u[u.length-(B||1)].range[0],u[u.length-1].range[1]]),P=this.performAction.apply(R,[v,C,I,H.yy,T[1],x,u].concat(L)),typeof P<"u")return P;B&&(l=l.slice(0,-1*B*2),x=x.slice(0,-1*B),u=u.slice(0,-1*B)),l.push(this.productions_[T[1]][0]),x.push(R.$),u.push(R._$),Z=S[l[l.length-2]][l[l.length-1]],l.push(Z);break;case 3:return!0}}return!0},"parse")},m=(function(){var k={EOF:1,parseError:o(function(d,l){if(this.yy.parser)this.yy.parser.parseError(d,l);else throw new Error(d)},"parseError"),setInput:o(function(s,d){return this.yy=d||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var d=s.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:o(function(s){var d=s.length,l=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var p=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===p.length?this.yylloc.first_column:0)+p[p.length-l.length].length-l[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-d]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(s){this.unput(this.match.slice(s))},"less"),pastInput:o(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var s=this.pastInput(),d=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
5
+ `+d+"^"},"showPosition"),test_match:o(function(s,d){var l,p,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),p=s[0].match(/(?:\r\n?|\n).*/g),p&&(this.yylineno+=p.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:p?p[p.length-1].length-p[p.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(s[0].length),this.matched+=s[0],l=this.performAction.call(this,this.yy,this,d,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var u in x)this[u]=x[u];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,d,l,p;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),u=0;u<x.length;u++)if(l=this._input.match(this.rules[x[u]]),l&&(!d||l[0].length>d[0].length)){if(d=l,p=u,this.options.backtrack_lexer){if(s=this.test_match(l,x[u]),s!==!1)return s;if(this._backtrack){d=!1;continue}else return!1}else if(!this.options.flex)break}return d?(s=this.test_match(d,x[p]),s!==!1?s:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var d=this.next();return d||this.lex()},"lex"),begin:o(function(d){this.conditionStack.push(d)},"begin"),popState:o(function(){var d=this.conditionStack.length-1;return d>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(d){return d=this.conditionStack.length-1-Math.abs(d||0),d>=0?this.conditionStack[d]:"INITIAL"},"topState"),pushState:o(function(d){this.begin(d)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(d,l,p,x){switch(p){case 0:break;case 1:break;case 2:return 13;case 3:break;case 4:break;case 5:return 8;case 6:return 9;case 7:return 7;case 8:return 14;case 9:return this.begin("acc_title"),15;case 10:return this.popState(),"acc_title_value";case 11:return this.begin("acc_descr"),17;case 12:return this.popState(),"acc_descr_value";case 13:this.begin("acc_descr_multiline");break;case 14:this.popState();break;case 15:return"acc_descr_multiline_value";case 16:return 20;case 17:return 24;case 18:return 23;case 19:return 6;case 20:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline[ \t]+LR\b)/i,/^(?:timeline[ \t]+TD\b)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[14,15],inclusive:!1},acc_descr:{rules:[12],inclusive:!1},acc_title:{rules:[10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,11,13,16,17,18,19,20],inclusive:!0}}};return k})();g.lexer=m;function y(){this.yy={}}return o(y,"Parser"),y.prototype=g,g.Parser=y,new y})();tt.parser=tt;var Ot=tt,yt={};Vt(yt,{addEvent:()=>Tt,addSection:()=>_t,addTask:()=>Et,addTaskOrg:()=>$t,clear:()=>kt,default:()=>Gt,getCommonDb:()=>xt,getDirection:()=>bt,getSections:()=>wt,getTasks:()=>St,setDirection:()=>vt});var D="",mt=0,nt="LR",rt=[],q=[],X=[],xt=o(()=>Ft,"getCommonDb"),kt=o(function(){rt.length=0,q.length=0,D="",X.length=0,nt="LR",zt()},"clear"),vt=o(function(e){nt=e},"setDirection"),bt=o(function(){return nt},"getDirection"),_t=o(function(e){D=e,rt.push(e)},"addSection"),wt=o(function(){return rt},"getSections"),St=o(function(){let e=ct();const t=100;let n=0;for(;!e&&n<t;)e=ct(),n++;return q.push(...X),q},"getTasks"),Et=o(function(e,t,n){const i={id:mt++,section:D,type:D,task:e,score:t||0,events:n?[n]:[]};X.push(i)},"addTask"),Tt=o(function(e){X.find(n=>n.id===mt-1).events.push(e)},"addEvent"),$t=o(function(e){const t={section:D,type:D,description:e,task:e,classes:[]};q.push(t)},"addTaskOrg"),ct=o(function(){const e=o(function(n){return X[n].processed},"compileTask");let t=!0;for(const[n,i]of X.entries())e(n),t=t&&i.processed;return t},"compileTasks"),Gt={clear:kt,getCommonDb:xt,getDirection:bt,setDirection:vt,addSection:_t,getSections:wt,getTasks:St,addTask:Et,addTaskOrg:$t,addEvent:Tt},Nt=0,J=o(function(e,t){const n=e.append("rect");return n.attr("x",t.x),n.attr("y",t.y),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("width",t.width),n.attr("height",t.height),n.attr("rx",t.rx),n.attr("ry",t.ry),t.class!==void 0&&n.attr("class",t.class),n},"drawRect"),Dt=o(function(e,t){const i=e.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),r=e.append("g");r.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),r.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(f){const g=ot().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);f.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(h,"smile");function c(f){const g=ot().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);f.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(c,"sad");function a(f){f.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(a,"ambivalent"),t.score>3?h(r):t.score<3?c(r):a(r),i},"drawFace"),Xt=o(function(e,t){const n=e.append("circle");return n.attr("cx",t.cx),n.attr("cy",t.cy),n.attr("class","actor-"+t.pos),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("r",t.r),n.class!==void 0&&n.attr("class",n.class),t.title!==void 0&&n.append("title").text(t.title),n},"drawCircle"),It=o(function(e,t){const n=t.text.replace(/<br\s*\/?>/gi," "),i=e.append("text");i.attr("x",t.x),i.attr("y",t.y),i.attr("class","legend"),i.style("text-anchor",t.anchor),t.class!==void 0&&i.attr("class",t.class);const r=i.append("tspan");return r.attr("x",t.x+t.textMargin*2),r.text(n),i},"drawText"),Kt=o(function(e,t){function n(r,h,c,a,f){return r+","+h+" "+(r+c)+","+h+" "+(r+c)+","+(h+a-f)+" "+(r+c-f*1.2)+","+(h+a)+" "+r+","+(h+a)}o(n,"genPoints");const i=e.append("polygon");i.attr("points",n(t.x,t.y,50,20,7)),i.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,It(e,t)},"drawLabel"),Ut=o(function(e,t,n){const i=e.append("g"),r=st();r.x=t.x,r.y=t.y,r.fill=t.fill,r.width=n.width,r.height=n.height,r.class="journey-section section-type-"+t.num,r.rx=3,r.ry=3,J(i,r),Ht(n)(t.text,i,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+t.num},n,t.colour)},"drawSection"),et=-1,Zt=o(function(e,t,n,i){const r=t.x+n.width/2,h=e.append("g");et++,h.append("line").attr("id",i+"-task"+et).attr("x1",r).attr("y1",t.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Dt(h,{cx:r,cy:300+(5-t.score)*30,score:t.score});const a=st();a.x=t.x,a.y=t.y,a.fill=t.fill,a.width=n.width,a.height=n.height,a.class="task task-type-"+t.num,a.rx=3,a.ry=3,J(h,a),Ht(n)(t.task,h,a.x,a.y,a.width,a.height,{class:"task"},n,t.colour)},"drawTask"),jt=o(function(e,t){J(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),qt=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),st=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Ht=(function(){function e(r,h,c,a,f,g,m,y){const k=h.append("text").attr("x",c+f/2).attr("y",a+g/2+5).style("font-color",y).style("text-anchor","middle").text(r);i(k,m)}o(e,"byText");function t(r,h,c,a,f,g,m,y,k){const{taskFontSize:s,taskFontFamily:d}=y,l=r.split(/<br\s*\/?>/gi);for(let p=0;p<l.length;p++){const x=p*s-s*(l.length-1)/2,u=h.append("text").attr("x",c+f/2).attr("y",a).attr("fill",k).style("text-anchor","middle").style("font-size",s).style("font-family",d);u.append("tspan").attr("x",c+f/2).attr("dy",x).text(l[p]),u.attr("y",a+g/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(u,m)}}o(t,"byTspan");function n(r,h,c,a,f,g,m,y){const k=h.append("switch"),d=k.append("foreignObject").attr("x",c).attr("y",a).attr("width",f).attr("height",g).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(r),t(r,k,c,a,f,g,m,y),i(d,m)}o(n,"byFo");function i(r,h){for(const c in h)c in h&&r.attr(c,h[c])}return o(i,"_setTextAttrs"),function(r){return r.textPlacement==="fo"?n:r.textPlacement==="old"?e:t}})(),Jt=o(function(e,t){Nt=0,et=-1,e.append("defs").append("marker").attr("id",t+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");function it(e,t){e.each(function(){var n=U(this),i=n.text().split(/(\s+|<br>)/).reverse(),r,h=[],c=1.1,a=n.attr("y"),f=parseFloat(n.attr("dy")),g=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",f+"em");for(let m=0;m<i.length;m++)r=i[i.length-1-m],h.push(r),g.text(h.join(" ").trim()),(g.node().getComputedTextLength()>t||r==="<br>")&&(h.pop(),g.text(h.join(" ").trim()),r==="<br>"?h=[""]:h=[r],g=n.append("tspan").attr("x",0).attr("y",a).attr("dy",c+"em").text(r))})}o(it,"wrap");var Qt=o(function(e,t,n,i,r,h=!1){const{theme:c,look:a}=i,f=c?.includes("redux"),g=i?.themeVariables?.THEME_COLOR_LIMIT??12,m=n%g-1,y=e.append("g");t.section=m,y.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+m));const k=y.append("g"),s=y.append("g"),l=s.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),p=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;if(t.height=l.height+p*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,s.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),f&&s.attr("transform",`translate(${t.width/2}, ${h?t.padding/2+3:t.padding})`),te(k,t,m,r,i),a==="neo"&&(y.attr("data-look","neo"),f)){const x=c.includes("dark"),u=e.node()?.ownerSVGElement??e.node(),S=U(u),v=S.attr("id")??"",I=v?`${v}-drop-shadow`:"drop-shadow";if(S.select(`#${I}`).empty()){const C=S.select("defs");(C.empty()?S.append("defs"):C).append("filter").attr("id",I).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity",x?"0.2":"0.06").attr("flood-color",x?"#FFFFFF":"#000000")}}return t},"drawNode"),Yt=o(function(e,t,n){const i=e.append("g"),h=i.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),c=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),h.height+c*1.1*.5+t.padding},"getVirtualNodeHeight"),te=o(function(e,t,n,i,r){const{theme:h}=r,c=h?.includes("redux")?0:5,a=5,f=c>0?`M0 ${t.height-a} v${-t.height+2*a} q0,-${c},${c},-${c} h${t.width-2*a} q${c},0,${c},${c} v${t.height-a} H0 Z`:`M0 ${t.height-a} v${-(t.height-a)} h${t.width} v${t.height} H0 Z`;e.append("path").attr("id",i+"-node-"+Nt++).attr("class","node-bkg node-"+t.type).attr("d",f),h?.includes("redux")||e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),M={drawRect:J,drawCircle:Xt,drawSection:Ut,drawText:It,drawLabel:Kt,drawTask:Zt,drawBackgroundRect:jt,getTextObj:qt,getNoteRect:st,initGraphics:Jt,drawNode:Qt,getVirtualNodeHeight:Yt},ee=o(function(e,t,n,i){const r=gt(),{look:h,theme:c,themeVariables:a}=r,{useGradient:f,gradientStart:g,gradientStop:m}=a,y=r.timeline?.leftMargin??50;E.debug("timeline",i.db);const k=r.securityLevel;let s;k==="sandbox"&&(s=U("#i"+t));const l=(k==="sandbox"?U(s.nodes()[0].contentDocument.body):U("body")).select("#"+t);l.append("g");const p=i.db.getTasks(),x=i.db.getCommonDb().getDiagramTitle();E.debug("task",p),M.initGraphics(l,t);const u=i.db.getSections();E.debug("sections",u);let S=0,v=0,I=0,C=0,W=50+y,O=50;C=50;let L=0,w=!0;u.forEach(function(N){const b={number:L,descr:N,section:L,width:150,padding:20,maxHeight:S},_=M.getVirtualNodeHeight(l,b,r);E.debug("sectionHeight before draw",_),S=Math.max(S,_+20)});let H=0,V=0;E.debug("tasks.length",p.length);for(const[N,b]of p.entries()){const _={number:N,descr:b,section:b.section,width:150,padding:20,maxHeight:v},$=M.getVirtualNodeHeight(l,_,r);E.debug("taskHeight before draw",$),v=Math.max(v,$+20),H=Math.max(H,b.events.length);let T=0;for(const P of b.events){const R={descr:P,section:b.section,number:b.section,width:150,padding:20,maxHeight:50};T+=M.getVirtualNodeHeight(l,R,r)}b.events.length>0&&(T+=(b.events.length-1)*10),V=Math.max(V,T)}E.debug("maxSectionHeight before draw",S),E.debug("maxTaskHeight before draw",v),u&&u.length>0?u.forEach(N=>{const b=p.filter(P=>P.section===N),_={number:L,descr:N,section:L,width:200*Math.max(b.length,1)-50,padding:20,maxHeight:S};E.debug("sectionNode",_);const $=l.append("g"),T=M.drawNode($,_,L,r,t);E.debug("sectionNode output",T),$.attr("transform",`translate(${W}, ${C})`),O+=S+50,b.length>0&&lt(l,b,L,W,O,v,r,H,V,S,!1,t),W+=200*Math.max(b.length,1),O=C,L++}):(w=!1,lt(l,p,L,W,O,v,r,H,V,S,!0,t));const F=l.node().getBBox();if(E.debug("bounds",F),x&&l.append("text").text(x).attr("x",h==="neo"?F.x*2+y:F.width/2-y).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),I=w?S+v+150:v+100,l.append("g").attr("class","lineWrapper").append("line").attr("x1",y).attr("y1",I).attr("x2",F.width+3*y).attr("y2",I).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${t}-arrowhead)`),h==="neo"&&f&&c!=="neutral"){const N=l.select("defs"),_=(N.empty()?l.append("defs"):N).append("linearGradient").attr("id",l.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");_.append("stop").attr("offset","0%").attr("stop-color",g).attr("stop-opacity",1),_.append("stop").attr("offset","100%").attr("stop-color",m).attr("stop-opacity",1)}ft(void 0,l,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),lt=o(function(e,t,n,i,r,h,c,a,f,g,m,y){for(const k of t){const s={descr:k.task,section:n,number:n,width:150,padding:20,maxHeight:h};E.debug("taskNode",s);const d=e.append("g").attr("class","taskWrapper"),p=M.drawNode(d,s,n,c,y).height;if(E.debug("taskHeight after draw",p),d.attr("transform",`translate(${i}, ${r})`),h=Math.max(h,p),k.events){const x=e.append("g").attr("class","lineWrapper");let u=h;r+=100,u=u+ne(e,k.events,n,i,r,c,y),r-=100,x.append("line").attr("x1",i+190/2).attr("y1",r+h).attr("x2",i+190/2).attr("y2",r+h+100+f+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${y}-arrowhead)`).attr("stroke-dasharray","5,5")}i=i+200,m&&!c.timeline?.disableMulticolor&&n++}r=r-10},"drawTasks"),ne=o(function(e,t,n,i,r,h,c){let a=0;const f=r;r=r+100;for(const g of t){const m={descr:g,section:n,number:n,width:150,padding:20,maxHeight:50};E.debug("eventNode",m);const y=e.append("g").attr("class","eventWrapper"),s=M.drawNode(y,m,n,h,c,!0).height;a=a+s,y.attr("transform",`translate(${i}, ${r})`),r=r+10+s}return r=f,a},"drawEvents"),re={setConf:o(()=>{},"setConf"),draw:ee},Q=200,z=5,se=Q+z*2,at=Q+100,ie=at+z*2,Lt=10,ae=0,ht=20,Mt=20,dt=30,At=50,oe=o(function(e,t,n,i){const r=gt(),h=r.timeline?.leftMargin??50;E.debug("timeline",i.db);const c=Pt(t);c.append("g");const a=i.db.getTasks(),f=i.db.getCommonDb().getDiagramTitle();E.debug("task",a),M.initGraphics(c);const g=i.db.getSections();E.debug("sections",g);let m=0,y=0;const k=50+h;let s=50;const d=s,l=k,p=se+Mt,x=ie+At,u=l+p;let S=0;const v=g&&g.length>0,I=v?u:k+p,C=Math.max(50,p+x-z*2);g.forEach(function(N){const b={number:S,descr:N,section:S,width:C,padding:z,maxHeight:m},_=M.getVirtualNodeHeight(c,b,r);E.debug("sectionHeight before draw",_),m=Math.max(m,_)});let W=0;E.debug("tasks.length",a.length);for(const[N,b]of a.entries()){const _={number:N,descr:b,section:b.section,width:Q,padding:z,maxHeight:y},$=M.getVirtualNodeHeight(c,_,r);E.debug("taskHeight before draw",$),y=Math.max(y,$);let T=0;for(const P of b.events){const R={descr:P,section:b.section,number:b.section,width:at,padding:z,maxHeight:50};T+=M.getVirtualNodeHeight(c,R,r)}b.events.length>0&&(T+=(b.events.length-1)*Lt),W=Math.max(W,T)+ae}E.debug("maxSectionHeight before draw",m),E.debug("maxTaskHeight before draw",y);const L=Math.max(y,W)+dt;v?g.forEach(N=>{const b=a.filter(Z=>Z.section===N),_={number:S,descr:N,section:S,width:C,padding:z,maxHeight:m};E.debug("sectionNode",_);const $=c.append("g"),T=M.drawNode($,_,S,r);E.debug("sectionNode output",T);const P=I-p;$.attr("transform",`translate(${P}, ${s})`);const R=s+T.height+ht;b.length>0&&ut(c,b,S,I,R,y,r,L,!1);const G=b.length,B=T.height+ht+L*Math.max(G,1)-(G>0?dt*2:0);s+=B,S++}):ut(c,a,S,I,s,y,r,L,!0);let w=c.node()?.getBBox();if(!w)throw new Error("bbox not found");if(E.debug("bounds",w),f){if(c.append("text").text(f).attr("x",w.width/2-h).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),w=c.node()?.getBBox(),!w)throw new Error("bbox not found");E.debug("bounds after title",w)}const[H]=Bt(r.fontSize),V=(H??16)*2,F=(H??16)*.5+20,K=c.append("g").attr("class","lineWrapper");K.append("line").attr("x1",I).attr("y1",d-V).attr("x2",I).attr("y2",w.y+w.height+F).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),K.lower(),ft(void 0,c,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),ut=o(function(e,t,n,i,r,h,c,a,f){for(const g of t){const m={descr:g.task,section:n,number:n,width:Q,padding:z,maxHeight:h};E.debug("taskNode",m);const y=e.append("g").attr("class","taskWrapper"),k=M.drawNode(y,m,n,c),s=k.height;E.debug("taskHeight after draw",s);const d=i-Mt-k.width;if(y.attr("transform",`translate(${d}, ${r})`),h=Math.max(h,s),g.events&&g.events.length>0){const l=r,p=i+At;ce(e,g.events,n,i,p,l,c)}r=r+a,f&&!c.timeline?.disableMulticolor&&n++}},"drawTasks"),ce=o(function(e,t,n,i,r,h,c){let a=h;for(const f of t){const g={descr:f,section:n,number:n,width:at,padding:z,maxHeight:0};E.debug("eventNode",g);const m=e.append("g").attr("class","eventWrapper"),k=M.drawNode(m,g,n,c).height;m.attr("transform",`translate(${r}, ${a})`);const s=e.append("g").attr("class","lineWrapper"),d=a+k/2;s.append("line").attr("x1",i).attr("y1",d).attr("x2",r).attr("y2",d).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),a=a+k+Lt}return a-h},"drawEvents"),le={setConf:o(()=>{},"setConf"),draw:oe},he=o(e=>{const{theme:t}=pt(),n=t?.includes("dark"),i=t?.includes("color"),r=e.svgId?.replace(/^#/,"")??"",h=r?`url(#${r}-drop-shadow)`:e.dropShadow??"none";let c="";for(let a=0;a<e.THEME_COLOR_LIMIT;a++){const f=`${17-3*a}`,g=i?e.borderColorArray[a]:e.mainBkg,m=i?e.borderColorArray[a]:e.nodeBorder;c+=`
7
+ .section-${a-1} rect,
8
+ .section-${a-1} path,
9
+ .section-${a-1} circle {
10
+ fill: ${n&&i?e.mainBkg:g};
11
+ stroke: ${m};
12
+ stroke-width: ${e.strokeWidth};
13
+ filter: ${h};
14
+ }
15
+
16
+ .section-${a-1} text {
17
+ fill: ${e.nodeBorder};
18
+ font-weight: ${e.fontWeight}
19
+ }
20
+
21
+ .node-icon-${a-1} {
22
+ font-size: 40px;
23
+ color: ${e["cScaleLabel"+a]};
24
+ }
25
+
26
+ .section-edge-${a-1} {
27
+ stroke: ${e["cScale"+a]};
28
+ }
29
+
30
+ .edge-depth-${a-1} {
31
+ stroke-width: ${f};
32
+ }
33
+
34
+ .section-${a-1} line {
35
+ stroke: ${e["cScaleInv"+a]};
36
+ stroke-width: 3;
37
+ }
38
+
39
+ .lineWrapper line {
40
+ stroke: ${e.nodeBorder};
41
+ stroke-width:${e.strokeWidth}
42
+ }
43
+
44
+ .disabled,
45
+ .disabled circle,
46
+ .disabled text {
47
+ fill: ${e.tertiaryColor??"lightgray"};
48
+ }
49
+
50
+ .disabled text {
51
+ fill: ${e.clusterBorder??"#efefef"};
52
+ }
53
+ `}return c},"genReduxSections"),de=o(e=>{let t="";for(let n=0;n<e.THEME_COLOR_LIMIT;n++)e["lineColor"+n]=e["lineColor"+n]||e["cScaleInv"+n],Ct(e["lineColor"+n])?e["lineColor"+n]=Rt(e["lineColor"+n],20):e["lineColor"+n]=Wt(e["lineColor"+n],20);for(let n=0;n<e.THEME_COLOR_LIMIT;n++){const i=""+(17-3*n);t+=`
54
+ .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} path {
55
+ fill: ${e["cScale"+n]};
56
+ }
57
+ .section-${n-1} text {
58
+ fill: ${e["cScaleLabel"+n]};
59
+ }
60
+ .node-icon-${n-1} {
61
+ font-size: 40px;
62
+ color: ${e["cScaleLabel"+n]};
63
+ }
64
+ .section-edge-${n-1}{
65
+ stroke: ${e["cScale"+n]};
66
+ }
67
+ .edge-depth-${n-1}{
68
+ stroke-width: ${i};
69
+ }
70
+ .section-${n-1} line {
71
+ stroke: ${e["cScaleInv"+n]} ;
72
+ stroke-width: 3;
73
+ }
74
+
75
+ .lineWrapper line{
76
+ stroke: ${e["cScaleLabel"+n]} ;
77
+ }
78
+
79
+ .disabled, .disabled circle, .disabled text {
80
+ fill: ${e.tertiaryColor??"lightgray"};
81
+ }
82
+ .disabled text {
83
+ fill: ${e.clusterBorder??"#efefef"};
84
+ }
85
+ `}return t},"genSections"),ue=o(e=>{const{theme:t}=pt(),n=t?.includes("redux"),i=t==="neutral",r=e.svgId?.replace(/^#/,"")??"";let h="";if(e.useGradient&&r&&e.THEME_COLOR_LIMIT&&!i)for(let c=0;c<e.THEME_COLOR_LIMIT;c++)h+=`
86
+ .section-${c-1}[data-look="neo"] rect,
87
+ .section-${c-1}[data-look="neo"] path,
88
+ .section-${c-1}[data-look="neo"] circle {
89
+ fill: ${e.mainBkg};
90
+ stroke: url(#${r}-gradient);
91
+ stroke-width: 2;
92
+ }
93
+ .section-${c-1}[data-look="neo"] line {
94
+ stroke: url(#${r}-gradient);
95
+ stroke-width: 2;
96
+ }`;return`
97
+ .edge {
98
+ stroke-width: 3;
99
+ }
100
+ ${n?he(e):de(e)}
101
+ ${h}
102
+ .section-root rect, .section-root path, .section-root circle {
103
+ fill: ${e.git0};
104
+ }
105
+ .section-root text {
106
+ fill: ${e.gitBranchLabel0};
107
+ }
108
+ .icon-container {
109
+ height:100%;
110
+ display: flex;
111
+ justify-content: center;
112
+ align-items: center;
113
+ }
114
+ .edge {
115
+ fill: none;
116
+ }
117
+ .eventWrapper {
118
+ filter: brightness(120%);
119
+ }
120
+ `},"getStyles"),pe=ue,ge={setConf:o(()=>{},"setConf"),draw:o((e,t,n,i)=>(i?.db?.getDirection?.()??"LR")==="TD"?le.draw(e,t,n,i):re.draw(e,t,n,i),"draw")},xe={db:yt,renderer:ge,parser:Ot,styles:pe};export{xe as diagram};
@@ -0,0 +1 @@
1
+ import{c as z,r as h,j as e,i as t,k as T,l as I}from"./index-1QFQcLya.js";import{u as C,w as M,C as j,T as N,a as L}from"./validators-2LNt2eLU.js";import{T as _,a as F,b as W,c as D}from"./tooltip-DA8LKiqR.js";import{m as x}from"./proxy-B7DZsNQK.js";import{C as $}from"./chevron-right-C3gMQbwP.js";import{M as E}from"./minus-M76p8_Mr.js";const O=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],P=z("zap",O),b=["analysis","planning","solutioning","implementation"],R={analysis:"Analysis",planning:"Planning",solutioning:"Solutioning",implementation:"Implementation"},B={analysis:"01",planning:"02",solutioning:"03",implementation:"04"},g={analysis:{accent:"bg-phase-analysis",bg:"bg-phase-tint-analysis",border:"border-phase-analysis",text:"text-phase-analysis",glow:"shadow-glow-analysis",gradientFrom:"from-phase-analysis",gradientTo:"to-phase-analysis/0"},planning:{accent:"bg-phase-planning",bg:"bg-phase-tint-planning",border:"border-phase-planning",text:"text-phase-planning",glow:"shadow-glow-planning",gradientFrom:"from-phase-planning",gradientTo:"to-phase-planning/0"},solutioning:{accent:"bg-phase-solutioning",bg:"bg-phase-tint-solutioning",border:"border-phase-solutioning",text:"text-phase-solutioning",glow:"shadow-glow-solutioning",gradientFrom:"from-phase-solutioning",gradientTo:"to-phase-solutioning/0"},implementation:{accent:"bg-phase-implementation",bg:"bg-phase-tint-implementation",border:"border-phase-implementation",text:"text-phase-implementation",glow:"shadow-glow-implementation",gradientFrom:"from-phase-implementation",gradientTo:"to-phase-implementation/0"},express:{accent:"bg-phase-express",bg:"bg-phase-tint-express",border:"border-phase-express",text:"text-phase-express",glow:"",gradientFrom:"from-phase-express",gradientTo:"to-phase-express/0"}},q={"not-started":"Not started","in-progress":"In progress",completed:"Completed",blocked:"Blocked",skipped:"Skipped"};function H(s,o){const n=s.inputs.filter(r=>r.required&&o[r.workflowId]?.status!=="completed").map(r=>r.workflowId);return n.length>0?`Missing: ${n.join(", ")}`:void 0}function K({status:s,phaseId:o,shouldAnimate:n,isRecommended:r}){const a=g[o],i=t("relative z-10 flex size-timeline-node shrink-0 items-center justify-center rounded-full","shadow-timeline-node transition-all duration-300");return s==="completed"?e.jsx(x.div,{className:t(i,a.accent),initial:n?{scale:0}:!1,animate:{scale:1},transition:{type:"spring",stiffness:400,damping:20},children:e.jsx(j,{className:"size-3 text-surface-card",strokeWidth:3})}):s==="in-progress"?e.jsxs("div",{className:"relative",children:[e.jsx(x.div,{className:t("absolute inset-0 rounded-full",a.accent),animate:n?{scale:[1,1.8,1.8],opacity:[.4,0,0]}:void 0,transition:n?{duration:2,repeat:1/0,ease:"easeOut"}:void 0,"aria-hidden":"true",style:{width:14,height:14}}),e.jsx(x.div,{className:t(i,a.accent,a.glow),animate:n?{scale:[1,1.15,1]}:void 0,transition:n?{duration:1.8,repeat:1/0,ease:"easeInOut"}:void 0,children:e.jsx("div",{className:"size-1.5 rounded-full bg-surface-card"})})]}):s==="blocked"?e.jsx("div",{className:t(i,"bg-error"),children:e.jsx(N,{className:"size-3 text-surface-card",strokeWidth:3})}):s==="skipped"?e.jsx("div",{className:t(i,"border-2 border-text-muted bg-surface-card"),children:e.jsx(E,{className:"size-3 text-text-muted",strokeWidth:3})}):e.jsx(x.div,{className:t(i,"border-2 bg-surface-card",r?a.border:"border-timeline-node-ring"),animate:r&&n?{borderColor:["var(--color-phase-planning)","var(--color-focus-ring)","var(--color-phase-planning)"]}:void 0,transition:r?{duration:2,repeat:1/0,ease:"easeInOut"}:void 0,children:r&&e.jsx("div",{className:t("size-1.5 rounded-full",a.accent)})})}function v({entry:s,phaseId:o,index:n,side:r,isRecommended:a,shouldAnimate:i,onClick:d}){const l=s.state?.status??"not-started",c=g[o],m=r==="left",p=h.useCallback(u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),d?.())},[d]);return e.jsxs(x.div,{role:"button",tabIndex:0,"aria-label":`${s.definition.label} — ${q[l]}${s.warning?`, warning: ${s.warning}`:""}`,className:t("group relative max-w-timeline-card-max-w cursor-pointer","rounded-lg border border-timeline-card-border bg-timeline-card-bg","shadow-timeline-card backdrop-blur-sm","transition-all duration-300 ease-out","outline-none focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-main","hover:bg-timeline-card-hover hover:shadow-timeline-card-hover",a&&[c.border,"border-2"],l==="completed"&&"opacity-80 hover:opacity-100",l==="skipped"&&"opacity-50",m?"ml-auto mr-6":"mr-auto ml-6"),onClick:d,onKeyDown:p,initial:i?{opacity:0,x:m?24:-24,y:8}:!1,animate:{opacity:l==="skipped"?.5:l==="completed"?.8:1,x:0,y:0},transition:{delay:n*.06,duration:.5,ease:[.16,1,.3,1]},whileHover:i?{y:-2,scale:1.01}:void 0,children:[e.jsx("div",{className:t("absolute inset-x-0 top-0 h-px rounded-t-lg opacity-60","bg-gradient-to-r",l==="completed"?c.gradientFrom:"from-transparent",l==="completed"?c.gradientTo:"to-transparent")}),e.jsxs("div",{className:"flex items-start gap-3 p-4",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:t("text-sm font-semibold leading-tight text-text-primary",l==="completed"&&"line-through decoration-1 decoration-text-muted/40",l==="skipped"&&"text-text-muted line-through"),children:s.definition.label}),a&&e.jsx(x.span,{className:t("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-bold",c.accent,"text-surface-card"),animate:i?{opacity:[.7,1,.7]}:void 0,transition:i?{duration:2,repeat:1/0}:void 0,children:"Next"})]}),e.jsxs("span",{className:"font-mono text-mono leading-tight text-text-muted",children:["/",s.definition.command]}),e.jsxs("div",{className:"mt-1 flex items-center gap-1.5",children:[e.jsx("div",{className:t("size-1.5 rounded-full",c.accent)}),e.jsxs("span",{className:"text-xs text-text-secondary",children:[s.definition.agent.name," · ",s.definition.agent.role]})]}),l==="in-progress"&&s.state?.progress!=null&&e.jsx("div",{className:"mt-2 h-1 w-full overflow-hidden rounded-full bg-timeline-beam-track",children:e.jsx(x.div,{className:t("h-full rounded-full",c.accent),initial:{width:0},animate:{width:`${s.state.progress}%`},transition:{duration:1,ease:"easeOut"}})})]}),e.jsx($,{className:t("mt-0.5 size-4 shrink-0 text-text-muted transition-all duration-200","group-hover:translate-x-0.5 group-hover:text-text-secondary")})]}),s.warning&&e.jsx(_,{children:e.jsxs(F,{children:[e.jsx(W,{asChild:!0,children:e.jsx("span",{className:"absolute -right-1.5 -top-1.5 z-20 inline-flex items-center justify-center rounded-full bg-warning p-1 shadow-sm",children:e.jsx(N,{className:"size-3 text-surface-card"})})}),e.jsx(D,{side:"top",className:"max-w-[240px] text-xs",children:s.warning})]})})]})}function G({phaseId:s,label:o,completedCount:n,totalCount:r,index:a,shouldAnimate:i}){const d=g[s],l=n===r;return e.jsxs(x.div,{className:"relative flex items-center gap-4 py-2",initial:i?{opacity:0,y:12}:!1,animate:{opacity:1,y:0},transition:{delay:a*.1,duration:.6,ease:[.16,1,.3,1]},children:[e.jsx("span",{className:t("absolute -left-2 select-none font-sans text-[64px] font-black leading-none tracking-tighter","text-timeline-phase-label"),children:B[s]}),e.jsxs("span",{className:t("relative z-10 inline-flex items-center gap-2 rounded-full px-3 py-1.5",d.bg,"border border-transparent",l&&d.border),children:[e.jsx("span",{className:t("size-2 rounded-full",d.accent)}),e.jsx("span",{className:t("text-sm font-bold tracking-tight",d.text),children:o})]}),e.jsxs("span",{className:"text-xs tabular-nums text-text-muted",children:[n,"/",r]}),l&&e.jsx(x.span,{className:t("inline-flex size-5 items-center justify-center rounded-full",d.accent),initial:i?{scale:0}:!1,animate:{scale:1},transition:{type:"spring",stiffness:400,damping:15},children:e.jsx(j,{className:"size-3 text-surface-card",strokeWidth:3})})]})}function w({entry:s,phaseId:o,side:n,globalIndex:r,isRecommended:a,shouldAnimate:i,onStationClick:d}){const l=s.state?.status??"not-started",c=g[o],m=n==="left";return e.jsxs("div",{className:"group/row relative grid grid-cols-[1fr_auto_1fr] items-center gap-0",children:[e.jsx("div",{className:t("flex","justify-end"),children:m&&e.jsx(v,{entry:s,phaseId:o,index:r,side:"left",isRecommended:a,shouldAnimate:i,onClick:d?()=>d(s.definition.id):void 0})}),e.jsxs("div",{className:"relative flex flex-col items-center",children:[e.jsx("div",{className:t("h-6 w-timeline-spine-w",l==="completed"||l==="in-progress"?c.accent:"bg-timeline-spine")}),e.jsx(K,{status:l,phaseId:o,shouldAnimate:i,isRecommended:a}),e.jsx("div",{className:t("h-6 w-timeline-spine-w",l==="completed"?c.accent:"bg-timeline-spine")}),e.jsx("div",{className:t("absolute top-1/2 h-px w-6 -translate-y-1/2",m?"right-full":"left-full",l==="completed"?c.accent:"bg-timeline-spine","transition-colors duration-300")})]}),e.jsx("div",{className:"flex",children:!m&&e.jsx(v,{entry:s,phaseId:o,index:r,side:"right",isRecommended:a,shouldAnimate:i,onClick:d?()=>d(s.definition.id):void 0})})]})}function V({phaseId:s,label:o,completedCount:n,totalCount:r,phaseIndex:a,shouldAnimate:i}){return e.jsxs("div",{className:"relative grid grid-cols-[1fr_auto_1fr] items-center gap-0",children:[e.jsx("div",{className:"flex justify-end pr-8",children:e.jsx(G,{phaseId:s,label:o,completedCount:n,totalCount:r,index:a,shouldAnimate:i})}),e.jsxs("div",{className:"relative flex flex-col items-center",children:[e.jsx("div",{className:t("h-4 w-timeline-spine-w bg-timeline-spine")}),e.jsx("div",{className:t("size-3 rounded-full border-2 bg-surface-card",g[s].border)}),e.jsx("div",{className:t("h-4 w-timeline-spine-w bg-timeline-spine")})]}),e.jsx("div",{})]})}function Z({workflows:s,recommendation:o,shouldAnimate:n,globalOffset:r,onStationClick:a}){return s.length===0?null:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative grid grid-cols-[1fr_auto_1fr] items-center gap-0",children:[e.jsx("div",{className:"flex justify-end pr-8",children:e.jsxs(x.div,{className:"flex items-center gap-2 rounded-full bg-phase-tint-express px-3 py-1.5",initial:n?{opacity:0,y:12}:!1,animate:{opacity:1,y:0},transition:{delay:.4,duration:.6,ease:[.16,1,.3,1]},children:[e.jsx(P,{className:"size-3.5 text-phase-express"}),e.jsx("span",{className:"text-sm font-bold tracking-tight text-phase-express",children:"Express Line"})]})}),e.jsxs("div",{className:"relative flex flex-col items-center",children:[e.jsx("div",{className:"h-4 w-timeline-spine-w bg-timeline-spine"}),e.jsx("div",{className:"flex size-3 items-center justify-center rounded-full border-2 border-dashed border-phase-express bg-surface-card",children:e.jsx("div",{className:"size-1 rounded-full bg-phase-express"})}),e.jsx("div",{className:"h-4 w-timeline-spine-w bg-timeline-spine"})]}),e.jsx("div",{})]}),s.map((i,d)=>e.jsx(w,{entry:i,phaseId:"express",side:d%2===0?"right":"left",globalIndex:r+d,isRecommended:i.definition.id===o,shouldAnimate:n,onStationClick:a},i.definition.id))]})}function J({projectState:s,onStationClick:o,className:n}){const a=!C(),{phaseWorkflows:i,expressWorkflows:d}=h.useMemo(()=>{const c=new Map,m=[];for(const p of b)c.set(p,[]);for(const p of M){const u=H(p,s.workflows),f={definition:p,state:s.workflows[p.id],warning:u};p.isExpress?m.push(f):c.get(p.phase)?.push(f)}return{phaseWorkflows:c,expressWorkflows:m}},[s]);let l=0;return e.jsxs("nav",{id:"main-content",role:"navigation","aria-label":"BMAD workflow timeline",className:t("relative py-8",n),children:[e.jsx("div",{className:"pointer-events-none absolute left-1/2 top-0 h-full w-px -translate-x-1/2 bg-timeline-spine","aria-hidden":"true"}),e.jsx(x.div,{className:"pointer-events-none absolute left-1/2 top-0 w-1 -translate-x-1/2 rounded-full bg-gradient-to-b from-phase-planning via-phase-solutioning to-phase-implementation opacity-20 blur-sm",initial:a?{height:0}:{height:"100%"},animate:{height:"100%"},transition:{duration:2,ease:[.16,1,.3,1]},"aria-hidden":"true"}),b.map((c,m)=>{const p=i.get(c)??[],u=p.filter(f=>f.state?.status==="completed").length;return e.jsxs("div",{children:[e.jsx(V,{phaseId:c,label:R[c],completedCount:u,totalCount:p.length,phaseIndex:m,shouldAnimate:a}),p.map((f,y)=>{const k=l++;return e.jsx(w,{entry:f,phaseId:c,side:y%2===0?"right":"left",globalIndex:k,isRecommended:f.definition.id===s.recommendation,shouldAnimate:a,onStationClick:o},f.definition.id)})]},c)}),e.jsx(Z,{workflows:d,recommendation:s.recommendation,shouldAnimate:a,globalOffset:l,onStationClick:o}),e.jsxs("div",{className:"relative grid grid-cols-[1fr_auto_1fr] items-center gap-0",children:[e.jsx("div",{}),e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx("div",{className:"h-4 w-timeline-spine-w bg-timeline-spine"}),e.jsx(x.div,{className:"size-2 rounded-full bg-text-muted",initial:a?{scale:0}:!1,animate:{scale:1},transition:{delay:1.5,type:"spring",stiffness:300}})]}),e.jsx("div",{})]})]})}const se=T("/timeline")({component:Q});function Q(){const{data:s,isLoading:o,error:n}=L(),r=I(),a=h.useCallback(d=>{r({to:"/workflow/$workflowId",params:{workflowId:d}})},[r]);if(o)return e.jsx("div",{className:"flex flex-1 items-center justify-center p-8",role:"status","aria-live":"polite",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"size-8 animate-spin rounded-full border-2 border-border-default border-t-phase-planning","aria-hidden":"true"}),e.jsx("p",{className:"text-sm font-medium text-text-secondary",children:"Loading timeline..."})]})});if(n)return e.jsx("div",{className:"flex flex-1 items-center justify-center p-8",role:"alert",children:e.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-lg border border-error/30 bg-phase-tint-express p-6",children:[e.jsx("p",{className:"text-sm font-semibold text-error",children:"Failed to load project state"}),e.jsx("p",{className:"text-xs text-text-secondary",children:"Check that the BMAD server is running."})]})});if(!s||"status"in s&&s.status==="unconfigured")return e.jsx("div",{className:"flex flex-1 items-center justify-center p-8",children:e.jsx("p",{className:"text-sm text-text-secondary",children:"No project configured yet."})});const i="status"in s?null:s;return i?e.jsx("div",{className:"flex flex-1 flex-col overflow-auto",children:e.jsx(J,{projectState:i,onStationClick:a,className:"mx-auto w-full max-w-4xl px-5"})}):null}export{se as Route};
@@ -0,0 +1 @@
1
+ import{r as s,j as u,u as X,a as K,b as N,P as W,d as C,e as H,f as J,D as Q,g as Z,h as ee,i as te}from"./index-1QFQcLya.js";import{R as oe,A as re,a as ne,c as S,C as se,b as ae}from"./proxy-B7DZsNQK.js";var[j]=Z("Tooltip",[S]),O=S(),G="TooltipProvider",ie=700,D="tooltip.open",[le,L]=j(G),F=e=>{const{__scopeTooltip:o,delayDuration:t=ie,skipDelayDuration:r=300,disableHoverableContent:n=!1,children:l}=e,i=s.useRef(!0),v=s.useRef(!1),a=s.useRef(0);return s.useEffect(()=>{const p=a.current;return()=>window.clearTimeout(p)},[]),u.jsx(le,{scope:o,isOpenDelayedRef:i,delayDuration:t,onOpen:s.useCallback(()=>{window.clearTimeout(a.current),i.current=!1},[]),onClose:s.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(()=>i.current=!0,r)},[r]),isPointerInTransitRef:v,onPointerInTransitChange:s.useCallback(p=>{v.current=p},[]),disableHoverableContent:n,children:l})};F.displayName=G;var R="Tooltip",[ce,_]=j(R),z=e=>{const{__scopeTooltip:o,children:t,open:r,defaultOpen:n,onOpenChange:l,disableHoverableContent:i,delayDuration:v}=e,a=L(R,e.__scopeTooltip),p=O(o),[c,f]=s.useState(null),x=X(),d=s.useRef(0),h=i??a.disableHoverableContent,T=v??a.delayDuration,g=s.useRef(!1),[y,m]=K({prop:r,defaultProp:n??!1,onChange:I=>{I?(a.onOpen(),document.dispatchEvent(new CustomEvent(D))):a.onClose(),l?.(I)},caller:R}),w=s.useMemo(()=>y?g.current?"delayed-open":"instant-open":"closed",[y]),P=s.useCallback(()=>{window.clearTimeout(d.current),d.current=0,g.current=!1,m(!0)},[m]),E=s.useCallback(()=>{window.clearTimeout(d.current),d.current=0,m(!1)},[m]),M=s.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>{g.current=!0,m(!0),d.current=0},T)},[T,m]);return s.useEffect(()=>()=>{d.current&&(window.clearTimeout(d.current),d.current=0)},[]),u.jsx(oe,{...p,children:u.jsx(ce,{scope:o,contentId:x,open:y,stateAttribute:w,trigger:c,onTriggerChange:f,onTriggerEnter:s.useCallback(()=>{a.isOpenDelayedRef.current?M():P()},[a.isOpenDelayedRef,M,P]),onTriggerLeave:s.useCallback(()=>{h?E():(window.clearTimeout(d.current),d.current=0)},[E,h]),onOpen:P,onClose:E,disableHoverableContent:h,children:t})})};z.displayName=R;var A="TooltipTrigger",$=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=_(A,t),l=L(A,t),i=O(t),v=s.useRef(null),a=N(o,v,n.onTriggerChange),p=s.useRef(!1),c=s.useRef(!1),f=s.useCallback(()=>p.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(re,{asChild:!0,...i,children:u.jsx(W.button,{"aria-describedby":n.open?n.contentId:void 0,"data-state":n.stateAttribute,...r,ref:a,onPointerMove:C(e.onPointerMove,x=>{x.pointerType!=="touch"&&!c.current&&!l.isPointerInTransitRef.current&&(n.onTriggerEnter(),c.current=!0)}),onPointerLeave:C(e.onPointerLeave,()=>{n.onTriggerLeave(),c.current=!1}),onPointerDown:C(e.onPointerDown,()=>{n.open&&n.onClose(),p.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:C(e.onFocus,()=>{p.current||n.onOpen()}),onBlur:C(e.onBlur,n.onClose),onClick:C(e.onClick,n.onClose)})})});$.displayName=A;var k="TooltipPortal",[ue,de]=j(k,{forceMount:void 0}),B=e=>{const{__scopeTooltip:o,forceMount:t,children:r,container:n}=e,l=_(k,o);return u.jsx(ue,{scope:o,forceMount:t,children:u.jsx(H,{present:t||l.open,children:u.jsx(J,{asChild:!0,container:n,children:r})})})};B.displayName=k;var b="TooltipContent",U=s.forwardRef((e,o)=>{const t=de(b,e.__scopeTooltip),{forceMount:r=t.forceMount,side:n="top",...l}=e,i=_(b,e.__scopeTooltip);return u.jsx(H,{present:r||i.open,children:i.disableHoverableContent?u.jsx(V,{side:n,...l,ref:o}):u.jsx(pe,{side:n,...l,ref:o})})}),pe=s.forwardRef((e,o)=>{const t=_(b,e.__scopeTooltip),r=L(b,e.__scopeTooltip),n=s.useRef(null),l=N(o,n),[i,v]=s.useState(null),{trigger:a,onClose:p}=t,c=n.current,{onPointerInTransitChange:f}=r,x=s.useCallback(()=>{v(null),f(!1)},[f]),d=s.useCallback((h,T)=>{const g=h.currentTarget,y={x:h.clientX,y:h.clientY},m=he(y,g.getBoundingClientRect()),w=ge(y,m),P=Te(T.getBoundingClientRect()),E=ye([...w,...P]);v(E),f(!0)},[f]);return s.useEffect(()=>()=>x(),[x]),s.useEffect(()=>{if(a&&c){const h=g=>d(g,c),T=g=>d(g,a);return a.addEventListener("pointerleave",h),c.addEventListener("pointerleave",T),()=>{a.removeEventListener("pointerleave",h),c.removeEventListener("pointerleave",T)}}},[a,c,d,x]),s.useEffect(()=>{if(i){const h=T=>{const g=T.target,y={x:T.clientX,y:T.clientY},m=a?.contains(g)||c?.contains(g),w=!me(y,i);m?x():w&&(x(),p())};return document.addEventListener("pointermove",h),()=>document.removeEventListener("pointermove",h)}},[a,c,i,p,x]),u.jsx(V,{...e,ref:l})}),[fe,ve]=j(R,{isInside:!1}),xe=ee("TooltipContent"),V=s.forwardRef((e,o)=>{const{__scopeTooltip:t,children:r,"aria-label":n,onEscapeKeyDown:l,onPointerDownOutside:i,...v}=e,a=_(b,t),p=O(t),{onClose:c}=a;return s.useEffect(()=>(document.addEventListener(D,c),()=>document.removeEventListener(D,c)),[c]),s.useEffect(()=>{if(a.trigger){const f=x=>{x.target?.contains(a.trigger)&&c()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[a.trigger,c]),u.jsx(Q,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:i,onFocusOutside:f=>f.preventDefault(),onDismiss:c,children:u.jsxs(se,{"data-state":a.stateAttribute,...p,...v,ref:o,style:{...v.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(xe,{children:r}),u.jsx(fe,{scope:t,isInside:!0,children:u.jsx(ae,{id:a.contentId,role:"tooltip",children:n||r})})]})})});U.displayName=b;var Y="TooltipArrow",q=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=O(t);return ve(Y,t).isInside?null:u.jsx(ne,{...n,...r,ref:o})});q.displayName=Y;function he(e,o){const t=Math.abs(o.top-e.y),r=Math.abs(o.bottom-e.y),n=Math.abs(o.right-e.x),l=Math.abs(o.left-e.x);switch(Math.min(t,r,n,l)){case l:return"left";case n:return"right";case t:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ge(e,o,t=5){const r=[];switch(o){case"top":r.push({x:e.x-t,y:e.y+t},{x:e.x+t,y:e.y+t});break;case"bottom":r.push({x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t});break;case"left":r.push({x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t});break;case"right":r.push({x:e.x-t,y:e.y-t},{x:e.x-t,y:e.y+t});break}return r}function Te(e){const{top:o,right:t,bottom:r,left:n}=e;return[{x:n,y:o},{x:t,y:o},{x:t,y:r},{x:n,y:r}]}function me(e,o){const{x:t,y:r}=e;let n=!1;for(let l=0,i=o.length-1;l<o.length;i=l++){const v=o[l],a=o[i],p=v.x,c=v.y,f=a.x,x=a.y;c>r!=x>r&&t<(f-p)*(r-c)/(x-c)+p&&(n=!n)}return n}function ye(e){const o=e.slice();return o.sort((t,r)=>t.x<r.x?-1:t.x>r.x?1:t.y<r.y?-1:t.y>r.y?1:0),Ce(o)}function Ce(e){if(e.length<=1)return e.slice();const o=[];for(let r=0;r<e.length;r++){const n=e[r];for(;o.length>=2;){const l=o[o.length-1],i=o[o.length-2];if((l.x-i.x)*(n.y-i.y)>=(l.y-i.y)*(n.x-i.x))o.pop();else break}o.push(n)}o.pop();const t=[];for(let r=e.length-1;r>=0;r--){const n=e[r];for(;t.length>=2;){const l=t[t.length-1],i=t[t.length-2];if((l.x-i.x)*(n.y-i.y)>=(l.y-i.y)*(n.x-i.x))t.pop();else break}t.push(n)}return t.pop(),o.length===1&&t.length===1&&o[0].x===t[0].x&&o[0].y===t[0].y?o:o.concat(t)}var be=F,we=z,Pe=$,Ee=B,Re=U,_e=q;function De({delayDuration:e=0,...o}){return u.jsx(be,{"data-slot":"tooltip-provider",delayDuration:e,...o})}function Ae({...e}){return u.jsx(we,{"data-slot":"tooltip",...e})}function Le({...e}){return u.jsx(Pe,{"data-slot":"tooltip-trigger",...e})}function ke({className:e,sideOffset:o=0,children:t,...r}){return u.jsx(Ee,{children:u.jsxs(Re,{"data-slot":"tooltip-content",sideOffset:o,className:te("z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",e),...r,children:[t,u.jsx(_e,{className:"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground"})]})})}export{De as T,Ae as a,Le as b,ke as c};
@@ -0,0 +1 @@
1
+ import{f as d,g as p,h as u,j as l,p as m}from"./proxy-B7DZsNQK.js";import{q as h,c,r as g}from"./index-1QFQcLya.js";function A(){return d({queryKey:h.project,queryFn:p})}const w=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],D=c("check",w);const f=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],R=c("triangle-alert",f);function q(){!u.current&&l();const[e]=g.useState(m.current);return e}const C=[{id:"brainstorming",label:"Brainstorming",phase:"analysis",command:"bmad-brainstorming",triggerCode:"brainstorm",agent:{name:"Mary",role:"Business Analyst",skillId:"bmad-brainstorming"},outputs:[{glob:"**/brainstorming-report.md",description:"Brainstorming report"}],inputs:[],learn:{title:"Brainstorming",whatItDoes:"Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods.",whenToUse:"At the start of a project when exploring ideas, or when you need fresh perspectives on a problem.",whatItNeeds:"A topic or problem statement to brainstorm around. No prior documents required.",whatItProduces:"A brainstorming report with organized ideas, themes, and potential directions.",proTip:"Run multiple brainstorming sessions with different techniques for richer results."}},{id:"domain-research",label:"Domain Research",phase:"analysis",command:"bmad-domain-research",triggerCode:"domain",agent:{name:"Mary",role:"Business Analyst",skillId:"bmad-domain-research"},outputs:[{glob:"**/domain-research*.md",description:"Domain research findings"}],inputs:[],learn:{title:"Domain Research",whatItDoes:"Conduct domain and industry research to understand the problem space and key concepts.",whenToUse:"When entering an unfamiliar domain or needing to validate assumptions about an industry.",whatItNeeds:"A domain or industry topic to research. No prior documents required.",whatItProduces:"A domain research report with key findings, terminology, and industry context.",proTip:"Combine with market research for a complete picture of the competitive landscape."}},{id:"market-research",label:"Market Research",phase:"analysis",command:"bmad-market-research",triggerCode:"market",agent:{name:"Mary",role:"Business Analyst",skillId:"bmad-market-research"},outputs:[{glob:"**/market-research*.md",description:"Market research findings"}],inputs:[],learn:{title:"Market Research",whatItDoes:"Conduct market research on competition, customers, and market positioning.",whenToUse:"When you need to understand competitors, target audience, or market opportunities.",whatItNeeds:"A market or product category to research. No prior documents required.",whatItProduces:"A market research report covering competitors, customer segments, and opportunities.",proTip:"Feed market research findings into your product brief for stronger positioning."}},{id:"technical-research",label:"Technical Research",phase:"analysis",command:"bmad-technical-research",triggerCode:"techresearch",agent:{name:"Winston",role:"Architect",skillId:"bmad-technical-research"},outputs:[{glob:"**/technical-research*.md",description:"Technical research report"}],inputs:[],learn:{title:"Technical Research",whatItDoes:"Conduct technical research on technologies, frameworks, and architecture options.",whenToUse:"When evaluating technology choices or exploring technical approaches for your solution.",whatItNeeds:"A technical topic or set of technologies to evaluate. No prior documents required.",whatItProduces:"A technical research report with comparisons, recommendations, and trade-offs.",proTip:"Run this before architecture design to make informed technology decisions."}},{id:"product-brief",label:"Product Brief",phase:"analysis",command:"bmad-product-brief",triggerCode:"brief",agent:{name:"Mary",role:"Business Analyst",skillId:"bmad-product-brief"},outputs:[{glob:"**/product-brief.md",description:"Product brief document"}],inputs:[],learn:{title:"Product Brief",whatItDoes:"Create or update product briefs through guided or autonomous discovery.",whenToUse:"When starting a new product or feature and need to capture the core vision and goals.",whatItNeeds:"Your product idea or concept. Optionally, prior research documents for richer context.",whatItProduces:"A structured product brief defining the problem, solution, target users, and success metrics.",proTip:"The product brief is the foundation for everything — invest time getting it right."}},{id:"prfaq",label:"PRFAQ",phase:"analysis",command:"bmad-prfaq",triggerCode:"prfaq",agent:{name:"Mary",role:"Business Analyst",skillId:"bmad-prfaq"},outputs:[{glob:"**/prfaq-*.md",description:"PRFAQ document"}],inputs:[],learn:{title:"PRFAQ",whatItDoes:"Create a press release / FAQ document to crystallize the product vision.",whenToUse:"When you want to work backwards from the customer experience to define what to build.",whatItNeeds:"A product concept or product brief. Works best after initial research is complete.",whatItProduces:"A PRFAQ document with a mock press release and frequently asked questions.",proTip:"The PRFAQ format forces clarity — if you cannot write a compelling press release, refine your vision."}},{id:"create-prd",label:"Create PRD",phase:"planning",command:"bmad-create-prd",triggerCode:"prd",agent:{name:"John",role:"Product Manager",skillId:"bmad-create-prd"},outputs:[{glob:"**/{PRD,prd}.md",description:"Product Requirements Document"}],inputs:[{workflowId:"product-brief",outputPattern:"**/product-brief.md",required:!0}],validation:"prd-validator",learn:{title:"Product Requirements",whatItDoes:"Create a comprehensive PRD from the product brief with detailed requirements.",whenToUse:"After the product brief is finalized and you are ready to define detailed requirements.",whatItNeeds:"A completed product brief document.",whatItProduces:"A Product Requirements Document with functional requirements, user stories, and constraints.",proTip:"Run PRD validation afterward to catch gaps before moving to design and architecture."}},{id:"ux-design",label:"UX Design",phase:"planning",command:"bmad-create-ux-design",triggerCode:"ux",agent:{name:"Sally",role:"UX Designer",skillId:"bmad-create-ux-design"},outputs:[{glob:"**/{ux-spec,ux-design-specification}.md",description:"UX design specification"}],inputs:[{workflowId:"create-prd",outputPattern:"**/{PRD,prd}.md",required:!0}],learn:{title:"UX Design",whatItDoes:"Plan UX patterns, wireframes, and design specifications from the PRD.",whenToUse:"After the PRD is complete and you need to define the user experience and interface.",whatItNeeds:"A completed PRD document.",whatItProduces:"A UX design specification with component patterns, layouts, and interaction flows.",proTip:"UX specs inform both architecture decisions and developer implementation — do not skip this step."}},{id:"architecture",label:"Architecture",phase:"solutioning",command:"bmad-create-architecture",triggerCode:"arch",agent:{name:"Winston",role:"Architect",skillId:"bmad-create-architecture"},outputs:[{glob:"**/architecture.md",description:"Architecture design document"}],inputs:[{workflowId:"create-prd",outputPattern:"**/{PRD,prd}.md",required:!0},{workflowId:"ux-design",outputPattern:"**/{ux-spec,ux-design-specification}.md",required:!1}],learn:{title:"Architecture",whatItDoes:"Create architecture and solution design decisions for consistent AI agent implementation.",whenToUse:"After PRD and optionally UX design are complete, before breaking work into epics.",whatItNeeds:"A completed PRD. UX design specification is optional but recommended.",whatItProduces:"An architecture document with ADRs, system design, and technical specifications.",proTip:"Architecture decisions recorded here guide every developer agent in the implementation phase."}},{id:"epics-and-stories",label:"Epics & Stories",phase:"solutioning",command:"bmad-create-epics-and-stories",triggerCode:"epics",agent:{name:"John",role:"Product Manager",skillId:"bmad-create-epics-and-stories"},outputs:[{glob:"**/epics.md",description:"Epic and story breakdown"}],inputs:[{workflowId:"create-prd",outputPattern:"**/{PRD,prd}.md",required:!0},{workflowId:"architecture",outputPattern:"**/architecture.md",required:!0}],learn:{title:"Epics & Stories",whatItDoes:"Break requirements into epics and user stories with acceptance criteria.",whenToUse:"After architecture is defined and you are ready to plan the implementation work.",whatItNeeds:"Completed PRD and architecture documents.",whatItProduces:"An epics document with stories, acceptance criteria, and dependency ordering.",proTip:"Well-written stories with clear ACs are the single biggest factor in implementation quality."}},{id:"implementation-readiness",label:"Implementation Readiness",phase:"solutioning",command:"bmad-check-implementation-readiness",triggerCode:"ready",agent:{name:"Bob",role:"Scrum Master",skillId:"bmad-check-implementation-readiness"},outputs:[{glob:"**/readiness-check*.md",description:"Readiness check results"}],inputs:[{workflowId:"create-prd",outputPattern:"**/{PRD,prd}.md",required:!0},{workflowId:"architecture",outputPattern:"**/architecture.md",required:!0},{workflowId:"epics-and-stories",outputPattern:"**/epics.md",required:!0}],validation:"readiness-validator",learn:{title:"Implementation Readiness",whatItDoes:"Validate that PRD, UX, Architecture, and Epics are complete and consistent.",whenToUse:"Before starting implementation — this is your final quality gate.",whatItNeeds:"Completed PRD, architecture, and epics documents.",whatItProduces:"A readiness check report identifying gaps, inconsistencies, and blockers.",proTip:"Catching issues here saves 10x the effort compared to discovering them during development."}},{id:"sprint-planning",label:"Sprint Planning",phase:"implementation",command:"bmad-sprint-planning",triggerCode:"sprint",agent:{name:"Bob",role:"Scrum Master",skillId:"bmad-sprint-planning"},outputs:[{glob:"**/sprint-status.yaml",description:"Sprint status tracking"}],inputs:[{workflowId:"epics-and-stories",outputPattern:"**/epics.md",required:!0}],learn:{title:"Sprint Planning",whatItDoes:"Generate sprint status tracking from epics to organize implementation work.",whenToUse:"After implementation readiness is confirmed and you are ready to start building.",whatItNeeds:"A completed epics document with story definitions.",whatItProduces:"A sprint-status.yaml file tracking story progress through the sprint.",proTip:"Sprint planning creates the backbone for all dev-story and status tracking workflows."}},{id:"create-story",label:"Create Story",phase:"implementation",command:"bmad-create-story",triggerCode:"story",agent:{name:"Bob",role:"Scrum Master",skillId:"bmad-create-story"},outputs:[{glob:"**/story-*.md",description:"Story specification file"}],inputs:[{workflowId:"sprint-planning",outputPattern:"**/sprint-status.yaml",required:!0},{workflowId:"epics-and-stories",outputPattern:"**/epics.md",required:!0}],learn:{title:"Create Story",whatItDoes:"Create a dedicated story file with all the context an agent needs for implementation.",whenToUse:"When the next story in the sprint is ready to be developed.",whatItNeeds:"Sprint status file and epics document with the story to be created.",whatItProduces:"A detailed story spec file with tasks, subtasks, acceptance criteria, and dev notes.",proTip:"Stories created here are self-contained — the dev agent should not need to look elsewhere."}},{id:"dev-story",label:"Dev Story",phase:"implementation",command:"bmad-dev-story",triggerCode:"dev",agent:{name:"Amelia",role:"Developer",skillId:"bmad-dev-story"},outputs:[{glob:"**/*.{ts,tsx,js,jsx}",description:"Working code and tests"}],inputs:[{workflowId:"create-story",outputPattern:"**/story-*.md",required:!0}],learn:{title:"Dev Story",whatItDoes:"Execute story implementation following a context-filled story spec file.",whenToUse:"When a story file is created and marked ready-for-dev in the sprint status.",whatItNeeds:"A completed story specification file with tasks and acceptance criteria.",whatItProduces:"Working code, tests, and an updated story file with completion notes.",proTip:"Use a different LLM for code review than the one that implemented the story."}},{id:"code-review",label:"Code Review",phase:"implementation",command:"bmad-code-review",triggerCode:"review",agent:{name:"Amelia",role:"Developer",skillId:"bmad-code-review"},outputs:[{glob:"**/review-*.md",description:"Code review results"}],inputs:[{workflowId:"dev-story",outputPattern:"**/*.{ts,tsx}",required:!0}],learn:{title:"Code Review",whatItDoes:"Review code changes adversarially using parallel review layers for thorough analysis.",whenToUse:"After dev-story completes and the story is in review status.",whatItNeeds:"Completed story implementation with code changes and tests.",whatItProduces:"A code review report with findings categorized by severity and actionable items.",proTip:"Run code review with a different LLM than the one that wrote the code for unbiased findings."}},{id:"correct-course",label:"Correct Course",phase:"implementation",command:"bmad-correct-course",triggerCode:"course",agent:{name:"Bob",role:"Scrum Master",skillId:"bmad-correct-course"},outputs:[{glob:"**/course-correction*.md",description:"Course correction plan"}],inputs:[{workflowId:"sprint-planning",outputPattern:"**/sprint-status.yaml",required:!0}],learn:{title:"Correct Course",whatItDoes:"Manage significant changes during sprint execution when priorities shift.",whenToUse:"When requirements change, blockers arise, or sprint priorities need adjustment.",whatItNeeds:"Current sprint status file and description of the change needed.",whatItProduces:"A course correction plan with updated priorities and adjusted sprint scope.",proTip:"Course corrections are normal — it is better to adjust early than to deliver the wrong thing."}},{id:"sprint-status",label:"Sprint Status",phase:"implementation",command:"bmad-sprint-status",triggerCode:"status",agent:{name:"Bob",role:"Scrum Master",skillId:"bmad-sprint-status"},outputs:[{glob:"**/sprint-status.yaml",description:"Updated sprint status"}],inputs:[{workflowId:"sprint-planning",outputPattern:"**/sprint-status.yaml",required:!0}],learn:{title:"Sprint Status",whatItDoes:"Summarize sprint status and surface risks across all in-flight stories.",whenToUse:"When you want a quick overview of sprint progress or need to identify blockers.",whatItNeeds:"Current sprint status file.",whatItProduces:"An updated sprint status summary with risk indicators and progress metrics.",proTip:"Check sprint status regularly to catch drift before it becomes a problem."}},{id:"retrospective",label:"Retrospective",phase:"implementation",command:"bmad-retrospective",triggerCode:"retro",agent:{name:"Bob",role:"Scrum Master",skillId:"bmad-retrospective"},outputs:[{glob:"**/retrospective*.md",description:"Retrospective findings"}],inputs:[{workflowId:"sprint-planning",outputPattern:"**/sprint-status.yaml",required:!0}],learn:{title:"Retrospective",whatItDoes:"Post-epic review to extract lessons learned and assess what went well or poorly.",whenToUse:"After completing an epic to capture insights before starting the next one.",whatItNeeds:"Sprint status file and completed epic stories for review.",whatItProduces:"A retrospective report with lessons learned, improvements, and team insights.",proTip:"Retrospectives improve every subsequent epic — do not skip them even when time is tight."}},{id:"quick-dev",label:"Quick Dev",phase:"implementation",command:"bmad-quick-dev",triggerCode:"quick",agent:{name:"Barry",role:"Quick Flow Solo Dev",skillId:"bmad-quick-dev"},outputs:[{glob:"**/spec-*.md",description:"Quick spec document"},{glob:"**/*.{ts,tsx,js,jsx}",description:"Implementation code"}],inputs:[],isExpress:!0,learn:{title:"Quick Dev",whatItDoes:"Rapid spec and implementation for smaller tasks following existing project patterns.",whenToUse:"For quick fixes, small features, or changes that do not warrant full sprint planning.",whatItNeeds:"A description of what to build or fix. No prior documents required.",whatItProduces:"A quick spec document and working implementation code with tests.",proTip:"Quick Dev is for tasks that fit in a single session — use the full pipeline for larger work."}}];function s(e,n){return{workflowId:e,rules:n.map(({id:o,description:i,severity:r})=>({id:o,description:i,severity:r})),validate(o){const i=n.map(r=>{const a=r.test(o);return{ruleId:r.id,passed:a,message:a?r.description:`Missing: ${r.description}`,severity:r.severity}});return{documentPath:"",workflowId:e,checks:i,passed:i.every(r=>r.passed),timestamp:new Date().toISOString()}}}}const t=e=>new RegExp(`^##\\s+(?:\\d+\\.?\\s+)?${e}`,"mi"),y=[{id:"prd-exec-summary",description:"Executive summary present",severity:"error",test:e=>t("Executive Summary").test(e)},{id:"prd-functional-reqs",description:"Functional requirements section",severity:"error",test:e=>t("Functional Requirements").test(e)},{id:"prd-nonfunctional-reqs",description:"Non-functional requirements section",severity:"error",test:e=>t("Non-?[Ff]unctional Requirements").test(e)},{id:"prd-user-stories",description:"User stories or use cases",severity:"error",test:e=>t("(User Stories|Use Cases|Acceptance Criteria|Stakeholders)").test(e)},{id:"prd-success-metrics",description:"Success metrics",severity:"warning",test:e=>t("(Success Metrics|Acceptance Criteria|Constraints)").test(e)},{id:"prd-out-of-scope",description:"Out of scope section",severity:"warning",test:e=>t("(Out of Scope|Non-?Goals|Constraints|Open Questions)").test(e)}];s("prd-validator",y);const b=[{id:"arch-tech-stack",description:"Technology stack",severity:"error",test:e=>t("(Technology Stack|Tech Stack|Architecture.*Tech)").test(e)||/technology\s+stack/i.test(e)},{id:"arch-adrs",description:"ADRs present",severity:"error",test:e=>/^###?\s+ADR-\d/mi.test(e)||t("(Architecture Decision Records|Architectural Decisions|Core Architectural Decisions)").test(e)},{id:"arch-system-components",description:"System components",severity:"error",test:e=>t("(System Components?|Package Structure|Monorepo Structure)").test(e)},{id:"arch-data-model",description:"Data model",severity:"warning",test:e=>t("(Data Model|Data Flow|State Management)").test(e)},{id:"arch-api-contracts",description:"API contracts",severity:"warning",test:e=>t("(API Contracts?|API Design|Communication)").test(e)||/^###?\s+ADR-\d+.*API/mi.test(e)},{id:"arch-deployment",description:"Deployment architecture",severity:"warning",test:e=>t("(Deployment|Distribution|Packaging|Infrastructure)").test(e)||/^###?\s+ADR-\d+.*Packag/mi.test(e)}];s("architecture-validator",b);const k=[{id:"story-acceptance-criteria",description:"Acceptance criteria",severity:"error",test:e=>t("Acceptance Criteria").test(e)},{id:"story-dependencies",description:"Dependencies",severity:"warning",test:e=>t("Dependencies").test(e)||/dependencies:/mi.test(e)},{id:"story-points",description:"Story points",severity:"info",test:e=>/story\s*points?\s*[:=]\s*\d/mi.test(e)||t("Story Points").test(e)}];s("story-validator",k);const v=[{id:"readiness-prd-check",description:"PRD review completed",severity:"error",test:e=>/PRD/i.test(e)&&/\b(pass|complete|review)/i.test(e)},{id:"readiness-arch-check",description:"Architecture review completed",severity:"error",test:e=>/architecture/i.test(e)&&/\b(pass|complete|review)/i.test(e)},{id:"readiness-epics-check",description:"Epics review completed",severity:"error",test:e=>/epics?/i.test(e)&&/\b(pass|complete|review)/i.test(e)}];s("readiness-validator",v);export{D as C,R as T,A as a,q as u,C as w};
@@ -0,0 +1,34 @@
1
+ import{aD as Gt,s as Wt,g as Kt,q as Ht,p as Xt,a as Yt,b as Zt,_ as w,D as wt,I as Jt,d as ot,as as Qt,V as $t,W as te,X as ee,e as ne,z as se,F as ie,G as oe}from"./mermaid.core-BR4XzyQe.js";import"./index-1QFQcLya.js";const kt=(t,n)=>Gt(t,"a",-n),_t=1e-10;function st(t,n){const s=ae(t),e=s.filter(c=>re(c,t));let i=0,o=0;const a=[];if(e.length>1){const c=Et(e);for(let u=0;u<e.length;++u){const r=e[u];r.angle=Math.atan2(r.x-c.x,r.y-c.y)}e.sort((u,r)=>r.angle-u.angle);let h=e[e.length-1];for(let u=0;u<e.length;++u){const r=e[u];o+=(h.x+r.x)*(r.y-h.y);const y={x:(r.x+h.x)/2,y:(r.y+h.y)/2};let d=null;for(let b=0;b<r.parentIndex.length;++b)if(h.parentIndex.includes(r.parentIndex[b])){const x=t[r.parentIndex[b]],M=Math.atan2(r.x-x.x,r.y-x.y),A=Math.atan2(h.x-x.x,h.y-x.y);let T=A-M;T<0&&(T+=2*Math.PI);const S=A-T/2;let g=q(y,{x:x.x+x.radius*Math.sin(S),y:x.y+x.radius*Math.cos(S)});g>x.radius*2&&(g=x.radius*2),(d==null||d.width>g)&&(d={circle:x,width:g,p1:r,p2:h,large:g>x.radius,sweep:!0})}d!=null&&(a.push(d),i+=lt(d.circle.radius,d.width),h=r)}}else{let c=t[0];for(let u=1;u<t.length;++u)t[u].radius<c.radius&&(c=t[u]);let h=!1;for(let u=0;u<t.length;++u)if(q(t[u],c)>Math.abs(c.radius-t[u].radius)){h=!0;break}h?i=o=0:(i=c.radius*c.radius*Math.PI,a.push({circle:c,p1:{x:c.x,y:c.y+c.radius},p2:{x:c.x-_t,y:c.y+c.radius},width:c.radius*2,large:!0,sweep:!0}))}return o/=2,n&&(n.area=i+o,n.arcArea=i,n.polygonArea=o,n.arcs=a,n.innerPoints=e,n.intersectionPoints=s),i+o}function re(t,n){return n.every(s=>q(t,s)<s.radius+_t)}function ae(t){const n=[];for(let s=0;s<t.length;++s)for(let e=s+1;e<t.length;++e){const i=Tt(t[s],t[e]);for(const o of i)o.parentIndex=[s,e],n.push(o)}return n}function lt(t,n){return t*t*Math.acos(1-n/t)-(t-n)*Math.sqrt(n*(2*t-n))}function q(t,n){return Math.sqrt((t.x-n.x)*(t.x-n.x)+(t.y-n.y)*(t.y-n.y))}function xt(t,n,s){if(s>=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);const e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return lt(t,e)+lt(n,i)}function Tt(t,n){const s=q(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];const o=(e*e-i*i+s*s)/(2*s),a=Math.sqrt(e*e-o*o),c=t.x+o*(n.x-t.x)/s,h=t.y+o*(n.y-t.y)/s,u=-(n.y-t.y)*(a/s),r=-(n.x-t.x)*(a/s);return[{x:c+u,y:h-r},{x:c-u,y:h+r}]}function Et(t){const n={x:0,y:0};for(const s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function le(t,n,s,e){e=e||{};const i=e.maxIterations||100,o=e.tolerance||1e-10,a=t(n),c=t(s);let h=s-n;if(a*c>0)throw"Initial bisect points must have opposite signs";if(a===0)return n;if(c===0)return s;for(let u=0;u<i;++u){h/=2;const r=n+h,y=t(r);if(y*a>=0&&(n=r),Math.abs(h)<o||y===0)return r}return n+h}function ct(t){const n=new Array(t);for(let s=0;s<t;++s)n[s]=0;return n}function Mt(t,n){return ct(t).map(()=>ct(n))}function $(t,n){let s=0;for(let e=0;e<t.length;++e)s+=t[e]*n[e];return s}function ut(t){return Math.sqrt($(t,t))}function ft(t,n,s){for(let e=0;e<n.length;++e)t[e]=n[e]*s}function J(t,n,s,e,i){for(let o=0;o<t.length;++o)t[o]=n*s[o]+e*i[o]}function zt(t,n,s){s=s||{};const e=s.maxIterations||n.length*200,i=s.nonZeroDelta||1.05,o=s.zeroDelta||.001,a=s.minErrorDelta||1e-6,c=s.minErrorDelta||1e-5,h=s.rho!==void 0?s.rho:1,u=s.chi!==void 0?s.chi:2,r=s.psi!==void 0?s.psi:-.5,y=s.sigma!==void 0?s.sigma:.5;let d;const b=n.length,x=new Array(b+1);x[0]=n,x[0].fx=t(n),x[0].id=0;for(let v=0;v<b;++v){const l=n.slice();l[v]=l[v]?l[v]*i:o,x[v+1]=l,x[v+1].fx=t(l),x[v+1].id=v+1}function M(v){for(let l=0;l<v.length;l++)x[b][l]=v[l];x[b].fx=v.fx}const A=(v,l)=>v.fx-l.fx,T=n.slice(),S=n.slice(),g=n.slice(),m=n.slice();for(let v=0;v<e;++v){if(x.sort(A),s.history){const p=x.map(f=>{const N=f.slice();return N.fx=f.fx,N.id=f.id,N});p.sort((f,N)=>f.id-N.id),s.history.push({x:x[0].slice(),fx:x[0].fx,simplex:p})}d=0;for(let p=0;p<b;++p)d=Math.max(d,Math.abs(x[0][p]-x[1][p]));if(Math.abs(x[0].fx-x[b].fx)<a&&d<c)break;for(let p=0;p<b;++p){T[p]=0;for(let f=0;f<b;++f)T[p]+=x[f][p];T[p]/=b}const l=x[b];if(J(S,1+h,T,-h,l),S.fx=t(S),S.fx<x[0].fx)J(m,1+u,T,-u,l),m.fx=t(m),m.fx<S.fx?M(m):M(S);else if(S.fx>=x[b-1].fx){let p=!1;if(S.fx>l.fx?(J(g,1+r,T,-r,l),g.fx=t(g),g.fx<l.fx?M(g):p=!0):(J(g,1-r*h,T,r*h,l),g.fx=t(g),g.fx<S.fx?M(g):p=!0),p){if(y>=1)break;for(let f=1;f<x.length;++f)J(x[f],1-y,x[0],y,x[f]),x[f].fx=t(x[f])}}else M(S)}return x.sort(A),{fx:x[0].fx,x:x[0]}}function ce(t,n,s,e,i,o,a){const c=s.fx,h=$(s.fxprime,n);let u=c,r=c,y=h,d=0;i=i||1,o=o||1e-6,a=a||.1;function b(x,M,A){for(let T=0;T<16;++T)if(i=(x+M)/2,J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),y=$(e.fxprime,n),u>c+o*i*h||u>=A)M=i;else{if(Math.abs(y)<=-a*h)return i;y*(M-x)>=0&&(M=x),x=i,A=u}return 0}for(let x=0;x<10;++x){if(J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),y=$(e.fxprime,n),u>c+o*i*h||x&&u>=r)return b(d,i,r);if(Math.abs(y)<=-a*h)return i;if(y>=0)return b(i,d,u);r=u,d=i,i*=2}return i}function ue(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()};const o=n.slice();let a,c,h=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),a=e.fxprime.slice(),ft(a,e.fxprime,-1);for(let r=0;r<u;++r){if(h=ce(t,a,e,i,h),s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:h}),!h)ft(a,e.fxprime,-1);else{J(o,1,i.fxprime,-1,e.fxprime);const y=$(e.fxprime,e.fxprime),d=Math.max(0,$(o,i.fxprime)/y);J(a,d,a,-1,i.fxprime),c=e,e=i,i=c}if(ut(e.fxprime)<=1e-5)break}return s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:h}),e}function At(t,n={}){n.maxIterations=n.maxIterations||500;const s=n.initialLayout||ge,e=n.lossFunction||tt,i=fe(t,n),o=s(i,n),a=Object.keys(o),c=[];for(const r of a)c.push(o[r].x),c.push(o[r].y);const u=zt(r=>{const y={};for(let d=0;d<a.length;++d){const b=a[d];y[b]={x:r[2*d],y:r[2*d+1],radius:o[b].radius}}return e(y,i)},c,n).x;for(let r=0;r<a.length;++r){const y=a[r];o[y].x=u[2*r],o[y].y=u[2*r+1]}return o}const Dt=1e-10;function ht(t,n,s){return Math.min(t,n)*Math.min(t,n)*Math.PI<=s+Dt?Math.abs(t-n):le(e=>xt(t,n,e)-s,0,t+n)}function fe(t,n={}){const s=n.distinct,e=t.map(c=>Object.assign({},c));function i(c){return c.join(";")}if(s){const c=new Map;for(const h of e)for(let u=0;u<h.sets.length;u++){const r=String(h.sets[u]);c.set(r,h.size+(c.get(r)||0));for(let y=u+1;y<h.sets.length;y++){const d=String(h.sets[y]),b=`${r};${d}`,x=`${d};${r}`;c.set(b,h.size+(c.get(b)||0)),c.set(x,h.size+(c.get(x)||0))}}for(const h of e)h.sets.length<3&&(h.size=c.get(i(h.sets)))}const o=[],a=new Set;for(const c of e)if(c.sets.length===1)o.push(c.sets[0]);else if(c.sets.length===2){const h=c.sets[0],u=c.sets[1];a.add(i(c.sets)),a.add(i([u,h]))}o.sort((c,h)=>c===h?0:c<h?-1:1);for(let c=0;c<o.length;++c){const h=o[c];for(let u=c+1;u<o.length;++u){const r=o[u];a.has(i([h,r]))||e.push({sets:[h,r],size:0})}}return e}function he(t,n,s){const e=Mt(n.length,n.length),i=Mt(n.length,n.length);return t.filter(o=>o.sets.length===2).forEach(o=>{const a=s[o.sets[0]],c=s[o.sets[1]],h=Math.sqrt(n[a].size/Math.PI),u=Math.sqrt(n[c].size/Math.PI),r=ht(h,u,o.size);e[a][c]=e[c][a]=r;let y=0;o.size+1e-10>=Math.min(n[a].size,n[c].size)?y=1:o.size<=1e-10&&(y=-1),i[a][c]=i[c][a]=y}),{distances:e,constraints:i}}function de(t,n,s,e){for(let o=0;o<n.length;++o)n[o]=0;let i=0;for(let o=0;o<s.length;++o){const a=t[2*o],c=t[2*o+1];for(let h=o+1;h<s.length;++h){const u=t[2*h],r=t[2*h+1],y=s[o][h],d=e[o][h],b=(u-a)*(u-a)+(r-c)*(r-c),x=Math.sqrt(b),M=b-y*y;d>0&&x<=y||d<0&&x>=y||(i+=2*M*M,n[2*o]+=4*M*(a-u),n[2*o+1]+=4*M*(c-r),n[2*h]+=4*M*(u-a),n[2*h+1]+=4*M*(r-c))}}return i}function ge(t,n={}){let s=ye(t,n);const e=n.lossFunction||tt;if(t.length>=8){const i=xe(t,n),o=e(i,t),a=e(s,t);o+1e-8<a&&(s=i)}return s}function xe(t,n={}){const s=n.restarts||10,e=[],i={};for(const d of t)d.sets.length===1&&(i[d.sets[0]]=e.length,e.push(d));let{distances:o,constraints:a}=he(t,e,i);const c=ut(o.map(ut))/o.length;o=o.map(d=>d.map(b=>b/c));const h=(d,b)=>de(d,b,o,a);let u=null;for(let d=0;d<s;++d){const b=ct(o.length*2).map(Math.random),x=ue(h,b,n);(!u||x.fx<u.fx)&&(u=x)}const r=u.x,y={};for(let d=0;d<e.length;++d){const b=e[d];y[b.sets[0]]={x:r[2*d]*c,y:r[2*d+1]*c,radius:Math.sqrt(b.size/Math.PI)}}if(n.history)for(const d of n.history)ft(d.x,c);return y}function ye(t,n){const s=n&&n.lossFunction?n.lossFunction:tt,e={},i={};for(const y of t)if(y.sets.length===1){const d=y.sets[0];e[d]={x:1e10,y:1e10,rowid:e.length,size:y.size,radius:Math.sqrt(y.size/Math.PI)},i[d]=[]}t=t.filter(y=>y.sets.length===2);for(const y of t){let d=y.weight!=null?y.weight:1;const b=y.sets[0],x=y.sets[1];y.size+Dt>=Math.min(e[b].size,e[x].size)&&(d=0),i[b].push({set:x,size:y.size,weight:d}),i[x].push({set:b,size:y.size,weight:d})}const o=[];Object.keys(i).forEach(y=>{let d=0;for(let b=0;b<i[y].length;++b)d+=i[y][b].size*i[y][b].weight;o.push({set:y,size:d})});function a(y,d){return d.size-y.size}o.sort(a);const c={};function h(y){return y.set in c}function u(y,d){e[d].x=y.x,e[d].y=y.y,c[d]=!0}u({x:0,y:0},o[0].set);for(let y=1;y<o.length;++y){const d=o[y].set,b=i[d].filter(h),x=e[d];if(b.sort(a),b.length===0)throw"ERROR: missing pairwise overlap information";const M=[];for(var r=0;r<b.length;++r){const S=e[b[r].set],g=ht(x.radius,S.radius,b[r].size);M.push({x:S.x+g,y:S.y}),M.push({x:S.x-g,y:S.y}),M.push({y:S.y+g,x:S.x}),M.push({y:S.y-g,x:S.x});for(let m=r+1;m<b.length;++m){const v=e[b[m].set],l=ht(x.radius,v.radius,b[m].size),p=Tt({x:S.x,y:S.y,radius:g},{x:v.x,y:v.y,radius:l});M.push(...p)}}let A=1e50,T=M[0];for(const S of M){e[d].x=S.x,e[d].y=S.y;const g=s(e,t);g<A&&(A=g,T=S)}u(T,d)}return e}function tt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const a=t[e.sets[0]],c=t[e.sets[1]];i=xt(a.radius,c.radius,q(a,c))}else i=st(e.sets.map(a=>t[a]));const o=e.weight!=null?e.weight:1;s+=o*(i-e.size)*(i-e.size)}return s}function Rt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const c=t[e.sets[0]],h=t[e.sets[1]];i=xt(c.radius,h.radius,q(c,h))}else i=st(e.sets.map(c=>t[c]));const o=e.weight!=null?e.weight:1,a=Math.log((i+1)/(e.size+1));s+=o*a*a}return s}function pe(t,n,s){if(s==null?t.sort((i,o)=>o.radius-i.radius):t.sort(s),t.length>0){const i=t[0].x,o=t[0].y;for(const a of t)a.x-=i,a.y-=o}if(t.length===2&&q(t[0],t[1])<Math.abs(t[1].radius-t[0].radius)&&(t[1].x=t[0].x+t[0].radius-t[1].radius-1e-10,t[1].y=t[0].y),t.length>1){const i=Math.atan2(t[1].x,t[1].y)-n,o=Math.cos(i),a=Math.sin(i);for(const c of t){const h=c.x,u=c.y;c.x=o*h-a*u,c.y=a*h+o*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){const o=t[1].y/(1e-10+t[1].x);for(const a of t){var e=(a.x+o*a.y)/(1+o*o);a.x=2*e-a.x,a.y=2*e*o-a.y}}}}function me(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,o){const a=n(i),c=n(o);a.parent=c}for(let i=0;i<t.length;++i)for(let o=i+1;o<t.length;++o){const a=t[i].radius+t[o].radius;q(t[i],t[o])+1e-10<a&&s(t[o],t[i])}const e=new Map;for(let i=0;i<t.length;++i){const o=n(t[i]).parent.setid;e.has(o)||e.set(o,[]),e.get(o).push(t[i])}return t.forEach(i=>{delete i.parent}),Array.from(e.values())}function dt(t){const n=s=>{const e=t.reduce((o,a)=>Math.max(o,a[s]+a.radius),Number.NEGATIVE_INFINITY),i=t.reduce((o,a)=>Math.min(o,a[s]-a.radius),Number.POSITIVE_INFINITY);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Ct(t,n,s){n==null&&(n=Math.PI/2);let e=Ft(t).map(u=>Object.assign({},u));const i=me(e);for(const u of i){pe(u,n,s);const r=dt(u);u.size=(r.xRange.max-r.xRange.min)*(r.yRange.max-r.yRange.min),u.bounds=r}i.sort((u,r)=>r.size-u.size),e=i[0];let o=e.bounds;const a=(o.xRange.max-o.xRange.min)/50;function c(u,r,y){if(!u)return;const d=u.bounds;let b,x;if(r)b=o.xRange.max-d.xRange.min+a;else{b=o.xRange.max-d.xRange.max;const M=(d.xRange.max-d.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;M<0&&(b+=M)}if(y)x=o.yRange.max-d.yRange.min+a;else{x=o.yRange.max-d.yRange.max;const M=(d.yRange.max-d.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;M<0&&(x+=M)}for(const M of u)M.x+=b,M.y+=x,e.push(M)}let h=1;for(;h<i.length;)c(i[h],!0,!1),c(i[h+1],!1,!0),c(i[h+2],!0,!0),h+=3,o=dt(e);return Ot(e)}function Nt(t,n,s,e,i){const o=Ft(t);n-=2*e,s-=2*e;const{xRange:a,yRange:c}=dt(o);if(a.max===a.min||c.max===c.min)return console.log("not scaling solution: zero size detected"),t;let h,u;if(i){const b=Math.sqrt(i/Math.PI)*2;h=n/b,u=s/b}else h=n/(a.max-a.min),u=s/(c.max-c.min);const r=Math.min(u,h),y=(n-(a.max-a.min)*r)/2,d=(s-(c.max-c.min)*r)/2;return Ot(o.map(b=>({radius:r*b.radius,x:e+y+(b.x-a.min)*r,y:e+d+(b.y-c.min)*r,setid:b.setid})))}function Ot(t){const n={};for(const s of t)n[s.setid]=s;return n}function Ft(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function be(t={}){let n=!1,s=600,e=350,i=15,o=1e3,a=Math.PI/2,c=!0,h=null,u=!0,r=!0,y=null,d=null,b=!1,x=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,A={},T=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],S=0,g=function(p){if(p in A)return A[p];var f=A[p]=T[S];return S+=1,S>=T.length&&(S=0),f},m=At,v=tt;function l(p){let f=p.datum();const N=new Set;f.forEach(k=>{k.size==0&&k.sets.length==1&&N.add(k.sets[0])}),f=f.filter(k=>!k.sets.some(F=>N.has(F)));let I={},R={};if(f.length>0){let k=m(f,{lossFunction:v,distinct:b});c&&(k=Ct(k,a,d)),I=Nt(k,s,e,i,h),R=jt(I,f,M)}const U={};f.forEach(k=>{k.label&&(U[k.sets]=k.label)});function j(k){if(k.sets in U)return U[k.sets];if(k.sets.length==1)return""+k.sets[0]}p.selectAll("svg").data([I]).enter().append("svg");const E=p.select("svg");n?E.attr("viewBox",`0 0 ${s} ${e}`):E.attr("width",s).attr("height",e);const D={};let _=!1;E.selectAll(".venn-area path").each(function(k){const F=this.getAttribute("d");k.sets.length==1&&F&&!b&&(_=!0,D[k.sets[0]]=ke(F))});function P(k){return F=>{const H=k.sets.map(et=>{let X=D[et],Z=I[et];return X||(X={x:s/2,y:e/2,radius:1}),Z||(Z={x:s/2,y:e/2,radius:1}),{x:X.x*(1-F)+Z.x*F,y:X.y*(1-F)+Z.y*F,radius:X.radius*(1-F)+Z.radius*F}});return St(H,x)}}const V=E.selectAll(".venn-area").data(f,k=>k.sets),O=V.enter().append("g").attr("class",k=>`venn-area venn-${k.sets.length==1?"circle":"intersection"}${k.colour||k.color?" venn-coloured":""}`).attr("data-venn-sets",k=>k.sets.join("_")),B=O.append("path"),W=O.append("text").attr("class","label").text(k=>j(k)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);r&&(B.style("fill-opacity","0").filter(k=>k.sets.length==1).style("fill",k=>k.colour?k.colour:k.color?k.color:g(k.sets)).style("fill-opacity",".25"),W.style("fill",k=>k.colour||k.color?"#FFF":t.textFill?t.textFill:k.sets.length==1?g(k.sets):"#444"));function K(k){return typeof k.transition=="function"?k.transition("venn").duration(o):k}let z=p;_&&typeof z.transition=="function"?(z=K(p),z.selectAll("path").attrTween("d",P)):z.selectAll("path").attr("d",k=>St(k.sets.map(F=>I[F])),x);const L=z.selectAll("text").filter(k=>k.sets in R).text(k=>j(k)).attr("x",k=>Math.floor(R[k.sets].x)).attr("y",k=>Math.floor(R[k.sets].y));u&&(_?"on"in L?L.on("end",rt(I,j)):L.each("end",rt(I,j)):L.each(rt(I,j)));const C=K(V.exit()).remove();typeof V.transition=="function"&&C.selectAll("path").attrTween("d",P);const Y=C.selectAll("text").attr("x",s/2).attr("y",e/2);return y!==null&&(W.style("font-size","0px"),L.style("font-size",y),Y.style("font-size","0px")),{circles:I,textCentres:R,nodes:V,enter:O,update:z,exit:C}}return l.wrap=function(p){return arguments.length?(u=p,l):u},l.useViewBox=function(){return n=!0,l},l.width=function(p){return arguments.length?(s=p,l):s},l.height=function(p){return arguments.length?(e=p,l):e},l.padding=function(p){return arguments.length?(i=p,l):i},l.distinct=function(p){return arguments.length?(b=p,l):b},l.colours=function(p){return arguments.length?(g=p,l):g},l.colors=function(p){return arguments.length?(g=p,l):g},l.fontSize=function(p){return arguments.length?(y=p,l):y},l.round=function(p){return arguments.length?(x=p,l):x},l.duration=function(p){return arguments.length?(o=p,l):o},l.layoutFunction=function(p){return arguments.length?(m=p,l):m},l.normalize=function(p){return arguments.length?(c=p,l):c},l.scaleToFit=function(p){return arguments.length?(h=p,l):h},l.styled=function(p){return arguments.length?(r=p,l):r},l.orientation=function(p){return arguments.length?(a=p,l):a},l.orientationOrder=function(p){return arguments.length?(d=p,l):d},l.lossFunction=function(p){return arguments.length?(v=p==="default"?tt:p==="logRatio"?Rt:p,l):v},l}function rt(t,n){return function(s){const e=this,i=t[s.sets[0]].radius||50,o=n(s)||"",a=o.split(/\s+/).reverse(),h=(o.length+a.length)/3;let u=a.pop(),r=[u],y=0;const d=1.1;e.textContent=null;const b=[];function x(g){const m=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return m.textContent=g,b.push(m),e.append(m),m}let M=x(u);for(;u=a.pop(),!!u;){r.push(u);const g=r.join(" ");M.textContent=g,g.length>h&&M.getComputedTextLength()>i&&(r.pop(),M.textContent=r.join(" "),r=[u],M=x(u),y++)}const A=.35-y*d/2,T=e.getAttribute("x"),S=e.getAttribute("y");b.forEach((g,m)=>{g.setAttribute("x",T),g.setAttribute("y",S),g.setAttribute("dy",`${A+m*d}em`)})}}function at(t,n,s){let e=n[0].radius-q(n[0],t);for(let i=1;i<n.length;++i){const o=n[i].radius-q(n[i],t);o<=e&&(e=o)}for(let i=0;i<s.length;++i){const o=q(s[i],t)-s[i].radius;o<=e&&(e=o)}return e}function Lt(t,n,s){const e=[];for(const r of t)e.push({x:r.x,y:r.y}),e.push({x:r.x+r.radius/2,y:r.y}),e.push({x:r.x-r.radius/2,y:r.y}),e.push({x:r.x,y:r.y+r.radius/2}),e.push({x:r.x,y:r.y-r.radius/2});let i=e[0],o=at(e[0],t,n);for(let r=1;r<e.length;++r){const y=at(e[r],t,n);y>=o&&(i=e[r],o=y)}const a=zt(r=>-1*at({x:r[0],y:r[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,c={x:s?0:a[0],y:a[1]};let h=!0;for(const r of t)if(q(c,r)>r.radius){h=!1;break}for(const r of n)if(q(c,r)<r.radius){h=!1;break}if(h)return c;if(t.length==1)return{x:t[0].x,y:t[0].y};const u={};return st(t,u),u.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:u.arcs.length==1?{x:u.arcs[0].circle.x,y:u.arcs[0].circle.y}:n.length?Lt(t,[]):Et(u.arcs.map(r=>r.p1))}function ve(t){const n={},s=Object.keys(t);for(const e of s)n[e]=[];for(let e=0;e<s.length;e++){const i=s[e],o=t[i];for(let a=e+1;a<s.length;++a){const c=s[a],h=t[c],u=q(o,h);u+h.radius<=o.radius+1e-10?n[c].push(i):u+o.radius<=h.radius+1e-10&&n[i].push(c)}}return n}function jt(t,n,s){const e={},i=ve(t);for(let o=0;o<n.length;++o){const a=n[o].sets,c={},h={};for(let d=0;d<a.length;++d){c[a[d]]=!0;const b=i[a[d]];for(let x=0;x<b.length;++x)h[b[x]]=!0}const u=[],r=[];for(let d in t)d in c?u.push(t[d]):d in h||r.push(t[d]);const y=Lt(u,r,s);e[a]=y,y.disjoint&&n[o].size>0&&console.log("WARNING: area "+a+" not represented on screen")}return e}function Ie(t,n,s){const e=[];return e.push(`
2
+ M`,t,n),e.push(`
3
+ m`,-s,0),e.push(`
4
+ a`,s,s,0,1,0,s*2,0),e.push(`
5
+ a`,s,s,0,1,0,-s*2,0),e.join(" ")}function ke(t){const n=t.split(" ");return{x:Number.parseFloat(n[1]),y:Number.parseFloat(n[2]),radius:-Number.parseFloat(n[4])}}function Pt(t){if(t.length===0)return[];const n={};return st(t,n),n.arcs}function Vt(t,n){if(t.length===0)return"M 0 0";const s=Math.pow(10,n||0),e=n!=null?o=>Math.round(o*s)/s:o=>o;if(t.length==1){const o=t[0].circle;return Ie(e(o.x),e(o.y),e(o.radius))}const i=[`
6
+ M`,e(t[0].p2.x),e(t[0].p2.y)];for(const o of t){const a=e(o.circle.radius);i.push(`
7
+ A`,a,a,0,o.large?1:0,o.sweep?1:0,e(o.p1.x),e(o.p1.y))}return i.join(" ")}function St(t,n){return Vt(Pt(t),n)}function Me(t,n={}){const{lossFunction:s,layoutFunction:e=At,normalize:i=!0,orientation:o=Math.PI/2,orientationOrder:a,width:c=600,height:h=350,padding:u=15,scaleToFit:r=!1,symmetricalTextCentre:y=!1,distinct:d,round:b=2}=n;let x=e(t,{lossFunction:s==="default"||!s?tt:s==="logRatio"?Rt:s,distinct:d});i&&(x=Ct(x,o,a));const M=Nt(x,c,h,u,r),A=jt(M,t,y),T=new Map(Object.keys(M).map(m=>[m,{set:m,x:M[m].x,y:M[m].y,radius:M[m].radius}])),S=t.map(m=>{const v=m.sets.map(f=>T.get(f)),l=Pt(v),p=Vt(l,b);return{circles:v,arcs:l,path:p,area:m,has:new Set(m.sets)}});function g(m){let v="";for(const l of S)l.has.size>m.length&&m.every(p=>l.has.has(p))&&(v+=" "+l.path);return v}return S.map(({circles:m,arcs:v,path:l,area:p})=>({data:p,text:A[p.sets],circles:m,arcs:v,path:l,distinctPath:l+g(p.sets)}))}var gt=(function(){var t=w(function(S,g,m,v){for(m=m||{},v=S.length;v--;m[S[v]]=g);return m},"o"),n=[5,8],s=[7,8,11,12,17,19,22,24],e=[1,17],i=[1,18],o=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],a=[1,31],c=[1,39],h=[7,8,11,12,17,19,22,24,27],u=[1,57],r=[1,56],y=[1,58],d=[1,59],b=[1,60],x=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],M={trace:w(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:w(function(g,m,v,l,p,f,N){var I=f.length-1;switch(p){case 1:return f[I-1];case 2:case 3:case 4:this.$=[];break;case 5:f[I-1].push(f[I]),this.$=f[I-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=f[I];break;case 8:l.setDiagramTitle(f[I].substr(6)),this.$=f[I].substr(6);break;case 9:l.addSubsetData([f[I]],void 0,void 0),l.setIndentMode&&l.setIndentMode(!0);break;case 10:l.addSubsetData([f[I-1]],f[I],void 0),l.setIndentMode&&l.setIndentMode(!0);break;case 11:l.addSubsetData([f[I-2]],void 0,parseFloat(f[I])),l.setIndentMode&&l.setIndentMode(!0);break;case 12:l.addSubsetData([f[I-3]],f[I-2],parseFloat(f[I])),l.setIndentMode&&l.setIndentMode(!0);break;case 13:if(f[I].length<2)throw new Error("union requires multiple identifiers");l.validateUnionIdentifiers&&l.validateUnionIdentifiers(f[I]),l.addSubsetData(f[I],void 0,void 0),l.setIndentMode&&l.setIndentMode(!0);break;case 14:if(f[I-1].length<2)throw new Error("union requires multiple identifiers");l.validateUnionIdentifiers&&l.validateUnionIdentifiers(f[I-1]),l.addSubsetData(f[I-1],f[I],void 0),l.setIndentMode&&l.setIndentMode(!0);break;case 15:if(f[I-2].length<2)throw new Error("union requires multiple identifiers");l.validateUnionIdentifiers&&l.validateUnionIdentifiers(f[I-2]),l.addSubsetData(f[I-2],void 0,parseFloat(f[I])),l.setIndentMode&&l.setIndentMode(!0);break;case 16:if(f[I-3].length<2)throw new Error("union requires multiple identifiers");l.validateUnionIdentifiers&&l.validateUnionIdentifiers(f[I-3]),l.addSubsetData(f[I-3],f[I-2],parseFloat(f[I])),l.setIndentMode&&l.setIndentMode(!0);break;case 17:case 18:case 19:l.addTextData(f[I-1],f[I],void 0);break;case 20:case 21:l.addTextData(f[I-2],f[I-1],f[I]);break;case 23:l.addStyleData(f[I-1],f[I]);break;case 24:case 25:case 26:var R=l.getCurrentSets();if(!R)throw new Error("text requires set");l.addTextData(R,f[I],void 0);break;case 27:case 28:var R=l.getCurrentSets();if(!R)throw new Error("text requires set");l.addTextData(R,f[I-1],f[I]);break;case 29:case 41:this.$=[f[I]];break;case 30:case 42:this.$=[...f[I-2],f[I]];break;case 31:this.$=[f[I-2],f[I]];break;case 33:this.$=f[I].join(" ");break;case 34:this.$=[f[I]];break;case 35:f[I-1].push(f[I]),this.$=f[I-1];break;case 43:case 44:this.$=f[I];break}},"anonymous"),table:[t(n,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},t(s,[2,4],{6:5}),t(n,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},t(s,[2,5]),t(s,[2,6]),t(s,[2,7]),t(s,[2,8]),{13:16,20:e,21:i},{13:20,18:19,20:e,21:i},{13:20,18:21,20:e,21:i},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:e,21:i},t(s,[2,9],{14:[1,27],15:[1,28]}),t(o,[2,43]),t(o,[2,44]),t(s,[2,13],{14:[1,29],15:[1,30],27:a}),t(o,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:a},t(s,[2,22]),t(s,[2,24],{14:[1,35]}),t(s,[2,25],{14:[1,36]}),t(s,[2,26]),{20:c,25:37,26:38,27:a},t(s,[2,10],{15:[1,40]}),{16:[1,41]},t(s,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:e,21:i},t(s,[2,17],{14:[1,45]}),t(s,[2,18],{14:[1,46]}),t(s,[2,19]),t(s,[2,27]),t(s,[2,28]),t(s,[2,23],{27:[1,47]}),t(h,[2,29]),{15:[1,48]},{16:[1,49]},t(s,[2,11]),{16:[1,50]},t(s,[2,15]),t(o,[2,42]),t(s,[2,20]),t(s,[2,21]),{20:c,26:51},{16:u,20:r,21:[1,53],28:52,29:54,30:55,31:y,32:d,33:b},t(s,[2,12]),t(s,[2,16]),t(h,[2,30]),t(h,[2,31]),t(h,[2,32]),t(h,[2,33],{30:61,16:u,20:r,31:y,32:d,33:b}),t(x,[2,34]),t(x,[2,36]),t(x,[2,37]),t(x,[2,38]),t(x,[2,39]),t(x,[2,40]),t(x,[2,35])],defaultActions:{6:[2,1]},parseError:w(function(g,m){if(m.recoverable)this.trace(g);else{var v=new Error(g);throw v.hash=m,v}},"parseError"),parse:w(function(g){var m=this,v=[0],l=[],p=[null],f=[],N=this.table,I="",R=0,U=0,j=2,E=1,D=f.slice.call(arguments,1),_=Object.create(this.lexer),P={yy:{}};for(var V in this.yy)Object.prototype.hasOwnProperty.call(this.yy,V)&&(P.yy[V]=this.yy[V]);_.setInput(g,P.yy),P.yy.lexer=_,P.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var O=_.yylloc;f.push(O);var B=_.options&&_.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function W(G){v.length=v.length-2*G,p.length=p.length-G,f.length=f.length-G}w(W,"popStack");function K(){var G;return G=l.pop()||_.lex()||E,typeof G!="number"&&(G instanceof Array&&(l=G,G=l.pop()),G=m.symbols_[G]||G),G}w(K,"lex");for(var z,L,C,Y,k={},F,H,et,X;;){if(L=v[v.length-1],this.defaultActions[L]?C=this.defaultActions[L]:((z===null||typeof z>"u")&&(z=K()),C=N[L]&&N[L][z]),typeof C>"u"||!C.length||!C[0]){var Z="";X=[];for(F in N[L])this.terminals_[F]&&F>j&&X.push("'"+this.terminals_[F]+"'");_.showPosition?Z="Parse error on line "+(R+1)+`:
8
+ `+_.showPosition()+`
9
+ Expecting `+X.join(", ")+", got '"+(this.terminals_[z]||z)+"'":Z="Parse error on line "+(R+1)+": Unexpected "+(z==E?"end of input":"'"+(this.terminals_[z]||z)+"'"),this.parseError(Z,{text:_.match,token:this.terminals_[z]||z,line:_.yylineno,loc:O,expected:X})}if(C[0]instanceof Array&&C.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+z);switch(C[0]){case 1:v.push(z),p.push(_.yytext),f.push(_.yylloc),v.push(C[1]),z=null,U=_.yyleng,I=_.yytext,R=_.yylineno,O=_.yylloc;break;case 2:if(H=this.productions_[C[1]][1],k.$=p[p.length-H],k._$={first_line:f[f.length-(H||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(H||1)].first_column,last_column:f[f.length-1].last_column},B&&(k._$.range=[f[f.length-(H||1)].range[0],f[f.length-1].range[1]]),Y=this.performAction.apply(k,[I,U,R,P.yy,C[1],p,f].concat(D)),typeof Y<"u")return Y;H&&(v=v.slice(0,-1*H*2),p=p.slice(0,-1*H),f=f.slice(0,-1*H)),v.push(this.productions_[C[1]][0]),p.push(k.$),f.push(k._$),et=N[v[v.length-2]][v[v.length-1]],v.push(et);break;case 3:return!0}}return!0},"parse")},A=(function(){var S={EOF:1,parseError:w(function(m,v){if(this.yy.parser)this.yy.parser.parseError(m,v);else throw new Error(m)},"parseError"),setInput:w(function(g,m){return this.yy=m||this.yy||{},this._input=g,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:w(function(){var g=this._input[0];this.yytext+=g,this.yyleng++,this.offset++,this.match+=g,this.matched+=g;var m=g.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),g},"input"),unput:w(function(g){var m=g.length,v=g.split(/(?:\r\n?|\n)/g);this._input=g+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var l=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===l.length?this.yylloc.first_column:0)+l[l.length-v.length].length-v[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:w(function(){return this._more=!0,this},"more"),reject:w(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
10
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:w(function(g){this.unput(this.match.slice(g))},"less"),pastInput:w(function(){var g=this.matched.substr(0,this.matched.length-this.match.length);return(g.length>20?"...":"")+g.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:w(function(){var g=this.match;return g.length<20&&(g+=this._input.substr(0,20-g.length)),(g.substr(0,20)+(g.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:w(function(){var g=this.pastInput(),m=new Array(g.length+1).join("-");return g+this.upcomingInput()+`
11
+ `+m+"^"},"showPosition"),test_match:w(function(g,m){var v,l,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),l=g[0].match(/(?:\r\n?|\n).*/g),l&&(this.yylineno+=l.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:l?l[l.length-1].length-l[l.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+g[0].length},this.yytext+=g[0],this.match+=g[0],this.matches=g,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(g[0].length),this.matched+=g[0],v=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var f in p)this[f]=p[f];return!1}return!1},"test_match"),next:w(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var g,m,v,l;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),f=0;f<p.length;f++)if(v=this._input.match(this.rules[p[f]]),v&&(!m||v[0].length>m[0].length)){if(m=v,l=f,this.options.backtrack_lexer){if(g=this.test_match(v,p[f]),g!==!1)return g;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(g=this.test_match(m,p[l]),g!==!1?g:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
12
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:w(function(){var m=this.next();return m||this.lex()},"lex"),begin:w(function(m){this.conditionStack.push(m)},"begin"),popState:w(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:w(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:w(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:w(function(m){this.begin(m)},"pushState"),stateStackSize:w(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:w(function(m,v,l,p){switch(l){case 0:break;case 1:break;case 2:break;case 3:if(m.getIndentMode&&m.getIndentMode())return m.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:m.setIndentMode&&m.setIndentMode(!1),this.begin("INITIAL"),this.unput(v.yytext);break;case 6:return this.begin("bol"),8;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(m.consumeIndentText)m.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return v.yytext=v.yytext.slice(2,-2),14;case 17:return v.yytext=v.yytext.slice(1,-1).trim(),14;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return S})();M.lexer=A;function T(){this.yy={}}return w(T,"Parser"),T.prototype=M,M.Parser=T,new T})();gt.parser=gt;var Se=gt,yt=[],pt=[],mt=[],bt=new Set,vt,It=!1,we=w((t,n,s)=>{const e=it(t).sort(),i=s??10/Math.pow(t.length,2);vt=e,e.length===1&&bt.add(e[0]),yt.push({sets:e,size:i,label:n?nt(n):void 0})},"addSubsetData"),_e=w(()=>yt,"getSubsetData"),nt=w(t=>{const n=t.trim();return n.length>=2&&n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1):n},"normalizeText"),Te=w(t=>t&&nt(t),"normalizeStyleValue"),Ee=w((t,n,s)=>{const e=nt(n);pt.push({sets:it(t).sort(),id:e,label:s?nt(s):void 0})},"addTextData"),ze=w((t,n)=>{const s=it(t).sort(),e={};for(const[i,o]of n)e[i]=Te(o)??o;mt.push({targets:s,styles:e})},"addStyleData"),Ae=w(()=>mt,"getStyleData"),it=w(t=>t.map(n=>nt(n)),"normalizeIdentifierList"),De=w(t=>{const s=it(t).filter(e=>!bt.has(e));if(s.length>0)throw new Error(`unknown set identifier: ${s.join(", ")}`)},"validateUnionIdentifiers"),Re=w(()=>pt,"getTextData"),Ce=w(()=>vt,"getCurrentSets"),Ne=w(()=>It,"getIndentMode"),Oe=w(t=>{It=t},"setIndentMode"),Fe=oe.venn;function Bt(){return ie(Fe,wt().venn)}w(Bt,"getConfig");var Le=w(()=>{se(),yt.length=0,pt.length=0,mt.length=0,bt.clear(),vt=void 0,It=!1},"customClear"),je={getConfig:Bt,clear:Le,setAccTitle:Zt,getAccTitle:Yt,setDiagramTitle:Xt,getDiagramTitle:Ht,getAccDescription:Kt,setAccDescription:Wt,addSubsetData:we,getSubsetData:_e,addTextData:Ee,addStyleData:ze,validateUnionIdentifiers:De,getTextData:Re,getStyleData:Ae,getCurrentSets:Ce,getIndentMode:Ne,setIndentMode:Oe},Pe=w(t=>`
13
+ .venn-title {
14
+ font-size: 32px;
15
+ fill: ${t.vennTitleTextColor};
16
+ font-family: ${t.fontFamily};
17
+ }
18
+
19
+ .venn-circle text {
20
+ font-size: 48px;
21
+ font-family: ${t.fontFamily};
22
+ }
23
+
24
+ .venn-intersection text {
25
+ font-size: 48px;
26
+ fill: ${t.vennSetTextColor};
27
+ font-family: ${t.fontFamily};
28
+ }
29
+
30
+ .venn-text-node {
31
+ font-family: ${t.fontFamily};
32
+ color: ${t.vennSetTextColor};
33
+ }
34
+ `,"getStyles"),Ve=Pe;function qt(t){const n=new Map;for(const s of t){const e=s.targets.join("|"),i=n.get(e);i?Object.assign(i,s.styles):n.set(e,{...s.styles})}return n}w(qt,"buildStyleByKey");var Be=w((t,n,s,e)=>{const i=e.db,o=i.getConfig?.(),{themeVariables:a,look:c,handDrawnSeed:h}=wt(),u=c==="handDrawn",r=[a.venn1,a.venn2,a.venn3,a.venn4,a.venn5,a.venn6,a.venn7,a.venn8].filter(Boolean),y=i.getDiagramTitle?.(),d=i.getSubsetData(),b=i.getTextData(),x=qt(i.getStyleData()),M=o?.width??800,A=o?.height??450,S=M/1600,g=y?48*S:0,m=a.primaryTextColor??a.textColor,v=Jt(n);v.attr("viewBox",`0 0 ${M} ${A}`),y&&v.append("text").text(y).attr("class","venn-title").attr("font-size",`${32*S}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*S).style("fill",a.vennTitleTextColor||a.titleColor);const l=ot(document.createElement("div")),p=be().width(M).height(A-g);l.datum(d).call(p);const f=u?Qt.svg(l.select("svg").node()):void 0,N=Me(d,{width:M,height:A-g,padding:o?.padding??15}),I=new Map;for(const E of N){const D=Q([...E.data.sets].sort());I.set(D,E)}b.length>0&&Ut(o,I,l,b,S,x);const R=$t(a.background||"#f4f4f4");l.selectAll(".venn-circle").each(function(E,D){const _=ot(this),V=Q([...E.sets].sort()),O=x.get(V),B=O?.fill||r[D%r.length]||a.primaryColor;_.classed(`venn-set-${D%8}`,!0);const W=O?.["fill-opacity"]??.1,K=O?.stroke||B,z=O?.["stroke-width"]||`${5*S}`;if(u&&f){const C=I.get(V);if(C&&C.circles.length>0){const Y=C.circles[0],k=f.circle(Y.x,Y.y,Y.radius*2,{roughness:.7,seed:h,fill:kt(B,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+D*60,stroke:K,strokeWidth:parseFloat(String(z))});_.select("path").remove(),_.node()?.insertBefore(k,_.select("text").node())}}else _.select("path").style("fill",B).style("fill-opacity",W).style("stroke",K).style("stroke-width",z).style("stroke-opacity",.95);const L=O?.color||(R?te(B,30):ee(B,30));_.select("text").style("font-size",`${48*S}px`).style("fill",L)}),u&&f?l.selectAll(".venn-intersection").each(function(E){const D=ot(this),P=Q([...E.sets].sort()),V=x.get(P),O=V?.fill;if(O){const B=D.select("path"),W=B.attr("d");if(W){const K=f.path(W,{roughness:.7,seed:h,fill:kt(O,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),z=B.node();z?.parentNode?.insertBefore(K,z),B.remove()}}else D.select("path").style("fill-opacity",0);D.select("text").style("font-size",`${48*S}px`).style("fill",V?.color??a.vennSetTextColor??m)}):(l.selectAll(".venn-intersection text").style("font-size",`${48*S}px`).style("fill",E=>{const _=Q([...E.sets].sort());return x.get(_)?.color??a.vennSetTextColor??m}),l.selectAll(".venn-intersection path").style("fill-opacity",E=>{const _=Q([...E.sets].sort());return x.get(_)?.fill?1:0}).style("fill",E=>{const _=Q([...E.sets].sort());return x.get(_)?.fill??"transparent"}));const U=v.append("g").attr("transform",`translate(0, ${g})`),j=l.select("svg").node();if(j&&"childNodes"in j)for(const E of[...j.childNodes])U.node()?.appendChild(E);ne(v,A,M,o?.useMaxWidth??!0)},"draw");function Q(t){return t.join("|")}w(Q,"stableSetsKey");function Ut(t,n,s,e,i,o){const a=t?.useDebugLayout??!1,h=s.select("svg").append("g").attr("class","venn-text-nodes"),u=new Map;for(const r of e){const y=Q(r.sets),d=u.get(y);d?d.push(r):u.set(y,[r])}for(const[r,y]of u.entries()){const d=n.get(r);if(!d?.text)continue;const b=d.text.x,x=d.text.y,M=Math.min(...d.circles.map(E=>E.radius)),A=Math.min(...d.circles.map(E=>E.radius-Math.hypot(b-E.x,x-E.y)));let T=Number.isFinite(A)?Math.max(0,A):0;T===0&&Number.isFinite(M)&&(T=M*.6);const S=h.append("g").attr("class","venn-text-area").attr("font-size",`${40*i}px`);a&&S.append("circle").attr("class","venn-text-debug-circle").attr("cx",b).attr("cy",x).attr("r",T).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*i).attr("stroke-dasharray",`${6*i} ${4*i}`);const g=Math.max(80*i,T*2*.95),m=Math.max(60*i,T*2*.95),p=(d.data.label&&d.data.label.length>0?Math.min(32*i,T*.25):0)+(y.length<=2?30*i:0),f=b-g/2,N=x-m/2+p,I=Math.max(1,Math.ceil(Math.sqrt(y.length))),R=Math.max(1,Math.ceil(y.length/I)),U=g/I,j=m/R;for(const[E,D]of y.entries()){const _=E%I,P=Math.floor(E/I),V=f+U*(_+.5),O=N+j*(P+.5);a&&S.append("rect").attr("class","venn-text-debug-cell").attr("x",f+U*_).attr("y",N+j*P).attr("width",U).attr("height",j).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*i).attr("stroke-dasharray",`${4*i} ${3*i}`);const B=U*.9,W=j*.9,K=S.append("foreignObject").attr("class","venn-text-node-fo").attr("width",B).attr("height",W).attr("x",V-B/2).attr("y",O-W/2).attr("overflow","visible"),z=o.get(D.id)?.color,L=K.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(D.label??D.id);z&&L.style("color",z)}}}w(Ut,"renderTextNodes");var qe={draw:Be},We={parser:Se,db:je,renderer:qe,styles:Ve};export{We as diagram};