@smartmemory/compose 0.2.44-beta → 0.2.46-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{App-BpvJr136.js → App-CZNprfTP.js} +104 -104
- package/dist/assets/{arc-BKK5xGGY.js → arc-D7Ql7gBh.js} +1 -1
- package/dist/assets/{architectureDiagram-3BPJPVTR-B5fKlS9b.js → architectureDiagram-3BPJPVTR-CMzqpLWw.js} +1 -1
- package/dist/assets/{blockDiagram-GPEHLZMM-auXUDg5r.js → blockDiagram-GPEHLZMM-CbW2AYzk.js} +1 -1
- package/dist/assets/{c4Diagram-AAUBKEIU-D4Hd23aq.js → c4Diagram-AAUBKEIU-C89TIEqM.js} +1 -1
- package/dist/assets/channel-sjm4Ncyv.js +1 -0
- package/dist/assets/{chunk-2J33WTMH-ERhP5YQt.js → chunk-2J33WTMH-jLQK9et3.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-CI8NIbCI.js → chunk-4BX2VUAB-bH25OCUA.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-D9msGx9f.js → chunk-55IACEB6-Dhb0bOrW.js} +1 -1
- package/dist/assets/{chunk-727SXJPM-BkxuNnCu.js → chunk-727SXJPM-CBfeQuSd.js} +1 -1
- package/dist/assets/{chunk-AQP2D5EJ-DE6dXOiW.js → chunk-AQP2D5EJ-CIxa5qRv.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-BcFAeqKD.js → chunk-FMBD7UC4-CmXvjRAO.js} +1 -1
- package/dist/assets/{chunk-ND2GUHAM-B3PUjYzW.js → chunk-ND2GUHAM-DRs6NTTH.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-DClFmPO4.js → chunk-QZHKN3VN-BmkcOtBV.js} +1 -1
- package/dist/assets/classDiagram-4FO5ZUOK-LkIQdBsc.js +1 -0
- package/dist/assets/classDiagram-v2-Q7XG4LA2-LkIQdBsc.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-H4CnmObG.js → cose-bilkent-S5V4N54A-BZwhzUqa.js} +1 -1
- package/dist/assets/{dagre-BM42HDAG-BzXHUVFP.js → dagre-BM42HDAG-CEHe9vzv.js} +1 -1
- package/dist/assets/{diagram-2AECGRRQ-Ce42m7Ny.js → diagram-2AECGRRQ-Cq8RCIdY.js} +1 -1
- package/dist/assets/{diagram-5GNKFQAL-7w2_X4JB.js → diagram-5GNKFQAL-DCaYgQ-u.js} +1 -1
- package/dist/assets/{diagram-KO2AKTUF-C7xKkPaX.js → diagram-KO2AKTUF-DehQMQAE.js} +1 -1
- package/dist/assets/{diagram-LMA3HP47-sGB8husY.js → diagram-LMA3HP47-BUJ8pJCq.js} +1 -1
- package/dist/assets/{diagram-OG6HWLK6-BP78tKSb.js → diagram-OG6HWLK6-BrqALaH3.js} +1 -1
- package/dist/assets/{erDiagram-TEJ5UH35-sdYvX-pQ.js → erDiagram-TEJ5UH35-Cz2hnPqN.js} +1 -1
- package/dist/assets/{flowDiagram-I6XJVG4X-BcrSyJck.js → flowDiagram-I6XJVG4X-BpPrbE4K.js} +1 -1
- package/dist/assets/{ganttDiagram-6RSMTGT7-BBvkCw3P.js → ganttDiagram-6RSMTGT7-Dne2jtVu.js} +1 -1
- package/dist/assets/{gitGraphDiagram-PVQCEYII--GZAaugO.js → gitGraphDiagram-PVQCEYII-W8OpyxIG.js} +1 -1
- package/dist/assets/{graph-BqpC5g-G.js → graph-viND0NdB.js} +1 -1
- package/dist/assets/{index-DCkbHzW2.js → index-BVnbNZXC.js} +3 -3
- package/dist/assets/{infoDiagram-5YYISTIA-CSzqgMCs.js → infoDiagram-5YYISTIA-4OeddgjS.js} +1 -1
- package/dist/assets/{ishikawaDiagram-YF4QCWOH-BUfp14Zq.js → ishikawaDiagram-YF4QCWOH-D0XwMcCq.js} +1 -1
- package/dist/assets/{journeyDiagram-JHISSGLW--9xtsZH2.js → journeyDiagram-JHISSGLW-CO0wIeDT.js} +1 -1
- package/dist/assets/{kanban-definition-UN3LZRKU-DFm5i6tP.js → kanban-definition-UN3LZRKU-CLU0ciYv.js} +1 -1
- package/dist/assets/{linear-DEaKmzWr.js → linear-BOFLe2h1.js} +1 -1
- package/dist/assets/{mindmap-definition-RKZ34NQL-qZ6y6fJc.js → mindmap-definition-RKZ34NQL-ByuwlkdD.js} +1 -1
- package/dist/assets/mobile-B-d4crm_.js +17 -0
- package/dist/assets/mobile-Cag5dHlF.css +1 -0
- package/dist/assets/{pieDiagram-4H26LBE5-Ck7e5I0z.js → pieDiagram-4H26LBE5-CPm2BXke.js} +1 -1
- package/dist/assets/{quadrantDiagram-W4KKPZXB-BVF0Fe8w.js → quadrantDiagram-W4KKPZXB-CR3NLvwU.js} +1 -1
- package/dist/assets/{requirementDiagram-4Y6WPE33-DRmPuCjX.js → requirementDiagram-4Y6WPE33-D4vpyryW.js} +1 -1
- package/dist/assets/{sankeyDiagram-5OEKKPKP-DxIn0k4O.js → sankeyDiagram-5OEKKPKP--Clp0eo-.js} +1 -1
- package/dist/assets/{sequenceDiagram-3UESZ5HK-BfEb9lhG.js → sequenceDiagram-3UESZ5HK-B1xrJkMo.js} +1 -1
- package/dist/assets/{stateDiagram-AJRCARHV-m-DnV37N.js → stateDiagram-AJRCARHV-D5w5yQql.js} +1 -1
- package/dist/assets/stateDiagram-v2-BHNVJYJU-TPU-mOqi.js +1 -0
- package/dist/assets/{timeline-definition-PNZ67QCA-C6x4Guef.js → timeline-definition-PNZ67QCA-DxOINQqf.js} +1 -1
- package/dist/assets/{vennDiagram-CIIHVFJN-BJdNFRoM.js → vennDiagram-CIIHVFJN-B3Wss4do.js} +1 -1
- package/dist/assets/{wardley-L42UT6IY-CeJx52d8.js → wardley-L42UT6IY-nYDkwvlu.js} +1 -1
- package/dist/assets/{wardleyDiagram-YWT4CUSO-BOtox3r2.js → wardleyDiagram-YWT4CUSO-BMM3myEL.js} +1 -1
- package/dist/assets/{xychartDiagram-2RQKCTM6-DXXQyNPs.js → xychartDiagram-2RQKCTM6-B5ElCNMx.js} +1 -1
- package/dist/index.html +3 -3
- package/lib/build-history.js +40 -0
- package/lib/build.js +56 -8
- package/package.json +1 -1
- package/dist/assets/channel-DMuM_85t.js +0 -1
- package/dist/assets/classDiagram-4FO5ZUOK-CbfHTEAY.js +0 -1
- package/dist/assets/classDiagram-v2-Q7XG4LA2-CbfHTEAY.js +0 -1
- package/dist/assets/mobile-5PV1E6OC.css +0 -1
- package/dist/assets/mobile-DAxPPzok.js +0 -17
- package/dist/assets/stateDiagram-v2-BHNVJYJU-DSuWTPhX.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as le}from"./chunk-55IACEB6-
|
|
1
|
+
import{g as le}from"./chunk-55IACEB6-Dhb0bOrW.js";import{s as he}from"./chunk-2J33WTMH-jLQK9et3.js";import{_ as h,l as R,o as de,r as ge,D as ue,G as W,c as M,i as H,b6 as pe,V as fe,W as me,X as ye}from"./App-CZNprfTP.js";import"./mobile-B-d4crm_.js";import"./index-BVnbNZXC.js";import"./graph-viND0NdB.js";const _=[];for(let t=0;t<256;++t)_.push((t+256).toString(16).slice(1));function Ee(t,e=0){return(_[t[e+0]]+_[t[e+1]]+_[t[e+2]]+_[t[e+3]]+"-"+_[t[e+4]]+_[t[e+5]]+"-"+_[t[e+6]]+_[t[e+7]]+"-"+_[t[e+8]]+_[t[e+9]]+"-"+_[t[e+10]]+_[t[e+11]]+_[t[e+12]]+_[t[e+13]]+_[t[e+14]]+_[t[e+15]]).toLowerCase()}let K;const _e=new Uint8Array(16);function be(){if(!K){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");K=crypto.getRandomValues.bind(crypto)}return K(_e)}const ke=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ie={randomUUID:ke};function Se(t,e,a){var n;if(ie.randomUUID&&!t)return ie.randomUUID();t=t||{};const l=t.random??((n=t.rng)==null?void 0:n.call(t))??be();if(l.length<16)throw new Error("Random bytes length must be >= 16");return l[6]=l[6]&15|64,l[8]=l[8]&63|128,Ee(l)}var Q=(function(){var t=h(function(O,s,i,o){for(i=i||{},o=O.length;o--;i[O[o]]=s);return i},"o"),e=[1,4],a=[1,13],l=[1,12],n=[1,15],d=[1,16],p=[1,20],y=[1,19],E=[6,7,8],k=[1,26],L=[1,24],N=[1,25],b=[6,7,11],$=[1,6,13,15,16,19,22],f=[1,33],U=[1,34],B=[1,6,7,11,13,15,16,19,22],X={trace:h(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:h(function(s,i,o,c,u,r,P){var g=r.length-1;switch(u){case 6:case 7:return c;case 8:c.getLogger().trace("Stop NL ");break;case 9:c.getLogger().trace("Stop EOF ");break;case 11:c.getLogger().trace("Stop NL2 ");break;case 12:c.getLogger().trace("Stop EOF2 ");break;case 15:c.getLogger().info("Node: ",r[g].id),c.addNode(r[g-1].length,r[g].id,r[g].descr,r[g].type);break;case 16:c.getLogger().trace("Icon: ",r[g]),c.decorateNode({icon:r[g]});break;case 17:case 21:c.decorateNode({class:r[g]});break;case 18:c.getLogger().trace("SPACELIST");break;case 19:c.getLogger().trace("Node: ",r[g].id),c.addNode(0,r[g].id,r[g].descr,r[g].type);break;case 20:c.decorateNode({icon:r[g]});break;case 25:c.getLogger().trace("node found ..",r[g-2]),this.$={id:r[g-1],descr:r[g-1],type:c.getType(r[g-2],r[g])};break;case 26:this.$={id:r[g],descr:r[g],type:c.nodeType.DEFAULT};break;case 27:c.getLogger().trace("node found ..",r[g-3]),this.$={id:r[g-3],descr:r[g-1],type:c.getType(r[g-2],r[g])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:a,7:[1,10],9:9,12:11,13:l,14:14,15:n,16:d,17:17,18:18,19:p,22:y},t(E,[2,3]),{1:[2,2]},t(E,[2,4]),t(E,[2,5]),{1:[2,6],6:a,12:21,13:l,14:14,15:n,16:d,17:17,18:18,19:p,22:y},{6:a,9:22,12:11,13:l,14:14,15:n,16:d,17:17,18:18,19:p,22:y},{6:k,7:L,10:23,11:N},t(b,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:p,22:y}),t(b,[2,18]),t(b,[2,19]),t(b,[2,20]),t(b,[2,21]),t(b,[2,23]),t(b,[2,24]),t(b,[2,26],{19:[1,30]}),{20:[1,31]},{6:k,7:L,10:32,11:N},{1:[2,7],6:a,12:21,13:l,14:14,15:n,16:d,17:17,18:18,19:p,22:y},t($,[2,14],{7:f,11:U}),t(B,[2,8]),t(B,[2,9]),t(B,[2,10]),t(b,[2,15]),t(b,[2,16]),t(b,[2,17]),{20:[1,35]},{21:[1,36]},t($,[2,13],{7:f,11:U}),t(B,[2,11]),t(B,[2,12]),{21:[1,37]},t(b,[2,25]),t(b,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:h(function(s,i){if(i.recoverable)this.trace(s);else{var o=new Error(s);throw o.hash=i,o}},"parseError"),parse:h(function(s){var i=this,o=[0],c=[],u=[null],r=[],P=this.table,g="",F=0,Z=0,re=2,ee=1,oe=r.slice.call(arguments,1),m=Object.create(this.lexer),I={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(I.yy[z]=this.yy[z]);m.setInput(s,I.yy),I.yy.lexer=m,I.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var Y=m.yylloc;r.push(Y);var ae=m.options&&m.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ce(x){o.length=o.length-2*x,u.length=u.length-x,r.length=r.length-x}h(ce,"popStack");function te(){var x;return x=c.pop()||m.lex()||ee,typeof x!="number"&&(x instanceof Array&&(c=x,x=c.pop()),x=i.symbols_[x]||x),x}h(te,"lex");for(var S,C,D,q,w={},G,v,ne,j;;){if(C=o[o.length-1],this.defaultActions[C]?D=this.defaultActions[C]:((S===null||typeof S>"u")&&(S=te()),D=P[C]&&P[C][S]),typeof D>"u"||!D.length||!D[0]){var J="";j=[];for(G in P[C])this.terminals_[G]&&G>re&&j.push("'"+this.terminals_[G]+"'");m.showPosition?J="Parse error on line "+(F+1)+`:
|
|
2
2
|
`+m.showPosition()+`
|
|
3
3
|
Expecting `+j.join(", ")+", got '"+(this.terminals_[S]||S)+"'":J="Parse error on line "+(F+1)+": Unexpected "+(S==ee?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(J,{text:m.match,token:this.terminals_[S]||S,line:m.yylineno,loc:Y,expected:j})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+S);switch(D[0]){case 1:o.push(S),u.push(m.yytext),r.push(m.yylloc),o.push(D[1]),S=null,Z=m.yyleng,g=m.yytext,F=m.yylineno,Y=m.yylloc;break;case 2:if(v=this.productions_[D[1]][1],w.$=u[u.length-v],w._$={first_line:r[r.length-(v||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(v||1)].first_column,last_column:r[r.length-1].last_column},ae&&(w._$.range=[r[r.length-(v||1)].range[0],r[r.length-1].range[1]]),q=this.performAction.apply(w,[g,Z,F,I.yy,D[1],u,r].concat(oe)),typeof q<"u")return q;v&&(o=o.slice(0,-1*v*2),u=u.slice(0,-1*v),r=r.slice(0,-1*v)),o.push(this.productions_[D[1]][0]),u.push(w.$),r.push(w._$),ne=P[o[o.length-2]][o[o.length-1]],o.push(ne);break;case 3:return!0}}return!0},"parse")},se=(function(){var O={EOF:1,parseError:h(function(i,o){if(this.yy.parser)this.yy.parser.parseError(i,o);else throw new Error(i)},"parseError"),setInput:h(function(s,i){return this.yy=i||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:h(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var i=s.match(/(?:\r\n?|\n).*/g);return i?(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:h(function(s){var i=s.length,o=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var c=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),o.length-1&&(this.yylineno-=o.length-1);var u=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:o?(o.length===c.length?this.yylloc.first_column:0)+c[c.length-o.length].length-o[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:h(function(){return this._more=!0,this},"more"),reject:h(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
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:h(function(s){this.unput(this.match.slice(s))},"less"),pastInput:h(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:h(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:h(function(){var s=this.pastInput(),i=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function Le(e,n){for(var s=0;s<n.length;s++){const a=n[s];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in e)){const u=Object.getOwnPropertyDescriptor(a,i);u&&Object.defineProperty(e,i,u.get?u:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var js=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Oe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ce={exports:{}},se={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var he;function De(){if(he)return se;he=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function s(a,i,u){var c=null;if(u!==void 0&&(c=""+u),i.key!==void 0&&(c=""+i.key),"key"in i){u={};for(var l in i)l!=="key"&&(u[l]=i[l])}else u=i;return i=u.ref,{$$typeof:e,type:a,key:c,ref:i!==void 0?i:null,props:u}}return se.Fragment=n,se.jsx=s,se.jsxs=s,se}var pe;function Me(){return pe||(pe=1,ce.exports=De()),ce.exports}var t=Me(),de={exports:{}},P={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var be;function Ge(){if(be)return P;be=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),c=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),p=Symbol.iterator;function g(o){return o===null||typeof o!="object"?null:(o=p&&o[p]||o["@@iterator"],typeof o=="function"?o:null)}var N={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,v={};function E(o,C,$){this.props=o,this.context=C,this.refs=v,this.updater=$||N}E.prototype.isReactComponent={},E.prototype.setState=function(o,C){if(typeof o!="object"&&typeof o!="function"&&o!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,o,C,"setState")},E.prototype.forceUpdate=function(o){this.updater.enqueueForceUpdate(this,o,"forceUpdate")};function w(){}w.prototype=E.prototype;function T(o,C,$){this.props=o,this.context=C,this.refs=v,this.updater=$||N}var x=T.prototype=new w;x.constructor=T,k(x,E.prototype),x.isPureReactComponent=!0;var j=Array.isArray;function h(){}var b={H:null,A:null,T:null,S:null},S=Object.prototype.hasOwnProperty;function A(o,C,$){var _=$.ref;return{$$typeof:e,type:o,key:C,ref:_!==void 0?_:null,props:$}}function D(o,C){return A(o.type,C,o.props)}function I(o){return typeof o=="object"&&o!==null&&o.$$typeof===e}function O(o){var C={"=":"=0",":":"=2"};return"$"+o.replace(/[=:]/g,function($){return C[$]})}var L=/\/+/g;function F(o,C){return typeof o=="object"&&o!==null&&o.key!=null?O(""+o.key):C.toString(36)}function q(o){switch(o.status){case"fulfilled":return o.value;case"rejected":throw o.reason;default:switch(typeof o.status=="string"?o.then(h,h):(o.status="pending",o.then(function(C){o.status==="pending"&&(o.status="fulfilled",o.value=C)},function(C){o.status==="pending"&&(o.status="rejected",o.reason=C)})),o.status){case"fulfilled":return o.value;case"rejected":throw o.reason}}throw o}function Y(o,C,$,_,M){var G=typeof o;(G==="undefined"||G==="boolean")&&(o=null);var U=!1;if(o===null)U=!0;else switch(G){case"bigint":case"string":case"number":U=!0;break;case"object":switch(o.$$typeof){case e:case n:U=!0;break;case m:return U=o._init,Y(U(o._payload),C,$,_,M)}}if(U)return M=M(o),U=_===""?"."+F(o,0):_,j(M)?($="",U!=null&&($=U.replace(L,"$&/")+"/"),Y(M,C,$,"",function(R){return R})):M!=null&&(I(M)&&(M=D(M,$+(M.key==null||o&&o.key===M.key?"":(""+M.key).replace(L,"$&/")+"/")+U)),C.push(M)),1;U=0;var K=_===""?".":_+":";if(j(o))for(var B=0;B<o.length;B++)_=o[B],G=K+F(_,B),U+=Y(_,C,$,G,M);else if(B=g(o),typeof B=="function")for(o=B.call(o),B=0;!(_=o.next()).done;)_=_.value,G=K+F(_,B++),U+=Y(_,C,$,G,M);else if(G==="object"){if(typeof o.then=="function")return Y(q(o),C,$,_,M);throw C=String(o),Error("Objects are not valid as a React child (found: "+(C==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":C)+"). If you meant to render a collection of children, use an array instead.")}return U}function z(o,C,$){if(o==null)return o;var _=[],M=0;return Y(o,_,"","",function(G){return C.call($,G,M++)}),_}function ee(o){if(o._status===-1){var C=o._result;C=C(),C.then(function($){(o._status===0||o._status===-1)&&(o._status=1,o._result=$)},function($){(o._status===0||o._status===-1)&&(o._status=2,o._result=$)}),o._status===-1&&(o._status=0,o._result=C)}if(o._status===1)return o._result.default;throw o._result}var Q=typeof reportError=="function"?reportError:function(o){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var C=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof o=="object"&&o!==null&&typeof o.message=="string"?String(o.message):String(o),error:o});if(!window.dispatchEvent(C))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",o);return}console.error(o)},W={map:z,forEach:function(o,C,$){z(o,function(){C.apply(this,arguments)},$)},count:function(o){var C=0;return z(o,function(){C++}),C},toArray:function(o){return z(o,function(C){return C})||[]},only:function(o){if(!I(o))throw Error("React.Children.only expected to receive a single React element child.");return o}};return P.Activity=f,P.Children=W,P.Component=E,P.Fragment=s,P.Profiler=i,P.PureComponent=T,P.StrictMode=a,P.Suspense=d,P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=b,P.__COMPILER_RUNTIME={__proto__:null,c:function(o){return b.H.useMemoCache(o)}},P.cache=function(o){return function(){return o.apply(null,arguments)}},P.cacheSignal=function(){return null},P.cloneElement=function(o,C,$){if(o==null)throw Error("The argument must be a React element, but you passed "+o+".");var _=k({},o.props),M=o.key;if(C!=null)for(G in C.key!==void 0&&(M=""+C.key),C)!S.call(C,G)||G==="key"||G==="__self"||G==="__source"||G==="ref"&&C.ref===void 0||(_[G]=C[G]);var G=arguments.length-2;if(G===1)_.children=$;else if(1<G){for(var U=Array(G),K=0;K<G;K++)U[K]=arguments[K+2];_.children=U}return A(o.type,M,_)},P.createContext=function(o){return o={$$typeof:c,_currentValue:o,_currentValue2:o,_threadCount:0,Provider:null,Consumer:null},o.Provider=o,o.Consumer={$$typeof:u,_context:o},o},P.createElement=function(o,C,$){var _,M={},G=null;if(C!=null)for(_ in C.key!==void 0&&(G=""+C.key),C)S.call(C,_)&&_!=="key"&&_!=="__self"&&_!=="__source"&&(M[_]=C[_]);var U=arguments.length-2;if(U===1)M.children=$;else if(1<U){for(var K=Array(U),B=0;B<U;B++)K[B]=arguments[B+2];M.children=K}if(o&&o.defaultProps)for(_ in U=o.defaultProps,U)M[_]===void 0&&(M[_]=U[_]);return A(o,G,M)},P.createRef=function(){return{current:null}},P.forwardRef=function(o){return{$$typeof:l,render:o}},P.isValidElement=I,P.lazy=function(o){return{$$typeof:m,_payload:{_status:-1,_result:o},_init:ee}},P.memo=function(o,C){return{$$typeof:y,type:o,compare:C===void 0?null:C}},P.startTransition=function(o){var C=b.T,$={};b.T=$;try{var _=o(),M=b.S;M!==null&&M($,_),typeof _=="object"&&_!==null&&typeof _.then=="function"&&_.then(h,Q)}catch(G){Q(G)}finally{C!==null&&$.types!==null&&(C.types=$.types),b.T=C}},P.unstable_useCacheRefresh=function(){return b.H.useCacheRefresh()},P.use=function(o){return b.H.use(o)},P.useActionState=function(o,C,$){return b.H.useActionState(o,C,$)},P.useCallback=function(o,C){return b.H.useCallback(o,C)},P.useContext=function(o){return b.H.useContext(o)},P.useDebugValue=function(){},P.useDeferredValue=function(o,C){return b.H.useDeferredValue(o,C)},P.useEffect=function(o,C){return b.H.useEffect(o,C)},P.useEffectEvent=function(o){return b.H.useEffectEvent(o)},P.useId=function(){return b.H.useId()},P.useImperativeHandle=function(o,C,$){return b.H.useImperativeHandle(o,C,$)},P.useInsertionEffect=function(o,C){return b.H.useInsertionEffect(o,C)},P.useLayoutEffect=function(o,C){return b.H.useLayoutEffect(o,C)},P.useMemo=function(o,C){return b.H.useMemo(o,C)},P.useOptimistic=function(o,C){return b.H.useOptimistic(o,C)},P.useReducer=function(o,C,$){return b.H.useReducer(o,C,$)},P.useRef=function(o){return b.H.useRef(o)},P.useState=function(o){return b.H.useState(o)},P.useSyncExternalStore=function(o,C,$){return b.H.useSyncExternalStore(o,C,$)},P.useTransition=function(){return b.H.useTransition()},P.version="19.2.7",P}var ye;function Fe(){return ye||(ye=1,de.exports=Ge()),de.exports}var r=Fe();const Ue=Oe(r),Ns=Le({__proto__:null,default:Ue},[r]);let fe=null;function vs(e){fe=e??null}function J(e,n={}){const s={...n.headers||{}};return fe&&(s["X-Compose-Workspace-Id"]=fe),fetch(e,{...n,headers:s})}const He="";let Ee=null;function ge(e){Ee=e||null}function Be(){return Ee||He||""}function V(e={}){const n=Be();return n?{...e,"x-compose-token":n}:e}const Je=[{id:"explore_design",name:"Explore Design",agent:"claude",phase:"design",hasGate:!1},{id:"design_review",name:"Design Review",agent:"codex",phase:"design",hasGate:!1},{id:"design_gate",name:"Design Gate",agent:"human",phase:"design",hasGate:!0},{id:"prd",name:"PRD",agent:"claude",phase:"design",hasGate:!1},{id:"prd_review",name:"PRD Review",agent:"codex",phase:"design",hasGate:!1},{id:"prd_gate",name:"PRD Gate",agent:"human",phase:"design",hasGate:!0},{id:"architecture",name:"Architecture",agent:"claude",phase:"design",hasGate:!1},{id:"architecture_review",name:"Arch Review",agent:"codex",phase:"design",hasGate:!1},{id:"architecture_gate",name:"Arch Gate",agent:"human",phase:"design",hasGate:!0},{id:"blueprint",name:"Blueprint",agent:"claude",phase:"blueprint",hasGate:!1},{id:"verification",name:"Verification",agent:"claude",phase:"blueprint",hasGate:!1},{id:"blueprint_review",name:"BP Review",agent:"codex",phase:"blueprint",hasGate:!1},{id:"plan",name:"Plan",agent:"claude",phase:"implementation",hasGate:!1},{id:"plan_review",name:"Plan Review",agent:"codex",phase:"implementation",hasGate:!1},{id:"plan_gate",name:"Plan Gate",agent:"human",phase:"implementation",hasGate:!0},{id:"execute",name:"Execute",agent:"claude",phase:"implementation",hasGate:!1},{id:"review",name:"Review Loop",agent:"codex",phase:"implementation",hasGate:!1},{id:"coverage",name:"Coverage Sweep",agent:"claude",phase:"implementation",hasGate:!1},{id:"report",name:"Report",agent:"claude",phase:"ship",hasGate:!1},{id:"report_review",name:"Report Review",agent:"codex",phase:"ship",hasGate:!1},{id:"report_gate",name:"Report Gate",agent:"human",phase:"ship",hasGate:!0},{id:"docs",name:"Docs",agent:"claude",phase:"ship",hasGate:!1},{id:"ship",name:"Ship",agent:"claude",phase:"ship",hasGate:!1},{id:"ship_gate",name:"Ship Gate",agent:"human",phase:"ship",hasGate:!0}],qe=new Set(["complete","completed","aborted","failed","killed","done"]);function ae(e){return qe.has(e)}function Ye(e,n,s){const a=Array.isArray(n)?Object.fromEntries(n.map(c=>[c.id,c.status])):{},i=Array.isArray(n)?Object.fromEntries(n.map(c=>[c.id,c])):{},u=e.map(c=>{const l=i[c.id],d=l?{...c,...l}:{...c};return d.id===s&&!a[d.id]&&(d.status="active"),d});if(Array.isArray(n))for(const c of n)e.find(l=>l.id===c.id)||u.push({id:c.id,name:c.id.replace(/_/g," "),agent:"claude",phase:"implementation",...c});return u}function We(e,n,s){if(!e)return!1;const{featureCode:a,status:i,currentStepId:u}=e;if(i!=="running"||!u||!u.endsWith("_gate"))return!1;const c=Array.isArray(s)?s:[],l=c.find(d=>d.featureCode===a)||c.find(d=>d.title===a)||c.find(d=>d.title&&d.title.startsWith(a+":"));return l?(Array.isArray(n)?n:[]).some(d=>d.itemId===l.id&&!d.resolvedAt):!1}const Ke=[{id:"agents",label:"Agents",icon:"◇"},{id:"roadmap",label:"Roadmap",icon:"⚡"},{id:"builds",label:"Builds",icon:"⏵"},{id:"ideas",label:"Ideas",icon:"✦"}];function ze({active:e,onSelect:n,badges:s}){return t.jsx("nav",{className:"m-bottom-nav",role:"tablist","aria-label":"Mobile navigation",children:Ke.map(a=>{const i=s==null?void 0:s[a.id];return t.jsxs("button",{type:"button",className:"m-nav-btn",role:"tab","aria-pressed":e===a.id?"true":"false","aria-label":a.label,"data-tab":a.id,"data-testid":`mobile-nav-${a.id}`,onClick:()=>n(a.id),children:[t.jsxs("span",{className:"m-nav-icon-wrap",children:[t.jsx("span",{className:"m-nav-icon","aria-hidden":"true",children:a.icon}),i&&t.jsx("span",{className:`m-nav-badge m-nav-badge-${i.level||"info"}`,"data-testid":`mobile-nav-badge-${a.id}`,"aria-hidden":"true",children:i.count!=null?String(i.count):""})]}),t.jsx("span",{className:"m-nav-label",children:a.label})]},a.id)})})}async function Xe(e,n={}){const s=await J(e,n);let a=null;try{a=await s.json()}catch{}if(!s.ok){const i=a&&a.error||`HTTP ${s.status}`;throw new Error(i)}return a}function Ve(){const[e,n]=r.useState([]),[s,a]=r.useState(!0),[i,u]=r.useState(null),c=r.useRef(!0),l=r.useCallback(async()=>{try{const d=await Xe("/api/agents/tree");if(!c.current)return;n(Array.isArray(d==null?void 0:d.agents)?d.agents:[]),u(null)}catch(d){if(!c.current)return;u(d.message)}finally{c.current&&a(!1)}},[]);return r.useEffect(()=>(c.current=!0,l(),()=>{c.current=!1}),[l]),r.useEffect(()=>{if(typeof window>"u"||typeof WebSocket>"u")return;let d=null,y=!1,m=null;function f(){if(!y){try{const g=window.location.protocol==="https:"?"wss:":"ws:";d=new WebSocket(`${g}//${window.location.host}/ws/vision`)}catch{p();return}d.onmessage=g=>{try{const N=JSON.parse(g.data);if(!N||!N.type)return;(N.type==="agentSpawned"||N.type==="agentStopped"||N.type==="agentStatusChanged"||N.type==="agentTreeUpdated")&&l()}catch{}},d.onclose=()=>{y||p()},d.onerror=()=>{try{d.close()}catch{}}}}function p(){m&&clearTimeout(m),m=setTimeout(f,3e3)}return f(),()=>{y=!0,m&&clearTimeout(m);try{d&&(d.onclose=null,d.close())}catch{}}},[l]),{agents:e,loading:s,error:i,refetch:l}}const ue={};function re(e){if(typeof window>"u"||!window.location)return e;const n=typeof import.meta<"u"&&(ue==null?void 0:ue.VITE_AGENT_PORT)||"4002";return`${window.location.protocol}//${window.location.hostname}:${n}${e}`}const Qe=5e3;async function xe(e,n){const s=await fetch(re(e),{method:"POST",headers:V({"Content-Type":"application/json"}),body:JSON.stringify(n||{})});let a=null;try{a=await s.json()}catch{}if(!s.ok){const i=a&&a.error||`HTTP ${s.status}`;throw new Error(i)}return a}function Ze(){const[e,n]=r.useState(!1),[s,a]=r.useState(null),[i,u]=r.useState(!0),[c,l]=r.useState(null),[d,y]=r.useState(!1),m=r.useRef(!0),f=r.useCallback(async()=>{try{const k=await(await fetch(re("/api/agent/session/status"))).json().catch(()=>({}));if(!m.current)return;n(!!k.active),a(k.sessionId||null),l(null)}catch(N){if(!m.current)return;l(N.message)}finally{m.current&&u(!1)}},[]);r.useEffect(()=>{m.current=!0,f();const N=setInterval(f,Qe);return()=>{m.current=!1,clearInterval(N)}},[f]);const p=r.useCallback(async N=>{const k=(N||"").trim();if(!k)throw new Error("message is empty");y(!0);try{const E=await xe(s?"/api/agent/message":"/api/agent/session",{prompt:k});return f(),E}finally{y(!1)}},[s,f]),g=r.useCallback(async()=>xe("/api/agent/interrupt",{}),[]);return{active:e,sessionId:s,loading:i,error:c,sending:d,sendMessage:p,interrupt:g,refresh:f}}function et(e){if(!e)return"";const n=typeof e=="string"?Date.parse(e):Number(e);if(!n||Number.isNaN(n))return"";const s=Date.now()-n;return s<5e3?"just now":s<6e4?`${Math.floor(s/1e3)}s ago`:s<36e5?`${Math.floor(s/6e4)}m ago`:`${Math.floor(s/36e5)}h ago`}function tt({agent:e,onOpen:n,onAfterKill:s}){const[a,i]=r.useState(!1),[u,c]=r.useState(null),l=e.agentId||e.id,d=e.status||"unknown",y=e.lastActivityAt||e.lastEventAt||e.startedAt||null,m=r.useCallback(async p=>{if(p==null||p.stopPropagation(),!!l){i(!0),c(null);try{const g=await J(re(`/api/agent/${encodeURIComponent(l)}/stop`),{method:"POST",headers:V({"Content-Type":"application/json"}),body:JSON.stringify({})});if(!g.ok){let N=null;try{N=await g.json()}catch{}throw new Error(N&&N.error||`HTTP ${g.status}`)}s==null||s(l)}catch(g){c(g.message)}finally{i(!1)}}},[l,s]),f=r.useCallback(()=>n==null?void 0:n(e),[n,e]);return t.jsxs("div",{className:"m-agent-card","data-testid":`mobile-agent-card-${l}`,role:"button",tabIndex:0,onClick:f,onKeyDown:p=>{p.key==="Enter"&&f()},children:[t.jsxs("div",{className:"m-agent-card-row",children:[t.jsx("div",{className:"m-agent-card-id",title:l,children:l||"(no id)"}),t.jsx("span",{className:"m-status-pill","data-status":d,children:d})]}),t.jsxs("div",{className:"m-agent-card-meta",children:[t.jsx("span",{className:"m-agent-card-time",children:et(y)}),t.jsx("button",{type:"button",className:"m-btn m-btn-danger m-btn-sm","data-testid":`mobile-agent-kill-${l}`,disabled:a||d!=="running",onClick:m,children:a?"Killing…":"Kill"})]}),u&&t.jsx("div",{className:"m-agent-card-error",children:u})]})}const st=3e4,nt=5,at=3e4;function rt({url:e,onEvent:n,onOpen:s,onClose:a,onError:i,onRetry:u,onStall:c,onExhausted:l,namedEvents:d=["hydrate"],maxBackoffMs:y=st,maxRetries:m=nt,stallTimeoutMs:f=at}){if(!e)throw new Error("createAgentStream: url is required");if(typeof EventSource>"u")return{close(){}};let p=null,g=!1,N=0,k=null,v=null;function E(){v&&clearTimeout(v),!g&&(v=setTimeout(()=>{c==null||c({elapsedMs:f})},f))}function w(){v&&(clearTimeout(v),v=null)}function T(h,b){if(E(),!!n)try{const S=JSON.parse(b);n(S,h)}catch{}}function x(){if(w(),g||k)return;if(N>=m){const b=new Error(`agent-stream: failed after ${m} retries`);i==null||i(b),g=!0;try{p==null||p.close()}catch{}p=null,a==null||a(),l==null||l();return}const h=Math.min(y,1e3*Math.pow(2,N));N+=1,u==null||u({attempt:N,maxRetries:m,nextBackoffMs:h}),k=setTimeout(()=>{k=null,j()},h)}function j(){if(!g){try{p=new EventSource(e)}catch(h){i==null||i(h),x();return}p.onopen=()=>{N=0,w(),s==null||s()},p.onmessage=h=>T("message",h.data);for(const h of d)p.addEventListener(h,b=>T(h,b.data));p.onerror=h=>{i==null||i(h instanceof Error?h:new Error("agent-stream error"));try{p==null||p.close()}catch{}p=null,a==null||a(),x()}}}return j(),{close(){g=!0,w(),k&&(clearTimeout(k),k=null);try{p==null||p.close()}catch{}p=null},reconnect(){g=!1,N=0,w(),k&&(clearTimeout(k),k=null);try{p==null||p.close()}catch{}p=null,j()}}}function it(){return typeof window>"u"||!window.location?"":re("/api/agent/stream")}function lt(e){return!e||typeof e!="object"?null:e.agentId||e.agent_id||e.id||null}function Re({url:e,agentId:n,max:s=500,enabled:a=!0}={}){const[i,u]=r.useState([]),[c,l]=r.useState(!1),d=r.useRef(null),y=r.useMemo(()=>e||it(),[e]);return r.useEffect(()=>{if(!a||!y)return;const f=rt({url:y,onOpen:()=>l(!0),onClose:()=>l(!1),onEvent:p=>{u(g=>{const N=g.length>=s?g.slice(g.length-s+1):g.slice();return N.push(p),N})}});return d.current=f,()=>{try{f.close()}catch{}}},[y,a,s]),{events:r.useMemo(()=>n?i.filter(f=>lt(f)===n):i,[i,n]),allEvents:i,connected:c}}function ot(e,n){if(typeof e=="string")return e;if(e!=null&&e.type&&(e!=null&&e.message))return`[${e.type}] ${typeof e.message=="string"?e.message:JSON.stringify(e.message)}`;if(e!=null&&e.type)return`[${e.type}] ${JSON.stringify(e).slice(0,240)}`;try{return JSON.stringify(e)}catch{return`(unserializable #${n})`}}function ct({agent:e,onClose:n}){const s=(e==null?void 0:e.agentId)||(e==null?void 0:e.id),{events:a}=Re({agentId:s}),i=r.useRef(null),[u,c]=r.useState(!1),[l,d]=r.useState(null);r.useEffect(()=>{var m;(m=i.current)==null||m.scrollIntoView({behavior:"smooth"})},[a.length]);const y=r.useCallback(async()=>{if(s){c(!0),d(null);try{const m=await J(re(`/api/agent/${encodeURIComponent(s)}/stop`),{method:"POST",headers:V({"Content-Type":"application/json"}),body:JSON.stringify({})});if(!m.ok){let f=null;try{f=await m.json()}catch{}throw new Error(f&&f.error||`HTTP ${m.status}`)}}catch(m){d(m.message)}finally{c(!1)}}},[s]);return e?t.jsxs("div",{className:"m-overlay","data-testid":"mobile-agent-detail",role:"dialog","aria-modal":"true",children:[t.jsxs("header",{className:"m-overlay-header",children:[t.jsxs("div",{className:"m-overlay-header-inner",children:[t.jsx("div",{className:"m-overlay-title",title:s,children:s}),t.jsx("span",{className:"m-status-pill","data-status":e.status,children:e.status||"unknown"})]}),t.jsxs("div",{className:"m-overlay-actions",children:[t.jsx("button",{type:"button",className:"m-btn m-btn-danger m-btn-sm",disabled:u,onClick:y,"data-testid":"mobile-agent-detail-kill",children:u?"Killing…":"Kill"}),t.jsx("button",{type:"button",className:"m-btn m-btn-sm",onClick:n,"data-testid":"mobile-agent-detail-close",children:"Close"})]})]}),t.jsxs("div",{className:"m-overlay-body m-agent-log",children:[a.length===0?t.jsx("div",{className:"m-empty",children:"No live events for this agent yet."}):a.map((m,f)=>t.jsx("div",{className:"m-agent-log-line",children:ot(m,f)},f)),t.jsx("div",{ref:i})]}),l&&t.jsx("div",{className:"m-agent-card-error",children:l})]}):null}function dt({session:e}){const{active:n,sessionId:s,sending:a,sendMessage:i}=e,[u,c]=r.useState(""),[l,d]=r.useState(null),y=r.useCallback(async m=>{if(m==null||m.preventDefault(),!!u.trim()){d(null);try{await i(u),c("")}catch(f){d(f.message)}}},[u,i]);return t.jsxs("div",{className:"m-session-card","data-testid":"mobile-interactive-session",children:[t.jsxs("div",{className:"m-session-card-row",children:[t.jsx("div",{className:"m-session-card-title",children:"Interactive session"}),t.jsx("span",{className:"m-status-pill","data-status":n?"in_progress":"planned",children:n?"active":"ready"})]}),t.jsx("div",{className:"m-session-card-id",children:s?`id: ${s}`:"No active session"}),t.jsxs("form",{className:"m-session-card-form",onSubmit:y,children:[t.jsx("input",{type:"text",className:"m-input",placeholder:n?"Message Claude…":"Start a new session…",value:u,onChange:m=>c(m.target.value),"data-testid":"mobile-interactive-session-input",disabled:a}),t.jsx("button",{type:"submit",className:"m-btn m-btn-primary m-btn-sm",disabled:a||!u.trim(),"data-testid":"mobile-interactive-session-send",children:a?"Sending…":"Send"})]}),l&&t.jsx("div",{className:"m-agent-card-error",children:l})]})}function ut({gate:e,onOpen:n}){const s=e.id,a=e.flowId||e.flow||"",i=e.stepId||e.step||"",u=e.summary||e.comment||"",c=e.toPhase||e.fromPhase||"";return t.jsxs("div",{className:"m-gate-card","data-testid":`mobile-gate-card-${s}`,role:"button",tabIndex:0,onClick:()=>n==null?void 0:n(e),onKeyDown:l=>{l.key==="Enter"&&(n==null||n(e))},children:[t.jsxs("div",{className:"m-gate-card-row",children:[t.jsx("div",{className:"m-gate-card-title",children:a||s}),c&&t.jsx("span",{className:"m-status-pill","data-status":"in_progress",children:c})]}),t.jsx("div",{className:"m-gate-card-step",children:i}),u&&t.jsx("div",{className:"m-gate-card-summary",children:u})]})}const mt=[{id:"approve",label:"Approve",kind:"primary"},{id:"revise",label:"Revise",kind:"warn"},{id:"kill",label:"Kill",kind:"danger"}];function ft({gate:e,onResolve:n,onClose:s}){const[a,i]=r.useState(null),[u,c]=r.useState(""),[l,d]=r.useState(""),[y,m]=r.useState(!1),[f,p]=r.useState(null),g=r.useCallback(async N=>{if(N==null||N.preventDefault(),!a){p("Pick an outcome");return}if(a==="kill"&&!u.trim()){p("Reason is required when killing a gate");return}m(!0),p(null);try{await n(e.id,{outcome:a,reason:u.trim(),summary:l.trim()}),s==null||s()}catch(k){p(k.message)}finally{m(!1)}},[e,a,u,l,n,s]);return t.jsx("div",{className:"m-sheet-backdrop","data-testid":"mobile-gate-sheet",onClick:s,children:t.jsxs("div",{className:"m-sheet",role:"dialog","aria-modal":"true",onClick:N=>N.stopPropagation(),children:[t.jsxs("div",{className:"m-sheet-header",children:[t.jsx("div",{className:"m-sheet-title",children:"Resolve gate"}),t.jsxs("div",{className:"m-sheet-subtitle",children:[e.flowId,":",e.stepId]})]}),t.jsxs("form",{onSubmit:g,className:"m-sheet-body",children:[t.jsx("div",{className:"m-sheet-outcomes",role:"radiogroup","aria-label":"Outcome",children:mt.map(N=>t.jsx("button",{type:"button",role:"radio","aria-checked":a===N.id,className:`m-btn m-btn-${N.kind} ${a===N.id?"m-btn-active":""}`,"data-testid":`mobile-gate-outcome-${N.id}`,onClick:()=>i(N.id),children:N.label},N.id))}),t.jsxs("label",{className:"m-field",children:[t.jsxs("span",{className:"m-field-label",children:["Reason ",a==="kill"?"(required)":"(optional)"]}),t.jsx("textarea",{className:"m-textarea","data-testid":"mobile-gate-reason",value:u,onChange:N=>c(N.target.value),rows:2})]}),t.jsxs("label",{className:"m-field",children:[t.jsx("span",{className:"m-field-label",children:"Summary (optional)"}),t.jsx("textarea",{className:"m-textarea","data-testid":"mobile-gate-summary",value:l,onChange:N=>d(N.target.value),rows:2})]}),f&&t.jsx("div",{className:"m-agent-card-error",children:f}),t.jsxs("div",{className:"m-sheet-actions",children:[t.jsx("button",{type:"button",className:"m-btn m-btn-sm",onClick:s,disabled:y,children:"Cancel"}),t.jsx("button",{type:"submit",className:"m-btn m-btn-primary m-btn-sm",disabled:y||!a,"data-testid":"mobile-gate-submit",children:y?"Submitting…":"Submit"})]})]})]})})}function ht({gates:e=[],gatesLoading:n=!1,resolveGate:s}){const{agents:a,loading:i,refetch:u}=Ve(),c=Ze(),[l,d]=r.useState(null),[y,m]=r.useState(null),f=r.useCallback(()=>{u(),d(null)},[u]);return t.jsxs("section",{"data-testid":"mobile-tab-agents",className:"m-agents-tab",children:[t.jsxs("div",{className:"m-section","data-testid":"mobile-section-spawned",children:[t.jsx("h2",{className:"m-section-title",children:"Spawned agents"}),i?t.jsx("div",{className:"m-empty",children:"Loading agents…"}):a.length===0?t.jsx("div",{className:"m-empty",children:"No spawned agents."}):t.jsx("div",{className:"m-stack",children:a.map(p=>t.jsx(tt,{agent:p,onOpen:d,onAfterKill:f},p.agentId||p.id))})]}),t.jsxs("div",{className:"m-section","data-testid":"mobile-section-session",children:[t.jsx("h2",{className:"m-section-title",children:"Interactive session"}),t.jsx(dt,{session:c})]}),t.jsxs("div",{className:"m-section","data-testid":"mobile-section-gates",children:[t.jsx("h2",{className:"m-section-title",children:"Pending gates"}),n?t.jsx("div",{className:"m-empty",children:"Loading gates…"}):e.length===0?t.jsx("div",{className:"m-empty",children:"No pending gates."}):t.jsx("div",{className:"m-stack",children:e.map(p=>t.jsx(ut,{gate:p,onOpen:m},p.id))})]}),l&&t.jsx(ct,{agent:l,onClose:()=>d(null)}),y&&t.jsx(ft,{gate:y,onResolve:s,onClose:()=>m(null)})]})}const pt=[{value:"planned",label:"planned"},{value:"in_progress",label:"in progress"},{value:"blocked",label:"blocked"},{value:"complete",label:"complete"},{value:"parked",label:"parked"},{value:"killed",label:"killed"}];function bt({statuses:e=[],onToggleStatus:n,group:s="",groupOptions:a=[],onChangeGroup:i,keyword:u="",onChangeKeyword:c}){return t.jsxs("div",{className:"m-filter-bar","data-testid":"mobile-filter-bar",children:[t.jsx("div",{className:"m-filter-chips",role:"group","aria-label":"Status filter",children:pt.map(l=>{const d=e.includes(l.value);return t.jsx("button",{type:"button",className:"m-filter-chip","aria-pressed":d,"data-testid":`mobile-filter-status-${l.value}`,onClick:()=>n==null?void 0:n(l.value),children:l.label},l.value)})}),t.jsxs("div",{className:"m-filter-row",children:[t.jsxs("select",{className:"m-filter-select","data-testid":"mobile-filter-group",value:s,onChange:l=>i==null?void 0:i(l.target.value),"aria-label":"Group filter",children:[t.jsx("option",{value:"",children:"All groups"}),a.map(l=>t.jsx("option",{value:l,children:l},l))]}),t.jsx("input",{type:"search",className:"m-filter-keyword","data-testid":"mobile-filter-keyword",placeholder:"Search title or description",value:u,onChange:l=>c==null?void 0:c(l.target.value),"aria-label":"Keyword filter"})]})]})}const yt=new Set(["planned","in_progress","blocked","complete","partial","superseded","parked"]);function Ae({status:e,children:n}){const s=typeof e=="string"?e.toLowerCase():"",a=yt.has(s)?s:"unknown",i=n??e??"unknown";return t.jsx("span",{className:"m-status-pill","data-status":a,children:i})}function gt(e,n=140){if(typeof e!="string")return"";const s=e.trim();return s.length<=n?s:s.slice(0,n-1).trimEnd()+"…"}function xt({item:e,onSelect:n}){if(!e)return null;const s=e.title||e.id||"Untitled",a=e.status||"unknown",i=e.group||"",u=gt(e.description||"");return t.jsxs("button",{type:"button",className:"m-item-card","data-testid":`mobile-item-card-${e.id}`,onClick:()=>n==null?void 0:n(e),children:[t.jsxs("div",{className:"m-item-card-row",children:[t.jsx("div",{className:"m-item-card-title",children:s}),t.jsx(Ae,{status:a})]}),t.jsxs("div",{className:"m-item-card-meta",children:[i?t.jsx("span",{className:"m-item-card-group","data-testid":"mobile-item-group",children:i}):null,e.id?t.jsx("span",{className:"m-item-card-id",children:e.id}):null]}),u?t.jsx("div",{className:"m-item-card-desc",children:u}):null]})}const jt=["planned","ready","in_progress","review","complete","blocked","parked","killed","superseded"],Nt=["informs","blocks","supports","contradicts","implements"];function vt({item:e,onClose:n,onSave:s,onDelete:a,allItems:i=[],addConnection:u,removeConnection:c,fetchItemDetail:l}){const d=r.useMemo(()=>({status:(e==null?void 0:e.status)||"planned",group:(e==null?void 0:e.group)||"",confidence:(e==null?void 0:e.confidence)??""}),[e]),[y,m]=r.useState(d.status),[f,p]=r.useState(d.group),[g,N]=r.useState(d.confidence),[k,v]=r.useState(!1),[E,w]=r.useState(!1),[T,x]=r.useState(!1),j=r.useRef(null),[h,b]=r.useState([]),[S,A]=r.useState(!1),[D,I]=r.useState(!1),[O,L]=r.useState(""),[F,q]=r.useState("informs"),[Y,z]=r.useState(!1),[ee,Q]=r.useState(null),W=r.useRef(null);if(r.useEffect(()=>{m(d.status),p(d.group),N(d.confidence),w(!1),b([]),I(!1),L(""),q("informs"),Q(null),j.current&&clearTimeout(j.current),W.current&&clearTimeout(W.current)},[e==null?void 0:e.id,d.status,d.group,d.confidence]),r.useEffect(()=>{!(e!=null&&e.id)||!l||(A(!0),l(e.id).then(R=>{var H;R!=null&&R.ok&&Array.isArray((H=R.item)==null?void 0:H.connections)&&b(R.item.connections)}).finally(()=>A(!1)))},[e==null?void 0:e.id,l]),r.useEffect(()=>()=>{j.current&&clearTimeout(j.current),W.current&&clearTimeout(W.current)},[]),!e)return null;const o=y!==d.status||f!==d.group||String(g)!==String(d.confidence);function C(){w(!1),j.current&&clearTimeout(j.current)}function $(){E&&C(),ee!==null&&(Q(null),W.current&&clearTimeout(W.current))}const _=async()=>{if(!o||k)return;const R={};if(y!==d.status&&(R.status=y),f!==d.group&&(R.group=f),String(g)!==String(d.confidence)){const H=g===""?null:Number(g);H!==null&&Number.isFinite(H)?R.confidence=H:g===""&&(R.confidence=null)}v(!0);try{await(s==null?void 0:s(e.id,R))}finally{v(!1)}},M=async()=>{if(!E)w(!0),j.current=setTimeout(()=>{w(!1)},3e3);else{j.current&&clearTimeout(j.current),w(!1),x(!0);try{await(a==null?void 0:a(e.id))}finally{x(!1)}}},G=r.useMemo(()=>{const R=O.toLowerCase();return i.filter(H=>H.id===e.id?!1:R?H.id.toLowerCase().includes(R)||(H.title||"").toLowerCase().includes(R):!0)},[i,e==null?void 0:e.id,O]),U=async R=>{z(!0);const H=await(u==null?void 0:u({fromId:e.id,toId:R.id,type:F}));if(H!=null&&H.ok){const X=H.connection||{id:`local-${Date.now()}`,fromId:e.id,toId:R.id,type:F};b(te=>[...te,X]),I(!1),L(""),q("informs")}z(!1)},K=async(R,H)=>{if(ee!==H)W.current&&clearTimeout(W.current),Q(H),W.current=setTimeout(()=>{Q(null)},3e3);else{W.current&&clearTimeout(W.current),Q(null);const X=await(c==null?void 0:c(R.id));X!=null&&X.ok&&b(te=>te.filter(le=>le.id!==R.id))}};function B(R){const H=i.find(X=>X.id===R);return(H==null?void 0:H.title)||R}return t.jsx("div",{className:"m-sheet-overlay",role:"dialog","aria-modal":"true","data-testid":"mobile-item-sheet",children:t.jsxs("div",{className:"m-sheet",children:[t.jsxs("header",{className:"m-sheet-header",children:[t.jsx("button",{type:"button",className:"m-sheet-close",onClick:n,"data-testid":"mobile-item-sheet-close","aria-label":"Close",children:"×"}),t.jsxs("div",{className:"m-sheet-title-row",children:[t.jsx("div",{className:"m-sheet-title",children:e.title||e.id}),t.jsx(Ae,{status:y})]})]}),t.jsxs("div",{className:"m-sheet-body",children:[e.description?t.jsxs("section",{className:"m-sheet-section",children:[t.jsx("div",{className:"m-sheet-label",children:"Description"}),t.jsx("p",{className:"m-sheet-desc",children:e.description})]}):null,t.jsxs("section",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-sheet-status",children:"Status"}),t.jsx("select",{id:"m-sheet-status",className:"m-sheet-input","data-testid":"mobile-item-sheet-status",value:y,onChange:R=>{$(),m(R.target.value)},children:jt.map(R=>t.jsx("option",{value:R,children:R},R))})]}),t.jsxs("section",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-sheet-group",children:"Group"}),t.jsx("input",{id:"m-sheet-group",type:"text",className:"m-sheet-input","data-testid":"mobile-item-sheet-group",value:f,onChange:R=>{$(),p(R.target.value)}})]}),t.jsxs("section",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-sheet-confidence",children:"Confidence (0–4)"}),t.jsx("input",{id:"m-sheet-confidence",type:"number",min:"0",max:"4",step:"1",className:"m-sheet-input","data-testid":"mobile-item-sheet-confidence",value:g,onChange:R=>{$(),N(R.target.value)}})]}),t.jsxs("section",{className:"m-sheet-section m-sheet-connections",children:[t.jsxs("div",{className:"m-sheet-connections-header",children:[t.jsx("span",{className:"m-sheet-label",children:"Connections"}),!D&&t.jsx("button",{type:"button",className:"m-conn-add-btn","data-testid":"mobile-item-conn-add",onClick:()=>{$(),I(!0)},children:"+ Add"})]}),S?t.jsx("div",{className:"m-conn-loading",children:"Loading…"}):h.length===0&&!D?t.jsx("div",{className:"m-conn-empty",children:"No connections"}):t.jsx("ul",{className:"m-conn-list",children:h.map((R,H)=>{const X=R.fromId===e.id,te=X?R.toId:R.fromId,le=B(te),oe=ee===H;return t.jsxs("li",{className:"m-conn-row",children:[t.jsx("span",{className:"m-conn-dir",children:X?"→":"←"}),t.jsx("span",{className:"m-conn-title",children:le}),t.jsx("span",{className:"m-conn-type",children:R.type}),t.jsx("button",{type:"button",className:`m-conn-remove${oe?" m-conn-remove--armed":""}`,"data-testid":`mobile-item-conn-remove-${H}`,"aria-label":oe?"Confirm remove connection":"Remove connection",onClick:()=>{$(),K(R,H)},children:oe?"✓":"×"})]},R.id)})}),D&&t.jsxs("div",{className:"m-conn-picker",children:[t.jsxs("div",{className:"m-conn-picker-row",children:[t.jsx("input",{type:"text",className:"m-sheet-input m-conn-search",placeholder:"Search items…",value:O,onChange:R=>L(R.target.value),"data-testid":"mobile-item-conn-search",autoFocus:!0}),t.jsx("select",{className:"m-sheet-input m-conn-type-select",value:F,onChange:R=>q(R.target.value),"data-testid":"mobile-item-conn-type",children:Nt.map(R=>t.jsx("option",{value:R,children:R},R))})]}),t.jsxs("ul",{className:"m-conn-picker-list",children:[G.map(R=>t.jsx("li",{children:t.jsxs("button",{type:"button",className:"m-conn-picker-item",disabled:Y,onClick:()=>U(R),"data-testid":`mobile-item-conn-pick-${R.id}`,children:[t.jsx("span",{className:"m-conn-picker-title",children:R.title||R.id}),t.jsx("span",{className:"m-conn-picker-id",children:R.id})]})},R.id)),G.length===0&&t.jsx("li",{className:"m-conn-picker-empty",children:"No items found"})]}),t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-secondary",onClick:()=>{I(!1),L(""),q("informs")},children:"Cancel"})]})]})]}),t.jsxs("footer",{className:"m-sheet-footer",children:[t.jsx("button",{type:"button",className:`m-sheet-btn m-sheet-btn-danger${E?" m-sheet-btn-danger--armed":""}`,onClick:M,disabled:T,"data-testid":"mobile-item-sheet-delete",children:T?"Deleting…":E?"Confirm delete":"Delete"}),t.jsxs("div",{className:"m-sheet-footer-right",children:[t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-secondary",onClick:n,"data-testid":"mobile-item-sheet-cancel",children:"Cancel"}),t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-primary",onClick:_,disabled:!o||k,"data-testid":"mobile-item-sheet-save",children:k?"Saving…":"Save"})]})]})]})})}const wt=["planned","ready","in_progress","review","complete","blocked","parked","killed","superseded"];function St({open:e,onClose:n,onCreate:s,groupOptions:a=[]}){const[i,u]=r.useState(""),[c,l]=r.useState(""),[d,y]=r.useState(""),[m,f]=r.useState("planned"),[p,g]=r.useState(""),[N,k]=r.useState(!1),[v,E]=r.useState(null),w=r.useId();if(!e)return null;function T(){u(""),l(""),y(""),f("planned"),g(""),E(null),k(!1)}function x(){T(),n==null||n()}async function j(h){if(h.preventDefault(),!i.trim()){E("Title is required");return}k(!0),E(null);try{const b={title:i.trim()};if(c.trim()&&(b.description=c.trim()),d.trim()&&(b.group=d.trim()),m&&(b.status=m),p!==""){const S=Number(p);Number.isFinite(S)&&(b.confidence=S)}await(s==null?void 0:s(b)),x()}catch(b){E(b.message||"Failed to create item"),k(!1)}}return t.jsx("div",{className:"m-sheet-overlay","data-testid":"mobile-create-sheet",role:"dialog","aria-modal":"true","aria-label":"Create roadmap item",onClick:h=>{h.target===h.currentTarget&&x()},children:t.jsxs("div",{className:"m-sheet",children:[t.jsxs("header",{className:"m-sheet-header",children:[t.jsx("button",{type:"button",className:"m-sheet-close","aria-label":"Close",onClick:x,disabled:N,children:"×"}),t.jsx("div",{className:"m-sheet-title-row",children:t.jsx("div",{className:"m-sheet-title",children:"New roadmap item"})})]}),t.jsxs("form",{className:"m-sheet-body",onSubmit:j,children:[t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-create-title",children:"Title"}),t.jsx("input",{id:"m-create-title",type:"text",className:"m-sheet-input",value:i,onChange:h=>u(h.target.value),placeholder:"Feature title","data-testid":"mobile-create-title",autoFocus:!0,required:!0})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-create-desc",children:"Description (optional)"}),t.jsx("textarea",{id:"m-create-desc",className:"m-sheet-input m-textarea",value:c,onChange:h=>l(h.target.value),rows:3,"data-testid":"mobile-create-desc"})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-create-group",children:"Group (optional)"}),t.jsx("input",{id:"m-create-group",type:"text",className:"m-sheet-input",value:d,onChange:h=>y(h.target.value),list:w,placeholder:"e.g. core, infra","data-testid":"mobile-create-group"}),t.jsx("datalist",{id:w,children:a.map(h=>t.jsx("option",{value:h},h))})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-create-status",children:"Status"}),t.jsx("select",{id:"m-create-status",className:"m-sheet-input",value:m,onChange:h=>f(h.target.value),"data-testid":"mobile-create-status",children:wt.map(h=>t.jsx("option",{value:h,children:h},h))})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-create-confidence",children:"Confidence (0–4, optional)"}),t.jsx("input",{id:"m-create-confidence",type:"number",min:"0",max:"4",step:"1",className:"m-sheet-input",value:p,onChange:h=>g(h.target.value),"data-testid":"mobile-create-confidence"})]}),v?t.jsx("div",{className:"m-form-error",role:"alert","data-testid":"mobile-create-error",children:v}):null]}),t.jsxs("footer",{className:"m-sheet-footer",children:[t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-secondary",onClick:x,disabled:N,"data-testid":"mobile-create-cancel",children:"Cancel"}),t.jsx("div",{className:"m-sheet-footer-right",children:t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-primary",disabled:N||!i.trim(),"data-testid":"mobile-create-submit",onClick:j,children:N?"Creating…":"Create"})})]})]})})}function $e({message:e,kind:n="error",durationMs:s=3e3,onDismiss:a}){return r.useEffect(()=>{if(!e)return;const i=setTimeout(()=>a==null?void 0:a(),s);return()=>clearTimeout(i)},[e,s,a]),e?t.jsx("div",{className:"m-toast",role:"status","data-kind":n,"data-testid":"mobile-toast",children:e}):null}function kt(e){const n=new Set;for(const s of e){const a=((s==null?void 0:s.group)||"").trim();a&&n.add(a)}return Array.from(n).sort()}function Ct(e,n){if(!n)return!0;const s=n.toLowerCase(),a=(e.title||"").toLowerCase(),i=(e.description||"").toLowerCase();return a.includes(s)||i.includes(s)}function Tt({items:e=[],loading:n=!1,error:s=null,applyOptimisticEdit:a,createItem:i,deleteItem:u,addConnection:c,removeConnection:l,fetchItemDetail:d}){const[y,m]=r.useState([]),[f,p]=r.useState(""),[g,N]=r.useState(""),[k,v]=r.useState(null),[E,w]=r.useState(!1),[T,x]=r.useState(null),j=r.useMemo(()=>kt(e),[e]),h=r.useMemo(()=>e.filter(O=>!(y.length&&!y.includes(O.status)||f&&O.group!==f||!Ct(O,g))),[e,y,f,g]),b=r.useMemo(()=>e.find(O=>O.id===k)||null,[e,k]),S=O=>{m(L=>L.includes(O)?L.filter(F=>F!==O):[...L,O])},A=async(O,L)=>{const F=await a(O,L);F!=null&&F.ok?v(null):x((F==null?void 0:F.error)||"Save failed")},D=async O=>{const L=await(i==null?void 0:i(O));if(!(L!=null&&L.ok))throw new Error((L==null?void 0:L.error)||"Create failed")},I=async O=>{const L=await(u==null?void 0:u(O));L!=null&&L.ok?v(null):x((L==null?void 0:L.error)||"Delete failed")};return t.jsxs("section",{className:"m-roadmap","data-testid":"mobile-tab-roadmap",children:[t.jsx(bt,{statuses:y,onToggleStatus:S,group:f,groupOptions:j,onChangeGroup:p,keyword:g,onChangeKeyword:N}),s?t.jsx("div",{className:"m-roadmap-error","data-testid":"mobile-roadmap-error",children:s}):null,n?t.jsx("div",{className:"m-roadmap-skeleton","data-testid":"mobile-roadmap-loading",children:Array.from({length:4}).map((O,L)=>t.jsx("div",{className:"m-skel-card"},L))}):h.length===0?t.jsx("div",{className:"m-roadmap-empty","data-testid":"mobile-roadmap-empty",children:e.length===0?"No roadmap items yet.":"No items match the current filters."}):t.jsx("ul",{className:"m-roadmap-list","data-testid":"mobile-roadmap-list",children:h.map(O=>t.jsx("li",{children:t.jsx(xt,{item:O,onSelect:L=>v(L.id)})},O.id))}),b?t.jsx(vt,{item:b,onClose:()=>v(null),onSave:A,onDelete:I,allItems:e,addConnection:c,removeConnection:l,fetchItemDetail:d}):null,t.jsx(St,{open:E,onClose:()=>w(!1),onCreate:D,groupOptions:j}),t.jsx("button",{type:"button",className:"m-fab","data-testid":"mobile-roadmap-fab","aria-label":"Create new roadmap item",onClick:()=>w(!0),children:"+"}),t.jsx($e,{message:T,onDismiss:()=>x(null)})]})}const Z="—";async function ne(e,n={}){const s=await J(e,n);let a=null;try{a=await s.json()}catch{}if(!s.ok){const i=a&&a.error||`HTTP ${s.status}`;throw new Error(i)}return a}function Et(){const[e,n]=r.useState([]),[s,a]=r.useState([]),[i,u]=r.useState(!0),[c,l]=r.useState(null),[d,y]=r.useState([]),m=r.useRef(e);m.current=e;const f=r.useCallback((w,T)=>{const x=`t_${Date.now()}_${Math.random().toString(36).slice(2,6)}`;y(j=>[...j,{id:x,kind:w,message:T}]),setTimeout(()=>{y(j=>j.filter(h=>h.id!==x))},3500)},[]),p=r.useCallback(w=>{y(T=>T.filter(x=>x.id!==w))},[]),g=r.useCallback(async()=>{try{const w=await ne("/api/ideabox");n(Array.isArray(w==null?void 0:w.ideas)?w.ideas:[]),a(Array.isArray(w==null?void 0:w.killed)?w.killed:[]),l(null)}catch(w){l(w.message),f("error",`Failed to load ideas: ${w.message}`)}finally{u(!1)}},[f]);r.useEffect(()=>{let w=!0;return(async()=>w&&await g())(),()=>{w=!1}},[g]),r.useEffect(()=>{if(typeof window>"u"||typeof WebSocket>"u")return;let w=null,T=!1,x=null;function j(){if(!T){try{const b=window.location.protocol==="https:"?"wss:":"ws:";w=new WebSocket(`${b}//${window.location.host}/ws/vision`)}catch{h();return}w.onmessage=b=>{try{const S=JSON.parse(b.data);S&&S.type==="ideaboxUpdated"&&g()}catch{}},w.onclose=()=>{T||h()},w.onerror=()=>{try{w.close()}catch{}}}}function h(){x&&clearTimeout(x),x=setTimeout(j,3e3)}return j(),()=>{T=!0,x&&clearTimeout(x);try{w&&(w.onclose=null,w.close())}catch{}}},[g]);const N=r.useCallback(async({title:w,description:T,source:x,tags:j,cluster:h})=>{if(!w||!w.trim()){const A=new Error("title is required");throw f("error",A.message),A}const b=`tmp_${Date.now()}`,S={id:b,num:0,title:w.trim(),description:T||"",source:x||"",tags:Array.isArray(j)?j:[],cluster:h||null,status:"NEW",priority:Z,_pending:!0};n(A=>[S,...A]);try{const A=await ne("/api/ideabox/ideas",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:w.trim(),description:T,source:x,tags:j,cluster:h})});return n(D=>D.map(I=>I.id===b?{...A}:I)),f("ok","Idea captured"),A}catch(A){throw n(D=>D.filter(I=>I.id!==b)),f("error",`Capture failed: ${A.message}`),A}},[f]),k=r.useCallback(async(w,{featureCode:T}={})=>{const x=m.current;n(j=>j.map(h=>h.id===w?{...h,_promoting:!0}:h));try{const j=await ne(`/api/ideabox/ideas/${encodeURIComponent(w)}/promote`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({featureCode:T||""})});return f("ok",`Promoted${j!=null&&j.featureCode?` → ${j.featureCode}`:""}`),g(),j}catch(j){throw n(x),f("error",`Promote failed: ${j.message}`),j}},[f,g]),v=r.useCallback(async(w,{reason:T}={})=>{const x=m.current,j=x.find(h=>h.id===w);n(h=>h.filter(b=>b.id!==w)),j&&a(h=>[{...j,status:"KILLED",reason:T||""},...h]);try{const h=await ne(`/api/ideabox/ideas/${encodeURIComponent(w)}/kill`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:T||""})});return f("ok","Idea killed"),g(),h}catch(h){throw n(x),a(b=>b.filter(S=>S.id!==w||S.status!=="KILLED")),f("error",`Kill failed: ${h.message}`),h}},[f,g]),E=r.useCallback(async(w,T)=>{if(!["P0","P1","P2",Z].includes(T)){const h=new Error(`Invalid priority: ${T}`);throw f("error",h.message),h}const j=m.current;n(h=>h.map(b=>b.id===w?{...b,priority:T}:b));try{const h=await ne(`/api/ideabox/ideas/${encodeURIComponent(w)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:T})});return f("ok",`Priority → ${T===Z?"Untriaged":T}`),h}catch(h){throw n(j),f("error",`Set priority failed: ${h.message}`),h}},[f]);return{ideas:e,killed:s,loading:i,error:c,toasts:d,dismissToast:p,refetch:g,createIdea:N,promote:k,kill:v,setPriority:E}}function Rt(e,n={}){const{onSwipeLeft:s,onSwipeRight:a,onDrag:i,onDragEnd:u,threshold:c=80,axis:l="x"}=n,d=r.useRef({onSwipeLeft:s,onSwipeRight:a,onDrag:i,onDragEnd:u});d.current={onSwipeLeft:s,onSwipeRight:a,onDrag:i,onDragEnd:u},r.useEffect(()=>{const y=e&&e.current;if(!y)return;let m=0,f=0,p=null,g=!1,N=0;function k(w){if(!(w.button!==void 0&&w.button!==0)){p=w.pointerId,m=w.clientX,f=w.clientY,g=!0,N=0;try{y.setPointerCapture(w.pointerId)}catch{}}}function v(w){var j,h,b,S;if(!g||w.pointerId!==p)return;const T=w.clientX-m,x=w.clientY-f;if(l==="x"&&Math.abs(x)>Math.abs(T)&&Math.abs(x)>12){g=!1,(h=(j=d.current).onDragEnd)==null||h.call(j,0,!1);return}N=T,(S=(b=d.current).onDrag)==null||S.call(b,T)}function E(w){var j,h,b,S,A,D;if(!g||w&&w.pointerId!==p)return;const T=N;g=!1;try{y.releasePointerCapture(p)}catch{}p=null;let x=!1;T<=-c?((h=(j=d.current).onSwipeLeft)==null||h.call(j),x=!0):T>=c&&((S=(b=d.current).onSwipeRight)==null||S.call(b),x=!0),(D=(A=d.current).onDragEnd)==null||D.call(A,T,x)}return y.addEventListener("pointerdown",k),y.addEventListener("pointermove",v),y.addEventListener("pointerup",E),y.addEventListener("pointercancel",E),()=>{y.removeEventListener("pointerdown",k),y.removeEventListener("pointermove",v),y.removeEventListener("pointerup",E),y.removeEventListener("pointercancel",E)}},[e,c,l])}function At(e){return e==="P0"||e==="P1"||e==="P2"?e.toLowerCase():"untriaged"}function $t(e){return e==="P0"||e==="P1"||e==="P2"?e:"Untriaged"}function _t({idea:e,onTap:n,onSwipeLeft:s,onSwipeRight:a}){const i=r.useRef(null),[u,c]=r.useState(0),[l,d]=r.useState(null),y=r.useCallback(g=>{c(g),g<=-40?d("kill"):g>=40?d("promote"):d(null)},[]),m=r.useCallback(()=>{c(0),d(null)},[]);Rt(i,{onSwipeLeft:()=>s==null?void 0:s(e),onSwipeRight:()=>a==null?void 0:a(e),onDrag:y,onDragEnd:m,threshold:80});const f=At(e.priority),p=Array.isArray(e.tags)?e.tags:[];return t.jsxs("div",{className:"m-idea-row","data-testid":`idea-row-${e.id}`,children:[t.jsx("div",{className:"m-idea-action m-idea-action-left","aria-hidden":"true",children:"Promote"}),t.jsx("div",{className:"m-idea-action m-idea-action-right","aria-hidden":"true",children:"Kill"}),t.jsxs("article",{ref:i,className:`m-idea-card${l?` is-intent-${l}`:""}`,"data-testid":"idea-card","data-idea-id":e.id,"data-priority":f,style:{transform:`translateX(${u}px)`},role:"button",tabIndex:0,onClick:()=>{Math.abs(u)<4&&(n==null||n(e))},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),n==null||n(e))},children:[t.jsxs("div",{className:"m-idea-head",children:[t.jsx("span",{className:"m-priority-badge","data-priority":f,"data-testid":`priority-badge-${e.id}`,children:$t(e.priority)}),e.cluster?t.jsx("span",{className:"m-idea-cluster",title:e.cluster,children:e.cluster}):null]}),t.jsx("h3",{className:"m-idea-title","data-testid":`idea-title-${e.id}`,children:e.title}),p.length>0?t.jsx("div",{className:"m-idea-tags",children:p.map(g=>t.jsx("span",{className:"m-idea-tag",children:g},g))}):null]})]})}function It({open:e,onClose:n,onSubmit:s,existingClusters:a=[]}){const[i,u]=r.useState(""),[c,l]=r.useState(""),[d,y]=r.useState(""),[m,f]=r.useState([]),[p,g]=r.useState(""),[N,k]=r.useState(!1),[v,E]=r.useState(null),w=r.useId(),T=r.useMemo(()=>{const S=new Set;for(const A of a)A&&typeof A=="string"&&S.add(A);return[...S].sort()},[a]);if(!e)return null;function x(){u(""),l(""),y(""),f([]),g(""),E(null),k(!1)}function j(){x(),n==null||n()}function h(){const S=d.trim();S&&(m.includes(S)||f([...m,S]),y(""))}async function b(S){if(S.preventDefault(),!i.trim()){E("Title is required");return}k(!0),E(null);try{await(s==null?void 0:s({title:i.trim(),description:c.trim()||void 0,tags:m.length?m:void 0,cluster:p.trim()||void 0})),j()}catch(A){E(A.message||"Failed to capture"),k(!1)}}return t.jsx("div",{className:"m-sheet-overlay","data-testid":"capture-sheet",role:"dialog","aria-modal":"true","aria-label":"Capture idea",onClick:S=>{S.target===S.currentTarget&&j()},children:t.jsxs("div",{className:"m-sheet",children:[t.jsxs("header",{className:"m-sheet-header",children:[t.jsx("button",{type:"button",className:"m-sheet-close","aria-label":"Close capture",onClick:j,disabled:N,children:"×"}),t.jsx("div",{className:"m-sheet-title-row",children:t.jsx("div",{className:"m-sheet-title",children:"Capture idea"})})]}),t.jsxs("form",{className:"m-sheet-body",onSubmit:b,children:[t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-capture-title",children:"Title"}),t.jsx("input",{id:"m-capture-title",type:"text",className:"m-sheet-input",value:i,onChange:S=>u(S.target.value),placeholder:"What's the idea?","data-testid":"capture-title",autoFocus:!0,required:!0})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-capture-desc",children:"Description (optional)"}),t.jsx("textarea",{id:"m-capture-desc",className:"m-sheet-input m-textarea",value:c,onChange:S=>l(S.target.value),rows:4,"data-testid":"capture-description"})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-capture-tag",children:"Tags (optional)"}),t.jsxs("div",{className:"m-tag-input-row",children:[t.jsx("input",{id:"m-capture-tag",type:"text",className:"m-sheet-input",value:d,onChange:S=>y(S.target.value),onKeyDown:S=>{(S.key==="Enter"||S.key===",")&&(S.preventDefault(),h())},placeholder:"Add tag and press Enter","data-testid":"capture-tag-input"}),t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-secondary m-tag-add",onClick:h,children:"Add"})]}),m.length>0?t.jsx("div",{className:"m-idea-tags","data-testid":"capture-tags",children:m.map(S=>t.jsxs("span",{className:"m-idea-tag",children:[S,t.jsx("button",{type:"button",className:"m-tag-remove","aria-label":`Remove tag ${S}`,onClick:()=>f(m.filter(A=>A!==S)),children:"×"})]},S))}):null]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-capture-cluster",children:"Cluster (optional)"}),t.jsx("input",{id:"m-capture-cluster",type:"text",className:"m-sheet-input",value:p,onChange:S=>g(S.target.value),list:w,placeholder:"Group into a theme","data-testid":"capture-cluster"}),t.jsx("datalist",{id:w,children:T.map(S=>t.jsx("option",{value:S},S))})]}),v?t.jsx("div",{className:"m-form-error",role:"alert",children:v}):null]}),t.jsxs("footer",{className:"m-sheet-footer",children:[t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-secondary",onClick:j,disabled:N,"data-testid":"capture-cancel",children:"Cancel"}),t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-primary",disabled:N||!i.trim(),"data-testid":"capture-submit",onClick:b,children:N?"Saving…":"Capture"})]})]})})}const Pt=[{value:"P0",label:"P0"},{value:"P1",label:"P1"},{value:"P2",label:"P2"},{value:Z,label:"Untriaged"}];function Lt({value:e,onChange:n,disabled:s=!1}){return t.jsx("div",{className:"m-priority-selector",role:"radiogroup","aria-label":"Priority",children:Pt.map(a=>{const i=e===a.value,u=`m-priority-chip${i?" is-selected":""}`;return t.jsx("button",{type:"button",role:"radio","aria-checked":i?"true":"false",className:u,"data-priority":a.value===Z?"untriaged":a.value.toLowerCase(),"data-testid":`priority-chip-${a.value===Z?"untriaged":a.value.toLowerCase()}`,disabled:s,onClick:()=>n(a.value),children:a.label},a.value)})})}function Ot({idea:e,open:n,onClose:s,onPromote:a,onKill:i,onSetPriority:u}){const[c,l]=r.useState(!1);if(!n||!e)return null;const d=Array.isArray(e.tags)?e.tags:[],y=e.priority||Z;async function m(f,p=!0){l(!0);try{await f(),p&&(s==null||s())}catch{}finally{l(!1)}}return t.jsx("div",{className:"m-sheet-overlay","data-testid":"idea-detail-sheet",role:"dialog","aria-modal":"true","aria-label":`Idea ${e.id}`,onClick:f=>{f.target===f.currentTarget&&(s==null||s())},children:t.jsxs("div",{className:"m-sheet",children:[t.jsxs("header",{className:"m-sheet-header",children:[t.jsx("button",{type:"button",className:"m-sheet-close","aria-label":"Close detail",onClick:s,disabled:c,children:"×"}),t.jsx("div",{className:"m-sheet-title-row",children:t.jsx("div",{className:"m-sheet-title",children:e.title})}),t.jsxs("div",{className:"m-detail-meta",children:[t.jsx("span",{className:"m-detail-meta-id",children:e.id}),t.jsx("span",{className:"m-detail-meta-status",children:e.status||"NEW"}),e.cluster?t.jsx("span",{className:"m-detail-meta-cluster",children:e.cluster}):null]})]}),t.jsxs("div",{className:"m-sheet-body",children:[e.description?t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("div",{className:"m-sheet-label",children:"Description"}),t.jsx("p",{className:"m-sheet-desc",children:e.description})]}):null,e.source?t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("div",{className:"m-sheet-label",children:"Source"}),t.jsx("p",{className:"m-sheet-desc",children:e.source})]}):null,d.length>0?t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("div",{className:"m-sheet-label",children:"Tags"}),t.jsx("div",{className:"m-idea-tags",children:d.map(f=>t.jsx("span",{className:"m-idea-tag",children:f},f))})]}):null,t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("div",{className:"m-sheet-label",children:"Priority"}),t.jsx(Lt,{value:y,disabled:c,onChange:f=>m(()=>u==null?void 0:u(e.id,f),!1)})]})]}),t.jsxs("footer",{className:"m-sheet-footer",children:[t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-secondary","data-testid":"detail-kill",disabled:c,onClick:()=>m(()=>i==null?void 0:i(e.id)),children:"Kill"}),t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-primary","data-testid":"detail-promote",disabled:c,onClick:()=>m(()=>a==null?void 0:a(e.id)),children:"Promote"})]})]})})}const Dt=[{id:"all",label:"All"},{id:"P0",label:"P0"},{id:"P1",label:"P1"},{id:"P2",label:"P2"},{id:"untriaged",label:"Untriaged"}],je={P0:3,P1:2,P2:1};function Mt(e){return[...e].sort((n,s)=>{const a=je[n.priority]||0,i=je[s.priority]||0;if(a!==i)return i-a;const u=typeof n.num=="number"?n.num:0;return(typeof s.num=="number"?s.num:0)-u})}function Gt(){const{ideas:e,loading:n,toasts:s,dismissToast:a,createIdea:i,promote:u,kill:c,setPriority:l}=Et(),[d,y]=r.useState("all"),[m,f]=r.useState(!1),[p,g]=r.useState(null),N=r.useMemo(()=>{let v=e;return d==="untriaged"?v=v.filter(E=>!E.priority||E.priority===Z||E.priority===""):d!=="all"&&(v=v.filter(E=>E.priority===d)),Mt(v)},[e,d]),k=r.useMemo(()=>{const v=new Set;for(const E of e)E.cluster&&v.add(E.cluster);return[...v]},[e]);return t.jsxs("section",{className:"m-ideas-tab","data-testid":"mobile-tab-ideas",children:[t.jsxs("div",{className:"m-ideas-toolbar",children:[t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-primary m-capture-btn",onClick:()=>f(!0),"data-testid":"open-capture","aria-label":"Capture new idea",children:"+ Capture"}),t.jsx("div",{className:"m-filter-chips",role:"tablist","aria-label":"Priority filter",children:Dt.map(v=>t.jsx("button",{type:"button",role:"tab","aria-pressed":d===v.id?"true":"false","aria-selected":d===v.id?"true":"false",className:"m-filter-chip",onClick:()=>y(v.id),"data-testid":`filter-${v.id}`,children:v.label},v.id))})]}),n?t.jsx("div",{className:"m-ideas-list","data-testid":"ideas-loading",children:[0,1,2].map(v=>t.jsx("div",{className:"m-idea-skeleton","aria-hidden":"true"},v))}):N.length===0?t.jsxs("div",{className:"m-empty-state","data-testid":"ideas-empty",children:[t.jsx("div",{className:"m-empty-title",children:e.length===0?"No ideas yet":"Nothing matches this filter"}),t.jsx("div",{className:"m-empty-body",children:e.length===0?"Tap Capture to add your first idea.":"Try All to see everything."})]}):t.jsx("div",{className:"m-ideas-list","data-testid":"ideas-list",children:N.map(v=>t.jsx(_t,{idea:v,onTap:E=>g(E),onSwipeLeft:E=>c(E.id),onSwipeRight:E=>u(E.id)},v.id))}),t.jsx(It,{open:m,onClose:()=>f(!1),onSubmit:i,existingClusters:k}),t.jsx(Ot,{idea:p,open:!!p,onClose:()=>g(null),onPromote:v=>u(v),onKill:v=>c(v),onSetPriority:(v,E)=>l(v,E)}),t.jsx("div",{className:"m-toast-stack","aria-live":"polite","data-testid":"toasts",children:s.map(v=>t.jsx("div",{className:"m-toast","data-kind":v.kind==="error"?"error":"ok",role:v.kind==="error"?"alert":"status",onClick:()=>a(v.id),children:v.message},v.id))})]})}function Ft(e){if(!e)return"";const n=typeof e=="string"?Date.parse(e):Number(e);if(!n||Number.isNaN(n))return"";const s=Date.now()-n;return s<5e3?"just now":s<6e4?`${Math.floor(s/1e3)}s ago`:s<36e5?`${Math.floor(s/6e4)}m ago`:`${Math.floor(s/36e5)}h ago`}function Ut(e,n=3){return e?Array.isArray(e.logTail)?e.logTail.slice(-n):Array.isArray(e.recentLogs)?e.recentLogs.slice(-n):Array.isArray(e.steps)?e.steps.slice(-n).map(s=>`${s.id||s.name||""}: ${s.status||""}`.trim()):[]:[]}function Ht({active:e,onOpen:n,onAbort:s,aborting:a}){const[i,u]=r.useState(null),c=(e==null?void 0:e.featureCode)||"(unknown)",l=(e==null?void 0:e.mode)||"feature",d=(e==null?void 0:e.status)||"unknown",y=(e==null?void 0:e.startedAt)||(e==null?void 0:e.started_at)||null,m=Ut(e),f=r.useCallback(async g=>{if(g==null||g.stopPropagation(),!!(e!=null&&e.featureCode)){u(null);try{await(s==null?void 0:s({featureCode:e.featureCode}))}catch(N){u(N.message||"Failed to abort")}}},[e,s]),p=r.useCallback(()=>n==null?void 0:n(e),[n,e]);return t.jsxs("div",{className:"m-build-card","data-testid":"mobile-build-card","data-feature":c,role:"button",tabIndex:0,onClick:p,onKeyDown:g=>{g.key==="Enter"&&p()},children:[t.jsxs("div",{className:"m-build-card-row",children:[t.jsx("div",{className:"m-build-card-feature",title:c,children:c}),t.jsx("span",{className:"m-status-pill","data-status":d,children:d})]}),t.jsxs("div",{className:"m-build-card-meta",children:[t.jsx("span",{className:"m-build-card-mode","data-mode":l,children:l}),t.jsx("span",{className:"m-build-card-time",children:Ft(y)})]}),m.length>0&&t.jsx("div",{className:"m-build-card-tail",children:m.map((g,N)=>t.jsx("div",{className:"m-build-card-tail-line",children:String(g).slice(0,200)},N))}),t.jsx("div",{className:"m-build-card-actions",children:t.jsx("button",{type:"button",className:"m-btn m-btn-danger m-btn-sm","data-testid":"mobile-build-abort",disabled:a||ae(d),onClick:f,children:a?"Aborting…":"Abort"})}),i&&t.jsx("div",{className:"m-agent-card-error",children:i})]})}const Bt={design:"Design",blueprint:"Blueprint",implementation:"Implementation",ship:"Ship"},Jt=["design","blueprint","implementation","ship"];function qt(e){return e==="active"?"◉":e==="done"||e==="complete"||e==="completed"?"●":e==="failed"||e==="error"?"✕":"○"}function Ne(e){return e==="done"||e==="complete"||e==="completed"}function Yt(e){return e==="failed"||e==="error"}function Wt(e){return e||null}function Kt(e){const n=[];let s=0;for(;s<e.length;){const a=e[s];if(!Ne(a.status)){n.push({type:"step",step:a}),s++;continue}let i=s;for(;i<e.length&&Ne(e[i].status);)i++;const u=i-s;if(u>=3)n.push({type:"collapsed",steps:e.slice(s,i),count:u});else for(let c=s;c<i;c++)n.push({type:"step",step:e[c]});s=i}return n}function _e({step:e}){const n=qt(e.status),s=Yt(e.status),a=e.status==="active";return t.jsxs("div",{className:["m-step-row",a?"m-step-row--active":"",s?"m-step-row--failed":""].filter(Boolean).join(" "),"data-testid":`mobile-build-step-${e.id}`,"data-status":e.status||"pending",children:[t.jsx("span",{className:`m-step-glyph${a?" m-step-glyph--pulse":""}`,"aria-hidden":"true",children:n}),t.jsx("span",{className:"m-step-name",children:e.name||e.id}),Wt(e.agent)&&t.jsx("span",{className:"m-step-agent-chip",children:e.agent}),s&&e.summary&&t.jsx("div",{className:"m-step-summary",children:e.summary})]})}function zt({segment:e,expandedKey:n,onToggle:s}){const a=n===e.steps[0].id;return t.jsx("div",{className:"m-step-collapsed-row","data-testid":"mobile-build-steps-collapsed",role:"button",tabIndex:0,"aria-expanded":a,onClick:()=>s(e.steps[0].id),onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&s(e.steps[0].id)},children:a?e.steps.map(i=>t.jsx(_e,{step:i},i.id)):t.jsxs("span",{className:"m-step-collapsed-label",children:[e.count," done ✓"]})})}function Xt({active:e}){const[n,s]=r.useState(null),a=Ye(Je,(e==null?void 0:e.steps)??null,(e==null?void 0:e.currentStepId)??null),i={};for(const l of a){const d=l.phase||"implementation";i[d]||(i[d]=[]),i[d].push(l)}const u=Jt.filter(l=>{var d;return((d=i[l])==null?void 0:d.length)>0});function c(l){s(d=>d===l?null:l)}return t.jsx("div",{className:"m-build-steps-list","data-testid":"mobile-build-steps",children:u.map(l=>{const d=i[l],y=Kt(d);return t.jsxs("div",{className:"m-build-steps-phase",children:[t.jsx("div",{className:"m-build-steps-phase-header",children:Bt[l]||l}),t.jsx("div",{className:"m-build-steps-phase-rows",children:y.map((m,f)=>m.type==="collapsed"?t.jsx(zt,{segment:m,expandedKey:n,onToggle:c},`collapsed-${f}`):t.jsx(_e,{step:m.step},m.step.id))})]},l)})})}function Vt(e,n){if(typeof e=="string")return e;if(e!=null&&e.type&&(e!=null&&e.message))return`[${e.type}] ${typeof e.message=="string"?e.message:JSON.stringify(e.message)}`;if(e!=null&&e.type)return`[${e.type}] ${JSON.stringify(e).slice(0,240)}`;try{return JSON.stringify(e)}catch{return`(unserializable #${n})`}}function Qt({active:e,onClose:n,onAbort:s}){const a=e==null?void 0:e.featureCode,{events:i}=Re({agentId:(e==null?void 0:e.flowId)||null}),u=r.useRef(null),[c,l]=r.useState(!1),[d,y]=r.useState(null),[m,f]=r.useState("steps");r.useEffect(()=>{var k;(k=u.current)==null||k.scrollIntoView({behavior:"smooth"})},[i.length]);const p=r.useCallback(async()=>{if(a){l(!0),y(null);try{await(s==null?void 0:s({featureCode:a}))}catch(k){y(k.message||"Failed to abort")}finally{l(!1)}}},[a,s]);if(!e)return null;const g=e.status||"unknown",N=e.mode||"feature";return t.jsxs("div",{className:"m-overlay","data-testid":"mobile-build-detail",role:"dialog","aria-modal":"true",children:[t.jsxs("header",{className:"m-overlay-header",children:[t.jsxs("div",{className:"m-overlay-header-inner",children:[t.jsx("div",{className:"m-overlay-title",title:a,children:a}),t.jsx("span",{className:"m-status-pill","data-status":g,children:g}),t.jsx("span",{className:"m-build-card-mode","data-mode":N,children:N})]}),t.jsxs("div",{className:"m-overlay-actions",children:[t.jsx("button",{type:"button",className:"m-btn m-btn-danger m-btn-sm",disabled:c||ae(g),onClick:p,"data-testid":"mobile-build-detail-abort",children:c?"Aborting…":"Abort"}),t.jsx("button",{type:"button",className:"m-btn m-btn-sm",onClick:n,"data-testid":"mobile-build-detail-close",children:"Close"})]})]}),t.jsxs("div",{className:"m-build-detail-tabs",children:[t.jsx("button",{type:"button",className:`m-build-detail-tab${m==="steps"?" is-active":""}`,"data-testid":"mobile-build-detail-tab-steps","aria-pressed":m==="steps",onClick:()=>f("steps"),children:"Steps"}),t.jsx("button",{type:"button",className:`m-build-detail-tab${m==="log"?" is-active":""}`,"data-testid":"mobile-build-detail-tab-log","aria-pressed":m==="log",onClick:()=>f("log"),children:"Log"})]}),m==="steps"?t.jsx("div",{className:"m-overlay-body",children:t.jsx(Xt,{active:e})}):t.jsxs("div",{className:"m-overlay-body m-agent-log",children:[i.length===0?t.jsx("div",{className:"m-empty",children:"No live events yet."}):i.map((k,v)=>t.jsx("div",{className:"m-agent-log-line",children:Vt(k,v)},v)),t.jsx("div",{ref:u})]}),d&&t.jsx("div",{className:"m-agent-card-error",children:d})]})}function Zt(e){if(!e)return"";const n=typeof e=="string"?Date.parse(e):Number(e);if(!n||Number.isNaN(n))return"";const s=Date.now()-n;return s<5e3?"just now":s<6e4?`${Math.floor(s/1e3)}s ago`:s<36e5?`${Math.floor(s/6e4)}m ago`:s<864e5?`${Math.floor(s/36e5)}h ago`:`${Math.floor(s/864e5)}d ago`}function es(e){if(!e||typeof e!="number")return"—";if(e<1e3)return`${e}ms`;if(e<6e4)return`${Math.floor(e/1e3)}s`;if(e<36e5){const a=Math.floor(e/6e4),i=Math.floor(e%6e4/1e3);return i>0?`${a}m ${i}s`:`${a}m`}const n=Math.floor(e/36e5),s=Math.floor(e%36e5/6e4);return s>0?`${n}h ${s}m`:`${n}h`}const ve=80,ts={done:"●",failed:"✕",revised:"↻",killed:"✕"};function ss(e){if(!e)return"";const n=e.toLowerCase();return n==="complete"||n==="completed"?"ok":n==="failed"||n==="error"?"error":n==="aborted"||n==="killed"?"warn":""}function ns({build:e,index:n}){const[s,a]=r.useState(!1),i=Zt(e.completedAt),u=e.failureReason?e.failureReason.slice(0,ve)+(e.failureReason.length>ve?"…":""):null,c=ss(e.status);return t.jsxs("div",{className:`m-build-history-row${s?" is-expanded":""}`,"data-testid":`mobile-build-history-${n}`,"data-status":e.status||"unknown",role:"button",tabIndex:0,"aria-expanded":s,onClick:()=>a(l=>!l),onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&a(d=>!d)},children:[t.jsxs("div",{className:"m-build-history-summary",children:[t.jsx("span",{className:"m-build-history-code",children:e.featureCode||"(unknown)"}),t.jsx("span",{className:`m-status-pill${c?" m-status-pill--"+c:""}`,"data-status":e.status,children:e.status||"unknown"}),i&&t.jsx("span",{className:"m-build-history-rel",children:i}),!s&&u&&t.jsx("span",{className:"m-build-history-reason-trunc",children:u})]}),s&&t.jsxs("div",{className:"m-build-history-detail",children:[e.mode!=null&&t.jsxs("div",{className:"m-build-history-field",children:[t.jsx("span",{className:"m-build-history-field-label",children:"Mode"}),t.jsx("span",{className:"m-build-history-field-value",children:e.mode})]}),e.durationMs!=null&&t.jsxs("div",{className:"m-build-history-field",children:[t.jsx("span",{className:"m-build-history-field-label",children:"Duration"}),t.jsx("span",{className:"m-build-history-field-value",children:es(e.durationMs)})]}),e.stepCount!=null&&t.jsxs("div",{className:"m-build-history-field",children:[t.jsx("span",{className:"m-build-history-field-label",children:"Steps"}),t.jsx("span",{className:"m-build-history-field-value",children:e.stepCount})]}),Array.isArray(e.steps)&&e.steps.length>0&&t.jsx("div",{className:"m-build-history-steps","data-testid":`mobile-build-history-steps-${n}`,children:e.steps.map((l,d)=>t.jsxs("div",{className:`m-build-history-step${l.status==="failed"?" is-failed":""}`,"data-status":l.status,children:[t.jsx("span",{className:"m-build-history-step-glyph",children:ts[l.status]||"○"}),t.jsx("span",{className:"m-build-history-step-id",children:(l.id||"").replace(/_/g," ")}),l.agent&&t.jsx("span",{className:"m-build-history-step-agent",children:l.agent}),l.status==="failed"&&l.summary&&t.jsx("span",{className:"m-build-history-step-summary",children:l.summary})]},`${l.id||d}`))}),e.failureReason&&t.jsxs("div",{className:"m-build-history-field m-build-history-field--block",children:[t.jsx("span",{className:"m-build-history-field-label",children:"Failure reason"}),t.jsx("span",{className:"m-build-history-field-value m-build-history-failure",children:e.failureReason})]}),e.startedAt&&t.jsxs("div",{className:"m-build-history-field",children:[t.jsx("span",{className:"m-build-history-field-label",children:"Started"}),t.jsx("span",{className:"m-build-history-field-value",children:new Date(e.startedAt).toLocaleString()})]}),e.completedAt&&t.jsxs("div",{className:"m-build-history-field",children:[t.jsx("span",{className:"m-build-history-field-label",children:"Completed"}),t.jsx("span",{className:"m-build-history-field-value",children:new Date(e.completedAt).toLocaleString()})]})]})]})}function as({builds:e,loading:n,error:s}){return n?t.jsx("div",{className:"m-build-history","data-testid":"mobile-build-history",children:t.jsx("div",{className:"m-empty",children:"Loading history…"})}):s?t.jsx("div",{className:"m-build-history","data-testid":"mobile-build-history",children:t.jsxs("div",{className:"m-empty",children:["Error: ",s]})}):t.jsx("div",{className:"m-build-history","data-testid":"mobile-build-history",children:!e||e.length===0?t.jsx("div",{className:"m-empty",children:"No past builds."}):e.map((a,i)=>t.jsx(ns,{build:a,index:i},a.flowId||i))})}async function rs(){var e;try{const n=await J("/api/vision/items");if(!n.ok)return[];const s=await n.json(),a=Array.isArray(s==null?void 0:s.items)?s.items:Array.isArray(s)?s:[],i=new Set;for(const u of a){const c=((e=u==null?void 0:u.lifecycle)==null?void 0:e.featureCode)||(u==null?void 0:u.featureCode)||(u==null?void 0:u.id);c&&typeof c=="string"&&i.add(c)}return[...i].sort()}catch{return[]}}function is({open:e,onClose:n,onSubmit:s}){const[a,i]=r.useState(""),[u,c]=r.useState("feature"),[l,d]=r.useState(""),[y,m]=r.useState(!1),[f,p]=r.useState(null),[g,N]=r.useState([]),k=r.useId();r.useEffect(()=>{if(!e)return;let x=!0;return rs().then(j=>{x&&N(j)}),()=>{x=!1}},[e]);const v=r.useMemo(()=>g,[g]);if(!e)return null;function E(){i(""),c("feature"),d(""),p(null),m(!1)}function w(){E(),n==null||n()}async function T(x){if(x==null||x.preventDefault(),!a.trim()){p("Feature code is required");return}m(!0),p(null);try{await(s==null?void 0:s({featureCode:a.trim(),mode:u,description:l.trim()})),w()}catch(j){p(j.message||"Failed to start build"),m(!1)}}return t.jsx("div",{className:"m-sheet-overlay","data-testid":"mobile-start-build-sheet",role:"dialog","aria-modal":"true","aria-label":"Start build",onClick:x=>{x.target===x.currentTarget&&w()},children:t.jsxs("div",{className:"m-sheet",children:[t.jsxs("header",{className:"m-sheet-header",children:[t.jsx("button",{type:"button",className:"m-sheet-close","aria-label":"Close start build",onClick:w,disabled:y,children:"×"}),t.jsx("div",{className:"m-sheet-title-row",children:t.jsx("div",{className:"m-sheet-title",children:"Start build"})})]}),t.jsxs("form",{className:"m-sheet-body",onSubmit:T,children:[t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-build-feature",children:"Feature code"}),t.jsx("input",{id:"m-build-feature",type:"text",className:"m-sheet-input",value:a,onChange:x=>i(x.target.value),placeholder:"e.g. COMP-MOBILE","data-testid":"mobile-build-feature-input",list:k,autoFocus:!0,required:!0}),t.jsx("datalist",{id:k,children:v.map(x=>t.jsx("option",{value:x},x))})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("div",{className:"m-sheet-label",children:"Mode"}),t.jsxs("div",{className:"m-build-mode-row",role:"radiogroup","aria-label":"Build mode",children:[t.jsx("button",{type:"button",role:"radio","aria-checked":u==="feature",className:`m-priority-chip${u==="feature"?" is-selected":""}`,"data-testid":"mobile-build-mode-feature",onClick:()=>c("feature"),children:"Feature"}),t.jsx("button",{type:"button",role:"radio","aria-checked":u==="bug",className:`m-priority-chip${u==="bug"?" is-selected":""}`,"data-testid":"mobile-build-mode-bug",onClick:()=>c("bug"),children:"Bug"})]})]}),t.jsxs("div",{className:"m-sheet-section",children:[t.jsx("label",{className:"m-sheet-label",htmlFor:"m-build-desc",children:"Description (optional)"}),t.jsx("textarea",{id:"m-build-desc",className:"m-sheet-input m-textarea",value:l,onChange:x=>d(x.target.value),rows:4,"data-testid":"mobile-build-description"})]}),f?t.jsx("div",{className:"m-form-error",role:"alert",children:f}):null]}),t.jsxs("footer",{className:"m-sheet-footer",children:[t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-secondary",onClick:w,disabled:y,"data-testid":"mobile-build-cancel",children:"Cancel"}),t.jsx("button",{type:"button",className:"m-sheet-btn m-sheet-btn-primary",disabled:y||!a.trim(),"data-testid":"mobile-build-submit",onClick:T,children:y?"Starting…":"Start"})]})]})})}const Ie=4e3,we={info:{color:"hsl(var(--foreground))",bg:"hsl(var(--muted))"},warn:{color:"hsl(var(--warning, 32 95% 52%))",bg:"hsl(var(--muted))"},error:{color:"hsl(var(--destructive))",bg:"hsl(var(--destructive) / 0.08)"}};function ws(){const[e,n]=r.useState(null),s=r.useRef(null);if(r.useEffect(()=>{function i(u){const{message:c,level:l="info",ttl:d=Ie}=u.detail??{};c&&(clearTimeout(s.current),n({message:c,level:l}),d>0&&(s.current=setTimeout(()=>n(null),d)))}return window.addEventListener("compose:notify",i),()=>{window.removeEventListener("compose:notify",i),clearTimeout(s.current)}},[]),!e)return null;const a=we[e.level]??we.info;return t.jsxs("div",{className:"h-6 flex items-center justify-between px-3 gap-2 shrink-0 text-[11px] font-mono",style:{background:a.bg,color:a.color,borderTop:"1px solid hsl(var(--border))"},role:"status","aria-live":"polite",children:[t.jsx("span",{className:"flex-1 min-w-0 truncate",children:e.message}),t.jsx("button",{className:"shrink-0 opacity-60 hover:opacity-100 text-[10px]",onClick:()=>{clearTimeout(s.current),n(null)},"aria-label":"Dismiss notification",children:"✕"})]})}function ie(e,n="info",s=Ie){try{window.dispatchEvent(new CustomEvent("compose:notify",{detail:{message:e,level:n,ttl:s}}))}catch{}}async function Se(e,n={}){const s=await J(e,n);let a=null;try{a=await s.json()}catch{}if(!s.ok){const i=a&&a.error||`HTTP ${s.status}`;throw new Error(i)}return a}const ls=new Set(["complete","completed"]);function os({active:e,limit:n=20}={}){const[s,a]=r.useState([]),[i,u]=r.useState(!0),[c,l]=r.useState(null),d=r.useRef(new Map),y=r.useRef(new Map),m=r.useRef(!0),f=r.useRef(null),p=r.useCallback(k=>{a(k),l(null);for(const v of k){const E=v.flowId;if(!E)continue;const w=d.current.get(E);if(w&&ls.has(w)&&v.status==="failed"&&y.current.get(E)!==v.status){y.current.set(E,v.status);try{ie(`Build failed post-checks: ${v.featureCode}`,"error",0)}catch{}}}},[]),g=r.useCallback(async({pendingFlowId:k}={})=>{try{const v=await Se(`/api/builds?limit=${n}`);if(!m.current)return;const E=Array.isArray(v==null?void 0:v.builds)?v.builds:[];p(E),k&&(E.some(T=>T.flowId===k)||(f.current&&clearTimeout(f.current),f.current=setTimeout(async()=>{if(m.current)try{const T=await Se(`/api/builds?limit=${n}`);if(!m.current)return;const x=Array.isArray(T==null?void 0:T.builds)?T.builds:[];p(x)}catch(T){m.current&&l(T.message)}},2500)))}catch(v){if(!m.current)return;l(v.message)}finally{m.current&&u(!1)}},[n,p]);r.useEffect(()=>(m.current=!0,g(),()=>{m.current=!1,f.current&&clearTimeout(f.current)}),[g]);const N=r.useRef(null);return r.useEffect(()=>{if(!e)return;N.current,N.current=e;const k=e.flowId;if(!(!k||!ae(e.status))){if(d.current.has(k)){d.current.get(k)!==e.status&&d.current.set(k,e.status);return}d.current.set(k,e.status),g({pendingFlowId:k})}},[e,g]),{builds:s,loading:i,error:c,refetch:g}}function cs({active:e,loading:n,error:s,startBuild:a,abortBuild:i}){const[u,c]=r.useState(!1),[l,d]=r.useState(!1),[y,m]=r.useState(!1),[f,p]=r.useState(null),{builds:g,loading:N,error:k}=os({active:e}),v=!!(e&&e.featureCode&&!ae(e.status)),E=r.useCallback(async({featureCode:T,mode:x,description:j})=>{try{await a({featureCode:T,mode:x,description:j}),p({kind:"ok",message:`Build started for ${T}`})}catch(h){const b=(h==null?void 0:h.status)===409?`A build for ${T} is already active`:(h==null?void 0:h.message)||"Failed to start build";throw p({kind:"error",message:b}),h}},[a]),w=r.useCallback(async({featureCode:T})=>{m(!0);try{await i({featureCode:T}),p({kind:"ok",message:`Aborted ${T}`}),d(!1)}catch(x){throw p({kind:"error",message:(x==null?void 0:x.message)||"Failed to abort"}),x}finally{m(!1)}},[i]);return t.jsxs("section",{"data-testid":"mobile-tab-builds",className:"m-builds-tab",children:[t.jsxs("div",{className:"m-section",children:[t.jsx("h2",{className:"m-section-title",children:"Current build"}),n?t.jsx("div",{className:"m-empty","data-testid":"mobile-build-loading",children:"Loading…"}):v?t.jsx(Ht,{active:e,onOpen:()=>d(!0),onAbort:w,aborting:y}):t.jsxs("div",{className:"m-empty-state","data-testid":"mobile-build-empty",children:[t.jsx("div",{className:"m-empty-title",children:"No active build"}),t.jsx("div",{className:"m-empty-body",children:e&&ae(e.status)?`Last build: ${e.featureCode} (${e.status})`:"Start a build to track progress here."}),t.jsx("button",{type:"button",className:"m-btn m-btn-primary","data-testid":"mobile-build-start",onClick:()=>c(!0),children:"Start build"})]}),s&&t.jsxs("div",{className:"m-empty","data-testid":"mobile-build-error",children:["Error: ",s]})]}),v&&t.jsx("div",{className:"m-section",children:t.jsx("button",{type:"button",className:"m-btn m-btn-sm","data-testid":"mobile-build-start-secondary",onClick:()=>c(!0),children:"Start another build"})}),t.jsxs("div",{className:"m-section","data-testid":"mobile-build-history-section",children:[t.jsx("h2",{className:"m-section-title",children:"History"}),t.jsx(as,{builds:g,loading:N,error:k})]}),t.jsx(is,{open:u,onClose:()=>c(!1),onSubmit:E}),l&&e&&t.jsx(Qt,{active:e,onClose:()=>d(!1),onAbort:w}),t.jsx($e,{message:f==null?void 0:f.message,kind:f==null?void 0:f.kind,onDismiss:()=>p(null)})]})}const ds=3;function us({onNavigate:e}){const[n,s]=r.useState([]),a=r.useRef(new Map),i=r.useRef(0),u=r.useCallback(l=>{clearTimeout(a.current.get(l)),a.current.delete(l),s(d=>d.filter(y=>y.id!==l))},[]);if(r.useEffect(()=>{function l(d){const{message:y,level:m="info",ttl:f}=d.detail??{};if(!y)return;const p=++i.current;s(N=>{const k=[...N,{id:p,message:y,level:m}];if(k.length>ds){const v=k.shift();clearTimeout(a.current.get(v.id)),a.current.delete(v.id)}return k});const g=typeof f=="number"&&f>0&&isFinite(f)?f:0;if(g>0){const N=setTimeout(()=>{s(k=>k.filter(v=>v.id!==p)),a.current.delete(p)},g);a.current.set(p,N)}}return window.addEventListener("compose:notify",l),()=>{window.removeEventListener("compose:notify",l);for(const d of a.current.values())clearTimeout(d);a.current.clear()}},[]),n.length===0)return null;function c(l){return l==="warn"?"agents":"builds"}return t.jsx("div",{className:"m-alert-bar","data-testid":"mobile-alert-bar","aria-live":"polite",children:n.map(l=>t.jsxs("div",{className:`m-alert m-alert-${l.level}`,"data-testid":`mobile-alert-${l.level}`,role:"status",onClick:()=>{e==null||e(c(l.level)),u(l.id)},children:[t.jsx("span",{className:"m-alert-msg",children:l.message}),t.jsx("button",{type:"button",className:"m-alert-dismiss","aria-label":"Dismiss",onClick:d=>{d.stopPropagation(),u(l.id)},children:"✕"})]},l.id))})}async function ke(e,n={}){const s=await J(e,n);let a=null;try{a=await s.json()}catch{}if(!s.ok){const i=a&&a.error||`HTTP ${s.status}`;throw new Error(i)}return a}function ms(){const[e,n]=r.useState([]),[s,a]=r.useState(!0),[i,u]=r.useState(null),c=r.useRef(!0),l=r.useCallback(async()=>{try{const y=await ke("/api/vision/gates");if(!c.current)return;n(Array.isArray(y==null?void 0:y.gates)?y.gates:[]),u(null)}catch(y){if(!c.current)return;u(y.message)}finally{c.current&&a(!1)}},[]);r.useEffect(()=>(c.current=!0,l(),()=>{c.current=!1}),[l]),r.useEffect(()=>{if(typeof window>"u"||typeof WebSocket>"u")return;let y=null,m=!1,f=null;function p(){if(!m){try{const N=window.location.protocol==="https:"?"wss:":"ws:";y=new WebSocket(`${N}//${window.location.host}/ws/vision`)}catch{g();return}y.onmessage=N=>{try{const k=JSON.parse(N.data);if(!k||!k.type)return;(k.type==="gateCreated"||k.type==="gateResolved"||k.type==="gateUpdated")&&l()}catch{}},y.onclose=()=>{m||g()},y.onerror=()=>{try{y.close()}catch{}}}}function g(){f&&clearTimeout(f),f=setTimeout(p,3e3)}return p(),()=>{m=!0,f&&clearTimeout(f);try{y&&(y.onclose=null,y.close())}catch{}}},[l]);const d=r.useCallback(async(y,{outcome:m,reason:f,summary:p}={})=>{if(!["approve","revise","kill"].includes(m))throw new Error(`outcome must be approve|revise|kill (got ${m})`);const g=[];f&&g.push(f),p&&g.push(p);const N=g.join(" — ")||void 0,k={outcome:m};N&&(k.comment=N);const v=await ke(`/api/vision/gates/${encodeURIComponent(y)}/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)});return l(),v},[l]);return{gates:e,loading:s,error:i,refetch:l,resolve:d}}async function me(e,n={}){const s=await J(e,n);let a=null;try{a=await s.json()}catch{}if(!s.ok){const i=a&&a.error||`HTTP ${s.status}`,u=new Error(i);throw u.status=s.status,u.data=a,u}return a}function fs(){const[e,n]=r.useState(null),[s,a]=r.useState(!0),[i,u]=r.useState(null),c=r.useRef(!0),l=r.useCallback(async()=>{try{const m=await me("/api/build/state");if(!c.current)return;n((m==null?void 0:m.state)??null),u(null)}catch(m){if(!c.current)return;u(m.message)}finally{c.current&&a(!1)}},[]);r.useEffect(()=>(c.current=!0,l(),()=>{c.current=!1}),[l]),r.useEffect(()=>{if(typeof window>"u"||typeof WebSocket>"u")return;let m=null,f=!1,p=null;function g(){if(!f){try{const k=window.location.protocol==="https:"?"wss:":"ws:";m=new WebSocket(`${k}//${window.location.host}/ws/vision`)}catch{N();return}m.onmessage=k=>{try{const v=JSON.parse(k.data);if(!v||!v.type)return;v.type==="buildState"&&l()}catch{}},m.onclose=()=>{f||N()},m.onerror=()=>{try{m.close()}catch{}}}}function N(){p&&clearTimeout(p),p=setTimeout(g,3e3)}return g(),()=>{f=!0,p&&clearTimeout(p);try{m&&(m.onclose=null,m.close())}catch{}}},[l]);const d=r.useCallback(async({featureCode:m,mode:f="feature",description:p=""}={})=>{if(!m)throw new Error("featureCode required");const g=await me("/api/build/start",{method:"POST",headers:V({"Content-Type":"application/json"}),body:JSON.stringify({featureCode:m,mode:f,description:p})});return l(),g},[l]),y=r.useCallback(async({featureCode:m}={})=>{if(!m)throw new Error("featureCode required");const f=await me("/api/build/abort",{method:"POST",headers:V({"Content-Type":"application/json"}),body:JSON.stringify({featureCode:m})});return l(),f},[l]);return{active:e,loading:s,error:i,refetch:l,startBuild:d,abortBuild:y}}function hs({url:e,onMessage:n,onOpen:s,onClose:a,onError:i,maxBackoffMs:u=3e4}){let c=null,l=0,d=!1,y=null;function m(){if(!d){try{c=new WebSocket(e)}catch(p){i==null||i(p),f();return}c.onopen=()=>{l=0,s==null||s(c)},c.onmessage=p=>n==null?void 0:n(p),c.onclose=()=>{a==null||a(),f()},c.onerror=p=>{i==null||i(p)}}}function f(){if(d||y)return;const p=Math.min(u,1e3*Math.pow(2,l++));y=setTimeout(()=>{y=null,m()},p)}return m(),{get socket(){return c},isOpen(){return(c==null?void 0:c.readyState)===1},send(p){(c==null?void 0:c.readyState)===1&&c.send(p)},close(){if(d=!0,y&&(clearTimeout(y),y=null),c){try{c.onclose=null,c.onerror=null,c.close()}catch{}c=null}}}}function ps(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws/vision`}function bs(){const[e,n]=r.useState([]),[s,a]=r.useState(!0),[i,u]=r.useState(null),[c,l]=r.useState(!1),d=r.useRef(e);d.current=e;const y=r.useRef(new Map),m=r.useRef(new Map),f=r.useRef(new Set),p=r.useRef(0),g=r.useCallback(async()=>{try{const j=await(await J("/api/vision/items")).json(),h=Array.isArray(j==null?void 0:j.items)?j.items:Array.isArray(j)?j:[];n(h),u(null)}catch(x){u((x==null?void 0:x.message)||"Failed to load items")}finally{a(!1)}},[]);r.useEffect(()=>{let x=!1;g();const j=hs({url:ps(),onOpen:()=>{x||l(!0)},onClose:()=>{x||l(!1)},onMessage:h=>{var A,D;if(x)return;let b;try{b=JSON.parse(h.data)}catch{return}if(!b||typeof b!="object")return;const S=b.type;(S==="visionState"||S==="hydrate")&&Array.isArray(b.items)?n(()=>{const I=y.current,O=m.current,L=f.current;let F=b.items;if(I.size>0&&(F=F.map(q=>{const Y=I.get(q.id);return Y?{...q,...Y}:q})),L.size>0&&(F=F.filter(q=>!L.has(q.id))),O.size>0){const q=new Set(F.map(z=>z.id)),Y=[...O.values()].filter(z=>!q.has(z.id));Y.length>0&&(F=[...Y,...F])}return F}):S==="itemUpdated"&&((A=b.item)!=null&&A.id)?n(I=>{const O=I.findIndex(F=>F.id===b.item.id);if(O===-1)return[...I,b.item];const L=I.slice();return L[O]={...L[O],...b.item},L}):S==="itemCreated"&&((D=b.item)!=null&&D.id)?n(I=>I.some(O=>O.id===b.item.id)?I:[...I,b.item]):S==="itemDeleted"&&b.id?n(I=>I.filter(O=>O.id!==b.id)):S==="state"&&Array.isArray(b.items)?n(b.items):(S==="visionUpdated"||S==="roadmapUpdated")&&g()}});return()=>{x=!0;try{j.close()}catch{}}},[g]);const N=r.useCallback(async(x,j)=>{if(!x||!j||typeof j!="object")return{ok:!1,error:"invalid patch"};const h=d.current;if(!h.find(A=>A.id===x))return{ok:!1,error:"item not found"};y.current.set(x,j);const S=h.map(A=>A.id===x?{...A,...j}:A);n(S);try{const A=await J(`/api/vision/items/${x}`,{method:"PATCH",headers:V({"Content-Type":"application/json"}),body:JSON.stringify(j)}),D=await A.json().catch(()=>({}));if(!A.ok)return y.current.delete(x),n(h),{ok:!1,error:(D==null?void 0:D.error)||`HTTP ${A.status}`};y.current.delete(x);const I=(D==null?void 0:D.item)||(D==null?void 0:D.updated)||null;return I&&I.id===x&&n(O=>O.map(L=>L.id===x?{...L,...I}:L)),{ok:!0,item:I||S.find(O=>O.id===x)}}catch(A){return y.current.delete(x),n(h),{ok:!1,error:(A==null?void 0:A.message)||"Network error"}}},[]),k=r.useCallback(async x=>{if(!x||typeof x!="object")return{ok:!1,error:"invalid fields"};const j=`tmp-${++p.current}`,h={...x,type:"feature",id:j};m.current.set(j,h),n(b=>[h,...b]);try{const b=await J("/api/vision/items",{method:"POST",headers:V({"Content-Type":"application/json"}),body:JSON.stringify({...x,type:"feature"})}),S=await b.json().catch(()=>({}));if(!b.ok)return m.current.delete(j),n(D=>D.filter(I=>I.id!==j)),{ok:!1,error:(S==null?void 0:S.error)||`HTTP ${b.status}`};const A=(S==null?void 0:S.item)||(S!=null&&S.id?S:null);return m.current.delete(j),n(D=>A&&D.some(I=>I.id===A.id)?D.filter(I=>I.id!==j):D.map(I=>I.id===j&&A?{...I,...A}:I)),{ok:!0,item:A}}catch(b){return m.current.delete(j),n(S=>S.filter(A=>A.id!==j)),{ok:!1,error:(b==null?void 0:b.message)||"Network error"}}},[]),v=r.useCallback(async x=>{if(!x)return{ok:!1,error:"id required"};const j=d.current;f.current.add(x),n(h=>h.filter(b=>b.id!==x));try{const h=await J(`/api/vision/items/${x}`,{method:"DELETE",headers:V({"Content-Type":"application/json"})}),b=await h.json().catch(()=>({}));return h.ok?(f.current.delete(x),{ok:!0}):(f.current.delete(x),n(j),{ok:!1,error:(b==null?void 0:b.error)||`HTTP ${h.status}`})}catch(h){return f.current.delete(x),n(j),{ok:!1,error:(h==null?void 0:h.message)||"Network error"}}},[]),E=r.useCallback(async({fromId:x,toId:j,type:h})=>{try{const b=await J("/api/vision/connections",{method:"POST",headers:V({"Content-Type":"application/json"}),body:JSON.stringify({fromId:x,toId:j,type:h})}),S=await b.json().catch(()=>({}));return b.ok?{ok:!0,connection:(S==null?void 0:S.connection)||S}:{ok:!1,error:(S==null?void 0:S.error)||`HTTP ${b.status}`}}catch(b){return{ok:!1,error:(b==null?void 0:b.message)||"Network error"}}},[]),w=r.useCallback(async x=>{try{const j=await J(`/api/vision/connections/${x}`,{method:"DELETE",headers:V({"Content-Type":"application/json"})}),h=await j.json().catch(()=>({}));return j.ok?{ok:!0}:{ok:!1,error:(h==null?void 0:h.error)||`HTTP ${j.status}`}}catch(j){return{ok:!1,error:(j==null?void 0:j.message)||"Network error"}}},[]),T=r.useCallback(async x=>{try{const j=await J(`/api/vision/items/${x}`),h=await j.json().catch(()=>({}));return j.ok?{ok:!0,item:h}:{ok:!1,error:(h==null?void 0:h.error)||`HTTP ${j.status}`}}catch(j){return{ok:!1,error:(j==null?void 0:j.message)||"Network error"}}},[]);return{items:e,loading:s,error:i,connected:c,refetch:g,applyOptimisticEdit:N,createItem:k,deleteItem:v,addConnection:E,removeConnection:w,fetchItemDetail:T}}function ys({active:e,gates:n,items:s}){const a=r.useRef(null),i=r.useRef(new Map);r.useEffect(()=>{if(Array.isArray(n)){if(a.current===null){a.current=new Set(n.map(u=>u.id));return}for(const u of n)if(!a.current.has(u.id)){a.current.add(u.id);const c=(Array.isArray(s)?s:[]).find(d=>d.id===u.itemId),l=(c==null?void 0:c.title)||"Gate pending";ie(`Gate pending: ${l}`,"warn",0)}}},[n,s]),r.useEffect(()=>{if(!e||!e.flowId)return;const u=i.current.get(e.flowId),c=e.status;u!==void 0&&u!==c&&(c==="failed"?ie(`Build failed: ${e.featureCode||e.flowId}`,"error",0):(c==="complete"||c==="completed")&&ie(`Build complete: ${e.featureCode||e.flowId}`,"info",4e3)),i.current.set(e.flowId,c)},[e])}const Pe=["agents","roadmap","builds","ideas"],Ce="agents",Te="compose:mobile:sensitiveToken";function gs(e){const n=e.match(/^\/m(?:\/([^/?#]+))?\/?$/);if(!n)return Ce;const s=n[1];return s&&Pe.includes(s)?s:Ce}function xs(){const[e,n]=r.useState(()=>gs(window.location.pathname));r.useEffect(()=>{try{const h=new URL(window.location.href),b=h.searchParams.get("token");if(b){try{localStorage.setItem(Te,b)}catch{}ge(b),h.searchParams.delete("token"),window.history.replaceState({},"",h.pathname+(h.search?h.search:"")+h.hash)}else{let S=null;try{S=localStorage.getItem(Te)}catch{}S&&ge(S)}}catch{}},[]),r.useEffect(()=>{if(!(typeof navigator>"u")&&"serviceWorker"in navigator)try{navigator.serviceWorker.register("/m-sw.js").catch(h=>{console.warn("[compose-mobile] SW registration failed:",h)})}catch(h){console.warn("[compose-mobile] SW registration threw:",h)}},[]);const s=r.useCallback(h=>{if(Pe.includes(h)){n(h);try{const b=new URL(window.location.href);b.pathname=`/m/${h}`,window.history.replaceState({},"",b.pathname+b.search+b.hash)}catch{}}},[]),{gates:a,loading:i,resolve:u}=ms(),{active:c,loading:l,error:d,startBuild:y,abortBuild:m}=fs(),{items:f,loading:p,error:g,applyOptimisticEdit:N,createItem:k,deleteItem:v,addConnection:E,removeConnection:w,fetchItemDetail:T}=bs();ys({active:c,gates:a,items:f});const x={};a.length>0&&(x.agents={count:a.length,level:"warn"}),(c==null?void 0:c.status)==="failed"?x.builds={level:"error"}:We(c,a,f)&&(x.builds={level:"warn"});let j=null;return e==="agents"?j=t.jsx(ht,{gates:a,gatesLoading:i,resolveGate:u}):e==="roadmap"?j=t.jsx(Tt,{items:f,loading:p,error:g,applyOptimisticEdit:N,createItem:k,deleteItem:v,addConnection:E,removeConnection:w,fetchItemDetail:T}):e==="ideas"?j=t.jsx(Gt,{}):e==="builds"&&(j=t.jsx(cs,{active:c,loading:l,error:d,startBuild:y,abortBuild:m})),t.jsxs("div",{className:"m-root","data-testid":"mobile-root",children:[t.jsx("header",{className:"m-header",children:t.jsx("div",{className:"m-header-title",children:"Compose"})}),t.jsx(us,{onNavigate:s}),t.jsx("main",{className:"m-main","data-testid":"mobile-main","data-tab":e,children:j}),t.jsx(ze,{active:e,onSelect:s,badges:x})]})}const Ss=Object.freeze(Object.defineProperty({__proto__:null,default:xs},Symbol.toStringTag,{value:"Module"}));export{Ss as M,ws as N,Je as P,Ns as R,r as a,Ue as b,js as c,rt as d,hs as e,V as f,Oe as g,re as h,t as j,Ye as m,ie as n,Fe as r,vs as s,J as w};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.m-root{--m-bg: #0a0a0f;--m-surface: #14141c;--m-surface-2: #1c1c26;--m-border: #2a2a35;--m-text: #e6e6f0;--m-text-dim: #9090a0;--m-accent: #7c8cff;--m-danger: #ff6b6b;--m-warn: #f5b342;--m-ok: #4ad28b;--m-touch: 44px;--m-pad: 12px;--m-pad-lg: 16px;--m-radius: 10px;position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--m-bg);color:var(--m-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.4;overflow:hidden}.m-header{flex:0 0 auto;padding:env(safe-area-inset-top) var(--m-pad-lg) 0;background:var(--m-surface);border-bottom:1px solid var(--m-border)}.m-header-title{height:48px;display:flex;align-items:center;font-weight:600;font-size:17px;letter-spacing:.2px}.m-main{flex:1 1 auto;overflow-y:auto;padding:var(--m-pad-lg);padding-bottom:calc(var(--m-pad-lg) + 64px + env(safe-area-inset-bottom))}.m-bottom-nav{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--m-surface);border-top:1px solid var(--m-border);padding-bottom:env(safe-area-inset-bottom);position:absolute;left:0;right:0;bottom:0}.m-nav-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--m-text-dim);min-height:var(--m-touch);height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;cursor:pointer;padding:6px 4px}.m-nav-btn[aria-pressed=true]{color:var(--m-accent)}.m-nav-btn .m-nav-icon{font-size:20px;line-height:1}.m-nav-btn .m-nav-label{font-size:11px;letter-spacing:.2px}.m-nav-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.m-nav-badge{position:absolute;top:-4px;right:-6px;min-width:8px;height:8px;border-radius:999px;font-size:9px;font-weight:600;line-height:8px;padding:0 3px;display:flex;align-items:center;justify-content:center;background:var(--m-text-dim);color:var(--m-bg);border:1px solid var(--m-bg)}.m-nav-badge-info{background:var(--m-accent)}.m-nav-badge-warn{background:var(--m-warn)}.m-nav-badge-error{background:var(--m-danger)}.m-alert-bar{flex:0 0 auto;display:flex;flex-direction:column;gap:0}.m-alert{display:flex;align-items:center;gap:var(--m-pad);padding:8px var(--m-pad-lg);font-size:13px;cursor:pointer;border-bottom:1px solid var(--m-border);background:var(--m-surface);color:var(--m-text)}.m-alert-info{border-left:3px solid var(--m-accent)}.m-alert-warn{border-left:3px solid var(--m-warn)}.m-alert-error{border-left:3px solid var(--m-danger)}.m-alert-msg{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-alert-dismiss{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--m-text-dim);cursor:pointer;font-size:12px;padding:4px;flex:0 0 auto}.m-status-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.3px;text-transform:uppercase;background:var(--m-surface-2);color:var(--m-text-dim);border:1px solid var(--m-border)}.m-status-pill[data-status=planned]{color:var(--m-text-dim)}.m-status-pill[data-status=in_progress]{color:var(--m-accent);border-color:var(--m-accent)}.m-status-pill[data-status=blocked]{color:var(--m-danger);border-color:var(--m-danger)}.m-status-pill[data-status=complete]{color:var(--m-ok);border-color:var(--m-ok)}.m-status-pill[data-status=partial]{color:var(--m-warn);border-color:var(--m-warn)}.m-placeholder{background:var(--m-surface);border:1px solid var(--m-border);border-radius:var(--m-radius);padding:var(--m-pad-lg);text-align:center;color:var(--m-text-dim)}.m-placeholder-title{font-size:16px;font-weight:600;color:var(--m-text);margin-bottom:8px}.m-placeholder-body{font-size:13px}.m-roadmap{display:flex;flex-direction:column;gap:var(--m-pad)}.m-roadmap-error{background:var(--m-surface);border:1px solid var(--m-danger);color:var(--m-danger);border-radius:var(--m-radius);padding:var(--m-pad);font-size:13px}.m-roadmap-empty{background:var(--m-surface);border:1px solid var(--m-border);border-radius:var(--m-radius);padding:var(--m-pad-lg);text-align:center;color:var(--m-text-dim);font-size:14px}.m-roadmap-skeleton{display:flex;flex-direction:column;gap:8px}.m-skel-card{height:72px;border-radius:var(--m-radius);background:linear-gradient(90deg,var(--m-surface) 0%,var(--m-surface-2) 50%,var(--m-surface) 100%);background-size:200% 100%;animation:m-skel 1.4s ease-in-out infinite;border:1px solid var(--m-border)}@keyframes m-skel{0%{background-position:200% 0}to{background-position:-200% 0}}.m-roadmap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.m-item-card{display:block;width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--m-surface);border:1px solid var(--m-border);border-radius:var(--m-radius);padding:var(--m-pad);color:var(--m-text);cursor:pointer;font:inherit;min-height:var(--m-touch)}.m-item-card:active{background:var(--m-surface-2)}.m-item-card-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}.m-item-card-title{font-weight:600;font-size:15px;line-height:1.3;flex:1 1 auto;word-break:break-word}.m-item-card-meta{display:flex;align-items:center;gap:8px;color:var(--m-text-dim);font-size:12px}.m-item-card-group{background:var(--m-surface-2);border:1px solid var(--m-border);border-radius:6px;padding:1px 6px;font-size:11px;color:var(--m-text)}.m-item-card-id{opacity:.7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.m-item-card-desc{margin-top:6px;color:var(--m-text-dim);font-size:13px;line-height:1.35}.m-filter-bar{display:flex;flex-direction:column;gap:8px;background:var(--m-surface);border:1px solid var(--m-border);border-radius:var(--m-radius);padding:var(--m-pad);position:sticky;top:0;z-index:2}.m-filter-chips{display:flex;flex-wrap:wrap;gap:6px}.m-filter-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--m-surface-2);border:1px solid var(--m-border);color:var(--m-text-dim);border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;min-height:32px}.m-filter-chip[aria-pressed=true]{background:var(--m-accent);color:#0a0a0f;border-color:var(--m-accent)}.m-filter-row{display:flex;gap:8px}.m-filter-select,.m-filter-keyword{flex:1 1 50%;background:var(--m-surface-2);border:1px solid var(--m-border);color:var(--m-text);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;min-height:36px}.m-filter-keyword::-moz-placeholder{color:var(--m-text-dim)}.m-filter-keyword::placeholder{color:var(--m-text-dim)}.m-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:100;display:flex;align-items:stretch;justify-content:stretch}.m-sheet{position:absolute;left:0;right:0;bottom:0;top:0;background:var(--m-bg);display:flex;flex-direction:column;animation:m-sheet-slide-up .22s ease-out}@keyframes m-sheet-slide-up{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}.m-sheet-header{flex:0 0 auto;padding:env(safe-area-inset-top) var(--m-pad-lg) var(--m-pad);background:var(--m-surface);border-bottom:1px solid var(--m-border)}.m-sheet-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--m-text-dim);font-size:28px;line-height:1;cursor:pointer;padding:6px 10px;margin-left:-10px;min-width:var(--m-touch);min-height:var(--m-touch)}.m-sheet-title-row{display:flex;align-items:center;gap:8px;margin-top:4px}.m-sheet-title{flex:1 1 auto;font-size:17px;font-weight:600;word-break:break-word}.m-sheet-body{flex:1 1 auto;overflow-y:auto;padding:var(--m-pad-lg);display:flex;flex-direction:column;gap:16px}.m-sheet-section{display:flex;flex-direction:column;gap:6px}.m-sheet-label{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--m-text-dim)}.m-sheet-desc{margin:0;white-space:pre-wrap;font-size:14px;line-height:1.45}.m-sheet-input{background:var(--m-surface);border:1px solid var(--m-border);color:var(--m-text);border-radius:8px;padding:10px 12px;font:inherit;font-size:15px;min-height:var(--m-touch)}.m-sheet-footer{flex:0 0 auto;display:flex;gap:8px;padding:var(--m-pad) var(--m-pad-lg) calc(var(--m-pad-lg) + env(safe-area-inset-bottom));background:var(--m-surface);border-top:1px solid var(--m-border)}.m-sheet-btn{flex:1 1 50%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:8px;padding:12px;font:inherit;font-weight:600;font-size:15px;cursor:pointer;min-height:var(--m-touch);border:1px solid var(--m-border)}.m-sheet-btn-secondary{background:var(--m-surface-2);color:var(--m-text)}.m-sheet-btn-primary{background:var(--m-accent);color:#0a0a0f;border-color:var(--m-accent)}.m-sheet-btn-primary:disabled{opacity:.5;cursor:not-allowed}.m-toast{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--m-surface);color:var(--m-text);border:1px solid var(--m-border);border-radius:8px;padding:10px 16px;font-size:13px;z-index:200;box-shadow:0 8px 24px #00000080;max-width:calc(100% - 32px)}.m-toast[data-kind=error]{border-color:var(--m-danger);color:var(--m-danger)}.m-toast[data-kind=ok]{border-color:var(--m-ok);color:var(--m-ok)}.m-ideas-tab{display:flex;flex-direction:column;gap:var(--m-pad)}.m-ideas-toolbar{display:flex;flex-direction:column;gap:var(--m-pad);position:sticky;top:0;z-index:1;background:var(--m-bg);padding-bottom:4px}.m-capture-btn{flex:0 0 auto;align-self:flex-start;padding:10px 18px;font-size:14px}.m-toast-stack{position:fixed;left:0;right:0;bottom:calc(80px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;z-index:200;padding:0 var(--m-pad-lg)}.m-toast-stack .m-toast{position:static;transform:none;pointer-events:auto;left:auto;bottom:auto}.m-ideas-list{display:flex;flex-direction:column;gap:10px}.m-idea-skeleton{height:76px;border-radius:var(--m-radius);background:linear-gradient(90deg,var(--m-surface) 0%,var(--m-surface-2) 50%,var(--m-surface) 100%);background-size:200% 100%;animation:m-skel 1.4s ease-in-out infinite;border:1px solid var(--m-border)}.m-empty-state{background:var(--m-surface);border:1px dashed var(--m-border);border-radius:var(--m-radius);padding:32px var(--m-pad-lg);text-align:center;color:var(--m-text-dim)}.m-empty-title{font-size:15px;font-weight:600;color:var(--m-text);margin-bottom:4px}.m-empty-body{font-size:13px}.m-idea-row{position:relative;border-radius:var(--m-radius);overflow:hidden;background:var(--m-surface-2)}.m-idea-action{position:absolute;top:0;bottom:0;display:flex;align-items:center;width:50%;padding:0 18px;font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.m-idea-action-left{left:0;background:var(--m-ok);color:#06140c;justify-content:flex-start}.m-idea-action-right{right:0;background:var(--m-danger);color:#fff;justify-content:flex-end}.m-idea-card{position:relative;background:var(--m-surface);border:1px solid var(--m-border);border-radius:var(--m-radius);padding:var(--m-pad);display:flex;flex-direction:column;gap:6px;cursor:pointer;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;user-select:none}.m-idea-card.is-intent-promote{box-shadow:0 0 0 2px var(--m-ok) inset}.m-idea-card.is-intent-kill{box-shadow:0 0 0 2px var(--m-danger) inset}.m-idea-head{display:flex;align-items:center;gap:8px}.m-priority-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.3px;background:var(--m-surface-2);color:var(--m-text-dim);border:1px solid var(--m-border)}.m-priority-badge[data-priority=p0]{background:var(--m-danger);color:#fff;border-color:var(--m-danger)}.m-priority-badge[data-priority=p1]{background:var(--m-warn);color:#1a1306;border-color:var(--m-warn)}.m-priority-badge[data-priority=p2]{background:var(--m-accent);color:#0b0b14;border-color:var(--m-accent)}.m-idea-cluster{font-size:12px;color:var(--m-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-idea-title{margin:0;font-size:15px;font-weight:600;color:var(--m-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.m-idea-tags{display:flex;flex-wrap:wrap;gap:4px}.m-idea-tag{display:inline-flex;align-items:center;gap:4px;background:var(--m-surface-2);color:var(--m-text-dim);border:1px solid var(--m-border);border-radius:6px;padding:2px 6px;font-size:11px}.m-tag-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--m-text-dim);font-size:14px;line-height:1;cursor:pointer;padding:0 2px}.m-tag-input-row{display:flex;gap:6px;align-items:stretch}.m-tag-input-row .m-sheet-input{flex:1 1 auto}.m-tag-add{flex:0 0 auto;padding:0 14px}.m-textarea{resize:vertical;min-height:88px;font-family:inherit}.m-form-error{background:#ff6b6b1a;color:var(--m-danger);padding:8px 12px;border-radius:8px;font-size:13px}.m-detail-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--m-text-dim);margin-top:6px}.m-detail-meta-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--m-surface-2);border:1px solid var(--m-border);border-radius:6px;padding:2px 6px}.m-detail-meta-status{letter-spacing:.4px;text-transform:uppercase}.m-priority-selector{display:flex;flex-wrap:wrap;gap:6px}.m-priority-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--m-surface-2);color:var(--m-text);border:1px solid var(--m-border);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;min-height:32px}.m-priority-chip[data-priority=p0].is-selected{background:var(--m-danger);color:#fff;border-color:var(--m-danger)}.m-priority-chip[data-priority=p1].is-selected{background:var(--m-warn);color:#1a1306;border-color:var(--m-warn)}.m-priority-chip[data-priority=p2].is-selected{background:var(--m-accent);color:#0b0b14;border-color:var(--m-accent)}.m-priority-chip[data-priority=untriaged].is-selected{background:var(--m-text-dim);color:#0b0b14;border-color:var(--m-text-dim)}.m-agents-tab{display:flex;flex-direction:column;gap:var(--m-pad-lg)}.m-section{display:flex;flex-direction:column;gap:8px}.m-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--m-text-dim);margin:0 0 4px}.m-stack{display:flex;flex-direction:column;gap:8px}.m-empty{background:var(--m-surface);border:1px dashed var(--m-border);border-radius:var(--m-radius);padding:var(--m-pad);color:var(--m-text-dim);font-size:13px;text-align:center}.m-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--m-surface-2);color:var(--m-text);border:1px solid var(--m-border);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500;min-height:var(--m-touch);cursor:pointer}.m-btn-sm{min-height:32px;padding:6px 10px;font-size:12px}.m-btn-primary{background:var(--m-accent);color:#0a0a0f;border-color:var(--m-accent)}.m-btn-danger{background:#ff6b6b1f;color:var(--m-danger);border-color:#ff6b6b66}.m-btn-warn{background:#f5b3421f;color:var(--m-warn);border-color:#f5b34266}.m-btn-active{outline:2px solid currentColor;outline-offset:-1px}.m-btn:disabled{opacity:.5;cursor:not-allowed}.m-agent-card,.m-gate-card,.m-session-card{background:var(--m-surface);border:1px solid var(--m-border);border-radius:var(--m-radius);padding:var(--m-pad);display:flex;flex-direction:column;gap:6px}.m-agent-card-row,.m-gate-card-row,.m-session-card-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.m-agent-card-id,.m-gate-card-title,.m-session-card-title{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:var(--m-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.m-agent-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.m-agent-card-time,.m-gate-card-step,.m-session-card-id{font-size:11px;color:var(--m-text-dim)}.m-gate-card-summary{font-size:13px;color:var(--m-text);line-height:1.35}.m-agent-card-error{color:var(--m-danger);font-size:12px;padding:6px 8px;background:#ff6b6b14;border-radius:6px}.m-session-card-form{display:flex;gap:6px}.m-input,.m-textarea{flex:1 1 auto;background:var(--m-surface-2);color:var(--m-text);border:1px solid var(--m-border);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px}.m-textarea{resize:vertical;min-height:44px}.m-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--m-bg);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.m-overlay-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:var(--m-pad);border-bottom:1px solid var(--m-border)}.m-overlay-header-inner{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0}.m-overlay-title{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-overlay-actions{display:flex;gap:6px;flex:0 0 auto}.m-overlay-body{flex:1 1 auto;overflow-y:auto;padding:var(--m-pad)}.m-agent-log{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45}.m-agent-log-line{white-space:pre-wrap;word-break:break-word;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.04);color:var(--m-text-dim)}.m-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0009;display:flex;align-items:flex-end}.m-sheet{flex:1 1 auto;background:var(--m-surface);border-top-left-radius:14px;border-top-right-radius:14px;border-top:1px solid var(--m-border);padding:var(--m-pad-lg);padding-bottom:calc(var(--m-pad-lg) + env(safe-area-inset-bottom));max-height:90vh;overflow-y:auto}.m-sheet-header{margin-bottom:var(--m-pad)}.m-sheet-title{font-size:16px;font-weight:600;color:var(--m-text)}.m-sheet-subtitle{font-size:12px;color:var(--m-text-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.m-sheet-body{display:flex;flex-direction:column;gap:var(--m-pad)}.m-sheet-outcomes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.m-field{display:flex;flex-direction:column;gap:4px}.m-field-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--m-text-dim)}.m-sheet-actions{display:flex;justify-content:flex-end;gap:8px}.m-builds-tab{display:flex;flex-direction:column;gap:var(--m-pad);padding:var(--m-pad)}.m-build-card{display:flex;flex-direction:column;gap:6px;padding:var(--m-pad);background:var(--m-surface);border:1px solid var(--m-border);border-radius:10px;cursor:pointer}.m-build-card-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.m-build-card-feature{font-weight:600;color:var(--m-text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.m-build-card-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--m-text-dim)}.m-build-card-mode{text-transform:uppercase;letter-spacing:.5px;font-size:10px;padding:2px 6px;border-radius:4px;background:#ffffff0f;color:var(--m-text)}.m-build-card-mode[data-mode=bug]{background:#f5b3421f;color:var(--m-warn)}.m-build-card-tail{display:flex;flex-direction:column;gap:2px;font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--m-text-dim);background:#0000002e;border-radius:6px;padding:6px 8px;max-height:64px;overflow:hidden}.m-build-card-tail-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-build-card-actions{display:flex;justify-content:flex-end;gap:6px}.m-build-mode-row{display:flex;gap:8px}.m-build-steps-list{display:flex;flex-direction:column;gap:12px;padding:4px 0}.m-build-steps-phase{display:flex;flex-direction:column;gap:0}.m-build-steps-phase-header{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--m-text-dim);font-weight:600;padding:4px 0 6px;border-bottom:1px solid var(--m-border);margin-bottom:4px}.m-build-steps-phase-rows{display:flex;flex-direction:column;gap:0}.m-step-row{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px;padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.04);min-height:36px}.m-step-row--active{background:#7c8cff12;border-radius:6px;border-bottom-color:transparent}.m-step-row--failed{background:#ff6b6b12;border-radius:6px;border-left:3px solid var(--m-danger);padding-left:8px;border-bottom-color:transparent}.m-step-glyph{flex:0 0 auto;width:18px;font-size:13px;line-height:1.6;color:var(--m-text-dim);text-align:center}.m-step-glyph--pulse{color:var(--m-accent);animation:m-step-pulse 1.2s ease-in-out infinite}@keyframes m-step-pulse{0%,to{opacity:1}50%{opacity:.35}}.m-step-name{flex:1 1 auto;font-size:13px;color:var(--m-text);line-height:1.5}.m-step-row--active .m-step-name{color:var(--m-accent);font-weight:500}.m-step-row--failed .m-step-name{color:var(--m-danger);font-weight:500}.m-step-agent-chip{flex:0 0 auto;background:var(--m-surface-2);border:1px solid var(--m-border);border-radius:4px;padding:1px 6px;font-size:10px;color:var(--m-text-dim);text-transform:uppercase;letter-spacing:.3px}.m-step-summary{flex:0 0 100%;font-size:12px;color:var(--m-danger);padding-left:24px;line-height:1.35;margin-top:2px}.m-step-collapsed-row{display:flex;flex-direction:column;padding:4px;cursor:pointer;border-radius:6px;border:1px solid transparent}.m-step-collapsed-row:hover,.m-step-collapsed-row:focus{background:var(--m-surface-2);outline:none}.m-step-collapsed-label{font-size:12px;color:var(--m-text-dim);padding:4px;font-style:italic}.m-build-detail-tabs{flex:0 0 auto;display:flex;gap:0;border-bottom:1px solid var(--m-border);background:var(--m-surface)}.m-build-detail-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--m-text-dim);padding:10px 20px;font:inherit;font-size:14px;font-weight:500;cursor:pointer;margin-bottom:-1px}.m-build-detail-tab.is-active,.m-build-detail-tab[aria-pressed=true]{color:var(--m-accent);border-bottom-color:var(--m-accent)}.m-build-history{display:flex;flex-direction:column;gap:0;background:var(--m-surface);border:1px solid var(--m-border);border-radius:var(--m-radius);overflow:hidden}.m-build-history-row{display:flex;flex-direction:column;padding:10px 12px;border-bottom:1px solid var(--m-border);cursor:pointer;min-height:var(--m-touch)}.m-build-history-row:last-child{border-bottom:0}.m-build-history-row:hover,.m-build-history-row:focus{background:var(--m-surface-2);outline:none}.m-build-history-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.m-build-history-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600;color:var(--m-text);flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-build-history-rel{font-size:11px;color:var(--m-text-dim);margin-left:auto;white-space:nowrap}.m-build-history-reason-trunc{flex:0 0 100%;font-size:12px;color:var(--m-danger);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-build-history-detail{margin-top:8px;display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid var(--m-border)}.m-build-history-field{display:flex;align-items:flex-start;gap:8px;font-size:12px}.m-build-history-field--block{flex-direction:column;gap:2px}.m-build-history-field-label{flex:0 0 80px;color:var(--m-text-dim);text-transform:uppercase;letter-spacing:.3px;font-size:10px;padding-top:1px}.m-build-history-field-value{flex:1 1 auto;color:var(--m-text);word-break:break-word}.m-build-history-failure{color:var(--m-danger);white-space:pre-wrap}.m-build-history-steps{margin-top:6px;display:flex;flex-direction:column;gap:2px}.m-build-history-step{display:flex;align-items:baseline;gap:6px;font-size:12px;color:var(--m-text-dim)}.m-build-history-step.is-failed{color:var(--m-danger)}.m-build-history-step-glyph{width:14px;text-align:center;flex:0 0 auto}.m-build-history-step-id{text-transform:capitalize}.m-build-history-step-agent{font-size:10px;opacity:.7}.m-build-history-step-summary{font-size:11px;word-break:break-word}.m-fab{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom));right:16px;width:52px;height:52px;border-radius:50%;background:var(--m-accent);color:#fff;border:none;font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #0006;z-index:10;transition:transform .15s ease,opacity .15s ease}.m-fab:active{transform:scale(.93);opacity:.85}.m-sheet-btn-danger{background:transparent;color:var(--m-danger);border:1px solid var(--m-danger);border-radius:var(--m-radius);padding:0 12px;height:var(--m-touch);min-width:80px;font-size:14px;cursor:pointer;transition:background .15s ease,color .15s ease}.m-sheet-btn-danger:hover{background:color-mix(in srgb,var(--m-danger) 15%,transparent)}.m-sheet-btn-danger--armed{background:var(--m-danger);color:#fff}.m-sheet-btn-danger:disabled{opacity:.5;cursor:not-allowed}.m-sheet-footer-right{display:flex;gap:8px;margin-left:auto}.m-sheet-connections{border-top:1px solid var(--m-border);padding-top:12px}.m-sheet-connections-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.m-conn-add-btn{background:transparent;color:var(--m-accent);border:1px solid var(--m-accent);border-radius:6px;padding:2px 10px;font-size:12px;cursor:pointer}.m-conn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.m-conn-row{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--m-border);font-size:13px}.m-conn-dir{color:var(--m-text-dim);flex:0 0 16px;text-align:center}.m-conn-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-conn-type{flex:0 0 auto;font-size:11px;color:var(--m-text-dim);background:var(--m-surface-2);border-radius:4px;padding:1px 5px}.m-conn-remove{flex:0 0 28px;height:28px;border:none;background:transparent;color:var(--m-text-dim);cursor:pointer;font-size:16px;border-radius:4px}.m-conn-remove--armed{background:var(--m-danger);color:#fff}.m-conn-loading,.m-conn-empty{font-size:12px;color:var(--m-text-dim);padding:4px 0}.m-conn-picker{margin-top:8px;background:var(--m-surface-2);border-radius:var(--m-radius);padding:10px;display:flex;flex-direction:column;gap:8px}.m-conn-picker-row{display:flex;gap:6px}.m-conn-search{flex:1 1 auto}.m-conn-type-select{flex:0 0 110px}.m-conn-picker-list{list-style:none;margin:0;padding:0;max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.m-conn-picker-item{width:100%;text-align:left;background:var(--m-surface);border:none;border-radius:6px;padding:8px;cursor:pointer;display:flex;align-items:center;gap:8px}.m-conn-picker-item:active{background:var(--m-surface-2)}.m-conn-picker-title{flex:1 1 auto;font-size:13px;color:var(--m-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-conn-picker-id{flex:0 0 auto;font-size:11px;color:var(--m-text-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.m-conn-picker-empty{font-size:12px;color:var(--m-text-dim);padding:6px 0;text-align:center}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a4 as S,a7 as R,b5 as Q,g as Y,s as tt,a as et,b as at,q as rt,p as nt,_ as p,l as z,c as it,F as st,I as ot,N as lt,e as ct,z as ut,G as pt}from"./App-
|
|
1
|
+
import{a4 as S,a7 as R,b5 as Q,g as Y,s as tt,a as et,b as at,q as rt,p as nt,_ as p,l as z,c as it,F as st,I as ot,N as lt,e as ct,z as ut,G as pt}from"./App-CZNprfTP.js";import{p as gt}from"./chunk-4BX2VUAB-bH25OCUA.js";import{p as dt}from"./wardley-L42UT6IY-nYDkwvlu.js";import{d as _}from"./arc-D7Ql7gBh.js";import{o as ft}from"./ordinal-Cboi1Yqb.js";import"./mobile-B-d4crm_.js";import"./index-BVnbNZXC.js";import"./graph-viND0NdB.js";import"./init-Gi6I4Gst.js";function ht(t,a){return a<t?-1:a>t?1:a>=t?0:NaN}function mt(t){return t}function vt(){var t=mt,a=ht,f=null,y=S(0),s=S(R),g=S(0);function o(e){var n,l=(e=Q(e)).length,d,h,v=0,c=new Array(l),i=new Array(l),x=+y.apply(this,arguments),w=Math.min(R,Math.max(-R,s.apply(this,arguments)-x)),m,D=Math.min(Math.abs(w)/l,g.apply(this,arguments)),$=D*(w<0?-1:1),u;for(n=0;n<l;++n)(u=i[c[n]=n]=+t(e[n],n,e))>0&&(v+=u);for(a!=null?c.sort(function(A,C){return a(i[A],i[C])}):f!=null&&c.sort(function(A,C){return f(e[A],e[C])}),n=0,h=v?(w-l*$)/v:0;n<l;++n,x=m)d=c[n],u=i[d],m=x+(u>0?u*h:0)+$,i[d]={data:e[d],index:n,value:u,startAngle:x,endAngle:m,padAngle:D};return i}return o.value=function(e){return arguments.length?(t=typeof e=="function"?e:S(+e),o):t},o.sortValues=function(e){return arguments.length?(a=e,f=null,o):a},o.sort=function(e){return arguments.length?(f=e,a=null,o):f},o.startAngle=function(e){return arguments.length?(y=typeof e=="function"?e:S(+e),o):y},o.endAngle=function(e){return arguments.length?(s=typeof e=="function"?e:S(+e),o):s},o.padAngle=function(e){return arguments.length?(g=typeof e=="function"?e:S(+e),o):g},o}var xt=pt.pie,F={sections:new Map,showData:!1},T=F.sections,W=F.showData,St=structuredClone(xt),yt=p(()=>structuredClone(St),"getConfig"),wt=p(()=>{T=new Map,W=F.showData,ut()},"clear"),At=p(({label:t,value:a})=>{if(a<0)throw new Error(`"${t}" has invalid value: ${a}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);T.has(t)||(T.set(t,a),z.debug(`added new section: ${t}, with value: ${a}`))},"addSection"),Ct=p(()=>T,"getSections"),Dt=p(t=>{W=t},"setShowData"),$t=p(()=>W,"getShowData"),V={getConfig:yt,clear:wt,setDiagramTitle:nt,getDiagramTitle:rt,setAccTitle:at,getAccTitle:et,setAccDescription:tt,getAccDescription:Y,addSection:At,getSections:Ct,setShowData:Dt,getShowData:$t},Tt=p((t,a)=>{gt(t,a),a.setShowData(t.showData),t.sections.map(a.addSection)},"populateDb"),bt={parse:p(async t=>{const a=await dt("pie",t);z.debug(a),Tt(a,V)},"parse")},kt=p(t=>`
|
|
2
2
|
.pieCircle{
|
|
3
3
|
stroke: ${t.pieStrokeColor};
|
|
4
4
|
stroke-width : ${t.pieStrokeWidth};
|
package/dist/assets/{quadrantDiagram-W4KKPZXB-BVF0Fe8w.js → quadrantDiagram-W4KKPZXB-CR3NLvwU.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as Ae,g as ke,q as ae,p as Fe,a as Pe,b as ve,_ as o,c as wt,l as At,d as zt,e as Ce,z as Le,G as z,i as Ee,K as De}from"./App-
|
|
1
|
+
import{s as Ae,g as ke,q as ae,p as Fe,a as Pe,b as ve,_ as o,c as wt,l as At,d as zt,e as Ce,z as Le,G as z,i as Ee,K as De}from"./App-CZNprfTP.js";import{l as ie}from"./linear-BOFLe2h1.js";import"./mobile-B-d4crm_.js";import"./index-BVnbNZXC.js";import"./graph-viND0NdB.js";import"./init-Gi6I4Gst.js";import"./defaultLocale-DX6XiGOO.js";var Vt=(function(){var t=o(function(j,r,l,g){for(l=l||{},g=j.length;g--;l[j[g]]=r);return l},"o"),n=[1,3],u=[1,4],c=[1,5],h=[1,6],p=[1,7],y=[1,4,5,10,12,13,14,15,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],S=[1,4,5,10,12,13,14,15,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],a=[55,56,57],k=[2,36],d=[1,37],T=[1,36],m=[1,38],q=[1,35],b=[1,43],x=[1,41],_=[1,45],Y=[1,14],G=[1,23],yt=[1,18],Tt=[1,19],dt=[1,20],Ft=[1,21],ut=[1,22],xt=[1,24],ft=[1,25],gt=[1,26],i=[1,27],Bt=[1,28],Rt=[1,29],U=[1,32],Q=[1,33],F=[1,34],P=[1,39],v=[1,40],C=[1,42],L=[1,44],H=[1,63],X=[1,62],E=[4,5,8,10,12,13,14,15,18,44,47,49,55,56,57,63,64,65,66,67],Nt=[1,66],Wt=[1,67],Ut=[1,68],Qt=[1,69],Ot=[1,70],Ht=[1,71],Xt=[1,72],Mt=[1,73],Yt=[1,74],jt=[1,75],Gt=[1,76],Kt=[1,77],w=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,91],$=[1,92],tt=[1,93],et=[1,100],it=[1,94],at=[1,97],nt=[1,95],st=[1,96],rt=[1,98],ot=[1,99],Pt=[1,103],Zt=[10,55,56,57],N=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],vt={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(r,l,g,f,A,e,pt){var s=e.length-1;switch(A){case 23:this.$=e[s];break;case 24:this.$=e[s-1]+""+e[s];break;case 26:this.$=e[s-1]+e[s];break;case 27:this.$=[e[s].trim()];break;case 28:e[s-2].push(e[s].trim()),this.$=e[s-2];break;case 29:this.$=e[s-4],f.addClass(e[s-2],e[s]);break;case 37:this.$=[];break;case 42:this.$=e[s].trim(),f.setDiagramTitle(this.$);break;case 43:this.$=e[s].trim(),f.setAccTitle(this.$);break;case 44:case 45:this.$=e[s].trim(),f.setAccDescription(this.$);break;case 46:f.addSection(e[s].substr(8)),this.$=e[s].substr(8);break;case 47:f.addPoint(e[s-3],"",e[s-1],e[s],[]);break;case 48:f.addPoint(e[s-4],e[s-3],e[s-1],e[s],[]);break;case 49:f.addPoint(e[s-4],"",e[s-2],e[s-1],e[s]);break;case 50:f.addPoint(e[s-5],e[s-4],e[s-2],e[s-1],e[s]);break;case 51:f.setXAxisLeftText(e[s-2]),f.setXAxisRightText(e[s]);break;case 52:e[s-1].text+=" ⟶ ",f.setXAxisLeftText(e[s-1]);break;case 53:f.setXAxisLeftText(e[s]);break;case 54:f.setYAxisBottomText(e[s-2]),f.setYAxisTopText(e[s]);break;case 55:e[s-1].text+=" ⟶ ",f.setYAxisBottomText(e[s-1]);break;case 56:f.setYAxisBottomText(e[s]);break;case 57:f.setQuadrant1Text(e[s]);break;case 58:f.setQuadrant2Text(e[s]);break;case 59:f.setQuadrant3Text(e[s]);break;case 60:f.setQuadrant4Text(e[s]);break;case 64:this.$={text:e[s],type:"text"};break;case 65:this.$={text:e[s-1].text+""+e[s],type:e[s-1].type};break;case 66:this.$={text:e[s],type:"text"};break;case 67:this.$={text:e[s],type:"markdown"};break;case 68:this.$=e[s];break;case 69:this.$=e[s-1]+""+e[s];break}},"anonymous"),table:[{18:n,26:1,27:2,28:u,55:c,56:h,57:p},{1:[3]},{18:n,26:8,27:2,28:u,55:c,56:h,57:p},{18:n,26:9,27:2,28:u,55:c,56:h,57:p},t(y,[2,33],{29:10}),t(S,[2,61]),t(S,[2,62]),t(S,[2,63]),{1:[2,30]},{1:[2,31]},t(a,k,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:T,10:m,12:q,13:b,14:x,15:_,18:Y,25:G,35:yt,37:Tt,39:dt,41:Ft,42:ut,48:xt,50:ft,51:gt,52:i,53:Bt,54:Rt,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(y,[2,34]),{27:46,55:c,56:h,57:p},t(a,[2,37]),t(a,k,{24:13,32:15,33:16,34:17,43:30,58:31,31:47,4:d,5:T,10:m,12:q,13:b,14:x,15:_,18:Y,25:G,35:yt,37:Tt,39:dt,41:Ft,42:ut,48:xt,50:ft,51:gt,52:i,53:Bt,54:Rt,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(a,[2,39]),t(a,[2,40]),t(a,[2,41]),{36:[1,48]},{38:[1,49]},{40:[1,50]},t(a,[2,45]),t(a,[2,46]),{18:[1,51]},{4:d,5:T,10:m,12:q,13:b,14:x,15:_,43:52,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:d,5:T,10:m,12:q,13:b,14:x,15:_,43:53,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:d,5:T,10:m,12:q,13:b,14:x,15:_,43:54,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:d,5:T,10:m,12:q,13:b,14:x,15:_,43:55,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:d,5:T,10:m,12:q,13:b,14:x,15:_,43:56,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:d,5:T,10:m,12:q,13:b,14:x,15:_,43:57,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,44:[1,58],47:[1,59],58:61,59:60,63:F,64:P,65:v,66:C,67:L},t(E,[2,64]),t(E,[2,66]),t(E,[2,67]),t(E,[2,70]),t(E,[2,71]),t(E,[2,72]),t(E,[2,73]),t(E,[2,74]),t(E,[2,75]),t(E,[2,76]),t(E,[2,77]),t(E,[2,78]),t(E,[2,79]),t(E,[2,80]),t(E,[2,81]),t(y,[2,35]),t(a,[2,38]),t(a,[2,42]),t(a,[2,43]),t(a,[2,44]),{3:65,4:Nt,5:Wt,6:Ut,7:Qt,8:Ot,9:Ht,10:Xt,11:Mt,12:Yt,13:jt,14:Gt,15:Kt,21:64},t(a,[2,53],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,49:[1,78],63:F,64:P,65:v,66:C,67:L}),t(a,[2,56],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,49:[1,79],63:F,64:P,65:v,66:C,67:L}),t(a,[2,57],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,63:F,64:P,65:v,66:C,67:L}),t(a,[2,58],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,63:F,64:P,65:v,66:C,67:L}),t(a,[2,59],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,63:F,64:P,65:v,66:C,67:L}),t(a,[2,60],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,63:F,64:P,65:v,66:C,67:L}),{45:[1,80]},{44:[1,81]},t(E,[2,65]),t(E,[2,82]),t(E,[2,83]),t(E,[2,84]),{3:83,4:Nt,5:Wt,6:Ut,7:Qt,8:Ot,9:Ht,10:Xt,11:Mt,12:Yt,13:jt,14:Gt,15:Kt,18:[1,82]},t(w,[2,23]),t(w,[2,1]),t(w,[2,2]),t(w,[2,3]),t(w,[2,4]),t(w,[2,5]),t(w,[2,6]),t(w,[2,7]),t(w,[2,8]),t(w,[2,9]),t(w,[2,10]),t(w,[2,11]),t(w,[2,12]),t(a,[2,52],{58:31,43:84,4:d,5:T,10:m,12:q,13:b,14:x,15:_,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(a,[2,55],{58:31,43:85,4:d,5:T,10:m,12:q,13:b,14:x,15:_,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),{46:[1,86]},{45:[1,87]},{4:J,5:$,6:tt,8:et,11:it,13:at,16:90,17:nt,18:st,19:rt,20:ot,22:89,23:88},t(w,[2,24]),t(a,[2,51],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,63:F,64:P,65:v,66:C,67:L}),t(a,[2,54],{59:60,58:61,4:d,5:T,8:H,10:m,12:q,13:b,14:x,15:_,18:X,63:F,64:P,65:v,66:C,67:L}),t(a,[2,47],{22:89,16:90,23:101,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{46:[1,102]},t(a,[2,29],{10:Pt}),t(Zt,[2,27],{16:104,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),t(N,[2,25]),t(N,[2,13]),t(N,[2,14]),t(N,[2,15]),t(N,[2,16]),t(N,[2,17]),t(N,[2,18]),t(N,[2,19]),t(N,[2,20]),t(N,[2,21]),t(N,[2,22]),t(a,[2,49],{10:Pt}),t(a,[2,48],{22:89,16:90,23:105,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{4:J,5:$,6:tt,8:et,11:it,13:at,16:90,17:nt,18:st,19:rt,20:ot,22:106},t(N,[2,26]),t(a,[2,50],{10:Pt}),t(Zt,[2,28],{16:104,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(r,l){if(l.recoverable)this.trace(r);else{var g=new Error(r);throw g.hash=l,g}},"parseError"),parse:o(function(r){var l=this,g=[0],f=[],A=[null],e=[],pt=this.table,s="",qt=0,Jt=0,qe=2,$t=1,be=e.slice.call(arguments,1),D=Object.create(this.lexer),K={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(K.yy[Ct]=this.yy[Ct]);D.setInput(r,K.yy),K.yy.lexer=D,K.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Lt=D.yylloc;e.push(Lt);var Se=D.options&&D.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(R){g.length=g.length-2*R,A.length=A.length-R,e.length=e.length-R}o(_e,"popStack");function te(){var R;return R=f.pop()||D.lex()||$t,typeof R!="number"&&(R instanceof Array&&(f=R,R=f.pop()),R=l.symbols_[R]||R),R}o(te,"lex");for(var B,Z,W,Et,lt={},bt,M,ee,St;;){if(Z=g[g.length-1],this.defaultActions[Z]?W=this.defaultActions[Z]:((B===null||typeof B>"u")&&(B=te()),W=pt[Z]&&pt[Z][B]),typeof W>"u"||!W.length||!W[0]){var Dt="";St=[];for(bt in pt[Z])this.terminals_[bt]&&bt>qe&&St.push("'"+this.terminals_[bt]+"'");D.showPosition?Dt="Parse error on line "+(qt+1)+`:
|
|
2
2
|
`+D.showPosition()+`
|
|
3
3
|
Expecting `+St.join(", ")+", got '"+(this.terminals_[B]||B)+"'":Dt="Parse error on line "+(qt+1)+": Unexpected "+(B==$t?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(Dt,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:Lt,expected:St})}if(W[0]instanceof Array&&W.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+B);switch(W[0]){case 1:g.push(B),A.push(D.yytext),e.push(D.yylloc),g.push(W[1]),B=null,Jt=D.yyleng,s=D.yytext,qt=D.yylineno,Lt=D.yylloc;break;case 2:if(M=this.productions_[W[1]][1],lt.$=A[A.length-M],lt._$={first_line:e[e.length-(M||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(M||1)].first_column,last_column:e[e.length-1].last_column},Se&&(lt._$.range=[e[e.length-(M||1)].range[0],e[e.length-1].range[1]]),Et=this.performAction.apply(lt,[s,Jt,qt,K.yy,W[1],A,e].concat(be)),typeof Et<"u")return Et;M&&(g=g.slice(0,-1*M*2),A=A.slice(0,-1*M),e=e.slice(0,-1*M)),g.push(this.productions_[W[1]][0]),A.push(lt.$),e.push(lt._$),ee=pt[g[g.length-2]][g[g.length-1]],g.push(ee);break;case 3:return!0}}return!0},"parse")},me=(function(){var j={EOF:1,parseError:o(function(l,g){if(this.yy.parser)this.yy.parser.parseError(l,g);else throw new Error(l)},"parseError"),setInput:o(function(r,l){return this.yy=l||this.yy||{},this._input=r,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 r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:o(function(r){var l=r.length,g=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var f=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),g.length-1&&(this.yylineno-=g.length-1);var A=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:g?(g.length===f.length?this.yylloc.first_column:0)+f[f.length-g.length].length-g[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-l]),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
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(r){this.unput(this.match.slice(r))},"less"),pastInput:o(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as Ge}from"./chunk-55IACEB6-D9msGx9f.js";import{s as Xe}from"./chunk-2J33WTMH-ERhP5YQt.js";import{_ as d,D as Be,b as Je,a as Ze,s as et,g as tt,p as st,q as it,c as Ne,l as qe,z as rt,C as nt,o as at,r as lt,u as ct}from"./App-BpvJr136.js";import"./mobile-DAxPPzok.js";import"./index-DCkbHzW2.js";import"./graph-BqpC5g-G.js";var Ce=(function(){var e=d(function($,i,n,l){for(n=n||{},l=$.length;l--;n[$[l]]=i);return n},"o"),r=[1,3],u=[1,4],h=[1,5],o=[1,6],c=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],E=[1,22],p=[2,7],f=[1,26],m=[1,27],b=[1,28],k=[1,29],C=[1,33],V=[1,34],A=[1,35],v=[1,36],L=[1,37],x=[1,38],O=[1,24],w=[1,31],D=[1,32],M=[1,30],y=[1,39],_=[1,40],g=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],P=[1,61],X=[89,90],Ve=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Ee=[27,29],Ae=[1,70],ve=[1,71],Le=[1,72],xe=[1,73],Oe=[1,74],we=[1,75],De=[1,76],ee=[1,83],U=[1,80],te=[1,84],se=[1,85],ie=[1,86],re=[1,87],ne=[1,88],ae=[1,89],le=[1,90],ce=[1,91],oe=[1,92],pe=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Y=[63,64],Me=[1,101],Fe=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],N=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],B=[1,110],Q=[1,106],H=[1,107],K=[1,108],W=[1,109],j=[1,111],he=[1,116],ue=[1,117],fe=[1,114],me=[1,115],Se={trace:d(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:d(function(i,n,l,s,R,t,de){var a=t.length-1;switch(R){case 4:this.$=t[a].trim(),s.setAccTitle(this.$);break;case 5:case 6:this.$=t[a].trim(),s.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:s.setDirection("TB");break;case 18:s.setDirection("BT");break;case 19:s.setDirection("RL");break;case 20:s.setDirection("LR");break;case 21:s.addRequirement(t[a-3],t[a-4]);break;case 22:s.addRequirement(t[a-5],t[a-6]),s.setClass([t[a-5]],t[a-3]);break;case 23:s.setNewReqId(t[a-2]);break;case 24:s.setNewReqText(t[a-2]);break;case 25:s.setNewReqRisk(t[a-2]);break;case 26:s.setNewReqVerifyMethod(t[a-2]);break;case 29:this.$=s.RequirementType.REQUIREMENT;break;case 30:this.$=s.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=s.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=s.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=s.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=s.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=s.RiskLevel.LOW_RISK;break;case 36:this.$=s.RiskLevel.MED_RISK;break;case 37:this.$=s.RiskLevel.HIGH_RISK;break;case 38:this.$=s.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=s.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=s.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=s.VerifyType.VERIFY_TEST;break;case 42:s.addElement(t[a-3]);break;case 43:s.addElement(t[a-5]),s.setClass([t[a-5]],t[a-3]);break;case 44:s.setNewElementType(t[a-2]);break;case 45:s.setNewElementDocRef(t[a-2]);break;case 48:s.addRelationship(t[a-2],t[a],t[a-4]);break;case 49:s.addRelationship(t[a-2],t[a-4],t[a]);break;case 50:this.$=s.Relationships.CONTAINS;break;case 51:this.$=s.Relationships.COPIES;break;case 52:this.$=s.Relationships.DERIVES;break;case 53:this.$=s.Relationships.SATISFIES;break;case 54:this.$=s.Relationships.VERIFIES;break;case 55:this.$=s.Relationships.REFINES;break;case 56:this.$=s.Relationships.TRACES;break;case 57:this.$=t[a-2],s.defineClass(t[a-1],t[a]);break;case 58:s.setClass(t[a-1],t[a]);break;case 59:s.setClass([t[a-2]],t[a]);break;case 60:case 62:this.$=[t[a]];break;case 61:case 63:this.$=t[a-2].concat([t[a]]);break;case 64:this.$=t[a-2],s.setCssStyle(t[a-1],t[a]);break;case 65:this.$=[t[a]];break;case 66:t[a-2].push(t[a]),this.$=t[a-2];break;case 68:this.$=t[a-1]+t[a];break}},"anonymous"),table:[{3:1,4:2,6:r,9:u,11:h,13:o},{1:[3]},{3:8,4:2,5:[1,7],6:r,9:u,11:h,13:o},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(c,[2,6]),{3:12,4:2,6:r,9:u,11:h,13:o},{1:[2,2]},{4:17,5:E,7:13,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},e(c,[2,4]),e(c,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:E,7:42,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:43,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:44,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:45,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:46,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:47,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:48,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:49,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:50,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(g,[2,17]),e(g,[2,18]),e(g,[2,19]),e(g,[2,20]),{30:60,33:62,75:P,89:y,90:_},{30:63,33:62,75:P,89:y,90:_},{30:64,33:62,75:P,89:y,90:_},e(X,[2,29]),e(X,[2,30]),e(X,[2,31]),e(X,[2,32]),e(X,[2,33]),e(X,[2,34]),e(Ve,[2,81]),e(Ve,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(Ee,[2,79]),e(Ee,[2,80]),{27:[1,67],29:[1,68]},e(Ee,[2,85]),e(Ee,[2,86]),{62:69,65:Ae,66:ve,67:Le,68:xe,69:Oe,70:we,71:De},{62:77,65:Ae,66:ve,67:Le,68:xe,69:Oe,70:we,71:De},{30:78,33:62,75:P,89:y,90:_},{73:79,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,60]),e(pe,[2,62]),{73:93,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},{30:94,33:62,75:P,76:U,89:y,90:_},{5:[1,95]},{30:96,33:62,75:P,89:y,90:_},{5:[1,97]},{30:98,33:62,75:P,89:y,90:_},{63:[1,99]},e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),{64:[1,100]},e(g,[2,59],{76:U}),e(g,[2,64],{76:Me}),{33:103,75:[1,102],89:y,90:_},e(Fe,[2,65],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),e(N,[2,67]),e(N,[2,69]),e(N,[2,70]),e(N,[2,71]),e(N,[2,72]),e(N,[2,73]),e(N,[2,74]),e(N,[2,75]),e(N,[2,76]),e(N,[2,77]),e(N,[2,78]),e(g,[2,57],{76:Me}),e(g,[2,58],{76:U}),{5:B,28:105,31:Q,34:H,36:K,38:W,40:j},{27:[1,112],76:U},{5:he,40:ue,56:113,57:fe,59:me},{27:[1,118],76:U},{33:119,89:y,90:_},{33:120,89:y,90:_},{75:ee,78:121,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,61]),e(pe,[2,63]),e(N,[2,68]),e(g,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:B,28:126,31:Q,34:H,36:K,38:W,40:j},e(g,[2,28]),{5:[1,127]},e(g,[2,42]),{32:[1,128]},{32:[1,129]},{5:he,40:ue,56:130,57:fe,59:me},e(g,[2,47]),{5:[1,131]},e(g,[2,48]),e(g,[2,49]),e(Fe,[2,66],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),{33:132,89:y,90:_},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(g,[2,27]),{5:B,28:145,31:Q,34:H,36:K,38:W,40:j},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(g,[2,46]),{5:he,40:ue,56:152,57:fe,59:me},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(g,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(g,[2,43]),{5:B,28:159,31:Q,34:H,36:K,38:W,40:j},{5:B,28:160,31:Q,34:H,36:K,38:W,40:j},{5:B,28:161,31:Q,34:H,36:K,38:W,40:j},{5:B,28:162,31:Q,34:H,36:K,38:W,40:j},{5:he,40:ue,56:163,57:fe,59:me},{5:he,40:ue,56:164,57:fe,59:me},e(g,[2,23]),e(g,[2,24]),e(g,[2,25]),e(g,[2,26]),e(g,[2,44]),e(g,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:d(function(i,n){if(n.recoverable)this.trace(i);else{var l=new Error(i);throw l.hash=n,l}},"parseError"),parse:d(function(i){var n=this,l=[0],s=[],R=[null],t=[],de=this.table,a="",ge=0,$e=0,Ke=2,Pe=1,We=t.slice.call(arguments,1),S=Object.create(this.lexer),z={yy:{}};for(var be in this.yy)Object.prototype.hasOwnProperty.call(this.yy,be)&&(z.yy[be]=this.yy[be]);S.setInput(i,z.yy),z.yy.lexer=S,z.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var Ie=S.yylloc;t.push(Ie);var je=S.options&&S.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ze(T){l.length=l.length-2*T,R.length=R.length-T,t.length=t.length-T}d(ze,"popStack");function Ue(){var T;return T=s.pop()||S.lex()||Pe,typeof T!="number"&&(T instanceof Array&&(s=T,T=s.pop()),T=n.symbols_[T]||T),T}d(Ue,"lex");for(var I,G,q,Te,J={},ye,F,Ye,_e;;){if(G=l[l.length-1],this.defaultActions[G]?q=this.defaultActions[G]:((I===null||typeof I>"u")&&(I=Ue()),q=de[G]&&de[G][I]),typeof q>"u"||!q.length||!q[0]){var ke="";_e=[];for(ye in de[G])this.terminals_[ye]&&ye>Ke&&_e.push("'"+this.terminals_[ye]+"'");S.showPosition?ke="Parse error on line "+(ge+1)+`:
|
|
1
|
+
import{g as Ge}from"./chunk-55IACEB6-Dhb0bOrW.js";import{s as Xe}from"./chunk-2J33WTMH-jLQK9et3.js";import{_ as d,D as Be,b as Je,a as Ze,s as et,g as tt,p as st,q as it,c as Ne,l as qe,z as rt,C as nt,o as at,r as lt,u as ct}from"./App-CZNprfTP.js";import"./mobile-B-d4crm_.js";import"./index-BVnbNZXC.js";import"./graph-viND0NdB.js";var Ce=(function(){var e=d(function($,i,n,l){for(n=n||{},l=$.length;l--;n[$[l]]=i);return n},"o"),r=[1,3],u=[1,4],h=[1,5],o=[1,6],c=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],E=[1,22],p=[2,7],f=[1,26],m=[1,27],b=[1,28],k=[1,29],C=[1,33],V=[1,34],A=[1,35],v=[1,36],L=[1,37],x=[1,38],O=[1,24],w=[1,31],D=[1,32],M=[1,30],y=[1,39],_=[1,40],g=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],P=[1,61],X=[89,90],Ve=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Ee=[27,29],Ae=[1,70],ve=[1,71],Le=[1,72],xe=[1,73],Oe=[1,74],we=[1,75],De=[1,76],ee=[1,83],U=[1,80],te=[1,84],se=[1,85],ie=[1,86],re=[1,87],ne=[1,88],ae=[1,89],le=[1,90],ce=[1,91],oe=[1,92],pe=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Y=[63,64],Me=[1,101],Fe=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],N=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],B=[1,110],Q=[1,106],H=[1,107],K=[1,108],W=[1,109],j=[1,111],he=[1,116],ue=[1,117],fe=[1,114],me=[1,115],Se={trace:d(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:d(function(i,n,l,s,R,t,de){var a=t.length-1;switch(R){case 4:this.$=t[a].trim(),s.setAccTitle(this.$);break;case 5:case 6:this.$=t[a].trim(),s.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:s.setDirection("TB");break;case 18:s.setDirection("BT");break;case 19:s.setDirection("RL");break;case 20:s.setDirection("LR");break;case 21:s.addRequirement(t[a-3],t[a-4]);break;case 22:s.addRequirement(t[a-5],t[a-6]),s.setClass([t[a-5]],t[a-3]);break;case 23:s.setNewReqId(t[a-2]);break;case 24:s.setNewReqText(t[a-2]);break;case 25:s.setNewReqRisk(t[a-2]);break;case 26:s.setNewReqVerifyMethod(t[a-2]);break;case 29:this.$=s.RequirementType.REQUIREMENT;break;case 30:this.$=s.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=s.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=s.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=s.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=s.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=s.RiskLevel.LOW_RISK;break;case 36:this.$=s.RiskLevel.MED_RISK;break;case 37:this.$=s.RiskLevel.HIGH_RISK;break;case 38:this.$=s.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=s.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=s.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=s.VerifyType.VERIFY_TEST;break;case 42:s.addElement(t[a-3]);break;case 43:s.addElement(t[a-5]),s.setClass([t[a-5]],t[a-3]);break;case 44:s.setNewElementType(t[a-2]);break;case 45:s.setNewElementDocRef(t[a-2]);break;case 48:s.addRelationship(t[a-2],t[a],t[a-4]);break;case 49:s.addRelationship(t[a-2],t[a-4],t[a]);break;case 50:this.$=s.Relationships.CONTAINS;break;case 51:this.$=s.Relationships.COPIES;break;case 52:this.$=s.Relationships.DERIVES;break;case 53:this.$=s.Relationships.SATISFIES;break;case 54:this.$=s.Relationships.VERIFIES;break;case 55:this.$=s.Relationships.REFINES;break;case 56:this.$=s.Relationships.TRACES;break;case 57:this.$=t[a-2],s.defineClass(t[a-1],t[a]);break;case 58:s.setClass(t[a-1],t[a]);break;case 59:s.setClass([t[a-2]],t[a]);break;case 60:case 62:this.$=[t[a]];break;case 61:case 63:this.$=t[a-2].concat([t[a]]);break;case 64:this.$=t[a-2],s.setCssStyle(t[a-1],t[a]);break;case 65:this.$=[t[a]];break;case 66:t[a-2].push(t[a]),this.$=t[a-2];break;case 68:this.$=t[a-1]+t[a];break}},"anonymous"),table:[{3:1,4:2,6:r,9:u,11:h,13:o},{1:[3]},{3:8,4:2,5:[1,7],6:r,9:u,11:h,13:o},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(c,[2,6]),{3:12,4:2,6:r,9:u,11:h,13:o},{1:[2,2]},{4:17,5:E,7:13,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},e(c,[2,4]),e(c,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:E,7:42,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:43,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:44,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:45,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:46,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:47,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:48,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:49,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{4:17,5:E,7:50,8:p,9:u,11:h,13:o,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:f,22:m,23:b,24:k,25:23,33:25,41:C,42:V,43:A,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:y,90:_},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(g,[2,17]),e(g,[2,18]),e(g,[2,19]),e(g,[2,20]),{30:60,33:62,75:P,89:y,90:_},{30:63,33:62,75:P,89:y,90:_},{30:64,33:62,75:P,89:y,90:_},e(X,[2,29]),e(X,[2,30]),e(X,[2,31]),e(X,[2,32]),e(X,[2,33]),e(X,[2,34]),e(Ve,[2,81]),e(Ve,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(Ee,[2,79]),e(Ee,[2,80]),{27:[1,67],29:[1,68]},e(Ee,[2,85]),e(Ee,[2,86]),{62:69,65:Ae,66:ve,67:Le,68:xe,69:Oe,70:we,71:De},{62:77,65:Ae,66:ve,67:Le,68:xe,69:Oe,70:we,71:De},{30:78,33:62,75:P,89:y,90:_},{73:79,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,60]),e(pe,[2,62]),{73:93,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},{30:94,33:62,75:P,76:U,89:y,90:_},{5:[1,95]},{30:96,33:62,75:P,89:y,90:_},{5:[1,97]},{30:98,33:62,75:P,89:y,90:_},{63:[1,99]},e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),{64:[1,100]},e(g,[2,59],{76:U}),e(g,[2,64],{76:Me}),{33:103,75:[1,102],89:y,90:_},e(Fe,[2,65],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),e(N,[2,67]),e(N,[2,69]),e(N,[2,70]),e(N,[2,71]),e(N,[2,72]),e(N,[2,73]),e(N,[2,74]),e(N,[2,75]),e(N,[2,76]),e(N,[2,77]),e(N,[2,78]),e(g,[2,57],{76:Me}),e(g,[2,58],{76:U}),{5:B,28:105,31:Q,34:H,36:K,38:W,40:j},{27:[1,112],76:U},{5:he,40:ue,56:113,57:fe,59:me},{27:[1,118],76:U},{33:119,89:y,90:_},{33:120,89:y,90:_},{75:ee,78:121,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,61]),e(pe,[2,63]),e(N,[2,68]),e(g,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:B,28:126,31:Q,34:H,36:K,38:W,40:j},e(g,[2,28]),{5:[1,127]},e(g,[2,42]),{32:[1,128]},{32:[1,129]},{5:he,40:ue,56:130,57:fe,59:me},e(g,[2,47]),{5:[1,131]},e(g,[2,48]),e(g,[2,49]),e(Fe,[2,66],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),{33:132,89:y,90:_},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(g,[2,27]),{5:B,28:145,31:Q,34:H,36:K,38:W,40:j},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(g,[2,46]),{5:he,40:ue,56:152,57:fe,59:me},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(g,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(g,[2,43]),{5:B,28:159,31:Q,34:H,36:K,38:W,40:j},{5:B,28:160,31:Q,34:H,36:K,38:W,40:j},{5:B,28:161,31:Q,34:H,36:K,38:W,40:j},{5:B,28:162,31:Q,34:H,36:K,38:W,40:j},{5:he,40:ue,56:163,57:fe,59:me},{5:he,40:ue,56:164,57:fe,59:me},e(g,[2,23]),e(g,[2,24]),e(g,[2,25]),e(g,[2,26]),e(g,[2,44]),e(g,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:d(function(i,n){if(n.recoverable)this.trace(i);else{var l=new Error(i);throw l.hash=n,l}},"parseError"),parse:d(function(i){var n=this,l=[0],s=[],R=[null],t=[],de=this.table,a="",ge=0,$e=0,Ke=2,Pe=1,We=t.slice.call(arguments,1),S=Object.create(this.lexer),z={yy:{}};for(var be in this.yy)Object.prototype.hasOwnProperty.call(this.yy,be)&&(z.yy[be]=this.yy[be]);S.setInput(i,z.yy),z.yy.lexer=S,z.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var Ie=S.yylloc;t.push(Ie);var je=S.options&&S.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ze(T){l.length=l.length-2*T,R.length=R.length-T,t.length=t.length-T}d(ze,"popStack");function Ue(){var T;return T=s.pop()||S.lex()||Pe,typeof T!="number"&&(T instanceof Array&&(s=T,T=s.pop()),T=n.symbols_[T]||T),T}d(Ue,"lex");for(var I,G,q,Te,J={},ye,F,Ye,_e;;){if(G=l[l.length-1],this.defaultActions[G]?q=this.defaultActions[G]:((I===null||typeof I>"u")&&(I=Ue()),q=de[G]&&de[G][I]),typeof q>"u"||!q.length||!q[0]){var ke="";_e=[];for(ye in de[G])this.terminals_[ye]&&ye>Ke&&_e.push("'"+this.terminals_[ye]+"'");S.showPosition?ke="Parse error on line "+(ge+1)+`:
|
|
2
2
|
`+S.showPosition()+`
|
|
3
3
|
Expecting `+_e.join(", ")+", got '"+(this.terminals_[I]||I)+"'":ke="Parse error on line "+(ge+1)+": Unexpected "+(I==Pe?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(ke,{text:S.match,token:this.terminals_[I]||I,line:S.yylineno,loc:Ie,expected:_e})}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+I);switch(q[0]){case 1:l.push(I),R.push(S.yytext),t.push(S.yylloc),l.push(q[1]),I=null,$e=S.yyleng,a=S.yytext,ge=S.yylineno,Ie=S.yylloc;break;case 2:if(F=this.productions_[q[1]][1],J.$=R[R.length-F],J._$={first_line:t[t.length-(F||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(F||1)].first_column,last_column:t[t.length-1].last_column},je&&(J._$.range=[t[t.length-(F||1)].range[0],t[t.length-1].range[1]]),Te=this.performAction.apply(J,[a,$e,ge,z.yy,q[1],R,t].concat(We)),typeof Te<"u")return Te;F&&(l=l.slice(0,-1*F*2),R=R.slice(0,-1*F),t=t.slice(0,-1*F)),l.push(this.productions_[q[1]][0]),R.push(J.$),t.push(J._$),Ye=de[l[l.length-2]][l[l.length-1]],l.push(Ye);break;case 3:return!0}}return!0},"parse")},He=(function(){var $={EOF:1,parseError:d(function(n,l){if(this.yy.parser)this.yy.parser.parseError(n,l);else throw new Error(n)},"parseError"),setInput:d(function(i,n){return this.yy=n||this.yy||{},this._input=i,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:d(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:d(function(i){var n=i.length,l=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var s=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 R=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===s.length?this.yylloc.first_column:0)+s[s.length-l.length].length-l[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(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
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(i){this.unput(this.match.slice(i))},"less"),pastInput:d(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
|