@kafca/agentdock 0.1.54 → 0.1.55

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 (63) hide show
  1. package/README.md +5 -0
  2. package/dist/renderer/assets/{Badge-Rs12sArE.js → Badge-Bg_nNvBL.js} +1 -1
  3. package/dist/renderer/assets/{Chat-C9KfsjuN.js → Chat-BJveQQKu.js} +1 -1
  4. package/dist/renderer/assets/{ChatMarkdown-C3m7Mxpl.js → ChatMarkdown-Bqn2HJ6f.js} +1 -1
  5. package/dist/renderer/assets/{Config-BhIq2lQa.js → Config-CMtZDRAE.js} +1 -1
  6. package/dist/renderer/assets/{CronList-CenDzorW.js → CronList-C-ILB_Ae.js} +1 -1
  7. package/dist/renderer/assets/{Dashboard-BmeP5ocP.js → Dashboard-CsKBSQIe.js} +2 -2
  8. package/dist/renderer/assets/{EmptyState-BGONB4VS.js → EmptyState-C60g3RMj.js} +1 -1
  9. package/dist/renderer/assets/{KnowledgeDetail-Ba3PuI7k.js → KnowledgeDetail-CC5C7JYe.js} +1 -1
  10. package/dist/renderer/assets/{KnowledgeHome-DkKXM7Bd.js → KnowledgeHome-3rlvxgWf.js} +1 -1
  11. package/dist/renderer/assets/{Logs-DTITWY-y.js → Logs-CktemGN0.js} +1 -1
  12. package/dist/renderer/assets/{Modal-BvFew60s.js → Modal-BQUW9LSf.js} +1 -1
  13. package/dist/renderer/assets/{MonitorList-DruqInIG.js → MonitorList-B0hxjuOZ.js} +1 -1
  14. package/dist/renderer/assets/{Page-CLjmm8c6.js → Page-DL_Nv2i5.js} +1 -1
  15. package/dist/renderer/assets/{ProjectDetail-BCFaJig0.js → ProjectDetail-Djr9-MyT.js} +1 -1
  16. package/dist/renderer/assets/{ProjectList-Btg-mgwA.js → ProjectList-BKl4eW7q.js} +1 -1
  17. package/dist/renderer/assets/{Select-CAwaG7ol.js → Select-CfRkos3z.js} +1 -1
  18. package/dist/renderer/assets/{SessionChat-CHPrm0Zs.js → SessionChat-Dxv8D5DW.js} +1 -1
  19. package/dist/renderer/assets/{SessionList-0aGulton.js → SessionList-BJ2GjXvR.js} +1 -1
  20. package/dist/renderer/assets/{ThreadChat-BkSc0hKN.js → ThreadChat-CAsIl9qf.js} +1 -1
  21. package/dist/renderer/assets/Workspace-CaUhiGBX.js +19 -0
  22. package/dist/renderer/assets/{arrow-left-Co19QKUc.js → arrow-left-D1DbXrLA.js} +1 -1
  23. package/dist/renderer/assets/{book-open-CtlUo2yw.js → book-open-BxC1z1C1.js} +1 -1
  24. package/dist/renderer/assets/{bot-D-3jCeDr.js → bot-Fw3IzhJA.js} +1 -1
  25. package/dist/renderer/assets/{check-Cf5Y5H-1.js → check-5zCTgp3A.js} +1 -1
  26. package/dist/renderer/assets/{chevron-down-D1tfS-tx.js → chevron-down-N3PxTNxH.js} +1 -1
  27. package/dist/renderer/assets/{circle-DJOCyk2U.js → circle-C_chUflo.js} +1 -1
  28. package/dist/renderer/assets/{desktop-CmZMgSXn.js → desktop-DkQTZNhe.js} +1 -1
  29. package/dist/renderer/assets/{funnel-ZRCc1DCy.js → funnel-B8ZAv6I7.js} +1 -1
  30. package/dist/renderer/assets/{heart-BuJEvv8x.js → heart-M9A3E4Ed.js} +1 -1
  31. package/dist/renderer/assets/{index-0gZsyozU.js → index-Bwv855ID.js} +1 -1
  32. package/dist/renderer/assets/{index-CDWUe2Sw.js → index-DJ8w4e0l.js} +2 -2
  33. package/dist/renderer/assets/{pencil-sISh8tMs.js → pencil-X44UaxwR.js} +1 -1
  34. package/dist/renderer/assets/{play-CccQpZit.js → play-ujo-De38.js} +1 -1
  35. package/dist/renderer/assets/{plus-hxAkcfQ0.js → plus-BHgVdG_A.js} +1 -1
  36. package/dist/renderer/assets/projects-DB1FLZ3A.js +1 -0
  37. package/dist/renderer/assets/{save-By5b-_0Q.js → save-Cz6giKrE.js} +1 -1
  38. package/dist/renderer/assets/{search-CLzr87Rw.js → search-DKWvTqi5.js} +1 -1
  39. package/dist/renderer/assets/{server-CubB1eW5.js → server-BsuHcYl4.js} +1 -1
  40. package/dist/renderer/assets/{session-utils-Cz45af_C.js → session-utils-DnAWL3eo.js} +1 -1
  41. package/dist/renderer/assets/{sessions-C8np5fRp.js → sessions-DptxO_BE.js} +1 -1
  42. package/dist/renderer/assets/{shield-check-CemAc1Ry.js → shield-check-V82O8AC1.js} +1 -1
  43. package/dist/renderer/assets/{trash-2-DFKhii8D.js → trash-2-_Fgwk8mc.js} +1 -1
  44. package/dist/renderer/assets/{user-CaR8Rru_.js → user-DQKTaUcR.js} +1 -1
  45. package/dist/renderer/assets/{wifi-off-C8miJu8i.js → wifi-off-vjH-MD2w.js} +1 -1
  46. package/dist/renderer/index.html +1 -1
  47. package/dist-electron/services/local-ai-core/src/acp/store/local-core-acp-store.js +1 -1
  48. package/dist-electron/services/local-ai-core/src/acp/store/runtime-config-store.js +39 -28
  49. package/dist-electron/services/local-ai-core/src/channel/lark/config.js +4 -16
  50. package/dist-electron/services/local-ai-core/src/channel/lark/local-core-lark-gateway.js +72 -13
  51. package/dist-electron/services/local-ai-core/src/channel/shared/channel-keys.js +16 -0
  52. package/dist-electron/services/local-ai-core/src/channel/weixin/config.js +3 -16
  53. package/dist-electron/services/local-ai-core/src/channel/weixin/local-core-weixin-gateway.js +12 -11
  54. package/dist-electron/services/local-ai-core/src/runtime/channel-service.js +0 -40
  55. package/dist-electron/services/local-ai-core/src/runtime/external-service.js +1 -14
  56. package/dist-electron/services/local-ai-core/src/runtime/local-core-controller.js +1 -14
  57. package/dist-electron/services/local-ai-core/src/runtime/provider-config-migration.js +16 -0
  58. package/dist-electron/services/local-ai-core/src/scheduler/channel-execution-policy.js +4 -6
  59. package/dist-electron/tests/electron/sandbox-config.test.js +5 -0
  60. package/dist-electron/tests/integration/lark-gateway.test.js +27 -1
  61. package/package.json +1 -1
  62. package/dist/renderer/assets/Workspace-DXJ3BGia.js +0 -19
  63. package/dist/renderer/assets/projects-CjdfXQ1l.js +0 -1
@@ -0,0 +1,19 @@
1
+ import{c as gt,A as D,j as t,B as T,F as Kt,I as L,S as Xt,y as qt,r as S}from"./index-DJ8w4e0l.js";import{M as lt}from"./Modal-BQUW9LSf.js";import{S as ee}from"./Select-CfRkos3z.js";import{E as Oe}from"./EmptyState-C60g3RMj.js";import{S as pt,a as Pe,P as Jt}from"./Page-DL_Nv2i5.js";import{c as Zt,d as es,e as ts,t as ss,f as Ne,h as as,i as ns,j as rs,k as os,m as is,n as ls,p as ct}from"./desktop-DkQTZNhe.js";import{c as xt,D as ze,d as cs,e as De,f as Me,g as Ae,h as ds,j as dt,k as mt,l as ms}from"./desktop-JQkhNOF4.js";import{T as Te}from"./trash-2-_Fgwk8mc.js";import{P as Ce}from"./plus-BHgVdG_A.js";import{B as us}from"./bot-Fw3IzhJA.js";import{P as hs,S as we}from"./save-Cz6giKrE.js";import"./index-Bwv855ID.js";import"./chevron-down-N3PxTNxH.js";import"./check-5zCTgp3A.js";/**
2
+ * @license lucide-react v0.487.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const fs=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],gs=gt("cloud",fs);/**
7
+ * @license lucide-react v0.487.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const ps=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],ut=gt("qr-code",ps);var xs=Object.defineProperty,_e=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,ht=(s,l,o)=>l in s?xs(s,l,{enumerable:!0,configurable:!0,writable:!0,value:o}):s[l]=o,Re=(s,l)=>{for(var o in l||(l={}))vt.call(l,o)&&ht(s,o,l[o]);if(_e)for(var o of _e(l))bt.call(l,o)&&ht(s,o,l[o]);return s},Ie=(s,l)=>{var o={};for(var m in s)vt.call(s,m)&&l.indexOf(m)<0&&(o[m]=s[m]);if(s!=null&&_e)for(var m of _e(s))l.indexOf(m)<0&&bt.call(s,m)&&(o[m]=s[m]);return o};/**
12
+ * @license QR Code generator library (TypeScript)
13
+ * Copyright (c) Project Nayuki.
14
+ * SPDX-License-Identifier: MIT
15
+ */var oe;(s=>{const l=class N{constructor(e,a,n,i){if(this.version=e,this.errorCorrectionLevel=a,this.modules=[],this.isFunction=[],e<N.MIN_VERSION||e>N.MAX_VERSION)throw new RangeError("Version value out of range");if(i<-1||i>7)throw new RangeError("Mask value out of range");this.size=e*4+17;let c=[];for(let u=0;u<this.size;u++)c.push(!1);for(let u=0;u<this.size;u++)this.modules.push(c.slice()),this.isFunction.push(c.slice());this.drawFunctionPatterns();const h=this.addEccAndInterleave(n);if(this.drawCodewords(h),i==-1){let u=1e9;for(let v=0;v<8;v++){this.applyMask(v),this.drawFormatBits(v);const _=this.getPenaltyScore();_<u&&(i=v,u=_),this.applyMask(v)}}g(0<=i&&i<=7),this.mask=i,this.applyMask(i),this.drawFormatBits(i),this.isFunction=[]}static encodeText(e,a){const n=s.QrSegment.makeSegments(e);return N.encodeSegments(n,a)}static encodeBinary(e,a){const n=s.QrSegment.makeBytes(e);return N.encodeSegments([n],a)}static encodeSegments(e,a,n=1,i=40,c=-1,h=!0){if(!(N.MIN_VERSION<=n&&n<=i&&i<=N.MAX_VERSION)||c<-1||c>7)throw new RangeError("Invalid value");let u,v;for(u=n;;u++){const w=N.getNumDataCodewords(u,a)*8,A=j.getTotalBits(e,u);if(A<=w){v=A;break}if(u>=i)throw new RangeError("Data too long")}for(const w of[N.Ecc.MEDIUM,N.Ecc.QUARTILE,N.Ecc.HIGH])h&&v<=N.getNumDataCodewords(u,w)*8&&(a=w);let _=[];for(const w of e){o(w.mode.modeBits,4,_),o(w.numChars,w.mode.numCharCountBits(u),_);for(const A of w.getData())_.push(A)}g(_.length==v);const p=N.getNumDataCodewords(u,a)*8;g(_.length<=p),o(0,Math.min(4,p-_.length),_),o(0,(8-_.length%8)%8,_),g(_.length%8==0);for(let w=236;_.length<p;w^=253)o(w,8,_);let P=[];for(;P.length*8<_.length;)P.push(0);return _.forEach((w,A)=>P[A>>>3]|=w<<7-(A&7)),new N(u,a,P,c)}getModule(e,a){return 0<=e&&e<this.size&&0<=a&&a<this.size&&this.modules[a][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let n=0;n<this.size;n++)this.setFunctionModule(6,n,n%2==0),this.setFunctionModule(n,6,n%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);const e=this.getAlignmentPatternPositions(),a=e.length;for(let n=0;n<a;n++)for(let i=0;i<a;i++)n==0&&i==0||n==0&&i==a-1||n==a-1&&i==0||this.drawAlignmentPattern(e[n],e[i]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){const a=this.errorCorrectionLevel.formatBits<<3|e;let n=a;for(let c=0;c<10;c++)n=n<<1^(n>>>9)*1335;const i=(a<<10|n)^21522;g(i>>>15==0);for(let c=0;c<=5;c++)this.setFunctionModule(8,c,m(i,c));this.setFunctionModule(8,7,m(i,6)),this.setFunctionModule(8,8,m(i,7)),this.setFunctionModule(7,8,m(i,8));for(let c=9;c<15;c++)this.setFunctionModule(14-c,8,m(i,c));for(let c=0;c<8;c++)this.setFunctionModule(this.size-1-c,8,m(i,c));for(let c=8;c<15;c++)this.setFunctionModule(8,this.size-15+c,m(i,c));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let n=0;n<12;n++)e=e<<1^(e>>>11)*7973;const a=this.version<<12|e;g(a>>>18==0);for(let n=0;n<18;n++){const i=m(a,n),c=this.size-11+n%3,h=Math.floor(n/3);this.setFunctionModule(c,h,i),this.setFunctionModule(h,c,i)}}drawFinderPattern(e,a){for(let n=-4;n<=4;n++)for(let i=-4;i<=4;i++){const c=Math.max(Math.abs(i),Math.abs(n)),h=e+i,u=a+n;0<=h&&h<this.size&&0<=u&&u<this.size&&this.setFunctionModule(h,u,c!=2&&c!=4)}}drawAlignmentPattern(e,a){for(let n=-2;n<=2;n++)for(let i=-2;i<=2;i++)this.setFunctionModule(e+i,a+n,Math.max(Math.abs(i),Math.abs(n))!=1)}setFunctionModule(e,a,n){this.modules[a][e]=n,this.isFunction[a][e]=!0}addEccAndInterleave(e){const a=this.version,n=this.errorCorrectionLevel;if(e.length!=N.getNumDataCodewords(a,n))throw new RangeError("Invalid argument");const i=N.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][a],c=N.ECC_CODEWORDS_PER_BLOCK[n.ordinal][a],h=Math.floor(N.getNumRawDataModules(a)/8),u=i-h%i,v=Math.floor(h/i);let _=[];const p=N.reedSolomonComputeDivisor(c);for(let w=0,A=0;w<i;w++){let $=e.slice(A,A+v-c+(w<u?0:1));A+=$.length;const W=N.reedSolomonComputeRemainder($,p);w<u&&$.push(0),_.push($.concat(W))}let P=[];for(let w=0;w<_[0].length;w++)_.forEach((A,$)=>{(w!=v-c||$>=u)&&P.push(A[w])});return g(P.length==h),P}drawCodewords(e){if(e.length!=Math.floor(N.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");let a=0;for(let n=this.size-1;n>=1;n-=2){n==6&&(n=5);for(let i=0;i<this.size;i++)for(let c=0;c<2;c++){const h=n-c,v=(n+1&2)==0?this.size-1-i:i;!this.isFunction[v][h]&&a<e.length*8&&(this.modules[v][h]=m(e[a>>>3],7-(a&7)),a++)}}g(a==e.length*8)}applyMask(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(let a=0;a<this.size;a++)for(let n=0;n<this.size;n++){let i;switch(e){case 0:i=(n+a)%2==0;break;case 1:i=a%2==0;break;case 2:i=n%3==0;break;case 3:i=(n+a)%3==0;break;case 4:i=(Math.floor(n/3)+Math.floor(a/2))%2==0;break;case 5:i=n*a%2+n*a%3==0;break;case 6:i=(n*a%2+n*a%3)%2==0;break;case 7:i=((n+a)%2+n*a%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[a][n]&&i&&(this.modules[a][n]=!this.modules[a][n])}}getPenaltyScore(){let e=0;for(let c=0;c<this.size;c++){let h=!1,u=0,v=[0,0,0,0,0,0,0];for(let _=0;_<this.size;_++)this.modules[c][_]==h?(u++,u==5?e+=N.PENALTY_N1:u>5&&e++):(this.finderPenaltyAddHistory(u,v),h||(e+=this.finderPenaltyCountPatterns(v)*N.PENALTY_N3),h=this.modules[c][_],u=1);e+=this.finderPenaltyTerminateAndCount(h,u,v)*N.PENALTY_N3}for(let c=0;c<this.size;c++){let h=!1,u=0,v=[0,0,0,0,0,0,0];for(let _=0;_<this.size;_++)this.modules[_][c]==h?(u++,u==5?e+=N.PENALTY_N1:u>5&&e++):(this.finderPenaltyAddHistory(u,v),h||(e+=this.finderPenaltyCountPatterns(v)*N.PENALTY_N3),h=this.modules[_][c],u=1);e+=this.finderPenaltyTerminateAndCount(h,u,v)*N.PENALTY_N3}for(let c=0;c<this.size-1;c++)for(let h=0;h<this.size-1;h++){const u=this.modules[c][h];u==this.modules[c][h+1]&&u==this.modules[c+1][h]&&u==this.modules[c+1][h+1]&&(e+=N.PENALTY_N2)}let a=0;for(const c of this.modules)a=c.reduce((h,u)=>h+(u?1:0),a);const n=this.size*this.size,i=Math.ceil(Math.abs(a*20-n*10)/n)-1;return g(0<=i&&i<=9),e+=i*N.PENALTY_N4,g(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{const e=Math.floor(this.version/7)+2,a=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2;let n=[6];for(let i=this.size-7;n.length<e;i-=a)n.splice(1,0,i);return n}}static getNumRawDataModules(e){if(e<N.MIN_VERSION||e>N.MAX_VERSION)throw new RangeError("Version number out of range");let a=(16*e+128)*e+64;if(e>=2){const n=Math.floor(e/7)+2;a-=(25*n-10)*n-55,e>=7&&(a-=36)}return g(208<=a&&a<=29648),a}static getNumDataCodewords(e,a){return Math.floor(N.getNumRawDataModules(e)/8)-N.ECC_CODEWORDS_PER_BLOCK[a.ordinal][e]*N.NUM_ERROR_CORRECTION_BLOCKS[a.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw new RangeError("Degree out of range");let a=[];for(let i=0;i<e-1;i++)a.push(0);a.push(1);let n=1;for(let i=0;i<e;i++){for(let c=0;c<a.length;c++)a[c]=N.reedSolomonMultiply(a[c],n),c+1<a.length&&(a[c]^=a[c+1]);n=N.reedSolomonMultiply(n,2)}return a}static reedSolomonComputeRemainder(e,a){let n=a.map(i=>0);for(const i of e){const c=i^n.shift();n.push(0),a.forEach((h,u)=>n[u]^=N.reedSolomonMultiply(h,c))}return n}static reedSolomonMultiply(e,a){if(e>>>8||a>>>8)throw new RangeError("Byte out of range");let n=0;for(let i=7;i>=0;i--)n=n<<1^(n>>>7)*285,n^=(a>>>i&1)*e;return g(n>>>8==0),n}finderPenaltyCountPatterns(e){const a=e[1];g(a<=this.size*3);const n=a>0&&e[2]==a&&e[3]==a*3&&e[4]==a&&e[5]==a;return(n&&e[0]>=a*4&&e[6]>=a?1:0)+(n&&e[6]>=a*4&&e[0]>=a?1:0)}finderPenaltyTerminateAndCount(e,a,n){return e&&(this.finderPenaltyAddHistory(a,n),a=0),a+=this.size,this.finderPenaltyAddHistory(a,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,a){a[0]==0&&(e+=this.size),a.pop(),a.unshift(e)}};l.MIN_VERSION=1,l.MAX_VERSION=40,l.PENALTY_N1=3,l.PENALTY_N2=3,l.PENALTY_N3=40,l.PENALTY_N4=10,l.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],l.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],s.QrCode=l;function o(b,e,a){if(e<0||e>31||b>>>e)throw new RangeError("Value out of range");for(let n=e-1;n>=0;n--)a.push(b>>>n&1)}function m(b,e){return(b>>>e&1)!=0}function g(b){if(!b)throw new Error("Assertion error")}const f=class I{constructor(e,a,n){if(this.mode=e,this.numChars=a,this.bitData=n,a<0)throw new RangeError("Invalid argument");this.bitData=n.slice()}static makeBytes(e){let a=[];for(const n of e)o(n,8,a);return new I(I.Mode.BYTE,e.length,a)}static makeNumeric(e){if(!I.isNumeric(e))throw new RangeError("String contains non-numeric characters");let a=[];for(let n=0;n<e.length;){const i=Math.min(e.length-n,3);o(parseInt(e.substring(n,n+i),10),i*3+1,a),n+=i}return new I(I.Mode.NUMERIC,e.length,a)}static makeAlphanumeric(e){if(!I.isAlphanumeric(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");let a=[],n;for(n=0;n+2<=e.length;n+=2){let i=I.ALPHANUMERIC_CHARSET.indexOf(e.charAt(n))*45;i+=I.ALPHANUMERIC_CHARSET.indexOf(e.charAt(n+1)),o(i,11,a)}return n<e.length&&o(I.ALPHANUMERIC_CHARSET.indexOf(e.charAt(n)),6,a),new I(I.Mode.ALPHANUMERIC,e.length,a)}static makeSegments(e){return e==""?[]:I.isNumeric(e)?[I.makeNumeric(e)]:I.isAlphanumeric(e)?[I.makeAlphanumeric(e)]:[I.makeBytes(I.toUtf8ByteArray(e))]}static makeEci(e){let a=[];if(e<0)throw new RangeError("ECI assignment value out of range");if(e<128)o(e,8,a);else if(e<16384)o(2,2,a),o(e,14,a);else if(e<1e6)o(6,3,a),o(e,21,a);else throw new RangeError("ECI assignment value out of range");return new I(I.Mode.ECI,0,a)}static isNumeric(e){return I.NUMERIC_REGEX.test(e)}static isAlphanumeric(e){return I.ALPHANUMERIC_REGEX.test(e)}getData(){return this.bitData.slice()}static getTotalBits(e,a){let n=0;for(const i of e){const c=i.mode.numCharCountBits(a);if(i.numChars>=1<<c)return 1/0;n+=4+c+i.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let a=[];for(let n=0;n<e.length;n++)e.charAt(n)!="%"?a.push(e.charCodeAt(n)):(a.push(parseInt(e.substring(n+1,n+3),16)),n+=2);return a}};f.NUMERIC_REGEX=/^[0-9]*$/,f.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,f.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";let j=f;s.QrSegment=f})(oe||(oe={}));(s=>{(l=>{const o=class{constructor(g,f){this.ordinal=g,this.formatBits=f}};o.LOW=new o(0,1),o.MEDIUM=new o(1,0),o.QUARTILE=new o(2,3),o.HIGH=new o(3,2),l.Ecc=o})(s.QrCode||(s.QrCode={}))})(oe||(oe={}));(s=>{(l=>{const o=class{constructor(g,f){this.modeBits=g,this.numBitsCharCount=f}numCharCountBits(g){return this.numBitsCharCount[Math.floor((g+7)/17)]}};o.NUMERIC=new o(1,[10,12,14]),o.ALPHANUMERIC=new o(2,[9,11,13]),o.BYTE=new o(4,[8,16,16]),o.KANJI=new o(8,[8,10,12]),o.ECI=new o(7,[0,0,0]),l.Mode=o})(s.QrSegment||(s.QrSegment={}))})(oe||(oe={}));var ue=oe;/**
16
+ * @license qrcode.react
17
+ * Copyright (c) Paul O'Shannessy
18
+ * SPDX-License-Identifier: ISC
19
+ */var vs={L:ue.QrCode.Ecc.LOW,M:ue.QrCode.Ecc.MEDIUM,Q:ue.QrCode.Ecc.QUARTILE,H:ue.QrCode.Ecc.HIGH},wt=128,yt="L",_t="#FFFFFF",Ct="#000000",kt=!1,jt=1,bs=4,ws=0,ys=.1;function Nt(s,l=0){const o=[];return s.forEach(function(m,g){let f=null;m.forEach(function(j,b){if(!j&&f!==null){o.push(`M${f+l} ${g+l}h${b-f}v1H${f+l}z`),f=null;return}if(b===m.length-1){if(!j)return;f===null?o.push(`M${b+l},${g+l} h1v1H${b+l}z`):o.push(`M${f+l},${g+l} h${b+1-f}v1H${f+l}z`);return}j&&f===null&&(f=b)})}),o.join("")}function Et(s,l){return s.slice().map((o,m)=>m<l.y||m>=l.y+l.h?o:o.map((g,f)=>f<l.x||f>=l.x+l.w?g:!1))}function _s(s,l,o,m){if(m==null)return null;const g=s.length+o*2,f=Math.floor(l*ys),j=g/l,b=(m.width||f)*j,e=(m.height||f)*j,a=m.x==null?s.length/2-b/2:m.x*j,n=m.y==null?s.length/2-e/2:m.y*j,i=m.opacity==null?1:m.opacity;let c=null;if(m.excavate){let u=Math.floor(a),v=Math.floor(n),_=Math.ceil(b+a-u),p=Math.ceil(e+n-v);c={x:u,y:v,w:_,h:p}}const h=m.crossOrigin;return{x:a,y:n,h:e,w:b,excavation:c,opacity:i,crossOrigin:h}}function Cs(s,l){return l!=null?Math.max(Math.floor(l),0):s?bs:ws}function St({value:s,level:l,minVersion:o,includeMargin:m,marginSize:g,imageSettings:f,size:j,boostLevel:b}){let e=D.useMemo(()=>{const u=(Array.isArray(s)?s:[s]).reduce((v,_)=>(v.push(...ue.QrSegment.makeSegments(_)),v),[]);return ue.QrCode.encodeSegments(u,vs[l],o,void 0,void 0,b)},[s,l,o,b]);const{cells:a,margin:n,numCells:i,calculatedImageSettings:c}=D.useMemo(()=>{let h=e.getModules();const u=Cs(m,g),v=h.length+u*2,_=_s(h,j,u,f);return{cells:h,margin:u,numCells:v,calculatedImageSettings:_}},[e,j,f,m,g]);return{qrcode:e,margin:n,cells:a,numCells:i,calculatedImageSettings:c}}var ks=(function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0})(),js=D.forwardRef(function(l,o){const m=l,{value:g,size:f=wt,level:j=yt,bgColor:b=_t,fgColor:e=Ct,includeMargin:a=kt,minVersion:n=jt,boostLevel:i,marginSize:c,imageSettings:h}=m,v=Ie(m,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","marginSize","imageSettings"]),{style:_}=v,p=Ie(v,["style"]),P=h==null?void 0:h.src,w=D.useRef(null),A=D.useRef(null),$=D.useCallback(V=>{w.current=V,typeof o=="function"?o(V):o&&(o.current=V)},[o]),[W,C]=D.useState(!1),{margin:Q,cells:ie,numCells:q,calculatedImageSettings:G}=St({value:g,level:j,minVersion:n,boostLevel:i,includeMargin:a,marginSize:c,imageSettings:h,size:f});D.useEffect(()=>{if(w.current!=null){const V=w.current,H=V.getContext("2d");if(!H)return;let M=ie;const J=A.current,se=G!=null&&J!==null&&J.complete&&J.naturalHeight!==0&&J.naturalWidth!==0;se&&G.excavation!=null&&(M=Et(ie,G.excavation));const he=window.devicePixelRatio||1;V.height=V.width=f*he;const fe=f/q*he;H.scale(fe,fe),H.fillStyle=b,H.fillRect(0,0,q,q),H.fillStyle=e,ks?H.fill(new Path2D(Nt(M,Q))):ie.forEach(function(ae,K){ae.forEach(function(y,ce){y&&H.fillRect(ce+Q,K+Q,1,1)})}),G&&(H.globalAlpha=G.opacity),se&&H.drawImage(J,G.x+Q,G.y+Q,G.w,G.h)}}),D.useEffect(()=>{C(!1)},[P]);const pe=Re({height:f,width:f},_);let le=null;return P!=null&&(le=D.createElement("img",{src:P,key:P,style:{display:"none"},onLoad:()=>{C(!0)},ref:A,crossOrigin:G==null?void 0:G.crossOrigin})),D.createElement(D.Fragment,null,D.createElement("canvas",Re({style:pe,height:f,width:f,ref:$,role:"img"},p)),le)});js.displayName="QRCodeCanvas";var Le=D.forwardRef(function(l,o){const m=l,{value:g,size:f=wt,level:j=yt,bgColor:b=_t,fgColor:e=Ct,includeMargin:a=kt,minVersion:n=jt,boostLevel:i,title:c,marginSize:h,imageSettings:u}=m,v=Ie(m,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","title","marginSize","imageSettings"]),{margin:_,cells:p,numCells:P,calculatedImageSettings:w}=St({value:g,level:j,minVersion:n,boostLevel:i,includeMargin:a,marginSize:h,imageSettings:u,size:f});let A=p,$=null;u!=null&&w!=null&&(w.excavation!=null&&(A=Et(p,w.excavation)),$=D.createElement("image",{href:u.src,height:w.h,width:w.w,x:w.x+_,y:w.y+_,preserveAspectRatio:"none",opacity:w.opacity,crossOrigin:w.crossOrigin}));const W=Nt(A,_);return D.createElement("svg",Re({height:f,width:f,viewBox:`0 0 ${P} ${P}`,ref:o,role:"img"},v),!!c&&D.createElement("title",null,c),D.createElement("path",{fill:b,d:`M0,0 h${P}v${P}H0z`,shapeRendering:"crispEdges"}),D.createElement("path",{fill:e,d:W,shapeRendering:"crispEdges"}),$)});Le.displayName="QRCodeSVG";const te="__custom__",Ee=["weixin","lark"],Fe=[{id:"openai",label:"OpenAI",name:"openai",base_url:"https://api.openai.com/v1",model:"gpt-4.1-mini"},{id:"openrouter",label:"OpenRouter",name:"openrouter",base_url:"https://openrouter.ai/api/v1",model:"openai/gpt-4.1-mini"},{id:"anthropic",label:"Anthropic",name:"anthropic",base_url:"https://api.anthropic.com/v1",model:"claude-3-5-haiku-latest"},{id:"deepseek",label:"DeepSeek",name:"deepseek",base_url:"https://api.deepseek.com",model:"deepseek-v4-flash"},{id:"minimax",label:"Minimax",name:"minimax",base_url:"https://api.minimax.chat/v1",model:"MiniMax-M2.5"},{id:"ollama",label:"Ollama",name:"ollama",base_url:"http://127.0.0.1:11434/v1",model:"qwen2.5-coder:7b"}],z={runtime_image_id:De("pi").id,server_url:"http://127.0.0.1:8080",image:"agentdock/pi-acp:local",api_key_env:"OPEN_SANDBOX_API_KEY",acp_port:"8080",state_scope:"project",timeout_seconds:"7200",sandbox_lifecycle:"per_thread",idle_seconds:"900",warm_pool_size:"0",cpu:"1000m",memory:"2Gi",workspace_mount_path:"/workspace",state_mount_path:"/agent-state"};function U(s){return JSON.parse(JSON.stringify(s))}function me(s){return Array.isArray(s.projects)||(s.projects=[]),s.projects}function Ns(s){const l=new Set(s.map(m=>m.name).filter(Boolean));let o=s.length+1;for(;l.has(`project-${o}`);)o+=1;return{name:`project-${o}`,agentType:cs,workDir:"",model:""}}function ge(s){var l,o,m,g;return{...s,agent:{...s.agent,options:{...((l=s.agent)==null?void 0:l.options)||{},model:xt((o=s.agent)==null?void 0:o.type,String(((g=(m=s.agent)==null?void 0:m.options)==null?void 0:g.model)||""))}},platforms:s.platforms||[]}}function ye(s){return{id:s.id,name:s.name,api_key:s.api_key||"",base_url:s.base_url||"",model:s.model||"",models:s.models||[],thinking:s.thinking||"",env:s.env||{}}}function Pt(s,l){return l.includes(s)?s:te}function Es(s){var l;return((l=Fe.find(o=>s.name===o.name||o.base_url&&s.base_url===o.base_url||o.model&&s.model===o.model&&s.name===o.name))==null?void 0:l.id)||te}function Ss(s,l){const o=Fe.find(m=>m.id===l);return o?{...s,name:o.name,base_url:o.base_url,model:o.model}:s}function Se(s="weixin"){var l;return{type:s,options:{instance_id:`${s}-${((l=crypto.randomUUID)==null?void 0:l.call(crypto))||Date.now().toString(36)}`}}}function re(s){var l;return String(((l=s==null?void 0:s.options)==null?void 0:l.instance_id)||"").trim()||"default"}function be(s){const l=s.type==="feishu"?"lark":s.type,o=s.options&&typeof s.options=="object"?{...s.options}:{};return l==="weixin"?{type:l,options:{...o,instance_id:String(o.instance_id||"").trim()}}:l==="lark"?{type:l,options:{...o,instance_id:String(o.instance_id||"").trim(),app_id:String(o.app_id||"").trim(),app_secret:String(o.app_secret||"").trim(),downloads_dir:String(o.downloads_dir||"").trim(),card_actions:o.card_actions===!0}}:{type:l,options:o}}function Ps(s){var l;if(s.type==="weixin")return"WeChat QR login";if(s.type==="lark"){const o=String(((l=s.options)==null?void 0:l.app_id)||"").trim();return o?`App ID ${o}`:"App ID and secret required"}return"Custom platform"}function Mt(s){var m,g;const l=String(((g=(m=s.agent)==null?void 0:m.options)==null?void 0:g.work_dir)||"").trim();return l?l.replace(/\/+$/,"").split("/").filter(Boolean).pop()||l:"No work directory"}function Ms(s){return s==="success"?"border-primary/20 bg-primary/10 text-primary dark:border-primary/25 dark:bg-primary/10 dark:text-blue-200":s==="warning"?"border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-400/20 dark:bg-amber-500/10 dark:text-amber-200":"border-red-200 bg-red-50 text-red-700 dark:border-red-400/20 dark:bg-red-500/10 dark:text-red-200"}function ft(s){return{enabled:!!(s!=null&&s.enabled),provider_id:(s==null?void 0:s.provider_id)||ze,runtime_image_id:(s==null?void 0:s.runtime_image_id)||z.runtime_image_id,server_url:(s==null?void 0:s.server_url)||z.server_url,image:(s==null?void 0:s.image)||z.image,api_key_env:(s==null?void 0:s.api_key_env)||z.api_key_env,acp_port:String((s==null?void 0:s.acp_port)||z.acp_port),state_scope:(s==null?void 0:s.state_scope)||z.state_scope,timeout_seconds:String((s==null?void 0:s.timeout_seconds)||z.timeout_seconds),sandbox_lifecycle:(s==null?void 0:s.sandbox_lifecycle)||z.sandbox_lifecycle,idle_seconds:String((s==null?void 0:s.idle_seconds)||z.idle_seconds),warm_pool_size:String((s==null?void 0:s.warm_pool_size)??z.warm_pool_size),cpu:(s==null?void 0:s.cpu)||z.cpu,memory:(s==null?void 0:s.memory)||z.memory,workspace_mount_path:(s==null?void 0:s.workspace_mount_path)||z.workspace_mount_path,state_mount_path:(s==null?void 0:s.state_mount_path)||z.state_mount_path}}function As(s){return{enabled:s.enabled,provider_id:s.provider_id.trim()||ze,runtime_image_id:s.runtime_image_id.trim()||z.runtime_image_id,state_scope:s.state_scope,timeout_seconds:Number(s.timeout_seconds)||Number(z.timeout_seconds),sandbox_lifecycle:s.sandbox_lifecycle,idle_seconds:Number(s.idle_seconds)||Number(z.idle_seconds),warm_pool_size:Math.max(0,Number(s.warm_pool_size)||0),cpu:s.cpu.trim()||z.cpu,memory:s.memory.trim()||z.memory}}function Rs({projects:s,selectedIndex:l,onAddProject:o,onSelectProject:m,onRemoveProject:g}){return t.jsx(pt,{title:"项目",actions:t.jsxs(T,{size:"sm",onClick:o,children:[t.jsx(Ce,{size:14})," 新建项目"]}),className:"app-panel lg:self-start",children:s.length===0?t.jsx(Oe,{message:"还没有项目。"}):t.jsx("div",{className:"space-y-2",children:s.map((f,j)=>{var b,e;return t.jsxs("div",{className:`flex items-center justify-between gap-2 ${j===l?"app-list-row app-list-row-active":"app-list-row"}`,children:[t.jsxs("button",{type:"button",onClick:()=>m(j,f),className:"min-w-0 flex-1 text-left",children:[t.jsx("p",{className:"truncate text-sm font-medium text-slate-950 dark:text-white",children:f.name||`Project ${j+1}`}),t.jsxs("p",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:[((b=f.agent)==null?void 0:b.type)||"unknown"," · ",Mt(f)," · ",((e=f.platforms)==null?void 0:e.length)||0," platforms"]})]}),t.jsx(T,{variant:"ghost",size:"sm",className:"app-icon-button shrink-0",onClick:()=>g(j,f),"aria-label":`Remove ${f.name}`,children:t.jsx(Te,{size:14})})]},`${f.name}-${j}`)})})})}function Is({project:s,sandbox:l}){var o,m;return t.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-4",children:[t.jsxs("div",{className:"app-surface p-4",children:[t.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[t.jsx(us,{size:14})," Agent"]}),t.jsx("p",{className:"mt-2 truncate text-sm font-semibold text-foreground",children:((o=s.agent)==null?void 0:o.type)||"unknown"})]}),t.jsxs("div",{className:"app-surface p-4",children:[t.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[t.jsx(Kt,{size:14})," Workspace"]}),t.jsx("p",{className:"mt-2 truncate text-sm font-semibold text-foreground",children:Mt(s)})]}),t.jsxs("div",{className:"app-surface p-4",children:[t.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[t.jsx(hs,{size:14})," Platforms"]}),t.jsxs("p",{className:"mt-2 truncate text-sm font-semibold text-foreground",children:[((m=s.platforms)==null?void 0:m.length)||0," configured"]})]}),t.jsxs("div",{className:"app-surface p-4",children:[t.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[t.jsx(gs,{size:14})," Sandbox"]}),t.jsx("p",{className:"mt-2 truncate text-sm font-semibold text-foreground",children:l.enabled?"Cloud enabled":"Local runtime"})]})]})}function Ls({project:s,updateProject:l}){var o,m,g,f,j,b;return t.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:[t.jsx(L,{label:"Project name",value:s.name,onChange:e=>l(a=>({...a,name:e.target.value}))}),t.jsxs(ee,{label:"Agent type",value:Pt(((o=s.agent)==null?void 0:o.type)||"",Me),onChange:e=>l(a=>{var i;const n=e.target.value===te?a.agent.type:e.target.value;return{...a,agent:{...a.agent,type:n,options:{...a.agent.options||{},model:xt(n,String(((i=a.agent.options)==null?void 0:i.model)||""))}}}}),children:[Me.map(e=>t.jsx("option",{value:e,children:e},e)),t.jsx("option",{value:te,children:"custom"})]}),t.jsx(L,{label:"Host workspace path",value:String(((g=(m=s.agent)==null?void 0:m.options)==null?void 0:g.work_dir)||""),onChange:e=>l(a=>({...a,agent:{...a.agent,options:{...a.agent.options||{},work_dir:e.target.value}}}))}),t.jsx(L,{label:"Default model",value:String(((j=(f=s.agent)==null?void 0:f.options)==null?void 0:j.model)||""),onChange:e=>l(a=>({...a,agent:{...a.agent,options:{...a.agent.options||{},model:e.target.value}}})),placeholder:Ae((b=s.agent)==null?void 0:b.type)||"Use agent default model"})]})}function Os({project:s,modelProviders:l,providerDrafts:o,updateProject:m,updateProviderDraft:g,onAddProvider:f,onSaveProvider:j,onDeleteProvider:b}){var e,a,n,i;return t.jsxs("section",{className:"space-y-3",children:[t.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:[t.jsxs(ee,{label:"Project provider",value:String(((a=(e=s.agent)==null?void 0:e.options)==null?void 0:a.provider_id)||""),onChange:c=>m(h=>({...h,agent:{...h.agent,options:{...h.agent.options||{},provider_id:c.target.value}}})),children:[t.jsx("option",{value:"",children:"No provider"}),l.map(c=>t.jsx("option",{value:c.id,children:c.name},c.id))]}),t.jsx(L,{label:"Model override",value:String(((i=(n=s.agent)==null?void 0:n.options)==null?void 0:i.model)||""),onChange:c=>m(h=>({...h,agent:{...h.agent,options:{...h.agent.options||{},model:c.target.value}}})),placeholder:"Use provider default model"})]}),t.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[t.jsxs("div",{children:[t.jsx("h3",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"Shared providers"}),t.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Providers are shared and selected by projects."})]}),t.jsxs(T,{size:"sm",variant:"secondary",onClick:f,children:[t.jsx(Ce,{size:14})," Add provider"]})]}),l.length===0?t.jsx("div",{className:"rounded-xl border border-black/10 px-4 py-4 text-sm text-muted-foreground dark:border-white/[0.08]",children:"No shared providers configured."}):t.jsx("div",{className:"space-y-3",children:l.map(c=>{const h=o[c.id]||ye(c);return t.jsx("div",{className:"app-surface p-4",children:t.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:[t.jsxs(ee,{label:"Preset",value:Es(h),onChange:u=>{u.target.value!==te&&g(c.id,v=>Ss(v,u.target.value))},children:[Fe.map(u=>t.jsx("option",{value:u.id,children:u.label},u.id)),t.jsx("option",{value:te,children:"custom"})]}),t.jsx(L,{label:"Name",value:h.name||"",onChange:u=>g(c.id,v=>({...v,name:u.target.value}))}),t.jsx(L,{label:"API key",type:"password",value:h.api_key||"",onChange:u=>g(c.id,v=>({...v,api_key:u.target.value}))}),t.jsx(L,{label:"Base URL",value:h.base_url||"",onChange:u=>g(c.id,v=>({...v,base_url:u.target.value}))}),t.jsx(L,{label:"Default model",value:h.model||"",onChange:u=>g(c.id,v=>({...v,model:u.target.value}))}),t.jsxs("div",{className:"flex items-end gap-2",children:[t.jsxs(T,{variant:"secondary",size:"sm",onClick:()=>j(c.id),children:[t.jsx(we,{size:14})," Save"]}),t.jsxs(T,{variant:"danger",size:"sm",onClick:()=>b(c.id),children:[t.jsx(Te,{size:14})," Remove"]})]})]})},c.id)})})]})}function zs({project:s,updateProject:l,onOpenPlatformDialog:o}){return t.jsxs("section",{className:"space-y-3",children:[t.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[t.jsxs("div",{children:[t.jsx("h3",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"Platforms"}),t.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Configure each platform with its own required connection fields."})]}),t.jsxs(T,{size:"sm",variant:"secondary",onClick:()=>o(null),children:[t.jsx(Ce,{size:14})," Platform"]})]}),(s.platforms||[]).length===0?t.jsx(Oe,{message:"No platforms configured."}):t.jsx("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:(s.platforms||[]).map((m,g)=>t.jsxs("div",{className:"app-list-row flex items-center justify-between gap-3",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("p",{className:"truncate text-sm font-medium text-slate-950 dark:text-white",children:m.type}),t.jsx("p",{className:"mt-1 truncate text-xs text-muted-foreground",children:Ps(m)})]}),t.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[t.jsx(T,{variant:"secondary",size:"sm",className:"app-icon-button",onClick:()=>o(g),"aria-label":`Configure ${m.type}`,children:t.jsx(Xt,{size:14})}),t.jsx(T,{variant:"danger",size:"sm",className:"app-icon-button",onClick:()=>l(f=>{const j=[...f.platforms||[]];return j.splice(g,1),{...f,platforms:j}}),children:t.jsx(Te,{size:14})})]})]},`${m.type}-${g}`))})]})}function Ds({project:s,sandbox:l,profile:o,sandboxProvider:m,runtimeImage:g,updateSandbox:f,updateDeploymentProfile:j}){return t.jsxs("section",{className:"space-y-4",children:[t.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[t.jsxs("div",{children:[t.jsx("h3",{className:"text-sm font-semibold text-slate-950 dark:text-white",children:"云端模式"}),t.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"通过 OpenSandbox 为 Agent 运行启动独立容器。"})]}),t.jsx(Pe,{tone:l.enabled?"success":"neutral",children:l.enabled?"Enabled":"Local"})]}),t.jsxs("label",{className:"app-toolbar flex items-center gap-3 text-sm font-medium text-slate-950 dark:text-white",children:[t.jsx("input",{type:"checkbox",className:"h-4 w-4 rounded border-black/20 dark:border-white/20",checked:l.enabled,onChange:b=>f(e=>{var a;return{...e,enabled:b.target.checked,provider_id:e.provider_id||ze,runtime_image_id:e.runtime_image_id||De(((a=s==null?void 0:s.agent)==null?void 0:a.type)||"pi").id}})}),"启用云端模式(Sandbox)"]}),l.enabled?t.jsxs("div",{className:"space-y-4",children:[t.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:[t.jsx(ee,{label:"Deployment",value:o.id,onChange:b=>j(b.target.value),children:ds.map(b=>t.jsx("option",{value:b.id,children:b.label},b.id))}),t.jsxs(ee,{label:"State scope",value:l.state_scope,onChange:b=>f(e=>({...e,state_scope:b.target.value})),children:[t.jsx("option",{value:"user",children:"User"}),t.jsx("option",{value:"project",children:"Project"}),t.jsx("option",{value:"thread",children:"Thread"}),t.jsx("option",{value:"run",children:"Run"})]}),t.jsx(L,{label:"CPU",value:l.cpu,onChange:b=>f(e=>({...e,cpu:b.target.value}))}),t.jsx(L,{label:"Memory",value:l.memory,onChange:b=>f(e=>({...e,memory:b.target.value}))}),t.jsx(L,{label:"Timeout seconds",type:"number",value:l.timeout_seconds,onChange:b=>f(e=>({...e,timeout_seconds:b.target.value}))}),t.jsxs(ee,{label:"Sandbox lifecycle",value:l.sandbox_lifecycle,onChange:b=>f(e=>({...e,sandbox_lifecycle:b.target.value})),children:[t.jsx("option",{value:"per_thread",children:"Keep warm per thread"}),t.jsx("option",{value:"per_run",children:"Close after each run"})]}),t.jsx(L,{label:"Idle seconds",type:"number",value:l.idle_seconds,onChange:b=>f(e=>({...e,idle_seconds:b.target.value}))}),t.jsx(L,{label:"Warm pool",type:"number",value:l.warm_pool_size,onChange:b=>f(e=>({...e,warm_pool_size:b.target.value}))})]}),t.jsxs("div",{className:"rounded-xl border border-black/10 px-4 py-3 text-sm text-muted-foreground dark:border-white/[0.08]",children:[t.jsx("div",{className:"font-medium text-slate-950 dark:text-white",children:"当前运行配置"}),t.jsxs("div",{className:"mt-2 grid grid-cols-1 gap-2 md:grid-cols-2",children:[t.jsxs("div",{children:["OpenSandbox: ",m.server_url||"not configured"]}),t.jsxs("div",{children:["Image: ",g.image]}),t.jsxs("div",{children:["ACP port: ",g.acp_port]}),t.jsxs("div",{children:["Sandbox workspace path: ",g.workspace_mount_path||o.workspaceMountPath]}),t.jsxs("div",{children:["State mount: ",g.state_mount_path||o.stateMountPath]}),t.jsxs("div",{children:["API key env: ",m.api_key_env||"OPEN_SANDBOX_API_KEY"]})]})]}),t.jsxs("details",{className:"rounded-xl border border-black/10 px-4 py-3 text-sm dark:border-white/[0.08]",children:[t.jsx("summary",{className:"cursor-pointer font-medium text-slate-950 dark:text-white",children:"Advanced"}),t.jsx("div",{className:"mt-3 text-muted-foreground",children:"Host workspace path 是 OpenSandbox 挂载源;Sandbox workspace path 是 Agent 容器内的工作目录。Core 只启动代理进程,不直接使用 host workspace path 作为代理工作目录。"})]})]}):t.jsx("div",{className:"rounded-xl border border-black/10 px-4 py-3 text-sm text-muted-foreground dark:border-white/[0.08]",children:"当前项目会继续使用本地 Agent runtime。"})]})}function ea(){var He,Ye,Ve,We,Ke,Xe,qe,Je,Ze,et,tt,st,at;const[s,l]=qt(),o=s.get("project")||"",[m,g]=S.useState(null),[f,j]=S.useState(null),[b,e]=S.useState([]),[a,n]=S.useState({}),[i,c]=S.useState(0),[h,u]=S.useState("basic"),[v,_]=S.useState(null),[p,P]=S.useState(null),[w,A]=S.useState(null),[$,W]=S.useState(!1),[C,Q]=S.useState(null),[ie,q]=S.useState(!1),[G,pe]=S.useState(!0),[le,V]=S.useState(""),[H,M]=S.useState(null),J=S.useRef(null),se=S.useRef(null),he=S.useRef(i),fe=S.useRef(""),ae=S.useCallback(async(r="")=>{pe(!0);try{const[d,x]=await Promise.all([Zt(),es()]),k=U(d.config||{});if(k.projects=me(k).map(E=>ge(E)),g(k),j(U(k)),e(x.providers||[]),n(Object.fromEntries((x.providers||[]).map(E=>[E.id,ye(E)]))),r){const E=(k.projects||[]).findIndex(O=>O.name===r);c(E>=0?E:0)}}catch(d){M({tone:"error",message:d instanceof Error?d.message:String(d)})}finally{pe(!1)}},[]);S.useEffect(()=>{ae(o)},[ae]);const K=(m==null?void 0:m.projects)||[],y=K[i]||null,ce=ft((Ye=(He=y==null?void 0:y.agent)==null?void 0:He.options)==null?void 0:Ye.sandbox),Be=dt(String((m==null?void 0:m.deployment_profile)||"").trim()),At=((m==null?void 0:m.sandbox_providers)||[]).find(r=>r.id===ce.provider_id)||mt(Be.id),Rt=((m==null?void 0:m.sandbox_runtime_images)||[]).find(r=>r.id===ce.runtime_image_id)||De(((Ve=y==null?void 0:y.agent)==null?void 0:Ve.type)||"pi"),Ue=JSON.stringify(m||{})!==JSON.stringify(f||{});S.useEffect(()=>{J.current=m},[m]),S.useEffect(()=>{se.current=p},[p]),S.useEffect(()=>{he.current=i,fe.current=(y==null?void 0:y.name)||""},[i,y==null?void 0:y.name]),S.useEffect(()=>{if(!m||!o)return;const r=K.findIndex(d=>d.name===o);r>=0&&r!==i&&c(r)},[m,K,o,i]);const de=S.useCallback(r=>{g(d=>{if(!d)return d;const x=U(d),k=me(x),E=k[i];return E?(k[i]=ge(r(E)),x):d})},[i]),It=S.useCallback(r=>{de(d=>{var x;return{...d,agent:{...d.agent,options:{...d.agent.options||{},sandbox:As(r(ft((x=d.agent.options)==null?void 0:x.sandbox)))}}}})},[de]),Lt=S.useCallback(r=>{const d=dt(r);g(x=>{if(!x)return x;const k=U(x);k.deployment_profile=d.id;const E=mt(d.id),O=Array.isArray(k.sandbox_providers)?[...k.sandbox_providers]:[],B=O.findIndex(F=>F.id===E.id);return B>=0?O[B]={...O[B],server_url:E.server_url}:O.push(E),k.sandbox_providers=O,k})},[]),Ot=()=>{_(Ns(K))},zt=S.useCallback((r,d)=>{n(x=>{const k=x[r];return k?{...x,[r]:d(k)}:x})},[]),Dt=async()=>{try{const r=await as({name:`provider-${b.length+1}`});e(d=>[...d,r].sort((x,k)=>x.name.localeCompare(k.name))),n(d=>({...d,[r.id]:ye(r)})),M({tone:"success",message:"Provider created."})}catch(r){M({tone:"error",message:r instanceof Error?r.message:String(r)})}},Tt=async r=>{const d=a[r];if(d)try{const x=await ns(r,d);e(k=>k.map(E=>E.id===x.id?x:E).sort((E,O)=>E.name.localeCompare(O.name))),n(k=>({...k,[x.id]:ye(x)})),M({tone:"success",message:"Provider saved."})}catch(x){M({tone:"error",message:x instanceof Error?x.message:String(x)})}},Ft=async r=>{try{await rs(r),e(d=>d.filter(x=>x.id!==r)),n(d=>{const x={...d};return delete x[r],x}),M({tone:"success",message:"Provider removed."})}catch(d){M({tone:"error",message:d instanceof Error?d.message:String(d)})}},xe=r=>{_(d=>d&&{...d,...r})},Bt=()=>{if(!v)return;const r=v.name.trim(),d=v.agentType.trim(),x=v.workDir.trim(),k=v.model.trim();if(!r||!d||!x){M({tone:"warning",message:"Project name, agent type, and work directory are required."});return}if(K.some(B=>B.name===r)){M({tone:"warning",message:`Project "${r}" already exists.`});return}const E=ge({name:r,agent:{type:d,options:{model:k||Ae(d),work_dir:x},providers:[]},platforms:[],admin_from:"",disabled_commands:[]}),O=K.length;g(B=>{const F=U(B||{});return me(F).push(E),F}),c(O),l({project:r}),_(null),M(null)},Ut=r=>{g(d=>{if(!d)return d;const x=U(d),k=me(x);return k.splice(r,1),c(Math.max(0,Math.min(r,k.length-1))),x})},$t=r=>{var x;if(A(null),Q(null),r===null){P({index:r,draft:Se()});return}const d=(x=y==null?void 0:y.platforms)==null?void 0:x[r];d&&P({index:r,draft:U(d)})},Z=r=>{P(d=>d&&{...d,draft:r(d.draft)})},Qt=()=>{if(!p)return;const r=be(p.draft);de(d=>{const x=[...d.platforms||[]];return p.index===null?x.push(r):x[p.index]=r,{...d,platforms:x}}),P(null),A(null),Q(null)},$e=async()=>{if(!p||!m)return p==null?void 0:p.draft;const r=U(m),d=me(r),x=d[i];if(!x)return p.draft;const k=[...x.platforms||[]],E=be(p.draft);p.index===null?k.push(E):k[p.index]=E,d[i]=ge({...x,platforms:k});const O=await Ne(r),B=U(O.config||r);return j(B),g(U(B)),P(F=>F&&{index:F.index??k.length-1,draft:E}),E},Gt=async()=>{if(!(!(y!=null&&y.name)||!m)){W(!0);try{await $e();const r=await os(y.name,re(p==null?void 0:p.draft));A({...r,status:"wait",createdAt:Date.now()}),M(null)}catch(r){M({tone:"error",message:r instanceof Error?r.message:String(r)})}finally{W(!1)}}},Ht=async()=>{if(!(!(y!=null&&y.name)||!m)){q(!0);try{await $e();const r=await is(y.name,re(p==null?void 0:p.draft));Q({...r,status:"wait",createdAt:Date.now()}),M(null)}catch(r){M({tone:"error",message:r instanceof Error?r.message:String(r)})}finally{q(!1)}}},Yt=async()=>{if(!(!(y!=null&&y.name)||!(w!=null&&w.ticket))){W(!0);try{const r=await ls(y.name,w.ticket,re(p==null?void 0:p.draft));A(d=>d&&{...d,status:r.status}),r.status==="confirmed"&&M({tone:"success",message:"WeChat QR code confirmed."})}catch(r){M({tone:"error",message:r instanceof Error?r.message:String(r)})}finally{W(!1)}}},Qe=S.useCallback(async(r,d)=>{const x=await ts(r,d);if(x.status!=="running"||x.connected!==!0)throw new Error(x.lastError||"Lark bot credentials were saved, but the gateway is not connected yet.");const k=await ss(r,d);if(!k.success)throw new Error(k.error||"Lark bot credentials were saved, but the connection test failed.")},[]),ke=S.useCallback(async r=>{var rt,ot,it;const d=fe.current,x=re((rt=se.current)==null?void 0:rt.draft),k=J.current;if(!k)return;const E=U(k),O=me(E),B=he.current,F=O[B];if(!F)return;const R=[...F.platforms||[]],Y=se.current,X=(Y==null?void 0:Y.index)??R.findIndex(ne=>be(ne).type==="lark"&&re(ne)===x),ve=X>=0?R[X]:(Y==null?void 0:Y.draft)||Se("lark"),je=be({...ve,type:"lark",options:{...ve.options||{},instance_id:x,app_id:r.appId,app_secret:r.appSecret,verification_token:r.verificationToken||((ot=ve.options)==null?void 0:ot.verification_token)||"",encrypt_key:r.encryptKey||((it=ve.options)==null?void 0:it.encrypt_key)||"",card_actions:!0,subscribed_events:"im.message.receive_v1 card.action.trigger",subscribed_callbacks:"card.action.trigger"}});X>=0?R[X]=je:R.push(je),O[B]=ge({...F,platforms:R});const Wt=await Ne(E),nt=U(Wt.config||E);j(nt),g(U(nt)),P(ne=>ne&&{...ne,index:ne.index??(X>=0?X:R.length-1),draft:je}),await Qe(d,x),M({tone:"success",message:"Lark bot bound, saved, and ready to send messages."}),await ae(d)},[Qe,ae]),Vt=async()=>{if(!(!(y!=null&&y.name)||!(C!=null&&C.ticket)||!m)){q(!0);try{const r=await ct(y.name,C.ticket,re(p==null?void 0:p.draft));Q(d=>{var x;return d&&{...d,status:r.status,botName:(x=r.credentials)==null?void 0:x.botName}}),r.status==="confirmed"&&r.credentials?await ke(r.credentials):r.status==="expired"&&M({tone:"warning",message:"Lark QR code expired. Generate a new QR code and scan again."})}catch(r){M({tone:"error",message:r instanceof Error?r.message:String(r)})}finally{q(!1)}}};S.useEffect(()=>{if(!(y!=null&&y.name)||!(C!=null&&C.ticket)||(p==null?void 0:p.draft.type)!=="lark"||C.status&&!["wait","signed"].includes(C.status))return;let r=!1,d;const k=(C.createdAt||Date.now())+Math.max(C.expiresIn||0,1)*1e3,E=Math.max(3,Math.min(Number(C.interval||5)||5,15))*1e3,O=F=>{d=window.setTimeout(()=>{B()},F)},B=async()=>{var F;if(!r){if(Date.now()>=k){Q(R=>(R==null?void 0:R.ticket)===C.ticket?{...R,status:"expired"}:R),M({tone:"warning",message:"Lark QR code expired. Generate a new QR code and scan again."});return}try{const R=await ct(y.name,C.ticket,re((F=se.current)==null?void 0:F.draft));if(r)return;if(Q(Y=>{var X;return(Y==null?void 0:Y.ticket)===C.ticket?{...Y,status:R.status,botName:(X=R.credentials)==null?void 0:X.botName}:Y}),R.status==="confirmed"&&R.credentials){await ke(R.credentials);return}if(R.status==="expired"){M({tone:"warning",message:"Lark QR code expired. Generate a new QR code and scan again."});return}O(E)}catch(R){if(r)return;M({tone:"error",message:R instanceof Error?R.message:String(R)})}}};return O(Math.min(2e3,E)),()=>{r=!0,d&&window.clearTimeout(d)}},[C==null?void 0:C.createdAt,C==null?void 0:C.expiresIn,C==null?void 0:C.interval,C==null?void 0:C.status,C==null?void 0:C.ticket,p==null?void 0:p.draft.type,ke,y==null?void 0:y.name]);const Ge=async()=>{if(m){V("config");try{const r=await Ne(m);j(U(r.config||m)),g(U(r.config||m)),M({tone:"success",message:"Project changes saved."}),await ae()}catch(r){M({tone:"error",message:r instanceof Error?r.message:String(r)})}finally{V("")}}};return G&&!m?t.jsx("div",{className:"flex h-64 items-center justify-center text-sm text-slate-400 animate-pulse",children:"Loading workspace..."}):t.jsxs("div",{className:"space-y-6 animate-fade-in",children:[t.jsx(Jt,{title:"工作区",description:"创建项目,配置 Agent、工作目录、Provider 和平台接入。"}),H?t.jsx("div",{role:"status",className:`rounded-xl border px-4 py-3 text-sm ${Ms(H.tone)}`,children:H.message}):null,Ue?t.jsxs("div",{className:"app-toolbar flex flex-col gap-3 border-amber-200 bg-amber-50 text-sm text-amber-700 dark:border-amber-400/20 dark:bg-amber-500/10 dark:text-amber-200 sm:flex-row sm:items-center sm:justify-between",children:[t.jsx("span",{children:"You have unsaved project changes."}),t.jsxs(T,{size:"sm",onClick:()=>void Ge(),loading:le==="config",children:[t.jsx(we,{size:14})," Save changes"]})]}):null,t.jsxs("div",{className:"grid min-w-0 grid-cols-1 gap-4 lg:grid-cols-[340px_minmax(0,1fr)]",children:[t.jsx(Rs,{projects:K,selectedIndex:i,onAddProject:Ot,onSelectProject:(r,d)=>{c(r),l(d.name?{project:d.name}:{})},onRemoveProject:r=>Ut(r)}),t.jsx(pt,{title:(y==null?void 0:y.name)||"Project details",description:y?t.jsxs("span",{className:"break-all",children:[((We=y.agent)==null?void 0:We.type)||"unknown"," · ",String(((Xe=(Ke=y.agent)==null?void 0:Ke.options)==null?void 0:Xe.work_dir)||"No work directory")]}):void 0,className:"app-panel",children:y?t.jsxs("div",{className:"space-y-6",children:[t.jsx(Is,{project:y,sandbox:ce}),t.jsx("div",{className:"flex gap-2 overflow-x-auto border-b border-black/10 pb-4 [scrollbar-width:none] dark:border-white/[0.08] [&::-webkit-scrollbar]:hidden sm:flex-wrap",children:[["basic","基本信息"],["providers","Provider"],["platforms","平台接入"],["sandbox","云端模式"]].map(([r,d])=>t.jsx("button",{type:"button",onClick:()=>u(r),className:`app-segment ${h===r?"app-segment-active":"app-segment-idle"}`,children:d},r))}),h==="basic"?t.jsx(Ls,{project:y,updateProject:de}):null,h==="providers"?t.jsx(Os,{project:y,modelProviders:b,providerDrafts:a,updateProject:de,updateProviderDraft:zt,onAddProvider:()=>void Dt(),onSaveProvider:r=>void Tt(r),onDeleteProvider:r=>void Ft(r)}):null,h==="platforms"?t.jsx(zs,{project:y,updateProject:de,onOpenPlatformDialog:$t}):null,h==="sandbox"?t.jsx(Ds,{project:y,sandbox:ce,profile:Be,sandboxProvider:At,runtimeImage:Rt,updateSandbox:It,updateDeploymentProfile:Lt}):null,t.jsx("div",{className:"flex flex-wrap gap-2 border-t border-black/10 pt-5 dark:border-white/[0.08]",children:t.jsxs(T,{className:"w-full sm:w-auto",onClick:()=>void Ge(),loading:le==="config",disabled:!Ue&&le!=="config",children:[t.jsx(we,{size:14})," 保存更改"]})})]}):t.jsx(Oe,{message:"选择或新建项目后开始配置。"})})]}),t.jsx(lt,{open:!!v,onClose:()=>_(null),title:"新建项目",children:v?t.jsxs("div",{className:"space-y-4",children:[t.jsx(L,{label:"Project name",value:v.name,onChange:r=>xe({name:r.target.value}),autoFocus:!0}),t.jsx(ee,{label:"Agent type",value:v.agentType,onChange:r=>{const d=r.target.value;xe({agentType:d})},children:Me.map(r=>t.jsx("option",{value:r,children:r},r))}),t.jsx(L,{label:"Host workspace path",value:v.workDir,onChange:r=>xe({workDir:r.target.value}),placeholder:"/Users/yinyin/code/my-project"}),t.jsx(L,{label:"Default model",value:v.model,onChange:r=>xe({model:r.target.value}),placeholder:Ae(v.agentType)||"Use agent default model"}),t.jsxs("div",{className:"flex flex-col-reverse gap-2 pt-2 sm:flex-row sm:justify-end",children:[t.jsx(T,{className:"w-full sm:w-auto",variant:"secondary",onClick:()=>_(null),children:"Cancel"}),t.jsxs(T,{className:"w-full sm:w-auto",onClick:Bt,children:[t.jsx(Ce,{size:14})," 新建项目"]})]})]}):null}),t.jsx(lt,{open:!!p,onClose:()=>{P(null),A(null),Q(null)},title:(p==null?void 0:p.index)===null?"Add platform":"Configure platform",children:p?t.jsxs("div",{className:"space-y-4",children:[t.jsxs(ee,{label:"Platform",value:Pt(p.draft.type,[...Ee]),onChange:r=>{const d=r.target.value===te?p.draft.type:r.target.value;Z(()=>Se(d)),A(null),Q(null)},children:[Ee.map(r=>t.jsx("option",{value:r,children:r},r)),ms.filter(r=>!Ee.includes(r)).map(r=>t.jsx("option",{value:r,children:r},r)),t.jsx("option",{value:te,children:"custom"})]}),p.draft.type==="lark"?t.jsxs("div",{className:"grid grid-cols-1 gap-3",children:[C!=null&&C.qrCodeUrl?t.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-lg border border-black/10 p-4 dark:border-white/[0.08]",children:[t.jsx("div",{className:"rounded-lg border border-black/10 bg-white p-3",children:t.jsx(Le,{value:C.qrCodeUrl,size:176,includeMargin:!0})}),t.jsx(Pe,{tone:C.status==="confirmed"?"success":C.status==="expired"?"danger":"warning",children:C.botName||C.status||"wait"})]}):null,t.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap",children:[t.jsxs(T,{className:"w-full sm:w-auto",variant:"secondary",onClick:()=>void Ht(),loading:ie,children:[t.jsx(ut,{size:14})," Generate QR"]}),t.jsx(T,{className:"w-full sm:w-auto",variant:"secondary",onClick:()=>void Vt(),loading:ie,disabled:!(C!=null&&C.ticket),children:"Check status"})]}),t.jsx(L,{label:"App ID",value:String(((qe=p.draft.options)==null?void 0:qe.app_id)||""),onChange:r=>Z(d=>({...d,options:{...d.options||{},app_id:r.target.value}})),placeholder:"cli_xxx"}),t.jsx(L,{label:"App Secret",type:"password",value:String(((Je=p.draft.options)==null?void 0:Je.app_secret)||""),onChange:r=>Z(d=>({...d,options:{...d.options||{},app_secret:r.target.value}}))}),t.jsx(L,{label:"Downloads directory",value:String(((Ze=p.draft.options)==null?void 0:Ze.downloads_dir)||""),onChange:r=>Z(d=>({...d,options:{...d.options||{},downloads_dir:r.target.value}})),placeholder:".agentdock/channel-uploads/lark/<instanceId>"}),t.jsx(L,{label:"Verification token",value:String(((et=p.draft.options)==null?void 0:et.verification_token)||""),onChange:r=>Z(d=>({...d,options:{...d.options||{},verification_token:r.target.value}}))}),t.jsx(L,{label:"Encrypt key",value:String(((tt=p.draft.options)==null?void 0:tt.encrypt_key)||""),onChange:r=>Z(d=>({...d,options:{...d.options||{},encrypt_key:r.target.value}}))}),t.jsxs("label",{className:"flex items-center gap-3 text-sm text-foreground",children:[t.jsx("input",{type:"checkbox",checked:((st=p.draft.options)==null?void 0:st.auto_approve)===!0,onChange:r=>Z(d=>({...d,options:{...d.options||{},auto_approve:r.target.checked}}))}),"Auto-approve Lark users"]}),t.jsxs("label",{className:"flex items-center gap-3 text-sm text-foreground",children:[t.jsx("input",{type:"checkbox",checked:((at=p.draft.options)==null?void 0:at.card_actions)===!0,onChange:r=>Z(d=>({...d,options:{...d.options||{},card_actions:r.target.checked}}))}),"Enable Lark card action buttons"]})]}):null,p.draft.type==="weixin"?t.jsxs("div",{className:"space-y-3",children:[t.jsx("div",{className:"rounded-lg border border-black/10 bg-black/[0.03] px-3 py-3 text-sm text-muted-foreground dark:border-white/[0.08] dark:bg-white/[0.04]",children:"WeChat does not need an App ID or secret. Save this platform, then generate a QR code and scan it to finish login."}),w!=null&&w.qrCodeUrl?t.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-lg border border-black/10 p-4 dark:border-white/[0.08]",children:[t.jsx("div",{className:"rounded-lg border border-black/10 bg-white p-3",children:t.jsx(Le,{value:w.qrCodeUrl,size:176,includeMargin:!0})}),t.jsx(Pe,{tone:w.status==="confirmed"?"success":w.status==="expired"?"danger":"warning",children:w.status||"wait"})]}):null,t.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap",children:[t.jsxs(T,{className:"w-full sm:w-auto",variant:"secondary",onClick:()=>void Gt(),loading:$,children:[t.jsx(ut,{size:14})," Generate QR"]}),t.jsx(T,{className:"w-full sm:w-auto",variant:"secondary",onClick:()=>void Yt(),loading:$,disabled:!(w!=null&&w.ticket),children:"Check status"})]})]}):null,p.draft.type!=="lark"&&p.draft.type!=="weixin"?t.jsx("div",{className:"rounded-lg border border-black/10 bg-black/[0.03] px-3 py-3 text-sm text-muted-foreground dark:border-white/[0.08] dark:bg-white/[0.04]",children:"This platform has no daily UI fields yet. Existing advanced options are preserved in config."}):null,t.jsxs("div",{className:"flex flex-col-reverse gap-2 border-t border-black/10 pt-4 dark:border-white/[0.08] sm:flex-row sm:justify-end",children:[t.jsx(T,{className:"w-full sm:w-auto",variant:"secondary",onClick:()=>P(null),children:"Cancel"}),t.jsxs(T,{className:"w-full sm:w-auto",onClick:Qt,children:[t.jsx(we,{size:14})," Apply"]})]})]}):null})]})}export{ea as default};
@@ -1,4 +1,4 @@
1
- import{c as o}from"./index-CDWUe2Sw.js";/**
1
+ import{c as o}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as o}from"./index-CDWUe2Sw.js";/**
1
+ import{c as o}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as t}from"./index-CDWUe2Sw.js";/**
1
+ import{c as t}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c}from"./index-CDWUe2Sw.js";/**
1
+ import{c}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as o}from"./index-CDWUe2Sw.js";/**
1
+ import{c as o}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c}from"./index-CDWUe2Sw.js";/**
1
+ import{c}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{a3 as l,s as g,a4 as c,a5 as u,a6 as h,a7 as C,a8 as v,a9 as k,aa as p,ab as m,ac as w,ad as P,ae as S,af as L,ag as R,ah as y,ai as D,aj as b,ak as f,al as G,am as Q,an as E,ao as M,ap as B,aq as A,ar as I,as as W,at as K,au as x,av as T,aw as $,ax as j,ay as U,az as z,aA as q,aB as _,aC as F,aD as H,aE as J,aF as N,p as i,m as O,aG as V,aH as X,aI as Y,aJ as Z,aK as ee,aL as te,aM as ae,i as ne}from"./index-CDWUe2Sw.js";function s(){if(!window.desktop)throw new Error("Desktop APIs are unavailable in the browser build");return window.desktop}const se={getRuntimeStatus:()=>s().getRuntimeStatus(),startService:()=>s().startService(),stopService:()=>s().stopService(),restartService:()=>s().restartService(),getLogs:e=>s().getLogs(e),listInstalledAgentRuntimes:()=>F().then(e=>e.runtimes),refreshInstalledAgentRuntimes:()=>_().then(e=>e.runtimes),readRuntimeConfig:()=>s().readRuntimeConfig(),saveRuntimeConfig:e=>s().saveRuntimeConfig(e),listModelProviders:()=>q(),createModelProvider:e=>z(e),updateModelProvider:(e,t)=>U(e,t),deleteModelProvider:e=>j(e),getThreadKnowledgeBases:(e,t)=>s().getThreadKnowledgeBases(e,t),updateThreadKnowledgeBases:(e,t,a)=>s().updateThreadKnowledgeBases(e,t,a),deleteThreadKnowledgeBases:(e,t)=>s().deleteThreadKnowledgeBases(e,t),saveSettings:e=>s().saveSettings(e),getCapabilitySnapshot:()=>$(),getPluginDiagnostics:()=>T(),listDiagnosticErrors:()=>x().then(e=>e.errors),runDiagnosticsDoctor:()=>K(),runDeploymentDiagnostics:()=>W(),listChannelGateways:e=>I(e).then(t=>t.gateways),getChannelGatewayStatus:(e,t,a)=>A(e,t,a),testChannelConnection:(e,t,a)=>B(e,t,a),enableChannelGateway:(e,t,a)=>M(e,t,a),disableChannelGateway:(e,t,a)=>E(e,t,a),listChannelPendingPairings:(e,t)=>Q(e,t).then(a=>a.pairings),approveChannelPairing:(e,t)=>G(e,t),rejectChannelPairing:(e,t)=>f(e,t),listChannelAuthorizedUsers:(e,t)=>b(e,t).then(a=>a.users),getChannelQrCode:(e,t,a)=>D(e,t,a),checkChannelQrCodeStatus:(e,t,a,r)=>y(e,t,a,r),getWeixinQrCode:(e,t)=>R(e,t),checkWeixinQrCodeStatus:(e,t,a)=>L(e,t,a),getLarkQrCode:(e,t)=>S(e,t),checkLarkQrCodeStatus:(e,t,a)=>P(e,t,a),listLarkGateways:()=>w().then(e=>e.gateways),getLarkGatewayStatus:(e,t)=>m(e,t),testLarkConnection:(e,t)=>p(e,t),enableLarkGateway:(e,t)=>k(e,t),disableLarkGateway:(e,t)=>v(e,t),listLarkPendingPairings:e=>C(e).then(t=>t.pairings),approveLarkPairing:e=>h(e),rejectLarkPairing:e=>u(e),listLarkAuthorizedUsers:e=>c(e).then(t=>t.users),probeWorkspaceStreaming:e=>s().probeWorkspaceStreaming(e),onRuntimeEvent:e=>s().onRuntimeEvent(e),onRuntimeDetectionEvent:e=>g(t=>{(t.type.startsWith("runtime.detect.")||t.type==="runtime.status.changed")&&e(t)}),onBridgeEvent:e=>l(e)},o={getRuntimeStatus:()=>ae(),startService:()=>te(),stopService:()=>ee(),restartService:()=>Z(),getLogs:e=>Y(e),listInstalledAgentRuntimes:()=>F().then(e=>e.runtimes),refreshInstalledAgentRuntimes:()=>_().then(e=>e.runtimes),readRuntimeConfig:()=>X(),saveRuntimeConfig:e=>V(e),listModelProviders:()=>q(),createModelProvider:e=>z(e),updateModelProvider:(e,t)=>U(e,t),deleteModelProvider:e=>j(e),getThreadKnowledgeBases:(e,t)=>O(t).then(a=>a.selectedKnowledgeBaseIds||[]),updateThreadKnowledgeBases:(e,t,a)=>i(t,a).then(r=>r.knowledgeBaseIds),deleteThreadKnowledgeBases:(e,t)=>i(t,[]).then(()=>({deleted:!0})),saveSettings:e=>N(e),getCapabilitySnapshot:()=>$(),getPluginDiagnostics:()=>T(),listDiagnosticErrors:()=>x().then(e=>e.errors),runDiagnosticsDoctor:()=>K(),runDeploymentDiagnostics:()=>W(),listChannelGateways:e=>I(e).then(t=>t.gateways),getChannelGatewayStatus:(e,t,a)=>A(e,t,a),testChannelConnection:(e,t,a)=>B(e,t,a),enableChannelGateway:(e,t,a)=>M(e,t,a),disableChannelGateway:(e,t,a)=>E(e,t,a),listChannelPendingPairings:(e,t)=>Q(e,t).then(a=>a.pairings),approveChannelPairing:(e,t)=>G(e,t),rejectChannelPairing:(e,t)=>f(e,t),listChannelAuthorizedUsers:(e,t)=>b(e,t).then(a=>a.users),getChannelQrCode:(e,t,a)=>D(e,t,a),checkChannelQrCodeStatus:(e,t,a,r)=>y(e,t,a,r),getWeixinQrCode:(e,t)=>R(e,t),checkWeixinQrCodeStatus:(e,t,a)=>L(e,t,a),getLarkQrCode:(e,t)=>S(e,t),checkLarkQrCodeStatus:(e,t,a)=>P(e,t,a),listLarkGateways:()=>w().then(e=>e.gateways),getLarkGatewayStatus:(e,t)=>m(e,t),testLarkConnection:(e,t)=>p(e,t),enableLarkGateway:(e,t)=>k(e,t),disableLarkGateway:(e,t)=>v(e,t),listLarkPendingPairings:e=>C(e).then(t=>t.pairings),approveLarkPairing:e=>h(e),rejectLarkPairing:e=>u(e),listLarkAuthorizedUsers:e=>c(e).then(t=>t.users),probeWorkspaceStreaming:e=>J(e),onRuntimeEvent:e=>H(e),onRuntimeDetectionEvent:e=>g(t=>{(t.type.startsWith("runtime.detect.")||t.type==="runtime.status.changed")&&e(t)}),onBridgeEvent:e=>l(e)};let d=null;function re(e){return e==="electron"&&window.desktop?se:o}function n(){const e=d||re(ne());if(!e)throw new Error("Managed desktop APIs are unavailable in this build");return d=e,e}const oe=()=>n().getRuntimeStatus(),de=()=>n().startService(),le=()=>n().listInstalledAgentRuntimes(),ge=()=>n().refreshInstalledAgentRuntimes(),ce=()=>n().readRuntimeConfig(),ue=e=>n().saveRuntimeConfig(e),he=()=>n().listModelProviders(),Ce=e=>n().createModelProvider(e),ve=(e,t)=>n().updateModelProvider(e,t),ke=e=>n().deleteModelProvider(e),pe=(e,t,a)=>n().updateThreadKnowledgeBases(e,t,a),me=e=>n().saveSettings(e),we=()=>n().getPluginDiagnostics(),Pe=()=>n().listDiagnosticErrors(),Se=()=>n().runDiagnosticsDoctor(),Le=(e,t)=>n().getWeixinQrCode(e,t),Re=(e,t,a)=>n().checkWeixinQrCodeStatus(e,t,a),ye=(e,t)=>n().getLarkQrCode(e,t),De=(e,t,a)=>n().checkLarkQrCodeStatus(e,t,a),be=(e,t)=>n().testLarkConnection(e,t),fe=(e,t)=>n().enableLarkGateway(e,t),Ge=e=>n().onRuntimeEvent(e),Qe=e=>n().onRuntimeDetectionEvent(e),Ee=e=>n().onBridgeEvent(e);export{Qe as a,Ee as b,ce as c,he as d,fe as e,ue as f,oe as g,Ce as h,ve as i,ke as j,Le as k,le as l,ye as m,Re as n,Ge as o,De as p,we as q,ge as r,de as s,be as t,pe as u,Pe as v,me as w,Se as x};
1
+ import{a3 as l,s as g,a4 as c,a5 as u,a6 as h,a7 as C,a8 as v,a9 as k,aa as p,ab as m,ac as w,ad as P,ae as S,af as L,ag as R,ah as y,ai as D,aj as b,ak as f,al as G,am as Q,an as E,ao as M,ap as B,aq as A,ar as I,as as W,at as K,au as x,av as T,aw as $,ax as j,ay as U,az as z,aA as q,aB as _,aC as F,aD as H,aE as J,aF as N,p as i,m as O,aG as V,aH as X,aI as Y,aJ as Z,aK as ee,aL as te,aM as ae,i as ne}from"./index-DJ8w4e0l.js";function s(){if(!window.desktop)throw new Error("Desktop APIs are unavailable in the browser build");return window.desktop}const se={getRuntimeStatus:()=>s().getRuntimeStatus(),startService:()=>s().startService(),stopService:()=>s().stopService(),restartService:()=>s().restartService(),getLogs:e=>s().getLogs(e),listInstalledAgentRuntimes:()=>F().then(e=>e.runtimes),refreshInstalledAgentRuntimes:()=>_().then(e=>e.runtimes),readRuntimeConfig:()=>s().readRuntimeConfig(),saveRuntimeConfig:e=>s().saveRuntimeConfig(e),listModelProviders:()=>q(),createModelProvider:e=>z(e),updateModelProvider:(e,t)=>U(e,t),deleteModelProvider:e=>j(e),getThreadKnowledgeBases:(e,t)=>s().getThreadKnowledgeBases(e,t),updateThreadKnowledgeBases:(e,t,a)=>s().updateThreadKnowledgeBases(e,t,a),deleteThreadKnowledgeBases:(e,t)=>s().deleteThreadKnowledgeBases(e,t),saveSettings:e=>s().saveSettings(e),getCapabilitySnapshot:()=>$(),getPluginDiagnostics:()=>T(),listDiagnosticErrors:()=>x().then(e=>e.errors),runDiagnosticsDoctor:()=>K(),runDeploymentDiagnostics:()=>W(),listChannelGateways:e=>I(e).then(t=>t.gateways),getChannelGatewayStatus:(e,t,a)=>A(e,t,a),testChannelConnection:(e,t,a)=>B(e,t,a),enableChannelGateway:(e,t,a)=>M(e,t,a),disableChannelGateway:(e,t,a)=>E(e,t,a),listChannelPendingPairings:(e,t)=>Q(e,t).then(a=>a.pairings),approveChannelPairing:(e,t)=>G(e,t),rejectChannelPairing:(e,t)=>f(e,t),listChannelAuthorizedUsers:(e,t)=>b(e,t).then(a=>a.users),getChannelQrCode:(e,t,a)=>D(e,t,a),checkChannelQrCodeStatus:(e,t,a,r)=>y(e,t,a,r),getWeixinQrCode:(e,t)=>R(e,t),checkWeixinQrCodeStatus:(e,t,a)=>L(e,t,a),getLarkQrCode:(e,t)=>S(e,t),checkLarkQrCodeStatus:(e,t,a)=>P(e,t,a),listLarkGateways:()=>w().then(e=>e.gateways),getLarkGatewayStatus:(e,t)=>m(e,t),testLarkConnection:(e,t)=>p(e,t),enableLarkGateway:(e,t)=>k(e,t),disableLarkGateway:(e,t)=>v(e,t),listLarkPendingPairings:e=>C(e).then(t=>t.pairings),approveLarkPairing:e=>h(e),rejectLarkPairing:e=>u(e),listLarkAuthorizedUsers:e=>c(e).then(t=>t.users),probeWorkspaceStreaming:e=>s().probeWorkspaceStreaming(e),onRuntimeEvent:e=>s().onRuntimeEvent(e),onRuntimeDetectionEvent:e=>g(t=>{(t.type.startsWith("runtime.detect.")||t.type==="runtime.status.changed")&&e(t)}),onBridgeEvent:e=>l(e)},o={getRuntimeStatus:()=>ae(),startService:()=>te(),stopService:()=>ee(),restartService:()=>Z(),getLogs:e=>Y(e),listInstalledAgentRuntimes:()=>F().then(e=>e.runtimes),refreshInstalledAgentRuntimes:()=>_().then(e=>e.runtimes),readRuntimeConfig:()=>X(),saveRuntimeConfig:e=>V(e),listModelProviders:()=>q(),createModelProvider:e=>z(e),updateModelProvider:(e,t)=>U(e,t),deleteModelProvider:e=>j(e),getThreadKnowledgeBases:(e,t)=>O(t).then(a=>a.selectedKnowledgeBaseIds||[]),updateThreadKnowledgeBases:(e,t,a)=>i(t,a).then(r=>r.knowledgeBaseIds),deleteThreadKnowledgeBases:(e,t)=>i(t,[]).then(()=>({deleted:!0})),saveSettings:e=>N(e),getCapabilitySnapshot:()=>$(),getPluginDiagnostics:()=>T(),listDiagnosticErrors:()=>x().then(e=>e.errors),runDiagnosticsDoctor:()=>K(),runDeploymentDiagnostics:()=>W(),listChannelGateways:e=>I(e).then(t=>t.gateways),getChannelGatewayStatus:(e,t,a)=>A(e,t,a),testChannelConnection:(e,t,a)=>B(e,t,a),enableChannelGateway:(e,t,a)=>M(e,t,a),disableChannelGateway:(e,t,a)=>E(e,t,a),listChannelPendingPairings:(e,t)=>Q(e,t).then(a=>a.pairings),approveChannelPairing:(e,t)=>G(e,t),rejectChannelPairing:(e,t)=>f(e,t),listChannelAuthorizedUsers:(e,t)=>b(e,t).then(a=>a.users),getChannelQrCode:(e,t,a)=>D(e,t,a),checkChannelQrCodeStatus:(e,t,a,r)=>y(e,t,a,r),getWeixinQrCode:(e,t)=>R(e,t),checkWeixinQrCodeStatus:(e,t,a)=>L(e,t,a),getLarkQrCode:(e,t)=>S(e,t),checkLarkQrCodeStatus:(e,t,a)=>P(e,t,a),listLarkGateways:()=>w().then(e=>e.gateways),getLarkGatewayStatus:(e,t)=>m(e,t),testLarkConnection:(e,t)=>p(e,t),enableLarkGateway:(e,t)=>k(e,t),disableLarkGateway:(e,t)=>v(e,t),listLarkPendingPairings:e=>C(e).then(t=>t.pairings),approveLarkPairing:e=>h(e),rejectLarkPairing:e=>u(e),listLarkAuthorizedUsers:e=>c(e).then(t=>t.users),probeWorkspaceStreaming:e=>J(e),onRuntimeEvent:e=>H(e),onRuntimeDetectionEvent:e=>g(t=>{(t.type.startsWith("runtime.detect.")||t.type==="runtime.status.changed")&&e(t)}),onBridgeEvent:e=>l(e)};let d=null;function re(e){return e==="electron"&&window.desktop?se:o}function n(){const e=d||re(ne());if(!e)throw new Error("Managed desktop APIs are unavailable in this build");return d=e,e}const oe=()=>n().getRuntimeStatus(),de=()=>n().startService(),le=()=>n().listInstalledAgentRuntimes(),ge=()=>n().refreshInstalledAgentRuntimes(),ce=()=>n().readRuntimeConfig(),ue=e=>n().saveRuntimeConfig(e),he=()=>n().listModelProviders(),Ce=e=>n().createModelProvider(e),ve=(e,t)=>n().updateModelProvider(e,t),ke=e=>n().deleteModelProvider(e),pe=(e,t,a)=>n().updateThreadKnowledgeBases(e,t,a),me=e=>n().saveSettings(e),we=()=>n().getPluginDiagnostics(),Pe=()=>n().listDiagnosticErrors(),Se=()=>n().runDiagnosticsDoctor(),Le=(e,t)=>n().getWeixinQrCode(e,t),Re=(e,t,a)=>n().checkWeixinQrCodeStatus(e,t,a),ye=(e,t)=>n().getLarkQrCode(e,t),De=(e,t,a)=>n().checkLarkQrCodeStatus(e,t,a),be=(e,t)=>n().testLarkConnection(e,t),fe=(e,t)=>n().enableLarkGateway(e,t),Ge=e=>n().onRuntimeEvent(e),Qe=e=>n().onRuntimeDetectionEvent(e),Ee=e=>n().onBridgeEvent(e);export{Qe as a,Ee as b,ce as c,he as d,fe as e,ue as f,oe as g,Ce as h,ve as i,ke as j,Le as k,le as l,ye as m,Re as n,Ge as o,De as p,we as q,ge as r,de as s,be as t,pe as u,Pe as v,me as w,Se as x};
@@ -1,4 +1,4 @@
1
- import{c}from"./index-CDWUe2Sw.js";/**
1
+ import{c}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c}from"./index-CDWUe2Sw.js";/**
1
+ import{c}from"./index-DJ8w4e0l.js";/**
2
2
  * @license lucide-react v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{J as Le,aY as Ne,r as c,j as x,aZ as pe,a_ as Ae,aO as te}from"./index-CDWUe2Sw.js";var ye=Ne();const De=Le(ye);function Y(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Jt(e,t){const n=c.createContext(t),r=i=>{const{children:s,...a}=i,h=c.useMemo(()=>a,Object.values(a));return x.jsx(n.Provider,{value:h,children:s})};r.displayName=e+"Provider";function o(i){const s=c.useContext(n);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[r,o]}function en(e,t=[]){let n=[];function r(i,s){const a=c.createContext(s),h=n.length;n=[...n,s];const l=d=>{var p;const{scope:v,children:y,...w}=d,u=((p=v==null?void 0:v[e])==null?void 0:p[h])||a,m=c.useMemo(()=>w,Object.values(w));return x.jsx(u.Provider,{value:m,children:y})};l.displayName=i+"Provider";function f(d,v){var u;const y=((u=v==null?void 0:v[e])==null?void 0:u[h])||a,w=c.useContext(y);if(w)return w;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[l,f]}const o=()=>{const i=n.map(s=>c.createContext(s));return function(a){const h=(a==null?void 0:a[e])||i;return c.useMemo(()=>({[`__scope${e}`]:{...a,[e]:h}}),[a,h])}};return o.scopeName=e,[r,ke(o,...t)]}function ke(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const s=r.reduce((a,{useScope:h,scopeName:l})=>{const d=h(i)[`__scope${l}`];return{...a,...d}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}var ne=globalThis!=null&&globalThis.document?c.useLayoutEffect:()=>{},Fe=pe[" useId ".trim().toString()]||(()=>{}),Me=0;function tn(e){const[t,n]=c.useState(Fe());return ne(()=>{n(r=>r??String(Me++))},[e]),e||(t?`radix-${t}`:"")}var Ie=pe[" useInsertionEffect ".trim().toString()]||ne;function nn({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,i,s]=We({defaultProp:t,onChange:n}),a=e!==void 0,h=a?e:o;{const f=c.useRef(e!==void 0);c.useEffect(()=>{const d=f.current;d!==a&&console.warn(`${r} is changing from ${d?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=a},[a,r])}const l=c.useCallback(f=>{var d;if(a){const v=Be(f)?f(e):f;v!==e&&((d=s.current)==null||d.call(s,v))}else i(f)},[a,e,i,s]);return[h,l]}function We({defaultProp:e,onChange:t}){const[n,r]=c.useState(e),o=c.useRef(n),i=c.useRef(t);return Ie(()=>{i.current=t},[t]),c.useEffect(()=>{var s;o.current!==n&&((s=i.current)==null||s.call(i,n),o.current=n)},[n,o]),[n,r,i]}function Be(e){return typeof e=="function"}function _e(e){const t=je(e),n=c.forwardRef((r,o)=>{const{children:i,...s}=r,a=c.Children.toArray(i),h=a.find($e);if(h){const l=h.props.children,f=a.map(d=>d===h?c.Children.count(l)>1?c.Children.only(null):c.isValidElement(l)?l.props.children:null:d);return x.jsx(t,{...s,ref:o,children:c.isValidElement(l)?c.cloneElement(l,void 0,f):null})}return x.jsx(t,{...s,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}function je(e){const t=c.forwardRef((n,r)=>{const{children:o,...i}=n;if(c.isValidElement(o)){const s=Ke(o),a=Ve(i,o.props);return o.type!==c.Fragment&&(a.ref=r?Ae(r,s):s),c.cloneElement(o,a)}return c.Children.count(o)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ue=Symbol("radix.slottable");function $e(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ue}function Ve(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...a)=>{const h=i(...a);return o(...a),h}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function Ke(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Ye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],V=Ye.reduce((e,t)=>{const n=_e(`Primitive.${t}`),r=c.forwardRef((o,i)=>{const{asChild:s,...a}=o,h=s?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),x.jsx(h,{...a,ref:i})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Xe(e,t){e&&ye.flushSync(()=>e.dispatchEvent(t))}function M(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function He(e,t=globalThis==null?void 0:globalThis.document){const n=M(e);c.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ze="DismissableLayer",J="dismissableLayer.update",Ze="dismissableLayer.pointerDownOutside",Ge="dismissableLayer.focusOutside",oe,Ee=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),qe=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:s,onDismiss:a,...h}=e,l=c.useContext(Ee),[f,d]=c.useState(null),v=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=c.useState({}),w=te(t,E=>d(E)),u=Array.from(l.layers),[m]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),p=u.indexOf(m),g=f?u.indexOf(f):-1,b=l.layersWithOutsidePointerEventsDisabled.size>0,S=g>=p,C=et(E=>{const T=E.target,L=[...l.branches].some(F=>F.contains(T));!S||L||(o==null||o(E),s==null||s(E),E.defaultPrevented||a==null||a())},v),P=tt(E=>{const T=E.target;[...l.branches].some(F=>F.contains(T))||(i==null||i(E),s==null||s(E),E.defaultPrevented||a==null||a())},v);return He(E=>{g===l.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&a&&(E.preventDefault(),a()))},v),c.useEffect(()=>{if(f)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(oe=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(f)),l.layers.add(f),ae(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(v.body.style.pointerEvents=oe)}},[f,v,n,l]),c.useEffect(()=>()=>{f&&(l.layers.delete(f),l.layersWithOutsidePointerEventsDisabled.delete(f),ae())},[f,l]),c.useEffect(()=>{const E=()=>y({});return document.addEventListener(J,E),()=>document.removeEventListener(J,E)},[]),x.jsx(V.div,{...h,ref:w,style:{pointerEvents:b?S?"auto":"none":void 0,...e.style},onFocusCapture:Y(e.onFocusCapture,P.onFocusCapture),onBlurCapture:Y(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:Y(e.onPointerDownCapture,C.onPointerDownCapture)})});qe.displayName=ze;var Qe="DismissableLayerBranch",Je=c.forwardRef((e,t)=>{const n=c.useContext(Ee),r=c.useRef(null),o=te(t,r);return c.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),x.jsx(V.div,{...e,ref:o})});Je.displayName=Qe;function et(e,t=globalThis==null?void 0:globalThis.document){const n=M(e),r=c.useRef(!1),o=c.useRef(()=>{});return c.useEffect(()=>{const i=a=>{if(a.target&&!r.current){let h=function(){ge(Ze,n,l,{discrete:!0})};const l={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=h,t.addEventListener("click",o.current,{once:!0})):h()}else t.removeEventListener("click",o.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function tt(e,t=globalThis==null?void 0:globalThis.document){const n=M(e),r=c.useRef(!1);return c.useEffect(()=>{const o=i=>{i.target&&!r.current&&ge(Ge,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function ae(){const e=new CustomEvent(J);document.dispatchEvent(e)}function ge(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Xe(o,i):o.dispatchEvent(i)}var X="focusScope.autoFocusOnMount",H="focusScope.autoFocusOnUnmount",ce={bubbles:!1,cancelable:!0},nt="FocusScope",rt=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...s}=e,[a,h]=c.useState(null),l=M(o),f=M(i),d=c.useRef(null),v=te(t,u=>h(u)),y=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(r){let u=function(b){if(y.paused||!a)return;const S=b.target;a.contains(S)?d.current=S:O(d.current,{select:!0})},m=function(b){if(y.paused||!a)return;const S=b.relatedTarget;S!==null&&(a.contains(S)||O(d.current,{select:!0}))},p=function(b){if(document.activeElement===document.body)for(const C of b)C.removedNodes.length>0&&O(a)};document.addEventListener("focusin",u),document.addEventListener("focusout",m);const g=new MutationObserver(p);return a&&g.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",u),document.removeEventListener("focusout",m),g.disconnect()}}},[r,a,y.paused]),c.useEffect(()=>{if(a){se.add(y);const u=document.activeElement;if(!a.contains(u)){const p=new CustomEvent(X,ce);a.addEventListener(X,l),a.dispatchEvent(p),p.defaultPrevented||(ot(ut(be(a)),{select:!0}),document.activeElement===u&&O(a))}return()=>{a.removeEventListener(X,l),setTimeout(()=>{const p=new CustomEvent(H,ce);a.addEventListener(H,f),a.dispatchEvent(p),p.defaultPrevented||O(u??document.body,{select:!0}),a.removeEventListener(H,f),se.remove(y)},0)}}},[a,l,f,y]);const w=c.useCallback(u=>{if(!n&&!r||y.paused)return;const m=u.key==="Tab"&&!u.altKey&&!u.ctrlKey&&!u.metaKey,p=document.activeElement;if(m&&p){const g=u.currentTarget,[b,S]=at(g);b&&S?!u.shiftKey&&p===S?(u.preventDefault(),n&&O(b,{select:!0})):u.shiftKey&&p===b&&(u.preventDefault(),n&&O(S,{select:!0})):p===g&&u.preventDefault()}},[n,r,y.paused]);return x.jsx(V.div,{tabIndex:-1,...s,ref:v,onKeyDown:w})});rt.displayName=nt;function ot(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(O(r,{select:t}),document.activeElement!==n)return}function at(e){const t=be(e),n=ie(t,e),r=ie(t.reverse(),e);return[n,r]}function be(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function ie(e,t){for(const n of e)if(!ct(n,{upTo:t}))return n}function ct(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function it(e){return e instanceof HTMLInputElement&&"select"in e}function O(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&it(e)&&t&&e.select()}}var se=st();function st(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=ue(e,t),e.unshift(t)},remove(t){var n;e=ue(e,t),(n=e[0])==null||n.resume()}}}function ue(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function ut(e){return e.filter(t=>t.tagName!=="A")}var lt="Portal",ft=c.forwardRef((e,t)=>{var a;const{container:n,...r}=e,[o,i]=c.useState(!1);ne(()=>i(!0),[]);const s=n||o&&((a=globalThis==null?void 0:globalThis.document)==null?void 0:a.body);return s?De.createPortal(x.jsx(V.div,{...r,ref:t}),s):null});ft.displayName=lt;var z=0;function rn(){c.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??le()),document.body.insertAdjacentElement("beforeend",e[1]??le()),z++,()=>{z===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),z--}},[])}function le(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var R=function(){return R=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},R.apply(this,arguments)};function Se(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function dt(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var U="right-scroll-bar-position",$="width-before-scroll-bar",vt="with-scroll-bars-hidden",ht="--removed-body-scroll-bar-size";function Z(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function mt(e,t){var n=c.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var pt=typeof window<"u"?c.useLayoutEffect:c.useEffect,fe=new WeakMap;function yt(e,t){var n=mt(null,function(r){return e.forEach(function(o){return Z(o,r)})});return pt(function(){var r=fe.get(n);if(r){var o=new Set(r),i=new Set(e),s=n.current;o.forEach(function(a){i.has(a)||Z(a,null)}),i.forEach(function(a){o.has(a)||Z(a,s)})}fe.set(n,e)},[e]),n}function Et(e){return e}function gt(e,t){t===void 0&&(t=Et);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var s=t(i,r);return n.push(s),function(){n=n.filter(function(a){return a!==s})}},assignSyncMedium:function(i){for(r=!0;n.length;){var s=n;n=[],s.forEach(i)}n={push:function(a){return i(a)},filter:function(){return n}}},assignMedium:function(i){r=!0;var s=[];if(n.length){var a=n;n=[],a.forEach(i),s=n}var h=function(){var f=s;s=[],f.forEach(i)},l=function(){return Promise.resolve().then(h)};l(),n={push:function(f){s.push(f),l()},filter:function(f){return s=s.filter(f),n}}}};return o}function bt(e){e===void 0&&(e={});var t=gt(null);return t.options=R({async:!0,ssr:!1},e),t}var we=function(e){var t=e.sideCar,n=Se(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return c.createElement(r,R({},n))};we.isSideCarExport=!0;function St(e,t){return e.useMedium(t),we}var Ce=bt(),G=function(){},K=c.forwardRef(function(e,t){var n=c.useRef(null),r=c.useState({onScrollCapture:G,onWheelCapture:G,onTouchMoveCapture:G}),o=r[0],i=r[1],s=e.forwardProps,a=e.children,h=e.className,l=e.removeScrollBar,f=e.enabled,d=e.shards,v=e.sideCar,y=e.noRelative,w=e.noIsolation,u=e.inert,m=e.allowPinchZoom,p=e.as,g=p===void 0?"div":p,b=e.gapMode,S=Se(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),C=v,P=yt([n,t]),E=R(R({},S),o);return c.createElement(c.Fragment,null,f&&c.createElement(C,{sideCar:Ce,removeScrollBar:l,shards:d,noRelative:y,noIsolation:w,inert:u,setCallbacks:i,allowPinchZoom:!!m,lockRef:n,gapMode:b}),s?c.cloneElement(c.Children.only(a),R(R({},E),{ref:P})):c.createElement(g,R({},E,{className:h,ref:P}),a))});K.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};K.classNames={fullWidth:$,zeroRight:U};var wt=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Ct(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=wt();return t&&e.setAttribute("nonce",t),e}function Pt(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Rt(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var xt=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Ct())&&(Pt(t,n),Rt(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Ot=function(){var e=xt();return function(t,n){c.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Pe=function(){var e=Ot(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},Tt={left:0,top:0,right:0,gap:0},q=function(e){return parseInt(e||"",10)||0},Lt=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[q(n),q(r),q(o)]},Nt=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return Tt;var t=Lt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},At=Pe(),k="data-scroll-locked",Dt=function(e,t,n,r){var o=e.left,i=e.top,s=e.right,a=e.gap;return n===void 0&&(n="margin"),`
1
+ import{J as Le,aY as Ne,r as c,j as x,aZ as pe,a_ as Ae,aO as te}from"./index-DJ8w4e0l.js";var ye=Ne();const De=Le(ye);function Y(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Jt(e,t){const n=c.createContext(t),r=i=>{const{children:s,...a}=i,h=c.useMemo(()=>a,Object.values(a));return x.jsx(n.Provider,{value:h,children:s})};r.displayName=e+"Provider";function o(i){const s=c.useContext(n);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[r,o]}function en(e,t=[]){let n=[];function r(i,s){const a=c.createContext(s),h=n.length;n=[...n,s];const l=d=>{var p;const{scope:v,children:y,...w}=d,u=((p=v==null?void 0:v[e])==null?void 0:p[h])||a,m=c.useMemo(()=>w,Object.values(w));return x.jsx(u.Provider,{value:m,children:y})};l.displayName=i+"Provider";function f(d,v){var u;const y=((u=v==null?void 0:v[e])==null?void 0:u[h])||a,w=c.useContext(y);if(w)return w;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[l,f]}const o=()=>{const i=n.map(s=>c.createContext(s));return function(a){const h=(a==null?void 0:a[e])||i;return c.useMemo(()=>({[`__scope${e}`]:{...a,[e]:h}}),[a,h])}};return o.scopeName=e,[r,ke(o,...t)]}function ke(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const s=r.reduce((a,{useScope:h,scopeName:l})=>{const d=h(i)[`__scope${l}`];return{...a,...d}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}var ne=globalThis!=null&&globalThis.document?c.useLayoutEffect:()=>{},Fe=pe[" useId ".trim().toString()]||(()=>{}),Me=0;function tn(e){const[t,n]=c.useState(Fe());return ne(()=>{n(r=>r??String(Me++))},[e]),e||(t?`radix-${t}`:"")}var Ie=pe[" useInsertionEffect ".trim().toString()]||ne;function nn({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,i,s]=We({defaultProp:t,onChange:n}),a=e!==void 0,h=a?e:o;{const f=c.useRef(e!==void 0);c.useEffect(()=>{const d=f.current;d!==a&&console.warn(`${r} is changing from ${d?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=a},[a,r])}const l=c.useCallback(f=>{var d;if(a){const v=Be(f)?f(e):f;v!==e&&((d=s.current)==null||d.call(s,v))}else i(f)},[a,e,i,s]);return[h,l]}function We({defaultProp:e,onChange:t}){const[n,r]=c.useState(e),o=c.useRef(n),i=c.useRef(t);return Ie(()=>{i.current=t},[t]),c.useEffect(()=>{var s;o.current!==n&&((s=i.current)==null||s.call(i,n),o.current=n)},[n,o]),[n,r,i]}function Be(e){return typeof e=="function"}function _e(e){const t=je(e),n=c.forwardRef((r,o)=>{const{children:i,...s}=r,a=c.Children.toArray(i),h=a.find($e);if(h){const l=h.props.children,f=a.map(d=>d===h?c.Children.count(l)>1?c.Children.only(null):c.isValidElement(l)?l.props.children:null:d);return x.jsx(t,{...s,ref:o,children:c.isValidElement(l)?c.cloneElement(l,void 0,f):null})}return x.jsx(t,{...s,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}function je(e){const t=c.forwardRef((n,r)=>{const{children:o,...i}=n;if(c.isValidElement(o)){const s=Ke(o),a=Ve(i,o.props);return o.type!==c.Fragment&&(a.ref=r?Ae(r,s):s),c.cloneElement(o,a)}return c.Children.count(o)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ue=Symbol("radix.slottable");function $e(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ue}function Ve(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...a)=>{const h=i(...a);return o(...a),h}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function Ke(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Ye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],V=Ye.reduce((e,t)=>{const n=_e(`Primitive.${t}`),r=c.forwardRef((o,i)=>{const{asChild:s,...a}=o,h=s?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),x.jsx(h,{...a,ref:i})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Xe(e,t){e&&ye.flushSync(()=>e.dispatchEvent(t))}function M(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function He(e,t=globalThis==null?void 0:globalThis.document){const n=M(e);c.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ze="DismissableLayer",J="dismissableLayer.update",Ze="dismissableLayer.pointerDownOutside",Ge="dismissableLayer.focusOutside",oe,Ee=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),qe=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:s,onDismiss:a,...h}=e,l=c.useContext(Ee),[f,d]=c.useState(null),v=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=c.useState({}),w=te(t,E=>d(E)),u=Array.from(l.layers),[m]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),p=u.indexOf(m),g=f?u.indexOf(f):-1,b=l.layersWithOutsidePointerEventsDisabled.size>0,S=g>=p,C=et(E=>{const T=E.target,L=[...l.branches].some(F=>F.contains(T));!S||L||(o==null||o(E),s==null||s(E),E.defaultPrevented||a==null||a())},v),P=tt(E=>{const T=E.target;[...l.branches].some(F=>F.contains(T))||(i==null||i(E),s==null||s(E),E.defaultPrevented||a==null||a())},v);return He(E=>{g===l.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&a&&(E.preventDefault(),a()))},v),c.useEffect(()=>{if(f)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(oe=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(f)),l.layers.add(f),ae(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(v.body.style.pointerEvents=oe)}},[f,v,n,l]),c.useEffect(()=>()=>{f&&(l.layers.delete(f),l.layersWithOutsidePointerEventsDisabled.delete(f),ae())},[f,l]),c.useEffect(()=>{const E=()=>y({});return document.addEventListener(J,E),()=>document.removeEventListener(J,E)},[]),x.jsx(V.div,{...h,ref:w,style:{pointerEvents:b?S?"auto":"none":void 0,...e.style},onFocusCapture:Y(e.onFocusCapture,P.onFocusCapture),onBlurCapture:Y(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:Y(e.onPointerDownCapture,C.onPointerDownCapture)})});qe.displayName=ze;var Qe="DismissableLayerBranch",Je=c.forwardRef((e,t)=>{const n=c.useContext(Ee),r=c.useRef(null),o=te(t,r);return c.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),x.jsx(V.div,{...e,ref:o})});Je.displayName=Qe;function et(e,t=globalThis==null?void 0:globalThis.document){const n=M(e),r=c.useRef(!1),o=c.useRef(()=>{});return c.useEffect(()=>{const i=a=>{if(a.target&&!r.current){let h=function(){ge(Ze,n,l,{discrete:!0})};const l={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=h,t.addEventListener("click",o.current,{once:!0})):h()}else t.removeEventListener("click",o.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function tt(e,t=globalThis==null?void 0:globalThis.document){const n=M(e),r=c.useRef(!1);return c.useEffect(()=>{const o=i=>{i.target&&!r.current&&ge(Ge,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function ae(){const e=new CustomEvent(J);document.dispatchEvent(e)}function ge(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Xe(o,i):o.dispatchEvent(i)}var X="focusScope.autoFocusOnMount",H="focusScope.autoFocusOnUnmount",ce={bubbles:!1,cancelable:!0},nt="FocusScope",rt=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...s}=e,[a,h]=c.useState(null),l=M(o),f=M(i),d=c.useRef(null),v=te(t,u=>h(u)),y=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(r){let u=function(b){if(y.paused||!a)return;const S=b.target;a.contains(S)?d.current=S:O(d.current,{select:!0})},m=function(b){if(y.paused||!a)return;const S=b.relatedTarget;S!==null&&(a.contains(S)||O(d.current,{select:!0}))},p=function(b){if(document.activeElement===document.body)for(const C of b)C.removedNodes.length>0&&O(a)};document.addEventListener("focusin",u),document.addEventListener("focusout",m);const g=new MutationObserver(p);return a&&g.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",u),document.removeEventListener("focusout",m),g.disconnect()}}},[r,a,y.paused]),c.useEffect(()=>{if(a){se.add(y);const u=document.activeElement;if(!a.contains(u)){const p=new CustomEvent(X,ce);a.addEventListener(X,l),a.dispatchEvent(p),p.defaultPrevented||(ot(ut(be(a)),{select:!0}),document.activeElement===u&&O(a))}return()=>{a.removeEventListener(X,l),setTimeout(()=>{const p=new CustomEvent(H,ce);a.addEventListener(H,f),a.dispatchEvent(p),p.defaultPrevented||O(u??document.body,{select:!0}),a.removeEventListener(H,f),se.remove(y)},0)}}},[a,l,f,y]);const w=c.useCallback(u=>{if(!n&&!r||y.paused)return;const m=u.key==="Tab"&&!u.altKey&&!u.ctrlKey&&!u.metaKey,p=document.activeElement;if(m&&p){const g=u.currentTarget,[b,S]=at(g);b&&S?!u.shiftKey&&p===S?(u.preventDefault(),n&&O(b,{select:!0})):u.shiftKey&&p===b&&(u.preventDefault(),n&&O(S,{select:!0})):p===g&&u.preventDefault()}},[n,r,y.paused]);return x.jsx(V.div,{tabIndex:-1,...s,ref:v,onKeyDown:w})});rt.displayName=nt;function ot(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(O(r,{select:t}),document.activeElement!==n)return}function at(e){const t=be(e),n=ie(t,e),r=ie(t.reverse(),e);return[n,r]}function be(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function ie(e,t){for(const n of e)if(!ct(n,{upTo:t}))return n}function ct(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function it(e){return e instanceof HTMLInputElement&&"select"in e}function O(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&it(e)&&t&&e.select()}}var se=st();function st(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=ue(e,t),e.unshift(t)},remove(t){var n;e=ue(e,t),(n=e[0])==null||n.resume()}}}function ue(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function ut(e){return e.filter(t=>t.tagName!=="A")}var lt="Portal",ft=c.forwardRef((e,t)=>{var a;const{container:n,...r}=e,[o,i]=c.useState(!1);ne(()=>i(!0),[]);const s=n||o&&((a=globalThis==null?void 0:globalThis.document)==null?void 0:a.body);return s?De.createPortal(x.jsx(V.div,{...r,ref:t}),s):null});ft.displayName=lt;var z=0;function rn(){c.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??le()),document.body.insertAdjacentElement("beforeend",e[1]??le()),z++,()=>{z===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),z--}},[])}function le(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var R=function(){return R=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},R.apply(this,arguments)};function Se(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function dt(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var U="right-scroll-bar-position",$="width-before-scroll-bar",vt="with-scroll-bars-hidden",ht="--removed-body-scroll-bar-size";function Z(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function mt(e,t){var n=c.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var pt=typeof window<"u"?c.useLayoutEffect:c.useEffect,fe=new WeakMap;function yt(e,t){var n=mt(null,function(r){return e.forEach(function(o){return Z(o,r)})});return pt(function(){var r=fe.get(n);if(r){var o=new Set(r),i=new Set(e),s=n.current;o.forEach(function(a){i.has(a)||Z(a,null)}),i.forEach(function(a){o.has(a)||Z(a,s)})}fe.set(n,e)},[e]),n}function Et(e){return e}function gt(e,t){t===void 0&&(t=Et);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var s=t(i,r);return n.push(s),function(){n=n.filter(function(a){return a!==s})}},assignSyncMedium:function(i){for(r=!0;n.length;){var s=n;n=[],s.forEach(i)}n={push:function(a){return i(a)},filter:function(){return n}}},assignMedium:function(i){r=!0;var s=[];if(n.length){var a=n;n=[],a.forEach(i),s=n}var h=function(){var f=s;s=[],f.forEach(i)},l=function(){return Promise.resolve().then(h)};l(),n={push:function(f){s.push(f),l()},filter:function(f){return s=s.filter(f),n}}}};return o}function bt(e){e===void 0&&(e={});var t=gt(null);return t.options=R({async:!0,ssr:!1},e),t}var we=function(e){var t=e.sideCar,n=Se(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return c.createElement(r,R({},n))};we.isSideCarExport=!0;function St(e,t){return e.useMedium(t),we}var Ce=bt(),G=function(){},K=c.forwardRef(function(e,t){var n=c.useRef(null),r=c.useState({onScrollCapture:G,onWheelCapture:G,onTouchMoveCapture:G}),o=r[0],i=r[1],s=e.forwardProps,a=e.children,h=e.className,l=e.removeScrollBar,f=e.enabled,d=e.shards,v=e.sideCar,y=e.noRelative,w=e.noIsolation,u=e.inert,m=e.allowPinchZoom,p=e.as,g=p===void 0?"div":p,b=e.gapMode,S=Se(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),C=v,P=yt([n,t]),E=R(R({},S),o);return c.createElement(c.Fragment,null,f&&c.createElement(C,{sideCar:Ce,removeScrollBar:l,shards:d,noRelative:y,noIsolation:w,inert:u,setCallbacks:i,allowPinchZoom:!!m,lockRef:n,gapMode:b}),s?c.cloneElement(c.Children.only(a),R(R({},E),{ref:P})):c.createElement(g,R({},E,{className:h,ref:P}),a))});K.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};K.classNames={fullWidth:$,zeroRight:U};var wt=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Ct(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=wt();return t&&e.setAttribute("nonce",t),e}function Pt(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Rt(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var xt=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Ct())&&(Pt(t,n),Rt(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Ot=function(){var e=xt();return function(t,n){c.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Pe=function(){var e=Ot(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},Tt={left:0,top:0,right:0,gap:0},q=function(e){return parseInt(e||"",10)||0},Lt=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[q(n),q(r),q(o)]},Nt=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return Tt;var t=Lt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},At=Pe(),k="data-scroll-locked",Dt=function(e,t,n,r){var o=e.left,i=e.top,s=e.right,a=e.gap;return n===void 0&&(n="margin"),`
2
2
  .`.concat(vt,` {
3
3
  overflow: hidden `).concat(r,`;
4
4
  padding-right: `).concat(a,"px ").concat(r,`;