orbitchat 3.11.0 → 3.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/assets/{ChartRenderer-6ita77oC.js → ChartRenderer-OBjJRngd.js} +3 -3
  2. package/dist/assets/{MermaidRenderer-B_R73JsW.js → MermaidRenderer-CPPq3mmd.js} +6 -6
  3. package/dist/assets/{MusicRenderer-CPyadT-W.js → MusicRenderer-ZqWcBGEP.js} +4 -4
  4. package/dist/assets/SVGRenderer-C23bZ16J.js +6 -0
  5. package/dist/assets/architectureDiagram-3BPJPVTR-1DcnIrTf.js +36 -0
  6. package/dist/assets/{blockDiagram-GPEHLZMM-CHYDm_Lr.js → blockDiagram-GPEHLZMM-C3O1Y3wQ.js} +2 -2
  7. package/dist/assets/{c4Diagram-AAUBKEIU-B_6S0PMo.js → c4Diagram-AAUBKEIU-7ulfaeio.js} +2 -2
  8. package/dist/assets/channel-DIz7au4Z.js +1 -0
  9. package/dist/assets/{chunk-2J33WTMH-BV3EfJJt.js → chunk-2J33WTMH-CtTVan3g.js} +1 -1
  10. package/dist/assets/{chunk-4BX2VUAB-BcKFg9ac.js → chunk-4BX2VUAB-D9LhpL0M.js} +1 -1
  11. package/dist/assets/{chunk-55IACEB6-CxpA0yYo.js → chunk-55IACEB6-o4c6_uWz.js} +1 -1
  12. package/dist/assets/{chunk-727SXJPM-C6ztUlOi.js → chunk-727SXJPM-qMeBxfHH.js} +1 -1
  13. package/dist/assets/{chunk-AQP2D5EJ-D0QacfL_.js → chunk-AQP2D5EJ-Bwo9IL4J.js} +1 -1
  14. package/dist/assets/{chunk-FMBD7UC4-BpZP0Y5U.js → chunk-FMBD7UC4-BhdowZ3g.js} +1 -1
  15. package/dist/assets/{chunk-ND2GUHAM-CIMv0vkh.js → chunk-ND2GUHAM-DHj38vtV.js} +1 -1
  16. package/dist/assets/{chunk-QZHKN3VN-BLoQ7vNo.js → chunk-QZHKN3VN-BQlh1k-T.js} +1 -1
  17. package/dist/assets/classDiagram-4FO5ZUOK-B_41sQFe.js +1 -0
  18. package/dist/assets/classDiagram-v2-Q7XG4LA2-B_41sQFe.js +1 -0
  19. package/dist/assets/cose-bilkent-S5V4N54A-DIlweU0c.js +1 -0
  20. package/dist/assets/{cynefin-VYW2F7L2-CPNTSJVR.js → cynefin-VYW2F7L2-COfqkbsu.js} +1 -1
  21. package/dist/assets/dagre-BM42HDAG-Dg1vRQoJ.js +4 -0
  22. package/dist/assets/diagram-2AECGRRQ-5qMJzPlj.js +43 -0
  23. package/dist/assets/diagram-5GNKFQAL-BtLOXreJ.js +10 -0
  24. package/dist/assets/{diagram-KO2AKTUF-CqwtJ8Ej.js → diagram-KO2AKTUF-CItPbbPJ.js} +2 -2
  25. package/dist/assets/diagram-LMA3HP47-C-rMj79O.js +24 -0
  26. package/dist/assets/diagram-OG6HWLK6-CsH38nnV.js +24 -0
  27. package/dist/assets/{docx-preview-CMb3nQfR.js → docx-preview-DehBmhog.js} +1 -1
  28. package/dist/assets/{erDiagram-TEJ5UH35-qNkhON0R.js → erDiagram-TEJ5UH35-D4EO2CJ1.js} +2 -2
  29. package/dist/assets/{flowDiagram-I6XJVG4X-BwQGcinJ.js → flowDiagram-I6XJVG4X-DgOIMYGk.js} +2 -2
  30. package/dist/assets/{ganttDiagram-6RSMTGT7-B-WPdey_.js → ganttDiagram-6RSMTGT7-B1I1ERYN.js} +2 -2
  31. package/dist/assets/gitGraphDiagram-PVQCEYII-BbxU9vdc.js +106 -0
  32. package/dist/assets/index-BNiRF5ts.js +355 -0
  33. package/dist/assets/{index-C0slAIYD.js → index-Bm2RXT20.js} +1 -1
  34. package/dist/assets/index-Dn6drGB8.css +1 -0
  35. package/dist/assets/infoDiagram-5YYISTIA-BSCHNtfq.js +2 -0
  36. package/dist/assets/{ishikawaDiagram-YF4QCWOH-Btfoip0T.js → ishikawaDiagram-YF4QCWOH-D3EauiiJ.js} +2 -2
  37. package/dist/assets/{journeyDiagram-JHISSGLW-MVzNSI30.js → journeyDiagram-JHISSGLW-BS1VWAga.js} +2 -2
  38. package/dist/assets/{kanban-definition-UN3LZRKU-BnLLL1jo.js → kanban-definition-UN3LZRKU-ClAYLC3L.js} +5 -5
  39. package/dist/assets/locales-4Dy5QB82.js +1 -0
  40. package/dist/assets/{mindmap-definition-RKZ34NQL-tn7nCqb-.js → mindmap-definition-RKZ34NQL-BkDMrGTA.js} +2 -2
  41. package/dist/assets/{papaparse.min-BWA-Odol.js → papaparse.min-D13ujVVP.js} +1 -1
  42. package/dist/assets/{pieDiagram-4H26LBE5-CHgnNebB.js → pieDiagram-4H26LBE5-BOj8AQSK.js} +2 -2
  43. package/dist/assets/{quadrantDiagram-W4KKPZXB-Bm7UohUT.js → quadrantDiagram-W4KKPZXB-BM7sUdWh.js} +2 -2
  44. package/dist/assets/{requirementDiagram-4Y6WPE33-BP-byfJK.js → requirementDiagram-4Y6WPE33-D2pnnYZP.js} +2 -2
  45. package/dist/assets/{sankeyDiagram-5OEKKPKP-CxvcmFYi.js → sankeyDiagram-5OEKKPKP-D3Z4Gd94.js} +2 -2
  46. package/dist/assets/{sequenceDiagram-3UESZ5HK-BFEVEsXC.js → sequenceDiagram-3UESZ5HK-DE73ZFHe.js} +2 -2
  47. package/dist/assets/stateDiagram-AJRCARHV-C7CGkF3t.js +1 -0
  48. package/dist/assets/stateDiagram-v2-BHNVJYJU-DHQUbGB3.js +1 -0
  49. package/dist/assets/{timeline-definition-PNZ67QCA-IXjMR4fY.js → timeline-definition-PNZ67QCA-xIsXJSbZ.js} +2 -2
  50. package/dist/assets/{vendor-auth-BWxE55Ta.js → vendor-auth-aD_bwYde.js} +1 -1
  51. package/dist/assets/vendor-markdown-Cy_-N5ZX.js +291 -0
  52. package/dist/assets/vendor-markdown-dRWncRqa.css +1 -0
  53. package/dist/assets/vendor-react-BbEy7z12.js +49 -0
  54. package/dist/assets/{vendor-syntax-DG6Vo7Ci.js → vendor-syntax-INF7-xC_.js} +9 -9
  55. package/dist/assets/{vennDiagram-CIIHVFJN-DznHQ1BW.js → vennDiagram-CIIHVFJN-a62PVgzJ.js} +2 -2
  56. package/dist/assets/{wardleyDiagram-YWT4CUSO-BV1onbUZ.js → wardleyDiagram-YWT4CUSO-DDy1YaOr.js} +2 -2
  57. package/dist/assets/{xychartDiagram-2RQKCTM6-45qjdQfn.js → xychartDiagram-2RQKCTM6-6XfTk_6y.js} +2 -2
  58. package/dist/index.html +8 -6
  59. package/package.json +1 -1
  60. package/dist/assets/SVGRenderer-Cchy5MKU.js +0 -6
  61. package/dist/assets/architectureDiagram-3BPJPVTR-Bz1EN93N.js +0 -36
  62. package/dist/assets/channel-CWHSY5eE.js +0 -1
  63. package/dist/assets/classDiagram-4FO5ZUOK-BwRqrNXe.js +0 -1
  64. package/dist/assets/classDiagram-v2-Q7XG4LA2-BwRqrNXe.js +0 -1
  65. package/dist/assets/cose-bilkent-S5V4N54A-mbAzpJrA.js +0 -1
  66. package/dist/assets/dagre-BM42HDAG-BQ7-MHMw.js +0 -4
  67. package/dist/assets/diagram-2AECGRRQ-C0ZixFtN.js +0 -43
  68. package/dist/assets/diagram-5GNKFQAL-DBgq4hcl.js +0 -10
  69. package/dist/assets/diagram-LMA3HP47-D6J87aBh.js +0 -24
  70. package/dist/assets/diagram-OG6HWLK6-Bf54QS67.js +0 -24
  71. package/dist/assets/gitGraphDiagram-PVQCEYII-DFG0aAjb.js +0 -106
  72. package/dist/assets/index-DWeVNozJ.js +0 -379
  73. package/dist/assets/index-UF7Fwxkp.css +0 -1
  74. package/dist/assets/infoDiagram-5YYISTIA-C02VmOAb.js +0 -2
  75. package/dist/assets/stateDiagram-AJRCARHV-DEYpacKC.js +0 -1
  76. package/dist/assets/stateDiagram-v2-BHNVJYJU-BBm-kMbL.js +0 -1
  77. package/dist/assets/vendor-markdown-BRX1CUPf.js +0 -307
  78. package/dist/assets/vendor-react-BAJBiXxk.js +0 -9
@@ -1,4 +1,4 @@
1
- import{_ as o,c as ot,N as ut,H as dt,a4 as yt,y as pt,k as ft,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./MermaidRenderer-B_R73JsW.js";import"./vendor-markdown-BRX1CUPf.js";import"./vendor-syntax-DG6Vo7Ci.js";import"./purify.es-D6gMnemd.js";import"./isPrototype-DezZrpQP.js";import"./graphExportUtils-DrqBjeAI.js";import"./index-DWeVNozJ.js";import"./vendor-react-BAJBiXxk.js";import"./vendor-auth-BWxE55Ta.js";var tt=(function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],p=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],B={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},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,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,f,n,v){var w=n.length-1;switch(f){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:p,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:p,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],f=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(C.yy[F]=this.yy[F]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(N){i.length=i.length-2*N,f.length=f.length-N,n.length=n.length-N}o(j,"popStack");function z(){var N;return N=u.pop()||b.lex()||E,typeof N!="number"&&(N instanceof Array&&(u=N,N=u.pop()),N=s.symbols_[N]||N),N}o(z,"lex");for(var A,W,P,K,H={},X,V,et,Y;;){if(W=i[i.length-1],this.defaultActions[W]?P=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=z()),P=v[W]&&v[W][A]),typeof P>"u"||!P.length||!P[0]){var Q="";Y=[];for(X in v[W])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
1
+ import{_ as o,c as ot,N as ut,H as dt,a4 as yt,y as pt,k as ft,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./MermaidRenderer-CPPq3mmd.js";import"./vendor-react-BbEy7z12.js";import"./vendor-syntax-INF7-xC_.js";import"./purify.es-D6gMnemd.js";import"./isPrototype-DezZrpQP.js";import"./graphExportUtils-DrqBjeAI.js";import"./index-BNiRF5ts.js";import"./locales-4Dy5QB82.js";import"./vendor-markdown-Cy_-N5ZX.js";import"./vendor-auth-aD_bwYde.js";var tt=(function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],p=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],B={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},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,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,f,n,v){var w=n.length-1;switch(f){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:p,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:p,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],f=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(C.yy[F]=this.yy[F]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(N){i.length=i.length-2*N,f.length=f.length-N,n.length=n.length-N}o(j,"popStack");function z(){var N;return N=u.pop()||b.lex()||E,typeof N!="number"&&(N instanceof Array&&(u=N,N=u.pop()),N=s.symbols_[N]||N),N}o(z,"lex");for(var A,W,P,K,H={},X,V,et,Y;;){if(W=i[i.length-1],this.defaultActions[W]?P=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=z()),P=v[W]&&v[W][A]),typeof P>"u"||!P.length||!P[0]){var Q="";Y=[];for(X in v[W])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
2
2
  `+b.showPosition()+`
3
3
  Expecting `+Y.join(", ")+", got '"+(this.terminals_[A]||A)+"'":Q="Parse error on line "+(I+1)+": Unexpected "+(A==E?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(Q,{text:b.match,token:this.terminals_[A]||A,line:b.yylineno,loc:T,expected:Y})}if(P[0]instanceof Array&&P.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+A);switch(P[0]){case 1:i.push(A),f.push(b.yytext),n.push(b.yylloc),i.push(P[1]),A=null,S=b.yyleng,w=b.yytext,I=b.yylineno,T=b.yylloc;break;case 2:if(V=this.productions_[P[1]][1],H.$=f[f.length-V],H._$={first_line:n[n.length-(V||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(V||1)].first_column,last_column:n[n.length-1].last_column},D&&(H._$.range=[n[n.length-(V||1)].range[0],n[n.length-1].range[1]]),K=this.performAction.apply(H,[w,S,I,C.yy,P[1],f,n].concat(R)),typeof K<"u")return K;V&&(i=i.slice(0,-1*V*2),f=f.slice(0,-1*V),n=n.slice(0,-1*V)),i.push(this.productions_[P[1]][0]),f.push(H.$),n.push(H._$),et=v[i[i.length-2]][i[i.length-1]],i.push(et);break;case 3:return!0}}return!0},"parse")},O=(function(){var M={EOF:1,parseError:o(function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},"parseError"),setInput:o(function(t,s){return this.yy=s||this.yy||{},this._input=t,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 t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var s=t.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:o(function(t){var s=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=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),i.length-1&&(this.yylineno-=i.length-1);var f=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:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-s]),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(t){this.unput(this.match.slice(t))},"less"),pastInput:o(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var t=this.pastInput(),s=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
@@ -67,4 +67,4 @@ Expecting `+Y.join(", ")+", got '"+(this.terminals_[A]||A)+"'":Q="Parse error on
67
67
  .ishikawa .ishikawa-label.down {
68
68
  dominant-baseline: hanging;
69
69
  }
70
- `,"getStyles"),Ot=Dt,Ut={parser:xt,get db(){return new vt},renderer:Bt,styles:Ot};export{Ut as diagram};
70
+ `,"getStyles"),Ot=Dt,Zt={parser:xt,get db(){return new vt},renderer:Bt,styles:Ot};export{Zt as diagram};
@@ -1,4 +1,4 @@
1
- import{g as gt}from"./chunk-FMBD7UC4-BpZP0Y5U.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-ND2GUHAM-CIMv0vkh.js";import{g as _t,s as vt,a as bt,b as wt,q as Tt,p as St,_ as s,c as R,d as X,e as $t,y as Mt}from"./MermaidRenderer-B_R73JsW.js";import{d as it}from"./arc-1qRI0DXn.js";import"./vendor-markdown-BRX1CUPf.js";import"./vendor-syntax-DG6Vo7Ci.js";import"./purify.es-D6gMnemd.js";import"./isPrototype-DezZrpQP.js";import"./graphExportUtils-DrqBjeAI.js";import"./index-DWeVNozJ.js";import"./vendor-react-BAJBiXxk.js";import"./vendor-auth-BWxE55Ta.js";var U=(function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],p=[1,10],i=[1,11],u=[1,12],f=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:p,14:i,16:u,17:f,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:p,14:i,16:u,17:f,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var pt=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ft(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(ft,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?H="Parse error on line "+(C+1)+`:
1
+ import{g as gt}from"./chunk-FMBD7UC4-BhdowZ3g.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-ND2GUHAM-DHj38vtV.js";import{g as _t,s as vt,a as bt,b as wt,q as Tt,p as St,_ as s,c as R,d as X,e as $t,y as Mt}from"./MermaidRenderer-CPPq3mmd.js";import{d as it}from"./arc-1qRI0DXn.js";import"./vendor-react-BbEy7z12.js";import"./vendor-syntax-INF7-xC_.js";import"./purify.es-D6gMnemd.js";import"./isPrototype-DezZrpQP.js";import"./graphExportUtils-DrqBjeAI.js";import"./index-BNiRF5ts.js";import"./locales-4Dy5QB82.js";import"./vendor-markdown-Cy_-N5ZX.js";import"./vendor-auth-aD_bwYde.js";var U=(function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],p=[1,10],i=[1,11],u=[1,12],f=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:p,14:i,16:u,17:f,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:p,14:i,16:u,17:f,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var pt=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ft(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(ft,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?H="Parse error on line "+(C+1)+`:
2
2
  `+_.showPosition()+`
3
3
  Expecting `+z.join(", ")+", got '"+(this.terminals_[b]||b)+"'":H="Parse error on line "+(C+1)+": Unexpected "+(b==D?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(H,{text:_.match,token:this.terminals_[b]||b,line:_.yylineno,loc:Y,expected:z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+b);switch(T[0]){case 1:l.push(b),d.push(_.yytext),c.push(_.yylloc),l.push(T[1]),b=null,Q=_.yyleng,k=_.yytext,C=_.yylineno,Y=_.yylloc;break;case 2:if(M=this.productions_[T[1]][1],F.$=d[d.length-M],F._$={first_line:c[c.length-(M||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(M||1)].first_column,last_column:c[c.length-1].last_column},pt&&(F._$.range=[c[c.length-(M||1)].range[0],c[c.length-1].range[1]]),q=this.performAction.apply(F,[k,Q,C,I.yy,T[1],d,c].concat(dt)),typeof q<"u")return q;M&&(l=l.slice(0,-1*M*2),d=d.slice(0,-1*M),c=c.slice(0,-1*M)),l.push(this.productions_[T[1]][0]),d.push(F.$),c.push(F._$),et=v[l[l.length-2]][l[l.length-1]],l.push(et);break;case 3:return!0}}return!0},"parse")},m=(function(){var h={EOF:1,parseError:s(function(n,l){if(this.yy.parser)this.yy.parser.parseError(n,l);else throw new Error(n)},"parseError"),setInput:s(function(r,n){return this.yy=n||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:s(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.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),r},"input"),unput:s(function(r){var n=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var y=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 d=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===y.length?this.yylloc.first_column:0)+y[y.length-l.length].length-l[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(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:s(function(r){this.unput(this.match.slice(r))},"less"),pastInput:s(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:s(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:s(function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
@@ -136,4 +136,4 @@ Expecting `+z.join(", ")+", got '"+(this.terminals_[b]||b)+"'":H="Parse error on
136
136
  ${t.actor5?`fill: ${t.actor5}`:""};
137
137
  }
138
138
  ${gt()}
139
- `,"getStyles"),jt=Bt,K=s(function(t,e){return kt(t,e)},"drawRect"),Nt=s(function(t,e){const p=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function u(g){const m=it().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);g.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}s(u,"smile");function f(g){const m=it().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);g.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}s(f,"sad");function o(g){g.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return s(o,"ambivalent"),e.score>3?u(i):e.score<3?f(i):o(i),p},"drawFace"),ot=s(function(t,e){const a=t.append("circle");return a.attr("cx",e.cx),a.attr("cy",e.cy),a.attr("class","actor-"+e.pos),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("r",e.r),a.class!==void 0&&a.attr("class",a.class),e.title!==void 0&&a.append("title").text(e.title),a},"drawCircle"),ct=s(function(t,e){return xt(t,e)},"drawText"),zt=s(function(t,e){function a(i,u,f,o,g){return i+","+u+" "+(i+f)+","+u+" "+(i+f)+","+(u+o-g)+" "+(i+f-g*1.2)+","+(u+o)+" "+i+","+(u+o)}s(a,"genPoints");const p=t.append("polygon");p.attr("points",a(e.x,e.y,50,20,7)),p.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,ct(t,e)},"drawLabel"),Wt=s(function(t,e,a){const p=t.append("g"),i=lt();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=a.width*e.taskCount+a.diagramMarginX*(e.taskCount-1),i.height=a.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,K(p,i),ht(a)(e.text,p,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},a,e.colour)},"drawSection"),Z=-1,Ot=s(function(t,e,a,p){const i=e.x+a.width/2,u=t.append("g");Z++,u.append("line").attr("id",p+"-task"+Z).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Nt(u,{cx:i,cy:300+(5-e.score)*30,score:e.score});const o=lt();o.x=e.x,o.y=e.y,o.fill=e.fill,o.width=a.width,o.height=a.height,o.class="task task-type-"+e.num,o.rx=3,o.ry=3,K(u,o);let g=e.x+14;e.people.forEach(m=>{const x=e.actors[m].color,h={cx:g,cy:e.y,r:7,fill:x,stroke:"#000",title:m,pos:e.actors[m].position};ot(u,h),g+=10}),ht(a)(e.task,u,o.x,o.y,o.width,o.height,{class:"task"},a,e.colour)},"drawTask"),Yt=s(function(t,e){mt(t,e)},"drawBackgroundRect"),ht=(function(){function t(i,u,f,o,g,m,x,h){const r=u.append("text").attr("x",f+g/2).attr("y",o+m/2+5).style("font-color",h).style("text-anchor","middle").text(i);p(r,x)}s(t,"byText");function e(i,u,f,o,g,m,x,h,r){const{taskFontSize:n,taskFontFamily:l}=h,y=i.split(/<br\s*\/?>/gi);for(let d=0;d<y.length;d++){const c=d*n-n*(y.length-1)/2,v=u.append("text").attr("x",f+g/2).attr("y",o).attr("fill",r).style("text-anchor","middle").style("font-size",n).style("font-family",l);v.append("tspan").attr("x",f+g/2).attr("dy",c).text(y[d]),v.attr("y",o+m/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),p(v,x)}}s(e,"byTspan");function a(i,u,f,o,g,m,x,h){const r=u.append("switch"),l=r.append("foreignObject").attr("x",f).attr("y",o).attr("width",g).attr("height",m).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");l.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),e(i,r,f,o,g,m,x,h),p(l,x)}s(a,"byFo");function p(i,u){for(const f in u)f in u&&i.attr(f,u[f])}return s(p,"_setTextAttrs"),function(i){return i.textPlacement==="fo"?a:i.textPlacement==="old"?t:e}})(),qt=s(function(t,e){Z=-1,t.append("defs").append("marker").attr("id",e+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics"),j={drawRect:K,drawCircle:ot,drawSection:Wt,drawText:ct,drawLabel:zt,drawTask:Ot,drawBackgroundRect:Yt,initGraphics:qt},Ht=s(function(t){Object.keys(t).forEach(function(a){$[a]=t[a]})},"setConf"),E={},W=0;function ut(t){const e=R().journey,a=e.maxLabelWidth;W=0;let p=60;Object.keys(E).forEach(i=>{const u=E[i].color,f={cx:20,cy:p,r:7,fill:u,stroke:"#000",pos:E[i].position};j.drawCircle(t,f);let o=t.append("text").attr("visibility","hidden").text(i);const g=o.node().getBoundingClientRect().width;o.remove();let m=[];if(g<=a)m=[i];else{const x=i.split(" ");let h="";o=t.append("text").attr("visibility","hidden"),x.forEach(r=>{const n=h?`${h} ${r}`:r;if(o.text(n),o.node().getBoundingClientRect().width>a){if(h&&m.push(h),h=r,o.text(r),o.node().getBoundingClientRect().width>a){let y="";for(const d of r)y+=d,o.text(y+"-"),o.node().getBoundingClientRect().width>a&&(m.push(y.slice(0,-1)+"-"),y=d);h=y}}else h=n}),h&&m.push(h),o.remove()}m.forEach((x,h)=>{const r={x:40,y:p+7+h*20,fill:"#666",text:x,textMargin:e.boxTextMargin??5},l=j.drawText(t,r).node().getBoundingClientRect().width;l>W&&l>e.leftMargin-l&&(W=l)}),p+=Math.max(20,m.length*20)})}s(ut,"drawActorLegend");var $=R().journey,P=0,Xt=s(function(t,e,a,p){const i=R(),u=i.journey.titleColor,f=i.journey.titleFontSize,o=i.journey.titleFontFamily,g=i.securityLevel;let m;g==="sandbox"&&(m=X("#i"+e));const x=g==="sandbox"?X(m.nodes()[0].contentDocument.body):X("body");S.init();const h=x.select("#"+e);j.initGraphics(h,e);const r=p.db.getTasks(),n=p.db.getDiagramTitle(),l=p.db.getActors();for(const C in E)delete E[C];let y=0;l.forEach(C=>{E[C]={color:$.actorColours[y%$.actorColours.length],position:y},y++}),ut(h),P=$.leftMargin+W,S.insert(0,0,P,Object.keys(E).length*50),Gt(h,r,0,e);const d=S.getBounds();n&&h.append("text").text(n).attr("x",P).attr("font-size",f).attr("font-weight","bold").attr("y",25).attr("fill",u).attr("font-family",o);const c=d.stopy-d.starty+2*$.diagramMarginY,v=P+d.stopx+2*$.diagramMarginX;$t(h,c,v,$.useMaxWidth),h.append("line").attr("x1",P).attr("y1",$.height*4).attr("x2",v-P-4).attr("y2",$.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#"+e+"-arrowhead)");const k=n?70:0;h.attr("viewBox",`${d.startx} -25 ${v} ${c+k}`),h.attr("preserveAspectRatio","xMinYMin meet"),h.attr("height",c+k+25)},"draw"),S={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:s(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:s(function(t,e,a,p){t[e]===void 0?t[e]=a:t[e]=p(a,t[e])},"updateVal"),updateBounds:s(function(t,e,a,p){const i=R().journey,u=this;let f=0;function o(g){return s(function(x){f++;const h=u.sequenceItems.length-f+1;u.updateVal(x,"starty",e-h*i.boxMargin,Math.min),u.updateVal(x,"stopy",p+h*i.boxMargin,Math.max),u.updateVal(S.data,"startx",t-h*i.boxMargin,Math.min),u.updateVal(S.data,"stopx",a+h*i.boxMargin,Math.max),g!=="activation"&&(u.updateVal(x,"startx",t-h*i.boxMargin,Math.min),u.updateVal(x,"stopx",a+h*i.boxMargin,Math.max),u.updateVal(S.data,"starty",e-h*i.boxMargin,Math.min),u.updateVal(S.data,"stopy",p+h*i.boxMargin,Math.max))},"updateItemBounds")}s(o,"updateFn"),this.sequenceItems.forEach(o())},"updateBounds"),insert:s(function(t,e,a,p){const i=Math.min(t,a),u=Math.max(t,a),f=Math.min(e,p),o=Math.max(e,p);this.updateVal(S.data,"startx",i,Math.min),this.updateVal(S.data,"starty",f,Math.min),this.updateVal(S.data,"stopx",u,Math.max),this.updateVal(S.data,"stopy",o,Math.max),this.updateBounds(i,f,u,o)},"insert"),bumpVerticalPos:s(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:s(function(){return this.verticalPos},"getVerticalPos"),getBounds:s(function(){return this.data},"getBounds")},G=$.sectionFills,st=$.sectionColours,Gt=s(function(t,e,a,p){const i=R().journey;let u="";const f=i.height*2+i.diagramMarginY,o=a+f;let g=0,m="#CCC",x="black",h=0;for(const[r,n]of e.entries()){if(u!==n.section){m=G[g%G.length],h=g%G.length,x=st[g%st.length];let y=0;const d=n.section;for(let v=r;v<e.length&&e[v].section==d;v++)y=y+1;const c={x:r*i.taskMargin+r*i.width+P,y:50,text:n.section,fill:m,num:h,colour:x,taskCount:y};j.drawSection(t,c,i),u=n.section,g++}const l=n.people.reduce((y,d)=>(E[d]&&(y[d]=E[d]),y),{});n.x=r*i.taskMargin+r*i.width+P,n.y=o,n.width=i.diagramMarginX,n.height=i.diagramMarginY,n.colour=x,n.fill=m,n.num=h,n.actors=l,j.drawTask(t,n,i,p),S.insert(n.x,n.y,n.x+n.width+i.taskMargin,450)}},"drawTasks"),at={setConf:Ht,draw:Xt},ae={parser:Et,db:nt,renderer:at,styles:jt,init:s(t=>{at.setConf(t.journey),nt.clear()},"init")};export{ae as diagram};
139
+ `,"getStyles"),jt=Bt,K=s(function(t,e){return kt(t,e)},"drawRect"),Nt=s(function(t,e){const p=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function u(g){const m=it().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);g.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}s(u,"smile");function f(g){const m=it().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);g.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}s(f,"sad");function o(g){g.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return s(o,"ambivalent"),e.score>3?u(i):e.score<3?f(i):o(i),p},"drawFace"),ot=s(function(t,e){const a=t.append("circle");return a.attr("cx",e.cx),a.attr("cy",e.cy),a.attr("class","actor-"+e.pos),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("r",e.r),a.class!==void 0&&a.attr("class",a.class),e.title!==void 0&&a.append("title").text(e.title),a},"drawCircle"),ct=s(function(t,e){return xt(t,e)},"drawText"),zt=s(function(t,e){function a(i,u,f,o,g){return i+","+u+" "+(i+f)+","+u+" "+(i+f)+","+(u+o-g)+" "+(i+f-g*1.2)+","+(u+o)+" "+i+","+(u+o)}s(a,"genPoints");const p=t.append("polygon");p.attr("points",a(e.x,e.y,50,20,7)),p.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,ct(t,e)},"drawLabel"),Wt=s(function(t,e,a){const p=t.append("g"),i=lt();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=a.width*e.taskCount+a.diagramMarginX*(e.taskCount-1),i.height=a.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,K(p,i),ht(a)(e.text,p,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},a,e.colour)},"drawSection"),Z=-1,Ot=s(function(t,e,a,p){const i=e.x+a.width/2,u=t.append("g");Z++,u.append("line").attr("id",p+"-task"+Z).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Nt(u,{cx:i,cy:300+(5-e.score)*30,score:e.score});const o=lt();o.x=e.x,o.y=e.y,o.fill=e.fill,o.width=a.width,o.height=a.height,o.class="task task-type-"+e.num,o.rx=3,o.ry=3,K(u,o);let g=e.x+14;e.people.forEach(m=>{const x=e.actors[m].color,h={cx:g,cy:e.y,r:7,fill:x,stroke:"#000",title:m,pos:e.actors[m].position};ot(u,h),g+=10}),ht(a)(e.task,u,o.x,o.y,o.width,o.height,{class:"task"},a,e.colour)},"drawTask"),Yt=s(function(t,e){mt(t,e)},"drawBackgroundRect"),ht=(function(){function t(i,u,f,o,g,m,x,h){const r=u.append("text").attr("x",f+g/2).attr("y",o+m/2+5).style("font-color",h).style("text-anchor","middle").text(i);p(r,x)}s(t,"byText");function e(i,u,f,o,g,m,x,h,r){const{taskFontSize:n,taskFontFamily:l}=h,y=i.split(/<br\s*\/?>/gi);for(let d=0;d<y.length;d++){const c=d*n-n*(y.length-1)/2,v=u.append("text").attr("x",f+g/2).attr("y",o).attr("fill",r).style("text-anchor","middle").style("font-size",n).style("font-family",l);v.append("tspan").attr("x",f+g/2).attr("dy",c).text(y[d]),v.attr("y",o+m/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),p(v,x)}}s(e,"byTspan");function a(i,u,f,o,g,m,x,h){const r=u.append("switch"),l=r.append("foreignObject").attr("x",f).attr("y",o).attr("width",g).attr("height",m).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");l.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),e(i,r,f,o,g,m,x,h),p(l,x)}s(a,"byFo");function p(i,u){for(const f in u)f in u&&i.attr(f,u[f])}return s(p,"_setTextAttrs"),function(i){return i.textPlacement==="fo"?a:i.textPlacement==="old"?t:e}})(),qt=s(function(t,e){Z=-1,t.append("defs").append("marker").attr("id",e+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics"),j={drawRect:K,drawCircle:ot,drawSection:Wt,drawText:ct,drawLabel:zt,drawTask:Ot,drawBackgroundRect:Yt,initGraphics:qt},Ht=s(function(t){Object.keys(t).forEach(function(a){$[a]=t[a]})},"setConf"),E={},W=0;function ut(t){const e=R().journey,a=e.maxLabelWidth;W=0;let p=60;Object.keys(E).forEach(i=>{const u=E[i].color,f={cx:20,cy:p,r:7,fill:u,stroke:"#000",pos:E[i].position};j.drawCircle(t,f);let o=t.append("text").attr("visibility","hidden").text(i);const g=o.node().getBoundingClientRect().width;o.remove();let m=[];if(g<=a)m=[i];else{const x=i.split(" ");let h="";o=t.append("text").attr("visibility","hidden"),x.forEach(r=>{const n=h?`${h} ${r}`:r;if(o.text(n),o.node().getBoundingClientRect().width>a){if(h&&m.push(h),h=r,o.text(r),o.node().getBoundingClientRect().width>a){let y="";for(const d of r)y+=d,o.text(y+"-"),o.node().getBoundingClientRect().width>a&&(m.push(y.slice(0,-1)+"-"),y=d);h=y}}else h=n}),h&&m.push(h),o.remove()}m.forEach((x,h)=>{const r={x:40,y:p+7+h*20,fill:"#666",text:x,textMargin:e.boxTextMargin??5},l=j.drawText(t,r).node().getBoundingClientRect().width;l>W&&l>e.leftMargin-l&&(W=l)}),p+=Math.max(20,m.length*20)})}s(ut,"drawActorLegend");var $=R().journey,P=0,Xt=s(function(t,e,a,p){const i=R(),u=i.journey.titleColor,f=i.journey.titleFontSize,o=i.journey.titleFontFamily,g=i.securityLevel;let m;g==="sandbox"&&(m=X("#i"+e));const x=g==="sandbox"?X(m.nodes()[0].contentDocument.body):X("body");S.init();const h=x.select("#"+e);j.initGraphics(h,e);const r=p.db.getTasks(),n=p.db.getDiagramTitle(),l=p.db.getActors();for(const C in E)delete E[C];let y=0;l.forEach(C=>{E[C]={color:$.actorColours[y%$.actorColours.length],position:y},y++}),ut(h),P=$.leftMargin+W,S.insert(0,0,P,Object.keys(E).length*50),Gt(h,r,0,e);const d=S.getBounds();n&&h.append("text").text(n).attr("x",P).attr("font-size",f).attr("font-weight","bold").attr("y",25).attr("fill",u).attr("font-family",o);const c=d.stopy-d.starty+2*$.diagramMarginY,v=P+d.stopx+2*$.diagramMarginX;$t(h,c,v,$.useMaxWidth),h.append("line").attr("x1",P).attr("y1",$.height*4).attr("x2",v-P-4).attr("y2",$.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#"+e+"-arrowhead)");const k=n?70:0;h.attr("viewBox",`${d.startx} -25 ${v} ${c+k}`),h.attr("preserveAspectRatio","xMinYMin meet"),h.attr("height",c+k+25)},"draw"),S={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:s(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:s(function(t,e,a,p){t[e]===void 0?t[e]=a:t[e]=p(a,t[e])},"updateVal"),updateBounds:s(function(t,e,a,p){const i=R().journey,u=this;let f=0;function o(g){return s(function(x){f++;const h=u.sequenceItems.length-f+1;u.updateVal(x,"starty",e-h*i.boxMargin,Math.min),u.updateVal(x,"stopy",p+h*i.boxMargin,Math.max),u.updateVal(S.data,"startx",t-h*i.boxMargin,Math.min),u.updateVal(S.data,"stopx",a+h*i.boxMargin,Math.max),g!=="activation"&&(u.updateVal(x,"startx",t-h*i.boxMargin,Math.min),u.updateVal(x,"stopx",a+h*i.boxMargin,Math.max),u.updateVal(S.data,"starty",e-h*i.boxMargin,Math.min),u.updateVal(S.data,"stopy",p+h*i.boxMargin,Math.max))},"updateItemBounds")}s(o,"updateFn"),this.sequenceItems.forEach(o())},"updateBounds"),insert:s(function(t,e,a,p){const i=Math.min(t,a),u=Math.max(t,a),f=Math.min(e,p),o=Math.max(e,p);this.updateVal(S.data,"startx",i,Math.min),this.updateVal(S.data,"starty",f,Math.min),this.updateVal(S.data,"stopx",u,Math.max),this.updateVal(S.data,"stopy",o,Math.max),this.updateBounds(i,f,u,o)},"insert"),bumpVerticalPos:s(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:s(function(){return this.verticalPos},"getVerticalPos"),getBounds:s(function(){return this.data},"getBounds")},G=$.sectionFills,st=$.sectionColours,Gt=s(function(t,e,a,p){const i=R().journey;let u="";const f=i.height*2+i.diagramMarginY,o=a+f;let g=0,m="#CCC",x="black",h=0;for(const[r,n]of e.entries()){if(u!==n.section){m=G[g%G.length],h=g%G.length,x=st[g%st.length];let y=0;const d=n.section;for(let v=r;v<e.length&&e[v].section==d;v++)y=y+1;const c={x:r*i.taskMargin+r*i.width+P,y:50,text:n.section,fill:m,num:h,colour:x,taskCount:y};j.drawSection(t,c,i),u=n.section,g++}const l=n.people.reduce((y,d)=>(E[d]&&(y[d]=E[d]),y),{});n.x=r*i.taskMargin+r*i.width+P,n.y=o,n.width=i.diagramMarginX,n.height=i.diagramMarginY,n.colour=x,n.fill=m,n.num=h,n.actors=l,j.drawTask(t,n,i,p),S.insert(n.x,n.y,n.x+n.width+i.taskMargin,450)}},"drawTasks"),at={setConf:Ht,draw:Xt},le={parser:Et,db:nt,renderer:at,styles:jt,init:s(t=>{at.setConf(t.journey),nt.clear()},"init")};export{le as diagram};
@@ -1,14 +1,14 @@
1
- import{_ as c,l as te,c as W,H as fe,Y as ye,$ as me,a0 as be,W as _e,F as K,i as G,t as ke,J as Ee,T as Se,U as le,V as ce}from"./MermaidRenderer-B_R73JsW.js";import{g as Ne}from"./chunk-FMBD7UC4-BpZP0Y5U.js";import"./vendor-markdown-BRX1CUPf.js";import"./vendor-syntax-DG6Vo7Ci.js";import"./purify.es-D6gMnemd.js";import"./isPrototype-DezZrpQP.js";import"./graphExportUtils-DrqBjeAI.js";import"./index-DWeVNozJ.js";import"./vendor-react-BAJBiXxk.js";import"./vendor-auth-BWxE55Ta.js";var $=(function(){var t=c(function(_,i,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=i);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],k=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],s=[6,7,11],U=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],H=[1,35],M=[1,36],A=[1,6,7,11,13,16,17,20,23],j=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},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,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(i,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(s,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(s,[2,19]),t(s,[2,21],{15:30,24:U}),t(s,[2,22]),t(s,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(P,[2,14],{7:H,11:M}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(s,[2,16],{15:37,24:U}),t(s,[2,17]),t(s,[2,18]),t(s,[2,20],{24:j}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:H,11:M}),t(A,[2,11]),t(A,[2,12]),t(s,[2,15],{24:j}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},"parseError"),parse:c(function(i){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,se=0,ue=2,re=1,ge=e.slice.call(arguments,1),b=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);b.setInput(i,T.yy),T.yy.lexer=b,T.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;e.push(q);var de=b.options&&b.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||b.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var E,R,v,Q,F={},X,I,oe,Y;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((E===null||typeof E>"u")&&(E=ae()),v=B[R]&&B[R][E]),typeof v>"u"||!v.length||!v[0]){var Z="";Y=[];for(X in B[R])this.terminals_[X]&&X>ue&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Z="Parse error on line "+(z+1)+`:
1
+ import{_ as c,l as te,c as W,H as fe,a0 as ye,a1 as me,a2 as be,W as _e,F as Y,i as G,t as ke,J as Ee,T as Se,U as le,V as ce}from"./MermaidRenderer-CPPq3mmd.js";import{g as Ne}from"./chunk-FMBD7UC4-BhdowZ3g.js";import"./vendor-react-BbEy7z12.js";import"./vendor-syntax-INF7-xC_.js";import"./purify.es-D6gMnemd.js";import"./isPrototype-DezZrpQP.js";import"./graphExportUtils-DrqBjeAI.js";import"./index-BNiRF5ts.js";import"./locales-4Dy5QB82.js";import"./vendor-markdown-Cy_-N5ZX.js";import"./vendor-auth-aD_bwYde.js";var $=(function(){var t=c(function(_,i,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=i);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],k=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],s=[6,7,11],U=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],H=[1,35],M=[1,36],A=[1,6,7,11,13,16,17,20,23],j=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},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,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(i,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(s,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(s,[2,19]),t(s,[2,21],{15:30,24:U}),t(s,[2,22]),t(s,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(P,[2,14],{7:H,11:M}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(s,[2,16],{15:37,24:U}),t(s,[2,17]),t(s,[2,18]),t(s,[2,20],{24:j}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:H,11:M}),t(A,[2,11]),t(A,[2,12]),t(s,[2,15],{24:j}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},"parseError"),parse:c(function(i){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,se=0,ue=2,re=1,ge=e.slice.call(arguments,1),b=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);b.setInput(i,T.yy),T.yy.lexer=b,T.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;e.push(q);var de=b.options&&b.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||b.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var E,R,v,Q,F={},X,I,oe,K;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((E===null||typeof E>"u")&&(E=ae()),v=B[R]&&B[R][E]),typeof v>"u"||!v.length||!v[0]){var Z="";K=[];for(X in B[R])this.terminals_[X]&&X>ue&&K.push("'"+this.terminals_[X]+"'");b.showPosition?Z="Parse error on line "+(z+1)+`:
2
2
  `+b.showPosition()+`
3
- Expecting `+Y.join(", ")+", got '"+(this.terminals_[E]||E)+"'":Z="Parse error on line "+(z+1)+": Unexpected "+(E==re?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(Z,{text:b.match,token:this.terminals_[E]||E,line:b.yylineno,loc:q,expected:Y})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+E);switch(v[0]){case 1:a.push(E),u.push(b.yytext),e.push(b.yylloc),a.push(v[1]),E=null,se=b.yyleng,l=b.yytext,z=b.yylineno,q=b.yylloc;break;case 2:if(I=this.productions_[v[1]][1],F.$=u[u.length-I],F._$={first_line:e[e.length-(I||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(I||1)].first_column,last_column:e[e.length-1].last_column},de&&(F._$.range=[e[e.length-(I||1)].range[0],e[e.length-1].range[1]]),Q=this.performAction.apply(F,[l,se,z,T.yy,v[1],u,e].concat(ge)),typeof Q<"u")return Q;I&&(a=a.slice(0,-1*I*2),u=u.slice(0,-1*I),e=e.slice(0,-1*I)),a.push(this.productions_[v[1]][0]),u.push(F.$),e.push(F._$),oe=B[a[a.length-2]][a[a.length-1]],a.push(oe);break;case 3:return!0}}return!0},"parse")},y=(function(){var _={EOF:1,parseError:c(function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},"parseError"),setInput:c(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:c(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:c(function(i){var n=i.length,a=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 o=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),a.length-1&&(this.yylineno-=a.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:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(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).
3
+ Expecting `+K.join(", ")+", got '"+(this.terminals_[E]||E)+"'":Z="Parse error on line "+(z+1)+": Unexpected "+(E==re?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(Z,{text:b.match,token:this.terminals_[E]||E,line:b.yylineno,loc:q,expected:K})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+E);switch(v[0]){case 1:a.push(E),u.push(b.yytext),e.push(b.yylloc),a.push(v[1]),E=null,se=b.yyleng,l=b.yytext,z=b.yylineno,q=b.yylloc;break;case 2:if(I=this.productions_[v[1]][1],F.$=u[u.length-I],F._$={first_line:e[e.length-(I||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(I||1)].first_column,last_column:e[e.length-1].last_column},de&&(F._$.range=[e[e.length-(I||1)].range[0],e[e.length-1].range[1]]),Q=this.performAction.apply(F,[l,se,z,T.yy,v[1],u,e].concat(ge)),typeof Q<"u")return Q;I&&(a=a.slice(0,-1*I*2),u=u.slice(0,-1*I),e=e.slice(0,-1*I)),a.push(this.productions_[v[1]][0]),u.push(F.$),e.push(F._$),oe=B[a[a.length-2]][a[a.length-1]],a.push(oe);break;case 3:return!0}}return!0},"parse")},y=(function(){var _={EOF:1,parseError:c(function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},"parseError"),setInput:c(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:c(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:c(function(i){var n=i.length,a=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 o=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),a.length-1&&(this.yylineno-=a.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:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(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:c(function(i){this.unput(this.match.slice(i))},"less"),pastInput:c(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:c(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:c(function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
5
5
  `+n+"^"},"showPosition"),test_match:c(function(i,n){var a,o,u;if(this.options.backtrack_lexer&&(u={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(u.yylloc.range=this.yylloc.range.slice(0))),o=i[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],a=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var e in u)this[e]=u[e];return!1}return!1},"test_match"),next:c(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,a,o;this._more||(this.yytext="",this.match="");for(var u=this._currentRules(),e=0;e<u.length;e++)if(a=this._input.match(this.rules[u[e]]),a&&(!n||a[0].length>n[0].length)){if(n=a,o=e,this.options.backtrack_lexer){if(i=this.test_match(a,u[e]),i!==!1)return i;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(i=this.test_match(n,u[o]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
- `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:c(function(){var n=this.next();return n||this.lex()},"lex"),begin:c(function(n){this.conditionStack.push(n)},"begin"),popState:c(function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:c(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:c(function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:c(function(n){this.begin(n)},"pushState"),stateStackSize:c(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:c(function(n,a,o,u){switch(o){case 0:return this.pushState("shapeData"),a.yytext="",24;case 1:return this.pushState("shapeDataStr"),24;case 2:return this.popState(),24;case 3:const e=/\n\s*/g;return a.yytext=a.yytext.replace(e,"<br/>"),24;case 4:return 24;case 5:this.popState();break;case 6:return n.getLogger().trace("Found comment",a.yytext),6;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;case 10:this.popState();break;case 11:n.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return n.getLogger().trace("SPACELINE"),6;case 13:return 7;case 14:return 16;case 15:n.getLogger().trace("end icon"),this.popState();break;case 16:return n.getLogger().trace("Exploding node"),this.begin("NODE"),20;case 17:return n.getLogger().trace("Cloud"),this.begin("NODE"),20;case 18:return n.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;case 19:return n.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;case 20:return this.begin("NODE"),20;case 21:return this.begin("NODE"),20;case 22:return this.begin("NODE"),20;case 23:return this.begin("NODE"),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:n.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return n.getLogger().trace("description:",a.yytext),"NODE_DESCR";case 32:this.popState();break;case 33:return this.popState(),n.getLogger().trace("node end ))"),"NODE_DEND";case 34:return this.popState(),n.getLogger().trace("node end )"),"NODE_DEND";case 35:return this.popState(),n.getLogger().trace("node end ...",a.yytext),"NODE_DEND";case 36:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 37:return this.popState(),n.getLogger().trace("node end (-"),"NODE_DEND";case 38:return this.popState(),n.getLogger().trace("node end (-"),"NODE_DEND";case 39:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 40:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 41:return n.getLogger().trace("Long description:",a.yytext),21;case 42:return n.getLogger().trace("Long description:",a.yytext),21}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return _})();V.lexer=y;function O(){this.yy={}}return c(O,"Parser"),O.prototype=V,V.Parser=O,new O})();$.parser=$;var xe=$,D=[],ne=[],ee=0,ie={},ve=c(()=>{D=[],ne=[],ee=0,ie={}},"clear"),De=c(t=>{if(D.length===0)return null;const g=D[0].level;let d=null;for(let r=D.length-1;r>=0;r--)if(D[r].level===g&&!d&&(d=D[r]),D[r].level<g)throw new Error('Items without section detected, found section ("'+D[r].label+'")');return t===(d==null?void 0:d.level)?null:d},"getSection"),he=c(function(){return ne},"getSections"),Le=c(function(){const t=[],g=[],d=he(),r=W();for(const p of d){const k={id:p.id,label:G(p.label??"",r),labelType:"markdown",isGroup:!0,ticket:p.ticket,shape:"kanbanSection",level:p.level,look:r.look};g.push(k);const f=D.filter(h=>h.parentId===p.id);for(const h of f){const L={id:h.id,parentId:p.id,label:G(h.label??"",r),labelType:"markdown",isGroup:!1,ticket:h==null?void 0:h.ticket,priority:h==null?void 0:h.priority,assigned:h==null?void 0:h.assigned,icon:h==null?void 0:h.icon,shape:"kanbanItem",level:h.level,rx:5,ry:5,cssStyles:["text-align: left"]};g.push(L)}}return{nodes:g,edges:t,other:{},config:W()}},"getData"),Oe=c((t,g,d,r,p)=>{var C,w;const k=W();let f=((C=k.mindmap)==null?void 0:C.padding)??K.mindmap.padding;switch(r){case m.ROUNDED_RECT:case m.RECT:case m.HEXAGON:f*=2}const h={id:G(g,k)||"kbn"+ee++,level:t,label:G(d,k),width:((w=k.mindmap)==null?void 0:w.maxNodeWidth)??K.mindmap.maxNodeWidth,padding:f,isGroup:!1};if(p!==void 0){let N;p.includes(`
6
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:c(function(){var n=this.next();return n||this.lex()},"lex"),begin:c(function(n){this.conditionStack.push(n)},"begin"),popState:c(function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:c(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:c(function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:c(function(n){this.begin(n)},"pushState"),stateStackSize:c(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:c(function(n,a,o,u){switch(o){case 0:return this.pushState("shapeData"),a.yytext="",24;case 1:return this.pushState("shapeDataStr"),24;case 2:return this.popState(),24;case 3:const e=/\n\s*/g;return a.yytext=a.yytext.replace(e,"<br/>"),24;case 4:return 24;case 5:this.popState();break;case 6:return n.getLogger().trace("Found comment",a.yytext),6;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;case 10:this.popState();break;case 11:n.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return n.getLogger().trace("SPACELINE"),6;case 13:return 7;case 14:return 16;case 15:n.getLogger().trace("end icon"),this.popState();break;case 16:return n.getLogger().trace("Exploding node"),this.begin("NODE"),20;case 17:return n.getLogger().trace("Cloud"),this.begin("NODE"),20;case 18:return n.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;case 19:return n.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;case 20:return this.begin("NODE"),20;case 21:return this.begin("NODE"),20;case 22:return this.begin("NODE"),20;case 23:return this.begin("NODE"),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:n.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return n.getLogger().trace("description:",a.yytext),"NODE_DESCR";case 32:this.popState();break;case 33:return this.popState(),n.getLogger().trace("node end ))"),"NODE_DEND";case 34:return this.popState(),n.getLogger().trace("node end )"),"NODE_DEND";case 35:return this.popState(),n.getLogger().trace("node end ...",a.yytext),"NODE_DEND";case 36:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 37:return this.popState(),n.getLogger().trace("node end (-"),"NODE_DEND";case 38:return this.popState(),n.getLogger().trace("node end (-"),"NODE_DEND";case 39:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 40:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 41:return n.getLogger().trace("Long description:",a.yytext),21;case 42:return n.getLogger().trace("Long description:",a.yytext),21}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return _})();V.lexer=y;function O(){this.yy={}}return c(O,"Parser"),O.prototype=V,V.Parser=O,new O})();$.parser=$;var xe=$,D=[],ne=[],ee=0,ie={},ve=c(()=>{D=[],ne=[],ee=0,ie={}},"clear"),De=c(t=>{if(D.length===0)return null;const g=D[0].level;let d=null;for(let r=D.length-1;r>=0;r--)if(D[r].level===g&&!d&&(d=D[r]),D[r].level<g)throw new Error('Items without section detected, found section ("'+D[r].label+'")');return t===(d==null?void 0:d.level)?null:d},"getSection"),he=c(function(){return ne},"getSections"),Le=c(function(){const t=[],g=[],d=he(),r=W();for(const p of d){const k={id:p.id,label:G(p.label??"",r),labelType:"markdown",isGroup:!0,ticket:p.ticket,shape:"kanbanSection",level:p.level,look:r.look};g.push(k);const f=D.filter(h=>h.parentId===p.id);for(const h of f){const L={id:h.id,parentId:p.id,label:G(h.label??"",r),labelType:"markdown",isGroup:!1,ticket:h==null?void 0:h.ticket,priority:h==null?void 0:h.priority,assigned:h==null?void 0:h.assigned,icon:h==null?void 0:h.icon,shape:"kanbanItem",level:h.level,rx:5,ry:5,cssStyles:["text-align: left"]};g.push(L)}}return{nodes:g,edges:t,other:{},config:W()}},"getData"),Oe=c((t,g,d,r,p)=>{var C,w;const k=W();let f=((C=k.mindmap)==null?void 0:C.padding)??Y.mindmap.padding;switch(r){case m.ROUNDED_RECT:case m.RECT:case m.HEXAGON:f*=2}const h={id:G(g,k)||"kbn"+ee++,level:t,label:G(d,k),width:((w=k.mindmap)==null?void 0:w.maxNodeWidth)??Y.mindmap.maxNodeWidth,padding:f,isGroup:!1};if(p!==void 0){let N;p.includes(`
7
7
  `)?N=p+`
8
8
  `:N=`{
9
9
  `+p+`
10
10
  }`;const s=ke(N,{schema:Ee});if(s.shape&&(s.shape!==s.shape.toLowerCase()||s.shape.includes("_")))throw new Error(`No such shape: ${s.shape}. Shape names should be lowercase.`);s!=null&&s.shape&&s.shape==="kanbanItem"&&(h.shape=s==null?void 0:s.shape),s!=null&&s.label&&(h.label=s==null?void 0:s.label),s!=null&&s.icon&&(h.icon=s==null?void 0:s.icon.toString()),s!=null&&s.assigned&&(h.assigned=s==null?void 0:s.assigned.toString()),s!=null&&s.ticket&&(h.ticket=s==null?void 0:s.ticket.toString()),s!=null&&s.priority&&(h.priority=s==null?void 0:s.priority)}const L=De(t);L?h.parentId=L.id||"kbn"+ee++:ne.push(h),D.push(h)},"addNode"),m={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Ie=c((t,g)=>{switch(te.debug("In get type",t,g),t){case"[":return m.RECT;case"(":return g===")"?m.ROUNDED_RECT:m.CLOUD;case"((":return m.CIRCLE;case")":return m.CLOUD;case"))":return m.BANG;case"{{":return m.HEXAGON;default:return m.DEFAULT}},"getType"),Ce=c((t,g)=>{ie[t]=g},"setElementForId"),we=c(t=>{if(!t)return;const g=W(),d=D[D.length-1];t.icon&&(d.icon=G(t.icon,g)),t.class&&(d.cssClasses=G(t.class,g))},"decorateNode"),Ae=c(t=>{switch(t){case m.DEFAULT:return"no-border";case m.RECT:return"rect";case m.ROUNDED_RECT:return"rounded-rect";case m.CIRCLE:return"circle";case m.CLOUD:return"cloud";case m.BANG:return"bang";case m.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),Te=c(()=>te,"getLogger"),Re=c(t=>ie[t],"getElementById"),Pe={clear:ve,addNode:Oe,getSections:he,getData:Le,nodeType:m,getType:Ie,setElementForId:Ce,decorateNode:we,type2Str:Ae,getLogger:Te,getElementById:Re},Ve=Pe,Be=c(async(t,g,d,r)=>{var H,M,A,j,V;te.debug(`Rendering kanban diagram
11
- `+t);const k=r.db.getData(),f=W();f.htmlLabels=!1;const h=fe(g);for(const y of k.nodes)y.domId=`${g}-${y.id}`;const L=h.append("g");L.attr("class","sections");const C=h.append("g");C.attr("class","items");const w=k.nodes.filter(y=>y.isGroup);let N=0;const s=10,U=[];let x=25;for(const y of w){const O=((H=f==null?void 0:f.kanban)==null?void 0:H.sectionWidth)||200;N=N+1,y.x=O*N+(N-1)*s/2,y.width=O,y.y=0,y.height=O*3,y.rx=5,y.ry=5,y.cssClasses=y.cssClasses+" section-"+N;const _=await ye(L,y);x=Math.max(x,(M=_==null?void 0:_.labelBBox)==null?void 0:M.height),U.push(_)}let P=0;for(const y of w){const O=U[P];P=P+1;const _=((A=f==null?void 0:f.kanban)==null?void 0:A.sectionWidth)||200,i=-_*3/2+x;let n=i;const a=k.nodes.filter(e=>e.parentId===y.id);for(const e of a){if(e.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");e.x=y.x,e.width=_-1.5*s;const l=(await me(C,e,{config:f})).node().getBBox();e.y=n+l.height/2,await be(e),n=e.y+l.height/2+s/2}const o=O.cluster.select("rect"),u=Math.max(n-i+3*s,50)+(x-25);o.attr("height",u)}_e(void 0,h,((j=f.mindmap)==null?void 0:j.padding)??K.kanban.padding,((V=f.mindmap)==null?void 0:V.useMaxWidth)??K.kanban.useMaxWidth)},"draw"),Fe={draw:Be},Ge=c(t=>{let g="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)t["lineColor"+r]=t["lineColor"+r]||t["cScaleInv"+r],Se(t["lineColor"+r])?t["lineColor"+r]=le(t["lineColor"+r],20):t["lineColor"+r]=ce(t["lineColor"+r],20);const d=c((r,p)=>t.darkMode?ce(r,p):le(r,p),"adjuster");for(let r=0;r<t.THEME_COLOR_LIMIT;r++){const p=""+(17-3*r);g+=`
11
+ `+t);const k=r.db.getData(),f=W();f.htmlLabels=!1;const h=fe(g);for(const y of k.nodes)y.domId=`${g}-${y.id}`;const L=h.append("g");L.attr("class","sections");const C=h.append("g");C.attr("class","items");const w=k.nodes.filter(y=>y.isGroup);let N=0;const s=10,U=[];let x=25;for(const y of w){const O=((H=f==null?void 0:f.kanban)==null?void 0:H.sectionWidth)||200;N=N+1,y.x=O*N+(N-1)*s/2,y.width=O,y.y=0,y.height=O*3,y.rx=5,y.ry=5,y.cssClasses=y.cssClasses+" section-"+N;const _=await ye(L,y);x=Math.max(x,(M=_==null?void 0:_.labelBBox)==null?void 0:M.height),U.push(_)}let P=0;for(const y of w){const O=U[P];P=P+1;const _=((A=f==null?void 0:f.kanban)==null?void 0:A.sectionWidth)||200,i=-_*3/2+x;let n=i;const a=k.nodes.filter(e=>e.parentId===y.id);for(const e of a){if(e.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");e.x=y.x,e.width=_-1.5*s;const l=(await me(C,e,{config:f})).node().getBBox();e.y=n+l.height/2,await be(e),n=e.y+l.height/2+s/2}const o=O.cluster.select("rect"),u=Math.max(n-i+3*s,50)+(x-25);o.attr("height",u)}_e(void 0,h,((j=f.mindmap)==null?void 0:j.padding)??Y.kanban.padding,((V=f.mindmap)==null?void 0:V.useMaxWidth)??Y.kanban.useMaxWidth)},"draw"),Fe={draw:Be},Ge=c(t=>{let g="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)t["lineColor"+r]=t["lineColor"+r]||t["cScaleInv"+r],Se(t["lineColor"+r])?t["lineColor"+r]=le(t["lineColor"+r],20):t["lineColor"+r]=ce(t["lineColor"+r],20);const d=c((r,p)=>t.darkMode?ce(r,p):le(r,p),"adjuster");for(let r=0;r<t.THEME_COLOR_LIMIT;r++){const p=""+(17-3*r);g+=`
12
12
  .section-${r-1} rect, .section-${r-1} path, .section-${r-1} circle, .section-${r-1} polygon, .section-${r-1} path {
13
13
  fill: ${d(t["cScale"+r],10)};
14
14
  stroke: ${d(t["cScale"+r],10)};
@@ -86,4 +86,4 @@ Expecting `+Y.join(", ")+", got '"+(this.terminals_[E]||E)+"'":Z="Parse error on
86
86
  text-align: center;
87
87
  }
88
88
  ${Ne()}
89
- `,"getStyles"),He=Ue,Ze={db:Ve,renderer:Fe,parser:xe,styles:He};export{Ze as diagram};
89
+ `,"getStyles"),He=Ue,$e={db:Ve,renderer:Fe,parser:xe,styles:He};export{$e as diagram};
@@ -0,0 +1 @@
1
+ const e={cancel:"Abbrechen",close:"Schließen",confirm:"Bestätigen",delete:"Löschen",remove:"Entfernen",clear:"Leeren",send:"Senden",signIn:"Anmelden",logOut:"Abmelden",download:"Herunterladen"},a={sidebar:{openAriaLabel:"Seitenleiste öffnen",openTitle:"Seitenleiste öffnen"},menu:{closeAriaLabel:"Menü schließen"}},i={workspace:{ariaLabel:"Chat-Arbeitsbereich"},error:{dismissAriaLabel:"Fehler schließen"},mobile:{chatsButton:"Chats",openChatsMenuAriaLabel:"Konversationsmenü öffnen",settingsButton:"Einstellungen",openSettingsAriaLabel:"Einstellungen öffnen"},settings:{ariaLabel:"Einstellungen",title:"Einstellungen"},changeAgent:{button:"Agent wechseln",titleEnabled:"Wechsle zu einem anderen Agenten, bevor du diese Konversation startest",titleDisabled:"Der Agent kann nach Beginn der Konversation nicht mehr geändert werden"},newConversation:{button:"Neue Konversation",tooltipCanStart:"Neue Konversation starten",tooltipGuestLimited:"Limit für Gastkonversationen erreicht. Melde dich an, um mehr Konversationen zu führen.",tooltipCannotStart:"Beende deine aktuelle Konversation, bevor du eine neue startest."},empty:{configuringAgent:"Dein Agent wird konfiguriert…"},newChatTitle:"Neuer Chat",updatedAt:"Aktualisiert {{time}}",docked:{placeholder:"Neues Thema starten..."}},t={dialog:{closeOverlayAriaLabel:"Einstellungsüberlagerung schließen",title:"Einstellungen",closeButtonAriaLabel:"Einstellungen schließen"},appearance:{heading:"Darstellung",themeLabel:"Design",themeLight:"Hell",themeDark:"Dunkel",themeSystem:"System"},language:{label:"Sprache"},chat:{heading:"Chat-Einstellungen"},soundEffects:{label:"Soundeffekte",description:"Sounds für Benachrichtigungen und Ereignisse abspielen",toggleAriaLabel:"Soundeffekte umschalten"},dataManagement:{heading:"Datenverwaltung",description:"Alle Anwendungsdaten einschließlich Konversationen und personalisierter Einstellungen löschen."},reset:{button:"Anwendung zurücksetzen",confirmTitle:"Anwendungsdaten zurücksetzen?",confirmMessage:"Dadurch wird alles entfernt, was auf diesem Gerät gespeichert ist, und die App wird neu geladen.",confirmButton:"Zurücksetzen"}},o={selectAgent:{title:"Agent auswählen"},deleteAllConversations:{title:"Alle Konversationen löschen",button:"Konversationen löschen"},navAriaLabel:"Konversations-Seitenleiste",adapterConfigureFailed:"Adapter konnte nicht konfiguriert werden",collapse:{ariaLabel:"Seitenleiste schließen",title:"Seitenleiste schließen"},search:{ariaLabel:"Konversationen suchen",placeholder:"Konversationen suchen",clearAriaLabel:"Suche löschen"},resultsNone:"Keine Ergebnisse",results_one:"{{count}} Ergebnis",results_other:"{{count}} Ergebnisse",conversations:{ariaLabel:"Konversationen"},timeGroups:{today:"Heute",yesterday:"Gestern",thisWeek:"Diese Woche",thisMonth:"Dieser Monat",earlier:"Früher"},conversationCard:{openAriaLabel:"Konversation öffnen: {{title}}",editAriaLabel:"Konversation umbenennen: {{title}}",deleteAriaLabel:"Konversation löschen: {{title}}",editInputAriaLabel:"Konversationstitel bearbeiten"},deleteConfirm:{title:"Konversation löschen",message:'Möchtest du "{{title}}" wirklich löschen? Dadurch wird der Konversationsverlauf gelöscht.',confirmText:"Löschen"},clearAllConfirm:{title:"Alle Konversationen leeren",message_one:"Möchtest du diese Konversation wirklich löschen? Dadurch wird der gesamte Konversationsverlauf gelöscht.",message_other:"Möchtest du wirklich alle {{count}} Konversationen löschen? Dadurch wird der gesamte Konversationsverlauf gelöscht.",confirmText:"Alle leeren"}},n={textarea:{ariaLabel:"Nachrichteneingabe"},skillsHint:{ariaLabel:"Verfügbare Skills anzeigen (oder einen Schrägstrich eingeben)",title:"Skill verwenden",text:"Skills"},selectedSkill:{removeAriaLabel:"Skill entfernen"},fileUpload:{attachAriaLabel:"Dateien anhängen",titleNotSupported:"Dateiupload wird von diesem Adapter nicht unterstützt",titleLimitPerConversation:"Maximal {{count}} Dateien in dieser Konversation erreicht. Starte einen neuen Chat, um weitere hochzuladen.",titleLimitWorkspace:"Arbeitsbereichslimit von insgesamt {{count}} Dateien erreicht. Entferne zuerst Dateien aus anderen Konversationen.",titleUploading:"Dateien werden hochgeladen. Bitte warten...",titleAttached:"{{count}} Datei(en) angehängt"},voiceOutput:{titleEnabled:"Sprachantworten aktiviert - Zum Deaktivieren klicken",titleDisabled:"Sprachantworten aktivieren (Text-zu-Sprache)",ariaLabelEnabled:"Sprachantworten deaktivieren",ariaLabelDisabled:"Sprachantworten aktivieren"},voiceInput:{titleUploading:"Dateien werden hochgeladen. Bitte warten...",titleListening:"Aufnahme stoppen",titleDisabled:"Spracheingabe starten",ariaLabelListening:"Aufnahme stoppen",ariaLabelDisabled:"Spracheingabe starten"},agentInfo:{title:"Über diesen Agenten",ariaLabel:"Über diesen Agenten"},submit:{title:"Nachricht senden",ariaLabel:"Nachricht senden"},stop:{title:"Generierung stoppen",ariaLabel:"Generierung stoppen"},attachedFile:{uploadingStatus:"Wird hochgeladen...",processingStatus:"Wird verarbeitet...",failedStatus:"Fehlgeschlagen",removeTitleFailed:"Ausblenden",removeTitleNormal:"Datei entfernen"},uploadPanel:{headingAttach:"Dateien anhängen",headingUploading:"Dateien werden hochgeladen",closeTitle:"Schließen"},uploadProgress:{statusUploading:"Wird hochgeladen",statusProcessing:"Wird verarbeitet",statusCompleted:"Fertig",statusPending:"Ausstehend"},listeningIndicator:"Hört zu...",fileDelete:{title:"Datei entfernen",message:'Möchtest du "{{filename}}" wirklich entfernen? Dadurch wird die Datei sowohl vom Server als auch aus dieser Konversation gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.',confirmText:"Entfernen"},agentInfoModal:{title:"Über diesen Agenten",closeAriaLabel:"Schließen",confirmButton:"Verstanden"},placeholder:{filesUploading:"Dateien werden hochgeladen, bitte warten...",messageOrbit:"Nachricht an ORBIT senden oder Dateien hier ablegen",guestLimitTotal:"Gastlimit von {{count}} Nachrichten erreicht. Melde dich für höhere Limits an.",workspaceLimitTotal:"Arbeitsbereichslimit von {{count}} Nachrichten erreicht. Lösche oder archiviere alte Konversationen, um fortzufahren.",guestLimitPerConversation:"Gastlimit von {{count}} Nachrichten erreicht. Melde dich für höhere Limits an.",conversationLimitReached:"Dieser Chat hat das Limit von {{count}} Nachrichten erreicht. Starte eine neue Konversation, um fortzufahren."},limitWarning:{guestTotalMessages:"Gastlimit von insgesamt {{count}} Nachrichten erreicht. Melde dich für höhere Limits an oder lösche Konversationen, um neu zu beginnen.",workspaceTotalMessages:"Arbeitsbereichslimit von insgesamt {{count}} Nachrichten erreicht. Lösche oder exportiere ältere Konversationen, um fortzufahren.",guestPerConversation:"Gastlimit von {{count}} Nachrichten pro Konversation erreicht. Melde dich für höhere Limits an oder lösche Konversationen, um neu zu beginnen.",conversationLimitReached:"Diese Konversation hat das Limit von {{count}} Nachrichten erreicht. Starte eine neue Konversation, um weiter zu chatten."},signInPrompt:{button:"Für höhere Limits anmelden",message:"Melde dich an, um höhere Nachrichtenlimits und mehr Konversationen freizuschalten."},autocompletePanel:{ariaLabel:"Autocomplete-Vorschläge"},uploadSuccess:{single:'Datei "{{filename}}" erfolgreich hochgeladen',multiple:"{{count}} Dateien erfolgreich hochgeladen"},conversationNotFoundShort:"Konversation nicht gefunden. Bitte wähle zuerst eine Konversation aus.",fileRemoveFailed:"Datei konnte nicht entfernt werden",fileProcessingFailedTitle:"Dateiverarbeitung fehlgeschlagen"},r={signOutButton:{title:"Abmelden",ariaLabel:"Abmelden"}},s={heading:"Anmelden für mehr"},l={statusBadge:"Dienst pausiert",heading:"Vorübergehend nicht verfügbar",retryButton:"Erneut versuchen"},c={loadingLabel:"Wird geleert..."},d={homeLinkAriaLabel:"Zur Startseite",logoAlt:"Logo",navLinksAriaLabel:"Header-Links"},u={navLinksAriaLabel:"Footer-Links"},p={configureMessage:"Konfiguriere diesen Agenten, um seine Funktionen zu sehen.",startConversationAriaLabel:"Konversation mit {{name}} starten"},g={codeBlock:{copied:"Kopiert!",copyTitle:"Code kopieren",copyAriaLabel:"Code in die Zwischenablage kopieren",copyLabel:"Kopieren",loadingRenderer:"Renderer wird geladen..."},diagram:{copyCodeAriaLabel:"Diagrammcode in die Zwischenablage kopieren",exportPngTitle:"Als PNG exportieren",exportPngAriaLabel:"Diagramm als PNG-Bild exportieren",errorTitle:"Mermaid-Diagrammfehler"},music:{copyNotationAriaLabel:"ABC-Notation in die Zwischenablage kopieren",exportPngTitle:"Als PNG exportieren",exportPngAriaLabel:"Musiknotation als PNG-Bild exportieren",rendering:"Notation wird gerendert..."},svg:{copyCodeAriaLabel:"SVG-Code in die Zwischenablage kopieren",exportPngTitle:"Als PNG exportieren",exportPngAriaLabel:"SVG als PNG-Bild exportieren"},chart:{legendAriaLabel:"Diagrammlegende",copyCodeAriaLabel:"Diagrammcode in die Zwischenablage kopieren",exportPngTitle:"Als PNG exportieren",exportPngAriaLabel:"Diagramm als PNG-Bild exportieren",errorTitle:"Diagramm-Renderfehler",loadingAriaLabel:"Diagramm wird geladen",showRawSource:"Rohquelle anzeigen"}},m={defaultLabel:"Adapter",selectAnAgent:"Agent auswählen",loadingAgents:"Agenten werden geladen…",errorLoadingAgents:"Fehler beim Laden der Agenten",noAgentsAvailable:"Keine Agenten verfügbar",failedToLoad:"Adapter konnten nicht geladen werden. Bitte überprüfe deine Verbindung."},h={searchPlaceholder:"Agenten suchen",clearSearchAriaLabel:"Suche löschen",noAgentsAvailable:"Noch sind keine Agenten verfügbar. Konfiguriere Adapter in deinen Middleware-Einstellungen, um fortzufahren.",noSearchResults:"Keine Agenten entsprechen deiner Suche.",unableToLoad:"Agenten können derzeit nicht geladen werden."},v={selectBeforeUpload:"Bitte wähle oder erstelle eine Konversation, bevor du Dateien hochlädst.",conversationNotFound:"Konversation nicht gefunden. Bitte versuche es erneut.",maxFilesPerConversationError:"Maximal {{count}} Dateien pro Konversation erlaubt. Bitte entferne zuerst einige Dateien.",maxFilesGuestLimitMessage:"Du hast das Gastlimit von {{count}} Dateien pro Konversation erreicht. Melde dich an, um mehr Dateien hochzuladen.",maxTotalFilesError:"Maximal {{count}} Dateien insgesamt über alle Konversationen erlaubt. Bitte entferne zuerst einige Dateien aus anderen Konversationen.",maxTotalFilesGuestLimitMessage:"Du hast das Gastlimit von insgesamt {{count}} Dateien erreicht. Melde dich an, um mehr Dateien hochzuladen.",adapterNotConfigured:"Adapter für diese Konversation nicht konfiguriert. Bitte wähle zuerst einen Adapter aus.",disabledAriaLabel:"Dateiupload deaktiviert",enabledAriaLabel:"Dateien hochladen",dragDropText:"Dateien ablegen oder zum Durchsuchen klicken",draggingText:"Dateien hier ablegen",fileTypesAndLimit:"PDF, DOCX, TXT, CSV, Codedateien, Bilder, Audio · max. {{count}} Dateien",otherConversationsLabel:"Andere Konversationen",uploadingStatus:"Wird hochgeladen",processingStatus:"Wird verarbeitet",completedStatus:"Fertig",failedStatus:"Fehlgeschlagen",processingFailedMessage:"Verarbeitung fehlgeschlagen"},b={header:"Dateien ({{count}})",noFilesAttached:"Keine Dateien angehängt",uploadFilesToUse:"Lade Dateien hoch, um sie in dieser Konversation zu verwenden",removeFileTooltip:"Datei entfernen",confirmRemoveTitle:"Datei entfernen",confirmRemoveMessage:'Möchtest du "{{filename}}" wirklich entfernen? Dadurch wird die Datei sowohl vom Server als auch aus dieser Konversation gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.'},L={generatedDocument:"Generiertes Dokument",loadingPreview:"Vorschau wird geladen...",openPreviewTooltip:"Vorschau öffnen",downloadDocumentTooltip:"Dokument herunterladen",noSheetDataFound:"Keine Tabellendaten gefunden.",csvRowsPreviewMessage:"Die ersten 25 von {{count}} Zeilen werden angezeigt — lade die vollständige Datei herunter.",noDataFound:"Keine Daten gefunden.",previewUnavailable:"Für dieses Format ist keine Vorschau verfügbar. Verwende Herunterladen, um es lokal zu öffnen.",previewUnavailableShort:"Vorschau nicht verfügbar"},f={generatedImageTitle:"Generiertes Bild — zum Vergrößern klicken",generatedImageAlt:"Generiertes Bild",downloadImageTooltip:"Bild herunterladen",viewFullSizeTooltip:"In voller Größe anzeigen",showPrompt:"Prompt anzeigen",hidePrompt:"Prompt ausblenden",promptLabel:"Prompt"},A={downloadVideoTooltip:"Video herunterladen",viewFullSizeTooltip:"In voller Größe anzeigen",showPrompt:"Prompt anzeigen",hidePrompt:"Prompt ausblenden",promptLabel:"Prompt"},S={button:{audioPlayingTitle:"Audio wird abgespielt...",voiceEnabledTitle:"Sprache aktiviert - Zum Deaktivieren klicken",enableVoiceTitle:"Klicken, um Sprachantworten zu aktivieren",playingLabel:"Wird abgespielt...",voiceOnLabel:"Sprache an",enableVoiceLabel:"Sprache aktivieren"},player:{audioFileTooLargePlaceholder:"Audiodatei zu groß ({{sizeMB}} MB > Limit von {{maxMB}} MB)",largeAudioWarning:"Große Audiodatei ({{sizeMB}} MB) - das Laden kann dauern",invalidBase64Error:"Ungültige Base64-Audiodaten",loadFailureError:"Audio konnte nicht geladen werden",playbackFailureError:"Wiedergabe fehlgeschlagen",pauseTitle:"Pausieren",playTitle:"Abspielen",pauseAriaLabel:"Audio pausieren",playAriaLabel:"Audio abspielen"}},T={searchPlaceholder:"Modelle suchen…",searchAriaLabel:"Modelle suchen",noModelsMatch:'Keine Modelle entsprechen "{{query}}"',modelCountHint:"{{filtered}} von {{total}} Modellen",selectModel:"Modell auswählen"},C={noSkillsAvailable:"Für diesen Adapter sind keine Skills verfügbar.",loadingLabel:"Skills werden geladen...",noMatchingSkills:'Keine passenden Skills für "{{query}}".',noMatchingSkillsGeneric:"Keine passenden Skills.",listboxLabel:"Verfügbare Skills"},P={edit:{willRegenerateHint:"Antwort wird neu generiert"},copyImageLabel:"Bild in die Zwischenablage kopieren",copyLabel:"In die Zwischenablage kopieren",feedback:{good:"Gute Antwort",poor:"Schwache Antwort",thanks:"Danke!"},editAriaLabel:"Nachricht bearbeiten",regenerateTitle:"Antwort neu generieren",regenerateAriaLabel:"Antwort neu generieren",thread:{continueDiscussionTitle:"Diese Diskussion mit dem Kontext der aktuellen Antwort fortsetzen",continueDiscussionAriaLabel:"Diese Diskussion mit dem Kontext der aktuellen Antwort fortsetzen",continueLabel:"Fortsetzen",replyCount_one:"{{count}} Antwort",replyCount_other:"{{count}} Antworten",clearTitle:"Antworten leeren",clearAriaLabel:"Antworten leeren",hideRepliesAriaLabel:"Antworten ausblenden",hideRepliesLabel:"Antworten ausblenden",placeholder:"Im Thread antworten...",skillsHint:"Skill verwenden",skillsHintAriaLabel:"Verfügbare Skills anzeigen (oder einen Schrägstrich eingeben)",removeSkillAriaLabel:"Thread-Skill entfernen",sendMessageTitle:"Thread-Nachricht senden",selectModelTitle:"Modell für diesen Thread auswählen",limitReachedGuest:"Du hast das Gastlimit von {{count}} Nachrichten pro Thread erreicht. Melde dich an, um diesen Thread fortzusetzen.",limitReachedUser:"Dieser Thread hat das Limit von {{count}} Nachrichten erreicht. Starte eine neue Konversation für weitere Nachfragen.",signInForHigherLimits:"Für höhere Limits anmelden",signInPromptMessage:"Melde dich an, um höhere Nachrichtenlimits freizuschalten und diesen Thread fortzusetzen."},confirmation:{clearRepliesTitle:"Antworten leeren",clearRepliesMessage:"Möchtest du diese Antworten wirklich leeren? Dadurch wird der untergeordnete Thread im Backend entfernt, ohne die Hauptkonversation zu löschen."}},w={emptyStateHeading:"Deine Nachrichten werden hier angezeigt.",emptyStateSubheading:"Starte die Konversation, indem du unten einen Prompt sendest."},k={browserNotSupported:"Spracherkennung wird in diesem Browser nicht unterstützt. Bitte versuche es mit Chrome, Edge oder Safari.",error:{noSpeech:"Keine Sprache erkannt. Bitte versuche es erneut.",audioCapture:"Mikrofonzugriff verweigert. Bitte erlaube den Mikrofonzugriff und versuche es erneut.",notAllowed:"Mikrofonzugriff nicht erlaubt. Bitte aktiviere die Mikrofonberechtigungen.",network:"Netzwerkfehler aufgetreten. Bitte überprüfe deine Verbindung.",generic:"Spracherkennungsfehler: {{error}}",startFailed:"Spracherkennung konnte nicht gestartet werden. Bitte versuche es erneut."}},y={error:{singleAdapterMissing:"Der Einzeladaptermodus erfordert, dass agentMode.defaultAdapterId mit einer Adapter-ID in orbitchat.yaml übereinstimmt.",configurationFailed:"Dieser Agent konnte nicht konfiguriert werden.",authenticationFailed:"Wir konnten diesen Agenten nicht laden. Er existiert möglicherweise nicht oder du hast keinen Zugriff darauf.",notFound:"Dieser Agent wurde auf dem Server nicht gefunden. Bitte wähle einen anderen Agenten aus.",loadFailed:"Die Agentenübersicht kann derzeit nicht geladen werden."}},Ii={common:e,app:a,chatInterface:i,settings:t,sidebar:o,messageInput:n,authStatus:r,loginPrompt:s,outOfService:l,confirmationModal:c,appHeader:d,appFooter:u,agentCard:p,markdown:g,adapterSelector:m,agentSelectionList:h,fileUpload:v,fileList:b,documentDisplay:L,imageDisplay:f,videoDisplay:A,audio:S,modelPicker:T,skillPicker:C,message:P,messageList:w,voice:k,agent:y},D={cancel:"Cancel",close:"Close",confirm:"Confirm",delete:"Delete",remove:"Remove",clear:"Clear",send:"Send",signIn:"Sign in",logOut:"Log out",download:"Download"},M={sidebar:{openAriaLabel:"Open sidebar",openTitle:"Open sidebar"},menu:{closeAriaLabel:"Close menu"}},F={workspace:{ariaLabel:"Chat workspace"},error:{dismissAriaLabel:"Dismiss error"},mobile:{chatsButton:"Chats",openChatsMenuAriaLabel:"Open conversations menu",settingsButton:"Settings",openSettingsAriaLabel:"Open settings"},settings:{ariaLabel:"Settings",title:"Settings"},changeAgent:{button:"Change Agent",titleEnabled:"Switch to a different agent before starting this conversation",titleDisabled:"Agent cannot be changed after the conversation has started"},newConversation:{button:"New Conversation",tooltipCanStart:"Start a new conversation",tooltipGuestLimited:"Guest conversation limit reached. Sign in for more conversations.",tooltipCannotStart:"Finish your current conversation before starting a new one."},empty:{configuringAgent:"Configuring your agent…"},newChatTitle:"New Chat",updatedAt:"Updated {{time}}",docked:{placeholder:"Start a new topic..."}},x={dialog:{closeOverlayAriaLabel:"Close settings overlay",title:"Settings",closeButtonAriaLabel:"Close settings"},appearance:{heading:"Appearance",themeLabel:"Theme",themeLight:"Light",themeDark:"Dark",themeSystem:"System"},language:{label:"Language"},chat:{heading:"Chat Preferences"},soundEffects:{label:"Sound Effects",description:"Play sounds for notifications and events",toggleAriaLabel:"Toggle sound effects"},dataManagement:{heading:"Data Management",description:"Clear all application data including conversations, and personalized settings."},reset:{button:"Reset Application",confirmTitle:"Reset application data?",confirmMessage:"This removes everything stored on this device and reloads the app.",confirmButton:"Reset"}},E={selectAgent:{title:"Select an Agent"},deleteAllConversations:{title:"Delete all conversations",button:"Delete Conversations"},navAriaLabel:"Conversation sidebar",adapterConfigureFailed:"Failed to configure adapter",collapse:{ariaLabel:"Close sidebar",title:"Close sidebar"},search:{ariaLabel:"Search conversations",placeholder:"Search Conversations",clearAriaLabel:"Clear search"},resultsNone:"No results",results_one:"{{count}} result",results_other:"{{count}} results",conversations:{ariaLabel:"Conversations"},timeGroups:{today:"Today",yesterday:"Yesterday",thisWeek:"This Week",thisMonth:"This Month",earlier:"Earlier"},conversationCard:{openAriaLabel:"Open conversation: {{title}}",editAriaLabel:"Rename conversation: {{title}}",deleteAriaLabel:"Delete conversation: {{title}}",editInputAriaLabel:"Edit conversation title"},deleteConfirm:{title:"Delete Conversation",message:'Are you sure you want to delete "{{title}}"? This will clear the conversation history.',confirmText:"Delete"},clearAllConfirm:{title:"Clear All Conversations",message_one:"Are you sure you want to delete this conversation? This will clear all conversation history.",message_other:"Are you sure you want to delete all {{count}} conversations? This will clear all conversation history.",confirmText:"Clear All"}},z={textarea:{ariaLabel:"Message input"},skillsHint:{ariaLabel:"Show available skills (or type a forward slash)",title:"Use a skill",text:"Skills"},selectedSkill:{removeAriaLabel:"Remove skill"},fileUpload:{attachAriaLabel:"Attach files",titleNotSupported:"File upload not supported by this adapter",titleLimitPerConversation:"Maximum of {{count}} files reached in this conversation. Start a new chat to upload more.",titleLimitWorkspace:"Workspace limit of {{count}} total files reached. Remove files from other conversations first.",titleUploading:"Files are uploading. Please wait...",titleAttached:"{{count}} file(s) attached"},voiceOutput:{titleEnabled:"Voice responses enabled - Click to disable",titleDisabled:"Enable voice responses (text-to-speech)",ariaLabelEnabled:"Disable voice responses",ariaLabelDisabled:"Enable voice responses"},voiceInput:{titleUploading:"Files are uploading. Please wait...",titleListening:"Stop recording",titleDisabled:"Start voice input",ariaLabelListening:"Stop recording",ariaLabelDisabled:"Start voice input"},agentInfo:{title:"About this agent",ariaLabel:"About this agent"},submit:{title:"Send message",ariaLabel:"Send message"},stop:{title:"Stop generating",ariaLabel:"Stop generating"},attachedFile:{uploadingStatus:"Uploading...",processingStatus:"Processing...",failedStatus:"Failed",removeTitleFailed:"Dismiss",removeTitleNormal:"Remove file"},uploadPanel:{headingAttach:"Attach files",headingUploading:"Uploading files",closeTitle:"Close"},uploadProgress:{statusUploading:"Uploading",statusProcessing:"Processing",statusCompleted:"Done",statusPending:"Pending"},listeningIndicator:"Listening...",fileDelete:{title:"Remove File",message:'Are you sure you want to remove "{{filename}}"? This will delete the file from both the server and this conversation. This action cannot be undone.',confirmText:"Remove"},agentInfoModal:{title:"About this agent",closeAriaLabel:"Close",confirmButton:"Got it"},placeholder:{filesUploading:"Files are uploading, please wait...",messageOrbit:"Message ORBIT or drop files here",guestLimitTotal:"Guest limit of {{count}} messages reached. Sign in for higher limits.",workspaceLimitTotal:"Workspace limit of {{count}} messages reached. Delete or archive old conversations to continue.",guestLimitPerConversation:"Guest limit of {{count}} messages reached. Sign in for higher limits.",conversationLimitReached:"This chat hit the {{count}} message limit. Start a new conversation to continue."},limitWarning:{guestTotalMessages:"Guest limit of {{count}} total messages reached. Sign in for higher limits, or delete conversations to start over.",workspaceTotalMessages:"Workspace limit of {{count}} total messages reached. Delete or export older conversations to continue.",guestPerConversation:"Guest limit of {{count}} messages per conversation reached. Sign in for higher limits, or delete conversations to start over.",conversationLimitReached:"This conversation reached the {{count}} message limit. Start a new conversation to keep chatting."},signInPrompt:{button:"Sign in for higher limits",message:"Sign in to unlock higher message limits and more conversations."},autocompletePanel:{ariaLabel:"Autocomplete suggestions"},uploadSuccess:{single:'File "{{filename}}" uploaded successfully',multiple:"{{count}} files uploaded successfully"},conversationNotFoundShort:"Conversation not found. Please select a conversation first.",fileRemoveFailed:"Failed to remove file",fileProcessingFailedTitle:"File processing failed"},I={signOutButton:{title:"Log out",ariaLabel:"Log out"}},R={heading:"Sign in for more"},N={statusBadge:"Service paused",heading:"Temporarily unavailable",retryButton:"Try again"},B={loadingLabel:"Clearing..."},$={homeLinkAriaLabel:"Go to home page",logoAlt:"Logo",navLinksAriaLabel:"Header links"},G={navLinksAriaLabel:"Footer links"},q={configureMessage:"Configure this agent to see its capabilities.",startConversationAriaLabel:"Start conversation with {{name}}"},U={codeBlock:{copied:"Copied!",copyTitle:"Copy code",copyAriaLabel:"Copy code to clipboard",copyLabel:"Copy",loadingRenderer:"Loading renderer..."},diagram:{copyCodeAriaLabel:"Copy diagram code to clipboard",exportPngTitle:"Export as PNG",exportPngAriaLabel:"Export diagram as PNG image",errorTitle:"Mermaid Diagram Error"},music:{copyNotationAriaLabel:"Copy ABC notation to clipboard",exportPngTitle:"Export as PNG",exportPngAriaLabel:"Export music notation as PNG image",rendering:"Rendering notation..."},svg:{copyCodeAriaLabel:"Copy SVG code to clipboard",exportPngTitle:"Export as PNG",exportPngAriaLabel:"Export SVG as PNG image"},chart:{legendAriaLabel:"Chart legend",copyCodeAriaLabel:"Copy chart code to clipboard",exportPngTitle:"Export as PNG",exportPngAriaLabel:"Export chart as PNG image",errorTitle:"Chart Rendering Error",loadingAriaLabel:"Loading chart",showRawSource:"Show raw source"}},O={defaultLabel:"Adapter",selectAnAgent:"Select an agent",loadingAgents:"Loading agents…",errorLoadingAgents:"Error loading agents",noAgentsAvailable:"No agents available",failedToLoad:"Failed to load adapters. Please check your connection."},V={searchPlaceholder:"Search agents",clearSearchAriaLabel:"Clear search",noAgentsAvailable:"No agents are available yet. Configure adapters in your middleware settings to continue.",noSearchResults:"No agents match your search.",unableToLoad:"Unable to load agents right now."},H={selectBeforeUpload:"Please select or create a conversation before uploading files.",conversationNotFound:"Conversation not found. Please try again.",maxFilesPerConversationError:"Maximum {{count}} files allowed per conversation. Please remove some files first.",maxFilesGuestLimitMessage:"You've reached the guest limit of {{count}} files per conversation. Sign in to upload more files.",maxTotalFilesError:"Maximum {{count}} total files allowed across all conversations. Please remove some files from other conversations first.",maxTotalFilesGuestLimitMessage:"You've reached the guest limit of {{count}} total files. Sign in to upload more files.",adapterNotConfigured:"Adapter not configured for this conversation. Please select an adapter first.",disabledAriaLabel:"File upload disabled",enabledAriaLabel:"Upload files",dragDropText:"Drop files or click to browse",draggingText:"Drop files here",fileTypesAndLimit:"PDF, DOCX, TXT, CSV, code files, images, audio · max {{count}} files",otherConversationsLabel:"Other conversations",uploadingStatus:"Uploading",processingStatus:"Processing",completedStatus:"Done",failedStatus:"Failed",processingFailedMessage:"Processing failed"},K={header:"Files ({{count}})",noFilesAttached:"No files attached",uploadFilesToUse:"Upload files to use them in this conversation",removeFileTooltip:"Remove file",confirmRemoveTitle:"Remove File",confirmRemoveMessage:'Are you sure you want to remove "{{filename}}"? This will delete the file from both the server and this conversation. This action cannot be undone.'},j={generatedDocument:"Generated document",loadingPreview:"Loading preview...",openPreviewTooltip:"Open preview",downloadDocumentTooltip:"Download document",noSheetDataFound:"No sheet data found.",csvRowsPreviewMessage:"Showing first 25 of {{count}} rows — download for the full file.",noDataFound:"No data found.",previewUnavailable:"Preview is not available for this format. Use download to open it locally.",previewUnavailableShort:"Preview unavailable"},W={generatedImageTitle:"Generated image — click to enlarge",generatedImageAlt:"Generated image",downloadImageTooltip:"Download image",viewFullSizeTooltip:"View full size",showPrompt:"Show prompt",hidePrompt:"Hide prompt",promptLabel:"Prompt"},_={downloadVideoTooltip:"Download video",viewFullSizeTooltip:"View full size",showPrompt:"Show prompt",hidePrompt:"Hide prompt",promptLabel:"Prompt"},X={button:{audioPlayingTitle:"Audio playing...",voiceEnabledTitle:"Voice enabled - Click to disable",enableVoiceTitle:"Click to enable voice responses",playingLabel:"Playing...",voiceOnLabel:"Voice On",enableVoiceLabel:"Enable Voice"},player:{audioFileTooLargePlaceholder:"Audio file too large ({{sizeMB}}MB > {{maxMB}}MB limit)",largeAudioWarning:"Large audio file ({{sizeMB}}MB) - may take time to load",invalidBase64Error:"Invalid base64 audio data",loadFailureError:"Failed to load audio",playbackFailureError:"Playback failed",pauseTitle:"Pause",playTitle:"Play",pauseAriaLabel:"Pause audio",playAriaLabel:"Play audio"}},Z={searchPlaceholder:"Search models…",searchAriaLabel:"Search models",noModelsMatch:'No models match "{{query}}"',modelCountHint:"{{filtered}} of {{total}} models",selectModel:"Select model"},Q={noSkillsAvailable:"No skills available for this adapter.",loadingLabel:"Loading skills...",noMatchingSkills:'No matching skills for "{{query}}".',noMatchingSkillsGeneric:"No matching skills.",listboxLabel:"Available skills"},Y={edit:{willRegenerateHint:"Will regenerate response"},copyImageLabel:"Copy image to clipboard",copyLabel:"Copy to clipboard",feedback:{good:"Good response",poor:"Poor response",thanks:"Thanks!"},editAriaLabel:"Edit message",regenerateTitle:"Regenerate response",regenerateAriaLabel:"Regenerate response",thread:{continueDiscussionTitle:"Continue this discussion with the current answer's context",continueDiscussionAriaLabel:"Continue this discussion with the current answer's context",continueLabel:"Continue",replyCount_one:"{{count}} reply",replyCount_other:"{{count}} replies",clearTitle:"Clear replies",clearAriaLabel:"Clear replies",hideRepliesAriaLabel:"Hide replies",hideRepliesLabel:"Hide replies",placeholder:"Reply in thread...",skillsHint:"Use a skill",skillsHintAriaLabel:"Show available skills (or type a forward slash)",removeSkillAriaLabel:"Remove thread skill",sendMessageTitle:"Send thread message",selectModelTitle:"Select model for this thread",limitReachedGuest:"You've reached the guest limit of {{count}} messages per thread. Sign in to continue this thread.",limitReachedUser:"This thread reached the {{count}} message limit. Start a new conversation for more follow-ups.",signInForHigherLimits:"Sign in for higher limits",signInPromptMessage:"Sign in to unlock higher message limits and continue this thread."},confirmation:{clearRepliesTitle:"Clear Replies",clearRepliesMessage:"Are you sure you want to clear these replies? This removes the child thread from the backend without deleting the main conversation."}},J={emptyStateHeading:"Your messages will appear here.",emptyStateSubheading:"Start the conversation by sending a prompt below."},ee={browserNotSupported:"Speech recognition is not supported in this browser. Please try Chrome, Edge, or Safari.",error:{noSpeech:"No speech detected. Please try again.",audioCapture:"Microphone access denied. Please allow microphone access and try again.",notAllowed:"Microphone access not allowed. Please enable microphone permissions.",network:"Network error occurred. Please check your connection.",generic:"Speech recognition error: {{error}}",startFailed:"Failed to start speech recognition. Please try again."}},ae={error:{singleAdapterMissing:"Single adapter mode requires agentMode.defaultAdapterId to match an adapter id in orbitchat.yaml.",configurationFailed:"Unable to configure this agent.",authenticationFailed:"We couldn't load this agent. It may not exist or you might not have access to it.",notFound:"This agent was not found on the server. Please pick another agent.",loadFailed:"Unable to load agent overview right now."}},Ri={common:D,app:M,chatInterface:F,settings:x,sidebar:E,messageInput:z,authStatus:I,loginPrompt:R,outOfService:N,confirmationModal:B,appHeader:$,appFooter:G,agentCard:q,markdown:U,adapterSelector:O,agentSelectionList:V,fileUpload:H,fileList:K,documentDisplay:j,imageDisplay:W,videoDisplay:_,audio:X,modelPicker:Z,skillPicker:Q,message:Y,messageList:J,voice:ee,agent:ae},ie={cancel:"Cancelar",close:"Cerrar",confirm:"Confirmar",delete:"Eliminar",remove:"Quitar",clear:"Borrar",send:"Enviar",signIn:"Iniciar sesión",logOut:"Cerrar sesión",download:"Descargar"},te={sidebar:{openAriaLabel:"Abrir barra lateral",openTitle:"Abrir barra lateral"},menu:{closeAriaLabel:"Cerrar menú"}},oe={workspace:{ariaLabel:"Espacio de chat"},error:{dismissAriaLabel:"Descartar error"},mobile:{chatsButton:"Chats",openChatsMenuAriaLabel:"Abrir menú de conversaciones",settingsButton:"Ajustes",openSettingsAriaLabel:"Abrir ajustes"},settings:{ariaLabel:"Ajustes",title:"Ajustes"},changeAgent:{button:"Cambiar agente",titleEnabled:"Cambia a otro agente antes de iniciar esta conversación",titleDisabled:"El agente no se puede cambiar después de iniciar la conversación"},newConversation:{button:"Nueva conversación",tooltipCanStart:"Iniciar una nueva conversación",tooltipGuestLimited:"Se alcanzó el límite de conversaciones de invitado. Inicia sesión para tener más conversaciones.",tooltipCannotStart:"Termina tu conversación actual antes de iniciar una nueva."},empty:{configuringAgent:"Configurando tu agente…"},newChatTitle:"Nuevo chat",updatedAt:"Actualizado {{time}}",docked:{placeholder:"Iniciar un tema nuevo..."}},ne={dialog:{closeOverlayAriaLabel:"Cerrar superposición de ajustes",title:"Ajustes",closeButtonAriaLabel:"Cerrar ajustes"},appearance:{heading:"Apariencia",themeLabel:"Tema",themeLight:"Claro",themeDark:"Oscuro",themeSystem:"Sistema"},language:{label:"Idioma"},chat:{heading:"Preferencias de chat"},soundEffects:{label:"Efectos de sonido",description:"Reproducir sonidos para notificaciones y eventos",toggleAriaLabel:"Activar o desactivar efectos de sonido"},dataManagement:{heading:"Gestión de datos",description:"Borrar todos los datos de la aplicación, incluidas conversaciones y ajustes personalizados."},reset:{button:"Restablecer aplicación",confirmTitle:"¿Restablecer los datos de la aplicación?",confirmMessage:"Esto elimina todo lo almacenado en este dispositivo y vuelve a cargar la aplicación.",confirmButton:"Restablecer"}},re={selectAgent:{title:"Seleccionar un agente"},deleteAllConversations:{title:"Eliminar todas las conversaciones",button:"Eliminar conversaciones"},navAriaLabel:"Barra lateral de conversaciones",adapterConfigureFailed:"No se pudo configurar el adaptador",collapse:{ariaLabel:"Cerrar barra lateral",title:"Cerrar barra lateral"},search:{ariaLabel:"Buscar conversaciones",placeholder:"Buscar conversaciones",clearAriaLabel:"Borrar búsqueda"},resultsNone:"Sin resultados",results_one:"{{count}} resultado",results_other:"{{count}} resultados",conversations:{ariaLabel:"Conversaciones"},timeGroups:{today:"Hoy",yesterday:"Ayer",thisWeek:"Esta semana",thisMonth:"Este mes",earlier:"Anterior"},conversationCard:{openAriaLabel:"Abrir conversación: {{title}}",editAriaLabel:"Renombrar conversación: {{title}}",deleteAriaLabel:"Eliminar conversación: {{title}}",editInputAriaLabel:"Editar título de la conversación"},deleteConfirm:{title:"Eliminar conversación",message:'¿Seguro que quieres eliminar "{{title}}"? Esto borrará el historial de la conversación.',confirmText:"Eliminar"},clearAllConfirm:{title:"Borrar todas las conversaciones",message_one:"¿Seguro que quieres eliminar esta conversación? Esto borrará todo el historial de conversaciones.",message_other:"¿Seguro que quieres eliminar las {{count}} conversaciones? Esto borrará todo el historial de conversaciones.",confirmText:"Borrar todo"}},se={textarea:{ariaLabel:"Entrada de mensaje"},skillsHint:{ariaLabel:"Mostrar habilidades disponibles (o escribe una barra inclinada)",title:"Usar una habilidad",text:"Habilidades"},selectedSkill:{removeAriaLabel:"Quitar habilidad"},fileUpload:{attachAriaLabel:"Adjuntar archivos",titleNotSupported:"Este adaptador no admite la carga de archivos",titleLimitPerConversation:"Se alcanzó el máximo de {{count}} archivos en esta conversación. Inicia un chat nuevo para cargar más.",titleLimitWorkspace:"Se alcanzó el límite del espacio de trabajo de {{count}} archivos en total. Quita primero archivos de otras conversaciones.",titleUploading:"Los archivos se están cargando. Espera...",titleAttached:"{{count}} archivo(s) adjunto(s)"},voiceOutput:{titleEnabled:"Respuestas de voz activadas - Haz clic para desactivar",titleDisabled:"Activar respuestas de voz (texto a voz)",ariaLabelEnabled:"Desactivar respuestas de voz",ariaLabelDisabled:"Activar respuestas de voz"},voiceInput:{titleUploading:"Los archivos se están cargando. Espera...",titleListening:"Detener grabación",titleDisabled:"Iniciar entrada de voz",ariaLabelListening:"Detener grabación",ariaLabelDisabled:"Iniciar entrada de voz"},agentInfo:{title:"Acerca de este agente",ariaLabel:"Acerca de este agente"},submit:{title:"Enviar mensaje",ariaLabel:"Enviar mensaje"},stop:{title:"Detener generación",ariaLabel:"Detener generación"},attachedFile:{uploadingStatus:"Cargando...",processingStatus:"Procesando...",failedStatus:"Error",removeTitleFailed:"Descartar",removeTitleNormal:"Quitar archivo"},uploadPanel:{headingAttach:"Adjuntar archivos",headingUploading:"Cargando archivos",closeTitle:"Cerrar"},uploadProgress:{statusUploading:"Cargando",statusProcessing:"Procesando",statusCompleted:"Listo",statusPending:"Pendiente"},listeningIndicator:"Escuchando...",fileDelete:{title:"Quitar archivo",message:'¿Seguro que quieres quitar "{{filename}}"? Esto eliminará el archivo tanto del servidor como de esta conversación. Esta acción no se puede deshacer.',confirmText:"Quitar"},agentInfoModal:{title:"Acerca de este agente",closeAriaLabel:"Cerrar",confirmButton:"Entendido"},placeholder:{filesUploading:"Los archivos se están cargando, espera...",messageOrbit:"Envía un mensaje a ORBIT o suelta archivos aquí",guestLimitTotal:"Se alcanzó el límite de invitado de {{count}} mensajes. Inicia sesión para límites más altos.",workspaceLimitTotal:"Se alcanzó el límite del espacio de trabajo de {{count}} mensajes. Elimina o archiva conversaciones antiguas para continuar.",guestLimitPerConversation:"Se alcanzó el límite de invitado de {{count}} mensajes. Inicia sesión para límites más altos.",conversationLimitReached:"Este chat alcanzó el límite de {{count}} mensajes. Inicia una nueva conversación para continuar."},limitWarning:{guestTotalMessages:"Se alcanzó el límite de invitado de {{count}} mensajes en total. Inicia sesión para límites más altos o elimina conversaciones para empezar de nuevo.",workspaceTotalMessages:"Se alcanzó el límite del espacio de trabajo de {{count}} mensajes en total. Elimina o exporta conversaciones antiguas para continuar.",guestPerConversation:"Se alcanzó el límite de invitado de {{count}} mensajes por conversación. Inicia sesión para límites más altos o elimina conversaciones para empezar de nuevo.",conversationLimitReached:"Esta conversación alcanzó el límite de {{count}} mensajes. Inicia una nueva conversación para seguir chateando."},signInPrompt:{button:"Inicia sesión para límites más altos",message:"Inicia sesión para desbloquear límites de mensajes más altos y más conversaciones."},autocompletePanel:{ariaLabel:"Sugerencias de autocompletado"},uploadSuccess:{single:'Archivo "{{filename}}" cargado correctamente',multiple:"{{count}} archivos cargados correctamente"},conversationNotFoundShort:"Conversación no encontrada. Selecciona una conversación primero.",fileRemoveFailed:"No se pudo quitar el archivo",fileProcessingFailedTitle:"Error al procesar el archivo"},le={signOutButton:{title:"Cerrar sesión",ariaLabel:"Cerrar sesión"}},ce={heading:"Inicia sesión para más"},de={statusBadge:"Servicio en pausa",heading:"Temporalmente no disponible",retryButton:"Intentar de nuevo"},ue={loadingLabel:"Borrando..."},pe={homeLinkAriaLabel:"Ir a la página de inicio",logoAlt:"Logo",navLinksAriaLabel:"Enlaces del encabezado"},ge={navLinksAriaLabel:"Enlaces del pie de página"},me={configureMessage:"Configura este agente para ver sus capacidades.",startConversationAriaLabel:"Iniciar conversación con {{name}}"},he={codeBlock:{copied:"¡Copiado!",copyTitle:"Copiar código",copyAriaLabel:"Copiar código al portapapeles",copyLabel:"Copiar",loadingRenderer:"Cargando renderizador..."},diagram:{copyCodeAriaLabel:"Copiar código del diagrama al portapapeles",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar diagrama como imagen PNG",errorTitle:"Error del diagrama Mermaid"},music:{copyNotationAriaLabel:"Copiar notación ABC al portapapeles",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar notación musical como imagen PNG",rendering:"Renderizando notación..."},svg:{copyCodeAriaLabel:"Copiar código SVG al portapapeles",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar SVG como imagen PNG"},chart:{legendAriaLabel:"Leyenda del gráfico",copyCodeAriaLabel:"Copiar código del gráfico al portapapeles",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar gráfico como imagen PNG",errorTitle:"Error al renderizar el gráfico",loadingAriaLabel:"Cargando gráfico",showRawSource:"Mostrar fuente sin procesar"}},ve={defaultLabel:"Adaptador",selectAnAgent:"Seleccionar un agente",loadingAgents:"Cargando agentes…",errorLoadingAgents:"Error al cargar agentes",noAgentsAvailable:"No hay agentes disponibles",failedToLoad:"No se pudieron cargar los adaptadores. Comprueba tu conexión."},be={searchPlaceholder:"Buscar agentes",clearSearchAriaLabel:"Borrar búsqueda",noAgentsAvailable:"Aún no hay agentes disponibles. Configura adaptadores en los ajustes del middleware para continuar.",noSearchResults:"Ningún agente coincide con tu búsqueda.",unableToLoad:"No se pueden cargar los agentes en este momento."},Le={selectBeforeUpload:"Selecciona o crea una conversación antes de cargar archivos.",conversationNotFound:"Conversación no encontrada. Inténtalo de nuevo.",maxFilesPerConversationError:"Máximo de {{count}} archivos permitidos por conversación. Quita algunos archivos primero.",maxFilesGuestLimitMessage:"Alcanzaste el límite de invitado de {{count}} archivos por conversación. Inicia sesión para cargar más archivos.",maxTotalFilesError:"Máximo de {{count}} archivos en total permitidos en todas las conversaciones. Quita primero algunos archivos de otras conversaciones.",maxTotalFilesGuestLimitMessage:"Alcanzaste el límite de invitado de {{count}} archivos en total. Inicia sesión para cargar más archivos.",adapterNotConfigured:"El adaptador no está configurado para esta conversación. Selecciona un adaptador primero.",disabledAriaLabel:"Carga de archivos desactivada",enabledAriaLabel:"Cargar archivos",dragDropText:"Suelta archivos o haz clic para explorar",draggingText:"Suelta los archivos aquí",fileTypesAndLimit:"PDF, DOCX, TXT, CSV, archivos de código, imágenes, audio · máx. {{count}} archivos",otherConversationsLabel:"Otras conversaciones",uploadingStatus:"Cargando",processingStatus:"Procesando",completedStatus:"Listo",failedStatus:"Error",processingFailedMessage:"El procesamiento falló"},fe={header:"Archivos ({{count}})",noFilesAttached:"No hay archivos adjuntos",uploadFilesToUse:"Carga archivos para usarlos en esta conversación",removeFileTooltip:"Quitar archivo",confirmRemoveTitle:"Quitar archivo",confirmRemoveMessage:'¿Seguro que quieres quitar "{{filename}}"? Esto eliminará el archivo tanto del servidor como de esta conversación. Esta acción no se puede deshacer.'},Ae={generatedDocument:"Documento generado",loadingPreview:"Cargando vista previa...",openPreviewTooltip:"Abrir vista previa",downloadDocumentTooltip:"Descargar documento",noSheetDataFound:"No se encontraron datos de hoja.",csvRowsPreviewMessage:"Mostrando las primeras 25 de {{count}} filas; descarga el archivo completo.",noDataFound:"No se encontraron datos.",previewUnavailable:"La vista previa no está disponible para este formato. Usa descargar para abrirlo localmente.",previewUnavailableShort:"Vista previa no disponible"},Se={generatedImageTitle:"Imagen generada; haz clic para ampliar",generatedImageAlt:"Imagen generada",downloadImageTooltip:"Descargar imagen",viewFullSizeTooltip:"Ver tamaño completo",showPrompt:"Mostrar prompt",hidePrompt:"Ocultar prompt",promptLabel:"Prompt"},Te={downloadVideoTooltip:"Descargar video",viewFullSizeTooltip:"Ver tamaño completo",showPrompt:"Mostrar prompt",hidePrompt:"Ocultar prompt",promptLabel:"Prompt"},Ce={button:{audioPlayingTitle:"Audio reproduciéndose...",voiceEnabledTitle:"Voz activada - Haz clic para desactivar",enableVoiceTitle:"Haz clic para activar respuestas de voz",playingLabel:"Reproduciendo...",voiceOnLabel:"Voz activada",enableVoiceLabel:"Activar voz"},player:{audioFileTooLargePlaceholder:"Archivo de audio demasiado grande ({{sizeMB}} MB > límite de {{maxMB}} MB)",largeAudioWarning:"Archivo de audio grande ({{sizeMB}} MB); puede tardar en cargarse",invalidBase64Error:"Datos de audio base64 no válidos",loadFailureError:"No se pudo cargar el audio",playbackFailureError:"Error de reproducción",pauseTitle:"Pausar",playTitle:"Reproducir",pauseAriaLabel:"Pausar audio",playAriaLabel:"Reproducir audio"}},Pe={searchPlaceholder:"Buscar modelos…",searchAriaLabel:"Buscar modelos",noModelsMatch:'Ningún modelo coincide con "{{query}}"',modelCountHint:"{{filtered}} de {{total}} modelos",selectModel:"Seleccionar modelo"},we={noSkillsAvailable:"No hay habilidades disponibles para este adaptador.",loadingLabel:"Cargando habilidades...",noMatchingSkills:'No hay habilidades que coincidan con "{{query}}".',noMatchingSkillsGeneric:"No hay habilidades coincidentes.",listboxLabel:"Habilidades disponibles"},ke={edit:{willRegenerateHint:"Se regenerará la respuesta"},copyImageLabel:"Copiar imagen al portapapeles",copyLabel:"Copiar al portapapeles",feedback:{good:"Buena respuesta",poor:"Mala respuesta",thanks:"¡Gracias!"},editAriaLabel:"Editar mensaje",regenerateTitle:"Regenerar respuesta",regenerateAriaLabel:"Regenerar respuesta",thread:{continueDiscussionTitle:"Continuar esta conversación con el contexto de la respuesta actual",continueDiscussionAriaLabel:"Continuar esta conversación con el contexto de la respuesta actual",continueLabel:"Continuar",replyCount_one:"{{count}} respuesta",replyCount_other:"{{count}} respuestas",clearTitle:"Borrar respuestas",clearAriaLabel:"Borrar respuestas",hideRepliesAriaLabel:"Ocultar respuestas",hideRepliesLabel:"Ocultar respuestas",placeholder:"Responder en el hilo...",skillsHint:"Usar una habilidad",skillsHintAriaLabel:"Mostrar habilidades disponibles (o escribe una barra inclinada)",removeSkillAriaLabel:"Quitar habilidad del hilo",sendMessageTitle:"Enviar mensaje del hilo",selectModelTitle:"Seleccionar modelo para este hilo",limitReachedGuest:"Alcanzaste el límite de invitado de {{count}} mensajes por hilo. Inicia sesión para continuar este hilo.",limitReachedUser:"Este hilo alcanzó el límite de {{count}} mensajes. Inicia una nueva conversación para más seguimientos.",signInForHigherLimits:"Inicia sesión para límites más altos",signInPromptMessage:"Inicia sesión para desbloquear límites de mensajes más altos y continuar este hilo."},confirmation:{clearRepliesTitle:"Borrar respuestas",clearRepliesMessage:"¿Seguro que quieres borrar estas respuestas? Esto elimina el hilo secundario del backend sin eliminar la conversación principal."}},ye={emptyStateHeading:"Tus mensajes aparecerán aquí.",emptyStateSubheading:"Inicia la conversación enviando un prompt abajo."},De={browserNotSupported:"El reconocimiento de voz no es compatible con este navegador. Prueba Chrome, Edge o Safari.",error:{noSpeech:"No se detectó voz. Inténtalo de nuevo.",audioCapture:"Acceso al micrófono denegado. Permite el acceso al micrófono e inténtalo de nuevo.",notAllowed:"Acceso al micrófono no permitido. Activa los permisos del micrófono.",network:"Se produjo un error de red. Comprueba tu conexión.",generic:"Error de reconocimiento de voz: {{error}}",startFailed:"No se pudo iniciar el reconocimiento de voz. Inténtalo de nuevo."}},Me={error:{singleAdapterMissing:"El modo de adaptador único requiere que agentMode.defaultAdapterId coincida con un id de adaptador en orbitchat.yaml.",configurationFailed:"No se pudo configurar este agente.",authenticationFailed:"No pudimos cargar este agente. Puede que no exista o que no tengas acceso.",notFound:"No se encontró este agente en el servidor. Elige otro agente.",loadFailed:"No se puede cargar la descripción del agente en este momento."}},Ni={common:ie,app:te,chatInterface:oe,settings:ne,sidebar:re,messageInput:se,authStatus:le,loginPrompt:ce,outOfService:de,confirmationModal:ue,appHeader:pe,appFooter:ge,agentCard:me,markdown:he,adapterSelector:ve,agentSelectionList:be,fileUpload:Le,fileList:fe,documentDisplay:Ae,imageDisplay:Se,videoDisplay:Te,audio:Ce,modelPicker:Pe,skillPicker:we,message:ke,messageList:ye,voice:De,agent:Me},Fe={cancel:"Annuler",close:"Fermer",confirm:"Confirmer",delete:"Supprimer",remove:"Retirer",clear:"Effacer",send:"Envoyer",signIn:"Se connecter",logOut:"Se déconnecter",download:"Télécharger"},xe={sidebar:{openAriaLabel:"Ouvrir la barre latérale",openTitle:"Ouvrir la barre latérale"},menu:{closeAriaLabel:"Fermer le menu"}},Ee={workspace:{ariaLabel:"Espace de conversation"},error:{dismissAriaLabel:"Ignorer l'erreur"},mobile:{chatsButton:"Discussions",openChatsMenuAriaLabel:"Ouvrir le menu des conversations",settingsButton:"Paramètres",openSettingsAriaLabel:"Ouvrir les paramètres"},settings:{ariaLabel:"Paramètres",title:"Paramètres"},changeAgent:{button:"Changer d'agent",titleEnabled:"Changez d'agent avant de commencer cette conversation",titleDisabled:"L'agent ne peut pas être changé une fois la conversation commencée"},newConversation:{button:"Nouvelle conversation",tooltipCanStart:"Démarrer une nouvelle conversation",tooltipGuestLimited:"Limite de conversations invité atteinte. Connectez-vous pour plus de conversations.",tooltipCannotStart:"Terminez votre conversation actuelle avant d'en démarrer une nouvelle."},empty:{configuringAgent:"Configuration de votre agent…"},newChatTitle:"Nouvelle discussion",updatedAt:"Mis à jour {{time}}",docked:{placeholder:"Démarrer un nouveau sujet..."}},ze={dialog:{closeOverlayAriaLabel:"Fermer la fenêtre des paramètres",title:"Paramètres",closeButtonAriaLabel:"Fermer les paramètres"},appearance:{heading:"Apparence",themeLabel:"Thème",themeLight:"Clair",themeDark:"Sombre",themeSystem:"Système"},language:{label:"Langue"},chat:{heading:"Préférences de discussion"},soundEffects:{label:"Effets sonores",description:"Jouer des sons pour les notifications et les événements",toggleAriaLabel:"Activer ou désactiver les effets sonores"},dataManagement:{heading:"Gestion des données",description:"Effacer toutes les données de l'application, y compris les conversations et les paramètres personnalisés."},reset:{button:"Réinitialiser l'application",confirmTitle:"Réinitialiser les données de l'application?",confirmMessage:"Cette action supprime tout ce qui est stocké sur cet appareil et recharge l'application.",confirmButton:"Réinitialiser"}},Ie={selectAgent:{title:"Sélectionner un agent"},deleteAllConversations:{title:"Supprimer toutes les conversations",button:"Supprimer les conversations"},navAriaLabel:"Barre latérale des conversations",adapterConfigureFailed:"Échec de la configuration de l'adaptateur",collapse:{ariaLabel:"Fermer la barre latérale",title:"Fermer la barre latérale"},search:{ariaLabel:"Rechercher des conversations",placeholder:"Rechercher",clearAriaLabel:"Effacer la recherche"},resultsNone:"Aucun résultat",results_one:"{{count}} résultat",results_other:"{{count}} résultats",conversations:{ariaLabel:"Conversations"},timeGroups:{today:"Aujourd'hui",yesterday:"Hier",thisWeek:"Cette semaine",thisMonth:"Ce mois-ci",earlier:"Plus ancien"},conversationCard:{openAriaLabel:"Ouvrir la conversation : {{title}}",editAriaLabel:"Renommer la conversation : {{title}}",deleteAriaLabel:"Supprimer la conversation : {{title}}",editInputAriaLabel:"Modifier le titre de la conversation"},deleteConfirm:{title:"Supprimer la conversation",message:"Voulez-vous vraiment supprimer « {{title}} »? L'historique de la conversation sera effacé.",confirmText:"Supprimer"},clearAllConfirm:{title:"Supprimer toutes les conversations",message_one:"Voulez-vous vraiment supprimer cette conversation? Tout l'historique de la conversation sera effacé.",message_other:"Voulez-vous vraiment supprimer les {{count}} conversations? Tout l'historique des conversations sera effacé.",confirmText:"Tout effacer"}},Re={textarea:{ariaLabel:"Champ de message"},skillsHint:{ariaLabel:"Afficher les compétences disponibles (ou tapez une barre oblique)",title:"Utiliser une compétence",text:"Compétences"},selectedSkill:{removeAriaLabel:"Retirer la compétence"},fileUpload:{attachAriaLabel:"Joindre des fichiers",titleNotSupported:"Le téléversement de fichiers n'est pas pris en charge par cet adaptateur",titleLimitPerConversation:"Limite de {{count}} fichiers atteinte pour cette conversation. Démarrez une nouvelle discussion pour en téléverser davantage.",titleLimitWorkspace:"Limite de {{count}} fichiers au total atteinte. Retirez des fichiers d'autres conversations d'abord.",titleUploading:"Des fichiers sont en cours de téléversement. Veuillez patienter...",titleAttached:"{{count}} fichier(s) joint(s)"},voiceOutput:{titleEnabled:"Réponses vocales activées - Cliquez pour désactiver",titleDisabled:"Activer les réponses vocales (synthèse vocale)",ariaLabelEnabled:"Désactiver les réponses vocales",ariaLabelDisabled:"Activer les réponses vocales"},voiceInput:{titleUploading:"Des fichiers sont en cours de téléversement. Veuillez patienter...",titleListening:"Arrêter l'enregistrement",titleDisabled:"Démarrer la saisie vocale",ariaLabelListening:"Arrêter l'enregistrement",ariaLabelDisabled:"Démarrer la saisie vocale"},agentInfo:{title:"À propos de cet agent",ariaLabel:"À propos de cet agent"},submit:{title:"Envoyer le message",ariaLabel:"Envoyer le message"},stop:{title:"Arrêter la génération",ariaLabel:"Arrêter la génération"},attachedFile:{uploadingStatus:"Téléversement...",processingStatus:"Traitement...",failedStatus:"Échec",removeTitleFailed:"Ignorer",removeTitleNormal:"Retirer le fichier"},uploadPanel:{headingAttach:"Joindre des fichiers",headingUploading:"Téléversement des fichiers",closeTitle:"Fermer"},uploadProgress:{statusUploading:"Téléversement",statusProcessing:"Traitement",statusCompleted:"Terminé",statusPending:"En attente"},listeningIndicator:"Écoute en cours...",fileDelete:{title:"Retirer le fichier",message:"Voulez-vous vraiment retirer « {{filename}} »? Cela supprimera le fichier du serveur et de cette conversation. Cette action est irréversible.",confirmText:"Retirer"},agentInfoModal:{title:"À propos de cet agent",closeAriaLabel:"Fermer",confirmButton:"Compris"},placeholder:{filesUploading:"Des fichiers sont en cours de téléversement, veuillez patienter...",messageOrbit:"Envoyer un message à ORBIT ou déposer des fichiers ici",guestLimitTotal:"Limite invité de {{count}} messages atteinte. Connectez-vous pour des limites plus élevées.",workspaceLimitTotal:"Limite de {{count}} messages atteinte. Supprimez ou archivez d'anciennes conversations pour continuer.",guestLimitPerConversation:"Limite invité de {{count}} messages atteinte. Connectez-vous pour des limites plus élevées.",conversationLimitReached:"Cette discussion a atteint la limite de {{count}} messages. Démarrez une nouvelle conversation pour continuer."},limitWarning:{guestTotalMessages:"Limite invité de {{count}} messages au total atteinte. Connectez-vous pour des limites plus élevées, ou supprimez des conversations pour repartir à zéro.",workspaceTotalMessages:"Limite de {{count}} messages au total atteinte. Supprimez ou exportez d'anciennes conversations pour continuer.",guestPerConversation:"Limite invité de {{count}} messages par conversation atteinte. Connectez-vous pour des limites plus élevées, ou supprimez des conversations pour repartir à zéro.",conversationLimitReached:"Cette conversation a atteint la limite de {{count}} messages. Démarrez une nouvelle conversation pour continuer à discuter."},signInPrompt:{button:"Se connecter pour des limites plus élevées",message:"Connectez-vous pour débloquer des limites de messages plus élevées et plus de conversations."},autocompletePanel:{ariaLabel:"Suggestions de saisie automatique"},uploadSuccess:{single:"Fichier « {{filename}} » téléversé avec succès",multiple:"{{count}} fichiers téléversés avec succès"},conversationNotFoundShort:"Conversation introuvable. Veuillez sélectionner une conversation d'abord.",fileRemoveFailed:"Échec du retrait du fichier",fileProcessingFailedTitle:"Le traitement du fichier a échoué"},Ne={signOutButton:{title:"Se déconnecter",ariaLabel:"Se déconnecter"}},Be={heading:"Connectez-vous pour en profiter davantage"},$e={statusBadge:"Service suspendu",heading:"Temporairement indisponible",retryButton:"Réessayer"},Ge={loadingLabel:"Effacement en cours..."},qe={homeLinkAriaLabel:"Aller à la page d'accueil",logoAlt:"Logo",navLinksAriaLabel:"Liens d'en-tête"},Ue={navLinksAriaLabel:"Liens de pied de page"},Oe={configureMessage:"Configurez cet agent pour voir ses capacités.",startConversationAriaLabel:"Démarrer une conversation avec {{name}}"},Ve={codeBlock:{copied:"Copié!",copyTitle:"Copier le code",copyAriaLabel:"Copier le code dans le presse-papiers",copyLabel:"Copier",loadingRenderer:"Chargement du moteur de rendu..."},diagram:{copyCodeAriaLabel:"Copier le code du diagramme dans le presse-papiers",exportPngTitle:"Exporter en PNG",exportPngAriaLabel:"Exporter le diagramme en image PNG",errorTitle:"Erreur de diagramme Mermaid"},music:{copyNotationAriaLabel:"Copier la notation ABC dans le presse-papiers",exportPngTitle:"Exporter en PNG",exportPngAriaLabel:"Exporter la notation musicale en image PNG",rendering:"Rendu de la notation..."},svg:{copyCodeAriaLabel:"Copier le code SVG dans le presse-papiers",exportPngTitle:"Exporter en PNG",exportPngAriaLabel:"Exporter le SVG en image PNG"},chart:{legendAriaLabel:"Légende du graphique",copyCodeAriaLabel:"Copier le code du graphique dans le presse-papiers",exportPngTitle:"Exporter en PNG",exportPngAriaLabel:"Exporter le graphique en image PNG",errorTitle:"Erreur de rendu du graphique",loadingAriaLabel:"Chargement du graphique",showRawSource:"Afficher le code source"}},He={defaultLabel:"Adaptateur",selectAnAgent:"Sélectionner un agent",loadingAgents:"Chargement des agents…",errorLoadingAgents:"Erreur lors du chargement des agents",noAgentsAvailable:"Aucun agent disponible",failedToLoad:"Impossible de charger les adaptateurs. Veuillez vérifier votre connexion."},Ke={searchPlaceholder:"Rechercher des agents",clearSearchAriaLabel:"Effacer la recherche",noAgentsAvailable:"Aucun agent n'est disponible pour le moment. Configurez des adaptateurs dans vos paramètres middleware pour continuer.",noSearchResults:"Aucun agent ne correspond à votre recherche.",unableToLoad:"Impossible de charger les agents pour le moment."},je={selectBeforeUpload:"Veuillez sélectionner ou créer une conversation avant de téléverser des fichiers.",conversationNotFound:"Conversation introuvable. Veuillez réessayer.",maxFilesPerConversationError:"Maximum de {{count}} fichiers autorisés par conversation. Veuillez en retirer avant de continuer.",maxFilesGuestLimitMessage:"Vous avez atteint la limite invité de {{count}} fichiers par conversation. Connectez-vous pour téléverser plus de fichiers.",maxTotalFilesError:"Maximum de {{count}} fichiers au total autorisés dans toutes les conversations. Veuillez retirer des fichiers d'autres conversations d'abord.",maxTotalFilesGuestLimitMessage:"Vous avez atteint la limite invité de {{count}} fichiers au total. Connectez-vous pour téléverser plus de fichiers.",adapterNotConfigured:"Aucun adaptateur configuré pour cette conversation. Veuillez sélectionner un adaptateur d'abord.",disabledAriaLabel:"Téléversement de fichiers désactivé",enabledAriaLabel:"Téléverser des fichiers",dragDropText:"Déposez des fichiers ou cliquez pour parcourir",draggingText:"Déposez les fichiers ici",fileTypesAndLimit:"PDF, DOCX, TXT, CSV, fichiers de code, images, audio · max {{count}} fichiers",otherConversationsLabel:"Autres conversations",uploadingStatus:"Téléversement",processingStatus:"Traitement",completedStatus:"Terminé",failedStatus:"Échec",processingFailedMessage:"Le traitement a échoué"},We={header:"Fichiers ({{count}})",noFilesAttached:"Aucun fichier joint",uploadFilesToUse:"Téléversez des fichiers pour les utiliser dans cette conversation",removeFileTooltip:"Retirer le fichier",confirmRemoveTitle:"Retirer le fichier",confirmRemoveMessage:"Voulez-vous vraiment retirer « {{filename}} »? Cela supprimera le fichier du serveur et de cette conversation. Cette action est irréversible."},_e={generatedDocument:"Document généré",loadingPreview:"Chargement de l'aperçu...",openPreviewTooltip:"Ouvrir l'aperçu",downloadDocumentTooltip:"Télécharger le document",noSheetDataFound:"Aucune donnée de feuille trouvée.",csvRowsPreviewMessage:"Affichage des 25 premières lignes sur {{count}} — téléchargez le fichier complet.",noDataFound:"Aucune donnée trouvée.",previewUnavailable:"L'aperçu n'est pas disponible pour ce format. Téléchargez-le pour l'ouvrir localement.",previewUnavailableShort:"Aperçu indisponible"},Xe={generatedImageTitle:"Image générée — cliquez pour agrandir",generatedImageAlt:"Image générée",downloadImageTooltip:"Télécharger l'image",viewFullSizeTooltip:"Afficher en taille réelle",showPrompt:"Afficher l'invite",hidePrompt:"Masquer l'invite",promptLabel:"Invite"},Ze={downloadVideoTooltip:"Télécharger la vidéo",viewFullSizeTooltip:"Afficher en taille réelle",showPrompt:"Afficher l'invite",hidePrompt:"Masquer l'invite",promptLabel:"Invite"},Qe={button:{audioPlayingTitle:"Lecture audio en cours...",voiceEnabledTitle:"Voix activée - Cliquez pour désactiver",enableVoiceTitle:"Cliquez pour activer les réponses vocales",playingLabel:"Lecture en cours...",voiceOnLabel:"Voix activée",enableVoiceLabel:"Activer la voix"},player:{audioFileTooLargePlaceholder:"Fichier audio trop volumineux ({{sizeMB}} Mo > limite de {{maxMB}} Mo)",largeAudioWarning:"Fichier audio volumineux ({{sizeMB}} Mo) - le chargement peut prendre du temps",invalidBase64Error:"Données audio base64 invalides",loadFailureError:"Échec du chargement de l'audio",playbackFailureError:"Échec de la lecture",pauseTitle:"Pause",playTitle:"Lire",pauseAriaLabel:"Mettre l'audio en pause",playAriaLabel:"Lire l'audio"}},Ye={searchPlaceholder:"Rechercher des modèles…",searchAriaLabel:"Rechercher des modèles",noModelsMatch:"Aucun modèle ne correspond à « {{query}} »",modelCountHint:"{{filtered}} sur {{total}} modèles",selectModel:"Sélectionner un modèle"},Je={noSkillsAvailable:"Aucune compétence disponible pour cet adaptateur.",loadingLabel:"Chargement des compétences...",noMatchingSkills:"Aucune compétence ne correspond à « {{query}} ».",noMatchingSkillsGeneric:"Aucune compétence correspondante.",listboxLabel:"Compétences disponibles"},ea={edit:{willRegenerateHint:"La réponse sera régénérée"},copyImageLabel:"Copier l'image dans le presse-papiers",copyLabel:"Copier dans le presse-papiers",feedback:{good:"Bonne réponse",poor:"Réponse insatisfaisante",thanks:"Merci!"},editAriaLabel:"Modifier le message",regenerateTitle:"Régénérer la réponse",regenerateAriaLabel:"Régénérer la réponse",thread:{continueDiscussionTitle:"Poursuivre cette discussion avec le contexte de la réponse actuelle",continueDiscussionAriaLabel:"Poursuivre cette discussion avec le contexte de la réponse actuelle",continueLabel:"Continuer",replyCount_one:"{{count}} réponse",replyCount_other:"{{count}} réponses",clearTitle:"Effacer les réponses",clearAriaLabel:"Effacer les réponses",hideRepliesAriaLabel:"Masquer les réponses",hideRepliesLabel:"Masquer les réponses",placeholder:"Répondre dans le fil...",skillsHint:"Utiliser une compétence",skillsHintAriaLabel:"Afficher les compétences disponibles (ou tapez une barre oblique)",removeSkillAriaLabel:"Retirer la compétence du fil",sendMessageTitle:"Envoyer le message du fil",selectModelTitle:"Sélectionner le modèle pour ce fil",limitReachedGuest:"Vous avez atteint la limite invité de {{count}} messages par fil. Connectez-vous pour continuer ce fil.",limitReachedUser:"Ce fil a atteint la limite de {{count}} messages. Démarrez une nouvelle conversation pour continuer les échanges.",signInForHigherLimits:"Se connecter pour des limites plus élevées",signInPromptMessage:"Connectez-vous pour débloquer des limites de messages plus élevées et continuer ce fil."},confirmation:{clearRepliesTitle:"Effacer les réponses",clearRepliesMessage:"Voulez-vous vraiment effacer ces réponses? Cela supprime le fil enfant du serveur sans supprimer la conversation principale."}},aa={emptyStateHeading:"Vos messages apparaîtront ici.",emptyStateSubheading:"Démarrez la conversation en envoyant un message ci-dessous."},ia={browserNotSupported:"La reconnaissance vocale n'est pas prise en charge par ce navigateur. Veuillez essayer Chrome, Edge ou Safari.",error:{noSpeech:"Aucune parole détectée. Veuillez réessayer.",audioCapture:"Accès au microphone refusé. Veuillez autoriser l'accès au microphone et réessayer.",notAllowed:"Accès au microphone non autorisé. Veuillez activer les autorisations du microphone.",network:"Une erreur réseau s'est produite. Veuillez vérifier votre connexion.",generic:"Erreur de reconnaissance vocale : {{error}}",startFailed:"Impossible de démarrer la reconnaissance vocale. Veuillez réessayer."}},ta={error:{singleAdapterMissing:"Le mode adaptateur unique nécessite que agentMode.defaultAdapterId corresponde à un identifiant d'adaptateur dans orbitchat.yaml.",configurationFailed:"Impossible de configurer cet agent.",authenticationFailed:"Nous n'avons pas pu charger cet agent. Il est possible qu'il n'existe pas ou que vous n'y ayez pas accès.",notFound:"Cet agent n'a pas été trouvé sur le serveur. Veuillez choisir un autre agent.",loadFailed:"Impossible de charger l'aperçu de l'agent pour le moment."}},Bi={common:Fe,app:xe,chatInterface:Ee,settings:ze,sidebar:Ie,messageInput:Re,authStatus:Ne,loginPrompt:Be,outOfService:$e,confirmationModal:Ge,appHeader:qe,appFooter:Ue,agentCard:Oe,markdown:Ve,adapterSelector:He,agentSelectionList:Ke,fileUpload:je,fileList:We,documentDisplay:_e,imageDisplay:Xe,videoDisplay:Ze,audio:Qe,modelPicker:Ye,skillPicker:Je,message:ea,messageList:aa,voice:ia,agent:ta},oa={cancel:"キャンセル",close:"閉じる",confirm:"確認",delete:"削除",remove:"削除",clear:"クリア",send:"送信",signIn:"サインイン",logOut:"ログアウト",download:"ダウンロード"},na={sidebar:{openAriaLabel:"サイドバーを開く",openTitle:"サイドバーを開く"},menu:{closeAriaLabel:"メニューを閉じる"}},ra={workspace:{ariaLabel:"チャットワークスペース"},error:{dismissAriaLabel:"エラーを閉じる"},mobile:{chatsButton:"チャット",openChatsMenuAriaLabel:"会話メニューを開く",settingsButton:"設定",openSettingsAriaLabel:"設定を開く"},settings:{ariaLabel:"設定",title:"設定"},changeAgent:{button:"エージェントを変更",titleEnabled:"この会話を開始する前に別のエージェントに切り替える",titleDisabled:"会話の開始後はエージェントを変更できません"},newConversation:{button:"新しい会話",tooltipCanStart:"新しい会話を開始",tooltipGuestLimited:"ゲストの会話数上限に達しました。サインインすると会話を増やせます。",tooltipCannotStart:"新しい会話を始める前に、現在の会話を完了してください。"},empty:{configuringAgent:"エージェントを設定しています…"},newChatTitle:"新しいチャット",updatedAt:"{{time}}に更新",docked:{placeholder:"新しいトピックを開始..."}},sa={dialog:{closeOverlayAriaLabel:"設定オーバーレイを閉じる",title:"設定",closeButtonAriaLabel:"設定を閉じる"},appearance:{heading:"外観",themeLabel:"テーマ",themeLight:"ライト",themeDark:"ダーク",themeSystem:"システム"},language:{label:"言語"},chat:{heading:"チャット設定"},soundEffects:{label:"効果音",description:"通知やイベントで音を再生する",toggleAriaLabel:"効果音を切り替え"},dataManagement:{heading:"データ管理",description:"会話や個人設定を含むすべてのアプリケーションデータを消去します。"},reset:{button:"アプリケーションをリセット",confirmTitle:"アプリケーションデータをリセットしますか?",confirmMessage:"このデバイスに保存されているすべてのデータを削除し、アプリを再読み込みします。",confirmButton:"リセット"}},la={selectAgent:{title:"エージェントを選択"},deleteAllConversations:{title:"すべての会話を削除",button:"会話を削除"},navAriaLabel:"会話サイドバー",adapterConfigureFailed:"アダプターの設定に失敗しました",collapse:{ariaLabel:"サイドバーを閉じる",title:"サイドバーを閉じる"},search:{ariaLabel:"会話を検索",placeholder:"会話を検索",clearAriaLabel:"検索をクリア"},resultsNone:"結果なし",results_one:"{{count}}件の結果",results_other:"{{count}}件の結果",conversations:{ariaLabel:"会話"},timeGroups:{today:"今日",yesterday:"昨日",thisWeek:"今週",thisMonth:"今月",earlier:"以前"},conversationCard:{openAriaLabel:"会話を開く: {{title}}",editAriaLabel:"会話名を変更: {{title}}",deleteAriaLabel:"会話を削除: {{title}}",editInputAriaLabel:"会話タイトルを編集"},deleteConfirm:{title:"会話を削除",message:'"{{title}}" を削除してもよろしいですか?会話履歴が消去されます。',confirmText:"削除"},clearAllConfirm:{title:"すべての会話をクリア",message_one:"この会話を削除してもよろしいですか?すべての会話履歴が消去されます。",message_other:"{{count}}件の会話をすべて削除してもよろしいですか?すべての会話履歴が消去されます。",confirmText:"すべてクリア"}},ca={textarea:{ariaLabel:"メッセージ入力"},skillsHint:{ariaLabel:"利用可能なスキルを表示(またはスラッシュを入力)",title:"スキルを使用",text:"スキル"},selectedSkill:{removeAriaLabel:"スキルを削除"},fileUpload:{attachAriaLabel:"ファイルを添付",titleNotSupported:"このアダプターはファイルアップロードに対応していません",titleLimitPerConversation:"この会話で最大 {{count}} 個のファイルに達しました。さらにアップロードするには新しいチャットを開始してください。",titleLimitWorkspace:"ワークスペース全体のファイル上限 {{count}} 個に達しました。先に他の会話からファイルを削除してください。",titleUploading:"ファイルをアップロード中です。お待ちください...",titleAttached:"{{count}} 個のファイルを添付済み"},voiceOutput:{titleEnabled:"音声応答が有効です - クリックして無効化",titleDisabled:"音声応答を有効化(テキスト読み上げ)",ariaLabelEnabled:"音声応答を無効化",ariaLabelDisabled:"音声応答を有効化"},voiceInput:{titleUploading:"ファイルをアップロード中です。お待ちください...",titleListening:"録音を停止",titleDisabled:"音声入力を開始",ariaLabelListening:"録音を停止",ariaLabelDisabled:"音声入力を開始"},agentInfo:{title:"このエージェントについて",ariaLabel:"このエージェントについて"},submit:{title:"メッセージを送信",ariaLabel:"メッセージを送信"},stop:{title:"生成を停止",ariaLabel:"生成を停止"},attachedFile:{uploadingStatus:"アップロード中...",processingStatus:"処理中...",failedStatus:"失敗",removeTitleFailed:"閉じる",removeTitleNormal:"ファイルを削除"},uploadPanel:{headingAttach:"ファイルを添付",headingUploading:"ファイルをアップロード中",closeTitle:"閉じる"},uploadProgress:{statusUploading:"アップロード中",statusProcessing:"処理中",statusCompleted:"完了",statusPending:"保留中"},listeningIndicator:"聞き取り中...",fileDelete:{title:"ファイルを削除",message:'"{{filename}}" を削除してもよろしいですか?サーバーとこの会話の両方からファイルが削除されます。この操作は元に戻せません。',confirmText:"削除"},agentInfoModal:{title:"このエージェントについて",closeAriaLabel:"閉じる",confirmButton:"了解"},placeholder:{filesUploading:"ファイルをアップロード中です。お待ちください...",messageOrbit:"ORBIT にメッセージを送るか、ここにファイルをドロップ",guestLimitTotal:"ゲストの {{count}} 件のメッセージ上限に達しました。上限を増やすにはサインインしてください。",workspaceLimitTotal:"ワークスペースの {{count}} 件のメッセージ上限に達しました。続行するには古い会話を削除またはアーカイブしてください。",guestLimitPerConversation:"ゲストの {{count}} 件のメッセージ上限に達しました。上限を増やすにはサインインしてください。",conversationLimitReached:"このチャットは {{count}} 件のメッセージ上限に達しました。続行するには新しい会話を開始してください。"},limitWarning:{guestTotalMessages:"ゲストの合計 {{count}} 件のメッセージ上限に達しました。上限を増やすにはサインインするか、会話を削除してやり直してください。",workspaceTotalMessages:"ワークスペースの合計 {{count}} 件のメッセージ上限に達しました。続行するには古い会話を削除またはエクスポートしてください。",guestPerConversation:"ゲストの会話ごとの {{count}} 件のメッセージ上限に達しました。上限を増やすにはサインインするか、会話を削除してやり直してください。",conversationLimitReached:"この会話は {{count}} 件のメッセージ上限に達しました。チャットを続けるには新しい会話を開始してください。"},signInPrompt:{button:"サインインして上限を増やす",message:"サインインすると、メッセージ上限の引き上げと追加の会話が利用できます。"},autocompletePanel:{ariaLabel:"オートコンプリート候補"},uploadSuccess:{single:'ファイル "{{filename}}" を正常にアップロードしました',multiple:"{{count}} 個のファイルを正常にアップロードしました"},conversationNotFoundShort:"会話が見つかりません。先に会話を選択してください。",fileRemoveFailed:"ファイルの削除に失敗しました",fileProcessingFailedTitle:"ファイル処理に失敗しました"},da={signOutButton:{title:"ログアウト",ariaLabel:"ログアウト"}},ua={heading:"サインインしてさらに利用"},pa={statusBadge:"サービス一時停止中",heading:"一時的に利用できません",retryButton:"再試行"},ga={loadingLabel:"クリア中..."},ma={homeLinkAriaLabel:"ホームページへ移動",logoAlt:"ロゴ",navLinksAriaLabel:"ヘッダーリンク"},ha={navLinksAriaLabel:"フッターリンク"},va={configureMessage:"このエージェントを設定すると機能を確認できます。",startConversationAriaLabel:"{{name}} との会話を開始"},ba={codeBlock:{copied:"コピーしました!",copyTitle:"コードをコピー",copyAriaLabel:"コードをクリップボードにコピー",copyLabel:"コピー",loadingRenderer:"レンダラーを読み込み中..."},diagram:{copyCodeAriaLabel:"図のコードをクリップボードにコピー",exportPngTitle:"PNG としてエクスポート",exportPngAriaLabel:"図を PNG 画像としてエクスポート",errorTitle:"Mermaid 図エラー"},music:{copyNotationAriaLabel:"ABC 記譜をクリップボードにコピー",exportPngTitle:"PNG としてエクスポート",exportPngAriaLabel:"楽譜を PNG 画像としてエクスポート",rendering:"記譜をレンダリング中..."},svg:{copyCodeAriaLabel:"SVG コードをクリップボードにコピー",exportPngTitle:"PNG としてエクスポート",exportPngAriaLabel:"SVG を PNG 画像としてエクスポート"},chart:{legendAriaLabel:"チャートの凡例",copyCodeAriaLabel:"チャートコードをクリップボードにコピー",exportPngTitle:"PNG としてエクスポート",exportPngAriaLabel:"チャートを PNG 画像としてエクスポート",errorTitle:"チャートのレンダリングエラー",loadingAriaLabel:"チャートを読み込み中",showRawSource:"元のソースを表示"}},La={defaultLabel:"アダプター",selectAnAgent:"エージェントを選択",loadingAgents:"エージェントを読み込み中…",errorLoadingAgents:"エージェントの読み込みエラー",noAgentsAvailable:"利用可能なエージェントがありません",failedToLoad:"アダプターを読み込めませんでした。接続を確認してください。"},fa={searchPlaceholder:"エージェントを検索",clearSearchAriaLabel:"検索をクリア",noAgentsAvailable:"まだ利用可能なエージェントがありません。続行するにはミドルウェア設定でアダプターを設定してください。",noSearchResults:"検索に一致するエージェントはありません。",unableToLoad:"現在エージェントを読み込めません。"},Aa={selectBeforeUpload:"ファイルをアップロードする前に、会話を選択または作成してください。",conversationNotFound:"会話が見つかりません。もう一度お試しください。",maxFilesPerConversationError:"会話ごとに最大 {{count}} 個のファイルまで許可されています。先にいくつかのファイルを削除してください。",maxFilesGuestLimitMessage:"ゲストの会話ごとのファイル上限 {{count}} 個に達しました。さらにアップロードするにはサインインしてください。",maxTotalFilesError:"すべての会話で合計 {{count}} 個までのファイルが許可されています。先に他の会話からいくつかのファイルを削除してください。",maxTotalFilesGuestLimitMessage:"ゲストの合計ファイル上限 {{count}} 個に達しました。さらにアップロードするにはサインインしてください。",adapterNotConfigured:"この会話のアダプターが設定されていません。先にアダプターを選択してください。",disabledAriaLabel:"ファイルアップロードは無効です",enabledAriaLabel:"ファイルをアップロード",dragDropText:"ファイルをドロップするかクリックして参照",draggingText:"ここにファイルをドロップ",fileTypesAndLimit:"PDF、DOCX、TXT、CSV、コードファイル、画像、音声 · 最大 {{count}} 個",otherConversationsLabel:"他の会話",uploadingStatus:"アップロード中",processingStatus:"処理中",completedStatus:"完了",failedStatus:"失敗",processingFailedMessage:"処理に失敗しました"},Sa={header:"ファイル ({{count}})",noFilesAttached:"添付ファイルはありません",uploadFilesToUse:"この会話で使用するファイルをアップロードしてください",removeFileTooltip:"ファイルを削除",confirmRemoveTitle:"ファイルを削除",confirmRemoveMessage:'"{{filename}}" を削除してもよろしいですか?サーバーとこの会話の両方からファイルが削除されます。この操作は元に戻せません。'},Ta={generatedDocument:"生成されたドキュメント",loadingPreview:"プレビューを読み込み中...",openPreviewTooltip:"プレビューを開く",downloadDocumentTooltip:"ドキュメントをダウンロード",noSheetDataFound:"シートデータが見つかりません。",csvRowsPreviewMessage:"{{count}} 行のうち最初の 25 行を表示しています — 完全なファイルはダウンロードしてください。",noDataFound:"データが見つかりません。",previewUnavailable:"この形式ではプレビューを利用できません。ローカルで開くにはダウンロードしてください。",previewUnavailableShort:"プレビュー不可"},Ca={generatedImageTitle:"生成された画像 — クリックして拡大",generatedImageAlt:"生成された画像",downloadImageTooltip:"画像をダウンロード",viewFullSizeTooltip:"フルサイズで表示",showPrompt:"プロンプトを表示",hidePrompt:"プロンプトを非表示",promptLabel:"プロンプト"},Pa={downloadVideoTooltip:"動画をダウンロード",viewFullSizeTooltip:"フルサイズで表示",showPrompt:"プロンプトを表示",hidePrompt:"プロンプトを非表示",promptLabel:"プロンプト"},wa={button:{audioPlayingTitle:"音声を再生中...",voiceEnabledTitle:"音声が有効です - クリックして無効化",enableVoiceTitle:"クリックして音声応答を有効化",playingLabel:"再生中...",voiceOnLabel:"音声オン",enableVoiceLabel:"音声を有効化"},player:{audioFileTooLargePlaceholder:"音声ファイルが大きすぎます({{sizeMB}}MB > 上限 {{maxMB}}MB)",largeAudioWarning:"大きな音声ファイル({{sizeMB}}MB)- 読み込みに時間がかかる場合があります",invalidBase64Error:"無効な base64 音声データ",loadFailureError:"音声の読み込みに失敗しました",playbackFailureError:"再生に失敗しました",pauseTitle:"一時停止",playTitle:"再生",pauseAriaLabel:"音声を一時停止",playAriaLabel:"音声を再生"}},ka={searchPlaceholder:"モデルを検索…",searchAriaLabel:"モデルを検索",noModelsMatch:'"{{query}}" に一致するモデルはありません',modelCountHint:"{{total}} 件中 {{filtered}} 件のモデル",selectModel:"モデルを選択"},ya={noSkillsAvailable:"このアダプターで利用できるスキルはありません。",loadingLabel:"スキルを読み込み中...",noMatchingSkills:'"{{query}}" に一致するスキルはありません。',noMatchingSkillsGeneric:"一致するスキルはありません。",listboxLabel:"利用可能なスキル"},Da={edit:{willRegenerateHint:"応答が再生成されます"},copyImageLabel:"画像をクリップボードにコピー",copyLabel:"クリップボードにコピー",feedback:{good:"良い応答",poor:"不十分な応答",thanks:"ありがとうございます!"},editAriaLabel:"メッセージを編集",regenerateTitle:"応答を再生成",regenerateAriaLabel:"応答を再生成",thread:{continueDiscussionTitle:"現在の回答のコンテキストでこの議論を続ける",continueDiscussionAriaLabel:"現在の回答のコンテキストでこの議論を続ける",continueLabel:"続ける",replyCount_one:"{{count}} 件の返信",replyCount_other:"{{count}} 件の返信",clearTitle:"返信をクリア",clearAriaLabel:"返信をクリア",hideRepliesAriaLabel:"返信を非表示",hideRepliesLabel:"返信を非表示",placeholder:"スレッドに返信...",skillsHint:"スキルを使用",skillsHintAriaLabel:"利用可能なスキルを表示(またはスラッシュを入力)",removeSkillAriaLabel:"スレッドのスキルを削除",sendMessageTitle:"スレッドメッセージを送信",selectModelTitle:"このスレッドのモデルを選択",limitReachedGuest:"ゲストのスレッドごとの {{count}} 件のメッセージ上限に達しました。このスレッドを続けるにはサインインしてください。",limitReachedUser:"このスレッドは {{count}} 件のメッセージ上限に達しました。さらにフォローアップするには新しい会話を開始してください。",signInForHigherLimits:"サインインして上限を増やす",signInPromptMessage:"サインインすると、メッセージ上限を増やしてこのスレッドを続けられます。"},confirmation:{clearRepliesTitle:"返信をクリア",clearRepliesMessage:"これらの返信をクリアしてもよろしいですか?メインの会話は削除せず、バックエンドから子スレッドを削除します。"}},Ma={emptyStateHeading:"ここにメッセージが表示されます。",emptyStateSubheading:"下にプロンプトを送信して会話を開始してください。"},Fa={browserNotSupported:"このブラウザーでは音声認識がサポートされていません。Chrome、Edge、または Safari をお試しください。",error:{noSpeech:"音声が検出されませんでした。もう一度お試しください。",audioCapture:"マイクへのアクセスが拒否されました。マイクアクセスを許可してもう一度お試しください。",notAllowed:"マイクへのアクセスが許可されていません。マイクの権限を有効にしてください。",network:"ネットワークエラーが発生しました。接続を確認してください。",generic:"音声認識エラー: {{error}}",startFailed:"音声認識を開始できませんでした。もう一度お試しください。"}},xa={error:{singleAdapterMissing:"単一アダプターモードでは、agentMode.defaultAdapterId が orbitchat.yaml 内のアダプター ID と一致している必要があります。",configurationFailed:"このエージェントを設定できませんでした。",authenticationFailed:"このエージェントを読み込めませんでした。存在しないか、アクセス権がない可能性があります。",notFound:"このエージェントはサーバー上で見つかりませんでした。別のエージェントを選択してください。",loadFailed:"現在、エージェントの概要を読み込めません。"}},$i={common:oa,app:na,chatInterface:ra,settings:sa,sidebar:la,messageInput:ca,authStatus:da,loginPrompt:ua,outOfService:pa,confirmationModal:ga,appHeader:ma,appFooter:ha,agentCard:va,markdown:ba,adapterSelector:La,agentSelectionList:fa,fileUpload:Aa,fileList:Sa,documentDisplay:Ta,imageDisplay:Ca,videoDisplay:Pa,audio:wa,modelPicker:ka,skillPicker:ya,message:Da,messageList:Ma,voice:Fa,agent:xa},Ea={cancel:"Cancelar",close:"Fechar",confirm:"Confirmar",delete:"Excluir",remove:"Remover",clear:"Limpar",send:"Enviar",signIn:"Entrar",logOut:"Sair",download:"Baixar"},za={sidebar:{openAriaLabel:"Abrir barra lateral",openTitle:"Abrir barra lateral"},menu:{closeAriaLabel:"Fechar menu"}},Ia={workspace:{ariaLabel:"Área de chat"},error:{dismissAriaLabel:"Dispensar erro"},mobile:{chatsButton:"Chats",openChatsMenuAriaLabel:"Abrir menu de conversas",settingsButton:"Configurações",openSettingsAriaLabel:"Abrir configurações"},settings:{ariaLabel:"Configurações",title:"Configurações"},changeAgent:{button:"Trocar agente",titleEnabled:"Troque para outro agente antes de iniciar esta conversa",titleDisabled:"O agente não pode ser alterado depois que a conversa começou"},newConversation:{button:"Nova conversa",tooltipCanStart:"Iniciar uma nova conversa",tooltipGuestLimited:"Limite de conversas de convidado atingido. Entre para ter mais conversas.",tooltipCannotStart:"Termine sua conversa atual antes de iniciar uma nova."},empty:{configuringAgent:"Configurando seu agente…"},newChatTitle:"Novo chat",updatedAt:"Atualizado {{time}}",docked:{placeholder:"Iniciar um novo assunto..."}},Ra={dialog:{closeOverlayAriaLabel:"Fechar sobreposição de configurações",title:"Configurações",closeButtonAriaLabel:"Fechar configurações"},appearance:{heading:"Aparência",themeLabel:"Tema",themeLight:"Claro",themeDark:"Escuro",themeSystem:"Sistema"},language:{label:"Idioma"},chat:{heading:"Preferências de chat"},soundEffects:{label:"Efeitos sonoros",description:"Reproduzir sons para notificações e eventos",toggleAriaLabel:"Alternar efeitos sonoros"},dataManagement:{heading:"Gerenciamento de dados",description:"Limpar todos os dados da aplicação, incluindo conversas e configurações personalizadas."},reset:{button:"Redefinir aplicação",confirmTitle:"Redefinir dados da aplicação?",confirmMessage:"Isso remove tudo o que está armazenado neste dispositivo e recarrega a aplicação.",confirmButton:"Redefinir"}},Na={selectAgent:{title:"Selecionar um agente"},deleteAllConversations:{title:"Excluir todas as conversas",button:"Excluir conversas"},navAriaLabel:"Barra lateral de conversas",adapterConfigureFailed:"Falha ao configurar o adaptador",collapse:{ariaLabel:"Fechar barra lateral",title:"Fechar barra lateral"},search:{ariaLabel:"Pesquisar conversas",placeholder:"Pesquisar conversas",clearAriaLabel:"Limpar pesquisa"},resultsNone:"Nenhum resultado",results_one:"{{count}} resultado",results_other:"{{count}} resultados",conversations:{ariaLabel:"Conversas"},timeGroups:{today:"Hoje",yesterday:"Ontem",thisWeek:"Esta semana",thisMonth:"Este mês",earlier:"Anteriores"},conversationCard:{openAriaLabel:"Abrir conversa: {{title}}",editAriaLabel:"Renomear conversa: {{title}}",deleteAriaLabel:"Excluir conversa: {{title}}",editInputAriaLabel:"Editar título da conversa"},deleteConfirm:{title:"Excluir conversa",message:'Tem certeza de que deseja excluir "{{title}}"? Isso limpará o histórico da conversa.',confirmText:"Excluir"},clearAllConfirm:{title:"Limpar todas as conversas",message_one:"Tem certeza de que deseja excluir esta conversa? Isso limpará todo o histórico de conversas.",message_other:"Tem certeza de que deseja excluir todas as {{count}} conversas? Isso limpará todo o histórico de conversas.",confirmText:"Limpar tudo"}},Ba={textarea:{ariaLabel:"Entrada de mensagem"},skillsHint:{ariaLabel:"Mostrar habilidades disponíveis (ou digite uma barra)",title:"Usar uma habilidade",text:"Habilidades"},selectedSkill:{removeAriaLabel:"Remover habilidade"},fileUpload:{attachAriaLabel:"Anexar arquivos",titleNotSupported:"O upload de arquivos não é compatível com este adaptador",titleLimitPerConversation:"Máximo de {{count}} arquivos atingido nesta conversa. Inicie um novo chat para enviar mais.",titleLimitWorkspace:"Limite do espaço de trabalho de {{count}} arquivos no total atingido. Remova primeiro arquivos de outras conversas.",titleUploading:"Os arquivos estão sendo enviados. Aguarde...",titleAttached:"{{count}} arquivo(s) anexado(s)"},voiceOutput:{titleEnabled:"Respostas por voz ativadas - Clique para desativar",titleDisabled:"Ativar respostas por voz (texto para fala)",ariaLabelEnabled:"Desativar respostas por voz",ariaLabelDisabled:"Ativar respostas por voz"},voiceInput:{titleUploading:"Os arquivos estão sendo enviados. Aguarde...",titleListening:"Parar gravação",titleDisabled:"Iniciar entrada de voz",ariaLabelListening:"Parar gravação",ariaLabelDisabled:"Iniciar entrada de voz"},agentInfo:{title:"Sobre este agente",ariaLabel:"Sobre este agente"},submit:{title:"Enviar mensagem",ariaLabel:"Enviar mensagem"},stop:{title:"Parar geração",ariaLabel:"Parar geração"},attachedFile:{uploadingStatus:"Enviando...",processingStatus:"Processando...",failedStatus:"Falhou",removeTitleFailed:"Dispensar",removeTitleNormal:"Remover arquivo"},uploadPanel:{headingAttach:"Anexar arquivos",headingUploading:"Enviando arquivos",closeTitle:"Fechar"},uploadProgress:{statusUploading:"Enviando",statusProcessing:"Processando",statusCompleted:"Concluído",statusPending:"Pendente"},listeningIndicator:"Ouvindo...",fileDelete:{title:"Remover arquivo",message:'Tem certeza de que deseja remover "{{filename}}"? Isso excluirá o arquivo do servidor e desta conversa. Esta ação não pode ser desfeita.',confirmText:"Remover"},agentInfoModal:{title:"Sobre este agente",closeAriaLabel:"Fechar",confirmButton:"Entendi"},placeholder:{filesUploading:"Os arquivos estão sendo enviados, aguarde...",messageOrbit:"Envie uma mensagem para ORBIT ou solte arquivos aqui",guestLimitTotal:"Limite de convidado de {{count}} mensagens atingido. Entre para limites maiores.",workspaceLimitTotal:"Limite do espaço de trabalho de {{count}} mensagens atingido. Exclua ou arquive conversas antigas para continuar.",guestLimitPerConversation:"Limite de convidado de {{count}} mensagens atingido. Entre para limites maiores.",conversationLimitReached:"Este chat atingiu o limite de {{count}} mensagens. Inicie uma nova conversa para continuar."},limitWarning:{guestTotalMessages:"Limite de convidado de {{count}} mensagens no total atingido. Entre para limites maiores ou exclua conversas para recomeçar.",workspaceTotalMessages:"Limite do espaço de trabalho de {{count}} mensagens no total atingido. Exclua ou exporte conversas antigas para continuar.",guestPerConversation:"Limite de convidado de {{count}} mensagens por conversa atingido. Entre para limites maiores ou exclua conversas para recomeçar.",conversationLimitReached:"Esta conversa atingiu o limite de {{count}} mensagens. Inicie uma nova conversa para continuar conversando."},signInPrompt:{button:"Entrar para limites maiores",message:"Entre para desbloquear limites maiores de mensagens e mais conversas."},autocompletePanel:{ariaLabel:"Sugestões de preenchimento automático"},uploadSuccess:{single:'Arquivo "{{filename}}" enviado com sucesso',multiple:"{{count}} arquivos enviados com sucesso"},conversationNotFoundShort:"Conversa não encontrada. Selecione uma conversa primeiro.",fileRemoveFailed:"Falha ao remover arquivo",fileProcessingFailedTitle:"Falha no processamento do arquivo"},$a={signOutButton:{title:"Sair",ariaLabel:"Sair"}},Ga={heading:"Entre para mais"},qa={statusBadge:"Serviço pausado",heading:"Temporariamente indisponível",retryButton:"Tentar novamente"},Ua={loadingLabel:"Limpando..."},Oa={homeLinkAriaLabel:"Ir para a página inicial",logoAlt:"Logo",navLinksAriaLabel:"Links do cabeçalho"},Va={navLinksAriaLabel:"Links do rodapé"},Ha={configureMessage:"Configure este agente para ver seus recursos.",startConversationAriaLabel:"Iniciar conversa com {{name}}"},Ka={codeBlock:{copied:"Copiado!",copyTitle:"Copiar código",copyAriaLabel:"Copiar código para a área de transferência",copyLabel:"Copiar",loadingRenderer:"Carregando renderizador..."},diagram:{copyCodeAriaLabel:"Copiar código do diagrama para a área de transferência",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar diagrama como imagem PNG",errorTitle:"Erro no diagrama Mermaid"},music:{copyNotationAriaLabel:"Copiar notação ABC para a área de transferência",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar notação musical como imagem PNG",rendering:"Renderizando notação..."},svg:{copyCodeAriaLabel:"Copiar código SVG para a área de transferência",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar SVG como imagem PNG"},chart:{legendAriaLabel:"Legenda do gráfico",copyCodeAriaLabel:"Copiar código do gráfico para a área de transferência",exportPngTitle:"Exportar como PNG",exportPngAriaLabel:"Exportar gráfico como imagem PNG",errorTitle:"Erro ao renderizar gráfico",loadingAriaLabel:"Carregando gráfico",showRawSource:"Mostrar fonte bruta"}},ja={defaultLabel:"Adaptador",selectAnAgent:"Selecionar um agente",loadingAgents:"Carregando agentes…",errorLoadingAgents:"Erro ao carregar agentes",noAgentsAvailable:"Nenhum agente disponível",failedToLoad:"Falha ao carregar adaptadores. Verifique sua conexão."},Wa={searchPlaceholder:"Pesquisar agentes",clearSearchAriaLabel:"Limpar pesquisa",noAgentsAvailable:"Ainda não há agentes disponíveis. Configure adaptadores nas configurações do middleware para continuar.",noSearchResults:"Nenhum agente corresponde à sua pesquisa.",unableToLoad:"Não foi possível carregar agentes agora."},_a={selectBeforeUpload:"Selecione ou crie uma conversa antes de enviar arquivos.",conversationNotFound:"Conversa não encontrada. Tente novamente.",maxFilesPerConversationError:"Máximo de {{count}} arquivos permitido por conversa. Remova alguns arquivos primeiro.",maxFilesGuestLimitMessage:"Você atingiu o limite de convidado de {{count}} arquivos por conversa. Entre para enviar mais arquivos.",maxTotalFilesError:"Máximo de {{count}} arquivos no total permitido em todas as conversas. Remova primeiro alguns arquivos de outras conversas.",maxTotalFilesGuestLimitMessage:"Você atingiu o limite de convidado de {{count}} arquivos no total. Entre para enviar mais arquivos.",adapterNotConfigured:"Adaptador não configurado para esta conversa. Selecione um adaptador primeiro.",disabledAriaLabel:"Upload de arquivos desativado",enabledAriaLabel:"Enviar arquivos",dragDropText:"Solte arquivos ou clique para procurar",draggingText:"Solte os arquivos aqui",fileTypesAndLimit:"PDF, DOCX, TXT, CSV, arquivos de código, imagens, áudio · máx. {{count}} arquivos",otherConversationsLabel:"Outras conversas",uploadingStatus:"Enviando",processingStatus:"Processando",completedStatus:"Concluído",failedStatus:"Falhou",processingFailedMessage:"O processamento falhou"},Xa={header:"Arquivos ({{count}})",noFilesAttached:"Nenhum arquivo anexado",uploadFilesToUse:"Envie arquivos para usá-los nesta conversa",removeFileTooltip:"Remover arquivo",confirmRemoveTitle:"Remover arquivo",confirmRemoveMessage:'Tem certeza de que deseja remover "{{filename}}"? Isso excluirá o arquivo do servidor e desta conversa. Esta ação não pode ser desfeita.'},Za={generatedDocument:"Documento gerado",loadingPreview:"Carregando prévia...",openPreviewTooltip:"Abrir prévia",downloadDocumentTooltip:"Baixar documento",noSheetDataFound:"Nenhum dado de planilha encontrado.",csvRowsPreviewMessage:"Mostrando as primeiras 25 de {{count}} linhas; baixe o arquivo completo.",noDataFound:"Nenhum dado encontrado.",previewUnavailable:"A prévia não está disponível para este formato. Use baixar para abri-lo localmente.",previewUnavailableShort:"Prévia indisponível"},Qa={generatedImageTitle:"Imagem gerada; clique para ampliar",generatedImageAlt:"Imagem gerada",downloadImageTooltip:"Baixar imagem",viewFullSizeTooltip:"Ver tamanho completo",showPrompt:"Mostrar prompt",hidePrompt:"Ocultar prompt",promptLabel:"Prompt"},Ya={downloadVideoTooltip:"Baixar vídeo",viewFullSizeTooltip:"Ver tamanho completo",showPrompt:"Mostrar prompt",hidePrompt:"Ocultar prompt",promptLabel:"Prompt"},Ja={button:{audioPlayingTitle:"Áudio reproduzindo...",voiceEnabledTitle:"Voz ativada - Clique para desativar",enableVoiceTitle:"Clique para ativar respostas por voz",playingLabel:"Reproduzindo...",voiceOnLabel:"Voz ativada",enableVoiceLabel:"Ativar voz"},player:{audioFileTooLargePlaceholder:"Arquivo de áudio muito grande ({{sizeMB}} MB > limite de {{maxMB}} MB)",largeAudioWarning:"Arquivo de áudio grande ({{sizeMB}} MB) - pode demorar para carregar",invalidBase64Error:"Dados de áudio em base64 inválidos",loadFailureError:"Falha ao carregar áudio",playbackFailureError:"Falha na reprodução",pauseTitle:"Pausar",playTitle:"Reproduzir",pauseAriaLabel:"Pausar áudio",playAriaLabel:"Reproduzir áudio"}},ei={searchPlaceholder:"Pesquisar modelos…",searchAriaLabel:"Pesquisar modelos",noModelsMatch:'Nenhum modelo corresponde a "{{query}}"',modelCountHint:"{{filtered}} de {{total}} modelos",selectModel:"Selecionar modelo"},ai={noSkillsAvailable:"Nenhuma habilidade disponível para este adaptador.",loadingLabel:"Carregando habilidades...",noMatchingSkills:'Nenhuma habilidade corresponde a "{{query}}".',noMatchingSkillsGeneric:"Nenhuma habilidade correspondente.",listboxLabel:"Habilidades disponíveis"},ii={edit:{willRegenerateHint:"A resposta será regenerada"},copyImageLabel:"Copiar imagem para a área de transferência",copyLabel:"Copiar para a área de transferência",feedback:{good:"Boa resposta",poor:"Resposta ruim",thanks:"Obrigado!"},editAriaLabel:"Editar mensagem",regenerateTitle:"Regenerar resposta",regenerateAriaLabel:"Regenerar resposta",thread:{continueDiscussionTitle:"Continuar esta discussão com o contexto da resposta atual",continueDiscussionAriaLabel:"Continuar esta discussão com o contexto da resposta atual",continueLabel:"Continuar",replyCount_one:"{{count}} resposta",replyCount_other:"{{count}} respostas",clearTitle:"Limpar respostas",clearAriaLabel:"Limpar respostas",hideRepliesAriaLabel:"Ocultar respostas",hideRepliesLabel:"Ocultar respostas",placeholder:"Responder no fio...",skillsHint:"Usar uma habilidade",skillsHintAriaLabel:"Mostrar habilidades disponíveis (ou digite uma barra)",removeSkillAriaLabel:"Remover habilidade do fio",sendMessageTitle:"Enviar mensagem do fio",selectModelTitle:"Selecionar modelo para este fio",limitReachedGuest:"Você atingiu o limite de convidado de {{count}} mensagens por fio. Entre para continuar este fio.",limitReachedUser:"Este fio atingiu o limite de {{count}} mensagens. Inicie uma nova conversa para mais acompanhamentos.",signInForHigherLimits:"Entrar para limites maiores",signInPromptMessage:"Entre para desbloquear limites maiores de mensagens e continuar este fio."},confirmation:{clearRepliesTitle:"Limpar respostas",clearRepliesMessage:"Tem certeza de que deseja limpar estas respostas? Isso remove o fio filho do backend sem excluir a conversa principal."}},ti={emptyStateHeading:"Suas mensagens aparecerão aqui.",emptyStateSubheading:"Inicie a conversa enviando um prompt abaixo."},oi={browserNotSupported:"O reconhecimento de voz não é compatível com este navegador. Tente Chrome, Edge ou Safari.",error:{noSpeech:"Nenhuma fala detectada. Tente novamente.",audioCapture:"Acesso ao microfone negado. Permita o acesso ao microfone e tente novamente.",notAllowed:"Acesso ao microfone não permitido. Ative as permissões do microfone.",network:"Ocorreu um erro de rede. Verifique sua conexão.",generic:"Erro de reconhecimento de voz: {{error}}",startFailed:"Falha ao iniciar o reconhecimento de voz. Tente novamente."}},ni={error:{singleAdapterMissing:"O modo de adaptador único exige que agentMode.defaultAdapterId corresponda a um id de adaptador em orbitchat.yaml.",configurationFailed:"Não foi possível configurar este agente.",authenticationFailed:"Não conseguimos carregar este agente. Ele pode não existir ou talvez você não tenha acesso.",notFound:"Este agente não foi encontrado no servidor. Escolha outro agente.",loadFailed:"Não foi possível carregar a visão geral do agente agora."}},Gi={common:Ea,app:za,chatInterface:Ia,settings:Ra,sidebar:Na,messageInput:Ba,authStatus:$a,loginPrompt:Ga,outOfService:qa,confirmationModal:Ua,appHeader:Oa,appFooter:Va,agentCard:Ha,markdown:Ka,adapterSelector:ja,agentSelectionList:Wa,fileUpload:_a,fileList:Xa,documentDisplay:Za,imageDisplay:Qa,videoDisplay:Ya,audio:Ja,modelPicker:ei,skillPicker:ai,message:ii,messageList:ti,voice:oi,agent:ni},ri={cancel:"取消",close:"关闭",confirm:"确认",delete:"删除",remove:"移除",clear:"清除",send:"发送",signIn:"登录",logOut:"退出登录",download:"下载"},si={sidebar:{openAriaLabel:"打开侧边栏",openTitle:"打开侧边栏"},menu:{closeAriaLabel:"关闭菜单"}},li={workspace:{ariaLabel:"聊天工作区"},error:{dismissAriaLabel:"关闭错误"},mobile:{chatsButton:"聊天",openChatsMenuAriaLabel:"打开会话菜单",settingsButton:"设置",openSettingsAriaLabel:"打开设置"},settings:{ariaLabel:"设置",title:"设置"},changeAgent:{button:"更换智能体",titleEnabled:"在开始此会话前切换到其他智能体",titleDisabled:"会话开始后无法更换智能体"},newConversation:{button:"新建会话",tooltipCanStart:"开始新会话",tooltipGuestLimited:"已达到访客会话限制。登录后可创建更多会话。",tooltipCannotStart:"请先完成当前会话,再开始新会话。"},empty:{configuringAgent:"正在配置你的智能体…"},newChatTitle:"新聊天",updatedAt:"已更新 {{time}}",docked:{placeholder:"开始新主题..."}},ci={dialog:{closeOverlayAriaLabel:"关闭设置遮罩",title:"设置",closeButtonAriaLabel:"关闭设置"},appearance:{heading:"外观",themeLabel:"主题",themeLight:"浅色",themeDark:"深色",themeSystem:"系统"},language:{label:"语言"},chat:{heading:"聊天偏好"},soundEffects:{label:"音效",description:"为通知和事件播放声音",toggleAriaLabel:"切换音效"},dataManagement:{heading:"数据管理",description:"清除所有应用数据,包括会话和个性化设置。"},reset:{button:"重置应用",confirmTitle:"重置应用数据?",confirmMessage:"这将删除此设备上存储的所有内容并重新加载应用。",confirmButton:"重置"}},di={selectAgent:{title:"选择智能体"},deleteAllConversations:{title:"删除所有会话",button:"删除会话"},navAriaLabel:"会话侧边栏",adapterConfigureFailed:"配置适配器失败",collapse:{ariaLabel:"关闭侧边栏",title:"关闭侧边栏"},search:{ariaLabel:"搜索会话",placeholder:"搜索会话",clearAriaLabel:"清除搜索"},resultsNone:"无结果",results_one:"{{count}} 个结果",results_other:"{{count}} 个结果",conversations:{ariaLabel:"会话"},timeGroups:{today:"今天",yesterday:"昨天",thisWeek:"本周",thisMonth:"本月",earlier:"更早"},conversationCard:{openAriaLabel:"打开会话:{{title}}",editAriaLabel:"重命名会话:{{title}}",deleteAriaLabel:"删除会话:{{title}}",editInputAriaLabel:"编辑会话标题"},deleteConfirm:{title:"删除会话",message:"确定要删除“{{title}}”吗?这将清除会话历史。",confirmText:"删除"},clearAllConfirm:{title:"清除所有会话",message_one:"确定要删除此会话吗?这将清除所有会话历史。",message_other:"确定要删除全部 {{count}} 个会话吗?这将清除所有会话历史。",confirmText:"全部清除"}},ui={textarea:{ariaLabel:"消息输入"},skillsHint:{ariaLabel:"显示可用技能(或输入正斜杠)",title:"使用技能",text:"技能"},selectedSkill:{removeAriaLabel:"移除技能"},fileUpload:{attachAriaLabel:"附加文件",titleNotSupported:"此适配器不支持文件上传",titleLimitPerConversation:"此会话已达到最多 {{count}} 个文件。请开始新聊天以上传更多文件。",titleLimitWorkspace:"已达到工作区总计 {{count}} 个文件的限制。请先从其他会话中移除文件。",titleUploading:"文件正在上传。请稍候...",titleAttached:"已附加 {{count}} 个文件"},voiceOutput:{titleEnabled:"语音回复已启用 - 点击禁用",titleDisabled:"启用语音回复(文本转语音)",ariaLabelEnabled:"禁用语音回复",ariaLabelDisabled:"启用语音回复"},voiceInput:{titleUploading:"文件正在上传。请稍候...",titleListening:"停止录音",titleDisabled:"开始语音输入",ariaLabelListening:"停止录音",ariaLabelDisabled:"开始语音输入"},agentInfo:{title:"关于此智能体",ariaLabel:"关于此智能体"},submit:{title:"发送消息",ariaLabel:"发送消息"},stop:{title:"停止生成",ariaLabel:"停止生成"},attachedFile:{uploadingStatus:"正在上传...",processingStatus:"正在处理...",failedStatus:"失败",removeTitleFailed:"关闭",removeTitleNormal:"移除文件"},uploadPanel:{headingAttach:"附加文件",headingUploading:"正在上传文件",closeTitle:"关闭"},uploadProgress:{statusUploading:"正在上传",statusProcessing:"正在处理",statusCompleted:"完成",statusPending:"待处理"},listeningIndicator:"正在聆听...",fileDelete:{title:"移除文件",message:"确定要移除“{{filename}}”吗?这会从服务器和此会话中删除该文件。此操作无法撤销。",confirmText:"移除"},agentInfoModal:{title:"关于此智能体",closeAriaLabel:"关闭",confirmButton:"知道了"},placeholder:{filesUploading:"文件正在上传,请稍候...",messageOrbit:"向 ORBIT 发送消息或将文件拖放到此处",guestLimitTotal:"已达到访客 {{count}} 条消息限制。登录可获得更高限制。",workspaceLimitTotal:"已达到工作区 {{count}} 条消息限制。请删除或归档旧会话以继续。",guestLimitPerConversation:"已达到访客 {{count}} 条消息限制。登录可获得更高限制。",conversationLimitReached:"此聊天已达到 {{count}} 条消息限制。请开始新会话以继续。"},limitWarning:{guestTotalMessages:"已达到访客总计 {{count}} 条消息限制。登录可获得更高限制,或删除会话重新开始。",workspaceTotalMessages:"已达到工作区总计 {{count}} 条消息限制。请删除或导出较早的会话以继续。",guestPerConversation:"已达到访客每个会话 {{count}} 条消息限制。登录可获得更高限制,或删除会话重新开始。",conversationLimitReached:"此会话已达到 {{count}} 条消息限制。请开始新会话继续聊天。"},signInPrompt:{button:"登录以获得更高限制",message:"登录可解锁更高的消息限制和更多会话。"},autocompletePanel:{ariaLabel:"自动补全建议"},uploadSuccess:{single:"文件“{{filename}}”上传成功",multiple:"{{count}} 个文件上传成功"},conversationNotFoundShort:"未找到会话。请先选择一个会话。",fileRemoveFailed:"移除文件失败",fileProcessingFailedTitle:"文件处理失败"},pi={signOutButton:{title:"退出登录",ariaLabel:"退出登录"}},gi={heading:"登录以获得更多功能"},mi={statusBadge:"服务已暂停",heading:"暂时不可用",retryButton:"重试"},hi={loadingLabel:"正在清除..."},vi={homeLinkAriaLabel:"前往主页",logoAlt:"徽标",navLinksAriaLabel:"页眉链接"},bi={navLinksAriaLabel:"页脚链接"},Li={configureMessage:"配置此智能体以查看其功能。",startConversationAriaLabel:"开始与 {{name}} 的会话"},fi={codeBlock:{copied:"已复制!",copyTitle:"复制代码",copyAriaLabel:"将代码复制到剪贴板",copyLabel:"复制",loadingRenderer:"正在加载渲染器..."},diagram:{copyCodeAriaLabel:"将图表代码复制到剪贴板",exportPngTitle:"导出为 PNG",exportPngAriaLabel:"将图表导出为 PNG 图片",errorTitle:"Mermaid 图表错误"},music:{copyNotationAriaLabel:"将 ABC 记谱复制到剪贴板",exportPngTitle:"导出为 PNG",exportPngAriaLabel:"将乐谱导出为 PNG 图片",rendering:"正在渲染记谱..."},svg:{copyCodeAriaLabel:"将 SVG 代码复制到剪贴板",exportPngTitle:"导出为 PNG",exportPngAriaLabel:"将 SVG 导出为 PNG 图片"},chart:{legendAriaLabel:"图表图例",copyCodeAriaLabel:"将图表代码复制到剪贴板",exportPngTitle:"导出为 PNG",exportPngAriaLabel:"将图表导出为 PNG 图片",errorTitle:"图表渲染错误",loadingAriaLabel:"正在加载图表",showRawSource:"显示原始源代码"}},Ai={defaultLabel:"适配器",selectAnAgent:"选择智能体",loadingAgents:"正在加载智能体…",errorLoadingAgents:"加载智能体时出错",noAgentsAvailable:"没有可用的智能体",failedToLoad:"加载适配器失败。请检查你的连接。"},Si={searchPlaceholder:"搜索智能体",clearSearchAriaLabel:"清除搜索",noAgentsAvailable:"目前还没有可用的智能体。请在中间件设置中配置适配器以继续。",noSearchResults:"没有智能体与你的搜索匹配。",unableToLoad:"当前无法加载智能体。"},Ti={selectBeforeUpload:"上传文件前,请选择或创建一个会话。",conversationNotFound:"未找到会话。请重试。",maxFilesPerConversationError:"每个会话最多允许 {{count}} 个文件。请先移除一些文件。",maxFilesGuestLimitMessage:"你已达到访客每个会话 {{count}} 个文件的限制。登录后可上传更多文件。",maxTotalFilesError:"所有会话最多允许总计 {{count}} 个文件。请先从其他会话中移除一些文件。",maxTotalFilesGuestLimitMessage:"你已达到访客总计 {{count}} 个文件的限制。登录后可上传更多文件。",adapterNotConfigured:"此会话未配置适配器。请先选择适配器。",disabledAriaLabel:"文件上传已禁用",enabledAriaLabel:"上传文件",dragDropText:"拖放文件或点击浏览",draggingText:"将文件拖放到此处",fileTypesAndLimit:"PDF、DOCX、TXT、CSV、代码文件、图片、音频 · 最多 {{count}} 个文件",otherConversationsLabel:"其他会话",uploadingStatus:"正在上传",processingStatus:"正在处理",completedStatus:"完成",failedStatus:"失败",processingFailedMessage:"处理失败"},Ci={header:"文件 ({{count}})",noFilesAttached:"未附加文件",uploadFilesToUse:"上传文件以在此会话中使用",removeFileTooltip:"移除文件",confirmRemoveTitle:"移除文件",confirmRemoveMessage:"确定要移除“{{filename}}”吗?这会从服务器和此会话中删除该文件。此操作无法撤销。"},Pi={generatedDocument:"生成的文档",loadingPreview:"正在加载预览...",openPreviewTooltip:"打开预览",downloadDocumentTooltip:"下载文档",noSheetDataFound:"未找到表格数据。",csvRowsPreviewMessage:"正在显示 {{count}} 行中的前 25 行 — 下载可查看完整文件。",noDataFound:"未找到数据。",previewUnavailable:"此格式不支持预览。请下载后在本地打开。",previewUnavailableShort:"预览不可用"},wi={generatedImageTitle:"生成的图片 — 点击放大",generatedImageAlt:"生成的图片",downloadImageTooltip:"下载图片",viewFullSizeTooltip:"查看完整尺寸",showPrompt:"显示提示词",hidePrompt:"隐藏提示词",promptLabel:"提示词"},ki={downloadVideoTooltip:"下载视频",viewFullSizeTooltip:"查看完整尺寸",showPrompt:"显示提示词",hidePrompt:"隐藏提示词",promptLabel:"提示词"},yi={button:{audioPlayingTitle:"音频正在播放...",voiceEnabledTitle:"语音已启用 - 点击禁用",enableVoiceTitle:"点击启用语音回复",playingLabel:"正在播放...",voiceOnLabel:"语音开启",enableVoiceLabel:"启用语音"},player:{audioFileTooLargePlaceholder:"音频文件过大({{sizeMB}}MB > {{maxMB}}MB 限制)",largeAudioWarning:"音频文件较大({{sizeMB}}MB)- 可能需要一些时间加载",invalidBase64Error:"无效的 base64 音频数据",loadFailureError:"加载音频失败",playbackFailureError:"播放失败",pauseTitle:"暂停",playTitle:"播放",pauseAriaLabel:"暂停音频",playAriaLabel:"播放音频"}},Di={searchPlaceholder:"搜索模型…",searchAriaLabel:"搜索模型",noModelsMatch:"没有模型匹配“{{query}}”",modelCountHint:"{{filtered}} / {{total}} 个模型",selectModel:"选择模型"},Mi={noSkillsAvailable:"此适配器没有可用技能。",loadingLabel:"正在加载技能...",noMatchingSkills:"没有技能匹配“{{query}}”。",noMatchingSkillsGeneric:"没有匹配的技能。",listboxLabel:"可用技能"},Fi={edit:{willRegenerateHint:"将重新生成回复"},copyImageLabel:"将图片复制到剪贴板",copyLabel:"复制到剪贴板",feedback:{good:"好回复",poor:"回复不佳",thanks:"谢谢!"},editAriaLabel:"编辑消息",regenerateTitle:"重新生成回复",regenerateAriaLabel:"重新生成回复",thread:{continueDiscussionTitle:"使用当前回答的上下文继续此讨论",continueDiscussionAriaLabel:"使用当前回答的上下文继续此讨论",continueLabel:"继续",replyCount_one:"{{count}} 条回复",replyCount_other:"{{count}} 条回复",clearTitle:"清除回复",clearAriaLabel:"清除回复",hideRepliesAriaLabel:"隐藏回复",hideRepliesLabel:"隐藏回复",placeholder:"在线程中回复...",skillsHint:"使用技能",skillsHintAriaLabel:"显示可用技能(或输入正斜杠)",removeSkillAriaLabel:"移除线程技能",sendMessageTitle:"发送线程消息",selectModelTitle:"为此线程选择模型",limitReachedGuest:"你已达到访客每个线程 {{count}} 条消息的限制。登录后可继续此线程。",limitReachedUser:"此线程已达到 {{count}} 条消息限制。请开始新会话以进行更多追问。",signInForHigherLimits:"登录以获得更高限制",signInPromptMessage:"登录可解锁更高的消息限制并继续此线程。"},confirmation:{clearRepliesTitle:"清除回复",clearRepliesMessage:"确定要清除这些回复吗?这会从后端移除子线程,但不会删除主会话。"}},xi={emptyStateHeading:"你的消息将显示在这里。",emptyStateSubheading:"在下方发送提示词以开始会话。"},Ei={browserNotSupported:"此浏览器不支持语音识别。请尝试使用 Chrome、Edge 或 Safari。",error:{noSpeech:"未检测到语音。请重试。",audioCapture:"麦克风访问被拒绝。请允许麦克风访问后重试。",notAllowed:"不允许访问麦克风。请启用麦克风权限。",network:"发生网络错误。请检查你的连接。",generic:"语音识别错误:{{error}}",startFailed:"启动语音识别失败。请重试。"}},zi={error:{singleAdapterMissing:"单适配器模式要求 agentMode.defaultAdapterId 与 orbitchat.yaml 中的某个适配器 ID 匹配。",configurationFailed:"无法配置此智能体。",authenticationFailed:"无法加载此智能体。它可能不存在,或你可能没有访问权限。",notFound:"服务器上未找到此智能体。请选择其他智能体。",loadFailed:"当前无法加载智能体概览。"}},qi={common:ri,app:si,chatInterface:li,settings:ci,sidebar:di,messageInput:ui,authStatus:pi,loginPrompt:gi,outOfService:mi,confirmationModal:hi,appHeader:vi,appFooter:bi,agentCard:Li,markdown:fi,adapterSelector:Ai,agentSelectionList:Si,fileUpload:Ti,fileList:Ci,documentDisplay:Pi,imageDisplay:wi,videoDisplay:ki,audio:yi,modelPicker:Di,skillPicker:Mi,message:Fi,messageList:xi,voice:Ei,agent:zi};export{Ri as a,Ii as d,Ni as e,Bi as f,$i as j,Gi as p,qi as z};