@straiffi/archon 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{TestsDialog-DelI4dOJ.js → TestsDialog-DR6zI8VO.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-Cn7GlwQg.js → architectureDiagram-3BPJPVTR-DYAuOBxs.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-Dbt3i35a.js → blockDiagram-GPEHLZMM-CgzJA7w1.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-BCNsqu0u.js → c4Diagram-AAUBKEIU-DZqT5YAV.js} +1 -1
- package/dist/client/assets/channel-CfphFJ27.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-B9c8AzpT.js → chunk-2J33WTMH-BLy8FIkV.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-D-qpTyaE.js → chunk-3OPIFGDE-C7ry6BV2.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-bBV3HPCk.js → chunk-5ZQYHXKU-MepwarKd.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-InkxsEhY.js → chunk-727SXJPM-CwTGppdi.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DZZL694W.js → chunk-AQP2D5EJ-CfJNQlxy.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-BuAgybUd.js → chunk-CSCIHK7Q-D6q_96U4.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-B9fgatSq.js → chunk-KSCS5N6A-CfM5PDGv.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-L-7z2xOe.js → chunk-L5ZTLDWV-CkreeF_c.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-hrScZnrx.js → chunk-LZXEDZCA-D7pcaXOQ.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-d2HjiRzD.js → chunk-ND2GUHAM-Cz0TDe6A.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-C6cn05ZM.js → chunk-NZK2D7GU-VNmOz-at.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-BAjbtmB_.js → chunk-O5CBEL6O-Dqc2Lkks.js} +1 -1
- package/dist/client/assets/{chunk-WU5MYG2G-By4sIjXN.js → chunk-WU5MYG2G-DnjLaLjD.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DLg9Wx7a.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Ds3wrxXU.js +1 -0
- package/dist/client/assets/{dagre-BM42HDAG-_iu0KXos.js → dagre-BM42HDAG-D_4B3EnB.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-DyBAakP6.js → diagram-2AECGRRQ-B2z5rK-3.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-xD8YOWp-.js → diagram-5GNKFQAL-BuGyEI7z.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-BQDiusQc.js → diagram-KO2AKTUF-DFMVSzLs.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-BRu1DXcK.js → diagram-LMA3HP47-DcRRHJ1c.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-C3A1wt8S.js → diagram-OG6HWLK6-lnhNRw_W.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-C_fWil4q.js → erDiagram-TEJ5UH35-tY8kHGP8.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-CKsgXWad.js → flowDiagram-I6XJVG4X-CwJHFeS1.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DRhmLmdi.js → ganttDiagram-6RSMTGT7-BpXuWYi5.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-C34Vr5C1.js → gitGraphDiagram-PVQCEYII-Bjkl9xe-.js} +1 -1
- package/dist/client/assets/index-BA7rzT42.css +2 -0
- package/dist/client/assets/{index-DENrWubs.js → index-BNpY6Je9.js} +7 -7
- package/dist/client/assets/{infoDiagram-5YYISTIA-Bkbr_hQH.js → infoDiagram-5YYISTIA-CaoGWcJg.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CEXsy2hU.js → ishikawaDiagram-YF4QCWOH-DR0qdRBA.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-RuKnL83f.js → journeyDiagram-JHISSGLW-Cb6KOIKZ.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-DrlhCmkA.js → kanban-definition-UN3LZRKU-By0Dn3Ud.js} +1 -1
- package/dist/client/assets/{line-CGdxyPh9.js → line-BXQNouIY.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-CbzywbCW.js → mermaid-parser.core-BBrSosYI.js} +1 -1
- package/dist/client/assets/{mermaid.core-09FBpi2R.js → mermaid.core-JaDe3rg7.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-CXrsI5b1.js → mindmap-definition-RKZ34NQL-CsyK7iEW.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-HbOpep9N.js → pieDiagram-4H26LBE5-BriFuZ40.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BWw-ZWMn.js → quadrantDiagram-W4KKPZXB-ZzKkxN-6.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-CpscsQdI.js → requirementDiagram-4Y6WPE33-QKOb9P9Z.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BoV5tyAf.js → sankeyDiagram-5OEKKPKP-2MYODxT2.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CBcDRtjR.js → sequenceDiagram-3UESZ5HK-BhY6NWH5.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-Df9lcs70.js → stateDiagram-AJRCARHV-BPlqPNZs.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C3QxLOZG.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-BFv1VICg.js → timeline-definition-PNZ67QCA-Bkz9ddtU.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-DPRtn-XH.js → vennDiagram-CIIHVFJN-B7I4h64w.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-CDiint0P.js → wardleyDiagram-YWT4CUSO-Bycb5nuK.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-ELyFdgmG.js → xychartDiagram-2RQKCTM6-CkKSO3pd.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/index.js +10 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/agent.js +24 -14
- package/dist/server/lib/agent.js.map +1 -1
- package/dist/server/lib/specArtifact.js +17 -0
- package/dist/server/lib/specArtifact.js.map +1 -1
- package/dist/server/lib/specDraft.js +19 -0
- package/dist/server/lib/specDraft.js.map +1 -1
- package/dist/server/workers/specSession.js +24 -3
- package/dist/server/workers/specSession.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-BmkYY3c1.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-B9B9lIAo.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DXR72HYe.js +0 -1
- package/dist/client/assets/index-iElL-crz.css +0 -2
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-FIWIctC4.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-JaDe3rg7.js","assets/chunk-O5CBEL6O-Dqc2Lkks.js","assets/src-BcaL9nCM.js","assets/chunk-BNv3lrIs.js","assets/chunk-5ZQYHXKU-MepwarKd.js","assets/dist-BQjeO--f.js","assets/chunk-CSCIHK7Q-D6q_96U4.js","assets/chunk-3OPIFGDE-C7ry6BV2.js","assets/chunk-L5ZTLDWV-CkreeF_c.js","assets/chunk-NZK2D7GU-VNmOz-at.js","assets/rough.esm-DCvqWubr.js","assets/chunk-BSJP7CBP-X4eyoSqE.js","assets/chunk-KSCS5N6A-CfM5PDGv.js","assets/line-BXQNouIY.js","assets/path-DfRbCp9y.js","assets/array-DOVTz2Mq.js","assets/chunk-LZXEDZCA-D7pcaXOQ.js","assets/chunk-WU5MYG2G-DnjLaLjD.js","assets/chunk-XPW4576I-YiT9fJFY.js","assets/TestsDialog-DR6zI8VO.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{a as e,i as t,n,r,t as i}from"./chunk-BNv3lrIs.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var a=i((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),o=i(((e,t)=>{t.exports=a()})),s=i((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.5`})),c=i(((e,t)=>{t.exports=s()})),l=i((e=>{var t=c();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=l(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=l(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.5`})),u=i(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=l()})),d=i((e=>{var t=o(),n=c(),r=u();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function l(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function d(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function f(e){if(s(e)!==e)throw Error(i(188))}function p(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var o=a.alternate;if(o===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return f(a),e;if(o===r)return f(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var c=!1,l=a.child;l;){if(l===n){c=!0,n=a,r=o;break}if(l===r){c=!0,r=a,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=a;break}if(l===r){c=!0,r=o,n=a;break}l=l.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function m(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=m(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),k=Symbol.for(`react.activity`),A=Symbol.for(`react.memo_cache_sentinel`),j=Symbol.iterator;function M(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var N=Symbol.for(`react.client.reference`);function P(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===N?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case k:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?P(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return P(e(t))}catch{}}return null}var F=Array.isArray,I=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R={pending:!1,data:null,method:null,action:null},z=[],B=-1;function V(e){return{current:e}}function H(e){0>B||(e.current=z[B],z[B]=null,B--)}function ee(e,t){B++,z[B]=e.current,e.current=t}var U=V(null),te=V(null),ne=V(null),re=V(null);function ie(e,t){switch(ee(ne,t),ee(te,e),ee(U,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Gd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Gd(t),e=Kd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}H(U),ee(U,e)}function ae(){H(U),H(te),H(ne)}function oe(e){e.memoizedState!==null&&ee(re,e);var t=U.current,n=Kd(t,e.type);t!==n&&(ee(te,e),ee(U,n))}function W(e){te.current===e&&(H(U),H(te)),re.current===e&&(H(re),np._currentValue=R)}var se,ce;function le(e){if(se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);se=t&&t[1]||``,ce=-1<e.stack.indexOf(`
|
|
3
3
|
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
4
4
|
`+se+e+ce}var ue=!1;function de(e,t){if(!e||ue)return``;ue=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,`name`,{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
@@ -51,7 +51,7 @@ Error generating stack: `+e.message+`
|
|
|
51
51
|
|
|
52
52
|
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
53
53
|
|
|
54
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return p.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},ko=`DialogDescriptionWarning`,Ao=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Do(ko).contentName}}.`;return p.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},jo=to,Mo=so,No=lo,Po=mo,Fo=yo,Io=xo,Lo=Co;function Ro(e){let t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function zo(e){let[t,n]=p.useState(void 0);return br(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var Bo=[`top`,`right`,`bottom`,`left`],Vo=Math.min,Ho=Math.max,Uo=Math.round,Wo=Math.floor,Go=e=>({x:e,y:e}),Ko={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function qo(e,t,n){return Ho(e,Vo(t,n))}function Jo(e,t){return typeof e==`function`?e(t):e}function Yo(e){return e.split(`-`)[0]}function Xo(e){return e.split(`-`)[1]}function Zo(e){return e===`x`?`y`:`x`}function Qo(e){return e===`y`?`height`:`width`}function $o(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function es(e){return Zo($o(e))}function ts(e,t,n){n===void 0&&(n=!1);let r=Xo(e),i=es(e),a=Qo(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=us(o)),[o,us(o)]}function ns(e){let t=us(e);return[rs(e),t,rs(t)]}function rs(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var is=[`left`,`right`],as=[`right`,`left`],os=[`top`,`bottom`],ss=[`bottom`,`top`];function cs(e,t,n){switch(e){case`top`:case`bottom`:return n?t?as:is:t?is:as;case`left`:case`right`:return t?os:ss;default:return[]}}function ls(e,t,n,r){let i=Xo(e),a=cs(Yo(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(rs)))),a}function us(e){let t=Yo(e);return Ko[t]+e.slice(t.length)}function ds(e){return{top:0,right:0,bottom:0,left:0,...e}}function fs(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ds(e)}function ps(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function ms(e,t,n){let{reference:r,floating:i}=e,a=$o(t),o=es(t),s=Qo(o),c=Yo(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Xo(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function hs(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Jo(t,e),p=fs(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=ps(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=ps(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var gs=50,_s=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:hs},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=ms(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<gs&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=ms(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},vs=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Jo(e,t)||{};if(l==null)return{};let d=fs(u),f={x:n,y:r},p=es(i),m=Qo(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Vo(d[_],T),D=Vo(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=qo(O,A,k),M=!c.arrow&&Xo(i)!=null&&A!==j&&a.reference[m]/2-(A<O?E:D)-h[m]/2<0,N=M?A<O?A-O:A-k:0;return{[p]:f[p]+N,data:{[p]:j,centerOffset:A-j-N,...M&&{alignmentOffset:N}},reset:M}}}),ys=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Jo(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Yo(r),_=$o(o),v=Yo(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[us(o)]:ns(o)),x=p!==`none`;!d&&x&&b.push(...ls(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=ts(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==$o(t))||T.every(e=>$o(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=$o(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function bs(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function xs(e){return Bo.some(t=>e[t]>=0)}var Ss=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Jo(e,t);switch(i){case`referenceHidden`:{let e=bs(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:xs(e)}}}case`escaped`:{let e=bs(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:xs(e)}}}default:return{}}}}},Cs=new Set([`left`,`top`]);async function ws(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Yo(n),s=Xo(n),c=$o(n)===`y`,l=Cs.has(o)?-1:1,u=a&&c?-1:1,d=Jo(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ts=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await ws(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Es=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Jo(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=$o(Yo(i)),p=Zo(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=qo(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=qo(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ds=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Jo(e,t),u={x:n,y:r},d=$o(i),f=Zo(d),p=u[f],m=u[d],h=Jo(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Cs.has(Yo(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Os=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Jo(e,t),u=await o.detectOverflow(t,l),d=Yo(i),f=Xo(i),p=$o(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=Vo(h-u[g],v),x=Vo(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Ho(u.left,0),t=Ho(u.right,0),n=Ho(u.top,0),r=Ho(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Ho(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Ho(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function ks(){return typeof window<`u`}function As(e){return Ns(e)?(e.nodeName||``).toLowerCase():`#document`}function js(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ms(e){return((Ns(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ns(e){return ks()?e instanceof Node||e instanceof js(e).Node:!1}function Ps(e){return ks()?e instanceof Element||e instanceof js(e).Element:!1}function Fs(e){return ks()?e instanceof HTMLElement||e instanceof js(e).HTMLElement:!1}function Is(e){return!ks()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof js(e).ShadowRoot}function Ls(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Js(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Rs(e){return/^(table|td|th)$/.test(As(e))}function zs(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Bs=/transform|translate|scale|rotate|perspective|filter/,Vs=/paint|layout|strict|content/,Hs=e=>!!e&&e!==`none`,Us;function Ws(e){let t=Ps(e)?Js(e):e;return Hs(t.transform)||Hs(t.translate)||Hs(t.scale)||Hs(t.rotate)||Hs(t.perspective)||!Ks()&&(Hs(t.backdropFilter)||Hs(t.filter))||Bs.test(t.willChange||``)||Vs.test(t.contain||``)}function Gs(e){let t=Xs(e);for(;Fs(t)&&!qs(t);){if(Ws(t))return t;if(zs(t))return null;t=Xs(t)}return null}function Ks(){return Us??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Us}function qs(e){return/^(html|body|#document)$/.test(As(e))}function Js(e){return js(e).getComputedStyle(e)}function Ys(e){return Ps(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Xs(e){if(As(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Is(e)&&e.host||Ms(e);return Is(t)?t.host:t}function Zs(e){let t=Xs(e);return qs(t)?e.ownerDocument?e.ownerDocument.body:e.body:Fs(t)&&Ls(t)?t:Zs(t)}function Qs(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Zs(e),i=r===e.ownerDocument?.body,a=js(r);if(i){let e=$s(a);return t.concat(a,a.visualViewport||[],Ls(r)?r:[],e&&n?Qs(e):[])}else return t.concat(r,Qs(r,[],n))}function $s(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ec(e){let t=Js(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Fs(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Uo(n)!==a||Uo(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function tc(e){return Ps(e)?e:e.contextElement}function nc(e){let t=tc(e);if(!Fs(t))return Go(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=ec(t),o=(a?Uo(n.width):n.width)/r,s=(a?Uo(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var rc=Go(0);function ic(e){let t=js(e);return!Ks()||!t.visualViewport?rc:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ac(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==js(e)?!1:t}function oc(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=tc(e),o=Go(1);t&&(r?Ps(r)&&(o=nc(r)):o=nc(e));let s=ac(a,n,r)?ic(a):Go(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=js(a),t=r&&Ps(r)?js(r):r,n=e,i=$s(n);for(;i&&r&&t!==n;){let e=nc(i),t=i.getBoundingClientRect(),r=Js(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=js(i),i=$s(n)}}return ps({width:u,height:d,x:c,y:l})}function sc(e,t){let n=Ys(e).scrollLeft;return t?t.left+n:oc(Ms(e)).left+n}function cc(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-sc(e,n),y:n.top+t.scrollTop}}function lc(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Ms(r),s=t?zs(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Go(1),u=Go(0),d=Fs(r);if((d||!d&&!a)&&((As(r)!==`body`||Ls(o))&&(c=Ys(r)),d)){let e=oc(r);l=nc(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?cc(o,c):Go(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function uc(e){return Array.from(e.getClientRects())}function dc(e){let t=Ms(e),n=Ys(e),r=e.ownerDocument.body,i=Ho(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Ho(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+sc(e),s=-n.scrollTop;return Js(r).direction===`rtl`&&(o+=Ho(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var fc=25;function pc(e,t){let n=js(e),r=Ms(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Ks();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=sc(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=fc&&(a-=o)}else l<=fc&&(a+=l);return{width:a,height:o,x:s,y:c}}function mc(e,t){let n=oc(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Fs(e)?nc(e):Go(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function hc(e,t,n){let r;if(t===`viewport`)r=pc(e,n);else if(t===`document`)r=dc(Ms(e));else if(Ps(t))r=mc(t,n);else{let n=ic(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return ps(r)}function gc(e,t){let n=Xs(e);return n===t||!Ps(n)||qs(n)?!1:Js(n).position===`fixed`||gc(n,t)}function _c(e,t){let n=t.get(e);if(n)return n;let r=Qs(e,[],!1).filter(e=>Ps(e)&&As(e)!==`body`),i=null,a=Js(e).position===`fixed`,o=a?Xs(e):e;for(;Ps(o)&&!qs(o);){let t=Js(o),n=Ws(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Ls(o)&&!n&&gc(e,o))?r=r.filter(e=>e!==o):i=t,o=Xs(o)}return t.set(e,r),r}function vc(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?zs(t)?[]:_c(t,this._c):[].concat(n),r],o=hc(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=hc(t,a[e],i);s=Ho(n.top,s),c=Vo(n.right,c),l=Vo(n.bottom,l),u=Ho(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function yc(e){let{width:t,height:n}=ec(e);return{width:t,height:n}}function bc(e,t,n){let r=Fs(t),i=Ms(t),a=n===`fixed`,o=oc(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Go(0);function l(){c.x=sc(i)}if(r||!r&&!a)if((As(t)!==`body`||Ls(i))&&(s=Ys(t)),r){let e=oc(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?cc(i,s):Go(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function xc(e){return Js(e).position===`static`}function Sc(e,t){if(!Fs(e)||Js(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Ms(e)===n&&(n=n.ownerDocument.body),n}function Cc(e,t){let n=js(e);if(zs(e))return n;if(!Fs(e)){let t=Xs(e);for(;t&&!qs(t);){if(Ps(t)&&!xc(t))return t;t=Xs(t)}return n}let r=Sc(e,t);for(;r&&Rs(r)&&xc(r);)r=Sc(r,t);return r&&qs(r)&&xc(r)&&!Ws(r)?n:r||Gs(e)||n}var wc=async function(e){let t=this.getOffsetParent||Cc,n=this.getDimensions,r=await n(e.floating);return{reference:bc(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Tc(e){return Js(e).direction===`rtl`}var Ec={convertOffsetParentRelativeRectToViewportRelativeRect:lc,getDocumentElement:Ms,getClippingRect:vc,getOffsetParent:Cc,getElementRects:wc,getClientRects:uc,getDimensions:yc,getScale:nc,isElement:Ps,isRTL:Tc};function Dc(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Oc(e,t){let n=null,r,i=Ms(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=Wo(d),h=Wo(i.clientWidth-(u+f)),g=Wo(i.clientHeight-(d+p)),_=Wo(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Ho(0,Vo(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Dc(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function kc(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=tc(e),u=i||a?[...l?Qs(l):[],...t?Qs(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Oc(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?oc(e):null;c&&g();function g(){let t=oc(e);h&&!Dc(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Ac=Ts,jc=Es,Mc=ys,Nc=Os,Pc=Ss,Fc=vs,Ic=Ds,Lc=(e,t,n)=>{let r=new Map,i={platform:Ec,...n},a={...i.platform,_c:r};return _s(e,t,{...i,platform:a})},Rc=typeof document<`u`?p.useLayoutEffect:function(){};function zc(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!zc(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!zc(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Bc(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Vc(e,t){let n=Bc(e);return Math.round(t*n)/n}function Hc(e){let t=p.useRef(e);return Rc(()=>{t.current=e}),t}function Uc(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=p.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,h]=p.useState(r);zc(f,r)||h(r);let[g,_]=p.useState(null),[v,y]=p.useState(null),b=p.useCallback(e=>{e!==w.current&&(w.current=e,_(e))},[]),x=p.useCallback(e=>{e!==T.current&&(T.current=e,y(e))},[]),S=a||g,C=o||v,w=p.useRef(null),T=p.useRef(null),E=p.useRef(u),D=c!=null,O=Hc(c),k=Hc(i),A=Hc(l),j=p.useCallback(()=>{if(!w.current||!T.current)return;let e={placement:t,strategy:n,middleware:f};k.current&&(e.platform=k.current),Lc(w.current,T.current,e).then(e=>{let t={...e,isPositioned:A.current!==!1};M.current&&!zc(E.current,t)&&(E.current=t,m.flushSync(()=>{d(t)}))})},[f,t,n,k,A]);Rc(()=>{l===!1&&E.current.isPositioned&&(E.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let M=p.useRef(!1);Rc(()=>(M.current=!0,()=>{M.current=!1}),[]),Rc(()=>{if(S&&(w.current=S),C&&(T.current=C),S&&C){if(O.current)return O.current(S,C,j);j()}},[S,C,j,O,D]);let N=p.useMemo(()=>({reference:w,floating:T,setReference:b,setFloating:x}),[b,x]),P=p.useMemo(()=>({reference:S,floating:C}),[S,C]),F=p.useMemo(()=>{let e={position:n,left:0,top:0};if(!P.floating)return e;let t=Vc(P.floating,u.x),r=Vc(P.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...Bc(P.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,P.floating,u.x,u.y]);return p.useMemo(()=>({...u,update:j,refs:N,elements:P,floatingStyles:F}),[u,j,N,P,F])}var Wc=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Fc({element:r.current,padding:i}).fn(n):r?Fc({element:r,padding:i}).fn(n):{}}}},Gc=(e,t)=>{let n=Ac(e);return{name:n.name,fn:n.fn,options:[e,t]}},Kc=(e,t)=>{let n=jc(e);return{name:n.name,fn:n.fn,options:[e,t]}},qc=(e,t)=>({fn:Ic(e).fn,options:[e,t]}),Jc=(e,t)=>{let n=Mc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Yc=(e,t)=>{let n=Nc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Xc=(e,t)=>{let n=Pc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Zc=(e,t)=>{let n=Wc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Qc=`Arrow`,$c=p.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,Y.jsx)(lr.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,Y.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});$c.displayName=Qc;var el=$c,tl=`Popper`,[nl,rl]=gr(tl),[il,al]=nl(tl),ol=e=>{let{__scopePopper:t,children:n}=e,[r,i]=p.useState(null);return(0,Y.jsx)(il,{scope:t,anchor:r,onAnchorChange:i,children:n})};ol.displayName=tl;var sl=`PopperAnchor`,cl=p.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=al(sl,n),o=p.useRef(null),s=er(t,o),c=p.useRef(null);return p.useEffect(()=>{let e=c.current;c.current=r?.current||o.current,e!==c.current&&a.onAnchorChange(c.current)}),r?null:(0,Y.jsx)(lr.div,{...i,ref:s})});cl.displayName=sl;var ll=`PopperContent`,[ul,dl]=nl(ll),fl=p.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:m=`optimized`,onPlaced:h,...g}=e,_=al(ll,n),[v,y]=p.useState(null),b=er(t,e=>y(e)),[x,S]=p.useState(null),C=zo(x),w=C?.width??0,T=C?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},O=Array.isArray(l)?l:[l],k=O.length>0,A={padding:D,boundary:O.filter(gl),altBoundary:k},{refs:j,floatingStyles:M,placement:N,isPositioned:P,middlewareData:F}=Uc({strategy:`fixed`,placement:E,whileElementsMounted:(...e)=>kc(...e,{animationFrame:m===`always`}),elements:{reference:_.anchor},middleware:[Gc({mainAxis:i+T,alignmentAxis:o}),c&&Kc({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?qc():void 0,...A}),c&&Jc({...A}),Yc({...A,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),x&&Zc({element:x,padding:s}),_l({arrowWidth:w,arrowHeight:T}),f&&Xc({strategy:`referenceHidden`,...A})]}),[I,L]=vl(N),R=Xr(h);br(()=>{P&&R?.()},[P,R]);let z=F.arrow?.x,B=F.arrow?.y,V=F.arrow?.centerOffset!==0,[H,ee]=p.useState();return br(()=>{v&&ee(window.getComputedStyle(v).zIndex)},[v]),(0,Y.jsx)(`div`,{ref:j.setFloating,"data-radix-popper-content-wrapper":``,style:{...M,transform:P?M.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:H,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(` `),...F.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,Y.jsx)(ul,{scope:n,placedSide:I,onArrowChange:S,arrowX:z,arrowY:B,shouldHideArrow:V,children:(0,Y.jsx)(lr.div,{"data-side":I,"data-align":L,...g,ref:b,style:{...g.style,animation:P?void 0:`none`}})})})});fl.displayName=ll;var pl=`PopperArrow`,ml={top:`bottom`,right:`left`,bottom:`top`,left:`right`},hl=p.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=dl(pl,n),a=ml[i.placedSide];return(0,Y.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,Y.jsx)(el,{...r,ref:t,style:{...r.style,display:`block`}})})});hl.displayName=pl;function gl(e){return e!==null}var _l=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=vl(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function vl(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var yl=ol,bl=cl,xl=fl,Sl=hl,Cl=`rovingFocusGroup.onEntryFocus`,wl={bubbles:!1,cancelable:!0},Tl=`RovingFocusGroup`,[El,Dl,Ol]=vr(Tl),[kl,Al]=gr(Tl,[Ol]),[jl,Ml]=kl(Tl),Nl=p.forwardRef((e,t)=>(0,Y.jsx)(El.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,Y.jsx)(El.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,Y.jsx)(Pl,{...e,ref:t})})}));Nl.displayName=Tl;var Pl=p.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=p.useRef(null),m=er(t,f),h=Yr(a),[g,_]=Sr({prop:o,defaultProp:s??null,onChange:c,caller:Tl}),[v,y]=p.useState(!1),b=Xr(l),x=Dl(n),S=p.useRef(!1),[C,w]=p.useState(0);return p.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(Cl,b),()=>e.removeEventListener(Cl,b)},[b]),(0,Y.jsx)(jl,{scope:n,orientation:r,dir:h,loop:i,currentTabStopId:g,onItemFocus:p.useCallback(e=>_(e),[_]),onItemShiftTab:p.useCallback(()=>y(!0),[]),onFocusableItemAdd:p.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:p.useCallback(()=>w(e=>e-1),[]),children:(0,Y.jsx)(lr.div,{tabIndex:v||C===0?-1:0,"data-orientation":r,...d,ref:m,style:{outline:`none`,...e.style},onMouseDown:yr(e.onMouseDown,()=>{S.current=!0}),onFocus:yr(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(Cl,wl);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);Bl([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),u)}}S.current=!1}),onBlur:yr(e.onBlur,()=>y(!1))})})}),Fl=`RovingFocusGroupItem`,Il=p.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=Mr(),l=a||c,u=Ml(Fl,n),d=u.currentTabStopId===l,f=Dl(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=u;return p.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,Y.jsx)(El.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,Y.jsx)(lr.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:yr(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:yr(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:yr(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=zl(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?Vl(n,r+1):n.slice(r+1)}setTimeout(()=>Bl(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:g!=null}):o})})});Il.displayName=Fl;var Ll={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Rl(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function zl(e,t,n){let r=Rl(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Ll[r]}function Bl(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Vl(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Hl=Nl,Ul=Il,Wl=[`Enter`,` `],Gl=[`ArrowDown`,`PageUp`,`Home`],Kl=[`ArrowUp`,`PageDown`,`End`],ql=[...Gl,...Kl],Jl={ltr:[...Wl,`ArrowRight`],rtl:[...Wl,`ArrowLeft`]},Yl={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},Xl=`Menu`,[Zl,Ql,$l]=vr(Xl),[eu,tu]=gr(Xl,[$l,rl,Al]),nu=rl(),ru=Al(),[iu,au]=eu(Xl),[ou,su]=eu(Xl),cu=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=nu(t),[c,l]=p.useState(null),u=p.useRef(!1),d=Xr(a),f=Yr(i);return p.useEffect(()=>{let e=()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),(0,Y.jsx)(yl,{...s,children:(0,Y.jsx)(iu,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,Y.jsx)(ou,{scope:t,onClose:p.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};cu.displayName=Xl;var lu=`MenuAnchor`,uu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=nu(n);return(0,Y.jsx)(bl,{...i,...r,ref:t})});uu.displayName=lu;var du=`MenuPortal`,[fu,pu]=eu(du,{forceMount:void 0}),mu=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=au(du,t);return(0,Y.jsx)(fu,{scope:t,forceMount:n,children:(0,Y.jsx)(Er,{present:n||a.open,children:(0,Y.jsx)(Oi,{asChild:!0,container:i,children:r})})})};mu.displayName=du;var hu=`MenuContent`,[gu,_u]=eu(hu),vu=p.forwardRef((e,t)=>{let n=pu(hu,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=au(hu,e.__scopeMenu),o=su(hu,e.__scopeMenu);return(0,Y.jsx)(Zl.Provider,{scope:e.__scopeMenu,children:(0,Y.jsx)(Er,{present:r||a.open,children:(0,Y.jsx)(Zl.Slot,{scope:e.__scopeMenu,children:o.modal?(0,Y.jsx)(yu,{...i,ref:t}):(0,Y.jsx)(bu,{...i,ref:t})})})})}),yu=p.forwardRef((e,t)=>{let n=au(hu,e.__scopeMenu),r=p.useRef(null),i=er(t,r);return p.useEffect(()=>{let e=r.current;if(e)return Ya(e)},[]),(0,Y.jsx)(Su,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:yr(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),bu=p.forwardRef((e,t)=>{let n=au(hu,e.__scopeMenu);return(0,Y.jsx)(Su,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),xu=tr(`MenuContent.ScrollLock`),Su=p.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:m,disableOutsideScroll:h,...g}=e,_=au(hu,n),v=su(hu,n),y=nu(n),b=ru(n),x=Ql(n),[S,C]=p.useState(null),w=p.useRef(null),T=er(t,w,_.onContentChange),E=p.useRef(0),D=p.useRef(``),O=p.useRef(0),k=p.useRef(null),A=p.useRef(`right`),j=p.useRef(0),M=h?Ba:p.Fragment,N=h?{as:xu,allowPinchZoom:!0}:void 0,P=e=>{let t=D.current+e,n=x().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=od(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){D.current=t,window.clearTimeout(E.current),t!==``&&(E.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};p.useEffect(()=>()=>window.clearTimeout(E.current),[]),Ai();let F=p.useCallback(e=>A.current===k.current?.side&&cd(e,k.current?.area),[]);return(0,Y.jsx)(gu,{scope:n,searchRef:D,onItemEnter:p.useCallback(e=>{F(e)&&e.preventDefault()},[F]),onItemLeave:p.useCallback(e=>{F(e)||(w.current?.focus(),C(null))},[F]),onTriggerLeave:p.useCallback(e=>{F(e)&&e.preventDefault()},[F]),pointerGraceTimerRef:O,onPointerGraceIntentChange:p.useCallback(e=>{k.current=e},[]),children:(0,Y.jsx)(M,{...N,children:(0,Y.jsx)(hi,{asChild:!0,trapped:i,onMountAutoFocus:yr(a,e=>{e.preventDefault(),w.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,Y.jsx)(ii,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:m,children:(0,Y.jsx)(Hl,{asChild:!0,...b,dir:v.dir,orientation:`vertical`,loop:r,currentTabStopId:S,onCurrentTabStopIdChange:C,onEntryFocus:yr(c,e=>{v.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,Y.jsx)(xl,{role:`menu`,"aria-orientation":`vertical`,"data-state":td(_.open),"data-radix-menu-content":``,dir:v.dir,...y,...g,ref:T,style:{outline:`none`,...g.style},onKeyDown:yr(g.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&P(e.key));let i=w.current;if(e.target!==i||!ql.includes(e.key))return;e.preventDefault();let a=x().filter(e=>!e.disabled).map(e=>e.ref.current);Kl.includes(e.key)&&a.reverse(),id(a)}),onBlur:yr(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(E.current),D.current=``)}),onPointerMove:yr(e.onPointerMove,ld(e=>{let t=e.target,n=j.current!==e.clientX;e.currentTarget.contains(t)&&n&&(A.current=e.clientX>j.current?`right`:`left`,j.current=e.clientX)}))})})})})})})});vu.displayName=hu;var Cu=`MenuGroup`,wu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,Y.jsx)(lr.div,{role:`group`,...r,ref:t})});wu.displayName=Cu;var Tu=`MenuLabel`,Eu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,Y.jsx)(lr.div,{...r,ref:t})});Eu.displayName=Tu;var Du=`MenuItem`,Ou=`menu.itemSelect`,ku=p.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,a=p.useRef(null),o=su(Du,e.__scopeMenu),s=_u(Du,e.__scopeMenu),c=er(t,a),l=p.useRef(!1),u=()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(Ou,{bubbles:!0,cancelable:!0});e.addEventListener(Ou,e=>r?.(e),{once:!0}),ur(e,t),t.defaultPrevented?l.current=!1:o.onClose()}};return(0,Y.jsx)(Au,{...i,ref:c,disabled:n,onClick:yr(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:yr(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:yr(e.onKeyDown,e=>{let t=s.searchRef.current!==``;n||t&&e.key===` `||Wl.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});ku.displayName=Du;var Au=p.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=_u(Du,n),s=ru(n),c=p.useRef(null),l=er(t,c),[u,d]=p.useState(!1),[f,m]=p.useState(``);return p.useEffect(()=>{let e=c.current;e&&m((e.textContent??``).trim())},[a.children]),(0,Y.jsx)(Zl.ItemSlot,{scope:n,disabled:r,textValue:i??f,children:(0,Y.jsx)(Ul,{asChild:!0,...s,focusable:!r,children:(0,Y.jsx)(lr.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:yr(e.onPointerMove,ld(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:yr(e.onPointerLeave,ld(e=>o.onItemLeave(e))),onFocus:yr(e.onFocus,()=>d(!0)),onBlur:yr(e.onBlur,()=>d(!1))})})})}),ju=`MenuCheckboxItem`,Mu=p.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,Y.jsx)(Bu,{scope:e.__scopeMenu,checked:n,children:(0,Y.jsx)(ku,{role:`menuitemcheckbox`,"aria-checked":nd(n)?`mixed`:n,...i,ref:t,"data-state":rd(n),onSelect:yr(i.onSelect,()=>r?.(nd(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Mu.displayName=ju;var Nu=`MenuRadioGroup`,[Pu,Fu]=eu(Nu,{value:void 0,onValueChange:()=>{}}),Iu=p.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=Xr(r);return(0,Y.jsx)(Pu,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,Y.jsx)(wu,{...i,ref:t})})});Iu.displayName=Nu;var Lu=`MenuRadioItem`,Ru=p.forwardRef((e,t)=>{let{value:n,...r}=e,i=Fu(Lu,e.__scopeMenu),a=n===i.value;return(0,Y.jsx)(Bu,{scope:e.__scopeMenu,checked:a,children:(0,Y.jsx)(ku,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":rd(a),onSelect:yr(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});Ru.displayName=Lu;var zu=`MenuItemIndicator`,[Bu,Vu]=eu(zu,{checked:!1}),Hu=p.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=Vu(zu,n);return(0,Y.jsx)(Er,{present:r||nd(a.checked)||a.checked===!0,children:(0,Y.jsx)(lr.span,{...i,ref:t,"data-state":rd(a.checked)})})});Hu.displayName=zu;var Uu=`MenuSeparator`,Wu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,Y.jsx)(lr.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});Wu.displayName=Uu;var Gu=`MenuArrow`,Ku=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=nu(n);return(0,Y.jsx)(Sl,{...i,...r,ref:t})});Ku.displayName=Gu;var qu=`MenuSub`,[Ju,Yu]=eu(qu),Xu=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=au(qu,t),o=nu(t),[s,c]=p.useState(null),[l,u]=p.useState(null),d=Xr(i);return p.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,Y.jsx)(yl,{...o,children:(0,Y.jsx)(iu,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,Y.jsx)(Ju,{scope:t,contentId:Mr(),triggerId:Mr(),trigger:s,onTriggerChange:c,children:n})})})};Xu.displayName=qu;var Zu=`MenuSubTrigger`,Qu=p.forwardRef((e,t)=>{let n=au(Zu,e.__scopeMenu),r=su(Zu,e.__scopeMenu),i=Yu(Zu,e.__scopeMenu),a=_u(Zu,e.__scopeMenu),o=p.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=a,l={__scopeMenu:e.__scopeMenu},u=p.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return p.useEffect(()=>u,[u]),p.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),c(null)}},[s,c]),(0,Y.jsx)(uu,{asChild:!0,...l,children:(0,Y.jsx)(Au,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":td(n.open),...e,ref:$n(t,i.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:yr(e.onPointerMove,ld(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),u()},100))})),onPointerLeave:yr(e.onPointerLeave,ld(e=>{u();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,c=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:c,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:c,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:yr(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||Jl[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});Qu.displayName=Zu;var $u=`MenuSubContent`,ed=p.forwardRef((e,t)=>{let n=pu(hu,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=au(hu,e.__scopeMenu),o=su(hu,e.__scopeMenu),s=Yu($u,e.__scopeMenu),c=p.useRef(null),l=er(t,c);return(0,Y.jsx)(Zl.Provider,{scope:e.__scopeMenu,children:(0,Y.jsx)(Er,{present:r||a.open,children:(0,Y.jsx)(Zl.Slot,{scope:e.__scopeMenu,children:(0,Y.jsx)(Su,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:`start`,side:o.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{o.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:yr(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:yr(e.onEscapeKeyDown,e=>{o.onClose(),e.preventDefault()}),onKeyDown:yr(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=Yl[o.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});ed.displayName=$u;function td(e){return e?`open`:`closed`}function nd(e){return e===`indeterminate`}function rd(e){return nd(e)?`indeterminate`:e?`checked`:`unchecked`}function id(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function ad(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function od(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=ad(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function sd(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function cd(e,t){return t?sd({x:e.clientX,y:e.clientY},t):!1}function ld(e){return t=>t.pointerType===`mouse`?e(t):void 0}var ud=cu,dd=uu,fd=mu,pd=vu,md=wu,hd=Eu,gd=ku,_d=Mu,vd=Iu,yd=Ru,bd=Hu,xd=Wu,Sd=Ku,Cd=Qu,wd=ed,Td=`DropdownMenu`,[Ed,Dd]=gr(Td,[tu]),Od=tu(),[kd,Ad]=Ed(Td),jd=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=Od(t),l=p.useRef(null),[u,d]=Sr({prop:i,defaultProp:a??!1,onChange:o,caller:Td});return(0,Y.jsx)(kd,{scope:t,triggerId:Mr(),triggerRef:l,contentId:Mr(),open:u,onOpenChange:d,onOpenToggle:p.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,Y.jsx)(ud,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};jd.displayName=Td;var Md=`DropdownMenuTrigger`,Nd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Ad(Md,n),o=Od(n);return(0,Y.jsx)(dd,{asChild:!0,...o,children:(0,Y.jsx)(lr.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:$n(t,a.triggerRef),onPointerDown:yr(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:yr(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Nd.displayName=Md;var Pd=`DropdownMenuPortal`,Fd=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Od(t);return(0,Y.jsx)(fd,{...r,...n})};Fd.displayName=Pd;var Id=`DropdownMenuContent`,Ld=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ad(Id,n),a=Od(n),o=p.useRef(!1);return(0,Y.jsx)(pd,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:yr(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:yr(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});Ld.displayName=Id;var Rd=`DropdownMenuGroup`,zd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(md,{...i,...r,ref:t})});zd.displayName=Rd;var Bd=`DropdownMenuLabel`,Vd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(hd,{...i,...r,ref:t})});Vd.displayName=Bd;var Hd=`DropdownMenuItem`,Ud=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(gd,{...i,...r,ref:t})});Ud.displayName=Hd;var Wd=`DropdownMenuCheckboxItem`,Gd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(_d,{...i,...r,ref:t})});Gd.displayName=Wd;var Kd=`DropdownMenuRadioGroup`,qd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(vd,{...i,...r,ref:t})});qd.displayName=Kd;var Jd=`DropdownMenuRadioItem`,Yd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(yd,{...i,...r,ref:t})});Yd.displayName=Jd;var Xd=`DropdownMenuItemIndicator`,Zd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(bd,{...i,...r,ref:t})});Zd.displayName=Xd;var Qd=`DropdownMenuSeparator`,$d=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(xd,{...i,...r,ref:t})});$d.displayName=Qd;var ef=`DropdownMenuArrow`,tf=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(Sd,{...i,...r,ref:t})});tf.displayName=ef;var nf=`DropdownMenuSubTrigger`,rf=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(Cd,{...i,...r,ref:t})});rf.displayName=nf;var af=`DropdownMenuSubContent`,of=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(wd,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});of.displayName=af;var sf=jd,cf=Nd,lf=Fd,uf=Ld,df=Ud,ff=`Label`,pf=p.forwardRef((e,t)=>(0,Y.jsx)(lr.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));pf.displayName=ff;var mf=pf,hf=`Popover`,[gf,_f]=gr(hf,[rl]),vf=rl(),[yf,bf]=gf(hf),xf=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=vf(t),c=p.useRef(null),[l,u]=p.useState(!1),[d,f]=Sr({prop:r,defaultProp:i??!1,onChange:a,caller:hf});return(0,Y.jsx)(yl,{...s,children:(0,Y.jsx)(yf,{scope:t,contentId:Mr(),triggerRef:c,open:d,onOpenChange:f,onOpenToggle:p.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:l,onCustomAnchorAdd:p.useCallback(()=>u(!0),[]),onCustomAnchorRemove:p.useCallback(()=>u(!1),[]),modal:o,children:n})})};xf.displayName=hf;var Sf=`PopoverAnchor`,Cf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=bf(Sf,n),a=vf(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return p.useEffect(()=>(o(),()=>s()),[o,s]),(0,Y.jsx)(bl,{...a,...r,ref:t})});Cf.displayName=Sf;var wf=`PopoverTrigger`,Tf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=bf(wf,n),a=vf(n),o=er(t,i.triggerRef),s=(0,Y.jsx)(lr.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":Bf(i.open),...r,ref:o,onClick:yr(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,Y.jsx)(bl,{asChild:!0,...a,children:s})});Tf.displayName=wf;var Ef=`PopoverPortal`,[Df,Of]=gf(Ef,{forceMount:void 0}),kf=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=bf(Ef,t);return(0,Y.jsx)(Df,{scope:t,forceMount:n,children:(0,Y.jsx)(Er,{present:n||a.open,children:(0,Y.jsx)(Oi,{asChild:!0,container:i,children:r})})})};kf.displayName=Ef;var Af=`PopoverContent`,jf=p.forwardRef((e,t)=>{let n=Of(Af,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=bf(Af,e.__scopePopover);return(0,Y.jsx)(Er,{present:r||a.open,children:a.modal?(0,Y.jsx)(Nf,{...i,ref:t}):(0,Y.jsx)(Pf,{...i,ref:t})})});jf.displayName=Af;var Mf=tr(`PopoverContent.RemoveScroll`),Nf=p.forwardRef((e,t)=>{let n=bf(Af,e.__scopePopover),r=p.useRef(null),i=er(t,r),a=p.useRef(!1);return p.useEffect(()=>{let e=r.current;if(e)return Ya(e)},[]),(0,Y.jsx)(Ba,{as:Mf,allowPinchZoom:!0,children:(0,Y.jsx)(Ff,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:yr(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:yr(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.current=t.button===2||n},{checkForDefaultPrevented:!1}),onFocusOutside:yr(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),Pf=p.forwardRef((e,t)=>{let n=bf(Af,e.__scopePopover),r=p.useRef(!1),i=p.useRef(!1);return(0,Y.jsx)(Ff,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),Ff=p.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=bf(Af,n),p=vf(n);return Ai(),(0,Y.jsx)(hi,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,Y.jsx)(ii,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),children:(0,Y.jsx)(xl,{"data-state":Bf(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),If=`PopoverClose`,Lf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=bf(If,n);return(0,Y.jsx)(lr.button,{type:`button`,...r,ref:t,onClick:yr(e.onClick,()=>i.onOpenChange(!1))})});Lf.displayName=If;var Rf=`PopoverArrow`,zf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=vf(n);return(0,Y.jsx)(Sl,{...i,...r,ref:t})});zf.displayName=Rf;function Bf(e){return e?`open`:`closed`}var Vf=xf,Hf=Tf,Uf=kf,Wf=jf,Gf=`Switch`,[Kf,qf]=gr(Gf),[Jf,Yf]=Kf(Gf),Xf=p.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c=`on`,onCheckedChange:l,form:u,...d}=e,[f,m]=p.useState(null),h=er(t,e=>m(e)),g=p.useRef(!1),_=f?u||!!f.closest(`form`):!0,[v,y]=Sr({prop:i,defaultProp:a??!1,onChange:l,caller:Gf});return(0,Y.jsxs)(Jf,{scope:n,checked:v,disabled:s,children:[(0,Y.jsx)(lr.button,{type:`button`,role:`switch`,"aria-checked":v,"aria-required":o,"data-state":tp(v),"data-disabled":s?``:void 0,disabled:s,value:c,...d,ref:h,onClick:yr(e.onClick,e=>{y(e=>!e),_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),_&&(0,Y.jsx)(ep,{control:f,bubbles:!g.current,name:r,value:c,checked:v,required:o,disabled:s,form:u,style:{transform:`translateX(-100%)`}})]})});Xf.displayName=Gf;var Zf=`SwitchThumb`,Qf=p.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Yf(Zf,n);return(0,Y.jsx)(lr.span,{"data-state":tp(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Qf.displayName=Zf;var $f=`SwitchBubbleInput`,ep=p.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=p.useRef(null),s=er(o,a),c=Ro(n),l=zo(t);return p.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,Y.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...l,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});ep.displayName=$f;function tp(e){return e?`checked`:`unchecked`}var np=Xf,rp=Qf,ip=`Tabs`,[ap,op]=gr(ip,[Al]),sp=Al(),[cp,lp]=ap(ip),up=p.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=Yr(s),[d,f]=Sr({prop:r,onChange:i,defaultProp:a??``,caller:ip});return(0,Y.jsx)(cp,{scope:n,baseId:Mr(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,Y.jsx)(lr.div,{dir:u,"data-orientation":o,...l,ref:t})})});up.displayName=ip;var dp=`TabsList`,fp=p.forwardRef((e,t)=>{let{__scopeTabs:n,loop:r=!0,...i}=e,a=lp(dp,n),o=sp(n);return(0,Y.jsx)(Hl,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,Y.jsx)(lr.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})});fp.displayName=dp;var pp=`TabsTrigger`,mp=p.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=lp(pp,n),s=sp(n),c=_p(o.baseId,r),l=vp(o.baseId,r),u=r===o.value;return(0,Y.jsx)(Ul,{asChild:!0,...s,focusable:!i,active:u,children:(0,Y.jsx)(lr.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:yr(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:yr(e.onKeyDown,e=>{[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:yr(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})});mp.displayName=pp;var hp=`TabsContent`,gp=p.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=lp(hp,n),c=_p(s.baseId,r),l=vp(s.baseId,r),u=r===s.value,d=p.useRef(u);return p.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,Y.jsx)(Er,{present:i||u,children:({present:n})=>(0,Y.jsx)(lr.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})});gp.displayName=hp;function _p(e,t){return`${e}-trigger-${t}`}function vp(e,t){return`${e}-content-${t}`}var yp=up,bp=fp,xp=mp,Sp=gp,Cp=`Toggle`,wp=p.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=Sr({prop:n,onChange:i,defaultProp:r??!1,caller:Cp});return(0,Y.jsx)(lr.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:yr(e.onClick,()=>{e.disabled||s(!o)})})});wp.displayName=Cp;var Tp=`ToggleGroup`,[Ep,Dp]=gr(Tp,[Al]),Op=Al(),kp=p.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,Y.jsx)(Mp,{...r,ref:t});if(n===`multiple`)return(0,Y.jsx)(Np,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${Tp}\``)});kp.displayName=Tp;var[Ap,jp]=Ep(Tp),Mp=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=Sr({prop:n,defaultProp:r??``,onChange:i,caller:Tp});return(0,Y.jsx)(Ap,{scope:e.__scopeToggleGroup,type:`single`,value:p.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:p.useCallback(()=>s(``),[s]),children:(0,Y.jsx)(Ip,{...a,ref:t})})}),Np=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=Sr({prop:n,defaultProp:r??[],onChange:i,caller:Tp}),c=p.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=p.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,Y.jsx)(Ap,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,Y.jsx)(Ip,{...a,ref:t})})});kp.displayName=Tp;var[Pp,Fp]=Ep(Tp),Ip=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=Op(n),u=Yr(o),d={role:`group`,dir:u,...c};return(0,Y.jsx)(Pp,{scope:n,rovingFocus:i,disabled:r,children:i?(0,Y.jsx)(Hl,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,Y.jsx)(lr.div,{...d,ref:t})}):(0,Y.jsx)(lr.div,{...d,ref:t})})}),Lp=`ToggleGroupItem`,Rp=p.forwardRef((e,t)=>{let n=jp(Lp,e.__scopeToggleGroup),r=Fp(Lp,e.__scopeToggleGroup),i=Op(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=p.useRef(null);return r.rovingFocus?(0,Y.jsx)(Ul,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,Y.jsx)(zp,{...s,ref:t})}):(0,Y.jsx)(zp,{...s,ref:t})});Rp.displayName=Lp;var zp=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=jp(Lp,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,Y.jsx)(wp,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),Bp=kp,Vp=Rp,[Hp,Up]=gr(`Tooltip`,[rl]),Wp=rl(),Gp=`TooltipProvider`,Kp=700,qp=`tooltip.open`,[Jp,Yp]=Hp(Gp),Xp=e=>{let{__scopeTooltip:t,delayDuration:n=Kp,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=p.useRef(!0),s=p.useRef(!1),c=p.useRef(0);return p.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,Y.jsx)(Jp,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:p.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:p.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:p.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};Xp.displayName=Gp;var Zp=`Tooltip`,[Qp,$p]=Hp(Zp),em=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Yp(Zp,e.__scopeTooltip),l=Wp(t),[u,d]=p.useState(null),f=Mr(),m=p.useRef(0),h=o??c.disableHoverableContent,g=s??c.delayDuration,_=p.useRef(!1),[v,y]=Sr({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(qp))):c.onClose(),a?.(e)},caller:Zp}),b=p.useMemo(()=>v?_.current?`delayed-open`:`instant-open`:`closed`,[v]),x=p.useCallback(()=>{window.clearTimeout(m.current),m.current=0,_.current=!1,y(!0)},[y]),S=p.useCallback(()=>{window.clearTimeout(m.current),m.current=0,y(!1)},[y]),C=p.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{_.current=!0,y(!0),m.current=0},g)},[g,y]);return p.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,Y.jsx)(yl,{...l,children:(0,Y.jsx)(Qp,{scope:t,contentId:f,open:v,stateAttribute:b,trigger:u,onTriggerChange:d,onTriggerEnter:p.useCallback(()=>{c.isOpenDelayedRef.current?C():x()},[c.isOpenDelayedRef,C,x]),onTriggerLeave:p.useCallback(()=>{h?S():(window.clearTimeout(m.current),m.current=0)},[S,h]),onOpen:x,onClose:S,disableHoverableContent:h,children:n})})};em.displayName=Zp;var tm=`TooltipTrigger`,nm=p.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=$p(tm,n),a=Yp(tm,n),o=Wp(n),s=er(t,p.useRef(null),i.onTriggerChange),c=p.useRef(!1),l=p.useRef(!1),u=p.useCallback(()=>c.current=!1,[]);return p.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,Y.jsx)(bl,{asChild:!0,...o,children:(0,Y.jsx)(lr.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:yr(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:yr(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:yr(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:yr(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:yr(e.onBlur,i.onClose),onClick:yr(e.onClick,i.onClose)})})});nm.displayName=tm;var rm=`TooltipPortal`,[im,am]=Hp(rm,{forceMount:void 0}),om=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=$p(rm,t);return(0,Y.jsx)(im,{scope:t,forceMount:n,children:(0,Y.jsx)(Er,{present:n||a.open,children:(0,Y.jsx)(Oi,{asChild:!0,container:i,children:r})})})};om.displayName=rm;var sm=`TooltipContent`,cm=p.forwardRef((e,t)=>{let n=am(sm,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=$p(sm,e.__scopeTooltip);return(0,Y.jsx)(Er,{present:r||o.open,children:o.disableHoverableContent?(0,Y.jsx)(pm,{side:i,...a,ref:t}):(0,Y.jsx)(lm,{side:i,...a,ref:t})})}),lm=p.forwardRef((e,t)=>{let n=$p(sm,e.__scopeTooltip),r=Yp(sm,e.__scopeTooltip),i=p.useRef(null),a=er(t,i),[o,s]=p.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=p.useCallback(()=>{s(null),d(!1)},[d]),m=p.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=_m(r,gm(r,n.getBoundingClientRect())),a=vm(t.getBoundingClientRect());s(bm([...i,...a])),d(!0)},[d]);return p.useEffect(()=>()=>f(),[f]),p.useEffect(()=>{if(c&&u){let e=e=>m(e,u),t=e=>m(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,m,f]),p.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!ym(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,Y.jsx)(pm,{...e,ref:a})}),[um,dm]=Hp(Zp,{isInside:!1}),fm=ar(`TooltipContent`),pm=p.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=$p(sm,n),l=Wp(n),{onClose:u}=c;return p.useEffect(()=>(document.addEventListener(qp,u),()=>document.removeEventListener(qp,u)),[u]),p.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,Y.jsx)(ii,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,Y.jsxs)(xl,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,Y.jsx)(fm,{children:r}),(0,Y.jsx)(um,{scope:n,isInside:!0,children:(0,Y.jsx)(mr,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});cm.displayName=sm;var mm=`TooltipArrow`,hm=p.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Wp(n);return dm(mm,n).isInside?null:(0,Y.jsx)(Sl,{...i,...r,ref:t})});hm.displayName=mm;function gm(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function _m(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function vm(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function ym(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function bm(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),xm(t)}function xm(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Sm=Xp,Cm=em,wm=nm,Tm=om,Em=cm,Dm=hm,Om=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},eee=(e,t)=>({classGroupId:e,validator:t}),km=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Am=`-`,jm=[],tee=`arbitrary..`,nee=e=>{let t=Pm(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return Nm(e);let n=e.split(Am);return Mm(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?Om(i,t):t:i||jm}return n[e]||jm}}},Mm=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Mm(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(Am):e.slice(t).join(Am),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},Nm=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?tee+r:void 0})(),Pm=e=>{let{theme:t,classGroups:n}=e;return Fm(n,t)},Fm=(e,t)=>{let n=km();for(let r in e){let i=e[r];Im(i,n,r,t)}return n},Im=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Lm(i,t,n,r)}},Lm=(e,t,n,r)=>{if(typeof e==`string`){Rm(e,t,n);return}if(typeof e==`function`){zm(e,t,n,r);return}Bm(e,t,n,r)},Rm=(e,t,n)=>{let r=e===``?t:Vm(t,e);r.classGroupId=n},zm=(e,t,n,r)=>{if(Hm(e)){Im(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(eee(n,e))},Bm=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];Im(o,Vm(t,a),n,r)}},Vm=(e,t)=>{let n=e,r=t.split(Am),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=km(),n.nextPart.set(t,i)),n=i}return n},Hm=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Um=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},Wm=`!`,Gm=`:`,Km=[],qm=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Jm=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Gm){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(Wm)?(c=s.slice(0,-1),l=!0):s.startsWith(Wm)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return qm(t,l,c,u)};if(t){let e=t+Gm,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):qm(Km,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Ym=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Xm=e=>({cache:Um(e.cacheSize),parseClassName:Jm(e),sortModifiers:Ym(e),...nee(e)}),Zm=/\s+/,Qm=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(Zm),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let m=!!p,h=r(m?f.substring(0,p):f);if(!h){if(!m){c=t+(c.length>0?` `+c:c);continue}if(h=r(f),!h){c=t+(c.length>0?` `+c:c);continue}m=!1}let g=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),_=d?g+Wm:g,v=_+h;if(o.indexOf(v)>-1)continue;o.push(v);let y=i(h,m);for(let e=0;e<y.length;++e){let t=y[e];o.push(_+t)}c=t+(c.length>0?` `+c:c)}return c},$m=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=eh(n))&&(i&&(i+=` `),i+=r);return i},eh=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=eh(e[r]))&&(n&&(n+=` `),n+=t);return n},th=(e,...t)=>{let n,r,i,a,o=o=>(n=Xm(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=Qm(e,n);return i(e,a),a};return a=o,(...e)=>a($m(...e))},nh=[],rh=e=>{let t=t=>t[e]||nh;return t.isThemeGetter=!0,t},ih=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ah=/^\((?:(\w[\w-]*):)?(.+)\)$/i,oh=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,sh=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ch=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,lh=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,uh=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,dh=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,fh=e=>oh.test(e),ph=e=>!!e&&!Number.isNaN(Number(e)),mh=e=>!!e&&Number.isInteger(Number(e)),hh=e=>e.endsWith(`%`)&&ph(e.slice(0,-1)),gh=e=>sh.test(e),_h=()=>!0,vh=e=>ch.test(e)&&!lh.test(e),yh=()=>!1,bh=e=>uh.test(e),xh=e=>dh.test(e),Sh=e=>!wh(e)&&!Mh(e),Ch=e=>Bh(e,Wh,yh),wh=e=>ih.test(e),Th=e=>Bh(e,Gh,vh),Eh=e=>Bh(e,Kh,ph),Dh=e=>Bh(e,Jh,_h),Oh=e=>Bh(e,qh,yh),kh=e=>Bh(e,Hh,yh),Ah=e=>Bh(e,Uh,xh),jh=e=>Bh(e,Yh,bh),Mh=e=>ah.test(e),Nh=e=>Vh(e,Gh),Ph=e=>Vh(e,qh),Fh=e=>Vh(e,Hh),Ih=e=>Vh(e,Wh),Lh=e=>Vh(e,Uh),Rh=e=>Vh(e,Yh,!0),zh=e=>Vh(e,Jh,!0),Bh=(e,t,n)=>{let r=ih.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Vh=(e,t,n=!1)=>{let r=ah.exec(e);return r?r[1]?t(r[1]):n:!1},Hh=e=>e===`position`||e===`percentage`,Uh=e=>e===`image`||e===`url`,Wh=e=>e===`length`||e===`size`||e===`bg-size`,Gh=e=>e===`length`,Kh=e=>e===`number`,qh=e=>e===`family-name`,Jh=e=>e===`number`||e===`weight`,Yh=e=>e===`shadow`,Xh=th(()=>{let e=rh(`color`),t=rh(`font`),n=rh(`text`),r=rh(`font-weight`),i=rh(`tracking`),a=rh(`leading`),o=rh(`breakpoint`),s=rh(`container`),c=rh(`spacing`),l=rh(`radius`),u=rh(`shadow`),d=rh(`inset-shadow`),f=rh(`text-shadow`),p=rh(`drop-shadow`),m=rh(`blur`),h=rh(`perspective`),g=rh(`aspect`),_=rh(`ease`),v=rh(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),Mh,wh],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[Mh,wh,c],T=()=>[fh,`full`,`auto`,...w()],E=()=>[mh,`none`,`subgrid`,Mh,wh],D=()=>[`auto`,{span:[`full`,mh,Mh,wh]},mh,Mh,wh],O=()=>[mh,`auto`,Mh,wh],k=()=>[`auto`,`min`,`max`,`fr`,Mh,wh],A=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],j=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],M=()=>[`auto`,...w()],N=()=>[fh,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],P=()=>[fh,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],F=()=>[fh,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],I=()=>[e,Mh,wh],L=()=>[...b(),Fh,kh,{position:[Mh,wh]}],R=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],z=()=>[`auto`,`cover`,`contain`,Ih,Ch,{size:[Mh,wh]}],B=()=>[hh,Nh,Th],V=()=>[``,`none`,`full`,l,Mh,wh],H=()=>[``,ph,Nh,Th],ee=()=>[`solid`,`dashed`,`dotted`,`double`],U=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],te=()=>[ph,hh,Fh,kh],ne=()=>[``,`none`,m,Mh,wh],re=()=>[`none`,ph,Mh,wh],ie=()=>[`none`,ph,Mh,wh],ae=()=>[ph,Mh,wh],oe=()=>[fh,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[gh],breakpoint:[gh],color:[_h],container:[gh],"drop-shadow":[gh],ease:[`in`,`out`,`in-out`],font:[Sh],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[gh],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[gh],shadow:[gh],spacing:[`px`,ph],text:[gh],"text-shadow":[gh],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,fh,wh,Mh,g]}],container:[`container`],columns:[{columns:[ph,wh,Mh,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[mh,`auto`,Mh,wh]}],basis:[{basis:[fh,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[ph,fh,`auto`,`initial`,`none`,wh]}],grow:[{grow:[``,ph,Mh,wh]}],shrink:[{shrink:[``,ph,Mh,wh]}],order:[{order:[mh,`first`,`last`,`none`,Mh,wh]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...A(),`normal`]}],"justify-items":[{"justify-items":[...j(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...j()]}],"align-content":[{content:[`normal`,...A()]}],"align-items":[{items:[...j(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...j(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":A()}],"place-items":[{"place-items":[...j(),`baseline`]}],"place-self":[{"place-self":[`auto`,...j()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:N()}],"inline-size":[{inline:[`auto`,...P()]}],"min-inline-size":[{"min-inline":[`auto`,...P()]}],"max-inline-size":[{"max-inline":[`none`,...P()]}],"block-size":[{block:[`auto`,...F()]}],"min-block-size":[{"min-block":[`auto`,...F()]}],"max-block-size":[{"max-block":[`none`,...F()]}],w:[{w:[s,`screen`,...N()]}],"min-w":[{"min-w":[s,`screen`,`none`,...N()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...N()]}],h:[{h:[`screen`,`lh`,...N()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...N()]}],"max-h":[{"max-h":[`screen`,`lh`,...N()]}],"font-size":[{text:[`base`,n,Nh,Th]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,zh,Dh]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,hh,wh]}],"font-family":[{font:[Ph,Oh,t]}],"font-features":[{"font-features":[wh]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Mh,wh]}],"line-clamp":[{"line-clamp":[ph,`none`,Mh,Eh]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,Mh,wh]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Mh,wh]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...ee(),`wavy`]}],"text-decoration-thickness":[{decoration:[ph,`from-font`,`auto`,Mh,Th]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[ph,`auto`,Mh,wh]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Mh,wh]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Mh,wh]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:R()}],"bg-size":[{bg:z()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},mh,Mh,wh],radial:[``,Mh,wh],conic:[mh,Mh,wh]},Lh,Ah]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:B()}],"gradient-via-pos":[{via:B()}],"gradient-to-pos":[{to:B()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"border-w":[{border:H()}],"border-w-x":[{"border-x":H()}],"border-w-y":[{"border-y":H()}],"border-w-s":[{"border-s":H()}],"border-w-e":[{"border-e":H()}],"border-w-bs":[{"border-bs":H()}],"border-w-be":[{"border-be":H()}],"border-w-t":[{"border-t":H()}],"border-w-r":[{"border-r":H()}],"border-w-b":[{"border-b":H()}],"border-w-l":[{"border-l":H()}],"divide-x":[{"divide-x":H()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":H()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...ee(),`hidden`,`none`]}],"divide-style":[{divide:[...ee(),`hidden`,`none`]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...ee(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[ph,Mh,wh]}],"outline-w":[{outline:[``,ph,Nh,Th]}],"outline-color":[{outline:I()}],shadow:[{shadow:[``,`none`,u,Rh,jh]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":[`none`,d,Rh,jh]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:H()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[ph,Th]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":H()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":[`none`,f,Rh,jh]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[ph,Mh,wh]}],"mix-blend":[{"mix-blend":[...U(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":U()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[ph]}],"mask-image-linear-from-pos":[{"mask-linear-from":te()}],"mask-image-linear-to-pos":[{"mask-linear-to":te()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":te()}],"mask-image-t-to-pos":[{"mask-t-to":te()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":te()}],"mask-image-r-to-pos":[{"mask-r-to":te()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":te()}],"mask-image-b-to-pos":[{"mask-b-to":te()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":te()}],"mask-image-l-to-pos":[{"mask-l-to":te()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":te()}],"mask-image-x-to-pos":[{"mask-x-to":te()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":te()}],"mask-image-y-to-pos":[{"mask-y-to":te()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[Mh,wh]}],"mask-image-radial-from-pos":[{"mask-radial-from":te()}],"mask-image-radial-to-pos":[{"mask-radial-to":te()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[ph]}],"mask-image-conic-from-pos":[{"mask-conic-from":te()}],"mask-image-conic-to-pos":[{"mask-conic-to":te()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:R()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Mh,wh]}],filter:[{filter:[``,`none`,Mh,wh]}],blur:[{blur:ne()}],brightness:[{brightness:[ph,Mh,wh]}],contrast:[{contrast:[ph,Mh,wh]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Rh,jh]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:[``,ph,Mh,wh]}],"hue-rotate":[{"hue-rotate":[ph,Mh,wh]}],invert:[{invert:[``,ph,Mh,wh]}],saturate:[{saturate:[ph,Mh,wh]}],sepia:[{sepia:[``,ph,Mh,wh]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Mh,wh]}],"backdrop-blur":[{"backdrop-blur":ne()}],"backdrop-brightness":[{"backdrop-brightness":[ph,Mh,wh]}],"backdrop-contrast":[{"backdrop-contrast":[ph,Mh,wh]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,ph,Mh,wh]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ph,Mh,wh]}],"backdrop-invert":[{"backdrop-invert":[``,ph,Mh,wh]}],"backdrop-opacity":[{"backdrop-opacity":[ph,Mh,wh]}],"backdrop-saturate":[{"backdrop-saturate":[ph,Mh,wh]}],"backdrop-sepia":[{"backdrop-sepia":[``,ph,Mh,wh]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Mh,wh]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[ph,`initial`,Mh,wh]}],ease:[{ease:[`linear`,`initial`,_,Mh,wh]}],delay:[{delay:[ph,Mh,wh]}],animate:[{animate:[`none`,v,Mh,wh]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,Mh,wh]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:ie()}],"scale-x":[{"scale-x":ie()}],"scale-y":[{"scale-y":ie()}],"scale-z":[{"scale-z":ie()}],"scale-3d":[`scale-3d`],skew:[{skew:ae()}],"skew-x":[{"skew-x":ae()}],"skew-y":[{"skew-y":ae()}],transform:[{transform:[Mh,wh,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:oe()}],"translate-x":[{"translate-x":oe()}],"translate-y":[{"translate-y":oe()}],"translate-z":[{"translate-z":oe()}],"translate-none":[`translate-none`],accent:[{accent:I()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Mh,wh]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Mh,wh]}],fill:[{fill:[`none`,...I()]}],"stroke-w":[{stroke:[ph,Nh,Th,Eh]}],stroke:[{stroke:[`none`,...I()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}}),X=(...e)=>Xh(Jn(e)),Zh=Zn(`inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-xl border text-sm font-medium transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`border-primary/60 bg-primary text-primary-foreground shadow-[0_8px_24px_rgba(108,63,217,0.28)] hover:bg-primary/92 hover:border-primary/70`,outline:`border-border bg-card/80 text-foreground hover:bg-accent hover:text-accent-foreground`,secondary:`border-border bg-secondary text-secondary-foreground hover:bg-secondary/85`,ghost:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground`,destructive:`border-red-500/30 bg-destructive/15 text-red-200 hover:bg-destructive/25`,success:`border-emerald-300/80 bg-emerald-400 text-[#07130d] shadow-[0_10px_30px_rgba(16,185,129,0.28)] hover:border-emerald-200 hover:bg-emerald-300`,warning:`border-amber-500/30 bg-amber-500/12 text-amber-200 hover:bg-amber-500/20`,link:`border-transparent px-0 text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-4`,xs:`h-7 px-2.5 text-xs`,sm:`h-8 px-3 text-sm`,lg:`h-11 px-5 text-sm`,icon:`size-10`,"icon-xs":`size-7 [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-11`}},defaultVariants:{variant:`default`,size:`default`}}),Z=({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i})=>(0,Y.jsx)(r?nr:`button`,{"data-slot":`button`,"data-variant":t,"data-size":n,className:X(Zh({variant:t,size:n,className:e})),...i}),Qh=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),$h=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),eg=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),tg=e=>{let t=eg(e);return t.charAt(0).toUpperCase()+t.slice(1)},ng={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},rg=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},ig=(0,p.createContext)({}),ag=()=>(0,p.useContext)(ig),og=(0,p.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:m=``}=ag()??{},h=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,p.createElement)(`svg`,{ref:c,...ng,width:t??l??ng.width,height:t??l??ng.height,stroke:e??f,strokeWidth:h,className:Qh(`lucide`,m,i),...!a&&!rg(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,p.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),sg=(e,t)=>{let n=(0,p.forwardRef)(({className:n,...r},i)=>(0,p.createElement)(og,{ref:i,iconNode:t,className:Qh(`lucide-${$h(tg(e))}`,`lucide-${e}`,n),...r}));return n.displayName=tg(e),n},cg=sg(`app-window`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),lg=sg(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),ug=sg(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),dg=sg(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),fg=sg(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),pg=sg(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),mg=sg(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),hg=sg(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),gg=sg(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),_g=sg(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),vg=sg(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),yg=sg(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),bg=sg(`crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),ree=sg(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),iee=sg(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),aee=sg(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),oee=sg(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),see=sg(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),cee=sg(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),lee=sg(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),xg=sg(`git-pull-request-arrow`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M5 9v12`,key:`ih889a`}],[`circle`,{cx:`19`,cy:`18`,r:`3`,key:`1qljk2`}],[`path`,{d:`m15 9-3-3 3-3`,key:`1lwv8l`}],[`path`,{d:`M12 6h5a2 2 0 0 1 2 2v7`,key:`1yj91y`}]]),uee=sg(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),dee=sg(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),fee=sg(`link`,[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]),pee=sg(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),mee=sg(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),hee=sg(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),gee=sg(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),_ee=sg(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Sg=sg(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),Cg=sg(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),wg=sg(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),Tg=sg(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Eg=sg(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Dg=sg(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Og=sg(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),kg=sg(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Ag=sg(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),jg=sg(`square-kanban`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M8 7v7`,key:`1x2jlm`}],[`path`,{d:`M12 7v4`,key:`xawao1`}],[`path`,{d:`M16 7v9`,key:`1hp2iy`}]]),Mg=sg(`square-mouse-pointer`,[[`path`,{d:`M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z`,key:`xwnzip`}],[`path`,{d:`M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6`,key:`14rsvq`}]]),Ng=sg(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Pg=sg(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Fg=sg(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Ig=sg(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Lg=1,Rg=.9,vee=.8,zg=.17,Bg=.1,Vg=.999,Hg=.9999,Ug=.99,Wg=/[\\\/_+.#"@\[\(\{&]/,Gg=/[\\\/_+.#"@\[\(\{&]/g,Kg=/[\s-]/,qg=/[\s-]/g;function Jg(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?Lg:Ug;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=Jg(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=Lg:Wg.test(e.charAt(l-1))?(d*=vee,p=e.slice(i,l-1).match(Gg),p&&i>0&&(d*=Vg**+p.length)):Kg.test(e.charAt(l-1))?(d*=Rg,m=e.slice(i,l-1).match(qg),m&&i>0&&(d*=Vg**+m.length)):(d*=zg,i>0&&(d*=Vg**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=Hg)),(d<Bg&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=Jg(e,t,n,r,l+1,a+2,o),f*Bg>d&&(d=f*Bg)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function Yg(e){return e.toLowerCase().replace(qg,` `)}function Xg(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,Jg(e,t,Yg(e),Yg(t),0,0,{})}var Zg=`[cmdk-group=""]`,Qg=`[cmdk-group-items=""]`,$g=`[cmdk-group-heading=""]`,e_=`[cmdk-item=""]`,t_=`${e_}:not([aria-disabled="true"])`,n_=`cmdk-item-select`,r_=`data-value`,yee=(e,t,n)=>Xg(e,t,n),i_=p.createContext(void 0),a_=()=>p.useContext(i_),o_=p.createContext(void 0),s_=()=>p.useContext(o_),c_=p.createContext(void 0),l_=p.forwardRef((e,t)=>{let n=C_(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=C_(()=>new Set),i=C_(()=>new Map),a=C_(()=>new Map),o=C_(()=>new Set),s=x_(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:m,loop:h,disablePointerSelection:g=!1,vimBindings:_=!0,...v}=e,y=Mr(),b=Mr(),x=Mr(),S=p.useRef(null),C=E_();S_(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),S_(()=>{C(6,A)},[]);let w=p.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)k(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=j()?.id,w.emit()}),r||C(5,A),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=p.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{k(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=j();C(4,()=>{k(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??yee;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;M().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(Qg);t?t.appendChild(e.parentElement===t?e:e.closest(`${Qg} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${Qg} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${Zg}[${r_}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(r_);w.setState(`value`,e||void 0)}function k(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function A(){var e;let t=j();t&&(t.parentElement?.firstChild===t&&((e=t.closest(Zg)?.querySelector($g))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${e_}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(t_)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(r_))}function P(e){var t;let n=j(),r=M(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(r_))}function F(e){let t=j()?.closest(Zg),n;for(;t&&!n;)t=e>0?y_(t,Zg):b_(t,Zg),n=t?.querySelector(t_);n?w.setState(`value`,n.getAttribute(r_)):P(e)}let I=()=>N(M().length-1),L=e=>{e.preventDefault(),e.metaKey?I():e.altKey?F(1):P(1)},R=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?F(-1):P(-1)};return p.createElement(lr.div,{ref:t,tabIndex:-1,...v,"cmdk-root":``,onKeyDown:e=>{var t;(t=v.onKeyDown)==null||t.call(v,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:_&&e.ctrlKey&&L(e);break;case`ArrowDown`:L(e);break;case`p`:case`k`:_&&e.ctrlKey&&R(e);break;case`ArrowUp`:R(e);break;case`Home`:e.preventDefault(),N(0);break;case`End`:e.preventDefault(),I();break;case`Enter`:{e.preventDefault();let t=j();if(t){let e=new Event(n_);t.dispatchEvent(e)}}}}},p.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:k_},c),O_(e,e=>p.createElement(o_.Provider,{value:w},p.createElement(i_.Provider,{value:T},e))))}),u_=p.forwardRef((e,t)=>{let n=Mr(),r=p.useRef(null),i=p.useContext(c_),a=a_(),o=x_(e),s=o.current?.forceMount??i?.forceMount;S_(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=T_(n,r,[e.value,e.children,r],e.keywords),l=s_(),u=w_(e=>e.value&&e.value===c.current),d=w_(e=>s||a.filter()===!1?!0:e.search?e.filtered.items.get(n)>0:!0);p.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(n_,f),()=>t.removeEventListener(n_,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;m(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function m(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:h,value:g,onSelect:_,forceMount:v,keywords:y,...b}=e;return p.createElement(lr.div,{ref:$n(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!h,"aria-selected":!!u,"data-disabled":!!h,"data-selected":!!u,onPointerMove:h||a.getDisablePointerSelection()?void 0:m,onClick:h?void 0:f},e.children)}),d_=p.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Mr(),s=p.useRef(null),c=p.useRef(null),l=Mr(),u=a_(),d=w_(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);S_(()=>u.group(o),[]),T_(o,s,[e.value,e.heading,c]);let f=p.useMemo(()=>({id:o,forceMount:i}),[i]);return p.createElement(lr.div,{ref:$n(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:d?void 0:!0},n&&p.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),O_(e,e=>p.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},p.createElement(c_.Provider,{value:f},e))))}),f_=p.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=p.useRef(null),a=w_(e=>!e.search);return!n&&!a?null:p.createElement(lr.div,{ref:$n(i,t),...r,"cmdk-separator":``,role:`separator`})}),p_=p.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=s_(),o=w_(e=>e.search),s=w_(e=>e.selectedItemId),c=a_();return p.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),p.createElement(lr.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),m_=p.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=p.useRef(null),o=p.useRef(null),s=w_(e=>e.selectedItemId),c=a_();return p.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),p.createElement(lr.div,{ref:$n(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},O_(e,e=>p.createElement(`div`,{ref:$n(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),h_=p.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return p.createElement(jo,{open:n,onOpenChange:r},p.createElement(Mo,{container:o},p.createElement(No,{"cmdk-overlay":``,className:i}),p.createElement(Po,{"aria-label":e.label,"cmdk-dialog":``,className:a},p.createElement(l_,{ref:t,...s}))))}),g_=p.forwardRef((e,t)=>w_(e=>e.filtered.count===0)?p.createElement(lr.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),__=p.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return p.createElement(lr.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},O_(e,e=>p.createElement(`div`,{"aria-hidden":!0},e)))}),v_=Object.assign(l_,{List:m_,Item:u_,Input:p_,Group:d_,Separator:f_,Dialog:h_,Empty:g_,Loading:__});function y_(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function b_(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function x_(e){let t=p.useRef(e);return S_(()=>{t.current=e}),t}var S_=typeof window>`u`?p.useEffect:p.useLayoutEffect;function C_(e){let t=p.useRef();return t.current===void 0&&(t.current=e()),t}function w_(e){let t=s_(),n=()=>e(t.snapshot());return p.useSyncExternalStore(t.subscribe,n,n)}function T_(e,t,n,r=[]){let i=p.useRef(),a=a_();return S_(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(r_,s),i.current=s}),i}var E_=()=>{let[e,t]=p.useState(),n=C_(()=>new Map);return S_(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function D_(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function O_({asChild:e,children:t},n){return e&&p.isValidElement(t)?p.cloneElement(D_(t),{ref:t.ref},n(t.props.children)):n(t)}var k_={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},A_=e=>(0,Y.jsx)(jo,{"data-slot":`dialog`,...e}),j_=e=>(0,Y.jsx)(Mo,{"data-slot":`dialog-portal`,...e}),M_=e=>(0,Y.jsx)(Lo,{"data-slot":`dialog-close`,...e}),N_=({className:e,...t})=>(0,Y.jsx)(No,{"data-slot":`dialog-overlay`,className:X(`fixed inset-0 isolate z-50 bg-black/70 duration-100 supports-backdrop-filter:backdrop-blur-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,e),...t}),P_=({className:e,children:t,showCloseButton:n=!0,overlayClassName:r,...i})=>(0,Y.jsxs)(j_,{children:[(0,Y.jsx)(N_,{className:r}),(0,Y.jsxs)(Po,{"data-slot":`dialog-content`,className:X(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 rounded-2xl border border-border bg-card p-6 text-sm text-card-foreground shadow-2xl shadow-black/30 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...i,children:[t,n&&(0,Y.jsx)(Lo,{"data-slot":`dialog-close`,asChild:!0,children:(0,Y.jsxs)(Z,{variant:`ghost`,className:`absolute top-4 right-4`,size:`icon-sm`,children:[(0,Y.jsx)(Ig,{}),(0,Y.jsx)(`span`,{className:`sr-only`,children:`Close`})]})})]})]}),F_=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`dialog-header`,className:X(`flex flex-col gap-1.5`,e),...t}),I_=({className:e,showCloseButton:t=!1,children:n,...r})=>(0,Y.jsxs)(`div`,{"data-slot":`dialog-footer`,className:X(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...r,children:[n,t&&(0,Y.jsx)(Lo,{asChild:!0,children:(0,Y.jsx)(Z,{variant:`outline`,children:`Close`})})]}),L_=({className:e,...t})=>(0,Y.jsx)(Fo,{"data-slot":`dialog-title`,className:X(`font-heading text-base leading-none font-medium`,e),...t}),R_=({className:e,...t})=>(0,Y.jsx)(Io,{"data-slot":`dialog-description`,className:X(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,e),...t}),z_=(0,p.forwardRef)(({className:e,type:t,...n},r)=>(0,Y.jsx)(`input`,{ref:r,type:t,"data-slot":`input`,className:X(`h-10 w-full min-w-0 rounded-xl border border-input bg-input/40 px-3 py-2 text-sm text-foreground transition-[border-color,box-shadow,background-color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`,e),...n})),B_=(0,p.forwardRef)(({className:e,...t},n)=>(0,Y.jsx)(`textarea`,{ref:n,"data-slot":`textarea`,className:X(`flex min-h-24 w-full resize-none rounded-xl border border-input bg-input/40 px-3 py-2.5 text-sm text-foreground transition-[border-color,box-shadow,background-color] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`,e),...t}));B_.displayName=`Textarea`;function V_({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`input-group`,role:`group`,className:X(`group/input-group relative flex h-9 w-full min-w-0 items-center rounded-4xl border border-transparent bg-input/50 transition-[color,box-shadow,background-color] outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded-3xl has-data-[align=block-start]:rounded-3xl has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/30 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded-2xl has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5`,e),...t})}var H_=Zn(`flex h-auto cursor-text items-center justify-center gap-2 py-2 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-3xl **:data-[slot=kbd]:bg-muted-foreground/10 **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-4`,{variants:{align:{"inline-start":`order-first pl-3 has-[>button]:-ml-1 has-[>kbd]:-ml-1`,"inline-end":`order-last pr-3 has-[>button]:-mr-1 has-[>kbd]:-mr-1`,"block-start":`order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-3.5 [.border-b]:pb-3.5`,"block-end":`order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-3.5 [.border-t]:pt-3.5`}},defaultVariants:{align:`inline-start`}});function U_({className:e,align:t=`inline-start`,...n}){return(0,Y.jsx)(`div`,{role:`group`,"data-slot":`input-group-addon`,"data-align":t,className:X(H_({align:t}),e),onClick:e=>{e.target.closest(`button`)||e.currentTarget.parentElement?.querySelector(`input`)?.focus()},...n})}var W_=Zn(`flex items-center gap-2 rounded-4xl text-sm shadow-none`,{variants:{size:{xs:`h-6 gap-1 rounded-xl px-1.5 [&>svg:not([class*='size-'])]:size-3.5`,sm:``,"icon-xs":`size-6 rounded-xl p-0 has-[>svg]:p-0`,"icon-sm":`size-8 p-0 has-[>svg]:p-0`}},defaultVariants:{size:`xs`}});function G_({className:e,type:t=`button`,variant:n=`ghost`,size:r=`xs`,...i}){return(0,Y.jsx)(Z,{type:t,"data-size":r,variant:n,className:X(W_({size:r}),e),...i})}function K_({className:e,...t}){return(0,Y.jsx)(z_,{"data-slot":`input-group-control`,className:X(`flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent`,e),...t})}function q_({className:e,...t}){return(0,Y.jsx)(v_,{"data-slot":`command`,className:X(`flex size-full flex-col overflow-hidden rounded-4xl bg-popover p-1 text-popover-foreground`,e),...t})}function J_({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`command-input-wrapper`,className:`p-1 pb-0`,children:(0,Y.jsxs)(V_,{className:`h-9 bg-input/50`,children:[(0,Y.jsx)(v_.Input,{"data-slot":`command-input`,className:X(`w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,e),...t}),(0,Y.jsx)(U_,{children:(0,Y.jsx)(kg,{className:`size-4 shrink-0 opacity-50`})})]})})}function Y_({className:e,...t}){return(0,Y.jsx)(v_.List,{"data-slot":`command-list`,className:X(`no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none`,e),onWheelCapture:e=>{e.stopPropagation(),t.onWheelCapture?.(e)},...t})}function X_({className:e,...t}){return(0,Y.jsx)(v_.Empty,{"data-slot":`command-empty`,className:X(`py-6 text-center text-sm`,e),...t})}function Z_({className:e,...t}){return(0,Y.jsx)(v_.Group,{"data-slot":`command-group`,className:X(`overflow-hidden p-1.5 text-foreground **:[[cmdk-group-heading]]:px-3 **:[[cmdk-group-heading]]:py-2 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground`,e),...t})}function Q_({className:e,children:t,...n}){return(0,Y.jsxs)(v_.Item,{"data-slot":`command-item`,className:X(`group/command-item relative flex cursor-pointer items-center gap-2 rounded-2xl px-3 py-2 text-sm font-medium outline-hidden select-none in-data-[slot=dialog-content]:rounded-3xl data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground`,e),...n,children:[t,(0,Y.jsx)(gg,{className:`ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100`})]})}function $_({className:e,...t}){return(0,Y.jsx)(mf,{"data-slot":`label`,className:X(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}var ev=e=>(0,Y.jsx)(Vf,{"data-slot":`popover`,...e}),tv=e=>(0,Y.jsx)(Hf,{"data-slot":`popover-trigger`,...e}),nv=({className:e,align:t=`center`,sideOffset:n=4,...r})=>(0,Y.jsx)(Uf,{children:(0,Y.jsx)(Wf,{"data-slot":`popover-content`,align:t,sideOffset:n,className:X(`z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-2 rounded-xl border border-border bg-popover p-2 text-sm text-popover-foreground shadow-2xl shadow-black/30 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r})}),rv=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`popover-header`,className:X(`flex flex-col gap-1 text-sm`,e),...t}),iv=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`popover-title`,className:X(`font-heading text-base font-medium`,e),...t}),av=/[\s\-_/.:]+/,ov=/\d(?:[._:-]*\d)+/g,sv=e=>e.toLowerCase().trim().split(av).filter(Boolean),cv=(e,t)=>t===e?300:t.startsWith(e)?200:e.length>=3&&t.includes(e)?100:0,lv=e=>(e.toLowerCase().match(ov)??[]).map(e=>e.replace(/\D/g,``)).filter(e=>e.length>=2),uv=e=>/^\d+$/.test(e),dv=(e,t)=>{let n=0;for(let r of t){if(r===e){n=Math.max(n,250);continue}r.startsWith(e)&&(n=Math.max(n,150))}return n},fv=(e,t)=>{let n=sv(e);if(n.length===0)return 1;let r=t.flatMap(e=>sv(e??``)),i=[...new Set(t.flatMap(e=>lv(e??``)))];if(r.length===0&&i.length===0)return 0;let a=0;for(let e of n){let t=0;for(let n of r){let r=cv(e,n);r>t&&(t=r)}if(t===0&&uv(e)&&(t=dv(e,i)),t===0)return 0;a+=t}return a},pv=({label:e,triggerLabel:t,triggerAriaLabel:n,selectId:r,groups:i,disabled:a=!1,className:o,labelClassName:s,contentClassName:c,triggerClassName:l,isSelected:u,onSelect:d,closeOnSelect:f=!0})=>{let[m,h]=(0,p.useState)(!1),[g,_]=(0,p.useState)(!1),v=(0,p.useRef)(null),y=i.reduce((e,t)=>e+t.options.length,0)>4,b=(0,p.useCallback)(()=>{let e=v.current?.getBoundingClientRect();if(!e)return!1;let t=window.innerHeight-e.bottom-16,n=e.top-16;return t<320&&n>t},[]);return(0,p.useEffect)(()=>{if(!m)return;let e=()=>{_(b())};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[b,m]),(0,Y.jsxs)(`div`,{className:X(`flex flex-col gap-1.5`,o),children:[e&&(0,Y.jsx)($_,{className:X(`text-xs font-medium text-muted-foreground`,s),htmlFor:r,children:e}),(0,Y.jsxs)(ev,{open:m,onOpenChange:e=>{e&&_(b()),h(e)},children:[(0,Y.jsx)(`div`,{className:`relative`,ref:v,children:(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{id:r,type:`button`,variant:`outline`,"aria-label":n??t,disabled:a,className:X(`w-full justify-between bg-input/40 px-3 text-left font-normal`,l),children:[(0,Y.jsx)(`span`,{className:`truncate`,children:t}),(0,Y.jsx)(_g,{className:`h-4 w-4 text-muted-foreground`})]})})}),(0,Y.jsx)(nv,{side:g?`top`:`bottom`,align:`start`,className:X(`w-[var(--radix-popover-trigger-width)] p-0`,c),children:(0,Y.jsxs)(q_,{filter:(e,t,n)=>fv(t,[e,...n??[]]),children:[y&&(0,Y.jsx)(J_,{placeholder:`Filter...`}),(0,Y.jsxs)(Y_,{className:`max-h-72`,children:[(0,Y.jsx)(X_,{children:`No matches`}),i.map((e,t)=>e.options.length===0?null:(0,Y.jsx)(Z_,{heading:e.label||void 0,className:X(e.label?`border-t border-border/60 first:border-t-0 first:pt-0`:``),children:e.options.map(t=>(0,Y.jsx)(Q_,{value:`${t.label} ${t.value}`,keywords:[t.label,t.value,e.label],disabled:t.disabled,"data-checked":u(t.value),onSelect:()=>{t.disabled||(d(t.value),f&&h(!1))},children:(0,Y.jsx)(`span`,{className:`truncate`,children:t.label})},t.value))},e.label||`group-${t}`))]})]})})]})]})},mv=({label:e,triggerLabel:t,triggerAriaLabel:n,selectId:r,groups:i,selectedValue:a,onChange:o,disabled:s=!1,labelClassName:c,contentClassName:l,triggerClassName:u})=>(0,Y.jsx)(pv,{label:e,triggerLabel:t,triggerAriaLabel:n,selectId:r,groups:i,disabled:s,labelClassName:c,contentClassName:l,triggerClassName:u,isSelected:e=>a===e,onSelect:o}),hv=({model:e,showModelSelector:t,availableModels:n,onModelChange:r,selectId:i,label:a=`Model`,triggerAriaLabel:o,disabled:s=!1,className:c,triggerClassName:l})=>{let u=(0,p.useMemo)(()=>{let e=new Map;for(let t of n){let n=t.provider;e.has(n)||e.set(n,[]),e.get(n)?.push({value:t.id,label:t.label})}return Array.from(e.entries()).map(([e,t])=>({provider:e,models:t}))},[n]),d=e||`Use default model`;return t?(0,Y.jsx)(`div`,{className:X(c),children:(0,Y.jsx)(mv,{label:a,triggerLabel:d,triggerAriaLabel:o,selectId:i,selectedValue:e,onChange:r,disabled:s,contentClassName:`min-w-[22rem]`,triggerClassName:l,groups:[{label:``,options:[{value:``,label:`Use default model`}]},...u.map(e=>({label:e.provider,options:e.models}))]})}):null},gv=({variant:e,selectedModel:t,showVariantSelector:n,onVariantChange:r,selectId:i,label:a=`Variant`,triggerAriaLabel:o,disabled:s=!1,className:c,triggerClassName:l})=>{if(!n||!t)return null;let u=e||`Use model default`;return(0,Y.jsx)(`div`,{className:X(c),children:(0,Y.jsx)(mv,{label:a,triggerLabel:u,triggerAriaLabel:o,selectId:i,selectedValue:e,onChange:r,disabled:s,contentClassName:`min-w-[22rem]`,triggerClassName:l,groups:[{label:``,options:[{value:``,label:`Use model default`}]},{label:`Available levels`,options:t.variants.map(e=>({value:e,label:e}))}]})})},_v=({helperModel:e,helperVariant:t,availableModels:n,isLoadingModels:r,onHelperModelChange:i,onHelperVariantChange:a,modelSelectId:o,variantSelectId:s,className:c,compact:l=!1,showHeader:u=!0})=>{let d=n.find(t=>t.id===e)??null,f=n.length>0,p=d!==null&&d.variants.length>0;return(0,Y.jsxs)(`div`,{className:X(`rounded-2xl border border-border/70 bg-background/25 p-4`,c),children:[u&&(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h4`,{className:`text-sm font-medium text-foreground`,children:`Helper model`}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:`Used for auto-config and other lightweight project tasks. Leave empty to use the selected tool's default model.`})]}),r?(0,Y.jsx)(`p`,{className:X(`text-sm text-muted-foreground`,u?`mt-4`:``),children:`Loading OpenCode models...`}):f?(0,Y.jsxs)(`div`,{className:X(u?`mt-4`:``,`gap-3`,l?`flex flex-col`:`flex flex-wrap`),children:[(0,Y.jsx)(hv,{model:e,showModelSelector:f,availableModels:n,onModelChange:i,selectId:o,className:l?`min-w-0`:`min-w-[10rem] flex-[1.35_1_10rem]`}),p&&(0,Y.jsx)(gv,{variant:t,selectedModel:d,showVariantSelector:p,onVariantChange:a,selectId:s,className:l?`min-w-0`:`min-w-[7rem] flex-[0.7_1_7rem]`})]}):(0,Y.jsx)(`p`,{className:X(`text-sm text-muted-foreground`,u?`mt-4`:``),children:`OpenCode model discovery is unavailable right now. Leave this empty to use the selected tool's default model.`})]})},vv=({delayDuration:e=0,...t})=>(0,Y.jsx)(Sm,{"data-slot":`tooltip-provider`,delayDuration:e,...t}),yv=e=>(0,Y.jsx)(Cm,{"data-slot":`tooltip`,...e}),bv=e=>(0,Y.jsx)(wm,{"data-slot":`tooltip-trigger`,...e}),xv=({className:e,sideOffset:t=8,children:n,...r})=>(0,Y.jsx)(Tm,{children:(0,Y.jsxs)(Em,{"data-slot":`tooltip-content`,sideOffset:t,className:X(`pointer-events-none z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) select-none items-center gap-1.5 rounded-md border border-sky-500/20 bg-popover px-2.5 py-1.5 text-xs font-medium text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r,children:[n,(0,Y.jsx)(Dm,{className:`fill-popover`})]})}),Sv=({content:e,children:t,align:n,side:r,sideOffset:i,disabled:a=!1,contentClassName:o,delayDuration:s=0})=>(0,Y.jsx)(vv,{delayDuration:s,disableHoverableContent:!0,children:(0,Y.jsxs)(yv,{children:[(0,Y.jsx)(bv,{asChild:!0,children:t}),a?null:(0,Y.jsx)(xv,{className:o,align:n,side:r,sideOffset:i??8,children:e})]})}),Cv=({value:e,items:t,onChange:n,disabled:r=!1,className:i})=>(0,Y.jsx)(`div`,{className:X(`inline-flex items-center gap-1 rounded-xl border border-border/70 bg-background/70 p-1 shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]`,i),children:t.map(t=>{let i=t.value===e,a=(0,Y.jsx)(Z,{type:`button`,variant:i?t.activeVariant??`default`:`ghost`,size:`sm`,disabled:r,className:X(`h-7 rounded-lg px-2.5 text-xs`,i?t.activeClassName:t.inactiveClassName??`text-muted-foreground hover:text-foreground`),onClick:()=>n(t.value),children:t.label},t.value);return i||!t.inactiveTooltip||r?a:(0,Y.jsx)(Sv,{content:t.inactiveTooltip,children:a},t.value)})}),wv=({activeTool:e,onChange:t})=>(0,Y.jsx)(Cv,{value:e,items:[{value:`opencode`,label:`OpenCode`},{value:`claude`,label:`Claude`}],onChange:t}),Tv=({activeTool:e,availableHelperModels:t,helperModel:n,helperVariant:r,isHelperModelsLoaded:i,isToolLoaded:a,onCreateProject:o,onHelperModelChange:s,onHelperVariantChange:c,onToolChange:l})=>{let{t:u}=Ue(`common`);return(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 py-10`,children:(0,Y.jsxs)(`div`,{className:`w-full max-w-3xl overflow-hidden rounded-[2rem] border border-border bg-[radial-gradient(circle_at_top_left,_rgba(52,211,153,0.18),_transparent_42%),linear-gradient(160deg,_rgba(20,24,34,1),_rgba(10,12,18,1))] p-8 shadow-2xl shadow-black/20 sm:p-10`,children:[(0,Y.jsx)(`h2`,{className:`max-w-xl text-3xl font-semibold tracking-tight text-foreground sm:text-4xl`,children:u(`emptyState.title`)}),(0,Y.jsxs)(`div`,{className:`mt-6 flex flex-col gap-3`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(`emptyState.description`)}),a?(0,Y.jsx)(`div`,{className:`w-fit`,children:(0,Y.jsx)(wv,{activeTool:e,onChange:l})}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(`emptyState.loadingToolPreference`)}),(0,Y.jsx)(_v,{helperModel:n,helperVariant:r,availableModels:t,isLoadingModels:!i,onHelperModelChange:s,onHelperVariantChange:c,modelSelectId:`welcome-helper-model`,variantSelectId:`welcome-helper-variant`,compact:!0})]}),(0,Y.jsx)(`div`,{className:`mt-8 flex flex-col gap-3 sm:flex-row sm:items-center`,children:(0,Y.jsx)(Z,{type:`button`,onClick:o,variant:`success`,size:`lg`,children:u(`emptyState.createFirstProject`)})})]})})},Ev=({className:e})=>(0,Y.jsx)(_g,{"aria-hidden":`true`,className:e}),Dv=({className:e})=>(0,Y.jsx)(Ag,{"aria-hidden":`true`,className:e}),Ov=({activeProjectId:e,projects:t,onEditProject:n,onProjectChange:r})=>{let[i,a]=(0,p.useState)(!1),[o,s]=(0,p.useState)(!1),c=(0,p.useRef)(null),l=t.find(t=>t.id===e)??null,u=t.length>4,d=(0,p.useCallback)(()=>{let e=c.current?.getBoundingClientRect();if(!e)return!1;let t=window.innerHeight-e.bottom-16,n=e.top-16;return t<320&&n>t},[]);return(0,p.useEffect)(()=>{if(!i)return;let e=()=>{s(d())};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[d,i]),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-stretch`,children:[(0,Y.jsxs)(ev,{open:i,onOpenChange:e=>{e&&s(d()),a(e)},children:[(0,Y.jsx)(`div`,{className:`relative min-w-0 flex-1`,ref:c,children:(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(`button`,{type:`button`,"aria-label":`Active project`,disabled:t.length===0,className:`group flex h-10 w-full min-w-0 cursor-pointer items-center justify-between gap-2 rounded-l-xl rounded-r-none border border-border/70 bg-card/70 px-3 text-left transition-colors hover:border-border hover:bg-accent/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 disabled:cursor-not-allowed disabled:opacity-60`,children:[(0,Y.jsx)(`div`,{className:`flex min-w-0 items-center gap-2`,children:(0,Y.jsx)(`span`,{className:`truncate text-sm font-medium text-foreground`,children:l?.name??`No projects yet`})}),(0,Y.jsx)(`span`,{className:`flex h-6 w-6 items-center justify-center text-muted-foreground transition-colors group-hover:text-foreground`,children:(0,Y.jsx)(Ev,{className:`h-4 w-4`})})]})})}),(0,Y.jsx)(nv,{side:o?`top`:`bottom`,align:`start`,className:`w-[var(--radix-popover-trigger-width)] min-w-[22rem] p-0`,children:(0,Y.jsxs)(q_,{filter:(e,t,n)=>fv(t,[e,...n??[]]),children:[u&&(0,Y.jsx)(J_,{placeholder:`Filter projects...`}),(0,Y.jsxs)(Y_,{className:`max-h-72`,children:[(0,Y.jsx)(X_,{children:`No matches`}),(0,Y.jsx)(Z_,{children:t.map(t=>(0,Y.jsx)(Q_,{value:`${t.name} ${t.id}`,keywords:[t.name,t.repo_path,t.id],"data-checked":t.id===e,onSelect:()=>{r(t.id),a(!1)},children:(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate font-medium text-foreground`,children:t.name}),(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:t.repo_path})]})},t.id))})]})]})})]}),(0,Y.jsx)(Z,{type:`button`,"aria-label":`Edit project settings`,onClick:n,disabled:!e,variant:`outline`,size:`icon-sm`,className:`h-10 rounded-l-none border-l-0 border-border/70 bg-card/70`,children:(0,Y.jsx)(Dv,{className:`h-4 w-4`})})]})};function kv({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`skeleton`,className:X(`animate-pulse rounded-2xl bg-muted`,e),...t})}var Av=({className:e=``})=>(0,Y.jsx)(kv,{"aria-hidden":`true`,className:X(`inline-flex rounded-md bg-[linear-gradient(90deg,_rgba(30,35,49,0.9),_rgba(63,72,98,0.95),_rgba(30,35,49,0.9))]`,e)}),jv=({stats:e=null,isLoading:t=!1,showFiles:n=!1,className:r=``})=>{if(!e&&!t)return null;if(t)return(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-stats-skeleton`,className:`flex items-center gap-2 text-[11px] font-medium ${r}`.trim(),children:(0,Y.jsx)(Av,{className:`h-3.5 shrink-0 rounded-full ${n?`w-28`:`w-20`}`})});let i=e.files_changed===1?`1 file`:`${e.files_changed} files`;return(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium ${r}`.trim(),children:[n&&(0,Y.jsx)(`span`,{className:`text-muted-foreground text-nowrap`,children:i}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,e.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,e.deletions]})]})},Mv=({className:e})=>(0,Y.jsx)(see,{"aria-hidden":`true`,className:e}),Nv=({className:e})=>(0,Y.jsx)(xg,{"aria-hidden":`true`,className:e}),Pv=({className:e})=>(0,Y.jsx)(cg,{"aria-hidden":`true`,className:e}),Fv=({className:e})=>(0,Y.jsx)(pee,{"aria-hidden":`true`,className:e}),Iv=({className:e})=>(0,Y.jsx)(Eg,{"aria-hidden":`true`,className:e}),Lv=({className:e})=>(0,Y.jsx)(xg,{"aria-hidden":`true`,className:e}),Rv=({className:e})=>(0,Y.jsx)(Ng,{"aria-hidden":`true`,className:e}),zv=({className:e})=>(0,Y.jsx)(Pg,{"aria-hidden":`true`,className:e});function Bv(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var Vv=e=>{switch(e){case`success`:return Wv;case`info`:return Kv;case`warning`:return Gv;case`error`:return qv;default:return null}},Hv=Array(12).fill(0),Uv=({visible:e,className:t})=>p.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},p.createElement(`div`,{className:`sonner-spinner`},Hv.map((e,t)=>p.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),Wv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),Gv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),Kv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),qv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),Jv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},p.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),p.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),Yv=()=>{let[e,t]=p.useState(document.hidden);return p.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},Xv=1,Zv=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:Xv++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],p.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if($v(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||Xv++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Qv=(e,t)=>{let n=t?.id||Xv++;return Zv.addToast({title:e,...t,id:n}),n},$v=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,Q=Object.assign(Qv,{success:Zv.success,info:Zv.info,warning:Zv.warning,error:Zv.error,custom:Zv.custom,message:Zv.message,promise:Zv.promise,dismiss:Zv.dismiss,loading:Zv.loading},{getHistory:()=>Zv.toasts,getToasts:()=>Zv.getActiveToasts()});Bv(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function ey(e){return e.label!==void 0}var ty=3,ny=`24px`,ry=`16px`,iy=4e3,bee=356,xee=14,See=45,Cee=200;function ay(...e){return e.filter(Boolean).join(` `)}function wee(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var Tee=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:m,style:h,cancelButtonStyle:g,actionButtonStyle:_,className:v=``,descriptionClassName:y=``,duration:b,position:x,gap:S,expandByDefault:C,classNames:w,icons:T,closeButtonAriaLabel:E=`Close toast`}=e,[D,O]=p.useState(null),[k,A]=p.useState(null),[j,M]=p.useState(!1),[N,P]=p.useState(!1),[F,I]=p.useState(!1),[L,R]=p.useState(!1),[z,B]=p.useState(!1),[V,H]=p.useState(0),[ee,U]=p.useState(0),te=p.useRef(n.duration||b||iy),ne=p.useRef(null),re=p.useRef(null),ie=c===0,ae=c+1<=o,oe=n.type,W=n.dismissible!==!1,se=n.className||``,ce=n.descriptionClassName||``,le=p.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),ue=p.useMemo(()=>n.closeButton??m,[n.closeButton,m]),de=p.useMemo(()=>n.duration||b||iy,[n.duration,b]),fe=p.useRef(0),pe=p.useRef(0),me=p.useRef(0),he=p.useRef(null),[ge,_e]=x.split(`-`),ve=p.useMemo(()=>s.reduce((e,t,n)=>n>=le?e:e+t.height,0),[s,le]),ye=Yv(),G=n.invert||t,be=oe===`loading`;pe.current=p.useMemo(()=>le*S+ve,[le,ve]),p.useEffect(()=>{te.current=de},[de]),p.useEffect(()=>{M(!0)},[]),p.useEffect(()=>{let e=re.current;if(e){let t=e.getBoundingClientRect().height;return U(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),p.useLayoutEffect(()=>{if(!j)return;let e=re.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,U(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[j,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let xe=p.useCallback(()=>{P(!0),H(pe.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},Cee)},[n,d,a,pe]);p.useEffect(()=>{if(n.promise&&oe===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||ye?(()=>{if(me.current<fe.current){let e=new Date().getTime()-fe.current;te.current-=e}me.current=new Date().getTime()})():te.current!==1/0&&(fe.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),xe()},te.current)),()=>clearTimeout(e)},[u,i,n,oe,ye,xe]),p.useEffect(()=>{n.delete&&(xe(),n.onDismiss==null||n.onDismiss.call(n,n))},[xe,n.delete]);function Se(){return T?.loading?p.createElement(`div`,{className:ay(w?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":oe===`loading`},T.loading):p.createElement(Uv,{className:ay(w?.loader,n?.classNames?.loader),visible:oe===`loading`})}let Ce=n.icon||T?.[oe]||Vv(oe);return p.createElement(`li`,{tabIndex:0,ref:re,className:ay(v,se,w?.toast,n?.classNames?.toast,w?.default,w?.[oe],n?.classNames?.[oe]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":j,"data-promise":!!n.promise,"data-swiped":z,"data-removed":N,"data-visible":ae,"data-y-position":ge,"data-x-position":_e,"data-index":c,"data-front":ie,"data-swiping":F,"data-dismissible":W,"data-type":oe,"data-invert":G,"data-swipe-out":L,"data-swipe-direction":k,"data-expanded":!!(u||C&&j),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${N?V:pe.current}px`,"--initial-height":C?`auto`:`${ee}px`,...h,...n.style},onDragEnd:()=>{I(!1),O(null),he.current=null},onPointerDown:e=>{e.button!==2&&(be||!W||(ne.current=new Date,H(pe.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(I(!0),he.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(L||!W)return;he.current=null;let e=Number(re.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(re.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-ne.current?.getTime(),i=D===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=See||a>.11){H(pe.current),n.onDismiss==null||n.onDismiss.call(n,n),A(D===`x`?e>0?`right`:`left`:t>0?`down`:`up`),xe(),R(!0);return}else{var o,s;(o=re.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=re.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}B(!1),I(!1),O(null)},onPointerMove:t=>{var n,r;if(!he.current||!W||window.getSelection()?.toString().length>0)return;let i=t.clientY-he.current.y,a=t.clientX-he.current.x,o=e.swipeDirections??wee(x);!D&&(Math.abs(a)>1||Math.abs(i)>1)&&O(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(D===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(D===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&B(!0),(n=re.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=re.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},ue&&!n.jsx&&oe!==`loading`?p.createElement(`button`,{"aria-label":E,"data-disabled":be,"data-close-button":!0,onClick:be||!W?()=>{}:()=>{xe(),n.onDismiss==null||n.onDismiss.call(n,n)},className:ay(w?.closeButton,n?.classNames?.closeButton)},T?.close??Jv):null,(oe||n.icon||n.promise)&&n.icon!==null&&(T?.[oe]!==null||n.icon)?p.createElement(`div`,{"data-icon":``,className:ay(w?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||Se():null,n.type===`loading`?null:Ce):null,p.createElement(`div`,{"data-content":``,className:ay(w?.content,n?.classNames?.content)},p.createElement(`div`,{"data-title":``,className:ay(w?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?p.createElement(`div`,{"data-description":``,className:ay(y,ce,w?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),p.isValidElement(n.cancel)?n.cancel:n.cancel&&ey(n.cancel)?p.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||g,onClick:e=>{ey(n.cancel)&&W&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),xe())},className:ay(w?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,p.isValidElement(n.action)?n.action:n.action&&ey(n.action)?p.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||_,onClick:e=>{ey(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&xe())},className:ay(w?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function oy(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function Eee(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?ry:ny;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var Dee=p.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:h,style:g,visibleToasts:_=ty,toastOptions:v,dir:y=oy(),gap:b=xee,icons:x,containerAriaLabel:S=`Notifications`}=e,[C,w]=p.useState([]),T=p.useMemo(()=>n?C.filter(e=>e.toasterId===n):C.filter(e=>!e.toasterId),[C,n]),E=p.useMemo(()=>Array.from(new Set([i].concat(T.filter(e=>e.position).map(e=>e.position)))),[T,i]),[D,O]=p.useState([]),[k,A]=p.useState(!1),[j,M]=p.useState(!1),[N,P]=p.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),F=p.useRef(null),I=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),L=p.useRef(null),R=p.useRef(!1),z=p.useCallback(e=>{w(t=>(t.find(t=>t.id===e.id)?.delete||Zv.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return p.useEffect(()=>Zv.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{w(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{m.flushSync(()=>{w(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[C]),p.useEffect(()=>{if(d!==`system`){P(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?P(`dark`):P(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{P(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{P(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),p.useEffect(()=>{C.length<=1&&A(!1)},[C]),p.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;A(!0),(t=F.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===F.current||F.current?.contains(document.activeElement))&&A(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),p.useEffect(()=>{if(F.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,R.current=!1)}},[F.current]),p.createElement(`section`,{ref:t,"aria-label":`${S} ${I}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},E.map((t,n)=>{let[i,a]=t.split(`-`);return T.length?p.createElement(`ol`,{key:t,dir:y===`auto`?oy():y,tabIndex:-1,ref:F,className:c,"data-sonner-toaster":!0,"data-sonner-theme":N,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${D[0]?.height||0}px`,"--width":`${bee}px`,"--gap":`${b}px`,...g,...Eee(l,u)},onBlur:e=>{R.current&&!e.currentTarget.contains(e.relatedTarget)&&(R.current=!1,L.current&&=(L.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||R.current||(R.current=!0,L.current=e.relatedTarget)},onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>{j||A(!1)},onDragEnd:()=>A(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||M(!0)},onPointerUp:()=>M(!1)},T.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>p.createElement(Tee,{key:n.id,icons:x,index:i,toast:n,defaultRichColors:f,duration:v?.duration??h,className:v?.className,descriptionClassName:v?.descriptionClassName,invert:r,visibleToasts:_,closeButton:v?.closeButton??s,interacting:j,position:t,style:v?.style,unstyled:v?.unstyled,classNames:v?.classNames,cancelButtonStyle:v?.cancelButtonStyle,actionButtonStyle:v?.actionButtonStyle,closeButtonAriaLabel:v?.closeButtonAriaLabel,removeToast:z,toasts:T.filter(e=>e.position==n.position),heights:D.filter(e=>e.position==n.position),setHeights:O,expandByDefault:o,gap:b,expanded:k,swipeDirections:e.swipeDirections}))):null}))}),Oee=[...[`plan`,`build`,`review`],`done`],kee=e=>[...e].sort((e,t)=>{let n=e.bundle_execution_position??2**53-1,r=t.bundle_execution_position??2**53-1;if(n!==r)return n-r;if(e.created_at!==t.created_at)return e.created_at.localeCompare(t.created_at);let i=e.title.localeCompare(t.title,void 0,{sensitivity:`base`});return i===0?e.id.localeCompare(t.id):i}),Aee=(e,t)=>{let n=e.worktree_bundle_id?t.get(e.worktree_bundle_id)??null:null;return e.bundle&&n?{...e.bundle,...n,pull_request:n.pull_request??e.bundle.pull_request}:n??e.bundle??null},jee=e=>e.kind===`project_root`?!0:e.has_prepared_worktree!==!1,sy=e=>e.filter(e=>e.kind!==`project_root`&&jee(e)),cy=e=>[...e].filter(e=>e.session_id).sort((e,t)=>e.updated_at===t.updated_at?t.id.localeCompare(e.id):t.updated_at.localeCompare(e.updated_at))[0]??null,Mee=e=>[...e].filter(e=>e.state!==`plan`&&e.build_completed_at).sort((e,t)=>{let n=e.build_completed_at??``,r=t.build_completed_at??``;return n===r?e.updated_at===t.updated_at?t.id.localeCompare(e.id):t.updated_at.localeCompare(e.updated_at):r.localeCompare(n)})[0]??null,ly=e=>e.has_worktree??!!(e.bundle?.branch??e.branch),uy=(e,t={})=>{let n=t.targetTicketId?e.find(e=>e.id===t.targetTicketId)??null:null,r=t.reviewOwnerTicketId?e.find(e=>e.id===t.reviewOwnerTicketId)??null:null,i=Mee(e),a=t.latestSessionTicketId?e.find(e=>e.id===t.latestSessionTicketId&&e.session_id)??null:cy(e),o=t.latestSessionTicketId?e.find(e=>e.id===t.latestSessionTicketId)??null:null;return n??r??i??a??o??e.find(e=>ly(e))??e.find(e=>e.state!==`plan`)??e[0]??null},dy=(e,t,n)=>{let r=new Map(t.map(e=>[e.id,e])),i=e.filter(e=>n===`done`?e.parked_at!==null:e.state===n&&e.parked_at===null),a=new Map;for(let e of i){if(!e.worktree_bundle_id)continue;let t=a.get(e.worktree_bundle_id);if(t){t.push(e);continue}a.set(e.worktree_bundle_id,[e])}let o=new Set;return i.flatMap(e=>{if(!e.worktree_bundle_id)return[{kind:`ticket`,ticket:e}];if(o.has(e.worktree_bundle_id))return[];o.add(e.worktree_bundle_id);let t=a.get(e.worktree_bundle_id)??[e];if(t.length===1)return[{kind:`ticket`,ticket:t[0]}];let i=Aee(t[0],r);return i?[{kind:`bundle`,group:{id:`${i.id}:${n}`,bundle:i,column:n,tickets:kee(t)}}]:t.map(e=>({kind:`ticket`,ticket:e}))})},Nee=e=>`bundle-group:${e.id}`,fy=e=>{if(!e.startsWith(`bundle-group:`))return null;let t=e.slice(13),n=t.lastIndexOf(`:`);if(n<=0)return null;let r=t.slice(0,n),i=t.slice(n+1);return Oee.includes(i)?{bundleId:r,column:i}:null},py=e=>{let t=e.trim();for(;t!==``;){let e=t.match(/^(.*?) \(([^()]+)\)$/);if(!e)return t;let n=e[1]?.trim()??``,r=e[2]?.trim()??``,i=n.toLowerCase(),a=r.toLowerCase();if(i===a){t=n;continue}if(i.endsWith(` (${a})`)){t=n;continue}return t}return e.trim()},Pee=(e,t)=>{let n=py(e),r=t.trim();if(n===``||r===``)return n;let i=` (${r})`,a=n;for(;a.toLowerCase().endsWith(i.toLowerCase());)a=a.slice(0,-i.length).trimEnd();return a||n},my=e=>{if(e.kind===`project_root`)return e.branch===`__project_root__`?e.name??``:e.branch??``;let t=py(e.name||e.branch||``);return e.branch?Pee(t,e.branch):t},hy=e=>{if(e.kind===`project_root`)return e.branch===`__project_root__`?`Project root`:`Project root (${e.branch})`;let t=my(e),n=e.branch??``,r=t.trim().toLowerCase(),i=n.trim().toLowerCase();return t===``||n===``?t||n:r===i?t:`${t} (${n})`},gy=({className:e})=>(0,Y.jsx)(lee,{"aria-hidden":`true`,className:e}),_y=`Selected bundle`,vy=e=>!e||e.status===`loading`?null:e.status===`ready`&&e.branch?e.branch:e.status===`detached`?`Detached HEAD`:`Unknown branch`,yy=(e,t,n)=>{if(e.active_target_kind===`bundle`&&e.active_target_bundle_id){let t=n.find(t=>t.id===e.active_target_bundle_id)??null;return t?my(t):_y}return vy(t)??`Loading target...`},by=e=>{let t=vy(e);return t?`Repo root (${t})`:`Repo root`},xy=(e,t,n)=>e.active_target_kind===`bundle`?n===null?`text-[#8d92aa]`:n?`text-amber-300`:`text-emerald-200`:t?.status===`ready`?t.canPull?`text-amber-300`:`text-emerald-200`:`text-[#8d92aa]`,Sy=({activeProject:e,branchState:t,bundles:n,branchSuggestions:r,activeTargetCanPull:i=null,isBundleLoading:a=!1,isLoading:o,onOpenChange:s,onSelectBundle:c,onSelectRepoRoot:l,targetGitStatus:u=null,activeBranchAction:d=null,onRebase:f,onManageBundles:m})=>{let{t:h}=Ue(`common`),[g,_]=(0,p.useState)(!1),[v,y]=(0,p.useState)(``),[b,x]=(0,p.useState)(!1),S=e.active_target_kind!==`bundle`,C=(0,p.useMemo)(()=>sy(n),[n]),w=(0,p.useMemo)(()=>e.active_target_kind!==`bundle`||!e.active_target_bundle_id?null:n.find(t=>t.id===e.active_target_bundle_id)??null,[e.active_target_bundle_id,e.active_target_kind,n]),T=(0,p.useMemo)(()=>yy(e,t,n),[e,t,n]),E=(0,p.useMemo)(()=>by(t),[t]),D=(0,p.useMemo)(()=>xy(e,t,i),[e,i,t]),O=o||a,k=e.active_target_kind===`bundle`&&!!e.active_target_bundle_id&&w===null&&a,A=S&&t?.status===`loading`||k,j=(0,p.useMemo)(()=>{let e=r.current_branch;return[{key:`default`,label:`Default branch`,branch:r.default_branch},{key:`previous`,label:`Previous branch`,branch:r.previous_branch}].filter(t=>t.branch?t.branch!==e:!1).filter((e,t,n)=>n.findIndex(t=>t.branch===e.branch)===t)},[r]),M=(0,p.useMemo)(()=>u?.base_branch?h(`projectFooter.rebaseOnto`,{branch:u.base_branch}):h(`projectFooter.rebase`),[h,u?.base_branch]),N=u?.operation_state===`idle`,P=!f||!N||!!u?.rebase_disabled_reason||d!==null||b;(0,p.useEffect)(()=>{g&&y(t?.branch??``)},[t?.branch,g]);let F=e=>{_(e),s?.(e)},I=async e=>{x(!0);try{await c(e)&&_(!1)}catch(e){Q.error(e instanceof Error?e.message:`Unable to switch to that bundle right now.`)}finally{x(!1)}},L=async(e,t)=>{x(!0);try{await l(e,t)&&_(!1)}catch(e){Q.error(e instanceof Error?e.message:`Unable to switch the repo root target right now.`)}finally{x(!1)}},R=async()=>{if(f){x(!0);try{await f(),_(!1)}catch(e){Q.error(e instanceof Error?e.message:h(`projectFooter.rebaseFallbackError`))}finally{x(!1)}}};return(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsxs)(ev,{open:g,onOpenChange:F,children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsx)(`button`,{type:`button`,"aria-busy":A,className:`flex max-w-full cursor-pointer items-center overflow-hidden rounded-xl border border-border/70 bg-card/70 px-3 py-2 text-left shadow-sm transition hover:border-border hover:bg-accent/25 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60`,"data-testid":`active-project-branch`,children:A?(0,Y.jsx)(Av,{className:`h-3.5 w-20`}):(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1 ${D}`,children:[(0,Y.jsx)(gy,{className:`h-3.5 w-3.5 shrink-0`}),(0,Y.jsx)(`span`,{className:`truncate font-medium`,children:T})]})})}),(0,Y.jsx)(nv,{align:`start`,className:`w-[26rem] max-w-[calc(100vw-2rem)] p-4`,children:(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-sm font-semibold text-foreground`,children:`Project target`}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Choose the repo root or a prepared bundle for new chat sessions.`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Target`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:S?`secondary`:`ghost`,className:`w-full justify-start`,disabled:b,onClick:()=>{L(null)},children:E}),(0,Y.jsxs)(`div`,{className:`relative min-h-10`,"data-testid":`project-target-options`,children:[O&&(0,Y.jsx)(`div`,{className:`pointer-events-none absolute right-2 top-2 z-10 text-muted-foreground`,"data-testid":`project-target-options-spinner`,children:(0,Y.jsx)(Fv,{className:`h-3.5 w-3.5 animate-spin`})}),(0,Y.jsx)(`div`,{className:`max-h-40 overflow-y-auto pr-7`,children:C.length===0&&!O?(0,Y.jsx)(`p`,{className:`px-2 py-2 text-xs text-muted-foreground`,children:`No bundles loaded yet.`}):C.map(t=>(0,Y.jsx)(Z,{type:`button`,variant:e.active_target_kind===`bundle`&&e.active_target_bundle_id===t.id?`secondary`:`ghost`,className:`w-full justify-start`,disabled:b,onClick:()=>{I(t.id)},children:my(t)},t.id))})]})]}),m&&(0,Y.jsx)(Z,{type:`button`,disabled:b,onClick:()=>{_(!1),m()},className:`w-full`,children:`Manage bundles`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Repo root branch`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-3`,children:[(0,Y.jsx)(`div`,{className:`space-y-2`,children:j.length>0?j.map(({key:e,label:t,branch:n})=>(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,className:`w-full justify-between`,disabled:!S||b||!n,onClick:()=>{L(n)},children:[(0,Y.jsx)(`span`,{children:t}),(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n})]},e)):(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o?`Loading branch suggestions...`:`No suggested branches available.`})}),(0,Y.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsx)($_,{htmlFor:`project-target-branch-input`,className:`text-xs text-muted-foreground`,children:`Switch or create branch`}),(0,Y.jsx)(z_,{id:`project-target-branch-input`,value:v,disabled:!S||b,onChange:e=>y(e.target.value),placeholder:`feature/quick-fix`})]}),(0,Y.jsx)(Z,{type:`button`,disabled:!S||!v.trim()||b,onClick:()=>{L(v)},children:`Switch`})]})]})]}),N&&(0,Y.jsxs)(`div`,{className:`space-y-2 border-t border-border/70 pt-4`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:h(`projectFooter.currentTargetActions`)}),(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,className:`w-full justify-between`,disabled:P,title:u?.rebase_disabled_reason??void 0,onClick:()=>{R()},children:[(0,Y.jsx)(`span`,{children:M}),d===`rebase`&&(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`})]})]})]})})]})})},Cy=(e,t=!1)=>e?e.status===`loading`?{kind:`loading`}:e.status===`ready`&&e.branch?{kind:`text`,toneClassName:t?`text-amber-300`:`text-emerald-200`,value:e.branch}:e.status===`detached`?{kind:`text`,toneClassName:`text-[#8d92aa]`,value:``,translationKey:`projectFooter.detachedHead`}:{kind:`text`,toneClassName:`text-[#8d92aa]`,value:``,translationKey:`projectFooter.unknownBranch`}:null,wy=({activeProject:e,activeRun:t,branchState:n,targetGitStatus:r,isBoardLoadedForActiveProject:i,activeProjectBranchAction:a,isProjectIdeAvailable:o,isProjectRunAvailable:s,isRunStatusLoadedForActiveProject:c,isTerminalOpen:l,hasConfiguredTests:u,targetBundles:d,targetBranchSuggestions:f,isTargetBundleLoading:p,isTargetSelectorLoading:m,isTargetGitStatusLoading:h,onProjectChangesOpen:g,onProjectTestsOpen:_,onProjectPull:v,onProjectRebase:y,onProjectAbortGitOperation:b,onProjectRunToggle:x,onTerminalToggle:S,onProjectIdeOpen:C,onTargetSelectorOpenChange:w,onSelectBundleTarget:T,onSelectRepoRootTarget:E,onManageBundles:D})=>{let{t:O}=Ue(`common`),k=r?.operation_state??`idle`,A=!!(e&&r&&r.behind>0&&k===`idle`),j=(()=>{let e=Cy(n,A);return e?.kind!==`text`||!e.translationKey?e:{...e,value:O(e.translationKey)}})(),M=j?.kind===`loading`,N=a===`pull`,P=a===`abort`,F=!!(e&&r&&r.branch&&r.behind>0&&a===null),I=(r?.behind??0)>0&&(r?.ahead??0)>0?O(`projectFooter.sync`):O(`projectFooter.pull`),L=k===`merge`||k===`rebase`,R=O(k===`merge`?`projectFooter.abortMerge`:`projectFooter.abortRebase`),z=!!e,B=!!(e&&n?.diffStats?.is_dirty),V=O(l?`workspaceControls.hideTerminalAriaLabel`:`workspaceControls.openTerminalAriaLabel`),H=e?.active_target_kind??`repo_root`,ee=e?.active_target_bundle_id??null,U=e!==null&&t?.kind===`project`&&t.project_id===e.id&&(t.target_kind??`repo_root`)===H&&((t.target_kind??`repo_root`)!==`bundle`||t.target_bundle_id===ee),te=e!==null&&!U&&(!i||!c),ne=!e||!U&&(!s||t!==null||te),re=O(U?`projectFooter.stop`:`projectFooter.run`),ie=(()=>{if(!e)return O(`projectFooter.selectProjectFirst`);if(!U){if(!s)return O(`projectFooter.addRunConfig`);if(te)return O(`projectFooter.loadingProjectStatus`);if(t?.kind===`project`)return O(`projectFooter.stopSelectedTargetRun`);if(t?.kind===`ticket`)return O(`projectFooter.stopTicketBeforeSelectedTargetRun`)}})();return(0,Y.jsx)(`footer`,{className:`border-t border-border bg-background/95 px-6 py-3 backdrop-blur`,"data-testid":`project-footer`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-3 overflow-hidden px-1 text-xs text-muted-foreground sm:gap-4`,children:[e&&j&&(0,Y.jsx)(`div`,{className:`flex max-w-full items-center gap-2 overflow-hidden`,children:(0,Y.jsx)(Sy,{activeProject:e,branchState:n,bundles:d,branchSuggestions:f,activeTargetCanPull:e?.active_target_kind===`bundle`?r?r.behind>0:h?null:!1:null,isBundleLoading:p,isLoading:m||M,onOpenChange:w,onSelectBundle:T,onSelectRepoRoot:E,targetGitStatus:r,activeBranchAction:a,onRebase:y,onManageBundles:D})}),L&&(0,Y.jsxs)(Z,{type:`button`,onClick:()=>{b()},disabled:a!==null,variant:`outline`,className:`h-8 gap-2 px-3 text-xs`,children:[P?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Rv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:P?O(`projectFooter.aborting`):R})]}),A&&(0,Y.jsxs)(Z,{type:`button`,onClick:v,disabled:!F,variant:`outline`,className:`h-8 gap-2 px-3 text-xs`,children:[N?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:N?I===O(`projectFooter.sync`)?O(`projectFooter.syncing`):O(`projectFooter.pulling`):I})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-3 sm:gap-4`,children:[B&&n?.diffStats&&(0,Y.jsx)(jv,{stats:n.diffStats,showFiles:!0,className:`text-xs`}),z&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":O(`workspaceControls.changes`),onClick:g,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Nv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.changes`)})]}),u&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":O(`workspaceControls.tests`),onClick:_,disabled:!e,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Mv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.tests`)})]}),(0,Y.jsxs)(Z,{type:`button`,"aria-label":V,"aria-pressed":l,onClick:S,disabled:!e,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(zv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.terminal`)})]}),e&&o&&(0,Y.jsxs)(Z,{type:`button`,onClick:C,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Pv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.openIde`)})]}),(0,Y.jsxs)(Z,{type:`button`,"data-testid":`project-root-run-button`,disabled:ne,title:ie,onClick:x,variant:U?`destructive`:`secondary`,className:[`gap-2`,U?``:`bg-sky-700 text-sky-100 hover:bg-sky-600 hover:text-white`,ne?`bg-slate-700 text-slate-400 hover:bg-slate-700 hover:text-slate-400`:``].join(` `),children:[U&&(0,Y.jsx)(`span`,{className:`h-2 w-2 flex-shrink-0 rounded-full bg-emerald-400 animate-pulse`,"data-testid":`project-root-run-indicator`}),U?(0,Y.jsx)(Rv,{className:`h-4 w-4`}):(0,Y.jsx)(Iv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:re})]})]})]})})},Ty=({state:e,className:t})=>e?(0,Y.jsx)(`span`,{"aria-hidden":`true`,"data-activity-indicator":`true`,"data-state":e,"data-testid":`workspace-activity-indicator`,className:X(`h-2 w-2 flex-shrink-0 rounded-full`,e===`running`?`animate-pulse bg-amber-300`:e===`inactive`?`bg-zinc-500/70 ring-1 ring-zinc-400/20`:e===`interrupted`?`bg-amber-400/80 ring-1 ring-amber-400/30`:e===`error`?`bg-rose-400/90 ring-1 ring-rose-400/30`:`bg-emerald-400/80 ring-1 ring-emerald-400/30`,t)}):null,Ey=({className:e})=>(0,Y.jsx)(Dg,{"aria-hidden":`true`,className:e}),Dy={"X-Archon-Desktop-Action":`mobile-access`},Oy=e=>J(qe(`/mobile-access/status`),{signal:e}),ky=e=>J(qe(`/mobile-access/enable`),{method:`POST`,headers:Dy,body:e}),Ay=()=>J(qe(`/mobile-access/disable`),{method:`POST`,headers:Dy}),jy=e=>J(qe(`/mobile-access/regenerate-pairing`),{method:`POST`,headers:Dy,body:{preferred_project_id:e??null}}),My=e=>J(qe(`/mobile-access/sessions/${encodeURIComponent(e)}/revoke`),{method:`POST`,headers:Dy}),Ny=new Set,Py=null,Fy=null,Iy=()=>{for(let e of Ny)e(Py)},Ly=()=>{Fy!==null&&(window.clearTimeout(Fy),Fy=null)},Ry=e=>{if(typeof window>`u`||(Ly(),e?.state!==`awaiting_pairing`||!e.pairing))return;let t=new Date(e.pairing.expires_at).getTime();if(Number.isNaN(t))return;let n=()=>{Py?.state!==`awaiting_pairing`||Py.pairing?.expires_at!==e.pairing?.expires_at||zy({...Py,state:`expired`,pairing:null})},r=t-Date.now();if(r<=0){n();return}Fy=window.setTimeout(n,r)},zy=e=>{Py=e,Ry(e),Iy()},By=async e=>{let t=await Oy(e);return zy(t),t},Vy=()=>{let[e,t]=(0,p.useState)(Py);return(0,p.useEffect)(()=>(Ny.add(t),()=>{Ny.delete(t)}),[]),e},Hy=e=>{(0,p.useEffect)(()=>{if(!e)return;let t=null,n=()=>{t?.abort(),t=new AbortController;let e=t;By(e.signal).catch(e=>{Ye(e)}).finally(()=>{t===e&&(t=null)})};n();let r=e=>{zy(e)},i=()=>{n()};return e.on(`mobile-access:status`,r),e.on(`connect`,i),()=>{t?.abort(),e.off(`mobile-access:status`,r),e.off(`connect`,i)}},[e])},Uy=e=>!e||e.state===`disabled`?`inactive`:e.state===`awaiting_pairing`?`running`:e.state===`connected`?`finished`:e.state===`expired`?`interrupted`:`error`,Wy=e=>!e||e.state===`disabled`?`Mobile access disabled`:e.state===`awaiting_pairing`?`Mobile access ready to pair`:e.state===`connected`?`Mobile access connected`:e.state===`expired`?`Mobile pairing expired`:e.error??`Mobile access unavailable`,Gy=e=>e?.state===`awaiting_pairing`?`border-amber-400/30 bg-amber-500/10 text-amber-100 hover:bg-amber-500/15 hover:text-amber-50`:e?.state===`connected`?`border-emerald-400/30 bg-emerald-500/10 text-emerald-100 hover:bg-emerald-500/15 hover:text-emerald-50`:e?.state===`expired`?`border-amber-400/20 bg-amber-500/6 text-amber-100/90 hover:bg-amber-500/12 hover:text-amber-50`:e?.state===`error`?`border-rose-400/30 bg-rose-500/10 text-rose-100 hover:bg-rose-500/15 hover:text-rose-50`:`border-border/70 bg-background/70 text-muted-foreground hover:bg-accent/20 hover:text-foreground`,Ky=({activeTool:e,onCreateProject:t,onMobileAccessOpen:n,onToolChange:r})=>{let i=Vy();return(0,Y.jsxs)(`div`,{className:`flex w-full flex-wrap items-center justify-start gap-3 sm:justify-end`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1 rounded-xl border border-border/70 bg-background/70 p-1 shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]`,children:[`opencode`,`claude`].map(t=>{let n=e===t;return(0,Y.jsx)(Z,{type:`button`,variant:n?`secondary`:`ghost`,size:`xs`,className:n?`rounded-lg px-2.5 text-xs text-foreground`:`rounded-lg px-2.5 text-xs text-muted-foreground hover:text-foreground`,onClick:()=>r(t),children:t===`opencode`?`OpenCode`:`Claude`},t)})}),n&&(0,Y.jsx)(Sv,{content:Wy(i),children:(0,Y.jsxs)(Z,{type:`button`,"aria-label":`Open mobile access`,onClick:n,variant:`ghost`,className:`h-8 gap-2 rounded-xl border px-3 text-sm font-medium ${Gy(i)}`,children:[(0,Y.jsx)(Ty,{state:Uy(i),className:`mt-0`}),(0,Y.jsx)(`span`,{children:`Mobile`})]})})]}),(0,Y.jsxs)(Z,{type:`button`,onClick:t,variant:`ghost`,className:`h-8 gap-2 rounded-xl border border-border/70 px-3 text-foreground hover:bg-accent/20`,children:[(0,Y.jsx)(Ey,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:`New project`})]})]})},qy=()=>(0,Y.jsx)(Dee,{closeButton:!0,expand:!0,theme:`dark`,position:`top-left`,richColors:!0,toastOptions:{classNames:{toast:`border border-border bg-card text-card-foreground shadow-2xl shadow-black/35`,title:`text-sm font-medium text-card-foreground`,description:`text-xs text-muted-foreground`,closeButton:`border border-border bg-secondary text-secondary-foreground transition-colors hover:bg-accent hover:text-accent-foreground`,error:`border-red-500/30 bg-destructive/20 text-red-100`,success:`border-emerald-500/30 bg-emerald-500/15 text-emerald-100`,warning:`border-amber-500/30 bg-amber-500/15 text-amber-100`,info:`border-sky-500/30 bg-sky-500/15 text-sky-100`}}}),Jy=({className:e})=>(0,Y.jsx)(Ig,{"aria-hidden":`true`,className:e}),Yy=[],Xy=!1,Zy=()=>{if(!(typeof window>`u`)){if(Yy.length===0){Xy&&=(window.removeEventListener(`keydown`,Qy),!1);return}Xy||=(window.addEventListener(`keydown`,Qy),!0)}},Qy=e=>{if(e.key!==`Escape`)return;let t=Yy[Yy.length-1];t&&t.onClose()},$y=(e,t={})=>{let{disabled:n=!1}=t,r=(0,p.useRef)(e);(0,p.useEffect)(()=>{r.current=e},[e]),(0,p.useEffect)(()=>{if(n)return;let e={id:Symbol(`escape-close`),onClose:()=>r.current()};return Yy.push(e),Zy(),()=>{let t=Yy.findIndex(t=>t.id===e.id);t!==-1&&Yy.splice(t,1),Zy()}},[n])},eb=(...e)=>e.filter(Boolean).join(` `),tb=({children:e,onClose:t,overlayClassName:n,panelClassName:r,closeButtonClassName:i,closeButtonLabel:a=`Close modal`,renderContent:o})=>{$y(t);let s=(0,Y.jsx)(Z,{type:`button`,"aria-label":a,variant:`ghost`,size:`icon-sm`,onClick:t,className:eb(`cursor-pointer text-muted-foreground hover:text-foreground`,i),children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})});return(0,Y.jsx)(`div`,{className:eb(`fixed inset-0 z-50 flex items-center justify-center`,n),children:(0,Y.jsx)(`div`,{className:eb(`relative flex flex-col`,r),role:`dialog`,"aria-modal":`true`,onClick:e=>e.stopPropagation(),children:o?o({closeButton:s}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`absolute top-4 right-4 z-10`,children:s}),e]})})})},nb=({title:e,description:t,confirmLabel:n,cancelLabel:r,confirmVariant:i=`default`,onConfirm:a,onCancel:o})=>(0,Y.jsxs)(tb,{onClose:o,overlayClassName:`bg-black/60`,panelClassName:`max-w-md rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,Y.jsx)(`h2`,{className:`mb-3 text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:e}),(0,Y.jsx)(`p`,{className:`mb-6 text-sm text-foreground whitespace-pre-line`,children:t}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,onClick:o,children:r}),(0,Y.jsx)(Z,{type:`button`,variant:i,onClick:a,children:n})]})]}),rb=({isSubmitting:e,onCreateInitialCommit:t})=>(0,Y.jsx)(`div`,{className:`mx-6 mt-4 mb-4 w-fit max-w-[calc(100%-3rem)] rounded-2xl border border-amber-500/35 bg-amber-500/10 px-4 py-3 text-sm text-amber-100`,role:`alert`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col items-start gap-4 lg:flex-row lg:items-center`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`font-medium`,children:`This repository needs an initial commit before Archon can prepare bundle worktrees.`}),(0,Y.jsx)(`p`,{className:`text-xs leading-5 text-amber-100/90`,children:`Repo root chat still works. Create an initial commit to unblock bundle worktrees.`})]}),(0,Y.jsx)(Z,{type:`button`,variant:`warning`,className:`shrink-0`,disabled:e,onClick:t,children:e?`Creating initial commit...`:`Create initial commit`})]})}),ib=`common`,ab={en:{common:{appName:`Archon`,emptyState:{title:`Create your first project to start routing tickets into a real repo.`,description:`Pick the default agent Archon should use for planning and ticket work. Auto-config can optionally use a separate helper model.`,loadingToolPreference:`Loading tool preference...`,createFirstProject:`Create first project`},boardConfirmEmptyDoneModal:{heading:`Empty Done`,deletePrompt_one:`Delete {{count}} done ticket from the Done column?`,deletePrompt_other:`Delete {{count}} done tickets from the Done column?`,description:`Standalone ticket worktrees will be removed when applicable. Deleting the last parked ticket in a bundle also removes that shared bundle worktree.`,cancel:`Cancel`,deleting:`Deleting...`,confirm:`Delete all`},cardConfirmDeleteModal:{heading:`Delete ticket`,descriptionInBundle:`This removes the ticket from bundle "{{bundleName}}". The bundle and shared worktree stay available.`,descriptionStandalone:`This will also remove the worktree if one exists.`,cancel:`Cancel`,confirm:`Delete`},cardConfirmUndoModal:{defaultSubjectLabel:`ticket`,headingReview:`Undo review`,headingBuild:`Undo build`,descriptionReview:`This will revert the current review-step changes and move the {{subjectLabel}} back to build-done.`,descriptionBuild:`This will revert the current build-step changes and move the {{subjectLabel}} back to plan.`,cancel:`Cancel`,confirm:`Undo`},bundleSelector:{label:`Bundle`,emptyLabel:`No bundle`},jiraImportField:{error:`Unable to load the Jira issue right now.`,label:`Import from Jira`,placeholder:`PROJ-123 or issue URL`,importing:`Importing...`,import:`Import`},githubImportField:{error:`Unable to load the GitHub issue right now.`,label:`Import from GitHub`,placeholder:`Issue # or URL`,importing:`Importing...`,import:`Import`},externalImportField:{error:`Unable to load the {{provider}} issue right now.`,label:`Import from`,importing:`Importing...`,import:`Import`},newTicketModal:{heading:`New Ticket`,actions:{plan:`Plan`,createTicket:`Create Ticket`,createAndBuild:`Create & Build`}},bundleCard:{addTicketTooltip:`Add ticket to this bundle`,addTicketAriaLabel:`Add ticket to bundle {{bundleName}}`},ticketEditor:{automaticBundleLabel:`Create automatically`,planningFailed:`Planning failed. Please try again.`,bundleCreationUnavailable:`Bundle creation is unavailable.`,titleLabel:`Title`,titlePlaceholder:`What needs to be done?`,descriptionLabel:`Description`,descriptionPlaceholder:`Describe the task, acceptance criteria, context...`,bundlePreview:`Bundle preview:`,manageBundles:`Manage bundles`,cancel:`Cancel`,planning:`Planning...`},manageBundlesModal:{createError:`Unable to create the bundle right now.`,deleteError:`Unable to delete the bundle right now.`,title:`Manage bundles`,createTitle:`Create bundle`,createPendingTitle:`Preparing bundle workspace`,createPendingDescription:`Creating the worktree, syncing files, and running setup commands.`,bundleNameLabel:`Bundle name`,bundleNameAriaLabel:`Bundle name`,bundleNamePlaceholder:`Checkout flow`,createAction:`Create bundle`,existingTitle:`Existing bundles`,empty:`No bundles yet.`,selected:`Selected`,currentTarget:`Current target`,projectRootDescription:`Uses the project root on branch {{branch}}.`,switchTargetDescription:`Switch the project target away from this bundle before deleting it.`,inUseDescription:`Used by {{ticketCount}}.`,unusedDescription:`Unused and ready to delete.`,ticketCount_one:`{{count}} ticket`,ticketCount_other:`{{count}} tickets`,cancel:`Cancel`,deleting:`Deleting...`,deleteBundle:`Delete bundle`,delete:`Delete`,close:`Close`},card:{advance:{reviewBundle:`Review Bundle`,rerunReview:`Re-run review`},columnLabels:{plan:`Plan`,build:`Build`,review:`Review`,done:`Done`,trash:`Trash`},returnTo:`Return to {{state}}`,drawDependency:`Draw dependency`,createDependencyAriaLabel:`Create dependency from {{title}}`,undoInProgress:`Undo in progress...`},cardActionsMenu:{openAriaLabel:`Open actions menu for {{title}}`,delete:`Delete`,undoReview:`Undo Review`,undoBuild:`Undo Build`,buildChain:`Build Chain`,addTicketToBundle:`Add ticket`,run:`Run`,startingRun:`Starting Run...`,stopRun:`Stop Run`,stopping:`Stopping...`,pauseBuild:`Pause Build`,resumeBuild:`Resume Build`,changes:`Changes`,tests:`Tests`,openIde:`Open IDE`,stopBuildChain:`Stop Build Chain`,done:`Done`},statusBadge:{queued:`Queued`,planning:`Planning...`,building:`Building`,buildingWithGlyph:`⏳ Building`,reviewing:`Reviewing`,done:`✓ Done`,error:`✗ Error`,stopped:`Stopped`},cardStatusBadges:{stale:`Stale`,openQuestions:`Open questions`,chainStart:`Chain start`},column:{loadingCard:`Loading card {{index}}`,runDisabledReason:`Stop the currently running ticket before starting another run.`,newTicket:`+ New ticket`,undoInProgress:`Undo in progress...`},board:{notifications:{planningDoneTitle:`Planning done`,planningDoneBody_one:`{{count}} ticket created`,planningDoneBody_other:`{{count}} tickets created`},search:{placeholder:`Search tickets`,ariaLabel:`Search tickets`,clearAriaLabel:`Clear search`,hideStaleAriaLabel:`Hide stale tickets`,hideStaleLabel:`Hide stale tickets`},preview:{disabledProjectRoot:`Preview selection is unavailable for project root runs.`,disabledBuildCapable:`Preview selection is only available for build-capable ticket runs.`,disabledPlanMode:`Preview selection is unavailable while this ticket is in Plan mode.`,followUpBundlePlaceholder:`Follow up on this bundle`,followUpTicketPlaceholder:`Follow up on this ticket`},errors:{runBlockedByActive:`Stop the currently running ticket before starting another run.`,moveTicket:`Unable to move the ticket right now.`,createBundleWithoutProject:`Cannot create a bundle without an active project.`,missingBundleReviewTicket:`Requested ticket was not returned from the bundle review response.`,parkTicket:`Unable to park the ticket right now.`,returnTicket:`Unable to return the ticket right now.`,moveBundleToDone:`Unable to move the bundle to Done right now.`,restoreBundle:`Unable to restore the bundle right now.`,deleteBundleTickets:`Unable to delete the bundle tickets right now.`,generateTickets:`Unable to generate tickets right now.`,deleteTicket:`Unable to delete the ticket right now.`,undoTicket:`Unable to undo the ticket right now.`,startRun:`Unable to start the run right now.`,openIde:`Unable to open the IDE right now.`,sendFollowUp:`Unable to send the follow-up prompt right now.`,buildBundle:`Unable to build the bundle right now.`,reviewBundle:`Unable to review the bundle right now.`,undoBundleReview:`Unable to undo the bundle review right now.`,moveBundle:`Unable to move the bundle right now.`,startBuildChain:`Unable to start the build chain right now.`,stopBuildChain:`Unable to stop the build chain right now.`,emptyDone:`Unable to empty Done right now.`},toasts:{deleteDonePartial_one:`Deleted {{deletedCount}} done ticket, but {{failedCount}} failed.`,deleteDonePartial_other:`Deleted {{deletedCount}} done tickets, but {{failedCount}} failed.`,deleteDoneSuccess_one:`Deleted {{count}} done ticket.`,deleteDoneSuccess_other:`Deleted {{count}} done tickets.`,movedBundleToDonePartial:`Moved {{movedCount}} of {{totalCount}} bundle tickets to Done.`,restoredBundlePartial:`Restored {{restoredCount}} of {{totalCount}} bundle tickets.`,deletedBundleTicketsPartial:`Deleted {{deletedCount}} of {{totalCount}} bundle tickets.`,planningAgentCardsCreated_one:`{{count}} card created`,planningAgentCardsCreated_other:`{{count}} cards created`},doneColumn:{emptyAction:`Empty`},changes:{reviewPromptDisabledReason:`Wait for all bundle tickets to finish building before sending a follow-up prompt.`,modifyChangesDisabledReason:`Wait for all bundle tickets to finish building before modifying changes.`}},projectPreviewPane:{presets:{responsive:`Responsive`,phone:`Phone`,tablet:`Tablet`,laptop:`Laptop`},selection:{unavailableBuildCapable:`Preview selection is only available for build-capable ticket runs.`,waitForLoad:`Wait for the preview to finish loading first.`,enableMode:`Enable selection mode`,disableMode:`Disable selection mode`},targetSummary:{element:`Element`,unknownElement:`Unknown element`},iframeTitle:`Project preview`,pendingComments:{triggerLabel:`Pending comments`,title:`Pending comments`,description:`Review preview comments before sending them back to the agent.`,empty:`No preview comments queued yet.`,clearAll:`Clear all`,sending:`Sending...`,sendFixes:`Send fixes ({{count}})`,deleteAriaLabel:`Delete pending comment for {{elementLabel}}`},prompt:{bundlePlaceholder:`Follow up on this bundle`,ticketPlaceholder:`Follow up on this ticket`,defaultPlaceholder:`Describe what Archon should do next.`,toggleAriaLabel:`Toggle preview prompt`,button:`Prompt`,sent:`Prompt sent.`,sendError:`Unable to send the preview prompt right now.`},commentComposer:{editTitle:`Edit preview comment`,addTitle:`Add preview comment`,closeAriaLabel:`Close preview comment composer`,commentAriaLabel:`Preview comment`,placeholder:`Describe the change you want here.`,cancel:`Cancel`,save:`Save comment`,add:`Add comment`},toasts:{fixesSubmitted:`Fixes submitted.`,fixesError:`Unable to submit the preview review right now.`},states:{loadingTitle:`Loading preview`,loadingDescription:`Archon is loading the current preview state for this project.`,readyMissingUrlTitle:`Preview error`,readyMissingUrlDescription:`Archon did not provide a preview URL for the active run.`,detectingTitle:`Detecting preview`,detectingDescription:`Waiting for the preview service to report a browser URL.`,unsupportedTitle:`Preview unavailable`,unsupportedDescription:`This run cannot be embedded as an in-app preview.`,errorTitle:`Preview error`,errorDescription:`Archon could not load the current preview target.`,idleTitle:`Preview idle`,idleDescription:`Start a run to load the in-app preview.`},toolbar:{viewportPresetAriaLabel:`Preview viewport preset`,reloadAriaLabel:`Reload preview`,reloadTooltip:`Reload`,openNewTabAriaLabel:`Open preview in new tab`,openNewTabTooltip:`Open in new tab`,toggleSelectionAriaLabel:`Toggle preview selection mode`,stopRunAriaLabel:`Stop preview run`,stopping:`Stopping...`,stop:`Stop`,collapseAriaLabel:`Collapse preview`,collapseTooltip:`Collapse`,expandAriaLabel:`Expand preview`,expandTooltip:`Expand`,closeAriaLabel:`Close preview`,closeTooltip:`Close`}},mobileApp:{navigation:{overview:`Overview`,tickets:`Tickets`,chats:`Chats`},overviewActions:{ticketsAriaLabel:`Go to tickets section`,chatsAriaLabel:`Go to chats section`}},chatView:{tool:{claude:`Claude`,opencode:`OpenCode`},mode:{plan:`Plan`,build:`Build`},placeholders:{plan:`Ask Archon to scope, sequence, or reason through project work`,build:`Ask Archon to build, change, or verify something in this project`},shortcuts:{modifierMac:`CMD`,modifierDefault:`CTRL`,startNewSession:`Start new session`,switchToPlan:`Switch to Plan`,switchToBuild:`Switch to Build`},user:{you:`You`},targets:{bundleFallback:`Bundle target`,repoRoot:`Repo root`,repoRootWithBranch:`Repo root ({{branch}})`,currentTarget:`current target`,selectedBundleTarget:`selected bundle target`},pendingMemorySuggestions_one:`{{count}} pending memory suggestion`,pendingMemorySuggestions_other:`{{count}} pending memory suggestions`,deleteSessionModal:{title:`Delete chat session`,bulkTitle:`Delete chat sessions`,description:`This permanently removes the transcript history for this chat session.`,bulkDescription_one:`This permanently removes the transcript history for {{count}} chat session.`,bulkDescription_other:`This permanently removes the transcript history for {{count}} chat sessions.`,cancel:`Cancel`,deleting:`Deleting...`,delete:`Delete`},sidebar:{ariaLabel:`Chat sessions sidebar`,newSession:`New session`,select:`Select`,cancelSelection:`Cancel`,selectedCount_one:`{{count}} selected`,selectedCount_other:`{{count}} selected`,deleteSelected:`Delete selected`,collapseAriaLabel:`Collapse sessions panel`,openAriaLabel:`Open sessions panel`,loadingSessions:`Loading chat sessions...`,noSessions:`No chat sessions yet.`,deleteDisabledReason:`Wait for the current chat response to finish before deleting this session.`,running:`Running`,interrupted:`Interrupted`,finished:`Finished`,targetUnavailable:`Target unavailable`,deleteSessionAriaLabel:`Delete chat session`,deleteSessionTitle:`Delete {{title}}`,selectSessionAriaLabel:`Select {{title}}`,selectSessionTitle:`Select {{title}}`},toasts:{deleteSelectedPartial_one:`Deleted {{deletedCount}} chat session, but {{failedCount}} failed.`,deleteSelectedPartial_other:`Deleted {{deletedCount}} chat sessions, but {{failedCount}} failed.`,deleteSelectedSuccess_one:`Deleted {{count}} chat session.`,deleteSelectedSuccess_other:`Deleted {{count}} chat sessions.`},ticketProposal:{createdTitle:`Tickets created`,createdDescription_one:`Created {{count}} ticket from this proposal.`,createdDescription_other:`Created {{count}} tickets from this proposal.`,proposedTitle:`Proposed tickets`,proposedDescription:`Review these tickets before adding them to the board.`,dependenciesLabel:`Dependencies: {{value}}`,creating:`Creating tickets...`,create:`Create tickets`,createdFromChat_one:`Created {{count}} ticket from chat.`,createdFromChat_other:`Created {{count}} tickets from chat.`},errors:{loadSessions:`Unable to load chat sessions right now.`,loadSession:`Unable to load the chat session right now.`,loadMemorySuggestions:`Unable to load chat memory suggestions right now.`,restoreTarget:`Unable to restore the chat target right now.`,updateMode:`Unable to update the chat mode right now.`,interruptResponse:`Unable to interrupt the chat response right now.`,deleteSession:`Unable to delete the chat session right now.`,uploadAttachments:`Unable to upload images right now.`,removeAttachment:`Unable to remove the image right now.`,sendPrompt:`Unable to send the chat prompt right now.`,createTickets:`Unable to create tickets from the chat proposal right now.`},composer:{newChatTitle:`New chat`,chatTitle:`Chat`,loadingMemory:`Loading memory...`,memorySuggestions:`Memory suggestions`,switchBack:`Switch back`,noSessionSelectedTitle:`No session selected`,noSessionSelectedDescription:`Select a chat session to restore its saved target, or start a new session on the current target.`,startNewSession:`Start new session`,loadingSession:`Loading chat session...`,openDiff:`Open diff`,resizeDiffPanel:`Resize diff panel`,diff:`Diff`,memorySuggestionsTitle:`Memory suggestions`,memorySuggestionsDescription:`Review pending suggestions from this chat before saving them into project memory.`,memorySuggestionsEmpty:`No pending memory suggestions for this chat session.`,closeMemorySuggestions:`Close memory suggestions`},review:{missingTarget:`Open or create a chat session to send review comments.`,unavailableTarget:`Target unavailable for this chat session.`,restoreTargetFallback:`Restore the session target to continue.`,waitTurn:`Wait for the current chat turn to finish before sending review comments.`,waitUpload:`Wait for the current image upload to finish before sending this turn.`,waitPrompt:`Wait for the current chat prompt to finish sending before submitting review comments.`,waitTurnShort:`Wait for the current chat turn to finish.`,mismatchReason:`This session targets {{sessionTarget}}, but the current target is {{currentTarget}}. Restore the session target to continue.`,interrupting:`Interrupting...`,interrupt:`Interrupt`}},specView:{errors:{loadSessions:`Unable to load spec sessions right now.`,loadSession:`Unable to load the spec session right now.`,stopSession:`Unable to interrupt the spec response right now.`,deleteSession:`Unable to delete the spec session right now.`,sendPrompt:`Unable to send the spec prompt right now.`,upload:`Unable to upload images right now.`,removeAttachment:`Unable to remove the image right now.`,initialSessionMissing:`Spec no longer exists.`},composer:{placeholderSpec:`Describe the feature you want to plan...`,describeFeature:`Describe the feature, architecture, or changes you want to spec out.`,waitTurn:`Wait for the current spec turn to finish.`,waitUpload:`Wait for the current image upload to finish.`,stop:`Stop`,interrupt:`Interrupt`,interrupting:`Interrupting...`,noSessionSelectedTitle:`No spec session selected`,noSessionSelectedDescription:`Select a spec session or start a new one to plan features.`,startNewSession:`Start new spec`,loadingSession:`Loading spec session...`,newSpecTitle:`New spec`,specTitle:`Spec`},sidebar:{ariaLabel:`Spec sessions sidebar`,newSession:`New spec`,select:`Select`,cancelSelection:`Cancel`,deleteSelected:`Delete selected`,collapseAriaLabel:`Collapse sessions panel`,openAriaLabel:`Open sessions panel`,loadingSessions:`Loading spec sessions...`,noSessions:`No spec sessions yet.`,deleteSessionAriaLabel:`Delete spec session`,deleteSessionTitle:`Delete {{title}}`,selectSessionAriaLabel:`Select {{title}}`,selectSessionTitle:`Select {{title}}`,cannotDeleteRunning:`Wait for the current spec response to finish before deleting this session.`,newSessionTooltip:`Start a new spec session`,interrupted:`Interrupted`,linkedImplementationsTooltip:`{{ticketCount}} ticket(s), {{chatCount}} chat session(s) from this spec`,linkedImplementationsAriaLabel:`{{itemCount}} linked implementation(s)`},deleteModal:{title:`Delete spec session`,bulkTitle:`Delete spec sessions`,description:`This permanently removes the transcript history for this spec session.`,bulkDescription_one:`This permanently removes transcript history for the selected spec session.`,bulkDescription_other:`This permanently removes transcript history for {{count}} spec sessions.`,delete:`Delete`,cancel:`Cancel`,deleting:`Deleting...`},toasts:{deleteSelectedSuccess_one:`Deleted {{count}} spec session.`,deleteSelectedSuccess_other:`Deleted {{count}} spec sessions.`},artifactPanel:{title:`Spec Artifact`,open:`Open artifacts`,resize:`Resize artifact panel`,close:`Close artifact panel`,summary:`Summary`,visualization:`Visualization`,likelyFiles:`Likely Files`,proposedTickets:`Proposed Tickets`,dependencies:`Dependencies`,openQuestions:`Open Questions`,assumptions:`Assumptions`,noSnapshot:`Run a spec turn to generate an artifact.`,noDiagram:`No diagram available for this spec.`,mermaidParseError:`Unable to render this Mermaid graph; showing raw text instead.`,uiMockup:`UI Mockup`,noMockup:`No UI mockup available for this spec.`,loading:`Loading artifact...`},actions:{createTickets:`Create tickets`,ticketsCreated:`Tickets created`,creatingTickets:`Creating tickets...`,implementInChat:`Implement in Chat`,startingImplementation:`Starting implementation...`,exportSpec:`Export to docs/plans`,exportingSpec:`Exporting...`,createTicketsSuccess:`Created {{count}} ticket(s) from this spec.`,exportSuccess:`Exported spec to docs/plans.`,exportConflictTitle:`Export already exists`,exportConflictDescription:`A spec with this title has already been exported to {{path}}. Rename the session first.`,exportConflictDismiss:`Got it`},provenance:{viewSourceSpec:`View source spec`},grill:{toggleTooltip:`Grill mode: pressure-test the plan one focused question at a time before writing the spec. Click again to end grilling and write the full plan.`,toggleAriaLabelOn:`Turn Grill mode off (currently on)`,toggleAriaLabelOff:`Turn Grill mode on`,rationaleLabel:`Why`,suggestionsLabel:`Suggested answers`,recommendedSuggestionLabel:`Recommended`,answerPlaceholder:`Type your answer, or pick a suggestion above to fill this field...`,submitLabel:`Submit answer`,submittingLabel:`Submitting...`,historicalAnswerLabel:`Your answer`,noAnswerLabel:`No answer recorded for this question.`,finalizePrompt:`Grilling ended. Write the complete concrete plan now using everything we discussed.`,finalizeError:`Unable to finalize grilling right now.`,updateModeError:`Unable to change Grill mode right now.`,activeDisabledReason:`Wait for the current spec turn to finish before toggling Grill.`}},conversationPane:{agentActivityAriaLabel:`Agent activity indicator`,agentWorkingSrText:`Agent is working`,agentError:`Agent error`,statusWorking:`Working...`,statusInterrupted:`Interrupted`,loadingConversation:`Loading conversation...`,noMessagesYet:`No messages yet.`,attachmentPreviewAlt:`Attached image: {{name}}`,showThinkingAriaLabel:`Show thinking`,showThinkingLabel:`Show thinking`,sectionAriaLabel:`Ticket conversation`,contentAriaLabel:`Ticket conversation content`},promptComposer:{followUpPromptAriaLabel:`Follow-up prompt`,sendingPromptAriaLabel:`Sending prompt`,sendPromptAriaLabel:`Send prompt`,attachImageAriaLabel:`Attach images`,uploadingImageAriaLabel:`Uploading images`,removeAttachmentAriaLabel:`Remove {{name}}`,attachmentPreviewAlt:`Selected image: {{name}}`},attachmentPreviewDialog:{title:`Image preview: {{name}}`,description:`Preview the attached image {{name}}.`,imageAlt:`Preview image: {{name}}`,previewImageAriaLabel:`Preview image: {{name}}`,openInNewTab:`Open in new tab`,closeAriaLabel:`Close image preview`},mermaidPreviewDialog:{title:`Diagram Preview`,description:`Preview the spec diagram in full screen.`,closeAriaLabel:`Close diagram preview`,clickToExpand:`Click to expand diagram`},mockupPreviewDialog:{title:`UI Mockup Preview`,description:`Preview the UI mockup in full screen.`,closeAriaLabel:`Close UI mockup preview`,clickToExpand:`Click to expand UI mockup`},workspaceControls:{changes:`Changes`,tests:`Tests`,openIde:`Open IDE`,terminal:`Terminal`,chat:`Chat`,close:`Close`,openTerminalAriaLabel:`Open terminal`,hideTerminalAriaLabel:`Hide terminal`,terminalTitle:`Terminal`,ticketMetadataAriaLabel:`Ticket metadata`},ticketModal:{loadingDiff:`Loading diff...`,planningChatAriaLabel:`Planning chat`,planningChatTitle:`Planning Chat`,closePlanningChatAriaLabel:`Close planning chat`,planningOpenQuestions_one:`{{count}} open question`,planningOpenQuestions_other:`{{count}} open questions`,planningFollowUpPlaceholder:`Ask the agent to refine this plan`,followUpPlanPlaceholder:`Ask a question about this implementation`,ticketChatAriaLabel:`Ticket chat`,ticketChatTitle:`Ticket Chat`,closeTicketChatAriaLabel:`Close ticket chat`,planningFailedPrefix:`Planning failed: `,openQuestionsBadge:`Open questions`,ticketTerminalAriaLabel:`Ticket terminal`,discardUnsavedTitle:`Discard unsaved edits?`,discardUnsavedDescription:`Any changes made will be lost.`,discardUnsavedConfirm:`Discard`,discardUnsavedCancel:`Keep editing`},ticketChangesModal:{pushBranch:`Push branch`,pushing:`Pushing...`,morePushActions:`More push actions`,forcePushWithLease:`Force push with lease`,forcePushing:`Force pushing...`,loadingPullRequest:`Loading PR...`,checkingPullRequest:`Checking PR...`,createPullRequest:`Create PR`,createPullRequestTitle:`Create pull request`,createPullRequestFallbackError:`Unable to create the pull request right now.`,pullRequestCreated:`Pull request created.`,pullRequestFieldTitle:`Title`,pullRequestFieldBaseBranch:`Base branch`,pullRequestFieldDescription:`Description`,pullRequestTitlePlaceholder:`Pull request title`,pullRequestBaseBranchDescription:`Optional. Leave blank to use the repository default branch.`,pullRequestBaseBranchPlaceholder:`main`,pullRequestDescriptionPlaceholder:`Summarize the changes for reviewers.`,creatingPullRequest:`Creating PR...`,creating:`Creating...`,generatingDescription:`Generating...`,generateDescription:`Generate`,branchUnavailable:`Branch information is not available right now.`,branchPushed:`Branch pushed.`,pushCompleted:`Push completed.`,branchForcePushed:`Branch force-pushed.`,forcePushCompleted:`Force push completed.`,pushFallbackError:`Unable to push the branch right now.`,forcePushFallbackError:`Unable to force-push the branch right now.`,viewSourceSpec:`View source spec`},bundleDetailsModal:{bundleTerminalAriaLabel:`Bundle terminal`},projectFooter:{detachedHead:`Detached HEAD`,unknownBranch:`Unknown branch`,branchActions:`Branch actions`,currentTargetActions:`Current target actions`,pull:`Pull`,pulling:`Pulling...`,sync:`Sync`,syncing:`Syncing...`,rebase:`Rebase`,rebaseOnto:`Rebase onto {{branch}}`,rebasing:`Rebasing...`,abortMerge:`Abort merge`,abortRebase:`Abort rebase`,aborting:`Aborting...`,branchSynced:`Project branch synced.`,branchUpdated:`Project branch updated.`,branchRebased:`Branch rebased.`,branchRebasedOnto:`Branch rebased onto {{branch}}.`,gitOperationAborted:`Git operation aborted.`,syncFallbackError:`Unable to sync the current branch right now.`,rebaseFallbackError:`Unable to rebase the current branch right now.`,abortFallbackError:`Unable to abort the current git operation right now.`,run:`Run`,stop:`Stop`,selectProjectFirst:`Select a project first.`,addRunConfig:`Add a Run config in project settings to enable selected-target runs.`,loadingProjectStatus:`Loading project status...`,stopSelectedTargetRun:`Stop the currently running selected-target run before starting another run.`,stopTicketBeforeSelectedTargetRun:`Stop the currently running ticket before starting the selected target run.`},testsDialog:{status:{passed:`Passed`,failed:`Failed`,running:`Running`,error:`Error`,stopped:`Stopped`,idle:`Idle`},selection:{noRunYet:`No test run yet`,allTests:`All tests`},actions:{run:`Run`,stop:`Stop`},caseRow:{runAriaLabel:`Run {{name}}`},fileRow:{expandAriaLabel:`Expand {{path}}`,collapseAriaLabel:`Collapse {{path}}`,runAriaLabel:`Run {{path}}`,testCount_one:`{{count}} test`,testCount_other:`{{count}} tests`,noNamedTests:`No named tests were detected in this file.`},scope:{label:`Test scope`,selectedCommandAriaLabel:`Selected test command`,selectTestScope:`Select test scope`,fullSuiteOnlyNotice:`This scope supports full-suite runs only, so file and case selection is disabled.`},filter:{placeholder:`Filter`,ariaLabel:`Filter test cases`,clearAriaLabel:`Clear test case filter`},discovery:{noCommands:`No test commands are configured for this target yet.`,fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`,caseCount_one:`{{count}} test case`,caseCount_other:`{{count}} test cases`,noFilesDetected:`No JS or TS test files were detected for this target yet.`,noFilterMatches:`No test cases match this filter.`},summaryCounts:{failed:`failed`,passed:`passed`,filesFailed:`files failed`,filesPassed:`files passed`},output:{trimmed:`Output trimmed to recent logs`,ariaLabel:`Test output`,empty:`No test output yet.`},messages:{loadRunnerError:`Unable to load the test runner right now.`,discoverError:`Unable to discover tests right now.`,startError:`Unable to start the selected tests right now.`,stopError:`Unable to stop the test run right now.`},dialog:{srTitle:`Tests`,srDescription:`Run configured tests for the selected project target and discard the session when this dialog closes.`,title:`Tests`,preparingTarget:`Preparing target...`,closeAriaLabel:`Close modal`},closeConfirmation:{title:`Stop test run and close?`,description:`Closing the Tests dialog discards the current session and its output. Stop the active test run first?`,keepRunning:`Keep running`,stopAndClose:`Stop and close`}},planningAgentSidebar:{runStatus:{planning:`Planning...`,done:`Done`,failed:`Failed`},runSummary:{tickets:`{{count}} tickets`,dependencies:`{{count}} dependencies`,openQuestions_one:`{{count}} open question`,openQuestions_other:`{{count}} open questions`},actions:{planTickets:`Plan tickets`,openAriaLabel:`Open planning agent`,closeAriaLabel:`Close planning agent`,closePanelAriaLabel:`Close planning agent panel`,manageBundles:`Manage bundles`},tooltip:`Planning agent`,ariaLabel:`Planning agent sidebar`,title:`Planning agent`,description:`Turn a larger initiative into plan-stage tickets with dependencies and bundle context.`,descriptionLabel:`Description`,descriptionAriaLabel:`Planning description`,descriptionPlaceholder:`Describe the task, acceptance criteria, context...`,autoCreateBundle:`Auto-create bundle`,activeRuns:`Active planning runs`,recentRuns:`Recent runs`},reviewFollowUpBubble:{finding:`Finding {{count}}`,externalFix:`External fix {{count}}`,previewComment:`Preview comment {{count}}`,comment:`Comment {{count}}`,unknownTarget:`Unknown target`,textLabel:`Text`,hrefLabel:`Href`,srcLabel:`Src`,changedLineLabel:`Changed line`,selectedFixes:`Selected fixes`,fixCount_one:`{{count}} fix`,fixCount_other:`{{count}} fixes`,locationFile_one:`{{count}} file`,locationFile_other:`{{count}} files`,locationPage_one:`{{count}} page`,locationPage_other:`{{count}} pages`,locationTarget_one:`{{count}} target`,locationTarget_other:`{{count}} targets`,showRawPrompt:`Show raw prompt`,hideRawPrompt:`Hide raw prompt`,rawPrompt:`Raw prompt`},githubCommentMarkdown:{suggestionLabel:`Suggested change`},ticketStaticDescription:{ariaLabel:`Ticket description`,title:`Description`},ticketDependencyDetails:{blocksTitle:`Blocks`,buildReadinessAriaLabel:`Build readiness`,buildReadinessTitle:`Build readiness`,ready:`Ready`,blocked:`Blocked`,summaryReady:`All blockers have finished build.`,summaryBlocked_one:`{{count}} blocker is still waiting on build.`,summaryBlocked_other:`{{count}} blockers are still waiting on build.`,buildDone:`Build done`,waitingOnBuild:`Waiting on build`,remove:`Remove`,dependencyDetails:`Dependency details`,show:`Show`,hide:`Hide`,unknownTicket:`Unknown ticket`},ticketBuildChainPreview:{ariaLabel:`Build chain`,title:`Build chain`},runControl:{stopAriaLabel:`Stop`,stoppingAriaLabel:`Stopping run`,stoppingTitle:`Stopping run...`,stop:`Stop`,runAriaLabel:`Run`,startingAriaLabel:`Starting run`,startingTitle:`Starting run...`,run:`Run`,disabledReason:`Stop the currently running ticket before starting another run.`},ticketChangesCommitPanel:{title:`Commit selected files`,selectedFiles_one:`{{count}} file selected`,selectedFiles_other:`{{count}} files selected`,commitMessageAriaLabel:`Commit message`,commitMessagePlaceholder:`Commit message`,generateCommitMessageAriaLabel:`Generate commit message`,generating:`Generating...`,generate:`Generate`,committing:`Committing...`,commit:`Commit`},ticketChangesCommitsPanel:{triggerLabel:`Local commits`,description:`Review what will be pushed from this branch.`,loading:`Loading branch commits...`,undoing:`Undoing...`,undoLatestCommit:`Undo latest commit`},chatChangesPanel:{unknownFile:`Unknown file`,picker:{diff:`Diff`,file:`File`,allChanges:`All changes`,openChangedFilesAriaLabel:`Open changed files`,fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`,title:`Changed files`,allChangesDescription:`Review the full workspace diff.`},fileStatus:{modified:`Modified`,added:`Added`,deleted:`Deleted`,renamed:`Renamed`,untracked:`Untracked`,typechanged:`Type changed`,staged:`Staged`,unstaged:`Unstaged`,conflicted:`Conflicted`,renamedFrom:`from {{path}}`},errors:{loadDiff:`Unable to load the diff right now.`,sendChanges:`Unable to send the changes right now.`},toasts:{sendChangesSuccess:`Changes sent to chat.`},closeAriaLabel:`Close diff panel`,emptyStateTitle:`No uncommitted changes.`,emptyStateDescription:`The current project branch is clean.`},pendingFixesPopover:{triggerLabel:`Pending fixes`,title:`Pending fixes`,description:`Review selected comments and findings before sending them back to the agent.`,empty:`No pending fixes selected yet.`,manualCommentTitle:`Manual comment`,manualBadge:`Manual`,findingTitle:`Finding {{ordinal}}`,githubReviewSummary:`GitHub review summary`,githubReviewComment:`GitHub review comment`,clear:`Clear`,sending:`Sending...`,sendFixes:`Send fixes ({{count}})`,lineReference:{oldAndNew:`old {{oldLine}}, new {{newLine}}`,newOnly:`new {{newLine}}`,oldOnly:`old {{oldLine}}`,unavailable:`line unavailable`}},ticketChangesDiffPanel:{stats:{fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`},reviewComment:{manualBadge:`Manual`,commentOnLine:`Comment on line {{lineNumber}}`,addCommentToLine:`Add a comment to line {{lineNumber}}`,ariaLabel:`Review comment for {{filePath}}`,placeholder:`Add a review comment for this change`,edit:`Edit`,remove:`Remove`,add:`Add comment`,cancel:`Cancel`},lineReference:{oldAndNew:`old {{oldLine}}, new {{newLine}}`,newOnly:`new {{newLine}}`,oldOnly:`old {{oldLine}}`,unavailable:`line unavailable`},reviewFinding:{title:`Finding {{ordinal}}`,selected:`Selected`,fix:`Fix`,hideDetails:`Hide details`,details:`Details`,whyItMatters:`Why it matters`,requestedFix:`Requested fix`,sectionTitle:`Review findings`},githubComment:{badge:`GitHub`,reviewSummary:`Review summary`,fileComment:`File comment`,inlineComment:`Inline comment`,outdated:`Outdated`,openOnGitHub:`Open on GitHub`,sectionTitle:`GitHub review comments`},viewType:{unified:`Unified`,split:`Split`},header:{allChanges:`All changes`},states:{loading:`Loading diff...`,retry:`Retry`,emptyTitle:`No changes to show.`,noRenderableFileTitle:`No renderable diff for this file in the UI.`},fileBadge:{newFile:`New file`}}},projects:{modal:{dialogTitle:{create:`Add a repository to Archon`,edit:`Edit project settings`},dialogDescription:`Configure a project repository, setup commands, services, and IDE launch settings.`,header:{title:{create:`Add project`,edit:`Edit project settings`},description:{create:`Point Archon at a repository, then define only the behavior you want Archon to manage.`,edit:`Update how Archon prepares and opens worktrees for this repository.`},close:`Close modal`},navigation:{title:`Settings`,general:`General`,automation:`Automation`,services:`Services`,tests:`Tests`,sync:`Sync`,memory:`Memory`,integrations:`Integrations`,danger:`Danger Zone`,summary:{required:`Required`,configured:`Configured`,optional:`Optional`,none:`None`,enabled:`Enabled`,disabled:`Disabled`,loading:`Loading`,blocked:`Blocked`,ready:`Ready`,count:`{{count}}`,integrationsCount_one:`{{count}} enabled`,integrationsCount_other:`{{count}} enabled`}},sections:{general:{title:`General`,description:`Start with the repository Archon should use when it creates and manages worktrees for this project.`},automation:{title:`Automation`,description:`Configure helper defaults, setup behavior, and optional workflow rules Archon can apply to this project.`},services:{title:`Services`,description:`Add long-running commands that Archon should start automatically inside each worktree.`},tests:{title:`Tests`,description:`Store reusable test commands and let Archon detect JS and TS test files and cases for the selected target.`},sync:{title:`Sync`,description:`Define which local files Archon should copy or symlink into a worktree the first time it is created.`},memory:{title:`Memory`,description:`Turn project memory on or off and manage the saved context Archon keeps outside the repository.`},integrations:{title:`Integrations`,description:`Connect external systems that add richer context to planning, tickets, and pull requests for this project.`},danger:{title:`Danger Zone`,description:`Delete this project only after its tickets and worktrees are already gone. This action cannot be undone.`}},linkedProjects:{none:`No linked projects`,count_one:`{{count}} linked project`,count_other:`{{count}} linked projects`},repoPath:{initializable:`Archon will initialize this directory as a git repository when you create the project.`,invalid:`Repository path is not a valid git repository.`,validateFailed:`Unable to validate the repository path right now.`,browseFailed:`Unable to open the folder picker.`},autoConfig:{applied:`Auto-config applied.`,noop:`Auto-config found no empty fields to fill.`,failed:`Auto-config failed.`},validation:{projectNameRequired:`Project name is required.`,repositoryPathRequired:`Repository path is required.`,serviceCommandRequired:`A service command is required when a service row has values.`,syncSourceRequired:`A source path is required when a sync row has values.`,testCommandRequired:`A test command is required when a test row has values.`,previewServiceRequired:`Choose a named service before enabling preview.`},actions:{cancel:`Cancel`,createProject:`Create project`,createProjectBusy:`Creating...`,saveChanges:`Save changes`,saveChangesBusy:`Saving...`}},advanced:{summary:{none:`None`,configured:`Configured`,toolDefault:`Tool default`,default:`Default`,customRules:`Custom rules`,autoParkOn:`Auto-park on`,manualOnly:`Manual only`,disabled:`Disabled`,watching:`Watching {{name}}`,commandCount_one:`{{count}} command`,commandCount_other:`{{count}} commands`,serviceCount_one:`{{count}} service`,serviceCount_other:`{{count}} services`,ruleCount_one:`{{count}} rule`,ruleCount_other:`{{count}} rules`},autoConfigPanel:{badge:`Auto-config`,description:`Inspect the repo and fill any empty setup, service, or sync fields.`,note:`Existing values stay untouched. Uses helper model if set, otherwise the selected tool's default model.`,loading:`Inspecting repo...`,action:`Auto-config`},helperModel:{title:`Helper model`,description:`Set an optional OpenCode model for auto-config and other lightweight project tasks.`},commitMessages:{title:`Commit messages`,description:`Guide auto-generated commit subjects with a project-specific style or format.`,fieldLabel:`Commit message rules`,fieldDescription:`Optional. Example: Use Conventional Commits. Format: type(scope?): subject`,ariaLabel:`Commit message rules`,placeholder:`e.g. conventional commits`},linkedProjects:{title:`Linked projects`,description:`Let Archon inspect related repos during planning when extra context helps.`,noneAvailable:`No other projects are available to link yet.`,triggerAriaLabel:`Linked projects`,selectedNone:`None`,selectedCount:`{{count}} linked`},setupCommands:{title:`Setup commands`,description:`Run these for fresh worktrees before builds, and again before Archon starts manual worktree services.`,fieldLabel:`Setup commands`,fieldDescription:`One command per line.`,ariaLabel:`Setup commands`,placeholder:`pnpm install
|
|
54
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return p.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},ko=`DialogDescriptionWarning`,Ao=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Do(ko).contentName}}.`;return p.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},jo=to,Mo=so,No=lo,Po=mo,Fo=yo,Io=xo,Lo=Co;function Ro(e){let t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function zo(e){let[t,n]=p.useState(void 0);return br(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var Bo=[`top`,`right`,`bottom`,`left`],Vo=Math.min,Ho=Math.max,Uo=Math.round,Wo=Math.floor,Go=e=>({x:e,y:e}),Ko={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function qo(e,t,n){return Ho(e,Vo(t,n))}function Jo(e,t){return typeof e==`function`?e(t):e}function Yo(e){return e.split(`-`)[0]}function Xo(e){return e.split(`-`)[1]}function Zo(e){return e===`x`?`y`:`x`}function Qo(e){return e===`y`?`height`:`width`}function $o(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function es(e){return Zo($o(e))}function ts(e,t,n){n===void 0&&(n=!1);let r=Xo(e),i=es(e),a=Qo(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=us(o)),[o,us(o)]}function ns(e){let t=us(e);return[rs(e),t,rs(t)]}function rs(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var is=[`left`,`right`],as=[`right`,`left`],os=[`top`,`bottom`],ss=[`bottom`,`top`];function cs(e,t,n){switch(e){case`top`:case`bottom`:return n?t?as:is:t?is:as;case`left`:case`right`:return t?os:ss;default:return[]}}function ls(e,t,n,r){let i=Xo(e),a=cs(Yo(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(rs)))),a}function us(e){let t=Yo(e);return Ko[t]+e.slice(t.length)}function ds(e){return{top:0,right:0,bottom:0,left:0,...e}}function fs(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ds(e)}function ps(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function ms(e,t,n){let{reference:r,floating:i}=e,a=$o(t),o=es(t),s=Qo(o),c=Yo(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Xo(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function hs(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Jo(t,e),p=fs(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=ps(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=ps(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var gs=50,_s=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:hs},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=ms(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<gs&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=ms(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},vs=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Jo(e,t)||{};if(l==null)return{};let d=fs(u),f={x:n,y:r},p=es(i),m=Qo(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Vo(d[_],T),D=Vo(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=qo(O,A,k),M=!c.arrow&&Xo(i)!=null&&A!==j&&a.reference[m]/2-(A<O?E:D)-h[m]/2<0,N=M?A<O?A-O:A-k:0;return{[p]:f[p]+N,data:{[p]:j,centerOffset:A-j-N,...M&&{alignmentOffset:N}},reset:M}}}),ys=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Jo(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Yo(r),_=$o(o),v=Yo(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[us(o)]:ns(o)),x=p!==`none`;!d&&x&&b.push(...ls(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=ts(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==$o(t))||T.every(e=>$o(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=$o(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function bs(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function xs(e){return Bo.some(t=>e[t]>=0)}var Ss=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Jo(e,t);switch(i){case`referenceHidden`:{let e=bs(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:xs(e)}}}case`escaped`:{let e=bs(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:xs(e)}}}default:return{}}}}},Cs=new Set([`left`,`top`]);async function ws(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Yo(n),s=Xo(n),c=$o(n)===`y`,l=Cs.has(o)?-1:1,u=a&&c?-1:1,d=Jo(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ts=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await ws(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Es=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Jo(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=$o(Yo(i)),p=Zo(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=qo(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=qo(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ds=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Jo(e,t),u={x:n,y:r},d=$o(i),f=Zo(d),p=u[f],m=u[d],h=Jo(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Cs.has(Yo(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Os=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Jo(e,t),u=await o.detectOverflow(t,l),d=Yo(i),f=Xo(i),p=$o(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=Vo(h-u[g],v),x=Vo(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=Ho(u.left,0),t=Ho(u.right,0),n=Ho(u.top,0),r=Ho(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:Ho(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:Ho(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function ks(){return typeof window<`u`}function As(e){return Ns(e)?(e.nodeName||``).toLowerCase():`#document`}function js(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ms(e){return((Ns(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ns(e){return ks()?e instanceof Node||e instanceof js(e).Node:!1}function Ps(e){return ks()?e instanceof Element||e instanceof js(e).Element:!1}function Fs(e){return ks()?e instanceof HTMLElement||e instanceof js(e).HTMLElement:!1}function Is(e){return!ks()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof js(e).ShadowRoot}function Ls(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Js(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Rs(e){return/^(table|td|th)$/.test(As(e))}function zs(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Bs=/transform|translate|scale|rotate|perspective|filter/,Vs=/paint|layout|strict|content/,Hs=e=>!!e&&e!==`none`,Us;function Ws(e){let t=Ps(e)?Js(e):e;return Hs(t.transform)||Hs(t.translate)||Hs(t.scale)||Hs(t.rotate)||Hs(t.perspective)||!Ks()&&(Hs(t.backdropFilter)||Hs(t.filter))||Bs.test(t.willChange||``)||Vs.test(t.contain||``)}function Gs(e){let t=Xs(e);for(;Fs(t)&&!qs(t);){if(Ws(t))return t;if(zs(t))return null;t=Xs(t)}return null}function Ks(){return Us??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Us}function qs(e){return/^(html|body|#document)$/.test(As(e))}function Js(e){return js(e).getComputedStyle(e)}function Ys(e){return Ps(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Xs(e){if(As(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Is(e)&&e.host||Ms(e);return Is(t)?t.host:t}function Zs(e){let t=Xs(e);return qs(t)?e.ownerDocument?e.ownerDocument.body:e.body:Fs(t)&&Ls(t)?t:Zs(t)}function Qs(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Zs(e),i=r===e.ownerDocument?.body,a=js(r);if(i){let e=$s(a);return t.concat(a,a.visualViewport||[],Ls(r)?r:[],e&&n?Qs(e):[])}else return t.concat(r,Qs(r,[],n))}function $s(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ec(e){let t=Js(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Fs(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Uo(n)!==a||Uo(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function tc(e){return Ps(e)?e:e.contextElement}function nc(e){let t=tc(e);if(!Fs(t))return Go(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=ec(t),o=(a?Uo(n.width):n.width)/r,s=(a?Uo(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var rc=Go(0);function ic(e){let t=js(e);return!Ks()||!t.visualViewport?rc:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ac(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==js(e)?!1:t}function oc(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=tc(e),o=Go(1);t&&(r?Ps(r)&&(o=nc(r)):o=nc(e));let s=ac(a,n,r)?ic(a):Go(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=js(a),t=r&&Ps(r)?js(r):r,n=e,i=$s(n);for(;i&&r&&t!==n;){let e=nc(i),t=i.getBoundingClientRect(),r=Js(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=js(i),i=$s(n)}}return ps({width:u,height:d,x:c,y:l})}function sc(e,t){let n=Ys(e).scrollLeft;return t?t.left+n:oc(Ms(e)).left+n}function cc(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-sc(e,n),y:n.top+t.scrollTop}}function lc(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Ms(r),s=t?zs(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Go(1),u=Go(0),d=Fs(r);if((d||!d&&!a)&&((As(r)!==`body`||Ls(o))&&(c=Ys(r)),d)){let e=oc(r);l=nc(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?cc(o,c):Go(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function uc(e){return Array.from(e.getClientRects())}function dc(e){let t=Ms(e),n=Ys(e),r=e.ownerDocument.body,i=Ho(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Ho(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+sc(e),s=-n.scrollTop;return Js(r).direction===`rtl`&&(o+=Ho(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var fc=25;function pc(e,t){let n=js(e),r=Ms(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Ks();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=sc(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=fc&&(a-=o)}else l<=fc&&(a+=l);return{width:a,height:o,x:s,y:c}}function mc(e,t){let n=oc(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Fs(e)?nc(e):Go(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function hc(e,t,n){let r;if(t===`viewport`)r=pc(e,n);else if(t===`document`)r=dc(Ms(e));else if(Ps(t))r=mc(t,n);else{let n=ic(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return ps(r)}function gc(e,t){let n=Xs(e);return n===t||!Ps(n)||qs(n)?!1:Js(n).position===`fixed`||gc(n,t)}function _c(e,t){let n=t.get(e);if(n)return n;let r=Qs(e,[],!1).filter(e=>Ps(e)&&As(e)!==`body`),i=null,a=Js(e).position===`fixed`,o=a?Xs(e):e;for(;Ps(o)&&!qs(o);){let t=Js(o),n=Ws(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Ls(o)&&!n&&gc(e,o))?r=r.filter(e=>e!==o):i=t,o=Xs(o)}return t.set(e,r),r}function vc(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?zs(t)?[]:_c(t,this._c):[].concat(n),r],o=hc(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=hc(t,a[e],i);s=Ho(n.top,s),c=Vo(n.right,c),l=Vo(n.bottom,l),u=Ho(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function yc(e){let{width:t,height:n}=ec(e);return{width:t,height:n}}function bc(e,t,n){let r=Fs(t),i=Ms(t),a=n===`fixed`,o=oc(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Go(0);function l(){c.x=sc(i)}if(r||!r&&!a)if((As(t)!==`body`||Ls(i))&&(s=Ys(t)),r){let e=oc(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?cc(i,s):Go(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function xc(e){return Js(e).position===`static`}function Sc(e,t){if(!Fs(e)||Js(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Ms(e)===n&&(n=n.ownerDocument.body),n}function Cc(e,t){let n=js(e);if(zs(e))return n;if(!Fs(e)){let t=Xs(e);for(;t&&!qs(t);){if(Ps(t)&&!xc(t))return t;t=Xs(t)}return n}let r=Sc(e,t);for(;r&&Rs(r)&&xc(r);)r=Sc(r,t);return r&&qs(r)&&xc(r)&&!Ws(r)?n:r||Gs(e)||n}var wc=async function(e){let t=this.getOffsetParent||Cc,n=this.getDimensions,r=await n(e.floating);return{reference:bc(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Tc(e){return Js(e).direction===`rtl`}var Ec={convertOffsetParentRelativeRectToViewportRelativeRect:lc,getDocumentElement:Ms,getClippingRect:vc,getOffsetParent:Cc,getElementRects:wc,getClientRects:uc,getDimensions:yc,getScale:nc,isElement:Ps,isRTL:Tc};function Dc(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Oc(e,t){let n=null,r,i=Ms(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=Wo(d),h=Wo(i.clientWidth-(u+f)),g=Wo(i.clientHeight-(d+p)),_=Wo(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Ho(0,Vo(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Dc(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function kc(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=tc(e),u=i||a?[...l?Qs(l):[],...t?Qs(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Oc(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?oc(e):null;c&&g();function g(){let t=oc(e);h&&!Dc(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Ac=Ts,jc=Es,Mc=ys,Nc=Os,Pc=Ss,Fc=vs,Ic=Ds,Lc=(e,t,n)=>{let r=new Map,i={platform:Ec,...n},a={...i.platform,_c:r};return _s(e,t,{...i,platform:a})},Rc=typeof document<`u`?p.useLayoutEffect:function(){};function zc(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!zc(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!zc(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Bc(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Vc(e,t){let n=Bc(e);return Math.round(t*n)/n}function Hc(e){let t=p.useRef(e);return Rc(()=>{t.current=e}),t}function Uc(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=p.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,h]=p.useState(r);zc(f,r)||h(r);let[g,_]=p.useState(null),[v,y]=p.useState(null),b=p.useCallback(e=>{e!==w.current&&(w.current=e,_(e))},[]),x=p.useCallback(e=>{e!==T.current&&(T.current=e,y(e))},[]),S=a||g,C=o||v,w=p.useRef(null),T=p.useRef(null),E=p.useRef(u),D=c!=null,O=Hc(c),k=Hc(i),A=Hc(l),j=p.useCallback(()=>{if(!w.current||!T.current)return;let e={placement:t,strategy:n,middleware:f};k.current&&(e.platform=k.current),Lc(w.current,T.current,e).then(e=>{let t={...e,isPositioned:A.current!==!1};M.current&&!zc(E.current,t)&&(E.current=t,m.flushSync(()=>{d(t)}))})},[f,t,n,k,A]);Rc(()=>{l===!1&&E.current.isPositioned&&(E.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let M=p.useRef(!1);Rc(()=>(M.current=!0,()=>{M.current=!1}),[]),Rc(()=>{if(S&&(w.current=S),C&&(T.current=C),S&&C){if(O.current)return O.current(S,C,j);j()}},[S,C,j,O,D]);let N=p.useMemo(()=>({reference:w,floating:T,setReference:b,setFloating:x}),[b,x]),P=p.useMemo(()=>({reference:S,floating:C}),[S,C]),F=p.useMemo(()=>{let e={position:n,left:0,top:0};if(!P.floating)return e;let t=Vc(P.floating,u.x),r=Vc(P.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...Bc(P.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,P.floating,u.x,u.y]);return p.useMemo(()=>({...u,update:j,refs:N,elements:P,floatingStyles:F}),[u,j,N,P,F])}var Wc=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Fc({element:r.current,padding:i}).fn(n):r?Fc({element:r,padding:i}).fn(n):{}}}},Gc=(e,t)=>{let n=Ac(e);return{name:n.name,fn:n.fn,options:[e,t]}},Kc=(e,t)=>{let n=jc(e);return{name:n.name,fn:n.fn,options:[e,t]}},qc=(e,t)=>({fn:Ic(e).fn,options:[e,t]}),Jc=(e,t)=>{let n=Mc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Yc=(e,t)=>{let n=Nc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Xc=(e,t)=>{let n=Pc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Zc=(e,t)=>{let n=Wc(e);return{name:n.name,fn:n.fn,options:[e,t]}},Qc=`Arrow`,$c=p.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,Y.jsx)(lr.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,Y.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});$c.displayName=Qc;var el=$c,tl=`Popper`,[nl,rl]=gr(tl),[il,al]=nl(tl),ol=e=>{let{__scopePopper:t,children:n}=e,[r,i]=p.useState(null);return(0,Y.jsx)(il,{scope:t,anchor:r,onAnchorChange:i,children:n})};ol.displayName=tl;var sl=`PopperAnchor`,cl=p.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=al(sl,n),o=p.useRef(null),s=er(t,o),c=p.useRef(null);return p.useEffect(()=>{let e=c.current;c.current=r?.current||o.current,e!==c.current&&a.onAnchorChange(c.current)}),r?null:(0,Y.jsx)(lr.div,{...i,ref:s})});cl.displayName=sl;var ll=`PopperContent`,[ul,dl]=nl(ll),fl=p.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:m=`optimized`,onPlaced:h,...g}=e,_=al(ll,n),[v,y]=p.useState(null),b=er(t,e=>y(e)),[x,S]=p.useState(null),C=zo(x),w=C?.width??0,T=C?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},O=Array.isArray(l)?l:[l],k=O.length>0,A={padding:D,boundary:O.filter(gl),altBoundary:k},{refs:j,floatingStyles:M,placement:N,isPositioned:P,middlewareData:F}=Uc({strategy:`fixed`,placement:E,whileElementsMounted:(...e)=>kc(...e,{animationFrame:m===`always`}),elements:{reference:_.anchor},middleware:[Gc({mainAxis:i+T,alignmentAxis:o}),c&&Kc({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?qc():void 0,...A}),c&&Jc({...A}),Yc({...A,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),x&&Zc({element:x,padding:s}),_l({arrowWidth:w,arrowHeight:T}),f&&Xc({strategy:`referenceHidden`,...A})]}),[I,L]=vl(N),R=Xr(h);br(()=>{P&&R?.()},[P,R]);let z=F.arrow?.x,B=F.arrow?.y,V=F.arrow?.centerOffset!==0,[H,ee]=p.useState();return br(()=>{v&&ee(window.getComputedStyle(v).zIndex)},[v]),(0,Y.jsx)(`div`,{ref:j.setFloating,"data-radix-popper-content-wrapper":``,style:{...M,transform:P?M.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:H,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(` `),...F.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,Y.jsx)(ul,{scope:n,placedSide:I,onArrowChange:S,arrowX:z,arrowY:B,shouldHideArrow:V,children:(0,Y.jsx)(lr.div,{"data-side":I,"data-align":L,...g,ref:b,style:{...g.style,animation:P?void 0:`none`}})})})});fl.displayName=ll;var pl=`PopperArrow`,ml={top:`bottom`,right:`left`,bottom:`top`,left:`right`},hl=p.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=dl(pl,n),a=ml[i.placedSide];return(0,Y.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,Y.jsx)(el,{...r,ref:t,style:{...r.style,display:`block`}})})});hl.displayName=pl;function gl(e){return e!==null}var _l=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=vl(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function vl(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var yl=ol,bl=cl,xl=fl,Sl=hl,Cl=`rovingFocusGroup.onEntryFocus`,wl={bubbles:!1,cancelable:!0},Tl=`RovingFocusGroup`,[El,Dl,Ol]=vr(Tl),[kl,Al]=gr(Tl,[Ol]),[jl,Ml]=kl(Tl),Nl=p.forwardRef((e,t)=>(0,Y.jsx)(El.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,Y.jsx)(El.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,Y.jsx)(Pl,{...e,ref:t})})}));Nl.displayName=Tl;var Pl=p.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=p.useRef(null),m=er(t,f),h=Yr(a),[g,_]=Sr({prop:o,defaultProp:s??null,onChange:c,caller:Tl}),[v,y]=p.useState(!1),b=Xr(l),x=Dl(n),S=p.useRef(!1),[C,w]=p.useState(0);return p.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(Cl,b),()=>e.removeEventListener(Cl,b)},[b]),(0,Y.jsx)(jl,{scope:n,orientation:r,dir:h,loop:i,currentTabStopId:g,onItemFocus:p.useCallback(e=>_(e),[_]),onItemShiftTab:p.useCallback(()=>y(!0),[]),onFocusableItemAdd:p.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:p.useCallback(()=>w(e=>e-1),[]),children:(0,Y.jsx)(lr.div,{tabIndex:v||C===0?-1:0,"data-orientation":r,...d,ref:m,style:{outline:`none`,...e.style},onMouseDown:yr(e.onMouseDown,()=>{S.current=!0}),onFocus:yr(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(Cl,wl);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);Bl([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),u)}}S.current=!1}),onBlur:yr(e.onBlur,()=>y(!1))})})}),Fl=`RovingFocusGroupItem`,Il=p.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=Mr(),l=a||c,u=Ml(Fl,n),d=u.currentTabStopId===l,f=Dl(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=u;return p.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,Y.jsx)(El.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,Y.jsx)(lr.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:yr(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:yr(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:yr(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=zl(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?Vl(n,r+1):n.slice(r+1)}setTimeout(()=>Bl(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:g!=null}):o})})});Il.displayName=Fl;var Ll={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Rl(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function zl(e,t,n){let r=Rl(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Ll[r]}function Bl(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Vl(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Hl=Nl,Ul=Il,Wl=[`Enter`,` `],Gl=[`ArrowDown`,`PageUp`,`Home`],Kl=[`ArrowUp`,`PageDown`,`End`],ql=[...Gl,...Kl],Jl={ltr:[...Wl,`ArrowRight`],rtl:[...Wl,`ArrowLeft`]},Yl={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},Xl=`Menu`,[Zl,Ql,$l]=vr(Xl),[eu,tu]=gr(Xl,[$l,rl,Al]),nu=rl(),ru=Al(),[iu,au]=eu(Xl),[ou,su]=eu(Xl),cu=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=nu(t),[c,l]=p.useState(null),u=p.useRef(!1),d=Xr(a),f=Yr(i);return p.useEffect(()=>{let e=()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),(0,Y.jsx)(yl,{...s,children:(0,Y.jsx)(iu,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,Y.jsx)(ou,{scope:t,onClose:p.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};cu.displayName=Xl;var lu=`MenuAnchor`,uu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=nu(n);return(0,Y.jsx)(bl,{...i,...r,ref:t})});uu.displayName=lu;var du=`MenuPortal`,[fu,pu]=eu(du,{forceMount:void 0}),mu=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=au(du,t);return(0,Y.jsx)(fu,{scope:t,forceMount:n,children:(0,Y.jsx)(Er,{present:n||a.open,children:(0,Y.jsx)(Oi,{asChild:!0,container:i,children:r})})})};mu.displayName=du;var hu=`MenuContent`,[gu,_u]=eu(hu),vu=p.forwardRef((e,t)=>{let n=pu(hu,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=au(hu,e.__scopeMenu),o=su(hu,e.__scopeMenu);return(0,Y.jsx)(Zl.Provider,{scope:e.__scopeMenu,children:(0,Y.jsx)(Er,{present:r||a.open,children:(0,Y.jsx)(Zl.Slot,{scope:e.__scopeMenu,children:o.modal?(0,Y.jsx)(yu,{...i,ref:t}):(0,Y.jsx)(bu,{...i,ref:t})})})})}),yu=p.forwardRef((e,t)=>{let n=au(hu,e.__scopeMenu),r=p.useRef(null),i=er(t,r);return p.useEffect(()=>{let e=r.current;if(e)return Ya(e)},[]),(0,Y.jsx)(Su,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:yr(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),bu=p.forwardRef((e,t)=>{let n=au(hu,e.__scopeMenu);return(0,Y.jsx)(Su,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),xu=tr(`MenuContent.ScrollLock`),Su=p.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:m,disableOutsideScroll:h,...g}=e,_=au(hu,n),v=su(hu,n),y=nu(n),b=ru(n),x=Ql(n),[S,C]=p.useState(null),w=p.useRef(null),T=er(t,w,_.onContentChange),E=p.useRef(0),D=p.useRef(``),O=p.useRef(0),k=p.useRef(null),A=p.useRef(`right`),j=p.useRef(0),M=h?Ba:p.Fragment,N=h?{as:xu,allowPinchZoom:!0}:void 0,P=e=>{let t=D.current+e,n=x().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=od(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){D.current=t,window.clearTimeout(E.current),t!==``&&(E.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};p.useEffect(()=>()=>window.clearTimeout(E.current),[]),Ai();let F=p.useCallback(e=>A.current===k.current?.side&&cd(e,k.current?.area),[]);return(0,Y.jsx)(gu,{scope:n,searchRef:D,onItemEnter:p.useCallback(e=>{F(e)&&e.preventDefault()},[F]),onItemLeave:p.useCallback(e=>{F(e)||(w.current?.focus(),C(null))},[F]),onTriggerLeave:p.useCallback(e=>{F(e)&&e.preventDefault()},[F]),pointerGraceTimerRef:O,onPointerGraceIntentChange:p.useCallback(e=>{k.current=e},[]),children:(0,Y.jsx)(M,{...N,children:(0,Y.jsx)(hi,{asChild:!0,trapped:i,onMountAutoFocus:yr(a,e=>{e.preventDefault(),w.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,Y.jsx)(ii,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:m,children:(0,Y.jsx)(Hl,{asChild:!0,...b,dir:v.dir,orientation:`vertical`,loop:r,currentTabStopId:S,onCurrentTabStopIdChange:C,onEntryFocus:yr(c,e=>{v.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,Y.jsx)(xl,{role:`menu`,"aria-orientation":`vertical`,"data-state":td(_.open),"data-radix-menu-content":``,dir:v.dir,...y,...g,ref:T,style:{outline:`none`,...g.style},onKeyDown:yr(g.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&P(e.key));let i=w.current;if(e.target!==i||!ql.includes(e.key))return;e.preventDefault();let a=x().filter(e=>!e.disabled).map(e=>e.ref.current);Kl.includes(e.key)&&a.reverse(),id(a)}),onBlur:yr(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(E.current),D.current=``)}),onPointerMove:yr(e.onPointerMove,ld(e=>{let t=e.target,n=j.current!==e.clientX;e.currentTarget.contains(t)&&n&&(A.current=e.clientX>j.current?`right`:`left`,j.current=e.clientX)}))})})})})})})});vu.displayName=hu;var Cu=`MenuGroup`,wu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,Y.jsx)(lr.div,{role:`group`,...r,ref:t})});wu.displayName=Cu;var Tu=`MenuLabel`,Eu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,Y.jsx)(lr.div,{...r,ref:t})});Eu.displayName=Tu;var Du=`MenuItem`,Ou=`menu.itemSelect`,ku=p.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,a=p.useRef(null),o=su(Du,e.__scopeMenu),s=_u(Du,e.__scopeMenu),c=er(t,a),l=p.useRef(!1),u=()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(Ou,{bubbles:!0,cancelable:!0});e.addEventListener(Ou,e=>r?.(e),{once:!0}),ur(e,t),t.defaultPrevented?l.current=!1:o.onClose()}};return(0,Y.jsx)(Au,{...i,ref:c,disabled:n,onClick:yr(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:yr(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:yr(e.onKeyDown,e=>{let t=s.searchRef.current!==``;n||t&&e.key===` `||Wl.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});ku.displayName=Du;var Au=p.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=_u(Du,n),s=ru(n),c=p.useRef(null),l=er(t,c),[u,d]=p.useState(!1),[f,m]=p.useState(``);return p.useEffect(()=>{let e=c.current;e&&m((e.textContent??``).trim())},[a.children]),(0,Y.jsx)(Zl.ItemSlot,{scope:n,disabled:r,textValue:i??f,children:(0,Y.jsx)(Ul,{asChild:!0,...s,focusable:!r,children:(0,Y.jsx)(lr.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:yr(e.onPointerMove,ld(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:yr(e.onPointerLeave,ld(e=>o.onItemLeave(e))),onFocus:yr(e.onFocus,()=>d(!0)),onBlur:yr(e.onBlur,()=>d(!1))})})})}),ju=`MenuCheckboxItem`,Mu=p.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,Y.jsx)(Bu,{scope:e.__scopeMenu,checked:n,children:(0,Y.jsx)(ku,{role:`menuitemcheckbox`,"aria-checked":nd(n)?`mixed`:n,...i,ref:t,"data-state":rd(n),onSelect:yr(i.onSelect,()=>r?.(nd(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Mu.displayName=ju;var Nu=`MenuRadioGroup`,[Pu,Fu]=eu(Nu,{value:void 0,onValueChange:()=>{}}),Iu=p.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=Xr(r);return(0,Y.jsx)(Pu,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,Y.jsx)(wu,{...i,ref:t})})});Iu.displayName=Nu;var Lu=`MenuRadioItem`,Ru=p.forwardRef((e,t)=>{let{value:n,...r}=e,i=Fu(Lu,e.__scopeMenu),a=n===i.value;return(0,Y.jsx)(Bu,{scope:e.__scopeMenu,checked:a,children:(0,Y.jsx)(ku,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":rd(a),onSelect:yr(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});Ru.displayName=Lu;var zu=`MenuItemIndicator`,[Bu,Vu]=eu(zu,{checked:!1}),Hu=p.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=Vu(zu,n);return(0,Y.jsx)(Er,{present:r||nd(a.checked)||a.checked===!0,children:(0,Y.jsx)(lr.span,{...i,ref:t,"data-state":rd(a.checked)})})});Hu.displayName=zu;var Uu=`MenuSeparator`,Wu=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,Y.jsx)(lr.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});Wu.displayName=Uu;var Gu=`MenuArrow`,Ku=p.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=nu(n);return(0,Y.jsx)(Sl,{...i,...r,ref:t})});Ku.displayName=Gu;var qu=`MenuSub`,[Ju,Yu]=eu(qu),Xu=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=au(qu,t),o=nu(t),[s,c]=p.useState(null),[l,u]=p.useState(null),d=Xr(i);return p.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,Y.jsx)(yl,{...o,children:(0,Y.jsx)(iu,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,Y.jsx)(Ju,{scope:t,contentId:Mr(),triggerId:Mr(),trigger:s,onTriggerChange:c,children:n})})})};Xu.displayName=qu;var Zu=`MenuSubTrigger`,Qu=p.forwardRef((e,t)=>{let n=au(Zu,e.__scopeMenu),r=su(Zu,e.__scopeMenu),i=Yu(Zu,e.__scopeMenu),a=_u(Zu,e.__scopeMenu),o=p.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=a,l={__scopeMenu:e.__scopeMenu},u=p.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return p.useEffect(()=>u,[u]),p.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),c(null)}},[s,c]),(0,Y.jsx)(uu,{asChild:!0,...l,children:(0,Y.jsx)(Au,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":td(n.open),...e,ref:$n(t,i.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:yr(e.onPointerMove,ld(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),u()},100))})),onPointerLeave:yr(e.onPointerLeave,ld(e=>{u();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,c=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:c,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:c,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:yr(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||Jl[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});Qu.displayName=Zu;var $u=`MenuSubContent`,ed=p.forwardRef((e,t)=>{let n=pu(hu,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=au(hu,e.__scopeMenu),o=su(hu,e.__scopeMenu),s=Yu($u,e.__scopeMenu),c=p.useRef(null),l=er(t,c);return(0,Y.jsx)(Zl.Provider,{scope:e.__scopeMenu,children:(0,Y.jsx)(Er,{present:r||a.open,children:(0,Y.jsx)(Zl.Slot,{scope:e.__scopeMenu,children:(0,Y.jsx)(Su,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:`start`,side:o.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{o.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:yr(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:yr(e.onEscapeKeyDown,e=>{o.onClose(),e.preventDefault()}),onKeyDown:yr(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=Yl[o.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});ed.displayName=$u;function td(e){return e?`open`:`closed`}function nd(e){return e===`indeterminate`}function rd(e){return nd(e)?`indeterminate`:e?`checked`:`unchecked`}function id(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function ad(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function od(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=ad(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function sd(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function cd(e,t){return t?sd({x:e.clientX,y:e.clientY},t):!1}function ld(e){return t=>t.pointerType===`mouse`?e(t):void 0}var ud=cu,dd=uu,fd=mu,pd=vu,md=wu,hd=Eu,gd=ku,_d=Mu,vd=Iu,yd=Ru,bd=Hu,xd=Wu,Sd=Ku,Cd=Qu,wd=ed,Td=`DropdownMenu`,[Ed,Dd]=gr(Td,[tu]),Od=tu(),[kd,Ad]=Ed(Td),jd=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=Od(t),l=p.useRef(null),[u,d]=Sr({prop:i,defaultProp:a??!1,onChange:o,caller:Td});return(0,Y.jsx)(kd,{scope:t,triggerId:Mr(),triggerRef:l,contentId:Mr(),open:u,onOpenChange:d,onOpenToggle:p.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,Y.jsx)(ud,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};jd.displayName=Td;var Md=`DropdownMenuTrigger`,Nd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Ad(Md,n),o=Od(n);return(0,Y.jsx)(dd,{asChild:!0,...o,children:(0,Y.jsx)(lr.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:$n(t,a.triggerRef),onPointerDown:yr(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:yr(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Nd.displayName=Md;var Pd=`DropdownMenuPortal`,Fd=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Od(t);return(0,Y.jsx)(fd,{...r,...n})};Fd.displayName=Pd;var Id=`DropdownMenuContent`,Ld=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ad(Id,n),a=Od(n),o=p.useRef(!1);return(0,Y.jsx)(pd,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:yr(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:yr(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});Ld.displayName=Id;var Rd=`DropdownMenuGroup`,zd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(md,{...i,...r,ref:t})});zd.displayName=Rd;var Bd=`DropdownMenuLabel`,Vd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(hd,{...i,...r,ref:t})});Vd.displayName=Bd;var Hd=`DropdownMenuItem`,Ud=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(gd,{...i,...r,ref:t})});Ud.displayName=Hd;var Wd=`DropdownMenuCheckboxItem`,Gd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(_d,{...i,...r,ref:t})});Gd.displayName=Wd;var Kd=`DropdownMenuRadioGroup`,qd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(vd,{...i,...r,ref:t})});qd.displayName=Kd;var Jd=`DropdownMenuRadioItem`,Yd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(yd,{...i,...r,ref:t})});Yd.displayName=Jd;var Xd=`DropdownMenuItemIndicator`,Zd=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(bd,{...i,...r,ref:t})});Zd.displayName=Xd;var Qd=`DropdownMenuSeparator`,$d=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(xd,{...i,...r,ref:t})});$d.displayName=Qd;var ef=`DropdownMenuArrow`,tf=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(Sd,{...i,...r,ref:t})});tf.displayName=ef;var nf=`DropdownMenuSubTrigger`,rf=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(Cd,{...i,...r,ref:t})});rf.displayName=nf;var af=`DropdownMenuSubContent`,of=p.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Od(n);return(0,Y.jsx)(wd,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});of.displayName=af;var sf=jd,cf=Nd,lf=Fd,uf=Ld,df=Ud,ff=`Label`,pf=p.forwardRef((e,t)=>(0,Y.jsx)(lr.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));pf.displayName=ff;var mf=pf,hf=`Popover`,[gf,_f]=gr(hf,[rl]),vf=rl(),[yf,bf]=gf(hf),xf=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=vf(t),c=p.useRef(null),[l,u]=p.useState(!1),[d,f]=Sr({prop:r,defaultProp:i??!1,onChange:a,caller:hf});return(0,Y.jsx)(yl,{...s,children:(0,Y.jsx)(yf,{scope:t,contentId:Mr(),triggerRef:c,open:d,onOpenChange:f,onOpenToggle:p.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:l,onCustomAnchorAdd:p.useCallback(()=>u(!0),[]),onCustomAnchorRemove:p.useCallback(()=>u(!1),[]),modal:o,children:n})})};xf.displayName=hf;var Sf=`PopoverAnchor`,Cf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=bf(Sf,n),a=vf(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return p.useEffect(()=>(o(),()=>s()),[o,s]),(0,Y.jsx)(bl,{...a,...r,ref:t})});Cf.displayName=Sf;var wf=`PopoverTrigger`,Tf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=bf(wf,n),a=vf(n),o=er(t,i.triggerRef),s=(0,Y.jsx)(lr.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":Bf(i.open),...r,ref:o,onClick:yr(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,Y.jsx)(bl,{asChild:!0,...a,children:s})});Tf.displayName=wf;var Ef=`PopoverPortal`,[Df,Of]=gf(Ef,{forceMount:void 0}),kf=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=bf(Ef,t);return(0,Y.jsx)(Df,{scope:t,forceMount:n,children:(0,Y.jsx)(Er,{present:n||a.open,children:(0,Y.jsx)(Oi,{asChild:!0,container:i,children:r})})})};kf.displayName=Ef;var Af=`PopoverContent`,jf=p.forwardRef((e,t)=>{let n=Of(Af,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=bf(Af,e.__scopePopover);return(0,Y.jsx)(Er,{present:r||a.open,children:a.modal?(0,Y.jsx)(Nf,{...i,ref:t}):(0,Y.jsx)(Pf,{...i,ref:t})})});jf.displayName=Af;var Mf=tr(`PopoverContent.RemoveScroll`),Nf=p.forwardRef((e,t)=>{let n=bf(Af,e.__scopePopover),r=p.useRef(null),i=er(t,r),a=p.useRef(!1);return p.useEffect(()=>{let e=r.current;if(e)return Ya(e)},[]),(0,Y.jsx)(Ba,{as:Mf,allowPinchZoom:!0,children:(0,Y.jsx)(Ff,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:yr(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:yr(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.current=t.button===2||n},{checkForDefaultPrevented:!1}),onFocusOutside:yr(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),Pf=p.forwardRef((e,t)=>{let n=bf(Af,e.__scopePopover),r=p.useRef(!1),i=p.useRef(!1);return(0,Y.jsx)(Ff,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),Ff=p.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=bf(Af,n),p=vf(n);return Ai(),(0,Y.jsx)(hi,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,Y.jsx)(ii,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),children:(0,Y.jsx)(xl,{"data-state":Bf(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),If=`PopoverClose`,Lf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=bf(If,n);return(0,Y.jsx)(lr.button,{type:`button`,...r,ref:t,onClick:yr(e.onClick,()=>i.onOpenChange(!1))})});Lf.displayName=If;var Rf=`PopoverArrow`,zf=p.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=vf(n);return(0,Y.jsx)(Sl,{...i,...r,ref:t})});zf.displayName=Rf;function Bf(e){return e?`open`:`closed`}var Vf=xf,Hf=Tf,Uf=kf,Wf=jf,Gf=`Switch`,[Kf,qf]=gr(Gf),[Jf,Yf]=Kf(Gf),Xf=p.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c=`on`,onCheckedChange:l,form:u,...d}=e,[f,m]=p.useState(null),h=er(t,e=>m(e)),g=p.useRef(!1),_=f?u||!!f.closest(`form`):!0,[v,y]=Sr({prop:i,defaultProp:a??!1,onChange:l,caller:Gf});return(0,Y.jsxs)(Jf,{scope:n,checked:v,disabled:s,children:[(0,Y.jsx)(lr.button,{type:`button`,role:`switch`,"aria-checked":v,"aria-required":o,"data-state":tp(v),"data-disabled":s?``:void 0,disabled:s,value:c,...d,ref:h,onClick:yr(e.onClick,e=>{y(e=>!e),_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),_&&(0,Y.jsx)(ep,{control:f,bubbles:!g.current,name:r,value:c,checked:v,required:o,disabled:s,form:u,style:{transform:`translateX(-100%)`}})]})});Xf.displayName=Gf;var Zf=`SwitchThumb`,Qf=p.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Yf(Zf,n);return(0,Y.jsx)(lr.span,{"data-state":tp(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Qf.displayName=Zf;var $f=`SwitchBubbleInput`,ep=p.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=p.useRef(null),s=er(o,a),c=Ro(n),l=zo(t);return p.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,Y.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...l,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});ep.displayName=$f;function tp(e){return e?`checked`:`unchecked`}var np=Xf,rp=Qf,ip=`Tabs`,[ap,op]=gr(ip,[Al]),sp=Al(),[cp,lp]=ap(ip),up=p.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=Yr(s),[d,f]=Sr({prop:r,onChange:i,defaultProp:a??``,caller:ip});return(0,Y.jsx)(cp,{scope:n,baseId:Mr(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,Y.jsx)(lr.div,{dir:u,"data-orientation":o,...l,ref:t})})});up.displayName=ip;var dp=`TabsList`,fp=p.forwardRef((e,t)=>{let{__scopeTabs:n,loop:r=!0,...i}=e,a=lp(dp,n),o=sp(n);return(0,Y.jsx)(Hl,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,Y.jsx)(lr.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})});fp.displayName=dp;var pp=`TabsTrigger`,mp=p.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=lp(pp,n),s=sp(n),c=_p(o.baseId,r),l=vp(o.baseId,r),u=r===o.value;return(0,Y.jsx)(Ul,{asChild:!0,...s,focusable:!i,active:u,children:(0,Y.jsx)(lr.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:yr(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:yr(e.onKeyDown,e=>{[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:yr(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})});mp.displayName=pp;var hp=`TabsContent`,gp=p.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=lp(hp,n),c=_p(s.baseId,r),l=vp(s.baseId,r),u=r===s.value,d=p.useRef(u);return p.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,Y.jsx)(Er,{present:i||u,children:({present:n})=>(0,Y.jsx)(lr.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})});gp.displayName=hp;function _p(e,t){return`${e}-trigger-${t}`}function vp(e,t){return`${e}-content-${t}`}var yp=up,bp=fp,xp=mp,Sp=gp,Cp=`Toggle`,wp=p.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=Sr({prop:n,onChange:i,defaultProp:r??!1,caller:Cp});return(0,Y.jsx)(lr.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:yr(e.onClick,()=>{e.disabled||s(!o)})})});wp.displayName=Cp;var Tp=`ToggleGroup`,[Ep,Dp]=gr(Tp,[Al]),Op=Al(),kp=p.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,Y.jsx)(Mp,{...r,ref:t});if(n===`multiple`)return(0,Y.jsx)(Np,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${Tp}\``)});kp.displayName=Tp;var[Ap,jp]=Ep(Tp),Mp=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=Sr({prop:n,defaultProp:r??``,onChange:i,caller:Tp});return(0,Y.jsx)(Ap,{scope:e.__scopeToggleGroup,type:`single`,value:p.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:p.useCallback(()=>s(``),[s]),children:(0,Y.jsx)(Ip,{...a,ref:t})})}),Np=p.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=Sr({prop:n,defaultProp:r??[],onChange:i,caller:Tp}),c=p.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=p.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,Y.jsx)(Ap,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,Y.jsx)(Ip,{...a,ref:t})})});kp.displayName=Tp;var[Pp,Fp]=Ep(Tp),Ip=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=Op(n),u=Yr(o),d={role:`group`,dir:u,...c};return(0,Y.jsx)(Pp,{scope:n,rovingFocus:i,disabled:r,children:i?(0,Y.jsx)(Hl,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,Y.jsx)(lr.div,{...d,ref:t})}):(0,Y.jsx)(lr.div,{...d,ref:t})})}),Lp=`ToggleGroupItem`,Rp=p.forwardRef((e,t)=>{let n=jp(Lp,e.__scopeToggleGroup),r=Fp(Lp,e.__scopeToggleGroup),i=Op(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=p.useRef(null);return r.rovingFocus?(0,Y.jsx)(Ul,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,Y.jsx)(zp,{...s,ref:t})}):(0,Y.jsx)(zp,{...s,ref:t})});Rp.displayName=Lp;var zp=p.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=jp(Lp,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,Y.jsx)(wp,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),Bp=kp,Vp=Rp,[Hp,Up]=gr(`Tooltip`,[rl]),Wp=rl(),Gp=`TooltipProvider`,Kp=700,qp=`tooltip.open`,[Jp,Yp]=Hp(Gp),Xp=e=>{let{__scopeTooltip:t,delayDuration:n=Kp,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=p.useRef(!0),s=p.useRef(!1),c=p.useRef(0);return p.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,Y.jsx)(Jp,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:p.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:p.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:p.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};Xp.displayName=Gp;var Zp=`Tooltip`,[Qp,$p]=Hp(Zp),em=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Yp(Zp,e.__scopeTooltip),l=Wp(t),[u,d]=p.useState(null),f=Mr(),m=p.useRef(0),h=o??c.disableHoverableContent,g=s??c.delayDuration,_=p.useRef(!1),[v,y]=Sr({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(qp))):c.onClose(),a?.(e)},caller:Zp}),b=p.useMemo(()=>v?_.current?`delayed-open`:`instant-open`:`closed`,[v]),x=p.useCallback(()=>{window.clearTimeout(m.current),m.current=0,_.current=!1,y(!0)},[y]),S=p.useCallback(()=>{window.clearTimeout(m.current),m.current=0,y(!1)},[y]),C=p.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{_.current=!0,y(!0),m.current=0},g)},[g,y]);return p.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,Y.jsx)(yl,{...l,children:(0,Y.jsx)(Qp,{scope:t,contentId:f,open:v,stateAttribute:b,trigger:u,onTriggerChange:d,onTriggerEnter:p.useCallback(()=>{c.isOpenDelayedRef.current?C():x()},[c.isOpenDelayedRef,C,x]),onTriggerLeave:p.useCallback(()=>{h?S():(window.clearTimeout(m.current),m.current=0)},[S,h]),onOpen:x,onClose:S,disableHoverableContent:h,children:n})})};em.displayName=Zp;var tm=`TooltipTrigger`,nm=p.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=$p(tm,n),a=Yp(tm,n),o=Wp(n),s=er(t,p.useRef(null),i.onTriggerChange),c=p.useRef(!1),l=p.useRef(!1),u=p.useCallback(()=>c.current=!1,[]);return p.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,Y.jsx)(bl,{asChild:!0,...o,children:(0,Y.jsx)(lr.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:yr(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:yr(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:yr(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:yr(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:yr(e.onBlur,i.onClose),onClick:yr(e.onClick,i.onClose)})})});nm.displayName=tm;var rm=`TooltipPortal`,[im,am]=Hp(rm,{forceMount:void 0}),om=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=$p(rm,t);return(0,Y.jsx)(im,{scope:t,forceMount:n,children:(0,Y.jsx)(Er,{present:n||a.open,children:(0,Y.jsx)(Oi,{asChild:!0,container:i,children:r})})})};om.displayName=rm;var sm=`TooltipContent`,cm=p.forwardRef((e,t)=>{let n=am(sm,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=$p(sm,e.__scopeTooltip);return(0,Y.jsx)(Er,{present:r||o.open,children:o.disableHoverableContent?(0,Y.jsx)(pm,{side:i,...a,ref:t}):(0,Y.jsx)(lm,{side:i,...a,ref:t})})}),lm=p.forwardRef((e,t)=>{let n=$p(sm,e.__scopeTooltip),r=Yp(sm,e.__scopeTooltip),i=p.useRef(null),a=er(t,i),[o,s]=p.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=p.useCallback(()=>{s(null),d(!1)},[d]),m=p.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=_m(r,gm(r,n.getBoundingClientRect())),a=vm(t.getBoundingClientRect());s(bm([...i,...a])),d(!0)},[d]);return p.useEffect(()=>()=>f(),[f]),p.useEffect(()=>{if(c&&u){let e=e=>m(e,u),t=e=>m(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,m,f]),p.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!ym(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,Y.jsx)(pm,{...e,ref:a})}),[um,dm]=Hp(Zp,{isInside:!1}),fm=ar(`TooltipContent`),pm=p.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=$p(sm,n),l=Wp(n),{onClose:u}=c;return p.useEffect(()=>(document.addEventListener(qp,u),()=>document.removeEventListener(qp,u)),[u]),p.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,Y.jsx)(ii,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,Y.jsxs)(xl,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,Y.jsx)(fm,{children:r}),(0,Y.jsx)(um,{scope:n,isInside:!0,children:(0,Y.jsx)(mr,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});cm.displayName=sm;var mm=`TooltipArrow`,hm=p.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Wp(n);return dm(mm,n).isInside?null:(0,Y.jsx)(Sl,{...i,...r,ref:t})});hm.displayName=mm;function gm(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function _m(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function vm(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function ym(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function bm(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),xm(t)}function xm(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Sm=Xp,Cm=em,wm=nm,Tm=om,Em=cm,Dm=hm,Om=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},eee=(e,t)=>({classGroupId:e,validator:t}),km=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Am=`-`,jm=[],tee=`arbitrary..`,nee=e=>{let t=Pm(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return Nm(e);let n=e.split(Am);return Mm(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?Om(i,t):t:i||jm}return n[e]||jm}}},Mm=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Mm(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(Am):e.slice(t).join(Am),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},Nm=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?tee+r:void 0})(),Pm=e=>{let{theme:t,classGroups:n}=e;return Fm(n,t)},Fm=(e,t)=>{let n=km();for(let r in e){let i=e[r];Im(i,n,r,t)}return n},Im=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Lm(i,t,n,r)}},Lm=(e,t,n,r)=>{if(typeof e==`string`){Rm(e,t,n);return}if(typeof e==`function`){zm(e,t,n,r);return}Bm(e,t,n,r)},Rm=(e,t,n)=>{let r=e===``?t:Vm(t,e);r.classGroupId=n},zm=(e,t,n,r)=>{if(Hm(e)){Im(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(eee(n,e))},Bm=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];Im(o,Vm(t,a),n,r)}},Vm=(e,t)=>{let n=e,r=t.split(Am),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=km(),n.nextPart.set(t,i)),n=i}return n},Hm=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Um=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},Wm=`!`,Gm=`:`,Km=[],qm=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Jm=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Gm){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(Wm)?(c=s.slice(0,-1),l=!0):s.startsWith(Wm)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return qm(t,l,c,u)};if(t){let e=t+Gm,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):qm(Km,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Ym=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Xm=e=>({cache:Um(e.cacheSize),parseClassName:Jm(e),sortModifiers:Ym(e),...nee(e)}),Zm=/\s+/,Qm=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(Zm),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let m=!!p,h=r(m?f.substring(0,p):f);if(!h){if(!m){c=t+(c.length>0?` `+c:c);continue}if(h=r(f),!h){c=t+(c.length>0?` `+c:c);continue}m=!1}let g=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),_=d?g+Wm:g,v=_+h;if(o.indexOf(v)>-1)continue;o.push(v);let y=i(h,m);for(let e=0;e<y.length;++e){let t=y[e];o.push(_+t)}c=t+(c.length>0?` `+c:c)}return c},$m=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=eh(n))&&(i&&(i+=` `),i+=r);return i},eh=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=eh(e[r]))&&(n&&(n+=` `),n+=t);return n},th=(e,...t)=>{let n,r,i,a,o=o=>(n=Xm(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=Qm(e,n);return i(e,a),a};return a=o,(...e)=>a($m(...e))},nh=[],rh=e=>{let t=t=>t[e]||nh;return t.isThemeGetter=!0,t},ih=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ah=/^\((?:(\w[\w-]*):)?(.+)\)$/i,oh=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,sh=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ch=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,lh=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,uh=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,dh=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,fh=e=>oh.test(e),ph=e=>!!e&&!Number.isNaN(Number(e)),mh=e=>!!e&&Number.isInteger(Number(e)),hh=e=>e.endsWith(`%`)&&ph(e.slice(0,-1)),gh=e=>sh.test(e),_h=()=>!0,vh=e=>ch.test(e)&&!lh.test(e),yh=()=>!1,bh=e=>uh.test(e),xh=e=>dh.test(e),Sh=e=>!wh(e)&&!Mh(e),Ch=e=>Bh(e,Wh,yh),wh=e=>ih.test(e),Th=e=>Bh(e,Gh,vh),Eh=e=>Bh(e,Kh,ph),Dh=e=>Bh(e,Jh,_h),Oh=e=>Bh(e,qh,yh),kh=e=>Bh(e,Hh,yh),Ah=e=>Bh(e,Uh,xh),jh=e=>Bh(e,Yh,bh),Mh=e=>ah.test(e),Nh=e=>Vh(e,Gh),Ph=e=>Vh(e,qh),Fh=e=>Vh(e,Hh),Ih=e=>Vh(e,Wh),Lh=e=>Vh(e,Uh),Rh=e=>Vh(e,Yh,!0),zh=e=>Vh(e,Jh,!0),Bh=(e,t,n)=>{let r=ih.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Vh=(e,t,n=!1)=>{let r=ah.exec(e);return r?r[1]?t(r[1]):n:!1},Hh=e=>e===`position`||e===`percentage`,Uh=e=>e===`image`||e===`url`,Wh=e=>e===`length`||e===`size`||e===`bg-size`,Gh=e=>e===`length`,Kh=e=>e===`number`,qh=e=>e===`family-name`,Jh=e=>e===`number`||e===`weight`,Yh=e=>e===`shadow`,Xh=th(()=>{let e=rh(`color`),t=rh(`font`),n=rh(`text`),r=rh(`font-weight`),i=rh(`tracking`),a=rh(`leading`),o=rh(`breakpoint`),s=rh(`container`),c=rh(`spacing`),l=rh(`radius`),u=rh(`shadow`),d=rh(`inset-shadow`),f=rh(`text-shadow`),p=rh(`drop-shadow`),m=rh(`blur`),h=rh(`perspective`),g=rh(`aspect`),_=rh(`ease`),v=rh(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),Mh,wh],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[Mh,wh,c],T=()=>[fh,`full`,`auto`,...w()],E=()=>[mh,`none`,`subgrid`,Mh,wh],D=()=>[`auto`,{span:[`full`,mh,Mh,wh]},mh,Mh,wh],O=()=>[mh,`auto`,Mh,wh],k=()=>[`auto`,`min`,`max`,`fr`,Mh,wh],A=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],j=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],M=()=>[`auto`,...w()],N=()=>[fh,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],P=()=>[fh,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],F=()=>[fh,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],I=()=>[e,Mh,wh],L=()=>[...b(),Fh,kh,{position:[Mh,wh]}],R=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],z=()=>[`auto`,`cover`,`contain`,Ih,Ch,{size:[Mh,wh]}],B=()=>[hh,Nh,Th],V=()=>[``,`none`,`full`,l,Mh,wh],H=()=>[``,ph,Nh,Th],ee=()=>[`solid`,`dashed`,`dotted`,`double`],U=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],te=()=>[ph,hh,Fh,kh],ne=()=>[``,`none`,m,Mh,wh],re=()=>[`none`,ph,Mh,wh],ie=()=>[`none`,ph,Mh,wh],ae=()=>[ph,Mh,wh],oe=()=>[fh,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[gh],breakpoint:[gh],color:[_h],container:[gh],"drop-shadow":[gh],ease:[`in`,`out`,`in-out`],font:[Sh],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[gh],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[gh],shadow:[gh],spacing:[`px`,ph],text:[gh],"text-shadow":[gh],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,fh,wh,Mh,g]}],container:[`container`],columns:[{columns:[ph,wh,Mh,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[mh,`auto`,Mh,wh]}],basis:[{basis:[fh,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[ph,fh,`auto`,`initial`,`none`,wh]}],grow:[{grow:[``,ph,Mh,wh]}],shrink:[{shrink:[``,ph,Mh,wh]}],order:[{order:[mh,`first`,`last`,`none`,Mh,wh]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...A(),`normal`]}],"justify-items":[{"justify-items":[...j(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...j()]}],"align-content":[{content:[`normal`,...A()]}],"align-items":[{items:[...j(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...j(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":A()}],"place-items":[{"place-items":[...j(),`baseline`]}],"place-self":[{"place-self":[`auto`,...j()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:N()}],"inline-size":[{inline:[`auto`,...P()]}],"min-inline-size":[{"min-inline":[`auto`,...P()]}],"max-inline-size":[{"max-inline":[`none`,...P()]}],"block-size":[{block:[`auto`,...F()]}],"min-block-size":[{"min-block":[`auto`,...F()]}],"max-block-size":[{"max-block":[`none`,...F()]}],w:[{w:[s,`screen`,...N()]}],"min-w":[{"min-w":[s,`screen`,`none`,...N()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...N()]}],h:[{h:[`screen`,`lh`,...N()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...N()]}],"max-h":[{"max-h":[`screen`,`lh`,...N()]}],"font-size":[{text:[`base`,n,Nh,Th]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,zh,Dh]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,hh,wh]}],"font-family":[{font:[Ph,Oh,t]}],"font-features":[{"font-features":[wh]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Mh,wh]}],"line-clamp":[{"line-clamp":[ph,`none`,Mh,Eh]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,Mh,wh]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Mh,wh]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...ee(),`wavy`]}],"text-decoration-thickness":[{decoration:[ph,`from-font`,`auto`,Mh,Th]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[ph,`auto`,Mh,wh]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Mh,wh]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Mh,wh]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:R()}],"bg-size":[{bg:z()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},mh,Mh,wh],radial:[``,Mh,wh],conic:[mh,Mh,wh]},Lh,Ah]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:B()}],"gradient-via-pos":[{via:B()}],"gradient-to-pos":[{to:B()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"border-w":[{border:H()}],"border-w-x":[{"border-x":H()}],"border-w-y":[{"border-y":H()}],"border-w-s":[{"border-s":H()}],"border-w-e":[{"border-e":H()}],"border-w-bs":[{"border-bs":H()}],"border-w-be":[{"border-be":H()}],"border-w-t":[{"border-t":H()}],"border-w-r":[{"border-r":H()}],"border-w-b":[{"border-b":H()}],"border-w-l":[{"border-l":H()}],"divide-x":[{"divide-x":H()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":H()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...ee(),`hidden`,`none`]}],"divide-style":[{divide:[...ee(),`hidden`,`none`]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...ee(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[ph,Mh,wh]}],"outline-w":[{outline:[``,ph,Nh,Th]}],"outline-color":[{outline:I()}],shadow:[{shadow:[``,`none`,u,Rh,jh]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":[`none`,d,Rh,jh]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:H()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[ph,Th]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":H()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":[`none`,f,Rh,jh]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[ph,Mh,wh]}],"mix-blend":[{"mix-blend":[...U(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":U()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[ph]}],"mask-image-linear-from-pos":[{"mask-linear-from":te()}],"mask-image-linear-to-pos":[{"mask-linear-to":te()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":te()}],"mask-image-t-to-pos":[{"mask-t-to":te()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":te()}],"mask-image-r-to-pos":[{"mask-r-to":te()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":te()}],"mask-image-b-to-pos":[{"mask-b-to":te()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":te()}],"mask-image-l-to-pos":[{"mask-l-to":te()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":te()}],"mask-image-x-to-pos":[{"mask-x-to":te()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":te()}],"mask-image-y-to-pos":[{"mask-y-to":te()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[Mh,wh]}],"mask-image-radial-from-pos":[{"mask-radial-from":te()}],"mask-image-radial-to-pos":[{"mask-radial-to":te()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[ph]}],"mask-image-conic-from-pos":[{"mask-conic-from":te()}],"mask-image-conic-to-pos":[{"mask-conic-to":te()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:R()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Mh,wh]}],filter:[{filter:[``,`none`,Mh,wh]}],blur:[{blur:ne()}],brightness:[{brightness:[ph,Mh,wh]}],contrast:[{contrast:[ph,Mh,wh]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Rh,jh]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:[``,ph,Mh,wh]}],"hue-rotate":[{"hue-rotate":[ph,Mh,wh]}],invert:[{invert:[``,ph,Mh,wh]}],saturate:[{saturate:[ph,Mh,wh]}],sepia:[{sepia:[``,ph,Mh,wh]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Mh,wh]}],"backdrop-blur":[{"backdrop-blur":ne()}],"backdrop-brightness":[{"backdrop-brightness":[ph,Mh,wh]}],"backdrop-contrast":[{"backdrop-contrast":[ph,Mh,wh]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,ph,Mh,wh]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ph,Mh,wh]}],"backdrop-invert":[{"backdrop-invert":[``,ph,Mh,wh]}],"backdrop-opacity":[{"backdrop-opacity":[ph,Mh,wh]}],"backdrop-saturate":[{"backdrop-saturate":[ph,Mh,wh]}],"backdrop-sepia":[{"backdrop-sepia":[``,ph,Mh,wh]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Mh,wh]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[ph,`initial`,Mh,wh]}],ease:[{ease:[`linear`,`initial`,_,Mh,wh]}],delay:[{delay:[ph,Mh,wh]}],animate:[{animate:[`none`,v,Mh,wh]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,Mh,wh]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:ie()}],"scale-x":[{"scale-x":ie()}],"scale-y":[{"scale-y":ie()}],"scale-z":[{"scale-z":ie()}],"scale-3d":[`scale-3d`],skew:[{skew:ae()}],"skew-x":[{"skew-x":ae()}],"skew-y":[{"skew-y":ae()}],transform:[{transform:[Mh,wh,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:oe()}],"translate-x":[{"translate-x":oe()}],"translate-y":[{"translate-y":oe()}],"translate-z":[{"translate-z":oe()}],"translate-none":[`translate-none`],accent:[{accent:I()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Mh,wh]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Mh,wh]}],fill:[{fill:[`none`,...I()]}],"stroke-w":[{stroke:[ph,Nh,Th,Eh]}],stroke:[{stroke:[`none`,...I()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}}),X=(...e)=>Xh(Jn(e)),Zh=Zn(`inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-xl border text-sm font-medium transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`border-primary/60 bg-primary text-primary-foreground shadow-[0_8px_24px_rgba(108,63,217,0.28)] hover:bg-primary/92 hover:border-primary/70`,outline:`border-border bg-card/80 text-foreground hover:bg-accent hover:text-accent-foreground`,secondary:`border-border bg-secondary text-secondary-foreground hover:bg-secondary/85`,ghost:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground`,destructive:`border-red-500/30 bg-destructive/15 text-red-200 hover:bg-destructive/25`,success:`border-emerald-300/80 bg-emerald-400 text-[#07130d] shadow-[0_10px_30px_rgba(16,185,129,0.28)] hover:border-emerald-200 hover:bg-emerald-300`,warning:`border-amber-500/30 bg-amber-500/12 text-amber-200 hover:bg-amber-500/20`,link:`border-transparent px-0 text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-4`,xs:`h-7 px-2.5 text-xs`,sm:`h-8 px-3 text-sm`,lg:`h-11 px-5 text-sm`,icon:`size-10`,"icon-xs":`size-7 [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-11`}},defaultVariants:{variant:`default`,size:`default`}}),Z=({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i})=>(0,Y.jsx)(r?nr:`button`,{"data-slot":`button`,"data-variant":t,"data-size":n,className:X(Zh({variant:t,size:n,className:e})),...i}),Qh=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),$h=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),eg=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),tg=e=>{let t=eg(e);return t.charAt(0).toUpperCase()+t.slice(1)},ng={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},rg=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},ig=(0,p.createContext)({}),ag=()=>(0,p.useContext)(ig),og=(0,p.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:m=``}=ag()??{},h=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,p.createElement)(`svg`,{ref:c,...ng,width:t??l??ng.width,height:t??l??ng.height,stroke:e??f,strokeWidth:h,className:Qh(`lucide`,m,i),...!a&&!rg(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,p.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),sg=(e,t)=>{let n=(0,p.forwardRef)(({className:n,...r},i)=>(0,p.createElement)(og,{ref:i,iconNode:t,className:Qh(`lucide-${$h(tg(e))}`,`lucide-${e}`,n),...r}));return n.displayName=tg(e),n},cg=sg(`app-window`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),lg=sg(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),ug=sg(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),dg=sg(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),fg=sg(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),pg=sg(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),mg=sg(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),hg=sg(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),gg=sg(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),_g=sg(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),vg=sg(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),yg=sg(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),bg=sg(`crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),ree=sg(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),iee=sg(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),aee=sg(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),oee=sg(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),see=sg(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),cee=sg(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),lee=sg(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),xg=sg(`git-pull-request-arrow`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M5 9v12`,key:`ih889a`}],[`circle`,{cx:`19`,cy:`18`,r:`3`,key:`1qljk2`}],[`path`,{d:`m15 9-3-3 3-3`,key:`1lwv8l`}],[`path`,{d:`M12 6h5a2 2 0 0 1 2 2v7`,key:`1yj91y`}]]),uee=sg(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),dee=sg(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),fee=sg(`link`,[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]),pee=sg(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),mee=sg(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),hee=sg(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),gee=sg(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),_ee=sg(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Sg=sg(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),Cg=sg(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),wg=sg(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),Tg=sg(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Eg=sg(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Dg=sg(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Og=sg(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),kg=sg(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Ag=sg(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),jg=sg(`square-kanban`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M8 7v7`,key:`1x2jlm`}],[`path`,{d:`M12 7v4`,key:`xawao1`}],[`path`,{d:`M16 7v9`,key:`1hp2iy`}]]),Mg=sg(`square-mouse-pointer`,[[`path`,{d:`M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z`,key:`xwnzip`}],[`path`,{d:`M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6`,key:`14rsvq`}]]),Ng=sg(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Pg=sg(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Fg=sg(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Ig=sg(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Lg=1,Rg=.9,vee=.8,zg=.17,Bg=.1,Vg=.999,Hg=.9999,Ug=.99,Wg=/[\\\/_+.#"@\[\(\{&]/,Gg=/[\\\/_+.#"@\[\(\{&]/g,Kg=/[\s-]/,qg=/[\s-]/g;function Jg(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?Lg:Ug;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=Jg(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=Lg:Wg.test(e.charAt(l-1))?(d*=vee,p=e.slice(i,l-1).match(Gg),p&&i>0&&(d*=Vg**+p.length)):Kg.test(e.charAt(l-1))?(d*=Rg,m=e.slice(i,l-1).match(qg),m&&i>0&&(d*=Vg**+m.length)):(d*=zg,i>0&&(d*=Vg**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=Hg)),(d<Bg&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=Jg(e,t,n,r,l+1,a+2,o),f*Bg>d&&(d=f*Bg)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function Yg(e){return e.toLowerCase().replace(qg,` `)}function Xg(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,Jg(e,t,Yg(e),Yg(t),0,0,{})}var Zg=`[cmdk-group=""]`,Qg=`[cmdk-group-items=""]`,$g=`[cmdk-group-heading=""]`,e_=`[cmdk-item=""]`,t_=`${e_}:not([aria-disabled="true"])`,n_=`cmdk-item-select`,r_=`data-value`,yee=(e,t,n)=>Xg(e,t,n),i_=p.createContext(void 0),a_=()=>p.useContext(i_),o_=p.createContext(void 0),s_=()=>p.useContext(o_),c_=p.createContext(void 0),l_=p.forwardRef((e,t)=>{let n=C_(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=C_(()=>new Set),i=C_(()=>new Map),a=C_(()=>new Map),o=C_(()=>new Set),s=x_(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:m,loop:h,disablePointerSelection:g=!1,vimBindings:_=!0,...v}=e,y=Mr(),b=Mr(),x=Mr(),S=p.useRef(null),C=E_();S_(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),S_(()=>{C(6,A)},[]);let w=p.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)k(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=j()?.id,w.emit()}),r||C(5,A),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=p.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{k(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=j();C(4,()=>{k(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??yee;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;M().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(Qg);t?t.appendChild(e.parentElement===t?e:e.closest(`${Qg} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${Qg} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${Zg}[${r_}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(r_);w.setState(`value`,e||void 0)}function k(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function A(){var e;let t=j();t&&(t.parentElement?.firstChild===t&&((e=t.closest(Zg)?.querySelector($g))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${e_}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(t_)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(r_))}function P(e){var t;let n=j(),r=M(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(r_))}function F(e){let t=j()?.closest(Zg),n;for(;t&&!n;)t=e>0?y_(t,Zg):b_(t,Zg),n=t?.querySelector(t_);n?w.setState(`value`,n.getAttribute(r_)):P(e)}let I=()=>N(M().length-1),L=e=>{e.preventDefault(),e.metaKey?I():e.altKey?F(1):P(1)},R=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?F(-1):P(-1)};return p.createElement(lr.div,{ref:t,tabIndex:-1,...v,"cmdk-root":``,onKeyDown:e=>{var t;(t=v.onKeyDown)==null||t.call(v,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:_&&e.ctrlKey&&L(e);break;case`ArrowDown`:L(e);break;case`p`:case`k`:_&&e.ctrlKey&&R(e);break;case`ArrowUp`:R(e);break;case`Home`:e.preventDefault(),N(0);break;case`End`:e.preventDefault(),I();break;case`Enter`:{e.preventDefault();let t=j();if(t){let e=new Event(n_);t.dispatchEvent(e)}}}}},p.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:k_},c),O_(e,e=>p.createElement(o_.Provider,{value:w},p.createElement(i_.Provider,{value:T},e))))}),u_=p.forwardRef((e,t)=>{let n=Mr(),r=p.useRef(null),i=p.useContext(c_),a=a_(),o=x_(e),s=o.current?.forceMount??i?.forceMount;S_(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=T_(n,r,[e.value,e.children,r],e.keywords),l=s_(),u=w_(e=>e.value&&e.value===c.current),d=w_(e=>s||a.filter()===!1?!0:e.search?e.filtered.items.get(n)>0:!0);p.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(n_,f),()=>t.removeEventListener(n_,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;m(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function m(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:h,value:g,onSelect:_,forceMount:v,keywords:y,...b}=e;return p.createElement(lr.div,{ref:$n(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!h,"aria-selected":!!u,"data-disabled":!!h,"data-selected":!!u,onPointerMove:h||a.getDisablePointerSelection()?void 0:m,onClick:h?void 0:f},e.children)}),d_=p.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Mr(),s=p.useRef(null),c=p.useRef(null),l=Mr(),u=a_(),d=w_(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);S_(()=>u.group(o),[]),T_(o,s,[e.value,e.heading,c]);let f=p.useMemo(()=>({id:o,forceMount:i}),[i]);return p.createElement(lr.div,{ref:$n(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:d?void 0:!0},n&&p.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),O_(e,e=>p.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},p.createElement(c_.Provider,{value:f},e))))}),f_=p.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=p.useRef(null),a=w_(e=>!e.search);return!n&&!a?null:p.createElement(lr.div,{ref:$n(i,t),...r,"cmdk-separator":``,role:`separator`})}),p_=p.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=s_(),o=w_(e=>e.search),s=w_(e=>e.selectedItemId),c=a_();return p.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),p.createElement(lr.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),m_=p.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=p.useRef(null),o=p.useRef(null),s=w_(e=>e.selectedItemId),c=a_();return p.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),p.createElement(lr.div,{ref:$n(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},O_(e,e=>p.createElement(`div`,{ref:$n(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),h_=p.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return p.createElement(jo,{open:n,onOpenChange:r},p.createElement(Mo,{container:o},p.createElement(No,{"cmdk-overlay":``,className:i}),p.createElement(Po,{"aria-label":e.label,"cmdk-dialog":``,className:a},p.createElement(l_,{ref:t,...s}))))}),g_=p.forwardRef((e,t)=>w_(e=>e.filtered.count===0)?p.createElement(lr.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),__=p.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return p.createElement(lr.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},O_(e,e=>p.createElement(`div`,{"aria-hidden":!0},e)))}),v_=Object.assign(l_,{List:m_,Item:u_,Input:p_,Group:d_,Separator:f_,Dialog:h_,Empty:g_,Loading:__});function y_(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function b_(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function x_(e){let t=p.useRef(e);return S_(()=>{t.current=e}),t}var S_=typeof window>`u`?p.useEffect:p.useLayoutEffect;function C_(e){let t=p.useRef();return t.current===void 0&&(t.current=e()),t}function w_(e){let t=s_(),n=()=>e(t.snapshot());return p.useSyncExternalStore(t.subscribe,n,n)}function T_(e,t,n,r=[]){let i=p.useRef(),a=a_();return S_(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(r_,s),i.current=s}),i}var E_=()=>{let[e,t]=p.useState(),n=C_(()=>new Map);return S_(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function D_(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function O_({asChild:e,children:t},n){return e&&p.isValidElement(t)?p.cloneElement(D_(t),{ref:t.ref},n(t.props.children)):n(t)}var k_={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},A_=e=>(0,Y.jsx)(jo,{"data-slot":`dialog`,...e}),j_=e=>(0,Y.jsx)(Mo,{"data-slot":`dialog-portal`,...e}),M_=e=>(0,Y.jsx)(Lo,{"data-slot":`dialog-close`,...e}),N_=({className:e,...t})=>(0,Y.jsx)(No,{"data-slot":`dialog-overlay`,className:X(`fixed inset-0 isolate z-50 bg-black/70 duration-100 supports-backdrop-filter:backdrop-blur-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,e),...t}),P_=({className:e,children:t,showCloseButton:n=!0,overlayClassName:r,...i})=>(0,Y.jsxs)(j_,{children:[(0,Y.jsx)(N_,{className:r}),(0,Y.jsxs)(Po,{"data-slot":`dialog-content`,className:X(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 rounded-2xl border border-border bg-card p-6 text-sm text-card-foreground shadow-2xl shadow-black/30 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...i,children:[t,n&&(0,Y.jsx)(Lo,{"data-slot":`dialog-close`,asChild:!0,children:(0,Y.jsxs)(Z,{variant:`ghost`,className:`absolute top-4 right-4`,size:`icon-sm`,children:[(0,Y.jsx)(Ig,{}),(0,Y.jsx)(`span`,{className:`sr-only`,children:`Close`})]})})]})]}),F_=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`dialog-header`,className:X(`flex flex-col gap-1.5`,e),...t}),I_=({className:e,showCloseButton:t=!1,children:n,...r})=>(0,Y.jsxs)(`div`,{"data-slot":`dialog-footer`,className:X(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...r,children:[n,t&&(0,Y.jsx)(Lo,{asChild:!0,children:(0,Y.jsx)(Z,{variant:`outline`,children:`Close`})})]}),L_=({className:e,...t})=>(0,Y.jsx)(Fo,{"data-slot":`dialog-title`,className:X(`font-heading text-base leading-none font-medium`,e),...t}),R_=({className:e,...t})=>(0,Y.jsx)(Io,{"data-slot":`dialog-description`,className:X(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,e),...t}),z_=(0,p.forwardRef)(({className:e,type:t,...n},r)=>(0,Y.jsx)(`input`,{ref:r,type:t,"data-slot":`input`,className:X(`h-10 w-full min-w-0 rounded-xl border border-input bg-input/40 px-3 py-2 text-sm text-foreground transition-[border-color,box-shadow,background-color] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`,e),...n})),B_=(0,p.forwardRef)(({className:e,...t},n)=>(0,Y.jsx)(`textarea`,{ref:n,"data-slot":`textarea`,className:X(`flex min-h-24 w-full resize-none rounded-xl border border-input bg-input/40 px-3 py-2.5 text-sm text-foreground transition-[border-color,box-shadow,background-color] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`,e),...t}));B_.displayName=`Textarea`;function V_({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`input-group`,role:`group`,className:X(`group/input-group relative flex h-9 w-full min-w-0 items-center rounded-4xl border border-transparent bg-input/50 transition-[color,box-shadow,background-color] outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded-3xl has-data-[align=block-start]:rounded-3xl has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/30 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[textarea]:rounded-2xl has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5`,e),...t})}var H_=Zn(`flex h-auto cursor-text items-center justify-center gap-2 py-2 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-3xl **:data-[slot=kbd]:bg-muted-foreground/10 **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-4`,{variants:{align:{"inline-start":`order-first pl-3 has-[>button]:-ml-1 has-[>kbd]:-ml-1`,"inline-end":`order-last pr-3 has-[>button]:-mr-1 has-[>kbd]:-mr-1`,"block-start":`order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-3.5 [.border-b]:pb-3.5`,"block-end":`order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-3.5 [.border-t]:pt-3.5`}},defaultVariants:{align:`inline-start`}});function U_({className:e,align:t=`inline-start`,...n}){return(0,Y.jsx)(`div`,{role:`group`,"data-slot":`input-group-addon`,"data-align":t,className:X(H_({align:t}),e),onClick:e=>{e.target.closest(`button`)||e.currentTarget.parentElement?.querySelector(`input`)?.focus()},...n})}var W_=Zn(`flex items-center gap-2 rounded-4xl text-sm shadow-none`,{variants:{size:{xs:`h-6 gap-1 rounded-xl px-1.5 [&>svg:not([class*='size-'])]:size-3.5`,sm:``,"icon-xs":`size-6 rounded-xl p-0 has-[>svg]:p-0`,"icon-sm":`size-8 p-0 has-[>svg]:p-0`}},defaultVariants:{size:`xs`}});function G_({className:e,type:t=`button`,variant:n=`ghost`,size:r=`xs`,...i}){return(0,Y.jsx)(Z,{type:t,"data-size":r,variant:n,className:X(W_({size:r}),e),...i})}function K_({className:e,...t}){return(0,Y.jsx)(z_,{"data-slot":`input-group-control`,className:X(`flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent`,e),...t})}function q_({className:e,...t}){return(0,Y.jsx)(v_,{"data-slot":`command`,className:X(`flex size-full flex-col overflow-hidden rounded-4xl bg-popover p-1 text-popover-foreground`,e),...t})}function J_({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`command-input-wrapper`,className:`p-1 pb-0`,children:(0,Y.jsxs)(V_,{className:`h-9 bg-input/50`,children:[(0,Y.jsx)(v_.Input,{"data-slot":`command-input`,className:X(`w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,e),...t}),(0,Y.jsx)(U_,{children:(0,Y.jsx)(kg,{className:`size-4 shrink-0 opacity-50`})})]})})}function Y_({className:e,...t}){return(0,Y.jsx)(v_.List,{"data-slot":`command-list`,className:X(`no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none`,e),onWheelCapture:e=>{e.stopPropagation(),t.onWheelCapture?.(e)},...t})}function X_({className:e,...t}){return(0,Y.jsx)(v_.Empty,{"data-slot":`command-empty`,className:X(`py-6 text-center text-sm`,e),...t})}function Z_({className:e,...t}){return(0,Y.jsx)(v_.Group,{"data-slot":`command-group`,className:X(`overflow-hidden p-1.5 text-foreground **:[[cmdk-group-heading]]:px-3 **:[[cmdk-group-heading]]:py-2 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground`,e),...t})}function Q_({className:e,children:t,...n}){return(0,Y.jsxs)(v_.Item,{"data-slot":`command-item`,className:X(`group/command-item relative flex cursor-pointer items-center gap-2 rounded-2xl px-3 py-2 text-sm font-medium outline-hidden select-none in-data-[slot=dialog-content]:rounded-3xl data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground`,e),...n,children:[t,(0,Y.jsx)(gg,{className:`ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100`})]})}function $_({className:e,...t}){return(0,Y.jsx)(mf,{"data-slot":`label`,className:X(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}var ev=e=>(0,Y.jsx)(Vf,{"data-slot":`popover`,...e}),tv=e=>(0,Y.jsx)(Hf,{"data-slot":`popover-trigger`,...e}),nv=({className:e,align:t=`center`,sideOffset:n=4,...r})=>(0,Y.jsx)(Uf,{children:(0,Y.jsx)(Wf,{"data-slot":`popover-content`,align:t,sideOffset:n,className:X(`z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-2 rounded-xl border border-border bg-popover p-2 text-sm text-popover-foreground shadow-2xl shadow-black/30 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r})}),rv=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`popover-header`,className:X(`flex flex-col gap-1 text-sm`,e),...t}),iv=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`popover-title`,className:X(`font-heading text-base font-medium`,e),...t}),av=/[\s\-_/.:]+/,ov=/\d(?:[._:-]*\d)+/g,sv=e=>e.toLowerCase().trim().split(av).filter(Boolean),cv=(e,t)=>t===e?300:t.startsWith(e)?200:e.length>=3&&t.includes(e)?100:0,lv=e=>(e.toLowerCase().match(ov)??[]).map(e=>e.replace(/\D/g,``)).filter(e=>e.length>=2),uv=e=>/^\d+$/.test(e),dv=(e,t)=>{let n=0;for(let r of t){if(r===e){n=Math.max(n,250);continue}r.startsWith(e)&&(n=Math.max(n,150))}return n},fv=(e,t)=>{let n=sv(e);if(n.length===0)return 1;let r=t.flatMap(e=>sv(e??``)),i=[...new Set(t.flatMap(e=>lv(e??``)))];if(r.length===0&&i.length===0)return 0;let a=0;for(let e of n){let t=0;for(let n of r){let r=cv(e,n);r>t&&(t=r)}if(t===0&&uv(e)&&(t=dv(e,i)),t===0)return 0;a+=t}return a},pv=({label:e,triggerLabel:t,triggerAriaLabel:n,selectId:r,groups:i,disabled:a=!1,className:o,labelClassName:s,contentClassName:c,triggerClassName:l,isSelected:u,onSelect:d,closeOnSelect:f=!0})=>{let[m,h]=(0,p.useState)(!1),[g,_]=(0,p.useState)(!1),v=(0,p.useRef)(null),y=i.reduce((e,t)=>e+t.options.length,0)>4,b=(0,p.useCallback)(()=>{let e=v.current?.getBoundingClientRect();if(!e)return!1;let t=window.innerHeight-e.bottom-16,n=e.top-16;return t<320&&n>t},[]);return(0,p.useEffect)(()=>{if(!m)return;let e=()=>{_(b())};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[b,m]),(0,Y.jsxs)(`div`,{className:X(`flex flex-col gap-1.5`,o),children:[e&&(0,Y.jsx)($_,{className:X(`text-xs font-medium text-muted-foreground`,s),htmlFor:r,children:e}),(0,Y.jsxs)(ev,{open:m,onOpenChange:e=>{e&&_(b()),h(e)},children:[(0,Y.jsx)(`div`,{className:`relative`,ref:v,children:(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{id:r,type:`button`,variant:`outline`,"aria-label":n??t,disabled:a,className:X(`w-full justify-between bg-input/40 px-3 text-left font-normal`,l),children:[(0,Y.jsx)(`span`,{className:`truncate`,children:t}),(0,Y.jsx)(_g,{className:`h-4 w-4 text-muted-foreground`})]})})}),(0,Y.jsx)(nv,{side:g?`top`:`bottom`,align:`start`,className:X(`w-[var(--radix-popover-trigger-width)] p-0`,c),children:(0,Y.jsxs)(q_,{filter:(e,t,n)=>fv(t,[e,...n??[]]),children:[y&&(0,Y.jsx)(J_,{placeholder:`Filter...`}),(0,Y.jsxs)(Y_,{className:`max-h-72`,children:[(0,Y.jsx)(X_,{children:`No matches`}),i.map((e,t)=>e.options.length===0?null:(0,Y.jsx)(Z_,{heading:e.label||void 0,className:X(e.label?`border-t border-border/60 first:border-t-0 first:pt-0`:``),children:e.options.map(t=>(0,Y.jsx)(Q_,{value:`${t.label} ${t.value}`,keywords:[t.label,t.value,e.label],disabled:t.disabled,"data-checked":u(t.value),onSelect:()=>{t.disabled||(d(t.value),f&&h(!1))},children:(0,Y.jsx)(`span`,{className:`truncate`,children:t.label})},t.value))},e.label||`group-${t}`))]})]})})]})]})},mv=({label:e,triggerLabel:t,triggerAriaLabel:n,selectId:r,groups:i,selectedValue:a,onChange:o,disabled:s=!1,labelClassName:c,contentClassName:l,triggerClassName:u})=>(0,Y.jsx)(pv,{label:e,triggerLabel:t,triggerAriaLabel:n,selectId:r,groups:i,disabled:s,labelClassName:c,contentClassName:l,triggerClassName:u,isSelected:e=>a===e,onSelect:o}),hv=({model:e,showModelSelector:t,availableModels:n,onModelChange:r,selectId:i,label:a=`Model`,triggerAriaLabel:o,disabled:s=!1,className:c,triggerClassName:l})=>{let u=(0,p.useMemo)(()=>{let e=new Map;for(let t of n){let n=t.provider;e.has(n)||e.set(n,[]),e.get(n)?.push({value:t.id,label:t.label})}return Array.from(e.entries()).map(([e,t])=>({provider:e,models:t}))},[n]),d=e||`Use default model`;return t?(0,Y.jsx)(`div`,{className:X(c),children:(0,Y.jsx)(mv,{label:a,triggerLabel:d,triggerAriaLabel:o,selectId:i,selectedValue:e,onChange:r,disabled:s,contentClassName:`min-w-[22rem]`,triggerClassName:l,groups:[{label:``,options:[{value:``,label:`Use default model`}]},...u.map(e=>({label:e.provider,options:e.models}))]})}):null},gv=({variant:e,selectedModel:t,showVariantSelector:n,onVariantChange:r,selectId:i,label:a=`Variant`,triggerAriaLabel:o,disabled:s=!1,className:c,triggerClassName:l})=>{if(!n||!t)return null;let u=e||`Use model default`;return(0,Y.jsx)(`div`,{className:X(c),children:(0,Y.jsx)(mv,{label:a,triggerLabel:u,triggerAriaLabel:o,selectId:i,selectedValue:e,onChange:r,disabled:s,contentClassName:`min-w-[22rem]`,triggerClassName:l,groups:[{label:``,options:[{value:``,label:`Use model default`}]},{label:`Available levels`,options:t.variants.map(e=>({value:e,label:e}))}]})})},_v=({helperModel:e,helperVariant:t,availableModels:n,isLoadingModels:r,onHelperModelChange:i,onHelperVariantChange:a,modelSelectId:o,variantSelectId:s,className:c,compact:l=!1,showHeader:u=!0})=>{let d=n.find(t=>t.id===e)??null,f=n.length>0,p=d!==null&&d.variants.length>0;return(0,Y.jsxs)(`div`,{className:X(`rounded-2xl border border-border/70 bg-background/25 p-4`,c),children:[u&&(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h4`,{className:`text-sm font-medium text-foreground`,children:`Helper model`}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:`Used for auto-config and other lightweight project tasks. Leave empty to use the selected tool's default model.`})]}),r?(0,Y.jsx)(`p`,{className:X(`text-sm text-muted-foreground`,u?`mt-4`:``),children:`Loading OpenCode models...`}):f?(0,Y.jsxs)(`div`,{className:X(u?`mt-4`:``,`gap-3`,l?`flex flex-col`:`flex flex-wrap`),children:[(0,Y.jsx)(hv,{model:e,showModelSelector:f,availableModels:n,onModelChange:i,selectId:o,className:l?`min-w-0`:`min-w-[10rem] flex-[1.35_1_10rem]`}),p&&(0,Y.jsx)(gv,{variant:t,selectedModel:d,showVariantSelector:p,onVariantChange:a,selectId:s,className:l?`min-w-0`:`min-w-[7rem] flex-[0.7_1_7rem]`})]}):(0,Y.jsx)(`p`,{className:X(`text-sm text-muted-foreground`,u?`mt-4`:``),children:`OpenCode model discovery is unavailable right now. Leave this empty to use the selected tool's default model.`})]})},vv=({delayDuration:e=0,...t})=>(0,Y.jsx)(Sm,{"data-slot":`tooltip-provider`,delayDuration:e,...t}),yv=e=>(0,Y.jsx)(Cm,{"data-slot":`tooltip`,...e}),bv=e=>(0,Y.jsx)(wm,{"data-slot":`tooltip-trigger`,...e}),xv=({className:e,sideOffset:t=8,children:n,...r})=>(0,Y.jsx)(Tm,{children:(0,Y.jsxs)(Em,{"data-slot":`tooltip-content`,sideOffset:t,className:X(`pointer-events-none z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) select-none items-center gap-1.5 rounded-md border border-sky-500/20 bg-popover px-2.5 py-1.5 text-xs font-medium text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r,children:[n,(0,Y.jsx)(Dm,{className:`fill-popover`})]})}),Sv=({content:e,children:t,align:n,side:r,sideOffset:i,disabled:a=!1,contentClassName:o,delayDuration:s=0})=>(0,Y.jsx)(vv,{delayDuration:s,disableHoverableContent:!0,children:(0,Y.jsxs)(yv,{children:[(0,Y.jsx)(bv,{asChild:!0,children:t}),a?null:(0,Y.jsx)(xv,{className:o,align:n,side:r,sideOffset:i??8,children:e})]})}),Cv=({value:e,items:t,onChange:n,disabled:r=!1,className:i})=>(0,Y.jsx)(`div`,{className:X(`inline-flex items-center gap-1 rounded-xl border border-border/70 bg-background/70 p-1 shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]`,i),children:t.map(t=>{let i=t.value===e,a=(0,Y.jsx)(Z,{type:`button`,variant:i?t.activeVariant??`default`:`ghost`,size:`sm`,disabled:r,className:X(`h-7 rounded-lg px-2.5 text-xs`,i?t.activeClassName:t.inactiveClassName??`text-muted-foreground hover:text-foreground`),onClick:()=>n(t.value),children:t.label},t.value);return i||!t.inactiveTooltip||r?a:(0,Y.jsx)(Sv,{content:t.inactiveTooltip,children:a},t.value)})}),wv=({activeTool:e,onChange:t})=>(0,Y.jsx)(Cv,{value:e,items:[{value:`opencode`,label:`OpenCode`},{value:`claude`,label:`Claude`}],onChange:t}),Tv=({activeTool:e,availableHelperModels:t,helperModel:n,helperVariant:r,isHelperModelsLoaded:i,isToolLoaded:a,onCreateProject:o,onHelperModelChange:s,onHelperVariantChange:c,onToolChange:l})=>{let{t:u}=Ue(`common`);return(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 py-10`,children:(0,Y.jsxs)(`div`,{className:`w-full max-w-3xl overflow-hidden rounded-[2rem] border border-border bg-[radial-gradient(circle_at_top_left,_rgba(52,211,153,0.18),_transparent_42%),linear-gradient(160deg,_rgba(20,24,34,1),_rgba(10,12,18,1))] p-8 shadow-2xl shadow-black/20 sm:p-10`,children:[(0,Y.jsx)(`h2`,{className:`max-w-xl text-3xl font-semibold tracking-tight text-foreground sm:text-4xl`,children:u(`emptyState.title`)}),(0,Y.jsxs)(`div`,{className:`mt-6 flex flex-col gap-3`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(`emptyState.description`)}),a?(0,Y.jsx)(`div`,{className:`w-fit`,children:(0,Y.jsx)(wv,{activeTool:e,onChange:l})}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(`emptyState.loadingToolPreference`)}),(0,Y.jsx)(_v,{helperModel:n,helperVariant:r,availableModels:t,isLoadingModels:!i,onHelperModelChange:s,onHelperVariantChange:c,modelSelectId:`welcome-helper-model`,variantSelectId:`welcome-helper-variant`,compact:!0})]}),(0,Y.jsx)(`div`,{className:`mt-8 flex flex-col gap-3 sm:flex-row sm:items-center`,children:(0,Y.jsx)(Z,{type:`button`,onClick:o,variant:`success`,size:`lg`,children:u(`emptyState.createFirstProject`)})})]})})},Ev=({className:e})=>(0,Y.jsx)(_g,{"aria-hidden":`true`,className:e}),Dv=({className:e})=>(0,Y.jsx)(Ag,{"aria-hidden":`true`,className:e}),Ov=({activeProjectId:e,projects:t,onEditProject:n,onProjectChange:r})=>{let[i,a]=(0,p.useState)(!1),[o,s]=(0,p.useState)(!1),c=(0,p.useRef)(null),l=t.find(t=>t.id===e)??null,u=t.length>4,d=(0,p.useCallback)(()=>{let e=c.current?.getBoundingClientRect();if(!e)return!1;let t=window.innerHeight-e.bottom-16,n=e.top-16;return t<320&&n>t},[]);return(0,p.useEffect)(()=>{if(!i)return;let e=()=>{s(d())};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[d,i]),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-stretch`,children:[(0,Y.jsxs)(ev,{open:i,onOpenChange:e=>{e&&s(d()),a(e)},children:[(0,Y.jsx)(`div`,{className:`relative min-w-0 flex-1`,ref:c,children:(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(`button`,{type:`button`,"aria-label":`Active project`,disabled:t.length===0,className:`group flex h-10 w-full min-w-0 cursor-pointer items-center justify-between gap-2 rounded-l-xl rounded-r-none border border-border/70 bg-card/70 px-3 text-left transition-colors hover:border-border hover:bg-accent/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 disabled:cursor-not-allowed disabled:opacity-60`,children:[(0,Y.jsx)(`div`,{className:`flex min-w-0 items-center gap-2`,children:(0,Y.jsx)(`span`,{className:`truncate text-sm font-medium text-foreground`,children:l?.name??`No projects yet`})}),(0,Y.jsx)(`span`,{className:`flex h-6 w-6 items-center justify-center text-muted-foreground transition-colors group-hover:text-foreground`,children:(0,Y.jsx)(Ev,{className:`h-4 w-4`})})]})})}),(0,Y.jsx)(nv,{side:o?`top`:`bottom`,align:`start`,className:`w-[var(--radix-popover-trigger-width)] min-w-[22rem] p-0`,children:(0,Y.jsxs)(q_,{filter:(e,t,n)=>fv(t,[e,...n??[]]),children:[u&&(0,Y.jsx)(J_,{placeholder:`Filter projects...`}),(0,Y.jsxs)(Y_,{className:`max-h-72`,children:[(0,Y.jsx)(X_,{children:`No matches`}),(0,Y.jsx)(Z_,{children:t.map(t=>(0,Y.jsx)(Q_,{value:`${t.name} ${t.id}`,keywords:[t.name,t.repo_path,t.id],"data-checked":t.id===e,onSelect:()=>{r(t.id),a(!1)},children:(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate font-medium text-foreground`,children:t.name}),(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:t.repo_path})]})},t.id))})]})]})})]}),(0,Y.jsx)(Z,{type:`button`,"aria-label":`Edit project settings`,onClick:n,disabled:!e,variant:`outline`,size:`icon-sm`,className:`h-10 rounded-l-none border-l-0 border-border/70 bg-card/70`,children:(0,Y.jsx)(Dv,{className:`h-4 w-4`})})]})};function kv({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`skeleton`,className:X(`animate-pulse rounded-2xl bg-muted`,e),...t})}var Av=({className:e=``})=>(0,Y.jsx)(kv,{"aria-hidden":`true`,className:X(`inline-flex rounded-md bg-[linear-gradient(90deg,_rgba(30,35,49,0.9),_rgba(63,72,98,0.95),_rgba(30,35,49,0.9))]`,e)}),jv=({stats:e=null,isLoading:t=!1,showFiles:n=!1,className:r=``})=>{if(!e&&!t)return null;if(t)return(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-stats-skeleton`,className:`flex items-center gap-2 text-[11px] font-medium ${r}`.trim(),children:(0,Y.jsx)(Av,{className:`h-3.5 shrink-0 rounded-full ${n?`w-28`:`w-20`}`})});let i=e.files_changed===1?`1 file`:`${e.files_changed} files`;return(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium ${r}`.trim(),children:[n&&(0,Y.jsx)(`span`,{className:`text-muted-foreground text-nowrap`,children:i}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,e.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,e.deletions]})]})},Mv=({className:e})=>(0,Y.jsx)(see,{"aria-hidden":`true`,className:e}),Nv=({className:e})=>(0,Y.jsx)(xg,{"aria-hidden":`true`,className:e}),Pv=({className:e})=>(0,Y.jsx)(cg,{"aria-hidden":`true`,className:e}),Fv=({className:e})=>(0,Y.jsx)(pee,{"aria-hidden":`true`,className:e}),Iv=({className:e})=>(0,Y.jsx)(Eg,{"aria-hidden":`true`,className:e}),Lv=({className:e})=>(0,Y.jsx)(xg,{"aria-hidden":`true`,className:e}),Rv=({className:e})=>(0,Y.jsx)(Ng,{"aria-hidden":`true`,className:e}),zv=({className:e})=>(0,Y.jsx)(Pg,{"aria-hidden":`true`,className:e});function Bv(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var Vv=e=>{switch(e){case`success`:return Wv;case`info`:return Kv;case`warning`:return Gv;case`error`:return qv;default:return null}},Hv=Array(12).fill(0),Uv=({visible:e,className:t})=>p.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},p.createElement(`div`,{className:`sonner-spinner`},Hv.map((e,t)=>p.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),Wv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),Gv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),Kv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),qv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},p.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),Jv=p.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},p.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),p.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),Yv=()=>{let[e,t]=p.useState(document.hidden);return p.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},Xv=1,Zv=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:Xv++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],p.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if($v(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!p.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||Xv++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Qv=(e,t)=>{let n=t?.id||Xv++;return Zv.addToast({title:e,...t,id:n}),n},$v=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,Q=Object.assign(Qv,{success:Zv.success,info:Zv.info,warning:Zv.warning,error:Zv.error,custom:Zv.custom,message:Zv.message,promise:Zv.promise,dismiss:Zv.dismiss,loading:Zv.loading},{getHistory:()=>Zv.toasts,getToasts:()=>Zv.getActiveToasts()});Bv(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function ey(e){return e.label!==void 0}var ty=3,ny=`24px`,ry=`16px`,iy=4e3,bee=356,xee=14,See=45,Cee=200;function ay(...e){return e.filter(Boolean).join(` `)}function wee(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var Tee=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:m,style:h,cancelButtonStyle:g,actionButtonStyle:_,className:v=``,descriptionClassName:y=``,duration:b,position:x,gap:S,expandByDefault:C,classNames:w,icons:T,closeButtonAriaLabel:E=`Close toast`}=e,[D,O]=p.useState(null),[k,A]=p.useState(null),[j,M]=p.useState(!1),[N,P]=p.useState(!1),[F,I]=p.useState(!1),[L,R]=p.useState(!1),[z,B]=p.useState(!1),[V,H]=p.useState(0),[ee,U]=p.useState(0),te=p.useRef(n.duration||b||iy),ne=p.useRef(null),re=p.useRef(null),ie=c===0,ae=c+1<=o,oe=n.type,W=n.dismissible!==!1,se=n.className||``,ce=n.descriptionClassName||``,le=p.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),ue=p.useMemo(()=>n.closeButton??m,[n.closeButton,m]),de=p.useMemo(()=>n.duration||b||iy,[n.duration,b]),fe=p.useRef(0),pe=p.useRef(0),me=p.useRef(0),he=p.useRef(null),[ge,_e]=x.split(`-`),ve=p.useMemo(()=>s.reduce((e,t,n)=>n>=le?e:e+t.height,0),[s,le]),ye=Yv(),G=n.invert||t,be=oe===`loading`;pe.current=p.useMemo(()=>le*S+ve,[le,ve]),p.useEffect(()=>{te.current=de},[de]),p.useEffect(()=>{M(!0)},[]),p.useEffect(()=>{let e=re.current;if(e){let t=e.getBoundingClientRect().height;return U(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),p.useLayoutEffect(()=>{if(!j)return;let e=re.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,U(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[j,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let xe=p.useCallback(()=>{P(!0),H(pe.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},Cee)},[n,d,a,pe]);p.useEffect(()=>{if(n.promise&&oe===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||ye?(()=>{if(me.current<fe.current){let e=new Date().getTime()-fe.current;te.current-=e}me.current=new Date().getTime()})():te.current!==1/0&&(fe.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),xe()},te.current)),()=>clearTimeout(e)},[u,i,n,oe,ye,xe]),p.useEffect(()=>{n.delete&&(xe(),n.onDismiss==null||n.onDismiss.call(n,n))},[xe,n.delete]);function Se(){return T?.loading?p.createElement(`div`,{className:ay(w?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":oe===`loading`},T.loading):p.createElement(Uv,{className:ay(w?.loader,n?.classNames?.loader),visible:oe===`loading`})}let Ce=n.icon||T?.[oe]||Vv(oe);return p.createElement(`li`,{tabIndex:0,ref:re,className:ay(v,se,w?.toast,n?.classNames?.toast,w?.default,w?.[oe],n?.classNames?.[oe]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":j,"data-promise":!!n.promise,"data-swiped":z,"data-removed":N,"data-visible":ae,"data-y-position":ge,"data-x-position":_e,"data-index":c,"data-front":ie,"data-swiping":F,"data-dismissible":W,"data-type":oe,"data-invert":G,"data-swipe-out":L,"data-swipe-direction":k,"data-expanded":!!(u||C&&j),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${N?V:pe.current}px`,"--initial-height":C?`auto`:`${ee}px`,...h,...n.style},onDragEnd:()=>{I(!1),O(null),he.current=null},onPointerDown:e=>{e.button!==2&&(be||!W||(ne.current=new Date,H(pe.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(I(!0),he.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(L||!W)return;he.current=null;let e=Number(re.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(re.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-ne.current?.getTime(),i=D===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=See||a>.11){H(pe.current),n.onDismiss==null||n.onDismiss.call(n,n),A(D===`x`?e>0?`right`:`left`:t>0?`down`:`up`),xe(),R(!0);return}else{var o,s;(o=re.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=re.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}B(!1),I(!1),O(null)},onPointerMove:t=>{var n,r;if(!he.current||!W||window.getSelection()?.toString().length>0)return;let i=t.clientY-he.current.y,a=t.clientX-he.current.x,o=e.swipeDirections??wee(x);!D&&(Math.abs(a)>1||Math.abs(i)>1)&&O(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(D===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(D===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&B(!0),(n=re.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=re.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},ue&&!n.jsx&&oe!==`loading`?p.createElement(`button`,{"aria-label":E,"data-disabled":be,"data-close-button":!0,onClick:be||!W?()=>{}:()=>{xe(),n.onDismiss==null||n.onDismiss.call(n,n)},className:ay(w?.closeButton,n?.classNames?.closeButton)},T?.close??Jv):null,(oe||n.icon||n.promise)&&n.icon!==null&&(T?.[oe]!==null||n.icon)?p.createElement(`div`,{"data-icon":``,className:ay(w?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||Se():null,n.type===`loading`?null:Ce):null,p.createElement(`div`,{"data-content":``,className:ay(w?.content,n?.classNames?.content)},p.createElement(`div`,{"data-title":``,className:ay(w?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?p.createElement(`div`,{"data-description":``,className:ay(y,ce,w?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),p.isValidElement(n.cancel)?n.cancel:n.cancel&&ey(n.cancel)?p.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||g,onClick:e=>{ey(n.cancel)&&W&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),xe())},className:ay(w?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,p.isValidElement(n.action)?n.action:n.action&&ey(n.action)?p.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||_,onClick:e=>{ey(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&xe())},className:ay(w?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function oy(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function Eee(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?ry:ny;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var Dee=p.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:h,style:g,visibleToasts:_=ty,toastOptions:v,dir:y=oy(),gap:b=xee,icons:x,containerAriaLabel:S=`Notifications`}=e,[C,w]=p.useState([]),T=p.useMemo(()=>n?C.filter(e=>e.toasterId===n):C.filter(e=>!e.toasterId),[C,n]),E=p.useMemo(()=>Array.from(new Set([i].concat(T.filter(e=>e.position).map(e=>e.position)))),[T,i]),[D,O]=p.useState([]),[k,A]=p.useState(!1),[j,M]=p.useState(!1),[N,P]=p.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),F=p.useRef(null),I=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),L=p.useRef(null),R=p.useRef(!1),z=p.useCallback(e=>{w(t=>(t.find(t=>t.id===e.id)?.delete||Zv.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return p.useEffect(()=>Zv.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{w(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{m.flushSync(()=>{w(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[C]),p.useEffect(()=>{if(d!==`system`){P(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?P(`dark`):P(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{P(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{P(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),p.useEffect(()=>{C.length<=1&&A(!1)},[C]),p.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;A(!0),(t=F.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===F.current||F.current?.contains(document.activeElement))&&A(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),p.useEffect(()=>{if(F.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,R.current=!1)}},[F.current]),p.createElement(`section`,{ref:t,"aria-label":`${S} ${I}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},E.map((t,n)=>{let[i,a]=t.split(`-`);return T.length?p.createElement(`ol`,{key:t,dir:y===`auto`?oy():y,tabIndex:-1,ref:F,className:c,"data-sonner-toaster":!0,"data-sonner-theme":N,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${D[0]?.height||0}px`,"--width":`${bee}px`,"--gap":`${b}px`,...g,...Eee(l,u)},onBlur:e=>{R.current&&!e.currentTarget.contains(e.relatedTarget)&&(R.current=!1,L.current&&=(L.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||R.current||(R.current=!0,L.current=e.relatedTarget)},onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>{j||A(!1)},onDragEnd:()=>A(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||M(!0)},onPointerUp:()=>M(!1)},T.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>p.createElement(Tee,{key:n.id,icons:x,index:i,toast:n,defaultRichColors:f,duration:v?.duration??h,className:v?.className,descriptionClassName:v?.descriptionClassName,invert:r,visibleToasts:_,closeButton:v?.closeButton??s,interacting:j,position:t,style:v?.style,unstyled:v?.unstyled,classNames:v?.classNames,cancelButtonStyle:v?.cancelButtonStyle,actionButtonStyle:v?.actionButtonStyle,closeButtonAriaLabel:v?.closeButtonAriaLabel,removeToast:z,toasts:T.filter(e=>e.position==n.position),heights:D.filter(e=>e.position==n.position),setHeights:O,expandByDefault:o,gap:b,expanded:k,swipeDirections:e.swipeDirections}))):null}))}),Oee=[...[`plan`,`build`,`review`],`done`],kee=e=>[...e].sort((e,t)=>{let n=e.bundle_execution_position??2**53-1,r=t.bundle_execution_position??2**53-1;if(n!==r)return n-r;if(e.created_at!==t.created_at)return e.created_at.localeCompare(t.created_at);let i=e.title.localeCompare(t.title,void 0,{sensitivity:`base`});return i===0?e.id.localeCompare(t.id):i}),Aee=(e,t)=>{let n=e.worktree_bundle_id?t.get(e.worktree_bundle_id)??null:null;return e.bundle&&n?{...e.bundle,...n,pull_request:n.pull_request??e.bundle.pull_request}:n??e.bundle??null},jee=e=>e.kind===`project_root`?!0:e.has_prepared_worktree!==!1,sy=e=>e.filter(e=>e.kind!==`project_root`&&jee(e)),cy=e=>[...e].filter(e=>e.session_id).sort((e,t)=>e.updated_at===t.updated_at?t.id.localeCompare(e.id):t.updated_at.localeCompare(e.updated_at))[0]??null,Mee=e=>[...e].filter(e=>e.state!==`plan`&&e.build_completed_at).sort((e,t)=>{let n=e.build_completed_at??``,r=t.build_completed_at??``;return n===r?e.updated_at===t.updated_at?t.id.localeCompare(e.id):t.updated_at.localeCompare(e.updated_at):r.localeCompare(n)})[0]??null,ly=e=>e.has_worktree??!!(e.bundle?.branch??e.branch),uy=(e,t={})=>{let n=t.targetTicketId?e.find(e=>e.id===t.targetTicketId)??null:null,r=t.reviewOwnerTicketId?e.find(e=>e.id===t.reviewOwnerTicketId)??null:null,i=Mee(e),a=t.latestSessionTicketId?e.find(e=>e.id===t.latestSessionTicketId&&e.session_id)??null:cy(e),o=t.latestSessionTicketId?e.find(e=>e.id===t.latestSessionTicketId)??null:null;return n??r??i??a??o??e.find(e=>ly(e))??e.find(e=>e.state!==`plan`)??e[0]??null},dy=(e,t,n)=>{let r=new Map(t.map(e=>[e.id,e])),i=e.filter(e=>n===`done`?e.parked_at!==null:e.state===n&&e.parked_at===null),a=new Map;for(let e of i){if(!e.worktree_bundle_id)continue;let t=a.get(e.worktree_bundle_id);if(t){t.push(e);continue}a.set(e.worktree_bundle_id,[e])}let o=new Set;return i.flatMap(e=>{if(!e.worktree_bundle_id)return[{kind:`ticket`,ticket:e}];if(o.has(e.worktree_bundle_id))return[];o.add(e.worktree_bundle_id);let t=a.get(e.worktree_bundle_id)??[e];if(t.length===1)return[{kind:`ticket`,ticket:t[0]}];let i=Aee(t[0],r);return i?[{kind:`bundle`,group:{id:`${i.id}:${n}`,bundle:i,column:n,tickets:kee(t)}}]:t.map(e=>({kind:`ticket`,ticket:e}))})},Nee=e=>`bundle-group:${e.id}`,fy=e=>{if(!e.startsWith(`bundle-group:`))return null;let t=e.slice(13),n=t.lastIndexOf(`:`);if(n<=0)return null;let r=t.slice(0,n),i=t.slice(n+1);return Oee.includes(i)?{bundleId:r,column:i}:null},py=e=>{let t=e.trim();for(;t!==``;){let e=t.match(/^(.*?) \(([^()]+)\)$/);if(!e)return t;let n=e[1]?.trim()??``,r=e[2]?.trim()??``,i=n.toLowerCase(),a=r.toLowerCase();if(i===a){t=n;continue}if(i.endsWith(` (${a})`)){t=n;continue}return t}return e.trim()},Pee=(e,t)=>{let n=py(e),r=t.trim();if(n===``||r===``)return n;let i=` (${r})`,a=n;for(;a.toLowerCase().endsWith(i.toLowerCase());)a=a.slice(0,-i.length).trimEnd();return a||n},my=e=>{if(e.kind===`project_root`)return e.branch===`__project_root__`?e.name??``:e.branch??``;let t=py(e.name||e.branch||``);return e.branch?Pee(t,e.branch):t},hy=e=>{if(e.kind===`project_root`)return e.branch===`__project_root__`?`Project root`:`Project root (${e.branch})`;let t=my(e),n=e.branch??``,r=t.trim().toLowerCase(),i=n.trim().toLowerCase();return t===``||n===``?t||n:r===i?t:`${t} (${n})`},gy=({className:e})=>(0,Y.jsx)(lee,{"aria-hidden":`true`,className:e}),_y=`Selected bundle`,vy=e=>!e||e.status===`loading`?null:e.status===`ready`&&e.branch?e.branch:e.status===`detached`?`Detached HEAD`:`Unknown branch`,yy=(e,t,n)=>{if(e.active_target_kind===`bundle`&&e.active_target_bundle_id){let t=n.find(t=>t.id===e.active_target_bundle_id)??null;return t?my(t):_y}return vy(t)??`Loading target...`},by=e=>{let t=vy(e);return t?`Repo root (${t})`:`Repo root`},xy=(e,t,n)=>e.active_target_kind===`bundle`?n===null?`text-[#8d92aa]`:n?`text-amber-300`:`text-emerald-200`:t?.status===`ready`?t.canPull?`text-amber-300`:`text-emerald-200`:`text-[#8d92aa]`,Sy=({activeProject:e,branchState:t,bundles:n,branchSuggestions:r,activeTargetCanPull:i=null,isBundleLoading:a=!1,isLoading:o,onOpenChange:s,onSelectBundle:c,onSelectRepoRoot:l,targetGitStatus:u=null,activeBranchAction:d=null,onRebase:f,onManageBundles:m})=>{let{t:h}=Ue(`common`),[g,_]=(0,p.useState)(!1),[v,y]=(0,p.useState)(``),[b,x]=(0,p.useState)(!1),S=e.active_target_kind!==`bundle`,C=(0,p.useMemo)(()=>sy(n),[n]),w=(0,p.useMemo)(()=>e.active_target_kind!==`bundle`||!e.active_target_bundle_id?null:n.find(t=>t.id===e.active_target_bundle_id)??null,[e.active_target_bundle_id,e.active_target_kind,n]),T=(0,p.useMemo)(()=>yy(e,t,n),[e,t,n]),E=(0,p.useMemo)(()=>by(t),[t]),D=(0,p.useMemo)(()=>xy(e,t,i),[e,i,t]),O=o||a,k=e.active_target_kind===`bundle`&&!!e.active_target_bundle_id&&w===null&&a,A=S&&t?.status===`loading`||k,j=(0,p.useMemo)(()=>{let e=r.current_branch;return[{key:`default`,label:`Default branch`,branch:r.default_branch},{key:`previous`,label:`Previous branch`,branch:r.previous_branch}].filter(t=>t.branch?t.branch!==e:!1).filter((e,t,n)=>n.findIndex(t=>t.branch===e.branch)===t)},[r]),M=(0,p.useMemo)(()=>u?.base_branch?h(`projectFooter.rebaseOnto`,{branch:u.base_branch}):h(`projectFooter.rebase`),[h,u?.base_branch]),N=u?.operation_state===`idle`,P=!f||!N||!!u?.rebase_disabled_reason||d!==null||b;(0,p.useEffect)(()=>{g&&y(t?.branch??``)},[t?.branch,g]);let F=e=>{_(e),s?.(e)},I=async e=>{x(!0);try{await c(e)&&_(!1)}catch(e){Q.error(e instanceof Error?e.message:`Unable to switch to that bundle right now.`)}finally{x(!1)}},L=async(e,t)=>{x(!0);try{await l(e,t)&&_(!1)}catch(e){Q.error(e instanceof Error?e.message:`Unable to switch the repo root target right now.`)}finally{x(!1)}},R=async()=>{if(f){x(!0);try{await f(),_(!1)}catch(e){Q.error(e instanceof Error?e.message:h(`projectFooter.rebaseFallbackError`))}finally{x(!1)}}};return(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsxs)(ev,{open:g,onOpenChange:F,children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsx)(`button`,{type:`button`,"aria-busy":A,className:`flex max-w-full cursor-pointer items-center overflow-hidden rounded-xl border border-border/70 bg-card/70 px-3 py-2 text-left shadow-sm transition hover:border-border hover:bg-accent/25 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60`,"data-testid":`active-project-branch`,children:A?(0,Y.jsx)(Av,{className:`h-3.5 w-20`}):(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1 ${D}`,children:[(0,Y.jsx)(gy,{className:`h-3.5 w-3.5 shrink-0`}),(0,Y.jsx)(`span`,{className:`truncate font-medium`,children:T})]})})}),(0,Y.jsx)(nv,{align:`start`,className:`w-[26rem] max-w-[calc(100vw-2rem)] p-4`,children:(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-sm font-semibold text-foreground`,children:`Project target`}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Choose the repo root or a prepared bundle for new chat sessions.`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Target`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:S?`secondary`:`ghost`,className:`w-full justify-start`,disabled:b,onClick:()=>{L(null)},children:E}),(0,Y.jsxs)(`div`,{className:`relative min-h-10`,"data-testid":`project-target-options`,children:[O&&(0,Y.jsx)(`div`,{className:`pointer-events-none absolute right-2 top-2 z-10 text-muted-foreground`,"data-testid":`project-target-options-spinner`,children:(0,Y.jsx)(Fv,{className:`h-3.5 w-3.5 animate-spin`})}),(0,Y.jsx)(`div`,{className:`max-h-40 overflow-y-auto pr-7`,children:C.length===0&&!O?(0,Y.jsx)(`p`,{className:`px-2 py-2 text-xs text-muted-foreground`,children:`No bundles loaded yet.`}):C.map(t=>(0,Y.jsx)(Z,{type:`button`,variant:e.active_target_kind===`bundle`&&e.active_target_bundle_id===t.id?`secondary`:`ghost`,className:`w-full justify-start`,disabled:b,onClick:()=>{I(t.id)},children:my(t)},t.id))})]})]}),m&&(0,Y.jsx)(Z,{type:`button`,disabled:b,onClick:()=>{_(!1),m()},className:`w-full`,children:`Manage bundles`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Repo root branch`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-3`,children:[(0,Y.jsx)(`div`,{className:`space-y-2`,children:j.length>0?j.map(({key:e,label:t,branch:n})=>(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,className:`w-full justify-between`,disabled:!S||b||!n,onClick:()=>{L(n)},children:[(0,Y.jsx)(`span`,{children:t}),(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n})]},e)):(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o?`Loading branch suggestions...`:`No suggested branches available.`})}),(0,Y.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsx)($_,{htmlFor:`project-target-branch-input`,className:`text-xs text-muted-foreground`,children:`Switch or create branch`}),(0,Y.jsx)(z_,{id:`project-target-branch-input`,value:v,disabled:!S||b,onChange:e=>y(e.target.value),placeholder:`feature/quick-fix`})]}),(0,Y.jsx)(Z,{type:`button`,disabled:!S||!v.trim()||b,onClick:()=>{L(v)},children:`Switch`})]})]})]}),N&&(0,Y.jsxs)(`div`,{className:`space-y-2 border-t border-border/70 pt-4`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:h(`projectFooter.currentTargetActions`)}),(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,className:`w-full justify-between`,disabled:P,title:u?.rebase_disabled_reason??void 0,onClick:()=>{R()},children:[(0,Y.jsx)(`span`,{children:M}),d===`rebase`&&(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`})]})]})]})})]})})},Cy=(e,t=!1)=>e?e.status===`loading`?{kind:`loading`}:e.status===`ready`&&e.branch?{kind:`text`,toneClassName:t?`text-amber-300`:`text-emerald-200`,value:e.branch}:e.status===`detached`?{kind:`text`,toneClassName:`text-[#8d92aa]`,value:``,translationKey:`projectFooter.detachedHead`}:{kind:`text`,toneClassName:`text-[#8d92aa]`,value:``,translationKey:`projectFooter.unknownBranch`}:null,wy=({activeProject:e,activeRun:t,branchState:n,targetGitStatus:r,isBoardLoadedForActiveProject:i,activeProjectBranchAction:a,isProjectIdeAvailable:o,isProjectRunAvailable:s,isRunStatusLoadedForActiveProject:c,isTerminalOpen:l,hasConfiguredTests:u,targetBundles:d,targetBranchSuggestions:f,isTargetBundleLoading:p,isTargetSelectorLoading:m,isTargetGitStatusLoading:h,onProjectChangesOpen:g,onProjectTestsOpen:_,onProjectPull:v,onProjectRebase:y,onProjectAbortGitOperation:b,onProjectRunToggle:x,onTerminalToggle:S,onProjectIdeOpen:C,onTargetSelectorOpenChange:w,onSelectBundleTarget:T,onSelectRepoRootTarget:E,onManageBundles:D})=>{let{t:O}=Ue(`common`),k=r?.operation_state??`idle`,A=!!(e&&r&&r.behind>0&&k===`idle`),j=(()=>{let e=Cy(n,A);return e?.kind!==`text`||!e.translationKey?e:{...e,value:O(e.translationKey)}})(),M=j?.kind===`loading`,N=a===`pull`,P=a===`abort`,F=!!(e&&r&&r.branch&&r.behind>0&&a===null),I=(r?.behind??0)>0&&(r?.ahead??0)>0?O(`projectFooter.sync`):O(`projectFooter.pull`),L=k===`merge`||k===`rebase`,R=O(k===`merge`?`projectFooter.abortMerge`:`projectFooter.abortRebase`),z=!!e,B=!!(e&&n?.diffStats?.is_dirty),V=O(l?`workspaceControls.hideTerminalAriaLabel`:`workspaceControls.openTerminalAriaLabel`),H=e?.active_target_kind??`repo_root`,ee=e?.active_target_bundle_id??null,U=e!==null&&t?.kind===`project`&&t.project_id===e.id&&(t.target_kind??`repo_root`)===H&&((t.target_kind??`repo_root`)!==`bundle`||t.target_bundle_id===ee),te=e!==null&&!U&&(!i||!c),ne=!e||!U&&(!s||t!==null||te),re=O(U?`projectFooter.stop`:`projectFooter.run`),ie=(()=>{if(!e)return O(`projectFooter.selectProjectFirst`);if(!U){if(!s)return O(`projectFooter.addRunConfig`);if(te)return O(`projectFooter.loadingProjectStatus`);if(t?.kind===`project`)return O(`projectFooter.stopSelectedTargetRun`);if(t?.kind===`ticket`)return O(`projectFooter.stopTicketBeforeSelectedTargetRun`)}})();return(0,Y.jsx)(`footer`,{className:`border-t border-border bg-background/95 px-6 py-3 backdrop-blur`,"data-testid":`project-footer`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-3 overflow-hidden px-1 text-xs text-muted-foreground sm:gap-4`,children:[e&&j&&(0,Y.jsx)(`div`,{className:`flex max-w-full items-center gap-2 overflow-hidden`,children:(0,Y.jsx)(Sy,{activeProject:e,branchState:n,bundles:d,branchSuggestions:f,activeTargetCanPull:e?.active_target_kind===`bundle`?r?r.behind>0:h?null:!1:null,isBundleLoading:p,isLoading:m||M,onOpenChange:w,onSelectBundle:T,onSelectRepoRoot:E,targetGitStatus:r,activeBranchAction:a,onRebase:y,onManageBundles:D})}),L&&(0,Y.jsxs)(Z,{type:`button`,onClick:()=>{b()},disabled:a!==null,variant:`outline`,className:`h-8 gap-2 px-3 text-xs`,children:[P?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Rv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:P?O(`projectFooter.aborting`):R})]}),A&&(0,Y.jsxs)(Z,{type:`button`,onClick:v,disabled:!F,variant:`outline`,className:`h-8 gap-2 px-3 text-xs`,children:[N?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:N?I===O(`projectFooter.sync`)?O(`projectFooter.syncing`):O(`projectFooter.pulling`):I})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-3 sm:gap-4`,children:[B&&n?.diffStats&&(0,Y.jsx)(jv,{stats:n.diffStats,showFiles:!0,className:`text-xs`}),z&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":O(`workspaceControls.changes`),onClick:g,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Nv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.changes`)})]}),u&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":O(`workspaceControls.tests`),onClick:_,disabled:!e,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Mv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.tests`)})]}),(0,Y.jsxs)(Z,{type:`button`,"aria-label":V,"aria-pressed":l,onClick:S,disabled:!e,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(zv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.terminal`)})]}),e&&o&&(0,Y.jsxs)(Z,{type:`button`,onClick:C,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Pv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:O(`workspaceControls.openIde`)})]}),(0,Y.jsxs)(Z,{type:`button`,"data-testid":`project-root-run-button`,disabled:ne,title:ie,onClick:x,variant:U?`destructive`:`secondary`,className:[`gap-2`,U?``:`bg-sky-700 text-sky-100 hover:bg-sky-600 hover:text-white`,ne?`bg-slate-700 text-slate-400 hover:bg-slate-700 hover:text-slate-400`:``].join(` `),children:[U&&(0,Y.jsx)(`span`,{className:`h-2 w-2 flex-shrink-0 rounded-full bg-emerald-400 animate-pulse`,"data-testid":`project-root-run-indicator`}),U?(0,Y.jsx)(Rv,{className:`h-4 w-4`}):(0,Y.jsx)(Iv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:re})]})]})]})})},Ty=({state:e,className:t})=>e?(0,Y.jsx)(`span`,{"aria-hidden":`true`,"data-activity-indicator":`true`,"data-state":e,"data-testid":`workspace-activity-indicator`,className:X(`h-2 w-2 flex-shrink-0 rounded-full`,e===`running`?`animate-pulse bg-amber-300`:e===`inactive`?`bg-zinc-500/70 ring-1 ring-zinc-400/20`:e===`interrupted`?`bg-amber-400/80 ring-1 ring-amber-400/30`:e===`error`?`bg-rose-400/90 ring-1 ring-rose-400/30`:`bg-emerald-400/80 ring-1 ring-emerald-400/30`,t)}):null,Ey=({className:e})=>(0,Y.jsx)(Dg,{"aria-hidden":`true`,className:e}),Dy={"X-Archon-Desktop-Action":`mobile-access`},Oy=e=>J(qe(`/mobile-access/status`),{signal:e}),ky=e=>J(qe(`/mobile-access/enable`),{method:`POST`,headers:Dy,body:e}),Ay=()=>J(qe(`/mobile-access/disable`),{method:`POST`,headers:Dy}),jy=e=>J(qe(`/mobile-access/regenerate-pairing`),{method:`POST`,headers:Dy,body:{preferred_project_id:e??null}}),My=e=>J(qe(`/mobile-access/sessions/${encodeURIComponent(e)}/revoke`),{method:`POST`,headers:Dy}),Ny=new Set,Py=null,Fy=null,Iy=()=>{for(let e of Ny)e(Py)},Ly=()=>{Fy!==null&&(window.clearTimeout(Fy),Fy=null)},Ry=e=>{if(typeof window>`u`||(Ly(),e?.state!==`awaiting_pairing`||!e.pairing))return;let t=new Date(e.pairing.expires_at).getTime();if(Number.isNaN(t))return;let n=()=>{Py?.state!==`awaiting_pairing`||Py.pairing?.expires_at!==e.pairing?.expires_at||zy({...Py,state:`expired`,pairing:null})},r=t-Date.now();if(r<=0){n();return}Fy=window.setTimeout(n,r)},zy=e=>{Py=e,Ry(e),Iy()},By=async e=>{let t=await Oy(e);return zy(t),t},Vy=()=>{let[e,t]=(0,p.useState)(Py);return(0,p.useEffect)(()=>(Ny.add(t),()=>{Ny.delete(t)}),[]),e},Hy=e=>{(0,p.useEffect)(()=>{if(!e)return;let t=null,n=()=>{t?.abort(),t=new AbortController;let e=t;By(e.signal).catch(e=>{Ye(e)}).finally(()=>{t===e&&(t=null)})};n();let r=e=>{zy(e)},i=()=>{n()};return e.on(`mobile-access:status`,r),e.on(`connect`,i),()=>{t?.abort(),e.off(`mobile-access:status`,r),e.off(`connect`,i)}},[e])},Uy=e=>!e||e.state===`disabled`?`inactive`:e.state===`awaiting_pairing`?`running`:e.state===`connected`?`finished`:e.state===`expired`?`interrupted`:`error`,Wy=e=>!e||e.state===`disabled`?`Mobile access disabled`:e.state===`awaiting_pairing`?`Mobile access ready to pair`:e.state===`connected`?`Mobile access connected`:e.state===`expired`?`Mobile pairing expired`:e.error??`Mobile access unavailable`,Gy=e=>e?.state===`awaiting_pairing`?`border-amber-400/30 bg-amber-500/10 text-amber-100 hover:bg-amber-500/15 hover:text-amber-50`:e?.state===`connected`?`border-emerald-400/30 bg-emerald-500/10 text-emerald-100 hover:bg-emerald-500/15 hover:text-emerald-50`:e?.state===`expired`?`border-amber-400/20 bg-amber-500/6 text-amber-100/90 hover:bg-amber-500/12 hover:text-amber-50`:e?.state===`error`?`border-rose-400/30 bg-rose-500/10 text-rose-100 hover:bg-rose-500/15 hover:text-rose-50`:`border-border/70 bg-background/70 text-muted-foreground hover:bg-accent/20 hover:text-foreground`,Ky=({activeTool:e,onCreateProject:t,onMobileAccessOpen:n,onToolChange:r})=>{let i=Vy();return(0,Y.jsxs)(`div`,{className:`flex w-full flex-wrap items-center justify-start gap-3 sm:justify-end`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1 rounded-xl border border-border/70 bg-background/70 p-1 shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]`,children:[`opencode`,`claude`].map(t=>{let n=e===t;return(0,Y.jsx)(Z,{type:`button`,variant:n?`secondary`:`ghost`,size:`xs`,className:n?`rounded-lg px-2.5 text-xs text-foreground`:`rounded-lg px-2.5 text-xs text-muted-foreground hover:text-foreground`,onClick:()=>r(t),children:t===`opencode`?`OpenCode`:`Claude`},t)})}),n&&(0,Y.jsx)(Sv,{content:Wy(i),children:(0,Y.jsxs)(Z,{type:`button`,"aria-label":`Open mobile access`,onClick:n,variant:`ghost`,className:`h-8 gap-2 rounded-xl border px-3 text-sm font-medium ${Gy(i)}`,children:[(0,Y.jsx)(Ty,{state:Uy(i),className:`mt-0`}),(0,Y.jsx)(`span`,{children:`Mobile`})]})})]}),(0,Y.jsxs)(Z,{type:`button`,onClick:t,variant:`ghost`,className:`h-8 gap-2 rounded-xl border border-border/70 px-3 text-foreground hover:bg-accent/20`,children:[(0,Y.jsx)(Ey,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:`New project`})]})]})},qy=()=>(0,Y.jsx)(Dee,{closeButton:!0,expand:!0,theme:`dark`,position:`top-left`,richColors:!0,toastOptions:{classNames:{toast:`border border-border bg-card text-card-foreground shadow-2xl shadow-black/35`,title:`text-sm font-medium text-card-foreground`,description:`text-xs text-muted-foreground`,closeButton:`border border-border bg-secondary text-secondary-foreground transition-colors hover:bg-accent hover:text-accent-foreground`,error:`border-red-500/30 bg-destructive/20 text-red-100`,success:`border-emerald-500/30 bg-emerald-500/15 text-emerald-100`,warning:`border-amber-500/30 bg-amber-500/15 text-amber-100`,info:`border-sky-500/30 bg-sky-500/15 text-sky-100`}}}),Jy=({className:e})=>(0,Y.jsx)(Ig,{"aria-hidden":`true`,className:e}),Yy=[],Xy=!1,Zy=()=>{if(!(typeof window>`u`)){if(Yy.length===0){Xy&&=(window.removeEventListener(`keydown`,Qy),!1);return}Xy||=(window.addEventListener(`keydown`,Qy),!0)}},Qy=e=>{if(e.key!==`Escape`)return;let t=Yy[Yy.length-1];t&&t.onClose()},$y=(e,t={})=>{let{disabled:n=!1}=t,r=(0,p.useRef)(e);(0,p.useEffect)(()=>{r.current=e},[e]),(0,p.useEffect)(()=>{if(n)return;let e={id:Symbol(`escape-close`),onClose:()=>r.current()};return Yy.push(e),Zy(),()=>{let t=Yy.findIndex(t=>t.id===e.id);t!==-1&&Yy.splice(t,1),Zy()}},[n])},eb=(...e)=>e.filter(Boolean).join(` `),tb=({children:e,onClose:t,overlayClassName:n,panelClassName:r,closeButtonClassName:i,closeButtonLabel:a=`Close modal`,renderContent:o})=>{$y(t);let s=(0,Y.jsx)(Z,{type:`button`,"aria-label":a,variant:`ghost`,size:`icon-sm`,onClick:t,className:eb(`cursor-pointer text-muted-foreground hover:text-foreground`,i),children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})});return(0,Y.jsx)(`div`,{className:eb(`fixed inset-0 z-50 flex items-center justify-center`,n),children:(0,Y.jsx)(`div`,{className:eb(`relative flex flex-col`,r),role:`dialog`,"aria-modal":`true`,onClick:e=>e.stopPropagation(),children:o?o({closeButton:s}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`absolute top-4 right-4 z-10`,children:s}),e]})})})},nb=({title:e,description:t,confirmLabel:n,cancelLabel:r,confirmVariant:i=`default`,onConfirm:a,onCancel:o})=>(0,Y.jsxs)(tb,{onClose:o,overlayClassName:`bg-black/60`,panelClassName:`max-w-md rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,Y.jsx)(`h2`,{className:`mb-3 text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:e}),(0,Y.jsx)(`p`,{className:`mb-6 text-sm text-foreground whitespace-pre-line`,children:t}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,onClick:o,children:r}),(0,Y.jsx)(Z,{type:`button`,variant:i,onClick:a,children:n})]})]}),rb=({isSubmitting:e,onCreateInitialCommit:t})=>(0,Y.jsx)(`div`,{className:`mx-6 mt-4 mb-4 w-fit max-w-[calc(100%-3rem)] rounded-2xl border border-amber-500/35 bg-amber-500/10 px-4 py-3 text-sm text-amber-100`,role:`alert`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col items-start gap-4 lg:flex-row lg:items-center`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`font-medium`,children:`This repository needs an initial commit before Archon can prepare bundle worktrees.`}),(0,Y.jsx)(`p`,{className:`text-xs leading-5 text-amber-100/90`,children:`Repo root chat still works. Create an initial commit to unblock bundle worktrees.`})]}),(0,Y.jsx)(Z,{type:`button`,variant:`warning`,className:`shrink-0`,disabled:e,onClick:t,children:e?`Creating initial commit...`:`Create initial commit`})]})}),ib=`common`,ab={en:{common:{appName:`Archon`,emptyState:{title:`Create your first project to start routing tickets into a real repo.`,description:`Pick the default agent Archon should use for planning and ticket work. Auto-config can optionally use a separate helper model.`,loadingToolPreference:`Loading tool preference...`,createFirstProject:`Create first project`},boardConfirmEmptyDoneModal:{heading:`Empty Done`,deletePrompt_one:`Delete {{count}} done ticket from the Done column?`,deletePrompt_other:`Delete {{count}} done tickets from the Done column?`,description:`Standalone ticket worktrees will be removed when applicable. Deleting the last parked ticket in a bundle also removes that shared bundle worktree.`,cancel:`Cancel`,deleting:`Deleting...`,confirm:`Delete all`},cardConfirmDeleteModal:{heading:`Delete ticket`,descriptionInBundle:`This removes the ticket from bundle "{{bundleName}}". The bundle and shared worktree stay available.`,descriptionStandalone:`This will also remove the worktree if one exists.`,cancel:`Cancel`,confirm:`Delete`},cardConfirmUndoModal:{defaultSubjectLabel:`ticket`,headingReview:`Undo review`,headingBuild:`Undo build`,descriptionReview:`This will revert the current review-step changes and move the {{subjectLabel}} back to build-done.`,descriptionBuild:`This will revert the current build-step changes and move the {{subjectLabel}} back to plan.`,cancel:`Cancel`,confirm:`Undo`},bundleSelector:{label:`Bundle`,emptyLabel:`No bundle`},jiraImportField:{error:`Unable to load the Jira issue right now.`,label:`Import from Jira`,placeholder:`PROJ-123 or issue URL`,importing:`Importing...`,import:`Import`},githubImportField:{error:`Unable to load the GitHub issue right now.`,label:`Import from GitHub`,placeholder:`Issue # or URL`,importing:`Importing...`,import:`Import`},externalImportField:{error:`Unable to load the {{provider}} issue right now.`,label:`Import from`,importing:`Importing...`,import:`Import`},newTicketModal:{heading:`New Ticket`,actions:{plan:`Plan`,createTicket:`Create Ticket`,createAndBuild:`Create & Build`}},bundleCard:{addTicketTooltip:`Add ticket to this bundle`,addTicketAriaLabel:`Add ticket to bundle {{bundleName}}`},ticketEditor:{automaticBundleLabel:`Create automatically`,planningFailed:`Planning failed. Please try again.`,bundleCreationUnavailable:`Bundle creation is unavailable.`,titleLabel:`Title`,titlePlaceholder:`What needs to be done?`,descriptionLabel:`Description`,descriptionPlaceholder:`Describe the task, acceptance criteria, context...`,bundlePreview:`Bundle preview:`,manageBundles:`Manage bundles`,cancel:`Cancel`,planning:`Planning...`},manageBundlesModal:{createError:`Unable to create the bundle right now.`,deleteError:`Unable to delete the bundle right now.`,title:`Manage bundles`,createTitle:`Create bundle`,createPendingTitle:`Preparing bundle workspace`,createPendingDescription:`Creating the worktree, syncing files, and running setup commands.`,bundleNameLabel:`Bundle name`,bundleNameAriaLabel:`Bundle name`,bundleNamePlaceholder:`Checkout flow`,createAction:`Create bundle`,existingTitle:`Existing bundles`,empty:`No bundles yet.`,selected:`Selected`,currentTarget:`Current target`,projectRootDescription:`Uses the project root on branch {{branch}}.`,switchTargetDescription:`Switch the project target away from this bundle before deleting it.`,inUseDescription:`Used by {{ticketCount}}.`,unusedDescription:`Unused and ready to delete.`,ticketCount_one:`{{count}} ticket`,ticketCount_other:`{{count}} tickets`,cancel:`Cancel`,deleting:`Deleting...`,deleteBundle:`Delete bundle`,delete:`Delete`,close:`Close`},card:{advance:{reviewBundle:`Review Bundle`,rerunReview:`Re-run review`},columnLabels:{plan:`Plan`,build:`Build`,review:`Review`,done:`Done`,trash:`Trash`},returnTo:`Return to {{state}}`,drawDependency:`Draw dependency`,createDependencyAriaLabel:`Create dependency from {{title}}`,undoInProgress:`Undo in progress...`},cardActionsMenu:{openAriaLabel:`Open actions menu for {{title}}`,delete:`Delete`,undoReview:`Undo Review`,undoBuild:`Undo Build`,buildChain:`Build Chain`,addTicketToBundle:`Add ticket`,run:`Run`,startingRun:`Starting Run...`,stopRun:`Stop Run`,stopping:`Stopping...`,pauseBuild:`Pause Build`,resumeBuild:`Resume Build`,changes:`Changes`,tests:`Tests`,openIde:`Open IDE`,stopBuildChain:`Stop Build Chain`,done:`Done`},statusBadge:{queued:`Queued`,planning:`Planning...`,building:`Building`,buildingWithGlyph:`⏳ Building`,reviewing:`Reviewing`,done:`✓ Done`,error:`✗ Error`,stopped:`Stopped`},cardStatusBadges:{stale:`Stale`,openQuestions:`Open questions`,chainStart:`Chain start`},column:{loadingCard:`Loading card {{index}}`,runDisabledReason:`Stop the currently running ticket before starting another run.`,newTicket:`+ New ticket`,undoInProgress:`Undo in progress...`},board:{notifications:{planningDoneTitle:`Planning done`,planningDoneBody_one:`{{count}} ticket created`,planningDoneBody_other:`{{count}} tickets created`},search:{placeholder:`Search tickets`,ariaLabel:`Search tickets`,clearAriaLabel:`Clear search`,hideStaleAriaLabel:`Hide stale tickets`,hideStaleLabel:`Hide stale tickets`},preview:{disabledProjectRoot:`Preview selection is unavailable for project root runs.`,disabledBuildCapable:`Preview selection is only available for build-capable ticket runs.`,disabledPlanMode:`Preview selection is unavailable while this ticket is in Plan mode.`,followUpBundlePlaceholder:`Follow up on this bundle`,followUpTicketPlaceholder:`Follow up on this ticket`},errors:{runBlockedByActive:`Stop the currently running ticket before starting another run.`,moveTicket:`Unable to move the ticket right now.`,createBundleWithoutProject:`Cannot create a bundle without an active project.`,missingBundleReviewTicket:`Requested ticket was not returned from the bundle review response.`,parkTicket:`Unable to park the ticket right now.`,returnTicket:`Unable to return the ticket right now.`,moveBundleToDone:`Unable to move the bundle to Done right now.`,restoreBundle:`Unable to restore the bundle right now.`,deleteBundleTickets:`Unable to delete the bundle tickets right now.`,generateTickets:`Unable to generate tickets right now.`,deleteTicket:`Unable to delete the ticket right now.`,undoTicket:`Unable to undo the ticket right now.`,startRun:`Unable to start the run right now.`,openIde:`Unable to open the IDE right now.`,sendFollowUp:`Unable to send the follow-up prompt right now.`,buildBundle:`Unable to build the bundle right now.`,reviewBundle:`Unable to review the bundle right now.`,undoBundleReview:`Unable to undo the bundle review right now.`,moveBundle:`Unable to move the bundle right now.`,startBuildChain:`Unable to start the build chain right now.`,stopBuildChain:`Unable to stop the build chain right now.`,emptyDone:`Unable to empty Done right now.`},toasts:{deleteDonePartial_one:`Deleted {{deletedCount}} done ticket, but {{failedCount}} failed.`,deleteDonePartial_other:`Deleted {{deletedCount}} done tickets, but {{failedCount}} failed.`,deleteDoneSuccess_one:`Deleted {{count}} done ticket.`,deleteDoneSuccess_other:`Deleted {{count}} done tickets.`,movedBundleToDonePartial:`Moved {{movedCount}} of {{totalCount}} bundle tickets to Done.`,restoredBundlePartial:`Restored {{restoredCount}} of {{totalCount}} bundle tickets.`,deletedBundleTicketsPartial:`Deleted {{deletedCount}} of {{totalCount}} bundle tickets.`,planningAgentCardsCreated_one:`{{count}} card created`,planningAgentCardsCreated_other:`{{count}} cards created`},doneColumn:{emptyAction:`Empty`},changes:{reviewPromptDisabledReason:`Wait for all bundle tickets to finish building before sending a follow-up prompt.`,modifyChangesDisabledReason:`Wait for all bundle tickets to finish building before modifying changes.`}},projectPreviewPane:{presets:{responsive:`Responsive`,phone:`Phone`,tablet:`Tablet`,laptop:`Laptop`},selection:{unavailableBuildCapable:`Preview selection is only available for build-capable ticket runs.`,waitForLoad:`Wait for the preview to finish loading first.`,enableMode:`Enable selection mode`,disableMode:`Disable selection mode`},targetSummary:{element:`Element`,unknownElement:`Unknown element`},iframeTitle:`Project preview`,pendingComments:{triggerLabel:`Pending comments`,title:`Pending comments`,description:`Review preview comments before sending them back to the agent.`,empty:`No preview comments queued yet.`,clearAll:`Clear all`,sending:`Sending...`,sendFixes:`Send fixes ({{count}})`,deleteAriaLabel:`Delete pending comment for {{elementLabel}}`},prompt:{bundlePlaceholder:`Follow up on this bundle`,ticketPlaceholder:`Follow up on this ticket`,defaultPlaceholder:`Describe what Archon should do next.`,toggleAriaLabel:`Toggle preview prompt`,button:`Prompt`,sent:`Prompt sent.`,sendError:`Unable to send the preview prompt right now.`},commentComposer:{editTitle:`Edit preview comment`,addTitle:`Add preview comment`,closeAriaLabel:`Close preview comment composer`,commentAriaLabel:`Preview comment`,placeholder:`Describe the change you want here.`,cancel:`Cancel`,save:`Save comment`,add:`Add comment`},toasts:{fixesSubmitted:`Fixes submitted.`,fixesError:`Unable to submit the preview review right now.`},states:{loadingTitle:`Loading preview`,loadingDescription:`Archon is loading the current preview state for this project.`,readyMissingUrlTitle:`Preview error`,readyMissingUrlDescription:`Archon did not provide a preview URL for the active run.`,detectingTitle:`Detecting preview`,detectingDescription:`Waiting for the preview service to report a browser URL.`,unsupportedTitle:`Preview unavailable`,unsupportedDescription:`This run cannot be embedded as an in-app preview.`,errorTitle:`Preview error`,errorDescription:`Archon could not load the current preview target.`,idleTitle:`Preview idle`,idleDescription:`Start a run to load the in-app preview.`},toolbar:{viewportPresetAriaLabel:`Preview viewport preset`,reloadAriaLabel:`Reload preview`,reloadTooltip:`Reload`,openNewTabAriaLabel:`Open preview in new tab`,openNewTabTooltip:`Open in new tab`,toggleSelectionAriaLabel:`Toggle preview selection mode`,stopRunAriaLabel:`Stop preview run`,stopping:`Stopping...`,stop:`Stop`,collapseAriaLabel:`Collapse preview`,collapseTooltip:`Collapse`,expandAriaLabel:`Expand preview`,expandTooltip:`Expand`,closeAriaLabel:`Close preview`,closeTooltip:`Close`}},mobileApp:{navigation:{overview:`Overview`,tickets:`Tickets`,chats:`Chats`},overviewActions:{ticketsAriaLabel:`Go to tickets section`,chatsAriaLabel:`Go to chats section`}},chatView:{tool:{claude:`Claude`,opencode:`OpenCode`},mode:{plan:`Plan`,build:`Build`},placeholders:{plan:`Ask Archon to scope, sequence, or reason through project work`,build:`Ask Archon to build, change, or verify something in this project`},shortcuts:{modifierMac:`CMD`,modifierDefault:`CTRL`,startNewSession:`Start new session`,switchToPlan:`Switch to Plan`,switchToBuild:`Switch to Build`},user:{you:`You`},targets:{bundleFallback:`Bundle target`,repoRoot:`Repo root`,repoRootWithBranch:`Repo root ({{branch}})`,currentTarget:`current target`,selectedBundleTarget:`selected bundle target`},pendingMemorySuggestions_one:`{{count}} pending memory suggestion`,pendingMemorySuggestions_other:`{{count}} pending memory suggestions`,deleteSessionModal:{title:`Delete chat session`,bulkTitle:`Delete chat sessions`,description:`This permanently removes the transcript history for this chat session.`,bulkDescription_one:`This permanently removes the transcript history for {{count}} chat session.`,bulkDescription_other:`This permanently removes the transcript history for {{count}} chat sessions.`,cancel:`Cancel`,deleting:`Deleting...`,delete:`Delete`},sidebar:{ariaLabel:`Chat sessions sidebar`,newSession:`New session`,select:`Select`,cancelSelection:`Cancel`,selectedCount_one:`{{count}} selected`,selectedCount_other:`{{count}} selected`,deleteSelected:`Delete selected`,collapseAriaLabel:`Collapse sessions panel`,openAriaLabel:`Open sessions panel`,loadingSessions:`Loading chat sessions...`,noSessions:`No chat sessions yet.`,deleteDisabledReason:`Wait for the current chat response to finish before deleting this session.`,running:`Running`,interrupted:`Interrupted`,finished:`Finished`,targetUnavailable:`Target unavailable`,deleteSessionAriaLabel:`Delete chat session`,deleteSessionTitle:`Delete {{title}}`,selectSessionAriaLabel:`Select {{title}}`,selectSessionTitle:`Select {{title}}`},toasts:{deleteSelectedPartial_one:`Deleted {{deletedCount}} chat session, but {{failedCount}} failed.`,deleteSelectedPartial_other:`Deleted {{deletedCount}} chat sessions, but {{failedCount}} failed.`,deleteSelectedSuccess_one:`Deleted {{count}} chat session.`,deleteSelectedSuccess_other:`Deleted {{count}} chat sessions.`},ticketProposal:{createdTitle:`Tickets created`,createdDescription_one:`Created {{count}} ticket from this proposal.`,createdDescription_other:`Created {{count}} tickets from this proposal.`,proposedTitle:`Proposed tickets`,proposedDescription:`Review these tickets before adding them to the board.`,dependenciesLabel:`Dependencies: {{value}}`,creating:`Creating tickets...`,create:`Create tickets`,createdFromChat_one:`Created {{count}} ticket from chat.`,createdFromChat_other:`Created {{count}} tickets from chat.`},errors:{loadSessions:`Unable to load chat sessions right now.`,loadSession:`Unable to load the chat session right now.`,loadMemorySuggestions:`Unable to load chat memory suggestions right now.`,restoreTarget:`Unable to restore the chat target right now.`,updateMode:`Unable to update the chat mode right now.`,interruptResponse:`Unable to interrupt the chat response right now.`,deleteSession:`Unable to delete the chat session right now.`,uploadAttachments:`Unable to upload images right now.`,removeAttachment:`Unable to remove the image right now.`,sendPrompt:`Unable to send the chat prompt right now.`,createTickets:`Unable to create tickets from the chat proposal right now.`},composer:{newChatTitle:`New chat`,chatTitle:`Chat`,loadingMemory:`Loading memory...`,memorySuggestions:`Memory suggestions`,switchBack:`Switch back`,noSessionSelectedTitle:`No session selected`,noSessionSelectedDescription:`Select a chat session to restore its saved target, or start a new session on the current target.`,startNewSession:`Start new session`,loadingSession:`Loading chat session...`,openDiff:`Open diff`,resizeDiffPanel:`Resize diff panel`,diff:`Diff`,memorySuggestionsTitle:`Memory suggestions`,memorySuggestionsDescription:`Review pending suggestions from this chat before saving them into project memory.`,memorySuggestionsEmpty:`No pending memory suggestions for this chat session.`,closeMemorySuggestions:`Close memory suggestions`},review:{missingTarget:`Open or create a chat session to send review comments.`,unavailableTarget:`Target unavailable for this chat session.`,restoreTargetFallback:`Restore the session target to continue.`,waitTurn:`Wait for the current chat turn to finish before sending review comments.`,waitUpload:`Wait for the current image upload to finish before sending this turn.`,waitPrompt:`Wait for the current chat prompt to finish sending before submitting review comments.`,waitTurnShort:`Wait for the current chat turn to finish.`,mismatchReason:`This session targets {{sessionTarget}}, but the current target is {{currentTarget}}. Restore the session target to continue.`,interrupting:`Interrupting...`,interrupt:`Interrupt`}},specView:{errors:{loadSessions:`Unable to load spec sessions right now.`,loadSession:`Unable to load the spec session right now.`,stopSession:`Unable to interrupt the spec response right now.`,deleteSession:`Unable to delete the spec session right now.`,sendPrompt:`Unable to send the spec prompt right now.`,upload:`Unable to upload images right now.`,removeAttachment:`Unable to remove the image right now.`,initialSessionMissing:`Spec no longer exists.`},composer:{placeholderSpec:`Describe the feature you want to plan...`,describeFeature:`Describe the feature, architecture, or changes you want to spec out.`,waitTurn:`Wait for the current spec turn to finish.`,waitUpload:`Wait for the current image upload to finish.`,stop:`Stop`,interrupt:`Interrupt`,interrupting:`Interrupting...`,noSessionSelectedTitle:`No spec session selected`,noSessionSelectedDescription:`Select a spec session or start a new one to plan features.`,startNewSession:`Start new spec`,loadingSession:`Loading spec session...`,newSpecTitle:`New spec`,specTitle:`Spec`},sidebar:{ariaLabel:`Spec sessions sidebar`,newSession:`New spec`,select:`Select`,cancelSelection:`Cancel`,deleteSelected:`Delete selected`,collapseAriaLabel:`Collapse sessions panel`,openAriaLabel:`Open sessions panel`,loadingSessions:`Loading spec sessions...`,noSessions:`No spec sessions yet.`,deleteSessionAriaLabel:`Delete spec session`,deleteSessionTitle:`Delete {{title}}`,selectSessionAriaLabel:`Select {{title}}`,selectSessionTitle:`Select {{title}}`,cannotDeleteRunning:`Wait for the current spec response to finish before deleting this session.`,newSessionTooltip:`Start a new spec session`,interrupted:`Interrupted`,linkedImplementationsTooltip:`{{ticketCount}} ticket(s), {{chatCount}} chat session(s) from this spec`,linkedImplementationsAriaLabel:`{{itemCount}} linked implementation(s)`},deleteModal:{title:`Delete spec session`,bulkTitle:`Delete spec sessions`,description:`This permanently removes the transcript history for this spec session.`,bulkDescription_one:`This permanently removes transcript history for the selected spec session.`,bulkDescription_other:`This permanently removes transcript history for {{count}} spec sessions.`,delete:`Delete`,cancel:`Cancel`,deleting:`Deleting...`},toasts:{deleteSelectedSuccess_one:`Deleted {{count}} spec session.`,deleteSelectedSuccess_other:`Deleted {{count}} spec sessions.`},artifactPanel:{title:`Spec Artifact`,open:`Open artifacts`,resize:`Resize artifact panel`,close:`Close artifact panel`,summary:`Summary`,visualization:`Visualization`,likelyFiles:`Likely Files`,proposedTickets:`Proposed Tickets`,dependencies:`Dependencies`,openQuestions:`Open Questions`,assumptions:`Assumptions`,noSnapshot:`Run a spec turn to generate an artifact.`,noDiagram:`No diagram available for this spec.`,mermaidParseError:`Unable to render this Mermaid graph; showing raw text instead.`,uiMockup:`UI Mockup`,noMockup:`No UI mockup available for this spec.`,loading:`Loading artifact...`},actions:{createTickets:`Create tickets`,ticketsCreated:`Tickets created`,creatingTickets:`Creating tickets...`,implementInChat:`Implement in Chat`,startingImplementation:`Starting implementation...`,exportSpec:`Export to docs/plans`,exportingSpec:`Exporting...`,createTicketsSuccess:`Created {{count}} ticket(s) from this spec.`,exportSuccess:`Exported spec to docs/plans.`,exportConflictTitle:`Export already exists`,exportConflictDescription:`A spec with this title has already been exported to {{path}}. Rename the session first.`,exportConflictDismiss:`Got it`},provenance:{viewSourceSpec:`View source spec`},grill:{toggleTooltip:`Grill mode: pressure-test the plan one focused question at a time before writing the spec. Click again to end grilling and write the full plan.`,toggleAriaLabelOn:`Turn Grill mode off (currently on)`,toggleAriaLabelOff:`Turn Grill mode on`,rationaleLabel:`Why`,suggestionsLabel:`Suggested answers`,recommendedSuggestionLabel:`Recommended`,answerPlaceholder:`Type your answer, or pick a suggestion above to fill this field...`,submitLabel:`Submit answer`,submittingLabel:`Submitting...`,finalizePrompt:`Grilling ended. Write the complete concrete plan now using everything we discussed.`,finalizeError:`Unable to finalize grilling right now.`,updateModeError:`Unable to change Grill mode right now.`,activeDisabledReason:`Wait for the current spec turn to finish before toggling Grill.`}},conversationPane:{agentActivityAriaLabel:`Agent activity indicator`,agentWorkingSrText:`Agent is working`,agentError:`Agent error`,statusWorking:`Working...`,statusInterrupted:`Interrupted`,loadingConversation:`Loading conversation...`,noMessagesYet:`No messages yet.`,attachmentPreviewAlt:`Attached image: {{name}}`,showThinkingAriaLabel:`Show thinking`,showThinkingLabel:`Show thinking`,sectionAriaLabel:`Ticket conversation`,contentAriaLabel:`Ticket conversation content`},promptComposer:{followUpPromptAriaLabel:`Follow-up prompt`,sendingPromptAriaLabel:`Sending prompt`,sendPromptAriaLabel:`Send prompt`,attachImageAriaLabel:`Attach images`,uploadingImageAriaLabel:`Uploading images`,removeAttachmentAriaLabel:`Remove {{name}}`,attachmentPreviewAlt:`Selected image: {{name}}`},attachmentPreviewDialog:{title:`Image preview: {{name}}`,description:`Preview the attached image {{name}}.`,imageAlt:`Preview image: {{name}}`,previewImageAriaLabel:`Preview image: {{name}}`,openInNewTab:`Open in new tab`,closeAriaLabel:`Close image preview`},mermaidPreviewDialog:{title:`Diagram Preview`,description:`Preview the spec diagram in full screen.`,closeAriaLabel:`Close diagram preview`,clickToExpand:`Click to expand diagram`},mockupPreviewDialog:{title:`UI Mockup Preview`,description:`Preview the UI mockup in full screen.`,closeAriaLabel:`Close UI mockup preview`,clickToExpand:`Click to expand UI mockup`},workspaceControls:{changes:`Changes`,tests:`Tests`,openIde:`Open IDE`,terminal:`Terminal`,chat:`Chat`,close:`Close`,openTerminalAriaLabel:`Open terminal`,hideTerminalAriaLabel:`Hide terminal`,terminalTitle:`Terminal`,ticketMetadataAriaLabel:`Ticket metadata`},ticketModal:{loadingDiff:`Loading diff...`,planningChatAriaLabel:`Planning chat`,planningChatTitle:`Planning Chat`,closePlanningChatAriaLabel:`Close planning chat`,planningOpenQuestions_one:`{{count}} open question`,planningOpenQuestions_other:`{{count}} open questions`,planningFollowUpPlaceholder:`Ask the agent to refine this plan`,followUpPlanPlaceholder:`Ask a question about this implementation`,ticketChatAriaLabel:`Ticket chat`,ticketChatTitle:`Ticket Chat`,closeTicketChatAriaLabel:`Close ticket chat`,planningFailedPrefix:`Planning failed: `,openQuestionsBadge:`Open questions`,ticketTerminalAriaLabel:`Ticket terminal`,discardUnsavedTitle:`Discard unsaved edits?`,discardUnsavedDescription:`Any changes made will be lost.`,discardUnsavedConfirm:`Discard`,discardUnsavedCancel:`Keep editing`},ticketChangesModal:{pushBranch:`Push branch`,pushing:`Pushing...`,morePushActions:`More push actions`,forcePushWithLease:`Force push with lease`,forcePushing:`Force pushing...`,loadingPullRequest:`Loading PR...`,checkingPullRequest:`Checking PR...`,createPullRequest:`Create PR`,createPullRequestTitle:`Create pull request`,createPullRequestFallbackError:`Unable to create the pull request right now.`,pullRequestCreated:`Pull request created.`,pullRequestFieldTitle:`Title`,pullRequestFieldBaseBranch:`Base branch`,pullRequestFieldDescription:`Description`,pullRequestTitlePlaceholder:`Pull request title`,pullRequestBaseBranchDescription:`Optional. Leave blank to use the repository default branch.`,pullRequestBaseBranchPlaceholder:`main`,pullRequestDescriptionPlaceholder:`Summarize the changes for reviewers.`,creatingPullRequest:`Creating PR...`,creating:`Creating...`,generatingDescription:`Generating...`,generateDescription:`Generate`,branchUnavailable:`Branch information is not available right now.`,branchPushed:`Branch pushed.`,pushCompleted:`Push completed.`,branchForcePushed:`Branch force-pushed.`,forcePushCompleted:`Force push completed.`,pushFallbackError:`Unable to push the branch right now.`,forcePushFallbackError:`Unable to force-push the branch right now.`,viewSourceSpec:`View source spec`},bundleDetailsModal:{bundleTerminalAriaLabel:`Bundle terminal`},projectFooter:{detachedHead:`Detached HEAD`,unknownBranch:`Unknown branch`,branchActions:`Branch actions`,currentTargetActions:`Current target actions`,pull:`Pull`,pulling:`Pulling...`,sync:`Sync`,syncing:`Syncing...`,rebase:`Rebase`,rebaseOnto:`Rebase onto {{branch}}`,rebasing:`Rebasing...`,abortMerge:`Abort merge`,abortRebase:`Abort rebase`,aborting:`Aborting...`,branchSynced:`Project branch synced.`,branchUpdated:`Project branch updated.`,branchRebased:`Branch rebased.`,branchRebasedOnto:`Branch rebased onto {{branch}}.`,gitOperationAborted:`Git operation aborted.`,syncFallbackError:`Unable to sync the current branch right now.`,rebaseFallbackError:`Unable to rebase the current branch right now.`,abortFallbackError:`Unable to abort the current git operation right now.`,run:`Run`,stop:`Stop`,selectProjectFirst:`Select a project first.`,addRunConfig:`Add a Run config in project settings to enable selected-target runs.`,loadingProjectStatus:`Loading project status...`,stopSelectedTargetRun:`Stop the currently running selected-target run before starting another run.`,stopTicketBeforeSelectedTargetRun:`Stop the currently running ticket before starting the selected target run.`},testsDialog:{status:{passed:`Passed`,failed:`Failed`,running:`Running`,error:`Error`,stopped:`Stopped`,idle:`Idle`},selection:{noRunYet:`No test run yet`,allTests:`All tests`},actions:{run:`Run`,stop:`Stop`},caseRow:{runAriaLabel:`Run {{name}}`},fileRow:{expandAriaLabel:`Expand {{path}}`,collapseAriaLabel:`Collapse {{path}}`,runAriaLabel:`Run {{path}}`,testCount_one:`{{count}} test`,testCount_other:`{{count}} tests`,noNamedTests:`No named tests were detected in this file.`},scope:{label:`Test scope`,selectedCommandAriaLabel:`Selected test command`,selectTestScope:`Select test scope`,fullSuiteOnlyNotice:`This scope supports full-suite runs only, so file and case selection is disabled.`},filter:{placeholder:`Filter`,ariaLabel:`Filter test cases`,clearAriaLabel:`Clear test case filter`},discovery:{noCommands:`No test commands are configured for this target yet.`,fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`,caseCount_one:`{{count}} test case`,caseCount_other:`{{count}} test cases`,noFilesDetected:`No JS or TS test files were detected for this target yet.`,noFilterMatches:`No test cases match this filter.`},summaryCounts:{failed:`failed`,passed:`passed`,filesFailed:`files failed`,filesPassed:`files passed`},output:{trimmed:`Output trimmed to recent logs`,ariaLabel:`Test output`,empty:`No test output yet.`},messages:{loadRunnerError:`Unable to load the test runner right now.`,discoverError:`Unable to discover tests right now.`,startError:`Unable to start the selected tests right now.`,stopError:`Unable to stop the test run right now.`},dialog:{srTitle:`Tests`,srDescription:`Run configured tests for the selected project target and discard the session when this dialog closes.`,title:`Tests`,preparingTarget:`Preparing target...`,closeAriaLabel:`Close modal`},closeConfirmation:{title:`Stop test run and close?`,description:`Closing the Tests dialog discards the current session and its output. Stop the active test run first?`,keepRunning:`Keep running`,stopAndClose:`Stop and close`}},planningAgentSidebar:{runStatus:{planning:`Planning...`,done:`Done`,failed:`Failed`},runSummary:{tickets:`{{count}} tickets`,dependencies:`{{count}} dependencies`,openQuestions_one:`{{count}} open question`,openQuestions_other:`{{count}} open questions`},actions:{planTickets:`Plan tickets`,openAriaLabel:`Open planning agent`,closeAriaLabel:`Close planning agent`,closePanelAriaLabel:`Close planning agent panel`,manageBundles:`Manage bundles`},tooltip:`Planning agent`,ariaLabel:`Planning agent sidebar`,title:`Planning agent`,description:`Turn a larger initiative into plan-stage tickets with dependencies and bundle context.`,descriptionLabel:`Description`,descriptionAriaLabel:`Planning description`,descriptionPlaceholder:`Describe the task, acceptance criteria, context...`,autoCreateBundle:`Auto-create bundle`,activeRuns:`Active planning runs`,recentRuns:`Recent runs`},reviewFollowUpBubble:{finding:`Finding {{count}}`,externalFix:`External fix {{count}}`,previewComment:`Preview comment {{count}}`,comment:`Comment {{count}}`,unknownTarget:`Unknown target`,textLabel:`Text`,hrefLabel:`Href`,srcLabel:`Src`,changedLineLabel:`Changed line`,selectedFixes:`Selected fixes`,fixCount_one:`{{count}} fix`,fixCount_other:`{{count}} fixes`,locationFile_one:`{{count}} file`,locationFile_other:`{{count}} files`,locationPage_one:`{{count}} page`,locationPage_other:`{{count}} pages`,locationTarget_one:`{{count}} target`,locationTarget_other:`{{count}} targets`,showRawPrompt:`Show raw prompt`,hideRawPrompt:`Hide raw prompt`,rawPrompt:`Raw prompt`},githubCommentMarkdown:{suggestionLabel:`Suggested change`},ticketStaticDescription:{ariaLabel:`Ticket description`,title:`Description`},ticketDependencyDetails:{blocksTitle:`Blocks`,buildReadinessAriaLabel:`Build readiness`,buildReadinessTitle:`Build readiness`,ready:`Ready`,blocked:`Blocked`,summaryReady:`All blockers have finished build.`,summaryBlocked_one:`{{count}} blocker is still waiting on build.`,summaryBlocked_other:`{{count}} blockers are still waiting on build.`,buildDone:`Build done`,waitingOnBuild:`Waiting on build`,remove:`Remove`,dependencyDetails:`Dependency details`,show:`Show`,hide:`Hide`,unknownTicket:`Unknown ticket`},ticketBuildChainPreview:{ariaLabel:`Build chain`,title:`Build chain`},runControl:{stopAriaLabel:`Stop`,stoppingAriaLabel:`Stopping run`,stoppingTitle:`Stopping run...`,stop:`Stop`,runAriaLabel:`Run`,startingAriaLabel:`Starting run`,startingTitle:`Starting run...`,run:`Run`,disabledReason:`Stop the currently running ticket before starting another run.`},ticketChangesCommitPanel:{title:`Commit selected files`,selectedFiles_one:`{{count}} file selected`,selectedFiles_other:`{{count}} files selected`,commitMessageAriaLabel:`Commit message`,commitMessagePlaceholder:`Commit message`,generateCommitMessageAriaLabel:`Generate commit message`,generating:`Generating...`,generate:`Generate`,committing:`Committing...`,commit:`Commit`},ticketChangesCommitsPanel:{triggerLabel:`Local commits`,description:`Review what will be pushed from this branch.`,loading:`Loading branch commits...`,undoing:`Undoing...`,undoLatestCommit:`Undo latest commit`},chatChangesPanel:{unknownFile:`Unknown file`,picker:{diff:`Diff`,file:`File`,allChanges:`All changes`,openChangedFilesAriaLabel:`Open changed files`,fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`,title:`Changed files`,allChangesDescription:`Review the full workspace diff.`},fileStatus:{modified:`Modified`,added:`Added`,deleted:`Deleted`,renamed:`Renamed`,untracked:`Untracked`,typechanged:`Type changed`,staged:`Staged`,unstaged:`Unstaged`,conflicted:`Conflicted`,renamedFrom:`from {{path}}`},errors:{loadDiff:`Unable to load the diff right now.`,sendChanges:`Unable to send the changes right now.`},toasts:{sendChangesSuccess:`Changes sent to chat.`},closeAriaLabel:`Close diff panel`,emptyStateTitle:`No uncommitted changes.`,emptyStateDescription:`The current project branch is clean.`},pendingFixesPopover:{triggerLabel:`Pending fixes`,title:`Pending fixes`,description:`Review selected comments and findings before sending them back to the agent.`,empty:`No pending fixes selected yet.`,manualCommentTitle:`Manual comment`,manualBadge:`Manual`,findingTitle:`Finding {{ordinal}}`,githubReviewSummary:`GitHub review summary`,githubReviewComment:`GitHub review comment`,clear:`Clear`,sending:`Sending...`,sendFixes:`Send fixes ({{count}})`,lineReference:{oldAndNew:`old {{oldLine}}, new {{newLine}}`,newOnly:`new {{newLine}}`,oldOnly:`old {{oldLine}}`,unavailable:`line unavailable`}},ticketChangesDiffPanel:{stats:{fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`},reviewComment:{manualBadge:`Manual`,commentOnLine:`Comment on line {{lineNumber}}`,addCommentToLine:`Add a comment to line {{lineNumber}}`,ariaLabel:`Review comment for {{filePath}}`,placeholder:`Add a review comment for this change`,edit:`Edit`,remove:`Remove`,add:`Add comment`,cancel:`Cancel`},lineReference:{oldAndNew:`old {{oldLine}}, new {{newLine}}`,newOnly:`new {{newLine}}`,oldOnly:`old {{oldLine}}`,unavailable:`line unavailable`},reviewFinding:{title:`Finding {{ordinal}}`,selected:`Selected`,fix:`Fix`,hideDetails:`Hide details`,details:`Details`,whyItMatters:`Why it matters`,requestedFix:`Requested fix`,sectionTitle:`Review findings`},githubComment:{badge:`GitHub`,reviewSummary:`Review summary`,fileComment:`File comment`,inlineComment:`Inline comment`,outdated:`Outdated`,openOnGitHub:`Open on GitHub`,sectionTitle:`GitHub review comments`},viewType:{unified:`Unified`,split:`Split`},header:{allChanges:`All changes`},states:{loading:`Loading diff...`,retry:`Retry`,emptyTitle:`No changes to show.`,noRenderableFileTitle:`No renderable diff for this file in the UI.`},fileBadge:{newFile:`New file`}}},projects:{modal:{dialogTitle:{create:`Add a repository to Archon`,edit:`Edit project settings`},dialogDescription:`Configure a project repository, setup commands, services, and IDE launch settings.`,header:{title:{create:`Add project`,edit:`Edit project settings`},description:{create:`Point Archon at a repository, then define only the behavior you want Archon to manage.`,edit:`Update how Archon prepares and opens worktrees for this repository.`},close:`Close modal`},navigation:{title:`Settings`,general:`General`,automation:`Automation`,services:`Services`,tests:`Tests`,sync:`Sync`,memory:`Memory`,integrations:`Integrations`,danger:`Danger Zone`,summary:{required:`Required`,configured:`Configured`,optional:`Optional`,none:`None`,enabled:`Enabled`,disabled:`Disabled`,loading:`Loading`,blocked:`Blocked`,ready:`Ready`,count:`{{count}}`,integrationsCount_one:`{{count}} enabled`,integrationsCount_other:`{{count}} enabled`}},sections:{general:{title:`General`,description:`Start with the repository Archon should use when it creates and manages worktrees for this project.`},automation:{title:`Automation`,description:`Configure helper defaults, setup behavior, and optional workflow rules Archon can apply to this project.`},services:{title:`Services`,description:`Add long-running commands that Archon should start automatically inside each worktree.`},tests:{title:`Tests`,description:`Store reusable test commands and let Archon detect JS and TS test files and cases for the selected target.`},sync:{title:`Sync`,description:`Define which local files Archon should copy or symlink into a worktree the first time it is created.`},memory:{title:`Memory`,description:`Turn project memory on or off and manage the saved context Archon keeps outside the repository.`},integrations:{title:`Integrations`,description:`Connect external systems that add richer context to planning, tickets, and pull requests for this project.`},danger:{title:`Danger Zone`,description:`Delete this project only after its tickets and worktrees are already gone. This action cannot be undone.`}},linkedProjects:{none:`No linked projects`,count_one:`{{count}} linked project`,count_other:`{{count}} linked projects`},repoPath:{initializable:`Archon will initialize this directory as a git repository when you create the project.`,invalid:`Repository path is not a valid git repository.`,validateFailed:`Unable to validate the repository path right now.`,browseFailed:`Unable to open the folder picker.`},autoConfig:{applied:`Auto-config applied.`,noop:`Auto-config found no empty fields to fill.`,failed:`Auto-config failed.`},validation:{projectNameRequired:`Project name is required.`,repositoryPathRequired:`Repository path is required.`,serviceCommandRequired:`A service command is required when a service row has values.`,syncSourceRequired:`A source path is required when a sync row has values.`,testCommandRequired:`A test command is required when a test row has values.`,previewServiceRequired:`Choose a named service before enabling preview.`},actions:{cancel:`Cancel`,createProject:`Create project`,createProjectBusy:`Creating...`,saveChanges:`Save changes`,saveChangesBusy:`Saving...`}},advanced:{summary:{none:`None`,configured:`Configured`,toolDefault:`Tool default`,default:`Default`,customRules:`Custom rules`,autoParkOn:`Auto-park on`,manualOnly:`Manual only`,disabled:`Disabled`,watching:`Watching {{name}}`,commandCount_one:`{{count}} command`,commandCount_other:`{{count}} commands`,serviceCount_one:`{{count}} service`,serviceCount_other:`{{count}} services`,ruleCount_one:`{{count}} rule`,ruleCount_other:`{{count}} rules`},autoConfigPanel:{badge:`Auto-config`,description:`Inspect the repo and fill any empty setup, service, or sync fields.`,note:`Existing values stay untouched. Uses helper model if set, otherwise the selected tool's default model.`,loading:`Inspecting repo...`,action:`Auto-config`},helperModel:{title:`Helper model`,description:`Set an optional OpenCode model for auto-config and other lightweight project tasks.`},commitMessages:{title:`Commit messages`,description:`Guide auto-generated commit subjects with a project-specific style or format.`,fieldLabel:`Commit message rules`,fieldDescription:`Optional. Example: Use Conventional Commits. Format: type(scope?): subject`,ariaLabel:`Commit message rules`,placeholder:`e.g. conventional commits`},linkedProjects:{title:`Linked projects`,description:`Let Archon inspect related repos during planning when extra context helps.`,noneAvailable:`No other projects are available to link yet.`,triggerAriaLabel:`Linked projects`,selectedNone:`None`,selectedCount:`{{count}} linked`},setupCommands:{title:`Setup commands`,description:`Run these for fresh worktrees before builds, and again before Archon starts manual worktree services.`,fieldLabel:`Setup commands`,fieldDescription:`One command per line.`,ariaLabel:`Setup commands`,placeholder:`pnpm install
|
|
55
55
|
pnpm db:generate`},ideCommand:{title:`IDE command`,description:`Open the worktree in your editor after services start.`,fieldLabel:`IDE command`,fieldDescription:`Optional command to launch your preferred IDE.`,ariaLabel:`IDE command`,placeholder:`code --reuse-window`},staleHandling:{title:`Stale handling`,description:`Stale means build or review is finished, the worktree is clean, and the branch has no unpushed commits.`,toggleLabel:`Move stale tickets to Done automatically`,toggleAriaLabel:`Auto-park stale tickets`},services:{title:`Services`,description:`Launch background processes from each worktree when tickets start.`,backgroundProcesses:`Background processes`,addService:`Add service`,empty:`No services yet. Add one if this project needs long-running processes in each worktree.`},preview:{title:`In-app preview`,description:`Choose which named service should provide the browser preview Archon embeds beside the board.`,previewServiceLabel:`Preview service`,previewServiceDescription:`Only named services can be selected for preview.`,previewServiceAriaLabel:`Preview service`,noPreviewService:`No preview service`,previewPathLabel:`Preview path`,previewPathDescription:`Optional path override such as / or /dashboard.`,previewPathAriaLabel:`Preview path`,previewPathPlaceholder:`/`,capabilityModeLabel:`Capability mode`,capabilityModeDescription:`Override the automatic preview capability detection when needed.`,capabilityModeAriaLabel:`Preview capability mode`,capabilityMode:{auto:`Auto detect`,forceWeb:`Force web`,forceDisabled:`Disable preview`}},tests:{title:`Test commands`,description:`Save reusable project-level test commands. File and case runs work best when the runner is set to Vitest or Jest.`,addCommand:`Add test command`,empty:`No test commands yet. Add one manually or use auto-config to seed a starting point.`},sync:{title:`Worktree sync`,description:`Copy or symlink files into a new worktree only the first time Archon creates it.`,addRule:`Add sync rule`,empty:`No sync rules yet. Add one for files like env or local config templates.`}},serviceRow:{title:`Service {{index}}`,description:`Runs from the worktree after setup completes.`,remove:`Remove`,fields:{nameLabel:`Name`,nameDescription:`Optional stable identifier used by preview selection.`,nameAriaLabel:`Service name {{index}}`,namePlaceholder:`web`,commandLabel:`Command`,commandAriaLabel:`Service command {{index}}`,commandPlaceholder:`npm run dev`,workingDirectoryLabel:`Working directory`,workingDirectoryDescription:`Relative to the worktree root.`,workingDirectoryAriaLabel:`Working directory {{index}}`,workingDirectoryPlaceholder:`client`}},testCommandRow:{title:`Test command {{index}}`,description:`Used by the Tests dialog for full-suite or per-file JS and TS runs.`,remove:`Remove`,fields:{nameLabel:`Name (optional)`,nameAriaLabel:`Test command name {{index}}`,namePlaceholder:`client tests`,commandLabel:`Command`,commandAriaLabel:`Test command {{index}}`,commandPlaceholder:`npm --prefix client test`,directoryLabel:`Directory`,directoryDescription:`Optional relative path inside the selected target.`,directoryAriaLabel:`Test command directory {{index}}`,directoryPlaceholder:`client`,runnerLabel:`Runner`,runnerDescription:`Controls file and case selection support.`,runnerAriaLabel:`Test command runner {{index}}`,runnerOptions:{auto:`Auto`,vitest:`Vitest`,jest:`Jest`,unknown:`Full suite only`}}},syncRow:{title:`Sync rule {{index}}`,description:`Applied only when Archon creates a worktree for the first time.`,remove:`Remove`,fields:{sourceLabel:`Source path`,sourceAriaLabel:`Sync source {{index}}`,sourcePlaceholder:`.env`,targetLabel:`Target path`,targetDescription:`Leave blank to reuse the source path.`,targetAriaLabel:`Sync target {{index}}`,targetPlaceholder:`.env.local`,modeLabel:`Mode`,modeAriaLabel:`Sync mode {{index}}`,modeOptions:{copy:`Copy`,symlink:`Symlink`}}},danger:{cardTitle:`Danger zone`,cardDescription:`Delete this project only after its tickets and worktrees are gone. This cannot be undone.`,deleteTitle:`Delete {{projectName}}`,deleteTitleFallback:`Delete this project`,deleteAvailable:`Delete is available because this project has no remaining tickets or worktrees.`,cancel:`Cancel`,deleteAction:`Delete project`,deleteBusy:`Deleting...`},integrations:{status:{connected:`Connected`,disconnected:`Disconnected`,error:`Error`},connectionMode:{directSummary:`API token`,ghSummary:`GitHub CLI`,directOption:`GitHub API token`,ghOption:`GitHub CLI (gh)`},card:{toggleAriaLabel:`Toggle {{title}} settings`,hide:`Hide`,show:`Show`},messages:{loadError:`Unable to load integrations right now.`,jiraSaveSuccess:`Jira settings saved.`,jiraConnectSuccess:`Jira connected.`,jiraConnectError:`Unable to connect Jira right now.`,jiraDisconnectSuccess:`Jira disconnected.`,jiraDisconnectError:`Unable to disconnect Jira right now.`,githubSaveSuccess:`GitHub settings saved.`,githubConnectSuccess:`GitHub connected.`,githubConnectError:`Unable to connect GitHub right now.`,githubDisconnectSuccess:`GitHub disconnected.`,githubDisconnectError:`Unable to disconnect GitHub right now.`},jira:{title:`Jira`,description:`Configure Jira imports and the additional issue fields Archon should include.`,connectedSummary:`Connected to {{baseUrl}} as {{email}}`,fields:{urlLabel:`Jira URL`,urlPlaceholder:`https://your-company.atlassian.net`,emailLabel:`Email`,emailPlaceholder:`name@company.com`,apiTokenLabel:`API token`,apiTokenPlaceholderConnected:`Leave blank to keep the current token`,apiTokenPlaceholderEmpty:`Paste a Jira API token`,additionalFieldsLabel:`Additional fields to include`,additionalFieldsDescription:`One Jira field name per line. Matching is case-insensitive. Example: Acceptance Criteria`,additionalFieldsPlaceholder:`Acceptance Criteria
|
|
56
56
|
Definition of Done`},actions:{disconnecting:`Disconnecting...`,disconnect:`Disconnect`,saving:`Saving...`,save:`Save`,connect:`Connect Jira`}},github:{title:`GitHub`,description:`Configure GitHub pull request tracking, issue import, and an optional default base branch override.`,connectedSummary:`Connected to {{repoOwner}}/{{repoName}} on {{host}} via {{mode}}`,fields:{connectionMethodLabel:`Connection method`,connectionMethodDescription:`Use a token stored by Archon, or use the authenticated gh CLI where the Archon server runs.`,defaultBaseBranchLabel:`Default base branch`,defaultBaseBranchDescription:`Optional override for new pull requests. Leave blank to use the repository default branch.`,defaultBaseBranchPlaceholder:`main`,apiTokenLabel:`GitHub API token`,apiTokenDescription:`Use a GitHub personal access token for API access.`,apiTokenPlaceholderConnected:`Leave blank to keep the current token`,apiTokenPlaceholderEmpty:`Paste a GitHub API token`},ghNotice:`Archon will run gh api from the server process. Run gh auth login in the same environment that starts Archon before connecting.`,actions:{disconnecting:`Disconnecting...`,disconnect:`Disconnect`,saving:`Saving...`,save:`Save`,connect:`Connect GitHub`}}},memory:{stageLabels:{plan:`Plan`,build:`Build`,review:`Review`,follow_up:`Follow-up`,plan_follow_up:`Plan follow-up`,chat:`Chat`},priorityLabels:{critical:`Critical`,normal:`Normal`,low:`Low`},injectionModeLabels:{always:`Always include`,relevant:`Only when relevant`},savedStateLabels:{superseded:`Superseded`,archived:`Archived`,active:`Active`},scanStatus:{notScanned:`Not scanned`,pending:`Pending`,running:`Running`,done:`Done`,error:`Error`},import:{noTitleConflicts:`No title conflicts.`,titleConflictCount_one:`{{count}} title conflict skipped.`,titleConflictCount_other:`{{count}} title conflicts skipped.`,readFileError:`Unable to read the selected file.`},artifact:{openAriaLabel:`Open scan artifact {{title}}`,emptyNotes:`No generated notes in this artifact yet.`},editor:{typeLabel:`Memory type`,typeAriaLabel:`Memory type`,decision:`Decision`,convention:`Convention`,titleLabel:`Title`,titleAriaLabel:`Memory title`,titlePlaceholderDecision:`Chat auto-scroll behavior`,titlePlaceholderConvention:`React change style`,scopeLabel:`Scope`,scopeDescription:`Optional`,scopeAriaLabel:`Memory scope`,scopePlaceholderDecision:`chat ui`,scopePlaceholderConvention:`react ui`,contentLabel:`Content`,contentAriaLabel:`Memory content`,contentPlaceholderDecision:`The chat should automatically scroll to the newest message by default.`,contentPlaceholderConvention:`Prefer extending existing component patterns instead of adding new abstraction layers for small UI changes.`,rationaleLabel:`Rationale`,rationaleDescription:`Optional`,rationaleAriaLabel:`Memory rationale`,rationalePlaceholderDecision:`The product is optimized for live agent output.`,rationalePlaceholderConvention:`This repo favors small local edits and consistent UI patterns.`,priorityLabel:`Priority`,priorityAriaLabel:`Memory priority`,injectionModeLabel:`Injection mode`,injectionModeAriaLabel:`Convention injection mode`,stagesLabel:`Stages`,stagesDescription:`Optional stage filter`,implicationsLabel:`Implications`,implicationsDescription:`Optional, one per line`,implicationsAriaLabel:`Memory implications`,implicationsPlaceholder:`Preserve default bottom-follow behavior on new messages`,cancel:`Cancel`,saving:`Saving...`},suggested:{badge:`Suggested {{kind}}`,duplicateBadge:`Possible duplicate`,review:`Review`,saveAsNewDecision:`Save as new decision`,accept:`Accept`,acceptAs:`Accept as {{kind}}`,dismiss:`Dismiss`,dismissKind:`Dismiss {{kind}}`,reviewDescription:`Review this suggested {{kind}} before saving it into project memory.`,duplicateTitle:`Possible duplicate`,decision:`Decision`,instruction:`Instruction`,scope:`Scope:`,why:`Why:`,implications:`Implications:`,implicationsMultiline:`Implications (one per line)`,stages:`Stages:`,stagesMultiline:`Stages (comma or newline separated)`,priority:`Priority:`,injection:`Injection:`,noneSpecified:`None specified`,close:`Close`,edit:`Edit`,cancelEdits:`Cancel edits`,updateExistingDecision:`Update existing decision`},ticketPanel:{title:`Project memory`,loadingBadge:`Loading`,scanStaleBadge:`Scan stale`,summaryLoading:`Loading saved project memory for this ticket.`,summarySaved:`Saved decisions, conventions and generated context`,summaryEmpty:`No saved project memory yet. Suggestions will still appear here when Archon finds them.`,decisionCount_one:`{{count}} decision`,decisionCount_other:`{{count}} decisions`,conventionCount_one:`{{count}} convention`,conventionCount_other:`{{count}} conventions`,scanCount_one:`{{count}} scan`,scanCount_other:`{{count}} scans`,viewDetails:`View details`,suggestionsTitle:`Memory suggestions ({{count}})`,suggestionsDescription:`Review before saving`,dialogDescription:`Review the saved project context Archon can use while working on this ticket.`,decisionsTab:`Decisions`,conventionsTab:`Conventions`,generatedContextTab:`Generated context`,loading:`Loading project memory...`,noAcceptedDecisions:`No accepted decisions saved yet.`,noConventions:`No conventions saved yet.`,generatedContextStaleWarning:`Generated scan context may be outdated relative to the current repo HEAD.`,architecture:`Architecture:`,relevantAreas:`Relevant areas`,noRelevantAreas:`No relevant areas were captured in the latest scan.`,noGeneratedContext:`No generated context saved yet.`},messages:{loadError:`Unable to load project memory right now.`,refreshContextError:`Unable to refresh project context right now.`,saveError:`Unable to save the project memory right now.`,noExistingDecision:`No existing decision is available for this suggestion.`,onlyDecisionSuggestionsCanUpdate:`Only decision suggestions can update an existing memory.`,saveSuggestionError:`Unable to save the memory suggestion right now.`,dismissSuggestionError:`Unable to dismiss the memory suggestion right now.`,archiveConventionError:`Unable to archive the project convention right now.`,restoreConventionError:`Unable to restore the project convention right now.`,archiveDecisionError:`Unable to archive the project decision right now.`,supersedeDecisionError:`Unable to supersede the project decision right now.`,restoreDecisionError:`Unable to restore the project decision right now.`,scanStarted:`Project context scan started.`,scanConflict:`A project context scan is already active for this project.`,scanStartError:`Unable to start the project context scan right now.`,exportSuccess:`Project memory exported.`,exportError:`Unable to export project memory right now.`,importSuccess:`Project memory imported.`,importError:`Unable to import project memory right now.`},transfer:{title:`Memory transfer`,description:`Export or import one Archon JSON archive for this project's saved conventions, decisions, and generated scan history.`,createProjectFirst:`Create the project first to export or import a memory archive.`,exporting:`Exporting...`,export:`Export`,importing:`Importing...`,import:`Import`,importAriaLabel:`Import project memory JSON`,importedConventions:`Imported {{imported}} conventions, skipped {{skipped}}`,importedDecisions:`Imported {{imported}} decisions, skipped {{skipped}}`,importedScans:`Imported {{imported}} scans, skipped {{skipped}}`,importedArtifacts:`Imported {{imported}} artifacts, skipped {{skipped}}`},archive:{scanning:`Scanning`,scanNow:`Scan now`,disabledNote:`Enable project memory to manage conventions, accepted decisions, and prompt context for this project.`,createNote:`Create the project first, then reopen settings to add conventions and decisions.`,saveFirstNote:`Save these settings to enable project memory, then reopen settings to manage conventions, accepted decisions, and manual scans.`,generatedContext:`Generated context`,scanArchive:`Scan archive`,loadingLatestScanStatus:`Loading latest scan status...`,noScanYet:`No scan yet. Run a manual scan when you want Archon to capture compact project context from the repository.`,stale:`Stale`,staleWarning:`The repository HEAD has changed since the latest successful scan. Generated context may be outdated.`,scanArtifactsCount:`Scan artifacts ({{count}})`,updating:`Updating`,noScanArtifactsYet:`No scan artifacts yet.`,memoryLabel:`Memory`,memoriesTitle:`Memories`,summaryMemories:`Memories`,summarySuggested:`Suggested`,summarySaved:`Saved`,suggestedMemoriesTitle:`Suggested memories`,itemsCount_one:`{{count}} item`,itemsCount_other:`{{count}} items`,stageCount_one:`{{count}} stage`,stageCount_other:`{{count}} stages`,loadingSuggestedMemories:`Loading suggested memories...`,noSuggestedMemories:`No suggested memories right now.`,savedMemoriesTitle:`Saved memories`,showArchivedAriaLabel:`Show archived memories`,showArchivedLabel:`Show archived`,newMemory:`New memory`,loadingSavedMemories:`Loading saved memories...`,openMemoryAriaLabel:`Open {{kind}} {{title}}`,noSavedMemories:`No saved memories yet.`,editMemory:`Edit memory`,createMemory:`Create memory`,editorDescription:`Keep the memory concise and durable so future work can reuse it without cleanup.`,saveMemory:`Save memory`,archive:`Archive`,restore:`Restore`,supersede:`Supersede`,scanArchiveDialogTitle:`Scan archive`,scanArchiveDialogDescription:`Read-only generated context.`},activation:{title:`Enable project memory`,description:`Memory stays in Archon, not in the target repository. When disabled, Archon preserves saved items but stops injecting them into prompts.`,ariaLabel:`Enable project memory`}},basics:{cardTitle:`Project details`,cardDescription:`Start with the repo Archon should use for new worktrees.`,requiredBadge:`Required`,fields:{projectName:{label:`Project name`,description:`Shown in the project switcher.`,ariaLabel:`Project name`,placeholder:`Platform API`},repositoryPath:{label:`Repository path`,defaultDescription:`Select a git repository.`,ariaLabel:`Repository path`,placeholder:`/Users/you/code/platform-api`,browse:`Browse`,opening:`Opening...`}},repoPathStatus:{checking:{ariaLabel:`Repository path status: checking`,title:`Checking repository path`},valid:{ariaLabel:`Repository path status: valid`,title:`Valid git repository path`},initializable:{ariaLabel:`Repository path status: initializable`},invalid:{ariaLabel:`Repository path status: invalid`}}}}}},ob=Object.keys(ab.en),sb=ye;sb.use(Le).init({resources:ab,lng:`en`,fallbackLng:`en`,defaultNS:ib,ns:ob,supportedLngs:[`en`],interpolation:{escapeValue:!1},initAsync:!1,returnNull:!1,react:{useSuspense:!1}});var cb=Zn(`inline-flex w-fit shrink-0 items-center justify-center gap-1 rounded-full border px-2 py-0.5 text-[11px] font-medium whitespace-nowrap transition-colors [&>svg]:pointer-events-none [&>svg]:size-3!`,{variants:{variant:{default:`border-primary/30 bg-primary/15 text-primary-foreground`,secondary:`border-border bg-secondary text-secondary-foreground`,destructive:`border-red-500/25 bg-destructive/15 text-red-200`,success:`border-emerald-500/25 bg-emerald-500/12 text-emerald-200`,warning:`border-amber-500/25 bg-amber-500/12 text-amber-200`,info:`border-sky-500/25 bg-sky-500/12 text-sky-200`,outline:`border-border bg-card text-muted-foreground`,ghost:`border-transparent bg-transparent text-muted-foreground`,hotkeyDark:`border-black/25 bg-transparent text-[#07130d]/75`,link:`border-transparent px-0 text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}}),lb=({className:e,variant:t=`default`,asChild:n=!1,...r})=>(0,Y.jsx)(n?nr:`span`,{"data-slot":`badge`,"data-variant":t,className:X(cb({variant:t}),e),...r}),ub=(0,p.forwardRef)(({className:e,size:t=`default`,...n},r)=>(0,Y.jsx)(`div`,{ref:r,"data-slot":`card`,"data-size":t,className:X(`flex flex-col gap-5 rounded-2xl border border-border/70 bg-card text-sm text-card-foreground shadow-xl shadow-black/10 data-[size=sm]:gap-4`,e),...n}));ub.displayName=`Card`;var db=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`card-header`,className:X(`grid auto-rows-min items-start gap-1.5 px-5 pt-5 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-5 data-[size=sm]:px-4 data-[size=sm]:pt-4`,e),...t}),fb=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`card-title`,className:X(`font-heading text-base font-medium`,e),...t}),pb=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`card-description`,className:X(`text-sm text-muted-foreground`,e),...t}),mb=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`card-action`,className:X(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t}),hb=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`card-content`,className:X(`px-5 pb-5 data-[size=sm]:px-4 data-[size=sm]:pb-4`,e),...t}),gb=({className:e,...t})=>(0,Y.jsx)(`div`,{"data-slot":`card-footer`,className:X(`flex items-center px-5 pb-5 data-[size=sm]:px-4 data-[size=sm]:pb-4 [.border-t]:pt-5`,e),...t}),_b=({label:e,htmlFor:t,description:n,error:r,className:i,children:a})=>(0,Y.jsxs)(`div`,{className:X(`flex flex-col gap-1.5`,i),children:[(0,Y.jsx)($_,{className:`text-xs font-medium uppercase tracking-[0.22em] text-muted-foreground`,htmlFor:t,children:e}),a,n&&(0,Y.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:n}),r&&(0,Y.jsx)(`p`,{className:`text-sm text-red-300`,children:r})]}),vb=({className:e})=>(0,Y.jsx)(Fg,{"aria-hidden":`true`,className:e}),yb=(e,t)=>e instanceof Error&&e.message?e.message:t,bb=({bundles:e,selectedBundleId:t,activeTargetBundleId:n=null,onSelectBundle:r,onCreateBundle:i,onDeleteBundle:a,onClose:o})=>{let{t:s}=Ue(`common`),c=sy(e),[l,u]=(0,p.useState)(``),[d,f]=(0,p.useState)(!1),[m,h]=(0,p.useState)(null),[g,_]=(0,p.useState)(null),v=async e=>{e.preventDefault();let t=l.trim();if(!(!t||d)){f(!0);try{r((await i(t)).id),o()}catch(e){Q.error(yb(e,s(`manageBundlesModal.createError`)),{id:`manage-bundles-error`}),f(!1)}}},y=async e=>{if(!(e.kind===`project_root`||e.ticket_count>0||g)){_(e.id);try{await a(e.id),t===e.id&&r(null),h(null)}catch(e){Q.error(yb(e,s(`manageBundlesModal.deleteError`)),{id:`manage-bundles-error`})}finally{_(null)}}};return(0,Y.jsx)(tb,{onClose:d?()=>{}:o,overlayClassName:`bg-black/70 px-4 py-8`,panelClassName:`w-full max-w-2xl rounded-3xl border border-[#2a2a38] bg-[#16161f] shadow-2xl`,renderContent:({closeButton:e})=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4 border-b border-border px-6 py-5`,children:[(0,Y.jsx)(`h2`,{className:`text-2xl font-semibold text-foreground`,children:s(`manageBundlesModal.title`)}),d?null:e]}),(0,Y.jsxs)(`div`,{className:`flex max-h-[70vh] flex-col gap-6 px-6 py-5`,children:[(0,Y.jsxs)(ub,{className:`rounded-3xl border-border bg-card/70 shadow-none`,children:[(0,Y.jsx)(db,{children:(0,Y.jsx)(fb,{className:`text-sm font-semibold uppercase tracking-[0.24em] text-foreground`,children:s(`manageBundlesModal.createTitle`)})}),(0,Y.jsx)(hb,{children:d?(0,Y.jsx)(`div`,{className:`rounded-2xl border border-emerald-500/20 bg-emerald-500/5 px-4 py-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Y.jsx)(`div`,{className:`mt-0.5 rounded-full bg-emerald-500/10 p-2 text-emerald-300`,children:(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`})}),(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:s(`manageBundlesModal.createPendingTitle`)}),(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`manageBundlesModal.createPendingDescription`)})]})]})}):(0,Y.jsxs)(`form`,{onSubmit:v,className:`flex min-w-0 flex-col gap-4 sm:flex-row sm:items-end`,children:[(0,Y.jsx)(_b,{label:s(`manageBundlesModal.bundleNameLabel`),className:`min-w-0 flex-1`,children:(0,Y.jsx)(z_,{"aria-label":s(`manageBundlesModal.bundleNameAriaLabel`),type:`text`,value:l,onChange:e=>u(e.target.value),autoFocus:!0,placeholder:s(`manageBundlesModal.bundleNamePlaceholder`)})}),(0,Y.jsx)(Z,{type:`submit`,disabled:!l.trim()||d,variant:`success`,size:`lg`,className:`sm:shrink-0`,children:s(`manageBundlesModal.createAction`)})]})})]}),(0,Y.jsxs)(ub,{className:`flex min-h-0 flex-1 flex-col rounded-3xl border-border bg-card/70 shadow-none ${d?`opacity-60`:``}`,children:[(0,Y.jsx)(db,{children:(0,Y.jsx)(fb,{className:`text-sm font-semibold uppercase tracking-[0.24em] text-foreground`,children:s(`manageBundlesModal.existingTitle`)})}),(0,Y.jsx)(hb,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsx)(`div`,{className:`space-y-3`,children:c.length===0?(0,Y.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border px-4 py-5 text-sm text-muted-foreground`,children:s(`manageBundlesModal.empty`)}):c.map(e=>{let r=t===e.id,i=n===e.id,a=e.kind===`project_root`||e.ticket_count>0||i||g!==null,o=m===e.id;return(0,Y.jsx)(ub,{size:`sm`,className:`rounded-2xl border-border/80 bg-background/30 shadow-none`,children:(0,Y.jsx)(hb,{className:`p-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:my(e)}),r&&(0,Y.jsx)(lb,{variant:`info`,children:s(`manageBundlesModal.selected`)}),i&&(0,Y.jsx)(lb,{variant:`info`,children:s(`manageBundlesModal.currentTarget`)})]}),(0,Y.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e.kind===`project_root`?s(`manageBundlesModal.projectRootDescription`,{branch:e.branch}):i?s(`manageBundlesModal.switchTargetDescription`):e.ticket_count>0?s(`manageBundlesModal.inUseDescription`,{ticketCount:s(`manageBundlesModal.ticketCount`,{count:e.ticket_count})}):s(`manageBundlesModal.unusedDescription`)})]}),(0,Y.jsx)(`div`,{className:`flex items-center gap-2 sm:shrink-0`,children:o?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Z,{type:`button`,onClick:()=>h(null),variant:`ghost`,children:s(`manageBundlesModal.cancel`)}),(0,Y.jsx)(Z,{type:`button`,onClick:()=>void y(e),disabled:a,variant:`destructive`,children:g===e.id?s(`manageBundlesModal.deleting`):s(`manageBundlesModal.deleteBundle`)})]}):(0,Y.jsx)(Z,{type:`button`,onClick:()=>h(e.id),disabled:a,variant:`destructive`,children:(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,Y.jsx)(vb,{className:`h-3.5 w-3.5`}),s(`manageBundlesModal.delete`)]})})})]})})},e.id)})})})]})]}),(0,Y.jsx)(`div`,{className:`border-t border-border px-6 py-4`,children:(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(Z,{type:`button`,onClick:o,disabled:d,variant:`ghost`,children:s(`manageBundlesModal.close`)})})})]})})},xb=i(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),Sb=i((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),Cb=i((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),wb=i(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),Tb=i(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),Eb=i((e=>{var t=Sb().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),Db=i((e=>{var t=Sb().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),Ob=i((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),kb=i((e=>{var t=Cb(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),Ab=i((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),jb=i((e=>{var t=Ab();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),Mb=i(((e,t)=>{var n=jb();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),Nb=i((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),Pb=i((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
|
|
57
57
|
]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^`+t+`$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),Fb=i((e=>{var t=Nb(),n=Pb();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),Ib=i((e=>{var t=Sb(),n=kb(),r=Cb(),i=Fb(),a=Nb(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),Lb=i((e=>{var t=Sb(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),Rb=i(((e,t)=>{var n=Fb();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),zb=i(((e,t)=>{var n=Fb(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),Bb=i(((e,t)=>{var n=Fb();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),Vb=i(((e,t)=>{var n=Fb(),r=Sb();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
|
|
@@ -133,7 +133,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
133
133
|
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
134
134
|
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return tV(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=QV.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function cH(){return{exit:{taskListCheckValueChecked:uH,taskListCheckValueUnchecked:uH,paragraph:dH}}}function lH(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:fH}}}function uH(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function dH(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function fH(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=QV.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function pH(){return[yB(),UB(),JB(),$V(),cH()]}function mH(e){return{extensions:[bB(),WB(e),YB(),sH(e),lH()]}}var hH={tokenize:kH,partial:!0},gH={tokenize:AH,partial:!0},_H={tokenize:jH,partial:!0},vH={tokenize:MH,partial:!0},yH={tokenize:NH,partial:!0},bH={name:`wwwAutolink`,tokenize:DH,previous:PH},xH={name:`protocolAutolink`,tokenize:OH,previous:FH},SH={name:`emailAutolink`,tokenize:EH,previous:IH},CH={};function wH(){return{text:CH}}for(var TH=48;TH<123;)CH[TH]=SH,TH++,TH===58?TH=65:TH===91&&(TH=97);CH[43]=SH,CH[45]=SH,CH[46]=SH,CH[95]=SH,CH[72]=[SH,xH],CH[104]=[SH,xH],CH[87]=[SH,bH],CH[119]=[SH,bH];function EH(e,t,n){let r=this,i,a;return o;function o(t){return!LH(t)||!IH.call(r,r.previous)||RH(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return LH(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(yH,u,l)(t):t===45||t===95||xI(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&bI(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function DH(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!PH.call(r,r.previous)||RH(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(hH,e.attempt(gH,e.attempt(_H,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function OH(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&FH.call(r,r.previous)&&!RH(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(bI(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||SI(t)||TI(t)||OI(t)||DI(t)?n(t):e.attempt(gH,e.attempt(_H,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function kH(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function AH(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(vH,c,s)(t):t===null||TI(t)||OI(t)||t!==45&&DI(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function jH(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(vH,t,a)(o):o===null||TI(o)||OI(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function MH(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||TI(o)||OI(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||TI(e)||OI(e)?t(e):r(e)}function a(e){return bI(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):bI(t)?(e.consume(t),o):n(t)}}function NH(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return xI(e)?n(e):t(e)}}function PH(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||TI(e)}function FH(e){return!bI(e)}function IH(e){return!(e===47||LH(e))}function LH(e){return e===43||e===45||e===46||e===95||xI(e)}function RH(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var zH={tokenize:qH,partial:!0};function BH(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:WH,continuation:{tokenize:GH},exit:KH}},text:{91:{name:`gfmFootnoteCall`,tokenize:UH},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:VH,resolveTo:HH}}}}function VH(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=yI(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function HH(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function UH(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||TI(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(yI(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return TI(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function WH(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||TI(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=yI(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return TI(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),jI(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function GH(e,t,n){return e.check(LI,t,e.attempt(zH,t,n))}function KH(e){e.exit(`gfmFootnoteDefinition`)}function qH(e,t,n){let r=this;return jI(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function JH(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&mI(o,o.length,0,PI(s,e.slice(r+1,n),t)),mI(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),mI(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=NI(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=NI(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var YH=class{constructor(){this.map=[]}add(e,t,n){XH(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function XH(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function ZH(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function QH(){return{flow:{null:{name:`table`,tokenize:$H,resolveAll:eU}}}}function $H(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):wI(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):EI(t)?jI(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||TI(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,EI(t)?jI(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return EI(t)?jI(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||wI(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return EI(t)?jI(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||wI(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||wI(n)?(e.exit(`tableRow`),t(n)):EI(n)?jI(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||TI(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function eU(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new YH;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(nU(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=tU(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=tU(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=tU(f,t,o,i,n,d)):(o[0]=o[1],d=tU(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&nU(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=ZH(t.events,n))}return e}function tU(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},rU(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=rU(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=rU(t.events,n[2]),a=rU(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},rU(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function nU(e,t,n,r,i){let a=[],o=rU(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function rU(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var iU={name:`tasklistCheck`,tokenize:oU};function aU(){return{text:{91:iU}}}function oU(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return TI(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return wI(r)?t(r):EI(r)?e.check({tokenize:sU},t,n)(r):n(r)}}function sU(e,t,n){return jI(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function cU(e){return _I([wH(),BH(),JH(e),QH(),aU()])}var lU={};function uU(e){let t=this,n=e||lU,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(cU(n)),a.push(pH()),o.push(mH(n))}function dU(e){pB(e,[/\r?\n|\r/g,fU])}function fU(){return{type:`break`}}function pU(){return function(e){dU(e)}}var mU=/^\[(?:X|x| )\]\s+/,hU=e=>{let t=e.split(`
|
|
135
135
|
`).map(e=>e.trim()).filter(e=>e.length>0);return t.length>0&&t.every(e=>mU.test(e))},gU=e=>hU(e)?e.split(`
|
|
136
|
-
`).map(e=>e.trim()).filter(e=>e.length>0):[],_U=`modulepreload`,vU=function(e){return`/`+e},yU={},bU=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=vU(t,n),t in yU)return;yU[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:_U,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},xU=e=>e.replace(/\\"/g,`"`),SU=({mermaid:e,className:t,onClick:n})=>{let{t:r}=Ue(`common`),[i,a]=(0,p.useState)({kind:`loading`}),o=`mermaid-${(0,p.useId)().replace(/:/g,``)}`;(0,p.useEffect)(()=>{let t=!1;if(a({kind:`loading`}),!e){a({kind:`error`,rawText:``});return}return(async()=>{try{let n=await bU(()=>import(`./mermaid.core-
|
|
136
|
+
`).map(e=>e.trim()).filter(e=>e.length>0):[],_U=`modulepreload`,vU=function(e){return`/`+e},yU={},bU=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=vU(t,n),t in yU)return;yU[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:_U,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},xU=e=>e.replace(/\\"/g,`"`),SU=({mermaid:e,className:t,onClick:n})=>{let{t:r}=Ue(`common`),[i,a]=(0,p.useState)({kind:`loading`}),o=`mermaid-${(0,p.useId)().replace(/:/g,``)}`;(0,p.useEffect)(()=>{let t=!1;if(a({kind:`loading`}),!e){a({kind:`error`,rawText:``});return}return(async()=>{try{let n=await bU(()=>import(`./mermaid.core-JaDe3rg7.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]));if(t)return;let r=n.default;r.initialize({startOnLoad:!1,theme:`dark`,themeVariables:{primaryColor:`#8b5cf6`,primaryTextColor:`#e2e8f0`,lineColor:`#94a3b8`,secondaryColor:`#1e293b`,tertiaryColor:`#334155`}});let i=xU(e);if(await r.parse(i),t)return;let{svg:s}=await r.render(o,i);if(t)return;a({kind:`rendered`,svg:s})}catch{t||a({kind:`error`,rawText:e})}})(),()=>{t=!0}},[e,o]);let s=(0,p.useCallback)(()=>{i.kind===`rendered`&&n&&n()},[i,n]);return i.kind===`loading`?(0,Y.jsx)(`div`,{className:`flex items-center justify-center py-8 ${t??``}`,children:(0,Y.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-violet-400 border-t-transparent`})}):i.kind===`error`?i.rawText?(0,Y.jsxs)(`div`,{className:t,children:[(0,Y.jsx)(`div`,{className:`mb-2 text-xs text-amber-400`,children:r(`specView.artifactPanel.mermaidParseError`)}),(0,Y.jsx)(`pre`,{className:`overflow-auto rounded-md border border-border/50 bg-surface p-3 text-xs text-muted-foreground whitespace-pre-wrap`,children:i.rawText})]}):(0,Y.jsx)(`div`,{className:`py-4 text-sm text-muted-foreground ${t??``}`,children:r(`specView.artifactPanel.noDiagram`)}):(0,Y.jsx)(`div`,{className:`spec-mermaid-diagram flex justify-center ${n?`cursor-zoom-in`:``} ${t??``}`,dangerouslySetInnerHTML:{__html:i.svg},onClick:s,role:n?`button`:void 0,tabIndex:n?0:void 0,onKeyDown:n?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s())}:void 0,"aria-label":n?r(`mermaidPreviewDialog.clickToExpand`):void 0})},CU=e=>e.replace(/\\"/g,`"`),wU=({mermaid:e,open:t,onClose:n})=>{let{t:r}=Ue(`common`),[i,a]=(0,p.useState)({kind:`loading`}),o=`mermaid-preview-${(0,p.useId)().replace(/:/g,``)}`;return(0,p.useEffect)(()=>{if(!t)return;let n=!1;return a({kind:`loading`}),(async()=>{try{let t=await bU(()=>import(`./mermaid.core-JaDe3rg7.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]));if(n)return;let r=t.default;r.initialize({startOnLoad:!1,theme:`dark`,themeVariables:{primaryColor:`#8b5cf6`,primaryTextColor:`#e2e8f0`,lineColor:`#94a3b8`,secondaryColor:`#1e293b`,tertiaryColor:`#334155`}});let i=CU(e);if(await r.parse(i),n)return;let{svg:s}=await r.render(o,i);if(n)return;a({kind:`rendered`,svg:s})}catch{n||a({kind:`error`,rawText:e})}})(),()=>{n=!0}},[e,o,t]),(0,Y.jsx)(A_,{open:t,onOpenChange:e=>{e||n()},children:(0,Y.jsxs)(P_,{showCloseButton:!1,overlayClassName:`bg-black/80 supports-backdrop-filter:backdrop-blur-md`,className:`flex h-[calc(100vh-1rem)] max-h-[calc(100vh-1rem)] w-[calc(100vw-1rem)] max-w-[calc(100vw-1rem)] sm:max-w-[calc(100vw-1rem)] flex-col gap-0 overflow-hidden border-border/80 bg-background/95 p-0 shadow-2xl`,children:[(0,Y.jsx)(L_,{className:`sr-only`,children:r(`mermaidPreviewDialog.title`)}),(0,Y.jsx)(R_,{className:`sr-only`,children:r(`mermaidPreviewDialog.description`)}),(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4 border-b border-border/70 px-4 py-2.5 sm:px-5`,children:[(0,Y.jsx)(`div`,{className:`min-w-0`,children:(0,Y.jsx)(`p`,{className:`truncate text-sm font-semibold text-foreground sm:text-base`,children:r(`mermaidPreviewDialog.title`)})}),(0,Y.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:(0,Y.jsx)(M_,{asChild:!0,children:(0,Y.jsx)(Z,{type:`button`,"aria-label":r(`mermaidPreviewDialog.closeAriaLabel`),variant:`ghost`,size:`icon-sm`,className:`cursor-pointer text-muted-foreground hover:text-foreground`,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})})})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center bg-black/35 p-2 sm:p-3`,children:[i.kind===`loading`&&(0,Y.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-violet-400 border-t-transparent`}),i.kind===`error`&&(0,Y.jsx)(`pre`,{className:`max-h-full max-w-full overflow-auto rounded-md border border-border/50 bg-surface p-4 text-xs text-muted-foreground whitespace-pre-wrap`,children:i.rawText}),i.kind===`rendered`&&(0,Y.jsx)(`div`,{className:`h-full w-full overflow-auto`,children:(0,Y.jsx)(`div`,{className:`flex min-h-full min-w-full items-center justify-center`,dangerouslySetInnerHTML:{__html:i.svg}})})]})]})})},TU=`*, *::before, *::after { box-sizing: border-box; }
|
|
137
137
|
html, body {
|
|
138
138
|
margin: 0;
|
|
139
139
|
padding: 16px;
|
|
@@ -247,14 +247,14 @@ ${s.join(`
|
|
|
247
247
|
`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh()),pZ&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(e){let t=this._getMouseBufferCoords(e),n=this._model.finalSelectionStart,r=this._model.finalSelectionEnd;return!n||!r||!t?!1:this._areCoordsInSelection(t,n,r)}isCellInSelection(e,t){let n=this._model.finalSelectionStart,r=this._model.finalSelectionEnd;return!n||!r?!1:this._areCoordsInSelection([e,t],n,r)}_areCoordsInSelection(e,t,n){return e[1]>t[1]&&e[1]<n[1]||t[1]===n[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<n[0]||t[1]<n[1]&&e[1]===n[1]&&e[0]<n[0]||t[1]<n[1]&&e[1]===t[1]&&e[0]>=t[0]}_selectWordAtCursor(e,t){let n=this._linkifier.currentLink?.link?.range;if(n)return this._model.selectionStart=[n.start.x-1,n.start.y-1],this._model.selectionStartLength=IZ(n,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let r=this._getMouseBufferCoords(e);return r?(this._selectWordAt(r,t),this._model.selectionEnd=void 0,!0):!1}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){let t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=ZX(this._coreBrowserService.window,e,this._screenElement)[1],n=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=n?0:(t>n&&(t-=n),t=Math.min(Math.max(t,-LZ),LZ),t/=LZ,t/Math.abs(t)+Math.round(t*(RZ-1)))}shouldForceSelection(e){return lZ?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,!(e.button===2&&this.hasSelection)&&e.button===0){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):e.detail===1?this._handleSingleClick(e):e.detail===2?this._handleDoubleClick(e):e.detail===3&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(`mousemove`,this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(`mouseup`,this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),zZ)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(`mousemove`,this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(`mouseup`,this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&t.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){let t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(lZ&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;let t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd){this.refresh(!0);return}this._activeSelectionMode===2?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:this._activeSelectionMode===1&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),this._activeSelectionMode!==3&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let n=this._bufferService.buffer;if(this._model.selectionEnd[1]<n.lines.length){let e=n.lines.get(this._model.selectionEnd[1]);e&&e.hasWidth(this._model.selectionEnd[0])===0&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}(!t||t[0]!==this._model.selectionEnd[0]||t[1]!==this._model.selectionEnd[1])&&this.refresh(!0)}_dragScroll(){if(!(!this._model.selectionEnd||!this._model.selectionStart)&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});let e=this._bufferService.buffer;this._dragScrollAmount>0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){let t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<BZ&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&t[0]!==void 0&&t[1]!==void 0){let e=SZ(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,n=!!e&&!!t&&(e[0]!==t[0]||e[1]!==t[1]);if(!n){this._oldHasSelection&&this._fireOnSelectionChange(e,t,n);return}!e||!t||(!this._oldSelectionStart||!this._oldSelectionEnd||e[0]!==this._oldSelectionStart[0]||e[1]!==this._oldSelectionStart[1]||t[0]!==this._oldSelectionEnd[0]||t[1]!==this._oldSelectionEnd[1])&&this._fireOnSelectionChange(e,t,n)}_fireOnSelectionChange(e,t,n){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=n,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim(e=>this._handleTrim(e))}_convertViewportColToCharacterIndex(e,t){let n=t;for(let r=0;t>=r;r++){let i=e.loadCell(r,this._workCell).getChars().length;this._workCell.getWidth()===0?n--:i>1&&t!==r&&(n+=i-1)}return n}setSelection(e,t,n){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=n,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,n=!0,r=!0){if(e[0]>=this._bufferService.cols)return;let i=this._bufferService.buffer,a=i.lines.get(e[1]);if(!a)return;let o=i.translateBufferLineToString(e[1],!1),s=this._convertViewportColToCharacterIndex(a,e[0]),c=s,l=e[0]-s,u=0,d=0,f=0,p=0;if(o.charAt(s)===` `){for(;s>0&&o.charAt(s-1)===` `;)s--;for(;c<o.length&&o.charAt(c+1)===` `;)c++}else{let t=e[0],n=e[0];a.getWidth(t)===0&&(u++,t--),a.getWidth(n)===2&&(d++,n++);let r=a.getString(n).length;for(r>1&&(p+=r-1,c+=r-1);t>0&&s>0&&!this._isCharWordSeparator(a.loadCell(t-1,this._workCell));){a.loadCell(t-1,this._workCell);let e=this._workCell.getChars().length;this._workCell.getWidth()===0?(u++,t--):e>1&&(f+=e-1,s-=e-1),s--,t--}for(;n<a.length&&c+1<o.length&&!this._isCharWordSeparator(a.loadCell(n+1,this._workCell));){a.loadCell(n+1,this._workCell);let e=this._workCell.getChars().length;this._workCell.getWidth()===2?(d++,n++):e>1&&(p+=e-1,c+=e-1),c++,n++}}c++;let m=s+l-u+f,h=Math.min(this._bufferService.cols,c-s+u+d-f-p);if(!(!t&&o.slice(s,c).trim()===``)){if(n&&m===0&&a.getCodePoint(0)!==32){let t=i.lines.get(e[1]-1);if(t&&a.isWrapped&&t.getCodePoint(this._bufferService.cols-1)!==32){let t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){let e=this._bufferService.cols-t.start;m-=e,h+=e}}}if(r&&m+h===this._bufferService.cols&&a.getCodePoint(this._bufferService.cols-1)!==32){let t=i.lines.get(e[1]+1);if(t?.isWrapped&&t.getCodePoint(0)!==32){let t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(h+=t.length)}}return{start:m,length:h}}}_selectWordAt(e,t){let n=this._getWordAt(e,t);if(n){for(;n.start<0;)n.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[n.start,e[1]],this._model.selectionStartLength=n.length}}_selectToWordAt(e){let t=this._getWordAt(e,!0);if(t){let n=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,n--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,n++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,n]}}_isCharWordSeparator(e){return e.getWidth()===0?!1:this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){let t=this._bufferService.buffer.getWrappedRangeForLine(e),n={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=IZ(n,this._bufferService.cols)}};HZ=BG([VG(3,mK),VG(4,gK),VG(5,OK),VG(6,bK),VG(7,kK),VG(8,DK)],HZ);var UZ=class{constructor(){this._data={}}set(e,t,n){this._data[e]||(this._data[e]={}),this._data[e][t]=n}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}},WZ=class{constructor(){this._color=new UZ,this._css=new UZ}setCss(e,t,n){this._css.set(e,t,n)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,n){this._color.set(e,t,n)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}},GZ=Object.freeze((()=>{let e=[yX.toColor(`#2e3436`),yX.toColor(`#cc0000`),yX.toColor(`#4e9a06`),yX.toColor(`#c4a000`),yX.toColor(`#3465a4`),yX.toColor(`#75507b`),yX.toColor(`#06989a`),yX.toColor(`#d3d7cf`),yX.toColor(`#555753`),yX.toColor(`#ef2929`),yX.toColor(`#8ae234`),yX.toColor(`#fce94f`),yX.toColor(`#729fcf`),yX.toColor(`#ad7fa8`),yX.toColor(`#34e2e2`),yX.toColor(`#eeeeec`)],t=[0,95,135,175,215,255];for(let n=0;n<216;n++){let r=t[n/36%6|0],i=t[n/6%6|0],a=t[n%6];e.push({css:_X.toCss(r,i,a),rgba:_X.toRgba(r,i,a)})}for(let t=0;t<24;t++){let n=8+t*10;e.push({css:_X.toCss(n,n,n),rgba:_X.toRgba(n,n,n)})}return e})()),KZ=yX.toColor(`#ffffff`),qZ=yX.toColor(`#000000`),JZ=yX.toColor(`#ffffff`),YZ=qZ,XZ={css:`rgba(255, 255, 255, 0.3)`,rgba:4294967117},ZZ=KZ,QZ=class extends pq{constructor(e){super(),this._optionsService=e,this._contrastCache=new WZ,this._halfContrastCache=new WZ,this._onChangeColors=this._register(new Rq),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:KZ,background:qZ,cursor:JZ,cursorAccent:YZ,selectionForeground:void 0,selectionBackgroundTransparent:XZ,selectionBackgroundOpaque:vX.blend(qZ,XZ),selectionInactiveBackgroundTransparent:XZ,selectionInactiveBackgroundOpaque:vX.blend(qZ,XZ),scrollbarSliderBackground:vX.opacity(KZ,.2),scrollbarSliderHoverBackground:vX.opacity(KZ,.4),scrollbarSliderActiveBackground:vX.opacity(KZ,.5),overviewRulerBorder:KZ,ansi:GZ.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this._register(this._optionsService.onSpecificOptionChange(`minimumContrastRatio`,()=>this._contrastCache.clear())),this._register(this._optionsService.onSpecificOptionChange(`theme`,()=>this._setTheme(this._optionsService.rawOptions.theme)))}get colors(){return this._colors}_setTheme(e={}){let t=this._colors;if(t.foreground=$Z(e.foreground,KZ),t.background=$Z(e.background,qZ),t.cursor=vX.blend(t.background,$Z(e.cursor,JZ)),t.cursorAccent=vX.blend(t.background,$Z(e.cursorAccent,YZ)),t.selectionBackgroundTransparent=$Z(e.selectionBackground,XZ),t.selectionBackgroundOpaque=vX.blend(t.background,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundTransparent=$Z(e.selectionInactiveBackground,t.selectionBackgroundTransparent),t.selectionInactiveBackgroundOpaque=vX.blend(t.background,t.selectionInactiveBackgroundTransparent),t.selectionForeground=e.selectionForeground?$Z(e.selectionForeground,gX):void 0,t.selectionForeground===gX&&(t.selectionForeground=void 0),vX.isOpaque(t.selectionBackgroundTransparent)&&(t.selectionBackgroundTransparent=vX.opacity(t.selectionBackgroundTransparent,.3)),vX.isOpaque(t.selectionInactiveBackgroundTransparent)&&(t.selectionInactiveBackgroundTransparent=vX.opacity(t.selectionInactiveBackgroundTransparent,.3)),t.scrollbarSliderBackground=$Z(e.scrollbarSliderBackground,vX.opacity(t.foreground,.2)),t.scrollbarSliderHoverBackground=$Z(e.scrollbarSliderHoverBackground,vX.opacity(t.foreground,.4)),t.scrollbarSliderActiveBackground=$Z(e.scrollbarSliderActiveBackground,vX.opacity(t.foreground,.5)),t.overviewRulerBorder=$Z(e.overviewRulerBorder,ZZ),t.ansi=GZ.slice(),t.ansi[0]=$Z(e.black,GZ[0]),t.ansi[1]=$Z(e.red,GZ[1]),t.ansi[2]=$Z(e.green,GZ[2]),t.ansi[3]=$Z(e.yellow,GZ[3]),t.ansi[4]=$Z(e.blue,GZ[4]),t.ansi[5]=$Z(e.magenta,GZ[5]),t.ansi[6]=$Z(e.cyan,GZ[6]),t.ansi[7]=$Z(e.white,GZ[7]),t.ansi[8]=$Z(e.brightBlack,GZ[8]),t.ansi[9]=$Z(e.brightRed,GZ[9]),t.ansi[10]=$Z(e.brightGreen,GZ[10]),t.ansi[11]=$Z(e.brightYellow,GZ[11]),t.ansi[12]=$Z(e.brightBlue,GZ[12]),t.ansi[13]=$Z(e.brightMagenta,GZ[13]),t.ansi[14]=$Z(e.brightCyan,GZ[14]),t.ansi[15]=$Z(e.brightWhite,GZ[15]),e.extendedAnsi){let n=Math.min(t.ansi.length-16,e.extendedAnsi.length);for(let r=0;r<n;r++)t.ansi[r+16]=$Z(e.extendedAnsi[r],GZ[r+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(e===void 0){for(let e=0;e<this._restoreColors.ansi.length;++e)this._colors.ansi[e]=this._restoreColors.ansi[e];return}switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};QZ=BG([VG(0,bK)],QZ);function $Z(e,t){if(e!==void 0)try{return yX.toColor(e)}catch{}return t}var eQ=class{constructor(...e){this._entries=new Map;for(let[t,n]of e)this.set(t,n)}set(e,t){let n=this._entries.get(e);return this._entries.set(e,t),n}forEach(e){for(let[t,n]of this._entries.entries())e(t,n)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}},tQ=class{constructor(){this._services=new eQ,this._services.set(vK,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){let n=dK(e).sort((e,t)=>e.index-t.index),r=[];for(let t of n){let n=this._services.get(t.id);if(!n)throw Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id._id}.`);r.push(n)}let i=n.length>0?n[0].index:t.length;if(t.length!==i)throw Error(`[createInstance] First service dependency of ${e.name} at position ${i+1} conflicts with ${t.length} static arguments`);return new e(...t,...r)}},nQ={trace:0,debug:1,info:2,warn:3,error:4,off:5},rQ=`xterm.js: `,iQ=class extends pq{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange(`logLevel`,()=>this._updateLogLevel())),aQ=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=nQ[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)typeof e[t]==`function`&&(e[t]=e[t]())}_log(e,t,n){this._evalLazyOptionalParams(n),e.call(console,(this._optionsService.options.logger?``:rQ)+t,...n)}trace(e,...t){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};iQ=BG([VG(0,bK)],iQ);var aQ,oQ=class extends pq{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this._register(new Rq),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new Rq),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new Rq),this.onTrim=this.onTrimEmitter.event,this._array=Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;let t=Array(e);for(let n=0;n<Math.min(e,this.length);n++)t[n]=this._array[this._getCyclicIndex(n)];this._array=t,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let t=this._length;t<e;t++)this._array[t]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,t){this._array[this._getCyclicIndex(e)]=t}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw Error(`Can only recycle when the buffer is full`);return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,t,...n){if(t){for(let n=e;n<this._length-t;n++)this._array[this._getCyclicIndex(n)]=this._array[this._getCyclicIndex(n+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let t=this._length-1;t>=e;t--)this._array[this._getCyclicIndex(t+n.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;t<n.length;t++)this._array[this._getCyclicIndex(e+t)]=n[t];if(n.length&&this.onInsertEmitter.fire({index:e,amount:n.length}),this._length+n.length>this._maxLength){let e=this._length+n.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=n.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,n){if(!(t<=0)){if(e<0||e>=this._length)throw Error(`start argument out of range`);if(e+n<0)throw Error(`Cannot shift elements in list beyond index 0`);if(n>0){for(let r=t-1;r>=0;r--)this.set(e+r+n,this.get(e+r));let r=e+t+n-this._length;if(r>0)for(this._length+=r;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let r=0;r<t;r++)this.set(e+r+n,this.get(e+r))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}},sQ=3,cQ=Object.freeze(new aK),lQ=0,uQ=2,dQ=class e{constructor(e,t,n=!1){this.isWrapped=n,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(e*sQ);let r=t||sK.fromCharData([0,rK,1,0]);for(let t=0;t<e;++t)this.setCell(t,r);this.length=e}get(e){let t=this._data[e*sQ+0],n=t&2097151;return[this._data[e*sQ+1],t&2097152?this._combined[e]:n?$G(n):``,t>>22,t&2097152?this._combined[e].charCodeAt(this._combined[e].length-1):n]}set(e,t){this._data[e*sQ+1]=t[0],t[1].length>1?(this._combined[e]=t[1],this._data[e*sQ+0]=e|2097152|t[2]<<22):this._data[e*sQ+0]=t[1].charCodeAt(0)|t[2]<<22}getWidth(e){return this._data[e*sQ+0]>>22}hasWidth(e){return this._data[e*sQ+0]&12582912}getFg(e){return this._data[e*sQ+1]}getBg(e){return this._data[e*sQ+2]}hasContent(e){return this._data[e*sQ+0]&4194303}getCodePoint(e){let t=this._data[e*sQ+0];return t&2097152?this._combined[e].charCodeAt(this._combined[e].length-1):t&2097151}isCombined(e){return this._data[e*sQ+0]&2097152}getString(e){let t=this._data[e*sQ+0];return t&2097152?this._combined[e]:t&2097151?$G(t&2097151):``}isProtected(e){return this._data[e*sQ+2]&536870912}loadCell(e,t){return lQ=e*sQ,t.content=this._data[lQ+0],t.fg=this._data[lQ+1],t.bg=this._data[lQ+2],t.content&2097152&&(t.combinedData=this._combined[e]),t.bg&268435456&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){t.content&2097152&&(this._combined[e]=t.combinedData),t.bg&268435456&&(this._extendedAttrs[e]=t.extended),this._data[e*sQ+0]=t.content,this._data[e*sQ+1]=t.fg,this._data[e*sQ+2]=t.bg}setCellFromCodepoint(e,t,n,r){r.bg&268435456&&(this._extendedAttrs[e]=r.extended),this._data[e*sQ+0]=t|n<<22,this._data[e*sQ+1]=r.fg,this._data[e*sQ+2]=r.bg}addCodepointToCell(e,t,n){let r=this._data[e*sQ+0];r&2097152?this._combined[e]+=$G(t):r&2097151?(this._combined[e]=$G(r&2097151)+$G(t),r&=-2097152,r|=2097152):r=t|1<<22,n&&(r&=-12582913,r|=n<<22),this._data[e*sQ+0]=r}insertCells(e,t,n){if(e%=this.length,e&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e-1,0,1,n),t<this.length-e){let r=new sK;for(let n=this.length-e-t-1;n>=0;--n)this.setCell(e+t+n,this.loadCell(e+n,r));for(let r=0;r<t;++r)this.setCell(e+r,n)}else for(let t=e;t<this.length;++t)this.setCell(t,n);this.getWidth(this.length-1)===2&&this.setCellFromCodepoint(this.length-1,0,1,n)}deleteCells(e,t,n){if(e%=this.length,t<this.length-e){let r=new sK;for(let n=0;n<this.length-e-t;++n)this.setCell(e+n,this.loadCell(e+t+n,r));for(let e=this.length-t;e<this.length;++e)this.setCell(e,n)}else for(let t=e;t<this.length;++t)this.setCell(t,n);e&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e-1,0,1,n),this.getWidth(e)===0&&!this.hasContent(e)&&this.setCellFromCodepoint(e,0,1,n)}replaceCells(e,t,n,r=!1){if(r){for(e&&this.getWidth(e-1)===2&&!this.isProtected(e-1)&&this.setCellFromCodepoint(e-1,0,1,n),t<this.length&&this.getWidth(t-1)===2&&!this.isProtected(t)&&this.setCellFromCodepoint(t,0,1,n);e<t&&e<this.length;)this.isProtected(e)||this.setCell(e,n),e++;return}for(e&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e-1,0,1,n),t<this.length&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t,0,1,n);e<t&&e<this.length;)this.setCell(e++,n)}resize(e,t){if(e===this.length)return this._data.length*4*uQ<this._data.buffer.byteLength;let n=e*sQ;if(e>this.length){if(this._data.buffer.byteLength>=n*4)this._data=new Uint32Array(this._data.buffer,0,n);else{let e=new Uint32Array(n);e.set(this._data),this._data=e}for(let n=this.length;n<e;++n)this.setCell(n,t)}else{this._data=this._data.subarray(0,n);let t=Object.keys(this._combined);for(let n=0;n<t.length;n++){let r=parseInt(t[n],10);r>=e&&delete this._combined[r]}let r=Object.keys(this._extendedAttrs);for(let t=0;t<r.length;t++){let n=parseInt(r[t],10);n>=e&&delete this._extendedAttrs[n]}}return this.length=e,n*4*uQ<this._data.buffer.byteLength}cleanupMemory(){if(this._data.length*4*uQ<this._data.buffer.byteLength){let e=new Uint32Array(this._data.length);return e.set(this._data),this._data=e,1}return 0}fill(e,t=!1){if(t){for(let t=0;t<this.length;++t)this.isProtected(t)||this.setCell(t,e);return}this._combined={},this._extendedAttrs={};for(let t=0;t<this.length;++t)this.setCell(t,e)}copyFrom(e){this.length===e.length?this._data.set(e._data):this._data=new Uint32Array(e._data),this.length=e.length,this._combined={};for(let t in e._combined)this._combined[t]=e._combined[t];this._extendedAttrs={};for(let t in e._extendedAttrs)this._extendedAttrs[t]=e._extendedAttrs[t];this.isWrapped=e.isWrapped}clone(){let t=new e(0);t._data=new Uint32Array(this._data),t.length=this.length;for(let e in this._combined)t._combined[e]=this._combined[e];for(let e in this._extendedAttrs)t._extendedAttrs[e]=this._extendedAttrs[e];return t.isWrapped=this.isWrapped,t}getTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(this._data[e*sQ+0]&4194303)return e+(this._data[e*sQ+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(this._data[e*sQ+0]&4194303||this._data[e*sQ+2]&50331648)return e+(this._data[e*sQ+0]>>22);return 0}copyCellsFrom(e,t,n,r,i){let a=e._data;if(i)for(let i=r-1;i>=0;i--){for(let e=0;e<sQ;e++)this._data[(n+i)*sQ+e]=a[(t+i)*sQ+e];a[(t+i)*sQ+2]&268435456&&(this._extendedAttrs[n+i]=e._extendedAttrs[t+i])}else for(let i=0;i<r;i++){for(let e=0;e<sQ;e++)this._data[(n+i)*sQ+e]=a[(t+i)*sQ+e];a[(t+i)*sQ+2]&268435456&&(this._extendedAttrs[n+i]=e._extendedAttrs[t+i])}let o=Object.keys(e._combined);for(let r=0;r<o.length;r++){let i=parseInt(o[r],10);i>=t&&(this._combined[i-t+n]=e._combined[i])}}translateToString(e,t,n,r){t??=0,n??=this.length,e&&(n=Math.min(n,this.getTrimmedLength())),r&&(r.length=0);let i=``;for(;t<n;){let e=this._data[t*sQ+0],n=e&2097151,a=e&2097152?this._combined[t]:n?$G(n):iK;if(i+=a,r)for(let e=0;e<a.length;++e)r.push(t);t+=e>>22||1}return r&&r.push(t),i}};function fQ(e,t,n,r,i,a){let o=[];for(let s=0;s<e.length-1;s++){let c=s,l=e.get(++c);if(!l.isWrapped)continue;let u=[e.get(s)];for(;c<e.length&&l.isWrapped;)u.push(l),l=e.get(++c);if(!a&&r>=s&&r<c){s+=u.length-1;continue}let d=0,f=gQ(u,d,t),p=1,m=0;for(;p<u.length;){let e=gQ(u,p,t),r=e-m,a=n-f,o=Math.min(r,a);u[d].copyCellsFrom(u[p],m,f,o,!1),f+=o,f===n&&(d++,f=0),m+=o,m===e&&(p++,m=0),f===0&&d!==0&&u[d-1].getWidth(n-1)===2&&(u[d].copyCellsFrom(u[d-1],n-1,f++,1,!1),u[d-1].setCell(n-1,i))}u[d].replaceCells(f,n,i);let h=0;for(let e=u.length-1;e>0&&(e>d||u[e].getTrimmedLength()===0);e--)h++;h>0&&(o.push(s+u.length-h),o.push(h)),s+=u.length-1}return o}function pQ(e,t){let n=[],r=0,i=t[r],a=0;for(let o=0;o<e.length;o++)if(i===o){let n=t[++r];e.onDeleteEmitter.fire({index:o-a,amount:n}),o+=n-1,a+=n,i=t[++r]}else n.push(o);return{layout:n,countRemoved:a}}function mQ(e,t){let n=[];for(let r=0;r<t.length;r++)n.push(e.get(t[r]));for(let t=0;t<n.length;t++)e.set(t,n[t]);e.length=t.length}function hQ(e,t,n){let r=[],i=e.map((n,r)=>gQ(e,r,t)).reduce((e,t)=>e+t),a=0,o=0,s=0;for(;s<i;){if(i-s<n){r.push(i-s);break}a+=n;let c=gQ(e,o,t);a>c&&(a-=c,o++);let l=e[o].getWidth(a-1)===2;l&&a--;let u=l?n-1:n;r.push(u),s+=u}return r}function gQ(e,t,n){if(t===e.length-1)return e[t].getTrimmedLength();let r=!e[t].hasContent(n-1)&&e[t].getWidth(n-1)===1,i=e[t+1].getWidth(0)===2;return r&&i?n-1:n}var _Q=class e{constructor(t){this.line=t,this.isDisposed=!1,this._disposables=[],this._id=e._nextId++,this._onDispose=this.register(new Rq),this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),cq(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}};_Q._nextId=1;var vQ=_Q,yQ={},bQ=yQ.B;yQ[0]={"`":`◆`,a:`▒`,b:`␉`,c:`␌`,d:`␍`,e:`␊`,f:`°`,g:`±`,h:``,i:`␋`,j:`┘`,k:`┐`,l:`┌`,m:`└`,n:`┼`,o:`⎺`,p:`⎻`,q:`─`,r:`⎼`,s:`⎽`,t:`├`,u:`┤`,v:`┴`,w:`┬`,x:`│`,y:`≤`,z:`≥`,"{":`π`,"|":`≠`,"}":`£`,"~":`·`},yQ.A={"#":`£`},yQ.B=void 0,yQ[4]={"#":`£`,"@":`¾`,"[":`ij`,"\\":`½`,"]":`|`,"{":`¨`,"|":`f`,"}":`¼`,"~":`´`},yQ.C=yQ[5]={"[":`Ä`,"\\":`Ö`,"]":`Å`,"^":`Ü`,"`":`é`,"{":`ä`,"|":`ö`,"}":`å`,"~":`ü`},yQ.R={"#":`£`,"@":`à`,"[":`°`,"\\":`ç`,"]":`§`,"{":`é`,"|":`ù`,"}":`è`,"~":`¨`},yQ.Q={"@":`à`,"[":`â`,"\\":`ç`,"]":`ê`,"^":`î`,"`":`ô`,"{":`é`,"|":`ù`,"}":`è`,"~":`û`},yQ.K={"@":`§`,"[":`Ä`,"\\":`Ö`,"]":`Ü`,"{":`ä`,"|":`ö`,"}":`ü`,"~":`ß`},yQ.Y={"#":`£`,"@":`§`,"[":`°`,"\\":`ç`,"]":`é`,"`":`ù`,"{":`à`,"|":`ò`,"}":`è`,"~":`ì`},yQ.E=yQ[6]={"@":`Ä`,"[":`Æ`,"\\":`Ø`,"]":`Å`,"^":`Ü`,"`":`ä`,"{":`æ`,"|":`ø`,"}":`å`,"~":`ü`},yQ.Z={"#":`£`,"@":`§`,"[":`¡`,"\\":`Ñ`,"]":`¿`,"{":`°`,"|":`ñ`,"}":`ç`},yQ.H=yQ[7]={"@":`É`,"[":`Ä`,"\\":`Ö`,"]":`Å`,"^":`Ü`,"`":`é`,"{":`ä`,"|":`ö`,"}":`å`,"~":`ü`},yQ[`=`]={"#":`ù`,"@":`à`,"[":`é`,"\\":`ç`,"]":`ê`,"^":`î`,_:`è`,"`":`ô`,"{":`ä`,"|":`ö`,"}":`ü`,"~":`û`};var xQ=4294967295,SQ=class{constructor(e,t,n){this._hasScrollback=e,this._optionsService=t,this._bufferService=n,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=cQ.clone(),this.savedCharset=bQ,this.markers=[],this._nullCell=sK.fromCharData([0,rK,1,0]),this._whitespaceCell=sK.fromCharData([0,iK,1,32]),this._isClearing=!1,this._memoryCleanupQueue=new vZ,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new oQ(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new oK),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new oK),this._whitespaceCell}getBlankLine(e,t){return new dQ(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(e){if(!this._hasScrollback)return e;let t=e+this._optionsService.rawOptions.scrollback;return t>xQ?xQ:t}fillViewportRows(e){if(this.lines.length===0){e===void 0&&(e=cQ);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new oQ(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){let n=this.getNullCell(cQ),r=0,i=this._getCorrectBufferLength(t);if(i>this.lines.maxLength&&(this.lines.maxLength=i),this.lines.length>0){if(this._cols<e)for(let t=0;t<this.lines.length;t++)r+=+this.lines.get(t).resize(e,n);let a=0;if(this._rows<t)for(let r=this._rows;r<t;r++)this.lines.length<t+this.ybase&&(this._optionsService.rawOptions.windowsMode||this._optionsService.rawOptions.windowsPty.backend!==void 0||this._optionsService.rawOptions.windowsPty.buildNumber!==void 0?this.lines.push(new dQ(e,n)):this.ybase>0&&this.lines.length<=this.ybase+this.y+a+1?(this.ybase--,a++,this.ydisp>0&&this.ydisp--):this.lines.push(new dQ(e,n)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(i<this.lines.maxLength){let e=this.lines.length-i;e>0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=i}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),a&&(this.y+=a),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t<this.lines.length;t++)r+=+this.lines.get(t).resize(e,n);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),r>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition<this.lines.length;)if(t+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),t>100)return!0;return e}get _isReflowEnabled(){let e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&e.backend===`conpty`&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){let n=this._optionsService.rawOptions.reflowCursorLine,r=fQ(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(cQ),n);if(r.length>0){let n=pQ(this.lines,r);mQ(this.lines,n.layout),this._reflowLargerAdjustViewport(e,t,n.countRemoved)}}_reflowLargerAdjustViewport(e,t,n){let r=this.getNullCell(cQ),i=n;for(;i-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new dQ(e,r))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-n,0)}_reflowSmaller(e,t){let n=this._optionsService.rawOptions.reflowCursorLine,r=this.getNullCell(cQ),i=[],a=0;for(let o=this.lines.length-1;o>=0;o--){let s=this.lines.get(o);if(!s||!s.isWrapped&&s.getTrimmedLength()<=e)continue;let c=[s];for(;s.isWrapped&&o>0;)s=this.lines.get(--o),c.unshift(s);if(!n){let e=this.ybase+this.y;if(e>=o&&e<o+c.length)continue}let l=c[c.length-1].getTrimmedLength(),u=hQ(c,this._cols,e),d=u.length-c.length,f;f=this.ybase===0&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+d):Math.max(0,this.lines.length-this.lines.maxLength+d);let p=[];for(let e=0;e<d;e++){let e=this.getBlankLine(cQ,!0);p.push(e)}p.length>0&&(i.push({start:o+c.length+a,newLines:p}),a+=p.length),c.push(...p);let m=u.length-1,h=u[m];h===0&&(m--,h=u[m]);let g=c.length-d-1,_=l;for(;g>=0;){let e=Math.min(_,h);if(c[m]===void 0)break;c[m].copyCellsFrom(c[g],_-e,h-e,e,!0),h-=e,h===0&&(m--,h=u[m]),_-=e,_===0&&(g--,_=gQ(c,Math.max(g,0),this._cols))}for(let t=0;t<c.length;t++)u[t]<e&&c[t].setCell(u[t],r);let v=d-f;for(;v-- >0;)this.ybase===0?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+a)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+d,this.ybase+t-1)}if(i.length>0){let e=[],t=[];for(let e=0;e<this.lines.length;e++)t.push(this.lines.get(e));let n=this.lines.length,r=n-1,o=0,s=i[o];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+a);let c=0;for(let l=Math.min(this.lines.maxLength-1,n+a-1);l>=0;l--)if(s&&s.start>r+c){for(let e=s.newLines.length-1;e>=0;e--)this.lines.set(l--,s.newLines[e]);l++,e.push({index:r+1,amount:s.newLines.length}),c+=s.newLines.length,s=i[++o]}else this.lines.set(l,t[r--]);let l=0;for(let t=e.length-1;t>=0;t--)e[t].index+=l,this.lines.onInsertEmitter.fire(e[t]),l+=e[t].amount;let u=Math.max(0,n+a-this.lines.maxLength);u>0&&this.lines.onTrimEmitter.fire(u)}}translateBufferLineToString(e,t,n=0,r){let i=this.lines.get(e);return i?i.translateToString(t,n,r):``}getWrappedRangeForLine(e){let t=e,n=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;n+1<this.lines.length&&this.lines.get(n+1).isWrapped;)n++;return{first:t,last:n}}setupTabStops(e){for(e==null?(this.tabs={},e=0):this.tabs[e]||(e=this.prevStop(e));e<this._cols;e+=this._optionsService.rawOptions.tabStopWidth)this.tabs[e]=!0}prevStop(e){for(e??=this.x;!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(e??=this.x;!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t<this.markers.length;t++)this.markers[t].line===e&&(this.markers[t].dispose(),this.markers.splice(t--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].dispose();this.markers.length=0,this._isClearing=!1}addMarker(e){let t=new vQ(e);return this.markers.push(t),t.register(this.lines.onTrim(e=>{t.line-=e,t.line<0&&t.dispose()})),t.register(this.lines.onInsert(e=>{t.line>=e.index&&(t.line+=e.amount)})),t.register(this.lines.onDelete(e=>{t.line>=e.index&&t.line<e.index+e.amount&&t.dispose(),t.line>e.index&&(t.line-=e.amount)})),t.register(t.onDispose(()=>this._removeMarker(t))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}},CQ=class extends pq{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this._register(new Rq),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this._register(this._optionsService.onSpecificOptionChange(`scrollback`,()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this._register(this._optionsService.onSpecificOptionChange(`tabStopWidth`,()=>this.setupTabStops()))}reset(){this._normal=new SQ(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new SQ(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}},wQ=2,TQ=1,EQ=class extends pq{constructor(e){super(),this.isUserScrolling=!1,this._onResize=this._register(new Rq),this.onResize=this._onResize.event,this._onScroll=this._register(new Rq),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,wQ),this.rows=Math.max(e.rawOptions.rows||0,TQ),this.buffers=this._register(new CQ(e,this)),this._register(this.buffers.onBufferActivate(e=>{this._onScroll.fire(e.activeBuffer.ydisp)}))}get buffer(){return this.buffers.active}resize(e,t){let n=this.cols!==e,r=this.rows!==t;this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t,colsChanged:n,rowsChanged:r})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){let n=this.buffer,r;r=this._cachedBlankLine,(!r||r.length!==this.cols||r.getFg(0)!==e.fg||r.getBg(0)!==e.bg)&&(r=n.getBlankLine(e,t),this._cachedBlankLine=r),r.isWrapped=t;let i=n.ybase+n.scrollTop,a=n.ybase+n.scrollBottom;if(n.scrollTop===0){let e=n.lines.isFull;a===n.lines.length-1?e?n.lines.recycle().copyFrom(r):n.lines.push(r.clone()):n.lines.splice(a+1,0,r.clone()),e?this.isUserScrolling&&(n.ydisp=Math.max(n.ydisp-1,0)):(n.ybase++,this.isUserScrolling||n.ydisp++)}else{let e=a-i+1;n.lines.shiftElements(i+1,e-1,-1),n.lines.set(a,r.clone())}this.isUserScrolling||(n.ydisp=n.ybase),this._onScroll.fire(n.ydisp)}scrollLines(e,t){let n=this.buffer;if(e<0){if(n.ydisp===0)return;this.isUserScrolling=!0}else e+n.ydisp>=n.ybase&&(this.isUserScrolling=!1);let r=n.ydisp;n.ydisp=Math.max(Math.min(n.ydisp+e,n.ybase),0),r!==n.ydisp&&(t||this._onScroll.fire(n.ydisp))}};EQ=BG([VG(0,bK)],EQ);var DQ={cols:80,rows:24,cursorBlink:!1,cursorStyle:`block`,cursorWidth:1,cursorInactiveStyle:`outline`,customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:`alt`,fastScrollSensitivity:5,fontFamily:`monospace`,fontSize:15,fontWeight:`normal`,fontWeightBold:`bold`,ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:`info`,logger:null,scrollback:1e3,scrollOnEraseInDisplay:!1,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},reflowCursorLine:!1,rescaleOverlappingGlyphs:!1,rightClickSelectsWord:lZ,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:` ()[]{}',"\``,altClickMovesCursor:!0,convertEol:!1,termName:`xterm`,cancelEvents:!1,overviewRuler:{}},OQ=[`normal`,`bold`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`],kQ=class extends pq{constructor(e){super(),this._onOptionChange=this._register(new Rq),this.onOptionChange=this._onOptionChange.event;let t={...DQ};for(let n in e)if(n in t)try{let r=e[n];t[n]=this._sanitizeAndValidateOption(n,r)}catch(e){console.error(e)}this.rawOptions=t,this.options={...t},this._setupOptions(),this._register(uq(()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null}))}onSpecificOptionChange(e,t){return this.onOptionChange(n=>{n===e&&t(this.rawOptions[e])})}onMultipleOptionChange(e,t){return this.onOptionChange(n=>{e.indexOf(n)!==-1&&t()})}_setupOptions(){let e=e=>{if(!(e in DQ))throw Error(`No option with key "${e}"`);return this.rawOptions[e]},t=(e,t)=>{if(!(e in DQ))throw Error(`No option with key "${e}"`);t=this._sanitizeAndValidateOption(e,t),this.rawOptions[e]!==t&&(this.rawOptions[e]=t,this._onOptionChange.fire(e))};for(let n in this.rawOptions){let r={get:e.bind(this,n),set:t.bind(this,n)};Object.defineProperty(this.options,n,r)}}_sanitizeAndValidateOption(e,t){switch(e){case`cursorStyle`:if(t||=DQ[e],!AQ(t))throw Error(`"${t}" is not a valid value for ${e}`);break;case`wordSeparator`:t||=DQ[e];break;case`fontWeight`:case`fontWeightBold`:if(typeof t==`number`&&1<=t&&t<=1e3)break;t=OQ.includes(t)?t:DQ[e];break;case`cursorWidth`:t=Math.floor(t);case`lineHeight`:case`tabStopWidth`:if(t<1)throw Error(`${e} cannot be less than 1, value: ${t}`);break;case`minimumContrastRatio`:t=Math.max(1,Math.min(21,Math.round(t*10)/10));break;case`scrollback`:if(t=Math.min(t,4294967295),t<0)throw Error(`${e} cannot be less than 0, value: ${t}`);break;case`fastScrollSensitivity`:case`scrollSensitivity`:if(t<=0)throw Error(`${e} cannot be less than or equal to 0, value: ${t}`);break;case`rows`:case`cols`:if(!t&&t!==0)throw Error(`${e} must be numeric, value: ${t}`);break;case`windowsPty`:t??={};break}return t}};function AQ(e){return e===`block`||e===`underline`||e===`bar`}function jQ(e,t=5){if(typeof e!=`object`)return e;let n=Array.isArray(e)?[]:{};for(let r in e)n[r]=t<=1?e[r]:e[r]&&jQ(e[r],t-1);return n}var MQ=Object.freeze({insertMode:!1}),NQ=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),PQ=class extends pq{constructor(e,t,n){super(),this._bufferService=e,this._logService=t,this._optionsService=n,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this._register(new Rq),this.onData=this._onData.event,this._onUserInput=this._register(new Rq),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new Rq),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new Rq),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=jQ(MQ),this.decPrivateModes=jQ(NQ)}reset(){this.modes=jQ(MQ),this.decPrivateModes=jQ(NQ)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;let n=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&n.ybase!==n.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`),this._logService.trace(`sending data (codes)`,()=>e.split(``).map(e=>e.charCodeAt(0))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`),this._logService.trace(`sending binary (codes)`,()=>e.split(``).map(e=>e.charCodeAt(0))),this._onBinary.fire(e))}};PQ=BG([VG(0,mK),VG(1,yK),VG(2,bK)],PQ);var FQ={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>e.button===4||e.action!==1?!1:(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>e.action!==32},DRAG:{events:23,restrict:e=>!(e.action===32&&e.button===3)},ANY:{events:31,restrict:e=>!0}};function IQ(e,t){let n=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return e.button===4?(n|=64,n|=e.action):(n|=e.button&3,e.button&4&&(n|=64),e.button&8&&(n|=128),e.action===32?n|=32:e.action===0&&!t&&(n|=3)),n}var LQ=String.fromCharCode,RQ={DEFAULT:e=>{let t=[IQ(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?``:`\x1B[M${LQ(t[0])}${LQ(t[1])}${LQ(t[2])}`},SGR:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${IQ(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${IQ(e,!0)};${e.x};${e.y}${t}`}},zQ=class extends pq{constructor(e,t,n){super(),this._bufferService=e,this._coreService=t,this._optionsService=n,this._protocols={},this._encodings={},this._activeProtocol=``,this._activeEncoding=``,this._lastEvent=null,this._wheelPartialScroll=0,this._onProtocolChange=this._register(new Rq),this.onProtocolChange=this._onProtocolChange.event;for(let e of Object.keys(FQ))this.addProtocol(e,FQ[e]);for(let e of Object.keys(RQ))this.addEncoding(e,RQ[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(e){if(!this._protocols[e])throw Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol=`NONE`,this.activeEncoding=`DEFAULT`,this._lastEvent=null,this._wheelPartialScroll=0}consumeWheelEvent(e,t,n){if(e.deltaY===0||e.shiftKey||t===void 0||n===void 0)return 0;let r=t/n,i=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(i/=r+0,Math.abs(e.deltaY)<50&&(i*=.3),this._wheelPartialScroll+=i,i=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(i*=this._bufferService.rows),i}_applyScrollModifier(e,t){return t.altKey||t.ctrlKey||t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows||e.button===4&&e.action===32||e.button===3&&e.action!==32||e.button!==4&&(e.action===2||e.action===3)||(e.col++,e.row++,e.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,e,this._activeEncoding===`SGR_PIXELS`))||!this._protocols[this._activeProtocol].restrict(e))return!1;let t=this._encodings[this._activeEncoding](e);return t&&(this._activeEncoding===`DEFAULT`?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(e&1),up:!!(e&2),drag:!!(e&4),move:!!(e&8),wheel:!!(e&16)}}_equalEvents(e,t,n){if(n){if(e.x!==t.x||e.y!==t.y)return!1}else if(e.col!==t.col||e.row!==t.row)return!1;return!(e.button!==t.button||e.action!==t.action||e.ctrl!==t.ctrl||e.alt!==t.alt||e.shift!==t.shift)}};zQ=BG([VG(0,mK),VG(1,gK),VG(2,bK)],zQ);var BQ=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],VQ=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],HQ;function UQ(e,t){let n=0,r=t.length-1,i;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=n;)if(i=n+r>>1,e>t[i][1])n=i+1;else if(e<t[i][0])r=i-1;else return!0;return!1}var WQ=class{constructor(){if(this.version=`6`,!HQ){HQ=new Uint8Array(65536),HQ.fill(1),HQ[0]=0,HQ.fill(0,1,32),HQ.fill(0,127,160),HQ.fill(2,4352,4448),HQ[9001]=2,HQ[9002]=2,HQ.fill(2,11904,42192),HQ[12351]=1,HQ.fill(2,44032,55204),HQ.fill(2,63744,64256),HQ.fill(2,65040,65050),HQ.fill(2,65072,65136),HQ.fill(2,65280,65377),HQ.fill(2,65504,65511);for(let e=0;e<BQ.length;++e)HQ.fill(0,BQ[e][0],BQ[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?HQ[e]:UQ(e,VQ)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let n=this.wcwidth(e),r=n===0&&t!==0;if(r){let e=GQ.extractWidth(t);e===0?r=!1:e>n&&(n=e)}return GQ.createPropertyValue(0,n,r)}},GQ=class e{constructor(){this._providers=Object.create(null),this._active=``,this._onChange=new Rq,this.onChange=this._onChange.event;let e=new WQ;this.register(e),this._active=e.version,this._activeProvider=e}static extractShouldJoin(e){return(e&1)!=0}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,n=!1){return(e&16777215)<<3|(t&3)<<1|!!n}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(t){let n=0,r=0,i=t.length;for(let a=0;a<i;++a){let o=t.charCodeAt(a);if(55296<=o&&o<=56319){if(++a>=i)return n+this.wcwidth(o);let e=t.charCodeAt(a);56320<=e&&e<=57343?o=(o-55296)*1024+e-56320+65536:n+=this.wcwidth(e)}let s=this.charProperties(o,r),c=e.extractWidth(s);e.extractShouldJoin(s)&&(c-=e.extractWidth(r)),n+=c,r=s}return n}charProperties(e,t){return this._activeProvider.charProperties(e,t)}},KQ=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}};function qQ(e){let t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1)?.get(e.cols-1),n=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);n&&t&&(n.isWrapped=t[3]!==0&&t[3]!==32)}var JQ=2147483647,YQ=256,XQ=class e{constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>YQ)throw Error(`maxSubParamsLength must not be greater than 256`);this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(t){let n=new e;if(!t.length)return n;for(let e=+!!Array.isArray(t[0]);e<t.length;++e){let r=t[e];if(Array.isArray(r))for(let e=0;e<r.length;++e)n.addSubParam(r[e]);else n.addParam(r)}return n}clone(){let t=new e(this.maxLength,this.maxSubParamsLength);return t.params.set(this.params),t.length=this.length,t._subParams.set(this._subParams),t._subParamsLength=this._subParamsLength,t._subParamsIdx.set(this._subParamsIdx),t._rejectDigits=this._rejectDigits,t._rejectSubDigits=this._rejectSubDigits,t._digitIsSub=this._digitIsSub,t}toArray(){let e=[];for(let t=0;t<this.length;++t){e.push(this.params[t]);let n=this._subParamsIdx[t]>>8,r=this._subParamsIdx[t]&255;r-n>0&&e.push(Array.prototype.slice.call(this._subParams,n,r))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength){this._rejectDigits=!0;return}if(e<-1)throw Error(`values lesser than -1 are not allowed`);this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>JQ?JQ:e}addSubParam(e){if(this._digitIsSub=!0,this.length){if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength){this._rejectSubDigits=!0;return}if(e<-1)throw Error(`values lesser than -1 are not allowed`);this._subParams[this._subParamsLength++]=e>JQ?JQ:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(this._subParamsIdx[e]&255)-(this._subParamsIdx[e]>>8)>0}getSubParams(e){let t=this._subParamsIdx[e]>>8,n=this._subParamsIdx[e]&255;return n-t>0?this._subParams.subarray(t,n):null}getSubParamsAll(){let e={};for(let t=0;t<this.length;++t){let n=this._subParamsIdx[t]>>8,r=this._subParamsIdx[t]&255;r-n>0&&(e[t]=this._subParams.slice(n,r))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let n=this._digitIsSub?this._subParams:this.params,r=n[t-1];n[t-1]=~r?Math.min(r*10+e,JQ):e}},ZQ=[],QQ=class{constructor(){this._state=0,this._active=ZQ,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let n=this._handlers[e];return n.push(t),{dispose:()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=ZQ}reset(){if(this._state===2)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=ZQ,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||ZQ,!this._active.length)this._handlerFb(this._id,`START`);else for(let e=this._active.length-1;e>=0;e--)this._active[e].start()}_put(e,t,n){if(!this._active.length)this._handlerFb(this._id,`PUT`,eK(e,t,n));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(e,t,n)}start(){this.reset(),this._state=1}put(e,t,n){if(this._state!==3){if(this._state===1)for(;t<n;){let n=e[t++];if(n===59){this._state=2,this._start();break}if(n<48||57<n){this._state=3;return}this._id===-1&&(this._id=0),this._id=this._id*10+n-48}this._state===2&&n-t>0&&this._put(e,t,n)}}end(e,t=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),!this._active.length)this._handlerFb(this._id,`END`,e);else{let n=!1,r=this._active.length-1,i=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,n=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&n===!1){for(;r>=0&&(n=this._active[r].end(e),n!==!0);r--)if(n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,n;r--}for(;r>=0;r--)if(n=this._active[r].end(!1),n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,n}this._active=ZQ,this._id=-1,this._state=0}}},$Q=class{constructor(e){this._handler=e,this._data=``,this._hitLimit=!1}start(){this._data=``,this._hitLimit=!1}put(e,t,n){this._hitLimit||(this._data+=eK(e,t,n),this._data.length>1e7&&(this._data=``,this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then(e=>(this._data=``,this._hitLimit=!1,e));return this._data=``,this._hitLimit=!1,t}},e$=[],t$=class{constructor(){this._handlers=Object.create(null),this._active=e$,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=e$}registerHandler(e,t){this._handlers[e]===void 0&&(this._handlers[e]=[]);let n=this._handlers[e];return n.push(t),{dispose:()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=e$,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||e$,!this._active.length)this._handlerFb(this._ident,`HOOK`,t);else for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t)}put(e,t,n){if(!this._active.length)this._handlerFb(this._ident,`PUT`,eK(e,t,n));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(e,t,n)}unhook(e,t=!0){if(!this._active.length)this._handlerFb(this._ident,`UNHOOK`,e);else{let n=!1,r=this._active.length-1,i=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,n=t,i=this._stack.fallThrough,this._stack.paused=!1),!i&&n===!1){for(;r>=0&&(n=this._active[r].unhook(e),n!==!0);r--)if(n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,n;r--}for(;r>=0;r--)if(n=this._active[r].unhook(!1),n instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,n}this._active=e$,this._ident=0}},n$=new XQ;n$.addParam(0);var r$=class{constructor(e){this._handler=e,this._data=``,this._params=n$,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():n$,this._data=``,this._hitLimit=!1}put(e,t,n){this._hitLimit||(this._data+=eK(e,t,n),this._data.length>1e7&&(this._data=``,this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then(e=>(this._params=n$,this._data=``,this._hitLimit=!1,e));return this._params=n$,this._data=``,this._hitLimit=!1,t}},i$=class{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,n,r){this.table[t<<8|e]=n<<4|r}addMany(e,t,n,r){for(let i=0;i<e.length;i++)this.table[t<<8|e[i]]=n<<4|r}},a$=160,o$=function(){let e=new i$(4095),t=Array.apply(null,Array(256)).map((e,t)=>t),n=(e,n)=>t.slice(e,n),r=n(32,127),i=n(0,24);i.push(25),i.push.apply(i,n(28,32));let a=n(0,14),o;for(o in e.setDefault(1,0),e.addMany(r,0,2,0),a)e.addMany([24,26,153,154],o,3,0),e.addMany(n(128,144),o,3,0),e.addMany(n(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(i,0,3,0),e.addMany(i,1,3,1),e.add(127,1,0,1),e.addMany(i,8,0,8),e.addMany(i,3,3,3),e.add(127,3,0,3),e.addMany(i,4,3,4),e.add(127,4,0,4),e.addMany(i,6,3,6),e.addMany(i,5,3,5),e.add(127,5,0,5),e.addMany(i,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(r,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(n(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(r,7,0,7),e.addMany(i,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(n(64,127),3,7,0),e.addMany(n(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(n(48,60),4,8,4),e.addMany(n(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(n(32,64),6,0,6),e.add(127,6,0,6),e.addMany(n(64,127),6,0,0),e.addMany(n(32,48),3,9,5),e.addMany(n(32,48),5,9,5),e.addMany(n(48,64),5,0,6),e.addMany(n(64,127),5,7,0),e.addMany(n(32,48),4,9,5),e.addMany(n(32,48),1,9,2),e.addMany(n(32,48),2,9,2),e.addMany(n(48,127),2,10,0),e.addMany(n(48,80),1,10,0),e.addMany(n(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(n(96,127),1,10,0),e.add(80,1,11,9),e.addMany(i,9,0,9),e.add(127,9,0,9),e.addMany(n(28,32),9,0,9),e.addMany(n(32,48),9,9,12),e.addMany(n(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(i,11,0,11),e.addMany(n(32,128),11,0,11),e.addMany(n(28,32),11,0,11),e.addMany(i,10,0,10),e.add(127,10,0,10),e.addMany(n(28,32),10,0,10),e.addMany(n(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(n(32,48),10,9,12),e.addMany(i,12,0,12),e.add(127,12,0,12),e.addMany(n(28,32),12,0,12),e.addMany(n(32,48),12,9,12),e.addMany(n(48,64),12,0,11),e.addMany(n(64,127),12,12,13),e.addMany(n(64,127),10,12,13),e.addMany(n(64,127),9,12,13),e.addMany(i,13,13,13),e.addMany(r,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(a$,0,2,0),e.add(a$,8,5,8),e.add(a$,6,0,6),e.add(a$,11,0,11),e.add(a$,13,13,13),e}(),s$=class extends pq{constructor(e=o$){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new XQ,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,n)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._register(uq(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new QQ),this._dcsParser=this._register(new t$),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:`\\`},()=>!0)}_identifier(e,t=[64,126]){let n=0;if(e.prefix){if(e.prefix.length>1)throw Error(`only one byte as prefix supported`);if(n=e.prefix.charCodeAt(0),n&&60>n||n>63)throw Error(`prefix must be in range 0x3c .. 0x3f`)}if(e.intermediates){if(e.intermediates.length>2)throw Error(`only two bytes as intermediates are supported`);for(let t=0;t<e.intermediates.length;++t){let r=e.intermediates.charCodeAt(t);if(32>r||r>47)throw Error(`intermediate must be in range 0x20 .. 0x2f`);n<<=8,n|=r}}if(e.final.length!==1)throw Error(`final must be a single byte`);let r=e.final.charCodeAt(0);if(t[0]>r||r>t[1])throw Error(`final must be in range ${t[0]} .. ${t[1]}`);return n<<=8,n|=r,n}identToString(e){let t=[];for(;e;)t.push(String.fromCharCode(e&255)),e>>=8;return t.reverse().join(``)}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){let n=this._identifier(e,[48,126]);this._escHandlers[n]===void 0&&(this._escHandlers[n]=[]);let r=this._escHandlers[n];return r.push(t),{dispose:()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){let n=this._identifier(e);this._csiHandlers[n]===void 0&&(this._csiHandlers[n]=[]);let r=this._csiHandlers[n];return r.push(t),{dispose:()=>{let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,n,r,i){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=n,this._parseStack.transition=r,this._parseStack.chunkPos=i}parse(e,t,n){let r=0,i=0,a=0,o;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,a=this._parseStack.chunkPos+1;else{if(n===void 0||this._parseStack.state===1)throw this._parseStack.state=1,Error(`improper continuation due to previous async handler, giving up parsing`);let t=this._parseStack.handlers,i=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(n===!1&&i>-1){for(;i>=0&&(o=t[i](this._params),o!==!0);i--)if(o instanceof Promise)return this._parseStack.handlerPos=i,o}this._parseStack.handlers=[];break;case 4:if(n===!1&&i>-1){for(;i>=0&&(o=t[i](),o!==!0);i--)if(o instanceof Promise)return this._parseStack.handlerPos=i,o}this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],o=this._dcsParser.unhook(r!==24&&r!==26,n),o)return o;r===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],o=this._oscParser.end(r!==24&&r!==26,n),o)return o;r===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break}this._parseStack.state=0,a=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=this._parseStack.transition&15}for(let n=a;n<t;++n){switch(r=e[n],i=this._transitions.table[this.currentState<<8|(r<160?r:a$)],i>>4){case 2:for(let i=n+1;;++i){if(i>=t||(r=e[i])<32||r>126&&r<a$){this._printHandler(e,n,i),n=i-1;break}if(++i>=t||(r=e[i])<32||r>126&&r<a$){this._printHandler(e,n,i),n=i-1;break}if(++i>=t||(r=e[i])<32||r>126&&r<a$){this._printHandler(e,n,i),n=i-1;break}if(++i>=t||(r=e[i])<32||r>126&&r<a$){this._printHandler(e,n,i),n=i-1;break}}break;case 3:this._executeHandlers[r]?this._executeHandlers[r]():this._executeHandlerFb(r),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:n,code:r,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let a=this._csiHandlers[this._collect<<8|r],s=a?a.length-1:-1;for(;s>=0&&(o=a[s](this._params),o!==!0);s--)if(o instanceof Promise)return this._preserveStack(3,a,s,i,n),o;s<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}while(++n<t&&(r=e[n])>47&&r<60);n--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:let c=this._escHandlers[this._collect<<8|r],l=c?c.length-1:-1;for(;l>=0&&(o=c[l](),o!==!0);l--)if(o instanceof Promise)return this._preserveStack(4,c,l,i,n),o;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let i=n+1;;++i)if(i>=t||(r=e[i])===24||r===26||r===27||r>127&&r<a$){this._dcsParser.put(e,n,i),n=i-1;break}break;case 14:if(o=this._dcsParser.unhook(r!==24&&r!==26),o)return this._preserveStack(6,[],0,i,n),o;r===27&&(i|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let i=n+1;;i++)if(i>=t||(r=e[i])<32||r>127&&r<a$){this._oscParser.put(e,n,i),n=i-1;break}break;case 6:if(o=this._oscParser.end(r!==24&&r!==26),o)return this._preserveStack(5,[],0,i,n),o;r===27&&(i|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break}this.currentState=i&15}}},c$=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,l$=/^[\da-f]+$/;function u$(e){if(!e)return;let t=e.toLowerCase();if(t.indexOf(`rgb:`)===0){t=t.slice(4);let e=c$.exec(t);if(e){let t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(t.indexOf(`#`)===0&&(t=t.slice(1),l$.exec(t)&&[3,6,9,12].includes(t.length))){let e=t.length/3,n=[0,0,0];for(let r=0;r<3;++r){let i=parseInt(t.slice(e*r,e*r+e),16);n[r]=e===1?i<<4:e===2?i:e===3?i>>4:i>>8}return n}}function d$(e,t){let n=e.toString(16),r=n.length<2?`0`+n:n;switch(t){case 4:return n[0];case 8:return r;case 12:return(r+r).slice(0,3);default:return r+r}}function f$(e,t=16){let[n,r,i]=e;return`rgb:${d$(n,t)}/${d$(r,t)}/${d$(i,t)}`}var p$={"(":0,")":1,"*":2,"+":3,"-":1,".":2},m$=131072,h$=10;function g$(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var _$=5e3,v$=0,y$=class extends pq{constructor(e,t,n,r,i,a,o,s,c=new s$){super(),this._bufferService=e,this._charsetService=t,this._coreService=n,this._logService=r,this._optionsService=i,this._oscLinkService=a,this._coreMouseService=o,this._unicodeService=s,this._parser=c,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new tK,this._utf8Decoder=new nK,this._windowTitle=``,this._iconName=``,this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=cQ.clone(),this._eraseAttrDataInternal=cQ.clone(),this._onRequestBell=this._register(new Rq),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new Rq),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new Rq),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new Rq),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new Rq),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new Rq),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new Rq),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new Rq),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new Rq),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new Rq),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new Rq),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new Rq),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new Rq),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this._register(this._parser),this._dirtyRowTracker=new b$(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate(e=>this._activeBuffer=e.activeBuffer)),this._parser.setCsiHandlerFallback((e,t)=>{this._logService.debug(`Unknown CSI code: `,{identifier:this._parser.identToString(e),params:t.toArray()})}),this._parser.setEscHandlerFallback(e=>{this._logService.debug(`Unknown ESC code: `,{identifier:this._parser.identToString(e)})}),this._parser.setExecuteHandlerFallback(e=>{this._logService.debug(`Unknown EXECUTE code: `,{code:e})}),this._parser.setOscHandlerFallback((e,t,n)=>{this._logService.debug(`Unknown OSC code: `,{identifier:e,action:t,data:n})}),this._parser.setDcsHandlerFallback((e,t,n)=>{t===`HOOK`&&(n=n.toArray()),this._logService.debug(`Unknown DCS code: `,{identifier:this._parser.identToString(e),action:t,payload:n})}),this._parser.setPrintHandler((e,t,n)=>this.print(e,t,n)),this._parser.registerCsiHandler({final:`@`},e=>this.insertChars(e)),this._parser.registerCsiHandler({intermediates:` `,final:`@`},e=>this.scrollLeft(e)),this._parser.registerCsiHandler({final:`A`},e=>this.cursorUp(e)),this._parser.registerCsiHandler({intermediates:` `,final:`A`},e=>this.scrollRight(e)),this._parser.registerCsiHandler({final:`B`},e=>this.cursorDown(e)),this._parser.registerCsiHandler({final:`C`},e=>this.cursorForward(e)),this._parser.registerCsiHandler({final:`D`},e=>this.cursorBackward(e)),this._parser.registerCsiHandler({final:`E`},e=>this.cursorNextLine(e)),this._parser.registerCsiHandler({final:`F`},e=>this.cursorPrecedingLine(e)),this._parser.registerCsiHandler({final:`G`},e=>this.cursorCharAbsolute(e)),this._parser.registerCsiHandler({final:`H`},e=>this.cursorPosition(e)),this._parser.registerCsiHandler({final:`I`},e=>this.cursorForwardTab(e)),this._parser.registerCsiHandler({final:`J`},e=>this.eraseInDisplay(e,!1)),this._parser.registerCsiHandler({prefix:`?`,final:`J`},e=>this.eraseInDisplay(e,!0)),this._parser.registerCsiHandler({final:`K`},e=>this.eraseInLine(e,!1)),this._parser.registerCsiHandler({prefix:`?`,final:`K`},e=>this.eraseInLine(e,!0)),this._parser.registerCsiHandler({final:`L`},e=>this.insertLines(e)),this._parser.registerCsiHandler({final:`M`},e=>this.deleteLines(e)),this._parser.registerCsiHandler({final:`P`},e=>this.deleteChars(e)),this._parser.registerCsiHandler({final:`S`},e=>this.scrollUp(e)),this._parser.registerCsiHandler({final:`T`},e=>this.scrollDown(e)),this._parser.registerCsiHandler({final:`X`},e=>this.eraseChars(e)),this._parser.registerCsiHandler({final:`Z`},e=>this.cursorBackwardTab(e)),this._parser.registerCsiHandler({final:"`"},e=>this.charPosAbsolute(e)),this._parser.registerCsiHandler({final:`a`},e=>this.hPositionRelative(e)),this._parser.registerCsiHandler({final:`b`},e=>this.repeatPrecedingCharacter(e)),this._parser.registerCsiHandler({final:`c`},e=>this.sendDeviceAttributesPrimary(e)),this._parser.registerCsiHandler({prefix:`>`,final:`c`},e=>this.sendDeviceAttributesSecondary(e)),this._parser.registerCsiHandler({final:`d`},e=>this.linePosAbsolute(e)),this._parser.registerCsiHandler({final:`e`},e=>this.vPositionRelative(e)),this._parser.registerCsiHandler({final:`f`},e=>this.hVPosition(e)),this._parser.registerCsiHandler({final:`g`},e=>this.tabClear(e)),this._parser.registerCsiHandler({final:`h`},e=>this.setMode(e)),this._parser.registerCsiHandler({prefix:`?`,final:`h`},e=>this.setModePrivate(e)),this._parser.registerCsiHandler({final:`l`},e=>this.resetMode(e)),this._parser.registerCsiHandler({prefix:`?`,final:`l`},e=>this.resetModePrivate(e)),this._parser.registerCsiHandler({final:`m`},e=>this.charAttributes(e)),this._parser.registerCsiHandler({final:`n`},e=>this.deviceStatus(e)),this._parser.registerCsiHandler({prefix:`?`,final:`n`},e=>this.deviceStatusPrivate(e)),this._parser.registerCsiHandler({intermediates:`!`,final:`p`},e=>this.softReset(e)),this._parser.registerCsiHandler({intermediates:` `,final:`q`},e=>this.setCursorStyle(e)),this._parser.registerCsiHandler({final:`r`},e=>this.setScrollRegion(e)),this._parser.registerCsiHandler({final:`s`},e=>this.saveCursor(e)),this._parser.registerCsiHandler({final:`t`},e=>this.windowOptions(e)),this._parser.registerCsiHandler({final:`u`},e=>this.restoreCursor(e)),this._parser.registerCsiHandler({intermediates:`'`,final:`}`},e=>this.insertColumns(e)),this._parser.registerCsiHandler({intermediates:`'`,final:`~`},e=>this.deleteColumns(e)),this._parser.registerCsiHandler({intermediates:`"`,final:`q`},e=>this.selectProtected(e)),this._parser.registerCsiHandler({intermediates:`$`,final:`p`},e=>this.requestMode(e,!0)),this._parser.registerCsiHandler({prefix:`?`,intermediates:`$`,final:`p`},e=>this.requestMode(e,!1)),this._parser.setExecuteHandler($.BEL,()=>this.bell()),this._parser.setExecuteHandler($.LF,()=>this.lineFeed()),this._parser.setExecuteHandler($.VT,()=>this.lineFeed()),this._parser.setExecuteHandler($.FF,()=>this.lineFeed()),this._parser.setExecuteHandler($.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler($.BS,()=>this.backspace()),this._parser.setExecuteHandler($.HT,()=>this.tab()),this._parser.setExecuteHandler($.SO,()=>this.shiftOut()),this._parser.setExecuteHandler($.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(lX.IND,()=>this.index()),this._parser.setExecuteHandler(lX.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(lX.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new $Q(e=>(this.setTitle(e),this.setIconName(e),!0))),this._parser.registerOscHandler(1,new $Q(e=>this.setIconName(e))),this._parser.registerOscHandler(2,new $Q(e=>this.setTitle(e))),this._parser.registerOscHandler(4,new $Q(e=>this.setOrReportIndexedColor(e))),this._parser.registerOscHandler(8,new $Q(e=>this.setHyperlink(e))),this._parser.registerOscHandler(10,new $Q(e=>this.setOrReportFgColor(e))),this._parser.registerOscHandler(11,new $Q(e=>this.setOrReportBgColor(e))),this._parser.registerOscHandler(12,new $Q(e=>this.setOrReportCursorColor(e))),this._parser.registerOscHandler(104,new $Q(e=>this.restoreIndexedColor(e))),this._parser.registerOscHandler(110,new $Q(e=>this.restoreFgColor(e))),this._parser.registerOscHandler(111,new $Q(e=>this.restoreBgColor(e))),this._parser.registerOscHandler(112,new $Q(e=>this.restoreCursorColor(e))),this._parser.registerEscHandler({final:`7`},()=>this.saveCursor()),this._parser.registerEscHandler({final:`8`},()=>this.restoreCursor()),this._parser.registerEscHandler({final:`D`},()=>this.index()),this._parser.registerEscHandler({final:`E`},()=>this.nextLine()),this._parser.registerEscHandler({final:`H`},()=>this.tabSet()),this._parser.registerEscHandler({final:`M`},()=>this.reverseIndex()),this._parser.registerEscHandler({final:`=`},()=>this.keypadApplicationMode()),this._parser.registerEscHandler({final:`>`},()=>this.keypadNumericMode()),this._parser.registerEscHandler({final:`c`},()=>this.fullReset()),this._parser.registerEscHandler({final:`n`},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:`o`},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:`|`},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:`}`},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:`~`},()=>this.setgLevel(1)),this._parser.registerEscHandler({intermediates:`%`,final:`@`},()=>this.selectDefaultCharset()),this._parser.registerEscHandler({intermediates:`%`,final:`G`},()=>this.selectDefaultCharset());for(let e in yQ)this._parser.registerEscHandler({intermediates:`(`,final:e},()=>this.selectCharset(`(`+e)),this._parser.registerEscHandler({intermediates:`)`,final:e},()=>this.selectCharset(`)`+e)),this._parser.registerEscHandler({intermediates:`*`,final:e},()=>this.selectCharset(`*`+e)),this._parser.registerEscHandler({intermediates:`+`,final:e},()=>this.selectCharset(`+`+e)),this._parser.registerEscHandler({intermediates:`-`,final:e},()=>this.selectCharset(`-`+e)),this._parser.registerEscHandler({intermediates:`.`,final:e},()=>this.selectCharset(`.`+e)),this._parser.registerEscHandler({intermediates:`/`,final:e},()=>this.selectCharset(`/`+e));this._parser.registerEscHandler({intermediates:`#`,final:`8`},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(e=>(this._logService.error(`Parsing error: `,e),e)),this._parser.registerDcsHandler({intermediates:`$`,final:`q`},new r$((e,t)=>this.requestStatusString(e,t)))}getAttrData(){return this._curAttrData}_preserveStack(e,t,n,r){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=n,this._parseStack.position=r}_logSlowResolvingAsync(e){this._logService.logLevel<=3&&Promise.race([e,new Promise((e,t)=>setTimeout(()=>t(`#SLOW_TIMEOUT`),_$))]).catch(e=>{if(e!==`#SLOW_TIMEOUT`)throw e;console.warn(`async parser handler taking longer than ${_$} ms`)})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let n,r=this._activeBuffer.x,i=this._activeBuffer.y,a=0,o=this._parseStack.paused;if(o){if(n=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(n),n;r=this._parseStack.cursorStartX,i=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>m$&&(a=this._parseStack.position+m$)}if(this._logService.logLevel<=1&&this._logService.debug(`parsing data ${typeof e==`string`?` "${e}"`:` "${Array.prototype.map.call(e,e=>String.fromCharCode(e)).join(``)}"`}`),this._logService.logLevel===0&&this._logService.trace(`parsing data (codes)`,typeof e==`string`?e.split(``).map(e=>e.charCodeAt(0)):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<m$&&(this._parseBuffer=new Uint32Array(Math.min(e.length,m$))),o||this._dirtyRowTracker.clearRange(),e.length>m$)for(let t=a;t<e.length;t+=m$){let a=t+m$<e.length?t+m$:e.length,o=typeof e==`string`?this._stringDecoder.decode(e.substring(t,a),this._parseBuffer):this._utf8Decoder.decode(e.subarray(t,a),this._parseBuffer);if(n=this._parser.parse(this._parseBuffer,o))return this._preserveStack(r,i,o,t),this._logSlowResolvingAsync(n),n}else if(!o){let t=typeof e==`string`?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(n=this._parser.parse(this._parseBuffer,t))return this._preserveStack(r,i,t,0),this._logSlowResolvingAsync(n),n}(this._activeBuffer.x!==r||this._activeBuffer.y!==i)&&this._onCursorMove.fire();let s=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),c=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);c<this._bufferService.rows&&this._onRequestRefreshRows.fire({start:Math.min(c,this._bufferService.rows-1),end:Math.min(s,this._bufferService.rows-1)})}print(e,t,n){let r,i,a=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,s=this._bufferService.cols,c=this._coreService.decPrivateModes.wraparound,l=this._coreService.modes.insertMode,u=this._curAttrData,d=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&n-t>0&&d.getWidth(this._activeBuffer.x-1)===2&&d.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let f=this._parser.precedingJoinState;for(let p=t;p<n;++p){if(r=e[p],r<127&&a){let e=a[String.fromCharCode(r)];e&&(r=e.charCodeAt(0))}let t=this._unicodeService.charProperties(r,f);i=GQ.extractWidth(t);let n=GQ.extractShouldJoin(t),m=n?GQ.extractWidth(f):0;if(f=t,o&&this._onA11yChar.fire($G(r)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+i-m>s){if(c){let e=d,t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),d=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&d instanceof dQ&&d.copyCellsFrom(e,t,0,m,!1);t<s;)e.setCellFromCodepoint(t++,0,1,u)}else if(this._activeBuffer.x=s-1,i===2)continue}if(n&&this._activeBuffer.x){let e=d.getWidth(this._activeBuffer.x-1)?1:2;d.addCodepointToCell(this._activeBuffer.x-e,r,i);for(let e=i-m;--e>=0;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,u);continue}if(l&&(d.insertCells(this._activeBuffer.x,i-m,this._activeBuffer.getNullCell(u)),d.getWidth(s-1)===2&&d.setCellFromCodepoint(s-1,0,1,u)),d.setCellFromCodepoint(this._activeBuffer.x++,r,i,u),i>0)for(;--i;)d.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=f,this._activeBuffer.x<s&&n-t>0&&d.getWidth(this._activeBuffer.x)===0&&!d.hasContent(this._activeBuffer.x)&&d.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return e.final===`t`&&!e.prefix&&!e.intermediates?this._parser.registerCsiHandler(e,e=>g$(e.params[0],this._optionsService.rawOptions.windowOptions)?t(e):!0):this._parser.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new r$(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new $Q(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){let t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){let t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){let t=e.params[0];return t===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:t===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){let t=e.params[0];return t===1&&(this._curAttrData.bg|=536870912),(t===2||t===0)&&(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,n,r=!1,i=!1){let a=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);a.replaceCells(t,n,this._activeBuffer.getNullCell(this._eraseAttrData()),i),r&&(a.isWrapped=!1)}_resetBufferLine(e,t=!1){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n&&(n.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),n.isWrapped=!1)}eraseInDisplay(e,t=!1){this._restrictCursor(this._bufferService.cols);let n;switch(e.params[0]){case 0:for(n=this._activeBuffer.y,this._dirtyRowTracker.markDirty(n),this._eraseInBufferLine(n++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);n<this._bufferService.rows;n++)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(n);break;case 1:for(n=this._activeBuffer.y,this._dirtyRowTracker.markDirty(n),this._eraseInBufferLine(n,0,this._activeBuffer.x+1,!0,t),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(n+1).isWrapped=!1);n--;)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(0);break;case 2:if(this._optionsService.rawOptions.scrollOnEraseInDisplay){for(n=this._bufferService.rows,this._dirtyRowTracker.markRangeDirty(0,n-1);n--&&!this._activeBuffer.lines.get(this._activeBuffer.ybase+n)?.getTrimmedLength(););for(;n>=0;n--)this._bufferService.scroll(this._eraseAttrData())}else{for(n=this._bufferService.rows,this._dirtyRowTracker.markDirty(n-1);n--;)this._resetBufferLine(n,t);this._dirtyRowTracker.markDirty(0)}break;case 3:let e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0));break}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t);break}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let n=this._activeBuffer.ybase+this._activeBuffer.y,r=this._bufferService.rows-1-this._activeBuffer.scrollBottom,i=this._bufferService.rows-1+this._activeBuffer.ybase-r+1;for(;t--;)this._activeBuffer.lines.splice(i-1,1),this._activeBuffer.lines.splice(n,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let n=this._activeBuffer.ybase+this._activeBuffer.y,r;for(r=this._bufferService.rows-1-this._activeBuffer.scrollBottom,r=this._bufferService.rows-1+this._activeBuffer.ybase-r;t--;)this._activeBuffer.lines.splice(n,1),this._activeBuffer.lines.splice(r,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();let t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();let t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(cQ));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();let t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){let t=this._parser.precedingJoinState;if(!t)return!0;let n=e.params[0]||1,r=GQ.extractWidth(t),i=this._activeBuffer.x-r,a=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(i),o=new Uint32Array(a.length*n),s=0;for(let e=0;e<a.length;){let t=a.codePointAt(e)||0;o[s++]=t,e+=t>65535?2:1}let c=s;for(let e=1;e<n;++e)o.copyWithin(c,0,s),c+=s;return this.print(o,0,c),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is(`xterm`)||this._is(`rxvt-unicode`)||this._is(`screen`)?this._coreService.triggerDataEvent($.ESC+`[?1;2c`):this._is(`linux`)&&this._coreService.triggerDataEvent($.ESC+`[?6c`)),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(`xterm`)?this._coreService.triggerDataEvent($.ESC+`[>0;276;0c`):this._is(`rxvt-unicode`)?this._coreService.triggerDataEvent($.ESC+`[>85;95;0c`):this._is(`linux`)?this._coreService.triggerDataEvent(e.params[0]+`c`):this._is(`screen`)&&this._coreService.triggerDataEvent($.ESC+`[>83;40003;0c`)),!0}_is(e){return(this._optionsService.rawOptions.termName+``).indexOf(e)===0}setMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0;break}return!0}setModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,bQ),this._charsetService.setgCharset(1,bQ),this._charsetService.setgCharset(2,bQ),this._charsetService.setgCharset(3,bQ);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug(`Serial port requested application keypad.`),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol=`X10`;break;case 1e3:this._coreMouseService.activeProtocol=`VT200`;break;case 1002:this._coreMouseService.activeProtocol=`DRAG`;break;case 1003:this._coreMouseService.activeProtocol=`ANY`;break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug(`DECSET 1005 not supported (see #2507)`);break;case 1006:this._coreMouseService.activeEncoding=`SGR`;break;case 1015:this._logService.debug(`DECSET 1015 not supported (see #2507)`);break;case 1016:this._coreMouseService.activeEncoding=`SGR_PIXELS`;break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!0;break}return!0}resetMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1;break}return!0}resetModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug(`Switching back to normal keypad.`),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol=`NONE`;break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug(`DECRST 1005 not supported (see #2507)`);break;case 1006:this._coreMouseService.activeEncoding=`DEFAULT`;break;case 1015:this._logService.debug(`DECRST 1015 not supported (see #2507)`);break;case 1016:this._coreMouseService.activeEncoding=`DEFAULT`;break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),e.params[t]===1049&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!1,this._onRequestRefreshRows.fire(void 0);break}return!0}requestMode(e,t){let n;(e=>(e[e.NOT_RECOGNIZED=0]=`NOT_RECOGNIZED`,e[e.SET=1]=`SET`,e[e.RESET=2]=`RESET`,e[e.PERMANENTLY_SET=3]=`PERMANENTLY_SET`,e[e.PERMANENTLY_RESET=4]=`PERMANENTLY_RESET`))(n||={});let r=this._coreService.decPrivateModes,{activeProtocol:i,activeEncoding:a}=this._coreMouseService,o=this._coreService,{buffers:s,cols:c}=this._bufferService,{active:l,alt:u}=s,d=this._optionsService.rawOptions,f=(e,n)=>(o.triggerDataEvent(`${$.ESC}[${t?``:`?`}${e};${n}$y`),!0),p=e=>e?1:2,m=e.params[0];return t?m===2?f(m,4):m===4?f(m,p(o.modes.insertMode)):m===12?f(m,3):m===20?f(m,p(d.convertEol)):f(m,0):m===1?f(m,p(r.applicationCursorKeys)):m===3?f(m,d.windowOptions.setWinLines?c===80?2:+(c===132):0):m===6?f(m,p(r.origin)):m===7?f(m,p(r.wraparound)):m===8?f(m,3):m===9?f(m,p(i===`X10`)):m===12?f(m,p(d.cursorBlink)):m===25?f(m,p(!o.isCursorHidden)):m===45?f(m,p(r.reverseWraparound)):m===66?f(m,p(r.applicationKeypad)):m===67?f(m,4):m===1e3?f(m,p(i===`VT200`)):m===1002?f(m,p(i===`DRAG`)):m===1003?f(m,p(i===`ANY`)):m===1004?f(m,p(r.sendFocus)):m===1005?f(m,4):m===1006?f(m,p(a===`SGR`)):m===1015?f(m,4):m===1016?f(m,p(a===`SGR_PIXELS`)):m===1048?f(m,1):m===47||m===1047||m===1049?f(m,p(l===u)):m===2004?f(m,p(r.bracketedPasteMode)):m===2026?f(m,p(r.synchronizedOutput)):f(m,0)}_updateAttrColor(e,t,n,r,i){return t===2?(e|=50331648,e&=-16777216,e|=aK.fromColorRGB([n,r,i])):t===5&&(e&=-50331904,e|=33554432|n&255),e}_extractColor(e,t,n){let r=[0,0,-1,0,0,0],i=0,a=0;do{if(r[a+i]=e.params[t+a],e.hasSubParams(t+a)){let n=e.getSubParams(t+a),o=0;do r[1]===5&&(i=1),r[a+o+1+i]=n[o];while(++o<n.length&&o+a+1+i<r.length);break}if(r[1]===5&&a+i>=2||r[1]===2&&a+i>=5)break;r[1]&&(i=1)}while(++a+t<e.length&&a+i<r.length);for(let e=2;e<r.length;++e)r[e]===-1&&(r[e]=0);switch(r[0]){case 38:n.fg=this._updateAttrColor(n.fg,r[1],r[3],r[4],r[5]);break;case 48:n.bg=this._updateAttrColor(n.bg,r[1],r[3],r[4],r[5]);break;case 58:n.extended=n.extended.clone(),n.extended.underlineColor=this._updateAttrColor(n.extended.underlineColor,r[1],r[3],r[4],r[5])}return a}_processUnderline(e,t){t.extended=t.extended.clone(),(!~e||e>5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,e===0&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=cQ.fg,e.bg=cQ.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(e.length===1&&e.params[0]===0)return this._processSGR0(this._curAttrData),!0;let t=e.length,n,r=this._curAttrData;for(let i=0;i<t;i++)n=e.params[i],n>=30&&n<=37?(r.fg&=-50331904,r.fg|=16777216|n-30):n>=40&&n<=47?(r.bg&=-50331904,r.bg|=16777216|n-40):n>=90&&n<=97?(r.fg&=-50331904,r.fg|=n-90|16777224):n>=100&&n<=107?(r.bg&=-50331904,r.bg|=n-100|16777224):n===0?this._processSGR0(r):n===1?r.fg|=134217728:n===3?r.bg|=67108864:n===4?(r.fg|=268435456,this._processUnderline(e.hasSubParams(i)?e.getSubParams(i)[0]:1,r)):n===5?r.fg|=536870912:n===7?r.fg|=67108864:n===8?r.fg|=1073741824:n===9?r.fg|=2147483648:n===2?r.bg|=134217728:n===21?this._processUnderline(2,r):n===22?(r.fg&=-134217729,r.bg&=-134217729):n===23?r.bg&=-67108865:n===24?(r.fg&=-268435457,this._processUnderline(0,r)):n===25?r.fg&=-536870913:n===27?r.fg&=-67108865:n===28?r.fg&=-1073741825:n===29?r.fg&=2147483647:n===39?(r.fg&=-67108864,r.fg|=cQ.fg&16777215):n===49?(r.bg&=-67108864,r.bg|=cQ.bg&16777215):n===38||n===48||n===58?i+=this._extractColor(e,i,r):n===53?r.bg|=1073741824:n===55?r.bg&=-1073741825:n===59?(r.extended=r.extended.clone(),r.extended.underlineColor=-1,r.updateExtended()):n===100?(r.fg&=-67108864,r.fg|=cQ.fg&16777215,r.bg&=-67108864,r.bg|=cQ.bg&16777215):this._logService.debug(`Unknown SGR attribute: %d.`,n);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${$.ESC}[0n`);break;case 6:let e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${$.ESC}[${e};${t}R`);break}return!0}deviceStatusPrivate(e){switch(e.params[0]){case 6:let e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${$.ESC}[?${e};${t}R`);break;case 15:break;case 25:break;case 26:break;case 53:break}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=cQ.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){let t=e.length===0?1:e.params[0];if(t===0)this._coreService.decPrivateModes.cursorStyle=void 0,this._coreService.decPrivateModes.cursorBlink=void 0;else{switch(t){case 1:case 2:this._coreService.decPrivateModes.cursorStyle=`block`;break;case 3:case 4:this._coreService.decPrivateModes.cursorStyle=`underline`;break;case 5:case 6:this._coreService.decPrivateModes.cursorStyle=`bar`;break}let e=t%2==1;this._coreService.decPrivateModes.cursorBlink=e}return!0}setScrollRegion(e){let t=e.params[0]||1,n;return(e.length<2||(n=e.params[1])>this._bufferService.rows||n===0)&&(n=this._bufferService.rows),n>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=n-1,this._setCursor(0,0)),!0}windowOptions(e){if(!g$(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;let t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:t!==2&&this._onRequestWindowsOptionsReport.fire(0);break;case 16:this._onRequestWindowsOptionsReport.fire(1);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${$.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(t===0||t===2)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>h$&&this._windowTitleStack.shift()),(t===0||t===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>h$&&this._iconNameStack.shift());break;case 23:(t===0||t===2)&&this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),(t===0||t===1)&&this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop());break}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){let t=[],n=e.split(`;`);for(;n.length>1;){let e=n.shift(),r=n.shift();if(/^\d+$/.exec(e)){let n=parseInt(e);if(x$(n))if(r===`?`)t.push({type:0,index:n});else{let e=u$(r);e&&t.push({type:1,index:n,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){let t=e.indexOf(`;`);if(t===-1)return!0;let n=e.slice(0,t).trim(),r=e.slice(t+1);return r?this._createHyperlink(n,r):n.trim()?!1:this._finishHyperlink()}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();let n=e.split(`:`),r,i=n.findIndex(e=>e.startsWith(`id=`));return i!==-1&&(r=n[i].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:r,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){let n=e.split(`;`);for(let e=0;e<n.length&&!(t>=this._specialColors.length);++e,++t)if(n[e]===`?`)this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{let r=u$(n[e]);r&&this._onColor.fire([{type:1,index:this._specialColors[t],color:r}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;let t=[],n=e.split(`;`);for(let e=0;e<n.length;++e)if(/^\d+$/.exec(n[e])){let r=parseInt(n[e]);x$(r)&&t.push({type:2,index:r})}return t.length&&this._onColor.fire(t),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug(`Serial port requested application keypad.`),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug(`Switching back to normal keypad.`),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,bQ),!0}selectCharset(e){return e.length===2?(e[0]===`/`||this._charsetService.setgCharset(p$[e[0]],yQ[e[1]]||bQ),!0):(this.selectDefaultCharset(),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=cQ.clone(),this._eraseAttrDataInternal=cQ.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=this._curAttrData.bg&67108863,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){let e=new sK;e.content=4194373,e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t<this._bufferService.rows;++t){let n=this._activeBuffer.ybase+this._activeBuffer.y+t,r=this._activeBuffer.lines.get(n);r&&(r.fill(e),r.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){let n=e=>(this._coreService.triggerDataEvent(`${$.ESC}${e}${$.ESC}\\`),!0),r=this._bufferService.buffer,i=this._optionsService.rawOptions;return n(e===`"q`?`P1$r${+!!this._curAttrData.isProtected()}"q`:e===`"p`?`P1$r61;1"p`:e===`r`?`P1$r${r.scrollTop+1};${r.scrollBottom+1}r`:e===`m`?`P1$r0m`:e===` q`?`P1$r${{block:2,underline:4,bar:6}[i.cursorStyle]-+!!i.cursorBlink} q`:`P0$r`)}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}},b$=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){e<this.start?this.start=e:e>this.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(v$=e,e=t,t=v$),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};b$=BG([VG(0,mK)],b$);function x$(e){return 0<=e&&e<256}var S$=5e7,C$=12,w$=50,T$=class extends pq{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this._register(new Rq),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(t!==void 0&&this._syncCalls>t){this._syncCalls=0;return}if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;this._isSyncWriting=!0;let n;for(;n=this._writeBuffer.shift();){this._action(n);let e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>S$)throw Error(`write data discarded, use flow control to avoid losing data`);if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput){this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),this._innerWrite();return}setTimeout(()=>this._innerWrite())}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){let n=e||performance.now();for(;this._writeBuffer.length>this._bufferOffset;){let e=this._writeBuffer[this._bufferOffset],r=this._action(e,t);if(r){r.catch(e=>(queueMicrotask(()=>{throw e}),Promise.resolve(!1))).then(e=>performance.now()-n>=C$?setTimeout(()=>this._innerWrite(0,e)):this._innerWrite(n,e));return}let i=this._callbacks[this._bufferOffset];if(i&&i(),this._bufferOffset++,this._pendingData-=e.length,performance.now()-n>=C$)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>w$&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout(()=>this._innerWrite())):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}},E$=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){let t=this._bufferService.buffer;if(e.id===void 0){let n=t.addMarker(t.ybase+t.y),r={data:e,id:this._nextId++,lines:[n]};return n.onDispose(()=>this._removeMarkerFromLink(r,n)),this._dataByLinkId.set(r.id,r),r.id}let n=e,r=this._getEntryIdKey(n),i=this._entriesWithId.get(r);if(i)return this.addLineToLink(i.id,t.ybase+t.y),i.id;let a=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(n),data:n,lines:[a]};return a.onDispose(()=>this._removeMarkerFromLink(o,a)),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){let n=this._dataByLinkId.get(e);if(n&&n.lines.every(e=>e.line!==t)){let e=this._bufferService.buffer.addMarker(t);n.lines.push(e),e.onDispose(()=>this._removeMarkerFromLink(n,e))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){let n=e.lines.indexOf(t);n!==-1&&(e.lines.splice(n,1),e.lines.length===0&&(e.data.id!==void 0&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};E$=BG([VG(0,mK)],E$);var D$=!1,O$=class extends pq{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new mq),this._onBinary=this._register(new Rq),this.onBinary=this._onBinary.event,this._onData=this._register(new Rq),this.onData=this._onData.event,this._onLineFeed=this._register(new Rq),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new Rq),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new Rq),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new Rq),this._instantiationService=new tQ,this.optionsService=this._register(new kQ(e)),this._instantiationService.setService(bK,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(EQ)),this._instantiationService.setService(mK,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(iQ)),this._instantiationService.setService(yK,this._logService),this.coreService=this._register(this._instantiationService.createInstance(PQ)),this._instantiationService.setService(gK,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(zQ)),this._instantiationService.setService(hK,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(GQ)),this._instantiationService.setService(SK,this.unicodeService),this._charsetService=this._instantiationService.createInstance(KQ),this._instantiationService.setService(_K,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(E$),this._instantiationService.setService(xK,this._oscLinkService),this._inputHandler=this._register(new y$(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(wq.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(wq.forward(this._bufferService.onResize,this._onResize)),this._register(wq.forward(this.coreService.onData,this._onData)),this._register(wq.forward(this.coreService.onBinary,this._onBinary)),this._register(this.coreService.onRequestScrollToBottom(()=>this.scrollToBottom(!0))),this._register(this.coreService.onUserInput(()=>this._writeBuffer.handleUserInput())),this._register(this.optionsService.onMultipleOptionChange([`windowsMode`,`windowsPty`],()=>this._handleWindowsPtyOptionChange())),this._register(this._bufferService.onScroll(()=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this._writeBuffer=this._register(new T$((e,t)=>this._inputHandler.parse(e,t))),this._register(wq.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new Rq),this._onScroll.event(e=>{this._onScrollApi?.fire(e.position)})),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(let t in e)this.optionsService.options[t]=e[t]}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=3&&!D$&&(this._logService.warn(`writeSync is unreliable and will be removed soon.`),D$=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,wQ),t=Math.max(t,TQ),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t){this._bufferService.scrollLines(e,t)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1,t=this.optionsService.rawOptions.windowsPty;t&&t.buildNumber!==void 0&&t.buildNumber!==void 0?e=t.backend===`conpty`&&t.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let e=[];e.push(this.onLineFeed(qQ.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:`H`},()=>(qQ(this._bufferService),!1))),this._windowsWrappingHeuristics.value=uq(()=>{for(let t of e)t.dispose()})}}},k$={48:[`0`,`)`],49:[`1`,`!`],50:[`2`,`@`],51:[`3`,`#`],52:[`4`,`$`],53:[`5`,`%`],54:[`6`,`^`],55:[`7`,`&`],56:[`8`,`*`],57:[`9`,`(`],186:[`;`,`:`],187:[`=`,`+`],188:[`,`,`<`],189:[`-`,`_`],190:[`.`,`>`],191:[`/`,`?`],192:["`",`~`],219:[`[`,`{`],220:[`\\`,`|`],221:[`]`,`}`],222:[`'`,`"`]};function A$(e,t,n,r){let i={type:0,cancel:!1,key:void 0},a=!!e.shiftKey|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:e.key===`UIKeyInputUpArrow`?t?i.key=$.ESC+`OA`:i.key=$.ESC+`[A`:e.key===`UIKeyInputLeftArrow`?t?i.key=$.ESC+`OD`:i.key=$.ESC+`[D`:e.key===`UIKeyInputRightArrow`?t?i.key=$.ESC+`OC`:i.key=$.ESC+`[C`:e.key===`UIKeyInputDownArrow`&&(t?i.key=$.ESC+`OB`:i.key=$.ESC+`[B`);break;case 8:i.key=e.ctrlKey?`\b`:$.DEL,e.altKey&&(i.key=$.ESC+i.key);break;case 9:if(e.shiftKey){i.key=$.ESC+`[Z`;break}i.key=$.HT,i.cancel=!0;break;case 13:i.key=e.altKey?$.ESC+$.CR:$.CR,i.cancel=!0;break;case 27:i.key=$.ESC,e.altKey&&(i.key=$.ESC+$.ESC),i.cancel=!0;break;case 37:if(e.metaKey)break;a?i.key=$.ESC+`[1;`+(a+1)+`D`:t?i.key=$.ESC+`OD`:i.key=$.ESC+`[D`;break;case 39:if(e.metaKey)break;a?i.key=$.ESC+`[1;`+(a+1)+`C`:t?i.key=$.ESC+`OC`:i.key=$.ESC+`[C`;break;case 38:if(e.metaKey)break;a?i.key=$.ESC+`[1;`+(a+1)+`A`:t?i.key=$.ESC+`OA`:i.key=$.ESC+`[A`;break;case 40:if(e.metaKey)break;a?i.key=$.ESC+`[1;`+(a+1)+`B`:t?i.key=$.ESC+`OB`:i.key=$.ESC+`[B`;break;case 45:!e.shiftKey&&!e.ctrlKey&&(i.key=$.ESC+`[2~`);break;case 46:a?i.key=$.ESC+`[3;`+(a+1)+`~`:i.key=$.ESC+`[3~`;break;case 36:a?i.key=$.ESC+`[1;`+(a+1)+`H`:t?i.key=$.ESC+`OH`:i.key=$.ESC+`[H`;break;case 35:a?i.key=$.ESC+`[1;`+(a+1)+`F`:t?i.key=$.ESC+`OF`:i.key=$.ESC+`[F`;break;case 33:e.shiftKey?i.type=2:e.ctrlKey?i.key=$.ESC+`[5;`+(a+1)+`~`:i.key=$.ESC+`[5~`;break;case 34:e.shiftKey?i.type=3:e.ctrlKey?i.key=$.ESC+`[6;`+(a+1)+`~`:i.key=$.ESC+`[6~`;break;case 112:a?i.key=$.ESC+`[1;`+(a+1)+`P`:i.key=$.ESC+`OP`;break;case 113:a?i.key=$.ESC+`[1;`+(a+1)+`Q`:i.key=$.ESC+`OQ`;break;case 114:a?i.key=$.ESC+`[1;`+(a+1)+`R`:i.key=$.ESC+`OR`;break;case 115:a?i.key=$.ESC+`[1;`+(a+1)+`S`:i.key=$.ESC+`OS`;break;case 116:a?i.key=$.ESC+`[15;`+(a+1)+`~`:i.key=$.ESC+`[15~`;break;case 117:a?i.key=$.ESC+`[17;`+(a+1)+`~`:i.key=$.ESC+`[17~`;break;case 118:a?i.key=$.ESC+`[18;`+(a+1)+`~`:i.key=$.ESC+`[18~`;break;case 119:a?i.key=$.ESC+`[19;`+(a+1)+`~`:i.key=$.ESC+`[19~`;break;case 120:a?i.key=$.ESC+`[20;`+(a+1)+`~`:i.key=$.ESC+`[20~`;break;case 121:a?i.key=$.ESC+`[21;`+(a+1)+`~`:i.key=$.ESC+`[21~`;break;case 122:a?i.key=$.ESC+`[23;`+(a+1)+`~`:i.key=$.ESC+`[23~`;break;case 123:a?i.key=$.ESC+`[24;`+(a+1)+`~`:i.key=$.ESC+`[24~`;break;default:if(e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey)e.keyCode>=65&&e.keyCode<=90?i.key=String.fromCharCode(e.keyCode-64):e.keyCode===32?i.key=$.NUL:e.keyCode>=51&&e.keyCode<=55?i.key=String.fromCharCode(e.keyCode-51+27):e.keyCode===56?i.key=$.DEL:e.keyCode===219?i.key=$.ESC:e.keyCode===220?i.key=$.FS:e.keyCode===221&&(i.key=$.GS);else if((!n||r)&&e.altKey&&!e.metaKey){let t=k$[e.keyCode]?.[+!!e.shiftKey];if(t)i.key=$.ESC+t;else if(e.keyCode>=65&&e.keyCode<=90){let t=e.ctrlKey?e.keyCode-64:e.keyCode+32,n=String.fromCharCode(t);e.shiftKey&&(n=n.toUpperCase()),i.key=$.ESC+n}else if(e.keyCode===32)i.key=$.ESC+(e.ctrlKey?$.NUL:` `);else if(e.key===`Dead`&&e.code.startsWith(`Key`)){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),i.key=$.ESC+t,i.cancel=!0}}else n&&!e.altKey&&!e.ctrlKey&&!e.shiftKey&&e.metaKey?e.keyCode===65&&(i.type=1):e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&e.key.length===1?i.key=e.key:e.key&&e.ctrlKey&&(e.key===`_`&&(i.key=$.US),e.key===`@`&&(i.key=$.NUL));break}return i}var j$=0,M$=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new vZ,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new vZ,this._isFlushingDeleted=!1}clear(){this._array.length=0,this._insertedValues.length=0,this._flushInsertedTask.clear(),this._isFlushingInserted=!1,this._deletedIndices.length=0,this._flushDeletedTask.clear(),this._isFlushingDeleted=!1}insert(e){this._flushCleanupDeleted(),this._insertedValues.length===0&&this._flushInsertedTask.enqueue(()=>this._flushInserted()),this._insertedValues.push(e)}_flushInserted(){let e=this._insertedValues.sort((e,t)=>this._getKey(e)-this._getKey(t)),t=0,n=0,r=Array(this._array.length+this._insertedValues.length);for(let i=0;i<r.length;i++)n>=this._array.length||this._getKey(e[t])<=this._getKey(this._array[n])?(r[i]=e[t],t++):r[i]=this._array[n++];this._array=r,this._insertedValues.length=0}_flushCleanupInserted(){!this._isFlushingInserted&&this._insertedValues.length>0&&this._flushInsertedTask.flush()}delete(e){if(this._flushCleanupInserted(),this._array.length===0)return!1;let t=this._getKey(e);if(t===void 0||(j$=this._search(t),j$===-1)||this._getKey(this._array[j$])!==t)return!1;do if(this._array[j$]===e)return this._deletedIndices.length===0&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(j$),!0;while(++j$<this._array.length&&this._getKey(this._array[j$])===t);return!1}_flushDeleted(){this._isFlushingDeleted=!0;let e=this._deletedIndices.sort((e,t)=>e-t),t=0,n=Array(this._array.length-e.length),r=0;for(let i=0;i<this._array.length;i++)e[t]===i?t++:n[r++]=this._array[i];this._array=n,this._deletedIndices.length=0,this._isFlushingDeleted=!1}_flushCleanupDeleted(){!this._isFlushingDeleted&&this._deletedIndices.length>0&&this._flushDeletedTask.flush()}*getKeyIterator(e){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(j$=this._search(e),!(j$<0||j$>=this._array.length)&&this._getKey(this._array[j$])===e))do yield this._array[j$];while(++j$<this._array.length&&this._getKey(this._array[j$])===e)}forEachByKey(e,t){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(j$=this._search(e),!(j$<0||j$>=this._array.length)&&this._getKey(this._array[j$])===e))do t(this._array[j$]);while(++j$<this._array.length&&this._getKey(this._array[j$])===e)}values(){return this._flushCleanupInserted(),this._flushCleanupDeleted(),[...this._array].values()}_search(e){let t=0,n=this._array.length-1;for(;n>=t;){let r=t+n>>1,i=this._getKey(this._array[r]);if(i>e)n=r-1;else if(i<e)t=r+1;else{for(;r>0&&this._getKey(this._array[r-1])===e;)r--;return r}}return t}},N$=0,P$=0,F$=class extends pq{constructor(){super(),this._decorations=new M$(e=>e?.marker.line),this._onDecorationRegistered=this._register(new Rq),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new Rq),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register(uq(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let t=new I$(e);if(t){let e=t.marker.onDispose(()=>t.dispose()),n=t.onDispose(()=>{n.dispose(),t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())});this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(let e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,n){let r=0,i=0;for(let a of this._decorations.getKeyIterator(t))r=a.options.x??0,i=r+(a.options.width??1),e>=r&&e<i&&(!n||(a.options.layer??`bottom`)===n)&&(yield a)}forEachDecorationAtCell(e,t,n,r){this._decorations.forEachByKey(t,t=>{N$=t.options.x??0,P$=N$+(t.options.width??1),e>=N$&&e<P$&&(!n||(t.options.layer??`bottom`)===n)&&r(t)})}},I$=class extends fq{constructor(e){super(),this.options=e,this.onRenderEmitter=this.add(new Rq),this.onRender=this.onRenderEmitter.event,this._onDispose=this.add(new Rq),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position=`full`)}get backgroundColorRGB(){return this._cachedBg===null&&(this.options.backgroundColor?this._cachedBg=yX.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=yX.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}},L$=1e3,R$=class{constructor(e,t=L$){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,n){this._rowCount=n,e=e===void 0?0:e,t=t===void 0?this._rowCount-1:t,this._rowStart=this._rowStart===void 0?e:Math.min(this._rowStart,e),this._rowEnd=this._rowEnd===void 0?t:Math.max(this._rowEnd,t);let r=performance.now();if(r-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=r,this._innerRefresh();else if(!this._additionalRefreshRequested){let e=r-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},t)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}},z$=20,B$=!1,V$=class extends pq{constructor(e,t,n,r){super(),this._terminal=e,this._coreBrowserService=n,this._renderService=r,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce=``;let i=this._coreBrowserService.mainDocument;this._accessibilityContainer=i.createElement(`div`),this._accessibilityContainer.classList.add(`xterm-accessibility`),this._rowContainer=i.createElement(`div`),this._rowContainer.setAttribute(`role`,`list`),this._rowContainer.classList.add(`xterm-accessibility-tree`),this._rowElements=[];for(let e=0;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);if(this._topBoundaryFocusListener=e=>this._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener(`focus`,this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=i.createElement(`div`),this._liveRegion.classList.add(`live-region`),this._liveRegion.setAttribute(`aria-live`,`assertive`),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new R$(this._renderRows.bind(this))),!this._terminal.element)throw Error(`Cannot enable accessibility before Terminal.open`);B$?(this._accessibilityContainer.classList.add(`debug`),this._rowContainer.classList.add(`debug`),this._debugRootContainer=i.createElement(`div`),this._debugRootContainer.classList.add(`xterm`),this._debugRootContainer.appendChild(i.createTextNode(`------start a11y------`)),this._debugRootContainer.appendChild(this._accessibilityContainer),this._debugRootContainer.appendChild(i.createTextNode(`------end a11y------`)),this._terminal.element.insertAdjacentElement(`afterend`,this._debugRootContainer)):this._terminal.element.insertAdjacentElement(`afterbegin`,this._accessibilityContainer),this._register(this._terminal.onResize(e=>this._handleResize(e.rows))),this._register(this._terminal.onRender(e=>this._refreshRows(e.start,e.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(e=>this._handleChar(e))),this._register(this._terminal.onLineFeed(()=>this._handleChar(`
|
|
248
248
|
`))),this._register(this._terminal.onA11yTab(e=>this._handleTab(e))),this._register(this._terminal.onKey(e=>this._handleKey(e.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(lY(i,`selectionchange`,()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(uq(()=>{B$?this._debugRootContainer.remove():this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(` `)}_handleChar(e){this._liveRegionLineCount<z$+1&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
|
|
249
249
|
`&&(this._liveRegionLineCount++,this._liveRegionLineCount===z$+1&&(this._liveRegion.textContent+=GG.get())))}_clearLiveRegion(){this._liveRegion.textContent=``,this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){let n=this._terminal.buffer,r=n.lines.length.toString();for(let i=e;i<=t;i++){let e=n.lines.get(n.ydisp+i),t=[],a=e?.translateToString(!0,void 0,void 0,t)||``,o=(n.ydisp+i+1).toString(),s=this._rowElements[i];s&&(a.length===0?(s.textContent=`\xA0`,this._rowColumns.set(s,[0,1])):(s.textContent=a,this._rowColumns.set(s,t)),s.setAttribute(`aria-posinset`,o),s.setAttribute(`aria-setsize`,r),this._alignRowWidth(s))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=``)}_handleBoundaryFocus(e,t){let n=e.target,r=this._rowElements[t===0?1:this._rowElements.length-2];if(n.getAttribute(`aria-posinset`)===(t===0?`1`:`${this._terminal.buffer.lines.length}`)||e.relatedTarget!==r)return;let i,a;if(t===0?(i=n,a=this._rowElements.pop(),this._rowContainer.removeChild(a)):(i=this._rowElements.shift(),a=n,this._rowContainer.removeChild(i)),i.removeEventListener(`focus`,this._topBoundaryFocusListener),a.removeEventListener(`focus`,this._bottomBoundaryFocusListener),t===0){let e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement(`afterbegin`,e)}else{let e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener(`focus`,this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._terminal.scrollLines(t===0?-1:1),this._rowElements[t===0?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let e=this._coreBrowserService.mainDocument.getSelection();if(!e)return;if(e.isCollapsed){this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection();return}if(!e.anchorNode||!e.focusNode){console.error(`anchorNode and/or focusNode are null`);return}let t={node:e.anchorNode,offset:e.anchorOffset},n={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(n.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===n.node&&t.offset>n.offset)&&([t,n]=[n,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;let r=this._rowElements.slice(-1)[0];if(n.node.compareDocumentPosition(r)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(n={node:r,offset:r.textContent?.length??0}),!this._rowContainer.contains(n.node))return;let i=({node:e,offset:t})=>{let n=e instanceof Text?e.parentNode:e,r=parseInt(n?.getAttribute(`aria-posinset`),10)-1;if(isNaN(r))return console.warn(`row is invalid. Race condition?`),null;let i=this._rowColumns.get(n);if(!i)return console.warn(`columns is null. Race condition?`),null;let a=t<i.length?i[t]:i.slice(-1)[0]+1;return a>=this._terminal.cols&&(++r,a=0),{row:r,column:a}},a=i(t),o=i(n);if(!(!a||!o)){if(a.row>o.row||a.row===o.row&&a.column>=o.column)throw Error(`invalid range`);this._terminal.select(a.column,a.row,(o.row-a.row)*this._terminal.cols-a.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(`focus`,this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(`focus`,this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let e=this._coreBrowserService.mainDocument.createElement(`div`);return e.setAttribute(`role`,`listitem`),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e]),this._alignRowWidth(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}_alignRowWidth(e){e.style.transform=``;let t=e.getBoundingClientRect().width,n=this._rowColumns.get(e)?.slice(-1)?.[0];if(!n)return;let r=n*this._renderService.dimensions.css.cell.width;e.style.transform=`scaleX(${r/t})`}};V$=BG([VG(1,vK),VG(2,DK),VG(3,kK)],V$);var H$=class extends pq{constructor(e,t,n,r,i){super(),this._element=e,this._mouseService=t,this._renderService=n,this._bufferService=r,this._linkProviderService=i,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new Rq),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new Rq),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register(uq(()=>{cq(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()})),this._register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0})),this._register(lY(this._element,`mouseleave`,()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(lY(this._element,`mousemove`,this._handleMouseMove.bind(this))),this._register(lY(this._element,`mousedown`,this._handleMouseDown.bind(this))),this._register(lY(this._element,`mouseup`,this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(e){this._lastMouseEvent=e;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;let n=e.composedPath();for(let e=0;e<n.length;e++){let t=n[e];if(t.classList.contains(`xterm`))break;if(t.classList.contains(`xterm-hover`))return}(!this._lastBufferCell||t.x!==this._lastBufferCell.x||t.y!==this._lastBufferCell.y)&&(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized){this._clearCurrentLink(),this._askForLink(e,!1),this._wasResized=!1;return}this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){(!this._activeProviderReplies||!t)&&(this._activeProviderReplies?.forEach(e=>{e?.forEach(e=>{e.link.dispose&&e.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let n=!1;for(let[r,i]of this._linkProviderService.linkProviders.entries())t?this._activeProviderReplies?.get(r)&&(n=this._checkLinkProviderResult(r,e,n)):i.provideLinks(e.y,t=>{if(this._isMouseOut)return;let i=t?.map(e=>({link:e}));this._activeProviderReplies?.set(r,i),n=this._checkLinkProviderResult(r,e,n),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,t){let n=new Set;for(let r=0;r<t.size;r++){let i=t.get(r);if(i)for(let t=0;t<i.length;t++){let r=i[t],a=r.link.range.start.y<e?0:r.link.range.start.x,o=r.link.range.end.y>e?this._bufferService.cols:r.link.range.end.x;for(let e=a;e<=o;e++){if(n.has(e)){i.splice(t--,1);break}n.add(e)}}}}_checkLinkProviderResult(e,t,n){if(!this._activeProviderReplies)return n;let r=this._activeProviderReplies.get(e),i=!1;for(let t=0;t<e;t++)(!this._activeProviderReplies.has(t)||this._activeProviderReplies.get(t))&&(i=!0);if(!i&&r){let e=r.find(e=>this._linkAtPosition(e.link,t));e&&(n=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!n)for(let e=0;e<this._activeProviderReplies.size;e++){let r=this._activeProviderReplies.get(e)?.find(e=>this._linkAtPosition(e.link,t));if(r){n=!0,this._handleNewLink(r);break}}return n}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;let t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink&&U$(this._mouseDownLink.link,this._currentLink.link)&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){!this._currentLink||!this._lastMouseEvent||(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,cq(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(e){if(!this._lastMouseEvent)return;let t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:e.link.decorations===void 0?!0:e.link.decorations.underline,pointerCursor:e.link.decorations===void 0?!0:e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle(`xterm-cursor-pointer`,e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(e=>{if(!this._currentLink)return;let t=e.start===0?0:e.start+1+this._bufferService.buffer.ydisp,n=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=n&&(this._clearCurrentLink(t,n),this._lastMouseEvent)){let e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}})))}_linkHover(e,t,n){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(`xterm-cursor-pointer`)),t.hover&&t.hover(n,t.text)}_fireUnderlineEvent(e,t){let n=e.range,r=this._bufferService.buffer.ydisp,i=this._createLinkUnderlineEvent(n.start.x-1,n.start.y-r-1,n.end.x,n.end.y-r-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(i)}_linkLeave(e,t,n){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(`xterm-cursor-pointer`)),t.leave&&t.leave(n,t.text)}_linkAtPosition(e,t){let n=e.range.start.y*this._bufferService.cols+e.range.start.x,r=e.range.end.y*this._bufferService.cols+e.range.end.x,i=t.y*this._bufferService.cols+t.x;return n<=i&&i<=r}_positionFromMouseEvent(e,t,n){let r=n.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(r)return{x:r[0],y:r[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,n,r,i){return{x1:e,y1:t,x2:n,y2:r,cols:this._bufferService.cols,fg:i}}};H$=BG([VG(1,OK),VG(2,kK),VG(3,mK),VG(4,NK)],H$);function U$(e,t){return e.text===t.text&&e.range.start.x===t.range.start.x&&e.range.start.y===t.range.start.y&&e.range.end.x===t.range.end.x&&e.range.end.y===t.range.end.y}var W$=class extends O${constructor(e={}){super(e),this._linkifier=this._register(new mq),this.browser=tZ,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new mq),this._onCursorMove=this._register(new Rq),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new Rq),this.onKey=this._onKey.event,this._onRender=this._register(new Rq),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new Rq),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new Rq),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new Rq),this.onBell=this._onBell.event,this._onFocus=this._register(new Rq),this._onBlur=this._register(new Rq),this._onA11yCharEmitter=this._register(new Rq),this._onA11yTabEmitter=this._register(new Rq),this._onWillOpen=this._register(new Rq),this._setup(),this._decorationService=this._instantiationService.createInstance(F$),this._instantiationService.setService(CK,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(XX),this._instantiationService.setService(NK,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(wK)),this._register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this._register(this._inputHandler.onRequestRefreshRows(e=>this.refresh(e?.start??0,e?.end??this.rows-1))),this._register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this._register(this._inputHandler.onRequestReset(()=>this.reset())),this._register(this._inputHandler.onRequestWindowsOptionsReport(e=>this._reportWindowsOptions(e))),this._register(this._inputHandler.onColor(e=>this._handleColorEvent(e))),this._register(wq.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(wq.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(wq.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(wq.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(e=>this._afterResize(e.cols,e.rows))),this._register(uq(()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)}))}get linkifier(){return this._linkifier.value}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(let t of e){let e,n=``;switch(t.index){case 256:e=`foreground`,n=`10`;break;case 257:e=`background`,n=`11`;break;case 258:e=`cursor`,n=`12`;break;default:e=`ansi`,n=`4;`+t.index}switch(t.type){case 0:let r=vX.toColorRGB(e===`ansi`?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${$.ESC}]${n};${f$(r)}${uX.ST}`);break;case 1:if(e===`ansi`)this._themeService.modifyColors(e=>e.ansi[t.index]=_X.toColor(...t.color));else{let n=e;this._themeService.modifyColors(e=>e[n]=_X.toColor(...t.color))}break;case 2:this._themeService.restoreColor(t.index);break}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(V$,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent($.ESC+`[I`),this.element.classList.add(`focus`),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value=``,this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent($.ESC+`[O`),this.element.classList.remove(`focus`),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;let n=Math.min(this.buffer.x,this.cols-1),r=this._renderService.dimensions.css.cell.height,i=t.getWidth(n),a=this._renderService.dimensions.css.cell.width*i,o=this.buffer.y*this._renderService.dimensions.css.cell.height,s=n*this._renderService.dimensions.css.cell.width;this.textarea.style.left=s+`px`,this.textarea.style.top=o+`px`,this.textarea.style.width=a+`px`,this.textarea.style.height=r+`px`,this.textarea.style.lineHeight=r+`px`,this.textarea.style.zIndex=`-5`}_initGlobal(){this._bindKeys(),this._register(lY(this.element,`copy`,e=>{this.hasSelection()&&JG(e,this._selectionService)}));let e=e=>YG(e,this.textarea,this.coreService,this.optionsService);this._register(lY(this.textarea,`paste`,e)),this._register(lY(this.element,`paste`,e)),aZ?this._register(lY(this.element,`mousedown`,e=>{e.button===2&&QG(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(lY(this.element,`contextmenu`,e=>{QG(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),pZ&&this._register(lY(this.element,`auxclick`,e=>{e.button===1&&ZG(e,this.textarea,this.screenElement)}))}_bindKeys(){this._register(lY(this.textarea,`keyup`,e=>this._keyUp(e),!0)),this._register(lY(this.textarea,`keydown`,e=>this._keyDown(e),!0)),this._register(lY(this.textarea,`keypress`,e=>this._keyPress(e),!0)),this._register(lY(this.textarea,`compositionstart`,()=>this._compositionHelper.compositionstart())),this._register(lY(this.textarea,`compositionupdate`,e=>this._compositionHelper.compositionupdate(e))),this._register(lY(this.textarea,`compositionend`,()=>this._compositionHelper.compositionend())),this._register(lY(this.textarea,`input`,e=>this._inputEvent(e),!0)),this._register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(e){if(!e)throw Error(`Terminal requires a parent element.`);if(e.isConnected||this._logService.debug(`Terminal.open was called on an element that was not attached to the DOM`),this.element?.ownerDocument.defaultView&&this._coreBrowserService){this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView);return}this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement(`div`),this.element.dir=`ltr`,this.element.classList.add(`terminal`),this.element.classList.add(`xterm`),e.appendChild(this.element);let t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement(`div`),this._viewportElement.classList.add(`xterm-viewport`),t.appendChild(this._viewportElement),this.screenElement=this._document.createElement(`div`),this.screenElement.classList.add(`xterm-screen`),this._register(lY(this.screenElement,`mousemove`,e=>this.updateCursorStyle(e))),this._helperContainer=this._document.createElement(`div`),this._helperContainer.classList.add(`xterm-helpers`),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement);let n=this.textarea=this._document.createElement(`textarea`);this.textarea.classList.add(`xterm-helper-textarea`),this.textarea.setAttribute(`aria-label`,UG.get()),mZ||this.textarea.setAttribute(`aria-multiline`,`false`),this.textarea.setAttribute(`autocorrect`,`off`),this.textarea.setAttribute(`autocapitalize`,`off`),this.textarea.setAttribute(`spellcheck`,`false`),this.textarea.tabIndex=0,this._register(this.optionsService.onSpecificOptionChange(`disableStdin`,()=>n.readOnly=this.optionsService.rawOptions.disableStdin)),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(JX,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<`u`?window.document:null)),this._instantiationService.setService(DK,this._coreBrowserService),this._register(lY(this.textarea,`focus`,e=>this._handleTextAreaFocus(e))),this._register(lY(this.textarea,`blur`,()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(WX,this._document,this._helperContainer),this._instantiationService.setService(EK,this._charSizeService),this._themeService=this._instantiationService.createInstance(QZ),this._instantiationService.setService(MK,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(TX),this._instantiationService.setService(jK,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(bZ,this.rows,this.screenElement)),this._instantiationService.setService(kK,this._renderService),this._register(this._renderService.onRenderedViewportChange(e=>this._onRender.fire(e))),this.onResize(e=>this._renderService.resize(e.cols,e.rows)),this._compositionView=this._document.createElement(`div`),this._compositionView.classList.add(`composition-view`),this._compositionHelper=this._instantiationService.createInstance(dX,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance($X),this._instantiationService.setService(OK,this._mouseService);let r=this._linkifier.value=this._register(this._instantiationService.createInstance(H$,this.screenElement));this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this._register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this._register(this.onBlur(()=>this._renderService.handleBlur())),this._register(this.onFocus(()=>this._renderService.handleFocus())),this._viewport=this._register(this._instantiationService.createInstance(nX,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines(e=>{super.scrollLines(e,!1),this.refresh(0,this.rows-1)})),this._selectionService=this._register(this._instantiationService.createInstance(HZ,this.element,this.screenElement,r)),this._instantiationService.setService(AK,this._selectionService),this._register(this._selectionService.onRequestScrollLines(e=>this.scrollLines(e.amount,e.suppressScrollEvent))),this._register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this._register(this._selectionService.onRequestRedraw(e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode))),this._register(this._selectionService.onLinuxMouseSelection(e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()})),this._register(wq.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(rX,this.screenElement)),this._register(lY(this.element,`mousedown`,e=>this._selectionService.handleMouseDown(e))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(`enable-mouse-events`)):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(V$,this)),this._register(this.optionsService.onSpecificOptionChange(`screenReaderMode`,e=>this._handleScreenReaderModeOptionChange(e))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(cX,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(`overviewRuler`,e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(cX,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(UX,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,t=this.element;function n(t){let n=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!n)return!1;let r,i;switch(t.overrideType||t.type){case`mousemove`:i=32,t.buttons===void 0?(r=3,t.button!==void 0&&(r=t.button<3?t.button:3)):r=t.buttons&1?0:t.buttons&4?1:t.buttons&2?2:3;break;case`mouseup`:i=0,r=t.button<3?t.button:3;break;case`mousedown`:i=1,r=t.button<3?t.button:3;break;case`wheel`:if(e._customWheelEventHandler&&e._customWheelEventHandler(t)===!1)return!1;let n=t.deltaY;if(n===0||e.coreMouseService.consumeWheelEvent(t,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return!1;i=n<0?0:1,r=4;break;default:return!1}return i===void 0||r===void 0||r>4?!1:e.coreMouseService.triggerMouseEvent({col:n.col,row:n.row,x:n.x,y:n.y,button:r,action:i,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}let r={mouseup:null,wheel:null,mousedrag:null,mousemove:null},i={mouseup:e=>(n(e),e.buttons||(this._document.removeEventListener(`mouseup`,r.mouseup),r.mousedrag&&this._document.removeEventListener(`mousemove`,r.mousedrag)),this.cancel(e)),wheel:e=>(n(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&n(e)},mousemove:e=>{e.buttons||n(e)}};this._register(this.coreMouseService.onProtocolChange(e=>{e?(this.optionsService.rawOptions.logLevel===`debug`&&this._logService.debug(`Binding to mouse events:`,this.coreMouseService.explainEvents(e)),this.element.classList.add(`enable-mouse-events`),this._selectionService.disable()):(this._logService.debug(`Unbinding from mouse events.`),this.element.classList.remove(`enable-mouse-events`),this._selectionService.enable()),e&8?r.mousemove||=(t.addEventListener(`mousemove`,i.mousemove),i.mousemove):(t.removeEventListener(`mousemove`,r.mousemove),r.mousemove=null),e&16?r.wheel||=(t.addEventListener(`wheel`,i.wheel,{passive:!1}),i.wheel):(t.removeEventListener(`wheel`,r.wheel),r.wheel=null),e&2?r.mouseup||=i.mouseup:(this._document.removeEventListener(`mouseup`,r.mouseup),r.mouseup=null),e&4?r.mousedrag||=i.mousedrag:(this._document.removeEventListener(`mousemove`,r.mousedrag),r.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(lY(t,`mousedown`,e=>{if(e.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(e)))return n(e),r.mouseup&&this._document.addEventListener(`mouseup`,r.mouseup),r.mousedrag&&this._document.addEventListener(`mousemove`,r.mousedrag),this.cancel(e)})),this._register(lY(t,`wheel`,t=>{if(!r.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(t)===!1)return!1;if(!this.buffer.hasScrollback){if(t.deltaY===0)return!1;if(e.coreMouseService.consumeWheelEvent(t,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return this.cancel(t,!0);let n=$.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?`O`:`[`)+(t.deltaY<0?`A`:`B`);return this.coreService.triggerDataEvent(n,!0),this.cancel(t,!0)}}},{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add(`column-select`):this.element.classList.remove(`column-select`)}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t){this._viewport?this._viewport.scrollLines(e):super.scrollLines(e,t),this.refresh(0,this.rows-1)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){e&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let t=e-this._bufferService.buffer.ydisp;t!==0&&this.scrollLines(t)}paste(e){XG(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw Error(`Terminal must be opened first`);let t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw Error(`Terminal must be opened first`);this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return this._selectionService?this._selectionService.hasSelection:!1}select(e,t,n){this._selectionService.setSelection(e,t,n)}getSelection(){return this._selectionService?this._selectionService.selectionText:``}getSelectionPosition(){if(!(!this._selectionService||!this._selectionService.hasSelection))return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;let t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;!t&&(e.key===`Dead`||e.key===`AltGraph`)&&(this._unprocessedDeadKey=!0);let n=A$(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),n.type===3||n.type===2){let t=this.rows-1;return this.scrollLines(n.type===2?-t:t),this.cancel(e,!0)}if(n.type===1&&this.selectAll(),this._isThirdLevelShift(this.browser,e)||(n.cancel&&this.cancel(e,!0),!n.key)||e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.key.length===1&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)return!0;if(this._unprocessedDeadKey)return this._unprocessedDeadKey=!1,!0;if((n.key===$.ETX||n.key===$.CR)&&(this.textarea.value=``),this._onKey.fire({key:n.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(n.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey)return this.cancel(e,!0);this._keyDownHandled=!0}_isThirdLevelShift(e,t){let n=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState(`AltGraph`);return t.type===`keypress`?n:n&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,!(this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)&&(G$(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(e.which===null||e.which===void 0)t=e.keyCode;else if(e.which!==0&&e.charCode!==0)t=e.which;else return!1;return!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)?!1:(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,!0)}_inputEvent(e){if(e.data&&e.inputType===`insertText`&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){if(e===this.cols&&t===this.rows){this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure();return}super.resize(e,t)}_afterResize(e,t){this._charSizeService?.measure()}clear(){if(!(this.buffer.ybase===0&&this.buffer.y===0)){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(cQ));this._onScroll.fire({position:this.buffer.ydisp}),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;let e=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this._customKeyEventHandler=e,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains(`focus`)?this.coreService.triggerDataEvent($.ESC+`[I`):this.coreService.triggerDataEvent($.ESC+`[O`)}_reportWindowsOptions(e){if(this._renderService)switch(e){case 0:let e=this._renderService.dimensions.css.canvas.width.toFixed(0),t=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${$.ESC}[4;${t};${e}t`);break;case 1:let n=this._renderService.dimensions.css.cell.width.toFixed(0),r=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${$.ESC}[6;${r};${n}t`);break}}cancel(e,t){if(!(!this.options.cancelEvents&&!t))return e.preventDefault(),e.stopPropagation(),!1}};function G$(e){return e.keyCode===16||e.keyCode===17||e.keyCode===18}var K$=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){let n={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(n),t.dispose=()=>this._wrappedAddonDispose(n),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let n=0;n<this._addons.length;n++)if(this._addons[n]===e){t=n;break}if(t===-1)throw Error(`Could not dispose an addon that has not been loaded`);e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}},q$=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new sK)}translateToString(e,t,n){return this._line.translateToString(e,t,n)}},J$=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){let t=this._buffer.lines.get(e);if(t)return new q$(t)}getNullCell(){return new sK}},Y$=class extends pq{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new Rq),this.onBufferChange=this._onBufferChange.event,this._normal=new J$(this._core.buffers.normal,`normal`),this._alternate=new J$(this._core.buffers.alt,`alternate`),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw Error(`Active buffer is neither normal nor alternate`)}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}},X$=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,e=>t(e.toArray()))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,(e,n)=>t(e,n.toArray()))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}},Z$=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}},Q$=[`cols`,`rows`],$$=0,e1=class extends pq{constructor(e){super(),this._core=this._register(new W$(e)),this._addonManager=this._register(new K$),this._publicOptions={...this._core.options};let t=e=>this._core.options[e],n=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(let e in this._core.options){let r={get:t.bind(this,e),set:n.bind(this,e)};Object.defineProperty(this._publicOptions,e,r)}}_checkReadonlyOptions(e){if(Q$.includes(e))throw Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw Error(`You must set the allowProposedApi option to true to use proposed API`)}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||=new X$(this._core),this._parser}get unicode(){return this._checkProposedApi(),new Z$(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||=this._register(new Y$(this._core)),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let e=this._core.coreService.decPrivateModes,t=`none`;switch(this._core.coreMouseService.activeProtocol){case`X10`:t=`x10`;break;case`VT200`:t=`vt200`;break;case`DRAG`:t=`drag`;break;case`ANY`:t=`any`;break}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,synchronizedOutputMode:e.synchronizedOutput,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(let t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,n){this._verifyIntegers(e,t,n),this._core.select(e,t,n)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(`\r
|
|
250
|
-
`,t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return UG.get()},set promptLabel(e){UG.set(e)},get tooMuchOutput(){return GG.get()},set tooMuchOutput(e){GG.set(e)}}}_verifyIntegers(...e){for($$ of e)if($$===1/0||isNaN($$)||$$%1!=0)throw Error(`This API only accepts integers`)}_verifyPositiveIntegers(...e){for($$ of e)if($$&&($$===1/0||isNaN($$)||$$%1!=0||$$<0))throw Error(`This API only accepts positive integers`)}},t1=Object.create(null);t1.open=`0`,t1.close=`1`,t1.ping=`2`,t1.pong=`3`,t1.message=`4`,t1.upgrade=`5`,t1.noop=`6`;var n1=Object.create(null);Object.keys(t1).forEach(e=>{n1[t1[e]]=e});var r1={type:`error`,data:`parser error`},i1=typeof Blob==`function`||typeof Blob<`u`&&Object.prototype.toString.call(Blob)===`[object BlobConstructor]`,a1=typeof ArrayBuffer==`function`,o1=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,s1=({type:e,data:t},n,r)=>i1&&t instanceof Blob?n?r(t):c1(t,r):a1&&(t instanceof ArrayBuffer||o1(t))?n?r(t):c1(new Blob([t]),r):r(t1[e]+(t||``)),c1=(e,t)=>{let n=new FileReader;return n.onload=function(){let e=n.result.split(`,`)[1];t(`b`+(e||``))},n.readAsDataURL(e)};function l1(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}var u1;function d1(e,t){if(i1&&e.data instanceof Blob)return e.data.arrayBuffer().then(l1).then(t);if(a1&&(e.data instanceof ArrayBuffer||o1(e.data)))return t(l1(e.data));s1(e,!1,e=>{u1||=new TextEncoder,t(u1.encode(e))})}var f1=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,p1=typeof Uint8Array>`u`?[]:new Uint8Array(256);for(let e=0;e<64;e++)p1[f1.charCodeAt(e)]=e;var m1=e=>{let t=e.length*.75,n=e.length,r,i=0,a,o,s,c;e[e.length-1]===`=`&&(t--,e[e.length-2]===`=`&&t--);let l=new ArrayBuffer(t),u=new Uint8Array(l);for(r=0;r<n;r+=4)a=p1[e.charCodeAt(r)],o=p1[e.charCodeAt(r+1)],s=p1[e.charCodeAt(r+2)],c=p1[e.charCodeAt(r+3)],u[i++]=a<<2|o>>4,u[i++]=(o&15)<<4|s>>2,u[i++]=(s&3)<<6|c&63;return l},h1=typeof ArrayBuffer==`function`,g1=(e,t)=>{if(typeof e!=`string`)return{type:`message`,data:v1(e,t)};let n=e.charAt(0);return n===`b`?{type:`message`,data:_1(e.substring(1),t)}:n1[n]?e.length>1?{type:n1[n],data:e.substring(1)}:{type:n1[n]}:r1},_1=(e,t)=>h1?v1(m1(e),t):{base64:!0,data:e},v1=(e,t)=>{switch(t){case`blob`:return e instanceof Blob?e:new Blob([e]);default:return e instanceof ArrayBuffer?e:e.buffer}},y1=``,b1=(e,t)=>{let n=e.length,r=Array(n),i=0;e.forEach((e,a)=>{s1(e,!1,e=>{r[a]=e,++i===n&&t(r.join(y1))})})},x1=(e,t)=>{let n=e.split(y1),r=[];for(let e=0;e<n.length;e++){let i=g1(n[e],t);if(r.push(i),i.type===`error`)break}return r};function ire(){return new TransformStream({transform(e,t){d1(e,n=>{let r=n.length,i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);let e=new DataView(i.buffer);e.setUint8(0,126),e.setUint16(1,r)}else{i=new Uint8Array(9);let e=new DataView(i.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!=`string`&&(i[0]|=128),t.enqueue(i),t.enqueue(n)})}})}var S1;function C1(e){return e.reduce((e,t)=>e+t.length,0)}function w1(e,t){if(e[0].length===t)return e.shift();let n=new Uint8Array(t),r=0;for(let i=0;i<t;i++)n[i]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function T1(e,t){S1||=new TextDecoder;let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(C1(n)<1)break;let e=w1(n,1);a=(e[0]&128)==128,i=e[0]&127,r=i<126?3:i===126?1:2}else if(r===1){if(C1(n)<2)break;let e=w1(n,2);i=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),r=3}else if(r===2){if(C1(n)<8)break;let e=w1(n,8),t=new DataView(e.buffer,e.byteOffset,e.length),a=t.getUint32(0);if(a>2**21-1){s.enqueue(r1);break}i=a*2**32+t.getUint32(4),r=3}else{if(C1(n)<i)break;let e=w1(n,i);s.enqueue(g1(a?e:S1.decode(e),t)),r=0}if(i===0||i>e){s.enqueue(r1);break}}}})}function E1(e){if(e)return D1(e)}function D1(e){for(var t in E1.prototype)e[t]=E1.prototype[t];return e}E1.prototype.on=E1.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[`$`+e]=this._callbacks[`$`+e]||[]).push(t),this},E1.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},E1.prototype.off=E1.prototype.removeListener=E1.prototype.removeAllListeners=E1.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks[`$`+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks[`$`+e],this;for(var r,i=0;i<n.length;i++)if(r=n[i],r===t||r.fn===t){n.splice(i,1);break}return n.length===0&&delete this._callbacks[`$`+e],this},E1.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=Array(arguments.length-1),n=this._callbacks[`$`+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,t)}return this},E1.prototype.emitReserved=E1.prototype.emit,E1.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[`$`+e]||[]},E1.prototype.hasListeners=function(e){return!!this.listeners(e).length};var O1=typeof Promise==`function`&&typeof Promise.resolve==`function`?e=>Promise.resolve().then(e):(e,t)=>t(e,0),k1=typeof self<`u`?self:typeof window<`u`?window:Function(`return this`)(),A1=`arraybuffer`;function j1(e,...t){return t.reduce((t,n)=>(e.hasOwnProperty(n)&&(t[n]=e[n]),t),{})}var M1=k1.setTimeout,N1=k1.clearTimeout;function P1(e,t){t.useNativeTimers?(e.setTimeoutFn=M1.bind(k1),e.clearTimeoutFn=N1.bind(k1)):(e.setTimeoutFn=k1.setTimeout.bind(k1),e.clearTimeoutFn=k1.clearTimeout.bind(k1))}var F1=1.33;function I1(e){return typeof e==`string`?L1(e):Math.ceil((e.byteLength||e.size)*F1)}function L1(e){let t=0,n=0;for(let r=0,i=e.length;r<i;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function R1(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function z1(e){let t=``;for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+=`&`),t+=encodeURIComponent(n)+`=`+encodeURIComponent(e[n]));return t}function B1(e){let t={},n=e.split(`&`);for(let e=0,r=n.length;e<r;e++){let r=n[e].split(`=`);t[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return t}var V1=class extends Error{constructor(e,t,n){super(e),this.description=t,this.context=n,this.type=`TransportError`}},H1=class extends E1{constructor(e){super(),this.writable=!1,P1(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,n){return super.emitReserved(`error`,new V1(e,t,n)),this}open(){return this.readyState=`opening`,this.doOpen(),this}close(){return(this.readyState===`opening`||this.readyState===`open`)&&(this.doClose(),this.onClose()),this}send(e){this.readyState===`open`&&this.write(e)}onOpen(){this.readyState=`open`,this.writable=!0,super.emitReserved(`open`)}onData(e){let t=g1(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved(`packet`,e)}onClose(e){this.readyState=`closed`,super.emitReserved(`close`,e)}pause(e){}createUri(e,t={}){return e+`://`+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){let e=this.opts.hostname;return e.indexOf(`:`)===-1?e:`[`+e+`]`}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?`:`+this.opts.port:``}_query(e){let t=z1(e);return t.length?`?`+t:``}},U1=class extends H1{constructor(){super(...arguments),this._polling=!1}get name(){return`polling`}doOpen(){this._poll()}pause(e){this.readyState=`pausing`;let t=()=>{this.readyState=`paused`,e()};if(this._polling||!this.writable){let e=0;this._polling&&(e++,this.once(`pollComplete`,function(){--e||t()})),this.writable||(e++,this.once(`drain`,function(){--e||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved(`poll`)}onData(e){x1(e,this.socket.binaryType).forEach(e=>{if(this.readyState===`opening`&&e.type===`open`&&this.onOpen(),e.type===`close`)return this.onClose({description:`transport closed by the server`}),!1;this.onPacket(e)}),this.readyState!==`closed`&&(this._polling=!1,this.emitReserved(`pollComplete`),this.readyState===`open`&&this._poll())}doClose(){let e=()=>{this.write([{type:`close`}])};this.readyState===`open`?e():this.once(`open`,e)}write(e){this.writable=!1,b1(e,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved(`drain`)})})}uri(){let e=this.opts.secure?`https`:`http`,t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=R1()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}},W1=!1;try{W1=typeof XMLHttpRequest<`u`&&`withCredentials`in new XMLHttpRequest}catch{}var G1=W1;function K1(){}var q1=class extends U1{constructor(e){if(super(e),typeof location<`u`){let t=location.protocol===`https:`,n=location.port;n||=t?`443`:`80`,this.xd=typeof location<`u`&&e.hostname!==location.hostname||n!==e.port}}doWrite(e,t){let n=this.request({method:`POST`,data:e});n.on(`success`,t),n.on(`error`,(e,t)=>{this.onError(`xhr post error`,e,t)})}doPoll(){let e=this.request();e.on(`data`,this.onData.bind(this)),e.on(`error`,(e,t)=>{this.onError(`xhr poll error`,e,t)}),this.pollXhr=e}},J1=class e extends E1{constructor(e,t,n){super(),this.createRequest=e,P1(this,n),this._opts=n,this._method=n.method||`GET`,this._uri=t,this._data=n.data===void 0?null:n.data,this._create()}_create(){var t;let n=j1(this._opts,`agent`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`autoUnref`);n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let e in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(e)&&r.setRequestHeader(e,this._opts.extraHeaders[e])}}catch{}if(this._method===`POST`)try{r.setRequestHeader(`Content-type`,`text/plain;charset=UTF-8`)}catch{}try{r.setRequestHeader(`Accept`,`*/*`)}catch{}(t=this._opts.cookieJar)==null||t.addCookies(r),`withCredentials`in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var e;r.readyState===3&&((e=this._opts.cookieJar)==null||e.parseCookies(r.getResponseHeader(`set-cookie`))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status==`number`?r.status:0)},0))},r.send(this._data)}catch(e){this.setTimeoutFn(()=>{this._onError(e)},0);return}typeof document<`u`&&(this._index=e.requestsCount++,e.requests[this._index]=this)}_onError(e){this.emitReserved(`error`,e,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(this._xhr===void 0||this._xhr===null)){if(this._xhr.onreadystatechange=K1,t)try{this._xhr.abort()}catch{}typeof document<`u`&&delete e.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved(`data`,e),this.emitReserved(`success`),this._cleanup())}abort(){this._cleanup()}};if(J1.requestsCount=0,J1.requests={},typeof document<`u`){if(typeof attachEvent==`function`)attachEvent(`onunload`,Y1);else if(typeof addEventListener==`function`){let e=`onpagehide`in k1?`pagehide`:`unload`;addEventListener(e,Y1,!1)}}function Y1(){for(let e in J1.requests)J1.requests.hasOwnProperty(e)&&J1.requests[e].abort()}var X1=(function(){let e=Q1({xdomain:!1});return e&&e.responseType!==null})(),Z1=class extends q1{constructor(e){super(e);let t=e&&e.forceBase64;this.supportsBinary=X1&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new J1(Q1,this.uri(),e)}};function Q1(e){let t=e.xdomain;try{if(typeof XMLHttpRequest<`u`&&(!t||G1))return new XMLHttpRequest}catch{}if(!t)try{return new k1[[`Active`,`Object`].join(`X`)](`Microsoft.XMLHTTP`)}catch{}}var $1=typeof navigator<`u`&&typeof navigator.product==`string`&&navigator.product.toLowerCase()===`reactnative`,e0=class extends H1{get name(){return`websocket`}doOpen(){let e=this.uri(),t=this.opts.protocols,n=$1?{}:j1(this.opts,`agent`,`perMessageDeflate`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`localAddress`,`protocolVersion`,`origin`,`maxPayload`,`family`,`checkServerIdentity`);this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,n)}catch(e){return this.emitReserved(`error`,e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:`websocket connection closed`,context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError(`websocket error`,e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;s1(n,this.supportsBinary,e=>{try{this.doWrite(n,e)}catch{}r&&O1(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){this.ws!==void 0&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?`wss`:`ws`,t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=R1()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},t0=k1.WebSocket||k1.MozWebSocket,n0={websocket:class extends e0{createSocket(e,t,n){return $1?new t0(e,t,n):t?new t0(e,t):new t0(e)}doWrite(e,t){this.ws.send(t)}},webtransport:class extends H1{get name(){return`webtransport`}doOpen(){try{this._transport=new WebTransport(this.createUri(`https`),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved(`error`,e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError(`webtransport error`,e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let t=T1(2**53-1,this.socket.binaryType),n=e.readable.pipeThrough(t).getReader(),r=ire();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();let i=()=>{n.read().then(({done:e,value:t})=>{e||(this.onPacket(t),i())}).catch(e=>{})};i();let a={type:`open`};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;this._writer.write(n).then(()=>{r&&O1(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)==null||e.close()}},polling:Z1},r0=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,i0=[`source`,`protocol`,`authority`,`userInfo`,`user`,`password`,`host`,`port`,`relative`,`path`,`directory`,`file`,`query`,`anchor`];function a0(e){if(e.length>8e3)throw`URI too long`;let t=e,n=e.indexOf(`[`),r=e.indexOf(`]`);n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,`;`)+e.substring(r,e.length));let i=r0.exec(e||``),a={},o=14;for(;o--;)a[i0[o]]=i[o]||``;return n!=-1&&r!=-1&&(a.source=t,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,`:`),a.authority=a.authority.replace(`[`,``).replace(`]`,``).replace(/;/g,`:`),a.ipv6uri=!0),a.pathNames=o0(a,a.path),a.queryKey=s0(a,a.query),a}function o0(e,t){let n=t.replace(/\/{2,9}/g,`/`).split(`/`);return(t.slice(0,1)==`/`||t.length===0)&&n.splice(0,1),t.slice(-1)==`/`&&n.splice(n.length-1,1),n}function s0(e,t){let n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(e,t,r){t&&(n[t]=r)}),n}var c0=typeof addEventListener==`function`&&typeof removeEventListener==`function`,l0=[];c0&&addEventListener(`offline`,()=>{l0.forEach(e=>e())},!1);var u0=class e extends E1{constructor(e,t){if(super(),this.binaryType=A1,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e==`object`&&(t=e,e=null),e){let n=a0(e);t.hostname=n.host,t.secure=n.protocol===`https`||n.protocol===`wss`,t.port=n.port,n.query&&(t.query=n.query)}else t.host&&(t.hostname=a0(t.host).host);P1(this,t),this.secure=t.secure==null?typeof location<`u`&&location.protocol===`https:`:t.secure,t.hostname&&!t.port&&(t.port=this.secure?`443`:`80`),this.hostname=t.hostname||(typeof location<`u`?location.hostname:`localhost`),this.port=t.port||(typeof location<`u`&&location.port?location.port:this.secure?`443`:`80`),this.transports=[],this._transportsByName={},t.transports.forEach(e=>{let t=e.prototype.name;this.transports.push(t),this._transportsByName[t]=e}),this.opts=Object.assign({path:`/engine.io`,agent:!1,withCredentials:!1,upgrade:!0,timestampParam:`t`,rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,``)+(this.opts.addTrailingSlash?`/`:``),typeof this.opts.query==`string`&&(this.opts.query=B1(this.opts.query)),c0&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener(`beforeunload`,this._beforeunloadEventListener,!1)),this.hostname!==`localhost`&&(this._offlineEventListener=()=>{this._onClose(`transport close`,{description:`network connection lost`})},l0.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){let t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);let n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](n)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved(`error`,`No transports available`)},0);return}let t=this.opts.rememberUpgrade&&e.priorWebsocketSuccess&&this.transports.indexOf(`websocket`)!==-1?`websocket`:this.transports[0];this.readyState=`opening`;let n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on(`drain`,this._onDrain.bind(this)).on(`packet`,this._onPacket.bind(this)).on(`error`,this._onError.bind(this)).on(`close`,e=>this._onClose(`transport close`,e))}onOpen(){this.readyState=`open`,e.priorWebsocketSuccess=this.transport.name===`websocket`,this.emitReserved(`open`),this.flush()}_onPacket(e){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`)switch(this.emitReserved(`packet`,e),this.emitReserved(`heartbeat`),e.type){case`open`:this.onHandshake(JSON.parse(e.data));break;case`ping`:this._sendPacket(`pong`),this.emitReserved(`ping`),this.emitReserved(`pong`),this._resetPingTimeout();break;case`error`:let t=Error(`server error`);t.code=e.data,this._onError(t);break;case`message`:this.emitReserved(`data`,e.data),this.emitReserved(`message`,e.data);break}}onHandshake(e){this.emitReserved(`handshake`,e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!==`closed`&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose(`ping timeout`)},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved(`drain`):this.flush()}flush(){if(this.readyState!==`closed`&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved(`flush`)}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name===`polling`&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let t=0;t<this.writeBuffer.length;t++){let n=this.writeBuffer[t].data;if(n&&(e+=I1(n)),t>0&&e>this._maxPayload)return this.writeBuffer.slice(0,t);e+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,O1(()=>{this._onClose(`ping timeout`)},this.setTimeoutFn)),e}write(e,t,n){return this._sendPacket(`message`,e,t,n),this}send(e,t,n){return this._sendPacket(`message`,e,t,n),this}_sendPacket(e,t,n,r){if(typeof t==`function`&&(r=t,t=void 0),typeof n==`function`&&(r=n,n=null),this.readyState===`closing`||this.readyState===`closed`)return;n||={},n.compress=!1!==n.compress;let i={type:e,data:t,options:n};this.emitReserved(`packetCreate`,i),this.writeBuffer.push(i),r&&this.once(`flush`,r),this.flush()}close(){let e=()=>{this._onClose(`forced close`),this.transport.close()},t=()=>{this.off(`upgrade`,t),this.off(`upgradeError`,t),e()},n=()=>{this.once(`upgrade`,t),this.once(`upgradeError`,t)};return(this.readyState===`opening`||this.readyState===`open`)&&(this.readyState=`closing`,this.writeBuffer.length?this.once(`drain`,()=>{this.upgrading?n():e()}):this.upgrading?n():e()),this}_onError(t){if(e.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState===`opening`)return this.transports.shift(),this._open();this.emitReserved(`error`,t),this._onClose(`transport error`,t)}_onClose(e,t){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners(`close`),this.transport.close(),this.transport.removeAllListeners(),c0&&(this._beforeunloadEventListener&&removeEventListener(`beforeunload`,this._beforeunloadEventListener,!1),this._offlineEventListener)){let e=l0.indexOf(this._offlineEventListener);e!==-1&&l0.splice(e,1)}this.readyState=`closed`,this.id=null,this.emitReserved(`close`,e,t),this.writeBuffer=[],this._prevBufferLen=0}}};u0.protocol=4;var d0=class extends u0{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState===`open`&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),n=!1;u0.priorWebsocketSuccess=!1;let r=()=>{n||(t.send([{type:`ping`,data:`probe`}]),t.once(`packet`,e=>{if(!n)if(e.type===`pong`&&e.data===`probe`){if(this.upgrading=!0,this.emitReserved(`upgrading`,t),!t)return;u0.priorWebsocketSuccess=t.name===`websocket`,this.transport.pause(()=>{n||this.readyState!==`closed`&&(l(),this.setTransport(t),t.send([{type:`upgrade`}]),this.emitReserved(`upgrade`,t),t=null,this.upgrading=!1,this.flush())})}else{let e=Error(`probe error`);e.transport=t.name,this.emitReserved(`upgradeError`,e)}}))};function i(){n||(n=!0,l(),t.close(),t=null)}let a=e=>{let n=Error(`probe error: `+e);n.transport=t.name,i(),this.emitReserved(`upgradeError`,n)};function o(){a(`transport closed`)}function s(){a(`socket closed`)}function c(e){t&&e.name!==t.name&&i()}let l=()=>{t.removeListener(`open`,r),t.removeListener(`error`,a),t.removeListener(`close`,o),this.off(`close`,s),this.off(`upgrading`,c)};t.once(`open`,r),t.once(`error`,a),t.once(`close`,o),this.once(`close`,s),this.once(`upgrading`,c),this._upgrades.indexOf(`webtransport`)!==-1&&e!==`webtransport`?this.setTimeoutFn(()=>{n||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let t=[];for(let n=0;n<e.length;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}},f0=class extends d0{constructor(e,t={}){let n=typeof e==`object`?e:t;(!n.transports||n.transports&&typeof n.transports[0]==`string`)&&(n.transports=(n.transports||[`polling`,`websocket`,`webtransport`]).map(e=>n0[e]).filter(e=>!!e)),super(e,n)}};f0.protocol;function p0(e,t=``,n){let r=e;n||=typeof location<`u`&&location,e??=n.protocol+`//`+n.host,typeof e==`string`&&(e.charAt(0)===`/`&&(e=e.charAt(1)===`/`?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=n===void 0?`https://`+e:n.protocol+`//`+e),r=a0(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port=`80`:/^(http|ws)s$/.test(r.protocol)&&(r.port=`443`)),r.path=r.path||`/`;let i=r.host.indexOf(`:`)===-1?r.host:`[`+r.host+`]`;return r.id=r.protocol+`://`+i+`:`+r.port+t,r.href=r.protocol+`://`+i+(n&&n.port===r.port?``:`:`+r.port),r}var m0=typeof ArrayBuffer==`function`,h0=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,g0=Object.prototype.toString,_0=typeof Blob==`function`||typeof Blob<`u`&&g0.call(Blob)===`[object BlobConstructor]`,v0=typeof File==`function`||typeof File<`u`&&g0.call(File)===`[object FileConstructor]`;function y0(e){return m0&&(e instanceof ArrayBuffer||h0(e))||_0&&e instanceof Blob||v0&&e instanceof File}function b0(e,t){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e)){for(let t=0,n=e.length;t<n;t++)if(b0(e[t]))return!0;return!1}if(y0(e))return!0;if(e.toJSON&&typeof e.toJSON==`function`&&arguments.length===1)return b0(e.toJSON(),!0);for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&b0(e[t]))return!0;return!1}function x0(e){let t=[],n=e.data,r=e;return r.data=S0(n,t),r.attachments=t.length,{packet:r,buffers:t}}function S0(e,t){if(!e)return e;if(y0(e)){let n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=S0(e[r],t);return n}else if(typeof e==`object`&&!(e instanceof Date)){let n={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=S0(e[r],t));return n}return e}function C0(e,t){return e.data=w0(e.data,t),delete e.attachments,e}function w0(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num==`number`&&e.num>=0&&e.num<t.length)return t[e.num];throw Error(`illegal attachments`)}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=w0(e[n],t);else if(typeof e==`object`)for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=w0(e[n],t));return e}var T0=r({Decoder:()=>k0,Encoder:()=>O0,PacketType:()=>D0,isPacketValid:()=>I0,protocol:()=>5}),E0=[`connect`,`connect_error`,`disconnect`,`disconnecting`,`newListener`,`removeListener`],D0;(function(e){e[e.CONNECT=0]=`CONNECT`,e[e.DISCONNECT=1]=`DISCONNECT`,e[e.EVENT=2]=`EVENT`,e[e.ACK=3]=`ACK`,e[e.CONNECT_ERROR=4]=`CONNECT_ERROR`,e[e.BINARY_EVENT=5]=`BINARY_EVENT`,e[e.BINARY_ACK=6]=`BINARY_ACK`})(D0||={});var O0=class{constructor(e){this.replacer=e}encode(e){return(e.type===D0.EVENT||e.type===D0.ACK)&&b0(e)?this.encodeAsBinary({type:e.type===D0.EVENT?D0.BINARY_EVENT:D0.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=``+e.type;return(e.type===D0.BINARY_EVENT||e.type===D0.BINARY_ACK)&&(t+=e.attachments+`-`),e.nsp&&e.nsp!==`/`&&(t+=e.nsp+`,`),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){let t=x0(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}},k0=class e extends E1{constructor(e){super(),this.opts=Object.assign({reviver:void 0,maxAttachments:10},typeof e==`function`?{reviver:e}:e)}add(e){let t;if(typeof e==`string`){if(this.reconstructor)throw Error(`got plaintext data when reconstructing a packet`);t=this.decodeString(e);let n=t.type===D0.BINARY_EVENT;n||t.type===D0.BINARY_ACK?(t.type=n?D0.EVENT:D0.ACK,this.reconstructor=new A0(t),t.attachments===0&&super.emitReserved(`decoded`,t)):super.emitReserved(`decoded`,t)}else if(y0(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved(`decoded`,t));else throw Error(`got binary data when not reconstructing a packet`);else throw Error(`Unknown type: `+e)}decodeString(t){let n=0,r={type:Number(t.charAt(0))};if(D0[r.type]===void 0)throw Error(`unknown packet type `+r.type);if(r.type===D0.BINARY_EVENT||r.type===D0.BINARY_ACK){let e=n+1;for(;t.charAt(++n)!==`-`&&n!=t.length;);let i=t.substring(e,n);if(i!=Number(i)||t.charAt(n)!==`-`)throw Error(`Illegal attachments`);let a=Number(i);if(!M0(a)||a<0)throw Error(`Illegal attachments`);if(a>this.opts.maxAttachments)throw Error(`too many attachments`);r.attachments=a}if(t.charAt(n+1)===`/`){let e=n+1;for(;++n&&!(t.charAt(n)===`,`||n===t.length););r.nsp=t.substring(e,n)}else r.nsp=`/`;let i=t.charAt(n+1);if(i!==``&&Number(i)==i){let e=n+1;for(;++n;){let e=t.charAt(n);if(e==null||Number(e)!=e){--n;break}if(n===t.length)break}r.id=Number(t.substring(e,n+1))}if(t.charAt(++n)){let i=this.tryParse(t.substr(n));if(e.isPayloadValid(r.type,i))r.data=i;else throw Error(`invalid payload`)}return r}tryParse(e){try{return JSON.parse(e,this.opts.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case D0.CONNECT:return P0(t);case D0.DISCONNECT:return t===void 0;case D0.CONNECT_ERROR:return typeof t==`string`||P0(t);case D0.EVENT:case D0.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&E0.indexOf(t[0])===-1);case D0.ACK:case D0.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&=(this.reconstructor.finishedReconstruction(),null)}},A0=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let e=C0(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};function j0(e){return typeof e==`string`}var M0=Number.isInteger||function(e){return typeof e==`number`&&isFinite(e)&&Math.floor(e)===e};function N0(e){return e===void 0||M0(e)}function P0(e){return Object.prototype.toString.call(e)===`[object Object]`}function F0(e,t){switch(e){case D0.CONNECT:return t===void 0||P0(t);case D0.DISCONNECT:return t===void 0;case D0.EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&E0.indexOf(t[0])===-1);case D0.ACK:return Array.isArray(t);case D0.CONNECT_ERROR:return typeof t==`string`||P0(t);default:return!1}}function I0(e){return j0(e.nsp)&&N0(e.id)&&F0(e.type,e.data)}function L0(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var R0=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),z0=class extends E1{constructor(e,t,n){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,n&&n.auth&&(this.auth=n.auth),this._opts=Object.assign({},n),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let e=this.io;this.subs=[L0(e,`open`,this.onopen.bind(this)),L0(e,`packet`,this.onpacket.bind(this)),L0(e,`error`,this.onerror.bind(this)),L0(e,`close`,this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState===`open`&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift(`message`),this.emit.apply(this,e),this}emit(e,...t){if(R0.hasOwnProperty(e))throw Error(`"`+e.toString()+`" is a reserved event name`);if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;let n={type:D0.EVENT,data:t};if(n.options={},n.options.compress=this.flags.compress!==!1,typeof t[t.length-1]==`function`){let e=this.ids++,r=t.pop();this._registerAckCallback(e,r),n.id=e}let r=this.io.engine?.transport?.writable,i=this.connected&&!this.io.engine?._hasPingExpired();return this.flags.volatile&&!r||(i?(this.notifyOutgoingListeners(n),this.packet(n)):this.sendBuffer.push(n)),this.flags={},this}_registerAckCallback(e,t){let n=this.flags.timeout??this._opts.ackTimeout;if(n===void 0){this.acks[e]=t;return}let r=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let t=0;t<this.sendBuffer.length;t++)this.sendBuffer[t].id===e&&this.sendBuffer.splice(t,1);t.call(this,Error(`operation has timed out`))},n),i=(...e)=>{this.io.clearTimeoutFn(r),t.apply(this,e)};i.withError=!0,this.acks[e]=i}emitWithAck(e,...t){return new Promise((n,r)=>{let i=(e,t)=>e?r(e):n(t);i.withError=!0,t.push(i),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]==`function`&&(t=e.pop());let n={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((e,...r)=>(this._queue[0],e===null?(this._queue.shift(),t&&t(null,...r)):n.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(e)),n.pending=!1,this._drainQueue())),this._queue.push(n),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;let t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth==`function`?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:D0.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved(`connect_error`,e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved(`disconnect`,e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(t=>String(t.id)===e)){let t=this.acks[e];delete this.acks[e],t.withError&&t.call(this,Error(`socket has been disconnected`))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case D0.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved(`connect_error`,Error(`It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)`));break;case D0.EVENT:case D0.BINARY_EVENT:this.onevent(e);break;case D0.ACK:case D0.BINARY_ACK:this.onack(e);break;case D0.DISCONNECT:this.ondisconnect();break;case D0.CONNECT_ERROR:this.destroy();let t=Error(e.data.message);t.data=e.data.data,this.emitReserved(`connect_error`,t);break}}onevent(e){let t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let t=this._anyListeners.slice();for(let n of t)n.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]==`string`&&(this._lastOffset=e[e.length-1])}ack(e){let t=this,n=!1;return function(...r){n||(n=!0,t.packet({type:D0.ACK,id:e,data:r}))}}onack(e){let t=this.acks[e.id];typeof t==`function`&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved(`connect`)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose(`io server disconnect`)}destroy(){this.subs&&=(this.subs.forEach(e=>e()),void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:D0.DISCONNECT}),this.destroy(),this.connected&&this.onclose(`io client disconnect`),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let t=this._anyListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let t=this._anyOutgoingListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let t=this._anyOutgoingListeners.slice();for(let n of t)n.apply(this,e.data)}}};function B0(e){e||={},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}B0.prototype.duration=function(){var e=this.ms*this.factor**+ this.attempts++;if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0},B0.prototype.reset=function(){this.attempts=0},B0.prototype.setMin=function(e){this.ms=e},B0.prototype.setMax=function(e){this.max=e},B0.prototype.setJitter=function(e){this.jitter=e};var V0=class extends E1{constructor(e,t){super(),this.nsps={},this.subs=[],e&&typeof e==`object`&&(t=e,e=void 0),t||={},t.path=t.path||`/socket.io`,this.opts=t,P1(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor??.5),this.backoff=new B0({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState=`closed`,this.uri=e;let n=t.parser||T0;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)==null||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)==null||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)==null||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf(`open`))return this;this.engine=new f0(this.uri,this.opts);let t=this.engine,n=this;this._readyState=`opening`,this.skipReconnect=!1;let r=L0(t,`open`,function(){n.onopen(),e&&e()}),i=t=>{this.cleanup(),this._readyState=`closed`,this.emitReserved(`error`,t),e?e(t):this.maybeReconnectOnOpen()},a=L0(t,`error`,i);if(!1!==this._timeout){let e=this._timeout,n=this.setTimeoutFn(()=>{r(),i(Error(`timeout`)),t.close()},e);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}return this.subs.push(r),this.subs.push(a),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState=`open`,this.emitReserved(`open`);let e=this.engine;this.subs.push(L0(e,`ping`,this.onping.bind(this)),L0(e,`data`,this.ondata.bind(this)),L0(e,`error`,this.onerror.bind(this)),L0(e,`close`,this.onclose.bind(this)),L0(this.decoder,`decoded`,this.ondecoded.bind(this)))}onping(){this.emitReserved(`ping`)}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose(`parse error`,e)}}ondecoded(e){O1(()=>{this.emitReserved(`packet`,e)},this.setTimeoutFn)}onerror(e){this.emitReserved(`error`,e)}socket(e,t){let n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new z0(this,e,t),this.nsps[e]=n),n}_destroy(e){let t=Object.keys(this.nsps);for(let e of t)if(this.nsps[e].active)return;this._close()}_packet(e){let t=this.encoder.encode(e);for(let n=0;n<t.length;n++)this.engine.write(t[n],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose(`forced close`)}disconnect(){return this._close()}onclose(e,t){var n;this.cleanup(),(n=this.engine)==null||n.close(),this.backoff.reset(),this._readyState=`closed`,this.emitReserved(`close`,e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved(`reconnect_failed`),this._reconnecting=!1;else{let t=this.backoff.duration();this._reconnecting=!0;let n=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved(`reconnect_attempt`,e.backoff.attempts),!e.skipReconnect&&e.open(t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved(`reconnect_error`,t)):e.onreconnect()}))},t);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved(`reconnect`,e)}},H0={};function U0(e,t){typeof e==`object`&&(t=e,e=void 0),t||={};let n=p0(e,t.path||`/socket.io`),r=n.source,i=n.id,a=n.path,o=H0[i]&&a in H0[i].nsps,s=t.forceNew||t[`force new connection`]||!1===t.multiplex||o,c;return s?c=new V0(r,t):(H0[i]||(H0[i]=new V0(r,t)),c=H0[i]),n.query&&!t.query&&(t.query=n.queryKey),c.socket(n.path,t)}Object.assign(U0,{Manager:V0,Socket:z0,io:U0,connect:U0});var W0=((e=Ge)=>U0(e))(),G0=({label:e,onClick:t,children:n})=>(0,Y.jsx)(Z,{type:`button`,"aria-label":e,onClick:t,variant:`outline`,size:`icon-sm`,className:`bg-secondary/60`,children:n}),K0=({exitCode:e,signal:t})=>t>0?`[archon] Shell exited with signal ${t}`:`[archon] Shell exited with code ${e}`,q0=({createSession:e,isExpanded:t,isVisible:n,onClose:r,onToggleExpanded:i,className:a=``,ariaLabel:o=`Terminal`,title:s=`Terminal`,closeLabel:c=`Close terminal`,headerMeta:l})=>{let u=(0,p.useRef)(null),d=(0,p.useRef)(null),f=(0,p.useRef)(null),m=(0,p.useRef)(null),h=(0,p.useRef)(e),g=(0,p.useRef)(!1),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(!0);return(0,p.useEffect)(()=>{h.current=e},[e]),(0,p.useEffect)(()=>{if(!u.current)return;let e=new e1({cursorBlink:!0,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,fontSize:13,theme:{background:`#0b0d14`,foreground:`#d8deef`,cursor:`#c4b5fd`}}),t=new IG,n=null,r=!1;e.loadAddon(t),e.open(u.current),d.current=e,f.current=t;let i=()=>{let e=m.current;!e||g.current||(g.current=!0,fP(e))};window.addEventListener(`pagehide`,i),window.addEventListener(`beforeunload`,i);let a=()=>{m.current&&W0.emit(`terminal:resize`,{sessionId:m.current,cols:e.cols,rows:e.rows})},o=()=>{!u.current||r||(t.fit(),a())},s=t=>{t.sessionId===m.current&&(b(!1),window.setTimeout(()=>{o(),e.focus()},0))},c=t=>{t.sessionId===m.current&&(b(!1),e.write(t.data))},l=t=>{t.sessionId===m.current&&(e.writeln(``),e.writeln(K0(t)))},p=t=>{t.sessionId&&t.sessionId!==m.current||(b(!1),v(t.message),e.writeln(``),e.writeln(`[archon] ${t.message}`))};W0.on(`terminal:ready`,s),W0.on(`terminal:data`,c),W0.on(`terminal:exit`,l),W0.on(`terminal:error`,p);let _=e.onData(e=>{m.current&&W0.emit(`terminal:input`,{sessionId:m.current,input:e})});return typeof ResizeObserver==`function`&&(n=new ResizeObserver(()=>{o()}),n.observe(u.current)),window.setTimeout(()=>{o()},0),h.current().then(e=>{r||(m.current=e.session_id,W0.emit(`terminal:join`,{sessionId:e.session_id}))}).catch(t=>{if(r)return;b(!1);let n=t instanceof Error?t.message:`Unable to open the terminal right now.`;v(n),e.writeln(``),e.writeln(`[archon] ${n}`)}),()=>{r=!0,window.removeEventListener(`pagehide`,i),window.removeEventListener(`beforeunload`,i),m.current&&(g.current||W0.emit(`terminal:destroy`,{sessionId:m.current})),n?.disconnect(),_.dispose(),W0.off(`terminal:ready`,s),W0.off(`terminal:data`,c),W0.off(`terminal:exit`,l),W0.off(`terminal:error`,p),e.dispose(),d.current=null,f.current=null,m.current=null}},[]),(0,p.useEffect)(()=>{if(!n)return;let e=window.setTimeout(()=>{f.current?.fit(),d.current&&m.current&&(W0.emit(`terminal:resize`,{sessionId:m.current,cols:d.current.cols,rows:d.current.rows}),d.current.focus())},0);return()=>{window.clearTimeout(e)}},[t,n]),(0,Y.jsxs)(ub,{"aria-label":o,"data-terminal-pane":`true`,className:`flex min-h-0 flex-1 flex-col gap-0 overflow-hidden rounded-xl border-border bg-[#0c1119] ${a}`.trim(),children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-border bg-card/80 px-3 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded-lg bg-primary/12 text-primary`,children:(0,Y.jsx)(zv,{className:`h-4 w-4`})}),(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:s}),l&&(0,Y.jsx)(`div`,{className:`mt-1 min-w-0 text-xs text-muted-foreground`,children:l})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[y&&!_&&(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Opening terminal...`}),_&&(0,Y.jsx)(`span`,{className:`max-w-56 truncate text-xs text-red-300`,children:_}),(0,Y.jsx)(G0,{label:t?`Collapse terminal`:`Expand terminal`,onClick:i,children:t?(0,Y.jsx)(fS,{className:`h-4 w-4`}):(0,Y.jsx)(pS,{className:`h-4 w-4`})}),(0,Y.jsx)(G0,{label:c,onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]})]}),(0,Y.jsx)(`div`,{ref:u,"data-testid":`terminal-viewport`,onClick:()=>d.current?.focus(),className:`min-h-0 flex-1 overflow-hidden bg-[#0b0d14] pb-4`})]})},J0=({actions:e,activeAction:t=null,disableWhenActive:n=!1,className:r,heading:i,headingClassName:a,actionsClassName:o,showDisabledReason:s=!1,disabledReasonClassName:c,error:l,errorClassName:u,leadingContent:d,renderAction:f})=>{if(e.length===0&&!d)return null;let p=e.find(e=>e.disabled&&e.disabledReason)?.disabledReason??null;return(0,Y.jsxs)(`div`,{className:r,children:[i&&(0,Y.jsx)(`div`,{className:a,children:i}),(0,Y.jsxs)(`div`,{className:o,children:[d,e.map(e=>{let r=t===e.id,i=e.disabled||n&&t!==null;return f({action:e,label:r?e.pendingLabel:e.label,disabled:i,title:e.disabledReason??e.title,ariaLabel:e.ariaLabel})})]}),s&&p&&(0,Y.jsx)(`p`,{className:c,children:p}),l&&(0,Y.jsx)(`p`,{className:u,children:l})]})},Y0=({id:e,label:t,pendingLabel:n,ariaLabel:r=t,title:i,disabled:a=!1,disabledReason:o=null})=>({id:e,label:t,pendingLabel:n,ariaLabel:r,title:i,disabled:a,disabledReason:o}),X0=(e,t={})=>{let{isEditing:n=!1,includePlanAdvance:r=!0,hideAdvanceWhenBlocked:i=!1,hasOpenBlockers:a=!1,canRun:o=!0,canStopRun:s=!0,canPauseBuild:c=!0,canResumeBuild:l=!0,runDisabled:u=!1,runDisabledReason:d,buildLabel:f=`Build`,reviewLabel:p=`Review`}=t,m=fN(e.state),h=m?CN(e,m):!1,g=wN(e),_=e.bundle?.branch??e.branch,v=e.has_worktree??!!_,y=e.worktree_bundle_id!==null,b=e.state===`plan`&&e.agent_status===`running`,x=d??(e.has_run_config===!1?`No run config is available for this project.`:null),S=[];return r&&e.state===`plan`&&!e.parked_at&&S.push(Y0({id:`build`,label:f,pendingLabel:`Building...`,ariaLabel:f,disabled:!h,disabledReason:g})),e.state===`build`&&!e.parked_at&&!(i&&a)&&S.push(Y0({id:`review`,label:p,pendingLabel:`Starting review...`,ariaLabel:p,disabled:!h,disabledReason:g})),_&&v&&!b&&!n&&!y&&e.is_running!==!0&&o&&S.push(Y0({id:`run`,label:`Run`,pendingLabel:`Starting run...`,ariaLabel:`Run`,disabled:u||!!x,disabledReason:x,title:u?x??`Stop the currently running ticket before starting another run.`:void 0})),_&&!n&&!y&&e.is_running===!0&&s&&S.push(Y0({id:`stop-run`,label:`Stop Run`,pendingLabel:`Stopping run...`,ariaLabel:`Stop Run`,title:`Stop the currently running ticket.`,disabled:!1,disabledReason:null})),!n&&hN(e)&&e.agent_status===`running`&&e.session_id&&c&&S.push(Y0({id:`pause-build`,label:`Pause Build`,pendingLabel:`Pausing build...`,ariaLabel:`Pause Build`,title:`Pause the build session. You can resume it later.`,disabled:!1,disabledReason:null})),!n&&hN(e)&&e.agent_status===`stopped`&&e.session_id&&l&&S.push(Y0({id:`resume-build`,label:`Resume`,pendingLabel:`Resuming build...`,ariaLabel:`Resume`,disabled:!1,disabledReason:null})),S},Z0=(e,t={})=>{let n=e.state===`plan`,r=e.bundle?.branch??e.branch,i=e.has_worktree??!!r;return{isPlan:n,hasWorktree:i,disabledReason:e.agent_status===`running`?n?`Wait for planning to finish before sending another message.`:`Wait for the current build to finish before sending a follow-up prompt.`:t.requireWorktree===!0&&!n&&!i?`Worktree not ready yet.`:null,heading:n?`Planning follow-up`:`Ticket follow-up`,description:n?`Ask the agent to refine this plan.`:`Send a follow-up prompt for this ticket.`,placeholder:n?`Ask the agent to refine this plan...`:`Send a follow-up for this ticket...`}},Q0=(e,t,n={})=>{let r=(e.tool??n.activeTool??`opencode`)===`opencode`||n.persistPlanSettings===!0,i=r&&t.model?t.model:null,a=r&&t.model&&t.variant?t.variant:null,o=r?t.skills:[],s=e.skills??[],c=o.length!==s.length||o.some((e,t)=>e!==s[t]);return{model:i,variant:a,skills:o,shouldPersist:r&&(i!==e.model||a!==e.variant||c)}},$0=(0,p.lazy)(()=>bU(()=>Promise.resolve().then(()=>l6).then(e=>({default:e.TicketChangesModal})),void 0)),e2=(0,p.lazy)(()=>bU(()=>import(`./TestsDialog-DelI4dOJ.js`).then(e=>({default:e.TestsDialog})),__vite__mapDeps([19,3]))),t2=`(min-width: 1280px)`,n2=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!0:window.matchMedia(e).matches,r2=e=>{let[t,n]=(0,p.useState)(()=>n2(e));return(0,p.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let t=window.matchMedia(e),r=()=>{n(t.matches)};return r(),t.addEventListener(`change`,r),()=>{t.removeEventListener(`change`,r)}},[e]),t},i2=({onClose:e})=>{let{t}=Ue(`common`);return(0,Y.jsx)(tb,{onClose:e,overlayClassName:`z-[70] bg-black/30 p-[5vh]`,panelClassName:`flex h-full w-full max-w-none items-center justify-center rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:(0,Y.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:t(`ticketModal.loadingDiff`)})})},a2=({ariaLabel:e,title:t,closeAriaLabel:n,className:r,showTopSpacer:i=!0,description:a,onClose:o,...s})=>(0,Y.jsxs)(`aside`,{className:`min-h-0 flex flex-col gap-3 overflow-hidden${r?` ${r}`:``}`,"aria-label":e,children:[i?(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:`h-9 shrink-0`}):null,(0,Y.jsx)(UW,{...s,header:({showThinkingControl:e})=>(0,Y.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t}),e]}),a?(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:a}):null]}),(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":n,onClick:o,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]})})]}),o2=(e,t)=>e?t.find(t=>t.id===e)?.label??e:null,s2=({ticket:e,allTickets:t=[],dependencies:n=[],bundles:r=[],projectTestCommands:i=[],showModelSelector:a=!1,activeTool:o=`opencode`,availableModels:s=[],availableSkills:c=[],projectBranchState:l=null,projectMemoryEnabled:u=!1,runDisabled:d=!1,runDisabledReason:f,onClose:m,onCreateBundle:h,onDeleteBundle:g,onRefreshBundles:_,onUpdate:v,onDeleteDependency:y,onAdvance:b,onBuildChain:x,onRun:S,onOpenIde:C,onStop:w,onStopBuild:T,onStopBuildChain:E,onResumeBuild:D,onFollowUp:O,onRequestTicketRefresh:k,onProjectMemorySuggestionsChanged:A,onViewSourceSpec:j})=>{let{t:M}=Ue(`common`),[N,P]=(0,p.useState)(null),[F,I]=(0,p.useState)(!1),[L,R]=(0,p.useState)(!1),[z,B]=(0,p.useState)(!1),[V,H]=(0,p.useState)(!1),[ee,U]=(0,p.useState)(!1),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(``),[ae,oe]=(0,p.useState)(`build`),[W,se]=(0,p.useState)(!1),[ce,le]=(0,p.useState)(!1),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(0),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(!1),[ve,ye]=(0,p.useState)(null),G=N??e,[be,xe]=(0,p.useState)(G.model??``),[Se,Ce]=(0,p.useState)(G.variant??``),[we,Te]=(0,p.useState)(G.skills??[]),[Ee,De]=(0,p.useState)(()=>o2(G.model,s)??`Agent`),Oe=(0,p.useRef)(G.id),ke=(0,p.useRef)(null),Ae=(0,p.useRef)(null),je=(0,p.useRef)(!1),Me=(0,p.useRef)(G.id),Ne=(0,p.useRef)(G.build_completed_at),Pe=r2(t2),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)({model:G.model,variant:G.variant,skills:G.skills??[]}),ze=G.state===`plan`,Be=ae===`plan`?`plan`:pN(G.state),Ve=ae===`plan`?M(`ticketModal.followUpPlanPlaceholder`):void 0,K=G.worktree_bundle_id!==null,He=ze&&G.agent_status===`running`,We=ze&&G.agent_status===`error`,Ge=ze&&!He||F,Ke=async e=>{let t=await kt(G.id,G.project_id,e);return P(t),v?.(t),_&&await _(),t},qe=async e=>{try{await Ke(e),m()}catch(e){Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}},Je=async e=>{try{if(await Ke(e),!b){m();return}await b(),m()}catch(e){Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}},q=async()=>{!b||lt?.disabled||(await b(),m())},Ye=e=>{if(e===`review`){q();return}if(e===`run`){S?.();return}if(e===`stop-run`){w?.();return}if(e===`pause-build`){T?.();return}e===`resume-build`&&D?.()},Xe=async e=>{try{if(await Ke(e),!x){m();return}await x(),m()}catch(e){Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}},Ze=ze?G.planning_session_id:G.session_id,J=Ze?Ze.startsWith(`ses_`)?`opencode --session ${Ze}`:`claude --resume ${Ze}`:null,Qe=G.bundle?.branch??G.branch,$e=G.has_worktree??!!Qe,et=`Stop Build Chain`,tt=new Map(t.map(e=>[e.id,e])),nt=n.filter(e=>e.blocker_ticket_id===G.id),rt=n.filter(e=>e.dependent_ticket_id===G.id),it=HN(G,tt,n),at=it.pendingBuildChainOrder.length>0?`Will build in order: ${it.pendingBuildChainOrder.map(e=>e.title).join(` -> `)}`:`All tickets in this chain have already finished build.`,ot=it.skippedBuildChainCount>0?`Skips ${it.skippedBuildChainCount} ticket${it.skippedBuildChainCount===1?``:`s`} that already finished build.`:null,st=it.hasOpenBlockers,ct=X0(G,{isEditing:Ge,includePlanAdvance:!1,hideAdvanceWhenBlocked:!0,hasOpenBlockers:st,canRun:!!S,canStopRun:!!w,canPauseBuild:!!T,canResumeBuild:!!D,runDisabled:d,runDisabledReason:f,reviewLabel:`Review Bundle`}),lt=ct.find(e=>e.id===`review`)??null,ut=vN(G),dt=G.build_chain?.active_ticket_id?`Currently building ${tt.get(G.build_chain.active_ticket_id)?.title??`Unknown ticket`}.`:`Build chain is active.`,ft=G.build_chain&&G.build_chain.queued_ticket_ids.length>0?`Queued next: ${G.build_chain.queued_ticket_ids.map(e=>tt.get(e)?.title??`Unknown ticket`).join(` -> `)}`:`No additional tickets are queued after the current build.`,pt=ze&&!!b&&!it.hasOpenBlockers,mt=ze&&!!x&&it.canStartBuildChain,ht=!!G.project_id&&!ze&&!K,gt=ze,_t=K&&!ze,vt=!!G.project_id&&!!Qe&&$e&&!Ge&&!He&&!K,yt=!!G.project_id&&$e&&!Ge&&!He&&!!C&&!K,bt=!!G.project_id&&i.length>0&&$e,xt=ht&&!V,St=M(`workspaceControls.openTerminalAriaLabel`),Ct=ht&&te,wt=re.trim(),Tt=!Ge&&!He&&G.state!==`plan`&&$e&&!!O,Et=Tt&&(G.state===`build`||G.state===`review`);(0,p.useEffect)(()=>{let e=e=>{wG(e)&&Tt&&(e.preventDefault(),oe(e=>CG(e)))};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[Tt]);let Dt=gt&&ce,Ot=_t&&ue,At=(G.planning_context?.open_questions.length??0)>0,jt=Tt&&a&&hP(G,o)===`opencode`,Mt=M(`ticketModal.discardUnsavedDescription`),Nt=s.find(e=>e.id===be)??null,Pt=G.agent_status===`running`,Ft=QN(G,{allTickets:t,preferBundleReviewStatus:!0}),It=G.skills??[],Lt=Z0(G),Rt=Pt?Lt.disabledReason??void 0:void 0,zt=He?Lt.disabledReason??void 0:void 0,Bt=[...He?[]:[{label:`Worktree`,value:Qe??``}],{label:`Session`,value:J??``},...He?[{label:G.bundle?.kind===`project_root`?`Project root branch`:`Bundle`,value:(G.bundle?.kind,G.bundle?my(G.bundle):``)}]:ze?[{label:`Bundle`,value:G.bundle?my(G.bundle):``},{label:`Model`,value:G.model??``},{label:`Variant`,value:G.variant??``},{label:`Skills`,value:It.length>0?`${It.length} skill${It.length===1?``:`s`}`:``},{label:`Initiative`,value:G.planning_context?.initiative_prompt??``}]:[]],Vt=He?{model:G.model??``,variant:G.variant??``,skills:It}:null,Ht=gt&&ce,Ut=_t&&ue,Wt=(Ht||Ut)&&!Pe,Gt=Ht&&!Wt,Kt=Gt||Ut&&!Wt,qt=ze&&(Ht||!Pe),Jt=V?`flex h-[92vh] w-[96vw] max-w-7xl flex-col gap-3 overflow-hidden rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`:Kt?`flex h-[92vh] w-[98vw] max-w-[100rem] flex-col gap-3 overflow-visible rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`:Wt?`flex h-[92vh] w-[98vw] max-w-6xl flex-col gap-3 overflow-hidden rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`:`flex h-[92vh] w-[96vw] max-w-6xl flex-col gap-3 overflow-visible rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`,Yt=V&&!ee?`grid min-h-0 flex-1 grid-cols-1 gap-3 lg:grid-cols-2`:Kt?`grid min-h-0 flex-1 grid-cols-1 gap-3 xl:grid-cols-[minmax(0,1fr)_minmax(30rem,1fr)]`:`flex min-h-0 flex-1 flex-col`,Xt=()=>{ne(!0),H(e=>(e&&U(!1),!e))},Zt=()=>{H(!1),U(!1),ne(!1),k?.(G.id)},Qt=()=>{_e(!1),ye(null)},tn=()=>{_e(!1),ve===`cancel_edit`&&!ze?I(!1):m(),ye(null)},nn=()=>{if(!Ge){m();return}if(!me){m();return}ye(`close_modal`),_e(!0)},rn=()=>{if(ze){nn();return}if(!me){I(!1);return}ye(`cancel_edit`),_e(!0)};(0,p.useEffect)(()=>{P(t=>!t||t.id!==e.id||e.updated_at>=t.updated_at?null:t)},[e]),(0,p.useEffect)(()=>{if(Me.current!==G.id){Me.current=G.id,Ne.current=G.build_completed_at;return}if(Ne.current===G.build_completed_at)return;let e=Ne.current;Ne.current=G.build_completed_at,G.build_completed_at&&G.build_completed_at!==e&&pe(e=>e+1)},[G.build_completed_at,G.id]),(0,p.useEffect)(()=>{xe(G.model??``),Ce(G.variant??``),Te(G.skills??[])},[G.model,G.skills,G.variant]),(0,p.useEffect)(()=>{Oe.current!==G.id&&(Oe.current=G.id,De(o2(G.model,s)??`Agent`))},[s,G.id,G.model]),(0,p.useEffect)(()=>{let e=o2(G.model,s);e&&De(e)},[s,G.model]),(0,p.useEffect)(()=>{Re({model:G.model,variant:G.variant,skills:G.skills??[]})},[G.id,G.model,G.skills,G.variant]),(0,p.useEffect)(()=>{Ge||(he(!1),_e(!1),ye(null))},[Ge]),(0,p.useEffect)(()=>{me||(_e(!1),ye(null))},[me]),(0,p.useEffect)(()=>{if(!ze){ke.current=null,je.current=!1;return}let e=ke.current!==G.id,t=!je.current&&At;(e&&At||t)&&le(!0),ke.current=G.id,je.current=At},[At,ze,G.id]),(0,p.useEffect)(()=>{if(!_t){Ae.current=null;return}Ae.current!==G.id&&de(!1),Ae.current=G.id},[_t,G.id]);let an=async(e,t,n)=>{Ie(!0);try{let r=await kt(G.id,G.project_id,{model:e.trim()||null,variant:t.trim()||null,skills:n});P(r),v?.(r)}catch(e){xe(G.model??``),Ce(G.variant??``),Te(G.skills??[]),Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}finally{Ie(!1)}},on=e=>{let t=(s.find(t=>t.id===e)??null)?.variants.includes(Se)?Se:``;xe(e),Ce(t),an(e,t,we)},sn=e=>{Ce(e),an(be,e,we)},cn=e=>{Te(e),an(be,Se,e)},ln=async()=>{if(!(!O||W||Pt||!wt)){se(!0);try{await O(wt,ae),ie(``)}finally{se(!1)}}},un=async()=>{if(!(W||He||!wt||!Dt)){se(!0);try{let e=Q0(G,Le,{persistPlanSettings:!0});if(e.shouldPersist){let t=await kt(G.id,G.project_id,{model:e.model,variant:e.variant,skills:e.skills});P(t),v?.(t)}let t=await $t(G.id,G.project_id,wt);P(t),v?.(t),ie(``)}finally{se(!1)}}},dn=(G.messages??[]).filter(DP).map(e=>e.role===`assistant`?{...e,displayTitle:Ee}:e.kind===`follow_up`?{...e,displayTitle:M(`chatView.user.you`)}:e),fn=(G.messages??[]).filter(e=>(e.kind===`planning_follow_up`||e.kind===`planning_response`)&&DP(e)).map(e=>e.role===`assistant`?{...e,displayTitle:Ee}:e.kind===`planning_follow_up`?{...e,displayTitle:M(`chatView.user.you`)}:e),pn=Ht?(0,Y.jsx)(a2,{ariaLabel:M(`ticketModal.planningChatAriaLabel`),title:M(`ticketModal.planningChatTitle`),closeAriaLabel:M(`ticketModal.closePlanningChatAriaLabel`),className:Wt?`absolute inset-x-4 bottom-4 top-[4.25rem] z-30 rounded-2xl border border-border bg-card shadow-2xl sm:inset-x-auto sm:right-5 sm:w-[min(34rem,calc(100%-2.5rem))] lg:right-6`:void 0,showTopSpacer:!Wt,description:At?(0,Y.jsx)(`p`,{children:M(`ticketModal.planningOpenQuestions`,{count:G.planning_context?.open_questions.length??0})}):void 0,projectId:G.project_id,followUpTicketId:null,messages:fn,internalLog:G.agent_log??null,currentThinkingMessageId:G.agent_message_id??null,previousThinkingLog:G.previous_agent_log??null,previousThinkingMessageId:G.previous_agent_message_id??null,streamingResponse:G.streaming_response??null,isRunning:G.agent_status===`running`,canShowComposer:Dt,pendingAgentTitle:Ee,composerTheme:Be,followUpPlaceholder:M(`ticketModal.planningFollowUpPlaceholder`),emptyStateText:null,autoFocusComposer:ce,followUpPrompt:re,isSendingFollowUp:W,followUpDisabledReason:zt,onFollowUpPromptChange:ie,onFollowUpKeyDown:e=>{e.key!==`Enter`||e.shiftKey||He||W||(e.preventDefault(),un())},onFollowUpSubmit:()=>{un()},onClose:()=>{le(!1)}}):Ut?(0,Y.jsx)(a2,{ariaLabel:M(`ticketModal.ticketChatAriaLabel`),title:M(`ticketModal.ticketChatTitle`),closeAriaLabel:M(`ticketModal.closeTicketChatAriaLabel`),className:Wt?`absolute inset-x-4 bottom-4 top-[4.25rem] z-30 rounded-2xl border border-border bg-card shadow-2xl sm:inset-x-auto sm:right-5 sm:w-[min(34rem,calc(100%-2.5rem))] lg:right-6`:void 0,showTopSpacer:!Wt,projectId:G.project_id,followUpTicketId:G.id,messages:dn,internalLog:G.agent_log??null,currentThinkingMessageId:G.agent_message_id??null,previousThinkingLog:G.previous_agent_log??null,previousThinkingMessageId:G.previous_agent_message_id??null,streamingResponse:G.streaming_response??null,isRunning:G.agent_status===`running`,canShowComposer:Ot,pendingAgentTitle:Ee,composerTheme:Be,composerControls:Et?(0,Y.jsx)(bG,{value:ae,disabled:W||Pt,onChange:oe,planInactiveTooltip:(0,Y.jsx)(DG,{label:M(`chatView.shortcuts.switchToPlan`)}),buildInactiveTooltip:(0,Y.jsx)(DG,{label:M(`chatView.shortcuts.switchToBuild`)})}):void 0,autoFocusComposer:ue,followUpPrompt:re,isSendingFollowUp:W,followUpDisabledReason:Rt,followUpComposerControls:jt?(0,Y.jsx)(NG,{model:be,variant:Se,skills:we,showModelSelector:!0,showSkillsSelector:!0,availableModels:s,availableSkills:c,selectedModel:Nt,onModelChange:on,onVariantChange:sn,onSkillsChange:cn,modelSelectId:`ticket-follow-up-model`,variantSelectId:`ticket-follow-up-variant`,skillsSelectId:`ticket-follow-up-skills`,disabled:Fe}):void 0,onFollowUpPromptChange:ie,onFollowUpKeyDown:e=>{e.key!==`Enter`||e.shiftKey||Pt||W||(e.preventDefault(),ln())},onFollowUpSubmit:()=>{ln()},onClose:()=>{de(!1)}}):null,mn=(0,p.useCallback)(e=>O?O(e,ae):Promise.resolve(),[O,ae]);return(0,Y.jsx)(tb,{onClose:nn,overlayClassName:`bg-black/60`,panelClassName:Jt,renderContent:({closeButton:e})=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`absolute right-4 top-4 z-10 flex items-center gap-2 sm:right-5 sm:top-5 lg:right-6 lg:top-6`,children:[vt&&G.diff_stats&&(0,Y.jsx)(jv,{stats:G.diff_stats,showFiles:!0,className:`text-xs`}),vt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.changes`),onClick:()=>{k?.(G.id),R(!0)},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Nv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.changes`)})]}),bt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.tests`),onClick:()=>{B(!0)},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Mv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.tests`)})]}),yt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.openIde`),onClick:()=>{C?.()},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Pv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.openIde`)})]}),xt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":St,"aria-pressed":V,onClick:Xt,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(zv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.terminal`)})]}),(gt||_t)&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.chat`),"aria-pressed":ze?ce:ue,onClick:()=>{if(ze){le(e=>!e);return}de(e=>!e)},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(XC,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.chat`)})]}),e]}),(0,Y.jsxs)(`div`,{"data-testid":`ticket-modal-layout`,"data-terminal-mode":V?ee?`expanded`:`split`:`closed`,"data-side-chat-mode":Kt?`inline`:Wt?`overlay`:`closed`,className:Yt,children:[(0,Y.jsxs)(`div`,{className:`min-h-0 flex flex-1 flex-col gap-3 overflow-hidden`,children:[Ge?(0,Y.jsxs)(Y.Fragment,{children:[We&&G.agent_log&&(0,Y.jsxs)(`div`,{className:`rounded-lg border border-red-500/40 bg-destructive/15 px-3 py-2 text-xs text-red-300`,children:[(0,Y.jsx)(`span`,{className:`font-semibold`,children:M(`ticketModal.planningFailedPrefix`)}),G.agent_log]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(gP,{tool:G.tool,className:`text-[11px]`}),(0,Y.jsx)(bP,{totalTokens:G.usage_snapshot_total_tokens??null,contextWindow:G.usage_snapshot_context_window??null,cost:G.usage_snapshot_cost??null,tool:G.tool,model:G.model,availableModels:s}),G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j(G.origin_spec_session_id,G.origin_spec_snapshot_id)},children:M(`common:specView.provenance.viewSourceSpec`)}):null]}),(0,Y.jsx)(xP,{externalSource:G.external_source}),(0,Y.jsx)(sG,{heading:`Edit Ticket`,bundles:r,initialTitle:G.title,initialDescription:G.description??``,initialModel:G.model??``,initialVariant:G.variant??``,initialSkills:G.skills??[],initialWorktreeBundleId:G.worktree_bundle_id,projectBranchState:l,projectId:G.project_id,stackConfigurationSections:Gt&&!qt,preferWideBundleSelector:Gt&&qt,agentSettingsPresentation:qt?`popover`:`panel`,showModelSelector:a,availableModels:s,availableSkills:c,onAgentSettingsChange:Re,onCreateBundle:h,onDeleteBundle:g,onRefreshBundles:_,onCancel:rn,onDirtyChange:he,titleInputId:`edit-title`,descriptionInputId:`edit-description`,bundleSelectId:`edit-ticket-bundle`,modelSelectId:`edit-model`,variantSelectId:`edit-variant`,skillsSelectId:`edit-skills`,showEmptyBundleOption:!1,planAction:{label:`Plan`,onClick:async({title:e,description:t,model:n,variant:r,skills:i,worktree_bundle_id:a})=>{let o=await kt(G.id,G.project_id,{title:e,description:t,model:n,variant:r,skills:i,worktree_bundle_id:a});v?.(o),m(),await en(G.id,G.project_id)}},primaryAction:{label:`Save`,variant:pt?`subtle`:`brand`,onClick:qe},secondaryAction:pt?{label:`Save & Build`,variant:`brand`,showAdvanceIcon:!0,onClick:Je}:void 0,tertiaryAction:mt?{label:`Save & Build Chain`,variant:`brand`,showAdvanceIcon:!0,onClick:Xe}:void 0,beforeActionsContent:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(vG,{projectId:G.project_id,ticketId:G.id,memoryEnabled:u,refreshKey:fe,onSuggestionsChanged:A}),it.hasDependents&&(0,Y.jsx)(OP,{summary:at,detail:ot}),(0,Y.jsx)(KW,{blocks:nt,blockedBy:rt,resolveTicket:e=>tt.get(e),onDeleteDependency:y})]}),footerLeadingContent:me?(0,Y.jsx)(lb,{variant:`outline`,className:`border-amber-500/35 bg-amber-500/10 text-amber-200`,children:`Unsaved changes`}):null},`${G.id}:${G.updated_at}:${G.title}:${G.description}`)]}):(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden`,children:[(0,Y.jsx)(`div`,{className:`sticky top-0 -my-1 bg-card py-1 pr-12 sm:pr-24`,children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-base font-semibold text-foreground`,children:G.title}),(0,Y.jsx)(gP,{tool:G.tool,className:`text-[11px]`}),(0,Y.jsx)(bP,{totalTokens:G.usage_snapshot_total_tokens??null,contextWindow:G.usage_snapshot_context_window??null,cost:G.usage_snapshot_cost??null,tool:G.tool,model:G.model,availableModels:s}),(Ft===`building`||Ft===`done`)&&(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[G.is_running&&(0,Y.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-emerald-400 animate-pulse flex-shrink-0`}),(0,Y.jsx)(JN,{status:Ft,showBuildGlyph:!0})]}),Ft!==null&&Ft!==`building`&&Ft!==`done`&&(0,Y.jsx)(JN,{status:Ft,showBuildGlyph:!0}),At&&(0,Y.jsx)(lb,{variant:`warning`,children:M(`ticketModal.openQuestionsBadge`)}),ut&&(0,Y.jsx)(lb,{variant:`outline`,className:`border-border/80 bg-card/60 text-muted-foreground`,children:`Stale`}),G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j(G.origin_spec_session_id,G.origin_spec_snapshot_id)},children:M(`common:specView.provenance.viewSourceSpec`)}):null]})}),K?(0,Y.jsx)(`div`,{className:`mt-3 min-h-0 flex flex-1 flex-col`,children:(0,Y.jsx)(yG,{content:G.description,externalSource:G.external_source})}):(0,Y.jsx)(Y.Fragment,{children:ze?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 flex flex-col${He?` mt-3`:``}`,children:(0,Y.jsx)(yG,{content:G.description,externalSource:G.external_source})}):(0,Y.jsx)(UW,{projectId:G.project_id,followUpTicketId:G.id,messages:dn,internalLog:G.agent_log??null,currentThinkingMessageId:G.agent_message_id??null,previousThinkingLog:G.previous_agent_log??null,previousThinkingMessageId:G.previous_agent_message_id??null,streamingResponse:G.streaming_response??null,isRunning:G.agent_status===`running`,canShowComposer:Tt,pendingAgentTitle:Ee,composerTheme:Be,composerControls:Et?(0,Y.jsx)(bG,{value:ae,disabled:W||Pt,onChange:oe}):void 0,followUpPlaceholder:Ve,followUpComposerControls:jt?(0,Y.jsx)(NG,{model:be,variant:Se,skills:we,showModelSelector:!0,showSkillsSelector:!0,availableModels:s,availableSkills:c,selectedModel:Nt,onModelChange:on,onVariantChange:sn,onSkillsChange:cn,modelSelectId:`ticket-follow-up-model`,variantSelectId:`ticket-follow-up-variant`,skillsSelectId:`ticket-follow-up-skills`,disabled:Fe}):void 0,followUpPrompt:re,isSendingFollowUp:W,followUpDisabledReason:Rt,onFollowUpPromptChange:ie,onFollowUpKeyDown:e=>{e.key!==`Enter`||e.shiftKey||Pt||W||(e.preventDefault(),ln())},onFollowUpSubmit:()=>{ln()}})}),He&&(0,Y.jsxs)(`section`,{"aria-label":M(`workspaceControls.ticketMetadataAriaLabel`),className:`flex flex-wrap items-center gap-2`,children:[Bt.filter(e=>e.value.trim().length>0).map(e=>(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 sm:flex-none sm:max-w-full`,children:(0,Y.jsx)(CP,{label:e.label,value:e.value,variant:`compact`,className:`min-w-0`})},`${e.label}:${e.value}`)),(0,Y.jsx)(`div`,{className:`min-w-0 sm:flex-none`,children:(0,Y.jsx)(pP,{model:Vt.model,variant:Vt.variant,skills:Vt.skills})})]}),!He&&!Kt&&(0,Y.jsx)(wP,{ariaLabel:M(`workspaceControls.ticketMetadataAriaLabel`),items:Bt}),(0,Y.jsx)(vG,{projectId:G.project_id,ticketId:G.id,memoryEnabled:u,refreshKey:fe,onSuggestionsChanged:A}),(0,Y.jsx)(KW,{blocks:nt,blockedBy:rt,resolveTicket:e=>tt.get(e),onDeleteDependency:y}),G.build_chain&&(0,Y.jsx)(OP,{summary:dt,detail:ft})]}),!Ge&&(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 border-t border-border pt-4 sm:flex-row sm:items-end sm:justify-between`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,onClick:m,variant:`ghost`,children:M(`workspaceControls.close`)}),G.build_chain&&E&&(0,Y.jsxs)(Z,{type:`button`,onClick:()=>{E()},title:`Stop scheduling the remaining tickets in this build chain.`,"aria-label":et,variant:`destructive`,children:[(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`}),et]}),(0,Y.jsx)(J0,{actions:ct,actionsClassName:`contents`,renderAction:({action:e,label:t,disabled:n,title:r,ariaLabel:i})=>{let a=e.id===`review`?(0,Y.jsx)(lN,{className:`w-3.5 h-3.5`}):e.id===`run`||e.id===`resume-build`?(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}):(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`});return(0,Y.jsxs)(Z,{type:`button`,disabled:n,title:r,"aria-label":i,variant:e.id===`stop-run`?`destructive`:e.id===`pause-build`||e.id===`resume-build`?`warning`:e.id===`run`?`secondary`:`default`,className:e.id===`run`?`bg-sky-700 text-sky-100 hover:bg-sky-600 hover:text-white disabled:bg-slate-700 disabled:text-slate-400`:e.id===`resume-build`?`bg-amber-700 text-amber-50 hover:bg-amber-600 hover:text-white`:void 0,onClick:()=>Ye(e.id),children:[e.id===`review`?t:a,e.id===`review`?a:t]},e.id)}})]})]})]}),Kt&&pn,Ct&&(0,Y.jsx)(`div`,{className:V?ee?`fixed inset-0 z-[70] flex items-center justify-center bg-black/30 p-[5vh]`:`mt-12 min-h-0 flex flex-1 flex-col overflow-hidden`:`hidden`,children:(0,Y.jsx)(q0,{createSession:()=>uP(G.id,G.project_id),isExpanded:ee,isVisible:V,ariaLabel:M(`ticketModal.ticketTerminalAriaLabel`),className:ee?`h-full w-full max-w-none rounded-2xl shadow-2xl`:void 0,onClose:Zt,onToggleExpanded:()=>{U(e=>!e)}})})]}),Wt&&pn,L&&(0,Y.jsx)(p.Suspense,{fallback:(0,Y.jsx)(i2,{onClose:()=>{R(!1),k?.(G.id)}}),children:(0,Y.jsx)($0,{ticketId:G.id,projectId:G.project_id,title:G.title,onTicketUpdate:v,onRequestTicketRefresh:k,onSubmitReviewPrompt:mn,canSubmitReviewPrompt:!Pt,reviewSubmitDisabledReason:Rt,onViewSourceSpec:j,originSpecSessionId:G.origin_spec_session_id??null,originSpecSnapshotId:G.origin_spec_snapshot_id??null,onClose:()=>{R(!1),k?.(G.id)}})}),z&&bt&&G.project_id&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(e2,{scope:`ticket`,ticketId:G.id,projectId:G.project_id,testCommands:i,onClose:()=>{B(!1)}})}),ge&&(0,Y.jsx)(nb,{title:M(`ticketModal.discardUnsavedTitle`),description:Mt,confirmLabel:M(`ticketModal.discardUnsavedConfirm`),cancelLabel:M(`ticketModal.discardUnsavedCancel`),confirmVariant:`destructive`,onConfirm:tn,onCancel:Qt})]})})},c2=({ticket:e,allTickets:t=[],dependencies:n=[],bundles:r=[],projectMemoryEnabled:i=!1,overlay:a=!1,showModelSelector:o,availableModels:s,runDisabled:c=!1,runDisabledReason:l,dependencyTargetState:u=`idle`,onDependencyStart:d,onDeleteDependency:f,onRegisterNode:m,onRegisterOverlayNode:h,onCreateBundle:g,onDeleteBundle:_,onRefreshBundles:v,onUpdate:y,onDelete:b,onUndo:x,onRetry:S,onAdvance:C,onPark:w,onUnpark:T,onBuildChain:E,onRun:D,onOpenTests:O,onOpenChanges:k,onOpenIde:A,onAddTicketToBundle:j,onStop:M,onStopBuild:N,onStopBuildChain:P,onResumeBuild:F,onFollowUp:I,onOpenBundleDetails:L,onOpenTicketDetails:R,preferBundleDetailsOnClick:z=!1,hideBundleScopedControls:B=!1,hideStatusBadge:V=!1,onRequestTicketRefresh:H,undoInProgress:ee=!1})=>{let{t:U}=Ue(`common`),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(!1),[ae,oe]=(0,p.useState)(!1),[W,se]=(0,p.useState)(!1),[ce,le]=(0,p.useState)(null),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(!1),me=e.agent_status===`running`||ee,he=B,ge=e.bundle?.branch??e.branch,_e=e.has_worktree??(e.state===`plan`?!1:!!ge),ve=!B&&_e,ye=HN(e,new Map(t.map(e=>[e.id,e])),n),G=fN(e.state),be=e.state===`review`&&e.can_re_review===!0&&e.agent_status!==`running`,xe=e.worktree_bundle_id!==null,Se=gN(e),Ce=_N(e),we=vN(e),Te=!B&&Ce!==`plan`&&e.diff_stats===void 0,Ee=(we||Se)&&!a,De=G?U(G===`review`?`card.advance.reviewBundle`:`card.columnLabels.${G}`):be?U(`card.advance.rerunReview`):null,Oe=CN(e,`trash`),ke=e.undo,Ae=!!x&&ke?.stage!==null,je=be||(G?CN(e,G):!1),Me=!Se&&!!C&&!!De&&!ye.hasOpenBlockers,Ne=!!w&&xN(e),Pe=Se&&typeof e.state==`string`?U(`card.returnTo`,{state:U(`card.columnLabels.${e.state}`)}):null,Fe=!!T&&Pe!==null&&e.state!==`plan`,Ie=!Se&&!!E&&ye.canStartBuildChain,Le=hN(e)&&e.agent_status===`running`&&!!e.session_id&&!!N,Re=hN(e)&&e.agent_status===`stopped`&&!!e.session_id&&!!F,ze=ve&&!!k,Be=ve&&!!e.project_id&&!!O,Ve=ve&&!!A,K=!Se&&!B&&xe&&!!j,He=!he&&_e&&!!ge&&!e.is_running&&!!D,We=!he&&_e&&!!ge&&!!e.is_running&&!!M,Ge=!!e.build_chain&&!!P,Ke=!!b||Ae||Me||Ne||Fe||Ie||Le||Re||K||He||We||Be||ze||Ve||Ge,qe=async()=>{if(!(!D||c||ue)){de(!0);try{await D()}finally{de(!1)}}},Je=async()=>{if(!(!M||fe)){pe(!0);try{await M()}finally{pe(!1)}}},q=!he&&_e&&ge&&e.is_running&&M&&!ee?(0,Y.jsx)(XN,{isRunning:!0,isStopPending:fe,onStop:Je}):!he&&_e&&ge&&!e.is_running&&!Se&&D?(0,Y.jsx)(XN,{isRunning:!1,isRunPending:ue,runDisabled:c,runDisabledReason:l,onRun:qe}):null;(0,p.useEffect)(()=>{if(!W)return;let e=()=>{se(!1)};return window.addEventListener(`click`,e,{once:!0}),()=>{window.removeEventListener(`click`,e)}},[W]);let Ye=()=>{if(a||W||ee){se(!1);return}if(z&&L){L();return}if(R){R();return}H?.(e.id),oe(!0)},{attributes:Xe,listeners:Ze,setNodeRef:J,isDragging:Qe}=IM({id:e.id,disabled:a||me}),$e=(0,p.useRef)(J);(0,p.useEffect)(()=>{$e.current=J},[J]);let et=(0,p.useCallback)(t=>{if(a){h?.(t);return}$e.current(t),m?.(e.id,t)},[m,h,a,e.id]),tt=u===`valid`?`border-emerald-400 shadow-[0_0_0_1px_rgba(52,211,153,0.35)]`:u===`invalid`?`border-red-400 shadow-[0_0_0_1px_rgba(248,113,113,0.35)]`:a?`border-violet-400`:ye.isVisibleStartPoint?`border-violet-500/35 shadow-[0_0_0_1px_rgba(168,85,247,0.18)] hover:border-violet-400/55`:`border-border hover:border-primary/40`,nt=a||ee?`pointer-events-none cursor-grabbing shadow-2xl`:`cursor-pointer`,rt=Qe?`opacity-30`:Ee?`opacity-90`:`opacity-100`,it=Ee?`bg-card/60`:`bg-secondary/30`,at=Ee?`p-3 text-foreground/70`:`p-3`,ot=Ee?`truncate text-sm font-medium text-foreground/70`:`truncate text-sm font-medium text-foreground`,st=Ee?`text-[11px] text-foreground/55`:`text-[11px] text-muted-foreground`,ct=Ee?`whitespace-pre-line text-xs leading-relaxed text-foreground/55 wrap-anywhere`:`whitespace-pre-line text-xs leading-relaxed text-muted-foreground wrap-anywhere`,lt=e.tool===`opencode`?e.model??``:``,ut=!!e.bundle&&!B,dt=!!e.bundle?.pull_request&&!B,ft=ut||dt,pt=ft||lt.length>0,mt=ce===e.id,ht=(0,p.useMemo)(()=>{let t=e.description??``;return t?QU(t):{text:``,truncated:!1}},[e.description]);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(ub,{"data-testid":`ticket-card-${e.id}`,className:`group/card shrink-0 select-none transition-colors ${tt} ${nt} ${rt} ${it} gap-0 rounded-xl border shadow-none`,ref:et,onClick:Ye,...Ze,...Xe,children:[ee&&(0,Y.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-background/85 backdrop-blur-[1px]`,children:(0,Y.jsxs)(lb,{variant:`warning`,className:`gap-1.5`,children:[(0,Y.jsx)(CS,{className:`h-3.5 w-3.5 animate-spin`}),U(`card.undoInProgress`)]})}),(0,Y.jsxs)(hb,{className:at,children:[(0,Y.jsxs)(`div`,{className:`mb-1.5 flex items-start justify-between gap-2`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(`div`,{className:ot,children:e.title})}),(0,Y.jsxs)(`div`,{className:`flex flex-shrink-0 items-start gap-1`,children:[(0,Y.jsx)(`div`,{className:`mr-1`,children:q}),(0,Y.jsx)(`div`,{className:`flex size-7 items-start justify-center`,children:d&&(0,Y.jsx)(Sv,{content:U(`card.drawDependency`),children:(0,Y.jsx)(Z,{type:`button`,"aria-label":U(`card.createDependencyAriaLabel`,{title:e.title}),variant:`ghost`,size:`icon-xs`,className:`cursor-crosshair opacity-0 transition-all group-hover/card:opacity-100`,onClick:e=>e.stopPropagation(),onPointerDown:t=>{t.stopPropagation(),se(!0),d(e.id,t)},children:(0,Y.jsx)(Ux,{className:`h-4 w-4`})})})}),(0,Y.jsx)(`div`,{className:`flex size-7 items-start justify-center`,children:Ke&&(0,Y.jsx)(oP,{title:e.title,canDelete:Oe,undo:ke,undoInProgress:ee,runDisabled:c,isRunPending:ue,isStopPending:fe,showTestsAction:Be,showOpenChangesAction:ze,showOpenIdeAction:Ve,showAddTicketToBundleAction:K,showRunAction:He,showStopRunAction:We,showAdvanceAction:Me,advanceLabel:De,canAdvance:je,showParkAction:Ne,showReturnAction:Fe,returnLabel:Pe,showBuildChainAction:Ie,showPauseBuildAction:Le,showResumeBuildAction:Re,showStopBuildChainAction:Ge,onDelete:b,onConfirmDelete:()=>ne(!0),onConfirmUndo:()=>ie(!0),onOpenTests:O,onOpenChanges:k,onOpenIde:A,onAddTicketToBundle:K?()=>j?.(e.worktree_bundle_id):void 0,onAdvance:C,onPark:w,onUnpark:T,onBuildChain:E,onRun:qe,onStop:Je,onStopBuild:N,onResumeBuild:F,onStopBuildChain:P})})]})]}),(0,Y.jsx)(`div`,{className:`mt-2`,children:(0,Y.jsx)(lP,{ticket:e,hideStatusBadge:V,hideBundleScopedControls:B,isStale:we,runControl:null,onRetry:S,undoInProgress:ee,isChainStart:ye.isVisibleStartPoint})}),pt&&(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-col gap-1`,children:[ft&&(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 ${st}`,children:[ut&&(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:my(e.bundle)}),dt&&e.bundle?.pull_request&&(0,Y.jsx)(sN,{pullRequest:e.bundle.pull_request,asLink:!0,showNumber:!0,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation()})]}),lt.length>0&&(0,Y.jsx)(`div`,{className:st,children:(0,Y.jsx)(`span`,{className:`truncate`,children:lt})})]}),e.description&&(0,Y.jsx)(`div`,{className:`mt-2`,children:(0,Y.jsx)(cP,{description:e.description,descriptionClass:ct,isExpanded:mt,collapsedState:ht,useStaleLikeStyling:Ee,onExpand:()=>le(e.id),onCollapse:()=>le(null)})}),!B&&(bN(Ce,e.diff_stats)||Te)&&(0,Y.jsx)(jv,{stats:e.diff_stats,isLoading:Te,showFiles:!0,className:`mt-2`})]})]}),ae&&(0,Y.jsx)(s2,{ticket:e,allTickets:t,dependencies:n,bundles:r,projectMemoryEnabled:i,onClose:()=>{oe(!1),H?.(e.id)},showModelSelector:o,availableModels:s,runDisabled:c,runDisabledReason:l,onDeleteDependency:f,onCreateBundle:g,onDeleteBundle:_,onRefreshBundles:v,onUpdate:y,onAdvance:C,onBuildChain:E,onRun:D,onOpenIde:A,onStop:M,onStopBuild:N,onStopBuildChain:P,onResumeBuild:F,onFollowUp:I}),te&&(0,Y.jsx)(sP,{title:e.title,bundleName:e.bundle?my(e.bundle):void 0,onConfirm:()=>{ne(!1),b?.()},onCancel:()=>ne(!1)}),re&&ke?.stage&&(0,Y.jsx)(YN,{title:e.title,stage:ke.stage,onConfirm:()=>{ie(!1),x?.()},onCancel:()=>ie(!1)})]})},l2=({index:e})=>{let{t}=Ue(`common`);return(0,Y.jsx)(ub,{"aria-hidden":`true`,"data-testid":`ticket-card-skeleton`,className:`group shrink-0 select-none gap-0 rounded-xl border border-border/70 bg-secondary/20 shadow-none`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,"aria-hidden":`true`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,Y.jsx)(Av,{className:`h-3.5 w-3/5 rounded-full`}),(0,Y.jsx)(Av,{className:`h-5 w-11 rounded-full`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(Av,{className:`h-3 w-full rounded-full`}),(0,Y.jsx)(Av,{className:`h-3 w-11/12 rounded-full`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Av,{className:`h-4 w-14 rounded-full`}),(0,Y.jsx)(Av,{className:`h-4 w-10 rounded-full`})]}),(0,Y.jsx)(`span`,{className:`sr-only`,children:t(`column.loadingCard`,{index:e+1})})]})})},u2=({id:e,title:t,items:n,ticketCount:r,pinnedContent:i=null,allTickets:a,dependencies:o,showModelSelector:s,availableModels:c,activeRunContextKey:l,isProjectRootRunActive:u=!1,isBundleRunDisabled:d,bundles:f,getDependencyTargetState:m,onDependencyStart:h,onDeleteDependency:g,onRegisterTicketNode:_,onAddTicket:v,onCreateBundle:y,onDeleteBundle:b,onRefreshBundles:x,onUpdateTicket:S,onDeleteTicket:C,onUndoTicket:w,undoingColumn:T=null,onRetryTicket:E,onAdvanceTicket:D,onParkTicket:O,onUnparkTicket:k,onBuildChainTicket:A,onRunTicket:j,onOpenTestsTicket:M,canOpenChangesForTicket:N,onOpenChangesTicket:P,canOpenIdeForTicket:F,onOpenIdeTicket:I,onStopTicket:L,onStopBuildTicket:R,onStopBuildChainTicket:z,onResumeBuildTicket:B,onFollowUpTicket:V,onBuildBundle:H,onReviewBundle:ee,onUndoBundleReview:U,onRunBundle:te,onStopBundle:ne,onParkBundleWrapper:re,onUnparkBundleWrapper:ie,bundleActionState:ae,onOpenTicketDetails:oe,onOpenBundleDetails:W,onOpenBundleChanges:se,onOpenBundleTests:ce,onOpenBundleIde:le,onDeleteBundleWrapper:ue,onAddTicketToBundle:de,onRequestBundleRefresh:fe,onRequestTicketRefresh:pe,className:me=``,headerAccessory:he=null,loadingSkeletonCount:ge=0})=>{let{t:_e}=Ue(`common`),{setNodeRef:ve,isOver:ye}=BM({id:e}),G=(0,p.useRef)(null),[be,xe]=(0,p.useState)(!1),[Se,Ce]=(0,p.useState)(!1),we=e=>e.has_worktree??!!(e.bundle?.branch??e.branch),Te=ye?`border-primary`:`border-border`,Ee=T===e&&(e===`build`||e===`review`),De=(0,p.useCallback)(()=>{let e=G.current;if(!e){xe(!1),Ce(!1);return}if(!(e.scrollHeight>e.clientHeight+1)){xe(!1),Ce(!1);return}let t=e.scrollHeight-e.clientHeight;xe(e.scrollTop>1),Ce(e.scrollTop<t-1)},[]);(0,p.useEffect)(()=>{let e=window.requestAnimationFrame(De),t=G.current;if(!t){window.cancelAnimationFrame(e);return}return t.addEventListener(`scroll`,De),window.addEventListener(`resize`,De),()=>{window.cancelAnimationFrame(e),t.removeEventListener(`scroll`,De),window.removeEventListener(`resize`,De)}},[n.length,ge,De]);let Oe=(0,p.useCallback)((t,n)=>{let r=t.worktree_bundle_id!==null,i=n?.nestedInBundle??!1,d=n?.hideStatusBadge??!1,p=r&&e!==`plan`,v=LN(t),T=u||l!==null&&l!==mN(t)?_e(`column.runDisabledReason`):v;return(0,Y.jsx)(c2,{ticket:t,allTickets:a,dependencies:o,bundles:f,showModelSelector:s,availableModels:c,runDisabled:T!==void 0,runDisabledReason:T,dependencyTargetState:m?.(t.id)??`idle`,onDependencyStart:h,onDeleteDependency:g,onRegisterNode:_,onCreateBundle:y,onDeleteBundle:b,onRefreshBundles:x,onUpdate:S,onDelete:()=>C(t.id),onUndo:w?()=>w(t.id):void 0,undoInProgress:!1,onRetry:()=>E(t.id),onAdvance:D?()=>D(t.id):void 0,onPark:O?()=>O(t.id):void 0,onUnpark:k?()=>k(t.id):void 0,onBuildChain:A?()=>A(t.id):void 0,onRun:we(t)&&t.has_run_config&&j?()=>j(t.id):void 0,onOpenTests:M&&t.project_id&&we(t)?()=>M(t.id):void 0,onOpenChanges:N?.(t)&&P?()=>P(t.id):void 0,onOpenIde:F?.(t)&&I?()=>I(t.id):void 0,onStop:L?()=>L(t.id):void 0,onStopBuild:R?()=>R(t.id):void 0,onStopBuildChain:z?()=>z(t.id):void 0,onResumeBuild:B?()=>B(t.id):void 0,onFollowUp:V?(e,n)=>V(t.id,e,n):void 0,onAddTicketToBundle:de,onOpenBundleDetails:p&&W?()=>W(t.worktree_bundle_id,e):void 0,onOpenTicketDetails:()=>oe(t),preferBundleDetailsOnClick:p,hideBundleScopedControls:i,hideStatusBadge:d,onRequestTicketRefresh:pe})},[l,a,c,f,N,F,o,m,e,u,de,D,A,y,b,g,C,h,V,W,P,I,M,oe,O,x,_,pe,B,E,j,z,R,L,w,k,S,s,_e]);return(0,Y.jsxs)(ub,{className:`flex min-h-0 min-w-[280px] flex-1 flex-col rounded-2xl bg-card/80 p-4 transition-colors ${me} ${Te}`,ref:ve,children:[(0,Y.jsxs)(`div`,{className:`mb-4 flex min-h-7 items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-xs font-semibold uppercase tracking-widest text-muted-foreground`,children:t}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[he,(0,Y.jsx)(lb,{variant:`outline`,children:r}),v&&(0,Y.jsxs)(Z,{type:`button`,onClick:v,size:`xs`,variant:`success`,className:`gap-2 shadow-[0_8px_20px_rgba(16,185,129,0.22)]`,children:[(0,Y.jsx)(`span`,{children:_e(`column.newTicket`)}),(0,Y.jsx)(lb,{"aria-hidden":`true`,variant:`hotkeyDark`,className:`rounded-md px-1.5 py-0.5 text-[10px] leading-none`,children:`N`})]})]})]}),(0,Y.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{ref:G,className:`flex min-h-0 h-full flex-col gap-2.5 overflow-y-auto pr-1`,children:[i,n.map(e=>{if(e.kind===`bundle`)return(0,Y.jsx)(iP,{group:e.group,renderTicket:t=>Oe(t,{nestedInBundle:!0,hideStatusBadge:e.group.column===`review`}),runDisabled:d?.(e.group.bundle.id)??!1,onBuildBundle:H,onReviewBundle:ee,onUndoBundleReview:U,onRunBundle:te,onStopBundle:ne,onParkBundleWrapper:re,onUnparkBundleWrapper:ie,bundleActionState:ae,onStopBuildTicket:R,onResumeBuildTicket:B,onOpenBundleDetails:W,onOpenBundleChanges:se,onOpenBundleTests:ce,onOpenBundleIde:le,onDeleteBundleWrapper:ue,onAddTicketToBundle:de,onRequestBundleRefresh:fe},e.group.id);let t=e.ticket;return(0,Y.jsx)(p.Fragment,{children:Oe(t)},t.id)}),Array.from({length:ge},(t,n)=>(0,Y.jsx)(l2,{index:n},`loading-card-${e}-${n}`))]}),Ee&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`column-undo-overlay-${e}`,className:`absolute inset-0 z-20 flex items-center justify-center rounded-xl bg-background/85 backdrop-blur-[1px]`,children:(0,Y.jsxs)(lb,{variant:`warning`,className:`gap-1.5`,children:[(0,Y.jsx)(CS,{className:`h-3.5 w-3.5 animate-spin`}),_e(`column.undoInProgress`)]})}),be&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`column-top-fade`,className:`pointer-events-none absolute inset-x-0 top-0 h-6 rounded-t-xl bg-gradient-to-b from-card to-transparent`}),Se&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`column-bottom-fade`,className:`pointer-events-none absolute inset-x-0 bottom-0 h-8 rounded-b-xl bg-gradient-to-t from-card to-transparent`})]})]})},d2=({ticketCount:e,isDeleting:t,onCancel:n,onConfirm:r})=>{let{t:i}=Ue(`common`);return(0,Y.jsxs)(tb,{onClose:t?()=>{}:n,overlayClassName:`bg-black/60`,panelClassName:`max-w-md rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,Y.jsx)(`h2`,{className:`mb-3 text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:i(`boardConfirmEmptyDoneModal.heading`)}),(0,Y.jsx)(`p`,{className:`mb-2 text-sm text-foreground`,children:i(`boardConfirmEmptyDoneModal.deletePrompt`,{count:e})}),(0,Y.jsx)(`p`,{className:`mb-6 text-xs text-muted-foreground`,children:i(`boardConfirmEmptyDoneModal.description`)}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,disabled:t,onClick:n,children:i(`boardConfirmEmptyDoneModal.cancel`)}),(0,Y.jsx)(Z,{type:`button`,variant:`destructive`,disabled:t,onClick:r,children:i(t?`boardConfirmEmptyDoneModal.deleting`:`boardConfirmEmptyDoneModal.confirm`)})]})]})},f2=({projectId:e,followUpTicketId:t=null,messages:n,internalLog:r,currentThinkingMessageId:i=null,legacyThinkingTicketId:a=null,previousThinkingLog:o=null,previousThinkingMessageId:s=null,pendingAgentTitle:c,streamingResponse:l,isRunning:u,isLoading:d=!1,canShowComposer:f,topControls:p,composerControls:m,composerTheme:h=`default`,layoutKey:g,scrollLayoutKey:_,followUpPrompt:v,followUpPlaceholder:y=`Follow up on this bundle`,isSendingFollowUp:b,followUpDisabledReason:x,onFollowUpPromptChange:S,onFollowUpKeyDown:C,onFollowUpSubmit:w})=>(0,Y.jsx)(HW,{projectId:e,followUpTicketId:t,messages:n,internalLog:r,currentThinkingMessageId:i,legacyThinkingTicketId:a,previousThinkingLog:o,previousThinkingMessageId:s,pendingAgentTitle:c,streamingResponse:l,isRunning:u,isLoading:d,autoScrollBehavior:`sticky`,canShowComposer:f,composerControls:p,composerInlineControls:m,composerTheme:h,composerSize:`compact-on-laptop`,layoutKey:g,scrollLayoutKey:_,followUpPrompt:v,followUpPlaceholder:y,emptyStateText:`No bundle messages yet.`,autoFocusComposer:!0,isSendingFollowUp:b,followUpDisabledReason:x,onFollowUpPromptChange:S,onFollowUpKeyDown:C,onFollowUpSubmit:w}),p2=({bundleId:e,actionState:t,runDisabled:n,canBuild:r,canStopBuild:i,runningBuildTicketId:a,canResumeBuild:o,resumableBuildTicketId:s,isRunning:c,canRun:l,canReview:u,reviewActionLabel:d=`Review Bundle`,onClose:f,onBuildBundle:p,onStopBuildTicket:m,onResumeBuildTicket:h,onRunBundle:g,onStopBundle:_,onReviewBundle:v})=>{let y=t.review||t.followUp;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 pt-4 sm:flex-row sm:items-end sm:justify-between`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,onClick:f,variant:`ghost`,children:`Close`}),c?(0,Y.jsxs)(Z,{type:`button`,variant:`destructive`,disabled:t.stop,onClick:()=>void _(e),children:[(0,Y.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-emerald-400 animate-pulse flex-shrink-0`}),(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`}),t.stop?`Stopping...`:`Stop Run`]}):l?(0,Y.jsxs)(Z,{type:`button`,variant:`secondary`,disabled:t.run||n,title:n?`Stop the currently running ticket before starting another run.`:void 0,onClick:()=>{n||g(e)},className:`bg-sky-700 text-sky-100 hover:bg-sky-600 hover:text-white disabled:bg-slate-700 disabled:text-slate-400`,children:[(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}),t.run?`Starting Run...`:`Run`]}):null,r&&(0,Y.jsxs)(Z,{type:`button`,disabled:t.build,onClick:()=>void p(e),children:[(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}),t.build?`Building Bundle...`:`Build Bundle`]}),i&&a&&(0,Y.jsxs)(Z,{type:`button`,variant:`warning`,disabled:t.stopBuild,title:`Pause the build session. You can resume it later.`,"aria-label":`Pause Build`,onClick:()=>void m(a),children:[(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`}),t.stopBuild?`Pausing...`:`Pause Build`]}),o&&s&&(0,Y.jsxs)(Z,{type:`button`,variant:`warning`,className:`bg-amber-700 text-amber-50 hover:bg-amber-600 hover:text-white`,disabled:t.resumeBuild,onClick:()=>void h(s),children:[(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}),t.resumeBuild?`Resuming...`:`Resume`]}),u&&(0,Y.jsxs)(Z,{type:`button`,disabled:y,onClick:()=>void v(e),children:[(0,Y.jsx)(lN,{className:`w-3.5 h-3.5`}),y?`Reviewing Bundle...`:d]})]})]})},m2=e=>e.agent_status===`running`?`bg-amber-400`:e.agent_status===`error`?`bg-rose-400`:e.agent_status===`stopped`?`bg-amber-300`:e.agent_status===`done`?`bg-emerald-400`:`bg-border`,h2=({tickets:e,onOpenTicketDetails:t,highlightedTicketId:n=null,pendingMemorySuggestionCounts:r={},availableModels:i=[]})=>{let a=e.filter(e=>e.agent_status===`running`).length,o=e.filter(e=>e.agent_status===`error`).length;return(0,Y.jsxs)(`section`,{"aria-label":`Bundle tickets`,className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground`,children:`Tickets`}),(0,Y.jsx)(lb,{variant:`outline`,children:e.length}),a>0&&(0,Y.jsxs)(`span`,{className:`text-[11px] text-muted-foreground`,children:[a,` active`]}),o>0&&(0,Y.jsxs)(`span`,{className:`text-[11px] text-rose-300`,children:[o,` error`,o===1?``:`s`]})]}),(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-col gap-1 overflow-y-auto pr-1`,children:e.map(e=>{let a=r[e.id]??0,o=e.id===n;return(0,Y.jsxs)(`button`,{type:`button`,"data-follow-up-target":o?`true`:`false`,"aria-current":o?`true`:void 0,className:X(`flex cursor-pointer items-center gap-3 rounded-lg px-2.5 py-2.5 text-left text-foreground transition-colors`,o?`border border-sky-500/35 bg-sky-500/10 shadow-[inset_0_0_0_1px_rgba(56,189,248,0.12)] hover:bg-sky-500/15`:`bg-background/20 hover:bg-accent/45`),onClick:()=>t(e),children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,className:X(`h-2 w-2 shrink-0 rounded-full`,m2(e))}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`truncate text-xs font-medium`,children:e.title}),(0,Y.jsx)(gP,{tool:e.tool,className:`shrink-0 text-[10px]`}),(0,Y.jsx)(bP,{totalTokens:e.usage_snapshot_total_tokens??null,contextWindow:e.usage_snapshot_context_window??null,cost:e.usage_snapshot_cost??null,tool:e.tool,model:e.model,availableModels:i})]}),(0,Y.jsx)(`div`,{className:`mt-0.5 text-[11px] text-muted-foreground`,children:e.state})]}),o&&(0,Y.jsx)(lb,{variant:`info`,className:`shrink-0 px-1.5 text-[10px]`,"aria-label":`Follow-up target`,children:`Follow-up`}),a>0&&(0,Y.jsx)(lb,{variant:`warning`,className:`h-5 min-w-5 shrink-0 justify-center rounded-full px-1.5 text-[10px]`,"aria-label":`${a} pending memory suggestion${a===1?``:`s`}`,title:`${a} pending memory suggestion${a===1?``:`s`}`,children:a})]},e.id)})})]})},g2=e=>e.kind===`description`?e.bundle_visible_at??e.created_at:e.created_at,_2=(e,t)=>e?t.get(e)??e:null,v2=(e,t)=>_2(e,t)??`Agent`,y2=e=>e.kind===`planning_follow_up`||e.kind===`planning_response`?0:e.kind===`description`?1:2,b2=(e,t)=>{let n={};for(let r of e){let e=_2(r.model,t);e&&(n[r.id]=e)}return n},x2=(e,t=[])=>{let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>{let r=n.get(e.id)??e.bundle_execution_position??2**53-1,i=n.get(t.id)??t.bundle_execution_position??2**53-1;if(r!==i)return r-i;if(e.created_at!==t.created_at)return e.created_at.localeCompare(t.created_at);let a=e.title.localeCompare(t.title,void 0,{sensitivity:`base`});return a===0?e.id.localeCompare(t.id):a})},S2=(e,t,n,r=[])=>{let i=x2(e,r),a=new Map(i.map((e,t)=>[e.id,t]));return i.flatMap(e=>{let r=e.messages??[],i=e.agent_status!==null||e.session_id!==null||r.some(e=>e.kind!==`description`&&DP(e)),o=r.filter(e=>DP(e)&&(i||e.kind!==`description`)),s=n[e.id]??v2(e.model,t);return o.map(t=>t.role===`assistant`?{...t,displayTitle:s,ticketOrder:a.get(e.id)??2**53-1}:t.kind===`follow_up`?{...t,displayTitle:`You`,ticketOrder:a.get(e.id)??2**53-1}:{...t,displayTitle:e.title,ticketOrder:a.get(e.id)??2**53-1})}).sort((e,t)=>{if(e.ticket_id===t.ticket_id){let n=y2(e)-y2(t);if(n!==0)return n}let n=g2(e),r=g2(t);if(n!==r)return n.localeCompare(r);if(e.ticket_id!==t.ticket_id&&e.ticketOrder!==t.ticketOrder)return e.ticketOrder-t.ticketOrder;let i=y2(e)-y2(t);return i===0?e.id.localeCompare(t.id):i}).map(e=>{let{ticketOrder:t,...n}=e;return n})},C2=e=>uy(e.tickets,{targetTicketId:e.target_ticket_id,reviewOwnerTicketId:e.review_owner_ticket_id,latestSessionTicketId:e.latest_session_ticket_id}),w2=(0,p.lazy)(()=>bU(()=>Promise.resolve().then(()=>l6).then(e=>({default:e.TicketChangesModal})),void 0)),T2=e=>e.replace(/\r\n/g,`
|
|
250
|
+
`,t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return{get promptLabel(){return UG.get()},set promptLabel(e){UG.set(e)},get tooMuchOutput(){return GG.get()},set tooMuchOutput(e){GG.set(e)}}}_verifyIntegers(...e){for($$ of e)if($$===1/0||isNaN($$)||$$%1!=0)throw Error(`This API only accepts integers`)}_verifyPositiveIntegers(...e){for($$ of e)if($$&&($$===1/0||isNaN($$)||$$%1!=0||$$<0))throw Error(`This API only accepts positive integers`)}},t1=Object.create(null);t1.open=`0`,t1.close=`1`,t1.ping=`2`,t1.pong=`3`,t1.message=`4`,t1.upgrade=`5`,t1.noop=`6`;var n1=Object.create(null);Object.keys(t1).forEach(e=>{n1[t1[e]]=e});var r1={type:`error`,data:`parser error`},i1=typeof Blob==`function`||typeof Blob<`u`&&Object.prototype.toString.call(Blob)===`[object BlobConstructor]`,a1=typeof ArrayBuffer==`function`,o1=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,s1=({type:e,data:t},n,r)=>i1&&t instanceof Blob?n?r(t):c1(t,r):a1&&(t instanceof ArrayBuffer||o1(t))?n?r(t):c1(new Blob([t]),r):r(t1[e]+(t||``)),c1=(e,t)=>{let n=new FileReader;return n.onload=function(){let e=n.result.split(`,`)[1];t(`b`+(e||``))},n.readAsDataURL(e)};function l1(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}var u1;function d1(e,t){if(i1&&e.data instanceof Blob)return e.data.arrayBuffer().then(l1).then(t);if(a1&&(e.data instanceof ArrayBuffer||o1(e.data)))return t(l1(e.data));s1(e,!1,e=>{u1||=new TextEncoder,t(u1.encode(e))})}var f1=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,p1=typeof Uint8Array>`u`?[]:new Uint8Array(256);for(let e=0;e<64;e++)p1[f1.charCodeAt(e)]=e;var m1=e=>{let t=e.length*.75,n=e.length,r,i=0,a,o,s,c;e[e.length-1]===`=`&&(t--,e[e.length-2]===`=`&&t--);let l=new ArrayBuffer(t),u=new Uint8Array(l);for(r=0;r<n;r+=4)a=p1[e.charCodeAt(r)],o=p1[e.charCodeAt(r+1)],s=p1[e.charCodeAt(r+2)],c=p1[e.charCodeAt(r+3)],u[i++]=a<<2|o>>4,u[i++]=(o&15)<<4|s>>2,u[i++]=(s&3)<<6|c&63;return l},h1=typeof ArrayBuffer==`function`,g1=(e,t)=>{if(typeof e!=`string`)return{type:`message`,data:v1(e,t)};let n=e.charAt(0);return n===`b`?{type:`message`,data:_1(e.substring(1),t)}:n1[n]?e.length>1?{type:n1[n],data:e.substring(1)}:{type:n1[n]}:r1},_1=(e,t)=>h1?v1(m1(e),t):{base64:!0,data:e},v1=(e,t)=>{switch(t){case`blob`:return e instanceof Blob?e:new Blob([e]);default:return e instanceof ArrayBuffer?e:e.buffer}},y1=``,b1=(e,t)=>{let n=e.length,r=Array(n),i=0;e.forEach((e,a)=>{s1(e,!1,e=>{r[a]=e,++i===n&&t(r.join(y1))})})},x1=(e,t)=>{let n=e.split(y1),r=[];for(let e=0;e<n.length;e++){let i=g1(n[e],t);if(r.push(i),i.type===`error`)break}return r};function ire(){return new TransformStream({transform(e,t){d1(e,n=>{let r=n.length,i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);let e=new DataView(i.buffer);e.setUint8(0,126),e.setUint16(1,r)}else{i=new Uint8Array(9);let e=new DataView(i.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!=`string`&&(i[0]|=128),t.enqueue(i),t.enqueue(n)})}})}var S1;function C1(e){return e.reduce((e,t)=>e+t.length,0)}function w1(e,t){if(e[0].length===t)return e.shift();let n=new Uint8Array(t),r=0;for(let i=0;i<t;i++)n[i]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function T1(e,t){S1||=new TextDecoder;let n=[],r=0,i=-1,a=!1;return new TransformStream({transform(o,s){for(n.push(o);;){if(r===0){if(C1(n)<1)break;let e=w1(n,1);a=(e[0]&128)==128,i=e[0]&127,r=i<126?3:i===126?1:2}else if(r===1){if(C1(n)<2)break;let e=w1(n,2);i=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),r=3}else if(r===2){if(C1(n)<8)break;let e=w1(n,8),t=new DataView(e.buffer,e.byteOffset,e.length),a=t.getUint32(0);if(a>2**21-1){s.enqueue(r1);break}i=a*2**32+t.getUint32(4),r=3}else{if(C1(n)<i)break;let e=w1(n,i);s.enqueue(g1(a?e:S1.decode(e),t)),r=0}if(i===0||i>e){s.enqueue(r1);break}}}})}function E1(e){if(e)return D1(e)}function D1(e){for(var t in E1.prototype)e[t]=E1.prototype[t];return e}E1.prototype.on=E1.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[`$`+e]=this._callbacks[`$`+e]||[]).push(t),this},E1.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},E1.prototype.off=E1.prototype.removeListener=E1.prototype.removeAllListeners=E1.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks[`$`+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks[`$`+e],this;for(var r,i=0;i<n.length;i++)if(r=n[i],r===t||r.fn===t){n.splice(i,1);break}return n.length===0&&delete this._callbacks[`$`+e],this},E1.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=Array(arguments.length-1),n=this._callbacks[`$`+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,t)}return this},E1.prototype.emitReserved=E1.prototype.emit,E1.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[`$`+e]||[]},E1.prototype.hasListeners=function(e){return!!this.listeners(e).length};var O1=typeof Promise==`function`&&typeof Promise.resolve==`function`?e=>Promise.resolve().then(e):(e,t)=>t(e,0),k1=typeof self<`u`?self:typeof window<`u`?window:Function(`return this`)(),A1=`arraybuffer`;function j1(e,...t){return t.reduce((t,n)=>(e.hasOwnProperty(n)&&(t[n]=e[n]),t),{})}var M1=k1.setTimeout,N1=k1.clearTimeout;function P1(e,t){t.useNativeTimers?(e.setTimeoutFn=M1.bind(k1),e.clearTimeoutFn=N1.bind(k1)):(e.setTimeoutFn=k1.setTimeout.bind(k1),e.clearTimeoutFn=k1.clearTimeout.bind(k1))}var F1=1.33;function I1(e){return typeof e==`string`?L1(e):Math.ceil((e.byteLength||e.size)*F1)}function L1(e){let t=0,n=0;for(let r=0,i=e.length;r<i;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function R1(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function z1(e){let t=``;for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+=`&`),t+=encodeURIComponent(n)+`=`+encodeURIComponent(e[n]));return t}function B1(e){let t={},n=e.split(`&`);for(let e=0,r=n.length;e<r;e++){let r=n[e].split(`=`);t[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return t}var V1=class extends Error{constructor(e,t,n){super(e),this.description=t,this.context=n,this.type=`TransportError`}},H1=class extends E1{constructor(e){super(),this.writable=!1,P1(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,n){return super.emitReserved(`error`,new V1(e,t,n)),this}open(){return this.readyState=`opening`,this.doOpen(),this}close(){return(this.readyState===`opening`||this.readyState===`open`)&&(this.doClose(),this.onClose()),this}send(e){this.readyState===`open`&&this.write(e)}onOpen(){this.readyState=`open`,this.writable=!0,super.emitReserved(`open`)}onData(e){let t=g1(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved(`packet`,e)}onClose(e){this.readyState=`closed`,super.emitReserved(`close`,e)}pause(e){}createUri(e,t={}){return e+`://`+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){let e=this.opts.hostname;return e.indexOf(`:`)===-1?e:`[`+e+`]`}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?`:`+this.opts.port:``}_query(e){let t=z1(e);return t.length?`?`+t:``}},U1=class extends H1{constructor(){super(...arguments),this._polling=!1}get name(){return`polling`}doOpen(){this._poll()}pause(e){this.readyState=`pausing`;let t=()=>{this.readyState=`paused`,e()};if(this._polling||!this.writable){let e=0;this._polling&&(e++,this.once(`pollComplete`,function(){--e||t()})),this.writable||(e++,this.once(`drain`,function(){--e||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved(`poll`)}onData(e){x1(e,this.socket.binaryType).forEach(e=>{if(this.readyState===`opening`&&e.type===`open`&&this.onOpen(),e.type===`close`)return this.onClose({description:`transport closed by the server`}),!1;this.onPacket(e)}),this.readyState!==`closed`&&(this._polling=!1,this.emitReserved(`pollComplete`),this.readyState===`open`&&this._poll())}doClose(){let e=()=>{this.write([{type:`close`}])};this.readyState===`open`?e():this.once(`open`,e)}write(e){this.writable=!1,b1(e,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved(`drain`)})})}uri(){let e=this.opts.secure?`https`:`http`,t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=R1()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}},W1=!1;try{W1=typeof XMLHttpRequest<`u`&&`withCredentials`in new XMLHttpRequest}catch{}var G1=W1;function K1(){}var q1=class extends U1{constructor(e){if(super(e),typeof location<`u`){let t=location.protocol===`https:`,n=location.port;n||=t?`443`:`80`,this.xd=typeof location<`u`&&e.hostname!==location.hostname||n!==e.port}}doWrite(e,t){let n=this.request({method:`POST`,data:e});n.on(`success`,t),n.on(`error`,(e,t)=>{this.onError(`xhr post error`,e,t)})}doPoll(){let e=this.request();e.on(`data`,this.onData.bind(this)),e.on(`error`,(e,t)=>{this.onError(`xhr poll error`,e,t)}),this.pollXhr=e}},J1=class e extends E1{constructor(e,t,n){super(),this.createRequest=e,P1(this,n),this._opts=n,this._method=n.method||`GET`,this._uri=t,this._data=n.data===void 0?null:n.data,this._create()}_create(){var t;let n=j1(this._opts,`agent`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`autoUnref`);n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let e in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(e)&&r.setRequestHeader(e,this._opts.extraHeaders[e])}}catch{}if(this._method===`POST`)try{r.setRequestHeader(`Content-type`,`text/plain;charset=UTF-8`)}catch{}try{r.setRequestHeader(`Accept`,`*/*`)}catch{}(t=this._opts.cookieJar)==null||t.addCookies(r),`withCredentials`in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var e;r.readyState===3&&((e=this._opts.cookieJar)==null||e.parseCookies(r.getResponseHeader(`set-cookie`))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status==`number`?r.status:0)},0))},r.send(this._data)}catch(e){this.setTimeoutFn(()=>{this._onError(e)},0);return}typeof document<`u`&&(this._index=e.requestsCount++,e.requests[this._index]=this)}_onError(e){this.emitReserved(`error`,e,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(this._xhr===void 0||this._xhr===null)){if(this._xhr.onreadystatechange=K1,t)try{this._xhr.abort()}catch{}typeof document<`u`&&delete e.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved(`data`,e),this.emitReserved(`success`),this._cleanup())}abort(){this._cleanup()}};if(J1.requestsCount=0,J1.requests={},typeof document<`u`){if(typeof attachEvent==`function`)attachEvent(`onunload`,Y1);else if(typeof addEventListener==`function`){let e=`onpagehide`in k1?`pagehide`:`unload`;addEventListener(e,Y1,!1)}}function Y1(){for(let e in J1.requests)J1.requests.hasOwnProperty(e)&&J1.requests[e].abort()}var X1=(function(){let e=Q1({xdomain:!1});return e&&e.responseType!==null})(),Z1=class extends q1{constructor(e){super(e);let t=e&&e.forceBase64;this.supportsBinary=X1&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new J1(Q1,this.uri(),e)}};function Q1(e){let t=e.xdomain;try{if(typeof XMLHttpRequest<`u`&&(!t||G1))return new XMLHttpRequest}catch{}if(!t)try{return new k1[[`Active`,`Object`].join(`X`)](`Microsoft.XMLHTTP`)}catch{}}var $1=typeof navigator<`u`&&typeof navigator.product==`string`&&navigator.product.toLowerCase()===`reactnative`,e0=class extends H1{get name(){return`websocket`}doOpen(){let e=this.uri(),t=this.opts.protocols,n=$1?{}:j1(this.opts,`agent`,`perMessageDeflate`,`pfx`,`key`,`passphrase`,`cert`,`ca`,`ciphers`,`rejectUnauthorized`,`localAddress`,`protocolVersion`,`origin`,`maxPayload`,`family`,`checkServerIdentity`);this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,n)}catch(e){return this.emitReserved(`error`,e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:`websocket connection closed`,context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError(`websocket error`,e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;s1(n,this.supportsBinary,e=>{try{this.doWrite(n,e)}catch{}r&&O1(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){this.ws!==void 0&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?`wss`:`ws`,t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=R1()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},t0=k1.WebSocket||k1.MozWebSocket,n0={websocket:class extends e0{createSocket(e,t,n){return $1?new t0(e,t,n):t?new t0(e,t):new t0(e)}doWrite(e,t){this.ws.send(t)}},webtransport:class extends H1{get name(){return`webtransport`}doOpen(){try{this._transport=new WebTransport(this.createUri(`https`),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved(`error`,e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError(`webtransport error`,e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let t=T1(2**53-1,this.socket.binaryType),n=e.readable.pipeThrough(t).getReader(),r=ire();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();let i=()=>{n.read().then(({done:e,value:t})=>{e||(this.onPacket(t),i())}).catch(e=>{})};i();let a={type:`open`};this.query.sid&&(a.data=`{"sid":"${this.query.sid}"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){let n=e[t],r=t===e.length-1;this._writer.write(n).then(()=>{r&&O1(()=>{this.writable=!0,this.emitReserved(`drain`)},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)==null||e.close()}},polling:Z1},r0=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,i0=[`source`,`protocol`,`authority`,`userInfo`,`user`,`password`,`host`,`port`,`relative`,`path`,`directory`,`file`,`query`,`anchor`];function a0(e){if(e.length>8e3)throw`URI too long`;let t=e,n=e.indexOf(`[`),r=e.indexOf(`]`);n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,`;`)+e.substring(r,e.length));let i=r0.exec(e||``),a={},o=14;for(;o--;)a[i0[o]]=i[o]||``;return n!=-1&&r!=-1&&(a.source=t,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,`:`),a.authority=a.authority.replace(`[`,``).replace(`]`,``).replace(/;/g,`:`),a.ipv6uri=!0),a.pathNames=o0(a,a.path),a.queryKey=s0(a,a.query),a}function o0(e,t){let n=t.replace(/\/{2,9}/g,`/`).split(`/`);return(t.slice(0,1)==`/`||t.length===0)&&n.splice(0,1),t.slice(-1)==`/`&&n.splice(n.length-1,1),n}function s0(e,t){let n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(e,t,r){t&&(n[t]=r)}),n}var c0=typeof addEventListener==`function`&&typeof removeEventListener==`function`,l0=[];c0&&addEventListener(`offline`,()=>{l0.forEach(e=>e())},!1);var u0=class e extends E1{constructor(e,t){if(super(),this.binaryType=A1,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e==`object`&&(t=e,e=null),e){let n=a0(e);t.hostname=n.host,t.secure=n.protocol===`https`||n.protocol===`wss`,t.port=n.port,n.query&&(t.query=n.query)}else t.host&&(t.hostname=a0(t.host).host);P1(this,t),this.secure=t.secure==null?typeof location<`u`&&location.protocol===`https:`:t.secure,t.hostname&&!t.port&&(t.port=this.secure?`443`:`80`),this.hostname=t.hostname||(typeof location<`u`?location.hostname:`localhost`),this.port=t.port||(typeof location<`u`&&location.port?location.port:this.secure?`443`:`80`),this.transports=[],this._transportsByName={},t.transports.forEach(e=>{let t=e.prototype.name;this.transports.push(t),this._transportsByName[t]=e}),this.opts=Object.assign({path:`/engine.io`,agent:!1,withCredentials:!1,upgrade:!0,timestampParam:`t`,rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,``)+(this.opts.addTrailingSlash?`/`:``),typeof this.opts.query==`string`&&(this.opts.query=B1(this.opts.query)),c0&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener(`beforeunload`,this._beforeunloadEventListener,!1)),this.hostname!==`localhost`&&(this._offlineEventListener=()=>{this._onClose(`transport close`,{description:`network connection lost`})},l0.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){let t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);let n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](n)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved(`error`,`No transports available`)},0);return}let t=this.opts.rememberUpgrade&&e.priorWebsocketSuccess&&this.transports.indexOf(`websocket`)!==-1?`websocket`:this.transports[0];this.readyState=`opening`;let n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on(`drain`,this._onDrain.bind(this)).on(`packet`,this._onPacket.bind(this)).on(`error`,this._onError.bind(this)).on(`close`,e=>this._onClose(`transport close`,e))}onOpen(){this.readyState=`open`,e.priorWebsocketSuccess=this.transport.name===`websocket`,this.emitReserved(`open`),this.flush()}_onPacket(e){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`)switch(this.emitReserved(`packet`,e),this.emitReserved(`heartbeat`),e.type){case`open`:this.onHandshake(JSON.parse(e.data));break;case`ping`:this._sendPacket(`pong`),this.emitReserved(`ping`),this.emitReserved(`pong`),this._resetPingTimeout();break;case`error`:let t=Error(`server error`);t.code=e.data,this._onError(t);break;case`message`:this.emitReserved(`data`,e.data),this.emitReserved(`message`,e.data);break}}onHandshake(e){this.emitReserved(`handshake`,e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!==`closed`&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose(`ping timeout`)},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved(`drain`):this.flush()}flush(){if(this.readyState!==`closed`&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved(`flush`)}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name===`polling`&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let t=0;t<this.writeBuffer.length;t++){let n=this.writeBuffer[t].data;if(n&&(e+=I1(n)),t>0&&e>this._maxPayload)return this.writeBuffer.slice(0,t);e+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,O1(()=>{this._onClose(`ping timeout`)},this.setTimeoutFn)),e}write(e,t,n){return this._sendPacket(`message`,e,t,n),this}send(e,t,n){return this._sendPacket(`message`,e,t,n),this}_sendPacket(e,t,n,r){if(typeof t==`function`&&(r=t,t=void 0),typeof n==`function`&&(r=n,n=null),this.readyState===`closing`||this.readyState===`closed`)return;n||={},n.compress=!1!==n.compress;let i={type:e,data:t,options:n};this.emitReserved(`packetCreate`,i),this.writeBuffer.push(i),r&&this.once(`flush`,r),this.flush()}close(){let e=()=>{this._onClose(`forced close`),this.transport.close()},t=()=>{this.off(`upgrade`,t),this.off(`upgradeError`,t),e()},n=()=>{this.once(`upgrade`,t),this.once(`upgradeError`,t)};return(this.readyState===`opening`||this.readyState===`open`)&&(this.readyState=`closing`,this.writeBuffer.length?this.once(`drain`,()=>{this.upgrading?n():e()}):this.upgrading?n():e()),this}_onError(t){if(e.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState===`opening`)return this.transports.shift(),this._open();this.emitReserved(`error`,t),this._onClose(`transport error`,t)}_onClose(e,t){if(this.readyState===`opening`||this.readyState===`open`||this.readyState===`closing`){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners(`close`),this.transport.close(),this.transport.removeAllListeners(),c0&&(this._beforeunloadEventListener&&removeEventListener(`beforeunload`,this._beforeunloadEventListener,!1),this._offlineEventListener)){let e=l0.indexOf(this._offlineEventListener);e!==-1&&l0.splice(e,1)}this.readyState=`closed`,this.id=null,this.emitReserved(`close`,e,t),this.writeBuffer=[],this._prevBufferLen=0}}};u0.protocol=4;var d0=class extends u0{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState===`open`&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),n=!1;u0.priorWebsocketSuccess=!1;let r=()=>{n||(t.send([{type:`ping`,data:`probe`}]),t.once(`packet`,e=>{if(!n)if(e.type===`pong`&&e.data===`probe`){if(this.upgrading=!0,this.emitReserved(`upgrading`,t),!t)return;u0.priorWebsocketSuccess=t.name===`websocket`,this.transport.pause(()=>{n||this.readyState!==`closed`&&(l(),this.setTransport(t),t.send([{type:`upgrade`}]),this.emitReserved(`upgrade`,t),t=null,this.upgrading=!1,this.flush())})}else{let e=Error(`probe error`);e.transport=t.name,this.emitReserved(`upgradeError`,e)}}))};function i(){n||(n=!0,l(),t.close(),t=null)}let a=e=>{let n=Error(`probe error: `+e);n.transport=t.name,i(),this.emitReserved(`upgradeError`,n)};function o(){a(`transport closed`)}function s(){a(`socket closed`)}function c(e){t&&e.name!==t.name&&i()}let l=()=>{t.removeListener(`open`,r),t.removeListener(`error`,a),t.removeListener(`close`,o),this.off(`close`,s),this.off(`upgrading`,c)};t.once(`open`,r),t.once(`error`,a),t.once(`close`,o),this.once(`close`,s),this.once(`upgrading`,c),this._upgrades.indexOf(`webtransport`)!==-1&&e!==`webtransport`?this.setTimeoutFn(()=>{n||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let t=[];for(let n=0;n<e.length;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}},f0=class extends d0{constructor(e,t={}){let n=typeof e==`object`?e:t;(!n.transports||n.transports&&typeof n.transports[0]==`string`)&&(n.transports=(n.transports||[`polling`,`websocket`,`webtransport`]).map(e=>n0[e]).filter(e=>!!e)),super(e,n)}};f0.protocol;function p0(e,t=``,n){let r=e;n||=typeof location<`u`&&location,e??=n.protocol+`//`+n.host,typeof e==`string`&&(e.charAt(0)===`/`&&(e=e.charAt(1)===`/`?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=n===void 0?`https://`+e:n.protocol+`//`+e),r=a0(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port=`80`:/^(http|ws)s$/.test(r.protocol)&&(r.port=`443`)),r.path=r.path||`/`;let i=r.host.indexOf(`:`)===-1?r.host:`[`+r.host+`]`;return r.id=r.protocol+`://`+i+`:`+r.port+t,r.href=r.protocol+`://`+i+(n&&n.port===r.port?``:`:`+r.port),r}var m0=typeof ArrayBuffer==`function`,h0=e=>typeof ArrayBuffer.isView==`function`?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,g0=Object.prototype.toString,_0=typeof Blob==`function`||typeof Blob<`u`&&g0.call(Blob)===`[object BlobConstructor]`,v0=typeof File==`function`||typeof File<`u`&&g0.call(File)===`[object FileConstructor]`;function y0(e){return m0&&(e instanceof ArrayBuffer||h0(e))||_0&&e instanceof Blob||v0&&e instanceof File}function b0(e,t){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e)){for(let t=0,n=e.length;t<n;t++)if(b0(e[t]))return!0;return!1}if(y0(e))return!0;if(e.toJSON&&typeof e.toJSON==`function`&&arguments.length===1)return b0(e.toJSON(),!0);for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&b0(e[t]))return!0;return!1}function x0(e){let t=[],n=e.data,r=e;return r.data=S0(n,t),r.attachments=t.length,{packet:r,buffers:t}}function S0(e,t){if(!e)return e;if(y0(e)){let n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=S0(e[r],t);return n}else if(typeof e==`object`&&!(e instanceof Date)){let n={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=S0(e[r],t));return n}return e}function C0(e,t){return e.data=w0(e.data,t),delete e.attachments,e}function w0(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num==`number`&&e.num>=0&&e.num<t.length)return t[e.num];throw Error(`illegal attachments`)}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=w0(e[n],t);else if(typeof e==`object`)for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=w0(e[n],t));return e}var T0=r({Decoder:()=>k0,Encoder:()=>O0,PacketType:()=>D0,isPacketValid:()=>I0,protocol:()=>5}),E0=[`connect`,`connect_error`,`disconnect`,`disconnecting`,`newListener`,`removeListener`],D0;(function(e){e[e.CONNECT=0]=`CONNECT`,e[e.DISCONNECT=1]=`DISCONNECT`,e[e.EVENT=2]=`EVENT`,e[e.ACK=3]=`ACK`,e[e.CONNECT_ERROR=4]=`CONNECT_ERROR`,e[e.BINARY_EVENT=5]=`BINARY_EVENT`,e[e.BINARY_ACK=6]=`BINARY_ACK`})(D0||={});var O0=class{constructor(e){this.replacer=e}encode(e){return(e.type===D0.EVENT||e.type===D0.ACK)&&b0(e)?this.encodeAsBinary({type:e.type===D0.EVENT?D0.BINARY_EVENT:D0.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=``+e.type;return(e.type===D0.BINARY_EVENT||e.type===D0.BINARY_ACK)&&(t+=e.attachments+`-`),e.nsp&&e.nsp!==`/`&&(t+=e.nsp+`,`),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){let t=x0(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}},k0=class e extends E1{constructor(e){super(),this.opts=Object.assign({reviver:void 0,maxAttachments:10},typeof e==`function`?{reviver:e}:e)}add(e){let t;if(typeof e==`string`){if(this.reconstructor)throw Error(`got plaintext data when reconstructing a packet`);t=this.decodeString(e);let n=t.type===D0.BINARY_EVENT;n||t.type===D0.BINARY_ACK?(t.type=n?D0.EVENT:D0.ACK,this.reconstructor=new A0(t),t.attachments===0&&super.emitReserved(`decoded`,t)):super.emitReserved(`decoded`,t)}else if(y0(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved(`decoded`,t));else throw Error(`got binary data when not reconstructing a packet`);else throw Error(`Unknown type: `+e)}decodeString(t){let n=0,r={type:Number(t.charAt(0))};if(D0[r.type]===void 0)throw Error(`unknown packet type `+r.type);if(r.type===D0.BINARY_EVENT||r.type===D0.BINARY_ACK){let e=n+1;for(;t.charAt(++n)!==`-`&&n!=t.length;);let i=t.substring(e,n);if(i!=Number(i)||t.charAt(n)!==`-`)throw Error(`Illegal attachments`);let a=Number(i);if(!M0(a)||a<0)throw Error(`Illegal attachments`);if(a>this.opts.maxAttachments)throw Error(`too many attachments`);r.attachments=a}if(t.charAt(n+1)===`/`){let e=n+1;for(;++n&&!(t.charAt(n)===`,`||n===t.length););r.nsp=t.substring(e,n)}else r.nsp=`/`;let i=t.charAt(n+1);if(i!==``&&Number(i)==i){let e=n+1;for(;++n;){let e=t.charAt(n);if(e==null||Number(e)!=e){--n;break}if(n===t.length)break}r.id=Number(t.substring(e,n+1))}if(t.charAt(++n)){let i=this.tryParse(t.substr(n));if(e.isPayloadValid(r.type,i))r.data=i;else throw Error(`invalid payload`)}return r}tryParse(e){try{return JSON.parse(e,this.opts.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case D0.CONNECT:return P0(t);case D0.DISCONNECT:return t===void 0;case D0.CONNECT_ERROR:return typeof t==`string`||P0(t);case D0.EVENT:case D0.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&E0.indexOf(t[0])===-1);case D0.ACK:case D0.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&=(this.reconstructor.finishedReconstruction(),null)}},A0=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let e=C0(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};function j0(e){return typeof e==`string`}var M0=Number.isInteger||function(e){return typeof e==`number`&&isFinite(e)&&Math.floor(e)===e};function N0(e){return e===void 0||M0(e)}function P0(e){return Object.prototype.toString.call(e)===`[object Object]`}function F0(e,t){switch(e){case D0.CONNECT:return t===void 0||P0(t);case D0.DISCONNECT:return t===void 0;case D0.EVENT:return Array.isArray(t)&&(typeof t[0]==`number`||typeof t[0]==`string`&&E0.indexOf(t[0])===-1);case D0.ACK:return Array.isArray(t);case D0.CONNECT_ERROR:return typeof t==`string`||P0(t);default:return!1}}function I0(e){return j0(e.nsp)&&N0(e.id)&&F0(e.type,e.data)}function L0(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var R0=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),z0=class extends E1{constructor(e,t,n){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,n&&n.auth&&(this.auth=n.auth),this._opts=Object.assign({},n),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let e=this.io;this.subs=[L0(e,`open`,this.onopen.bind(this)),L0(e,`packet`,this.onpacket.bind(this)),L0(e,`error`,this.onerror.bind(this)),L0(e,`close`,this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState===`open`&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift(`message`),this.emit.apply(this,e),this}emit(e,...t){if(R0.hasOwnProperty(e))throw Error(`"`+e.toString()+`" is a reserved event name`);if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;let n={type:D0.EVENT,data:t};if(n.options={},n.options.compress=this.flags.compress!==!1,typeof t[t.length-1]==`function`){let e=this.ids++,r=t.pop();this._registerAckCallback(e,r),n.id=e}let r=this.io.engine?.transport?.writable,i=this.connected&&!this.io.engine?._hasPingExpired();return this.flags.volatile&&!r||(i?(this.notifyOutgoingListeners(n),this.packet(n)):this.sendBuffer.push(n)),this.flags={},this}_registerAckCallback(e,t){let n=this.flags.timeout??this._opts.ackTimeout;if(n===void 0){this.acks[e]=t;return}let r=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let t=0;t<this.sendBuffer.length;t++)this.sendBuffer[t].id===e&&this.sendBuffer.splice(t,1);t.call(this,Error(`operation has timed out`))},n),i=(...e)=>{this.io.clearTimeoutFn(r),t.apply(this,e)};i.withError=!0,this.acks[e]=i}emitWithAck(e,...t){return new Promise((n,r)=>{let i=(e,t)=>e?r(e):n(t);i.withError=!0,t.push(i),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]==`function`&&(t=e.pop());let n={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((e,...r)=>(this._queue[0],e===null?(this._queue.shift(),t&&t(null,...r)):n.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(e)),n.pending=!1,this._drainQueue())),this._queue.push(n),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;let t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth==`function`?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:D0.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved(`connect_error`,e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved(`disconnect`,e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(t=>String(t.id)===e)){let t=this.acks[e];delete this.acks[e],t.withError&&t.call(this,Error(`socket has been disconnected`))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case D0.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved(`connect_error`,Error(`It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)`));break;case D0.EVENT:case D0.BINARY_EVENT:this.onevent(e);break;case D0.ACK:case D0.BINARY_ACK:this.onack(e);break;case D0.DISCONNECT:this.ondisconnect();break;case D0.CONNECT_ERROR:this.destroy();let t=Error(e.data.message);t.data=e.data.data,this.emitReserved(`connect_error`,t);break}}onevent(e){let t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let t=this._anyListeners.slice();for(let n of t)n.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]==`string`&&(this._lastOffset=e[e.length-1])}ack(e){let t=this,n=!1;return function(...r){n||(n=!0,t.packet({type:D0.ACK,id:e,data:r}))}}onack(e){let t=this.acks[e.id];typeof t==`function`&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved(`connect`)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose(`io server disconnect`)}destroy(){this.subs&&=(this.subs.forEach(e=>e()),void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:D0.DISCONNECT}),this.destroy(),this.connected&&this.onclose(`io client disconnect`),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let t=this._anyListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let t=this._anyOutgoingListeners;for(let n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let t=this._anyOutgoingListeners.slice();for(let n of t)n.apply(this,e.data)}}};function B0(e){e||={},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}B0.prototype.duration=function(){var e=this.ms*this.factor**+ this.attempts++;if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0},B0.prototype.reset=function(){this.attempts=0},B0.prototype.setMin=function(e){this.ms=e},B0.prototype.setMax=function(e){this.max=e},B0.prototype.setJitter=function(e){this.jitter=e};var V0=class extends E1{constructor(e,t){super(),this.nsps={},this.subs=[],e&&typeof e==`object`&&(t=e,e=void 0),t||={},t.path=t.path||`/socket.io`,this.opts=t,P1(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor??.5),this.backoff=new B0({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState=`closed`,this.uri=e;let n=t.parser||T0;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)==null||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)==null||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)==null||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf(`open`))return this;this.engine=new f0(this.uri,this.opts);let t=this.engine,n=this;this._readyState=`opening`,this.skipReconnect=!1;let r=L0(t,`open`,function(){n.onopen(),e&&e()}),i=t=>{this.cleanup(),this._readyState=`closed`,this.emitReserved(`error`,t),e?e(t):this.maybeReconnectOnOpen()},a=L0(t,`error`,i);if(!1!==this._timeout){let e=this._timeout,n=this.setTimeoutFn(()=>{r(),i(Error(`timeout`)),t.close()},e);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}return this.subs.push(r),this.subs.push(a),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState=`open`,this.emitReserved(`open`);let e=this.engine;this.subs.push(L0(e,`ping`,this.onping.bind(this)),L0(e,`data`,this.ondata.bind(this)),L0(e,`error`,this.onerror.bind(this)),L0(e,`close`,this.onclose.bind(this)),L0(this.decoder,`decoded`,this.ondecoded.bind(this)))}onping(){this.emitReserved(`ping`)}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose(`parse error`,e)}}ondecoded(e){O1(()=>{this.emitReserved(`packet`,e)},this.setTimeoutFn)}onerror(e){this.emitReserved(`error`,e)}socket(e,t){let n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new z0(this,e,t),this.nsps[e]=n),n}_destroy(e){let t=Object.keys(this.nsps);for(let e of t)if(this.nsps[e].active)return;this._close()}_packet(e){let t=this.encoder.encode(e);for(let n=0;n<t.length;n++)this.engine.write(t[n],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose(`forced close`)}disconnect(){return this._close()}onclose(e,t){var n;this.cleanup(),(n=this.engine)==null||n.close(),this.backoff.reset(),this._readyState=`closed`,this.emitReserved(`close`,e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved(`reconnect_failed`),this._reconnecting=!1;else{let t=this.backoff.duration();this._reconnecting=!0;let n=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved(`reconnect_attempt`,e.backoff.attempts),!e.skipReconnect&&e.open(t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved(`reconnect_error`,t)):e.onreconnect()}))},t);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved(`reconnect`,e)}},H0={};function U0(e,t){typeof e==`object`&&(t=e,e=void 0),t||={};let n=p0(e,t.path||`/socket.io`),r=n.source,i=n.id,a=n.path,o=H0[i]&&a in H0[i].nsps,s=t.forceNew||t[`force new connection`]||!1===t.multiplex||o,c;return s?c=new V0(r,t):(H0[i]||(H0[i]=new V0(r,t)),c=H0[i]),n.query&&!t.query&&(t.query=n.queryKey),c.socket(n.path,t)}Object.assign(U0,{Manager:V0,Socket:z0,io:U0,connect:U0});var W0=((e=Ge)=>U0(e))(),G0=({label:e,onClick:t,children:n})=>(0,Y.jsx)(Z,{type:`button`,"aria-label":e,onClick:t,variant:`outline`,size:`icon-sm`,className:`bg-secondary/60`,children:n}),K0=({exitCode:e,signal:t})=>t>0?`[archon] Shell exited with signal ${t}`:`[archon] Shell exited with code ${e}`,q0=({createSession:e,isExpanded:t,isVisible:n,onClose:r,onToggleExpanded:i,className:a=``,ariaLabel:o=`Terminal`,title:s=`Terminal`,closeLabel:c=`Close terminal`,headerMeta:l})=>{let u=(0,p.useRef)(null),d=(0,p.useRef)(null),f=(0,p.useRef)(null),m=(0,p.useRef)(null),h=(0,p.useRef)(e),g=(0,p.useRef)(!1),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(!0);return(0,p.useEffect)(()=>{h.current=e},[e]),(0,p.useEffect)(()=>{if(!u.current)return;let e=new e1({cursorBlink:!0,fontFamily:`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace`,fontSize:13,theme:{background:`#0b0d14`,foreground:`#d8deef`,cursor:`#c4b5fd`}}),t=new IG,n=null,r=!1;e.loadAddon(t),e.open(u.current),d.current=e,f.current=t;let i=()=>{let e=m.current;!e||g.current||(g.current=!0,fP(e))};window.addEventListener(`pagehide`,i),window.addEventListener(`beforeunload`,i);let a=()=>{m.current&&W0.emit(`terminal:resize`,{sessionId:m.current,cols:e.cols,rows:e.rows})},o=()=>{!u.current||r||(t.fit(),a())},s=t=>{t.sessionId===m.current&&(b(!1),window.setTimeout(()=>{o(),e.focus()},0))},c=t=>{t.sessionId===m.current&&(b(!1),e.write(t.data))},l=t=>{t.sessionId===m.current&&(e.writeln(``),e.writeln(K0(t)))},p=t=>{t.sessionId&&t.sessionId!==m.current||(b(!1),v(t.message),e.writeln(``),e.writeln(`[archon] ${t.message}`))};W0.on(`terminal:ready`,s),W0.on(`terminal:data`,c),W0.on(`terminal:exit`,l),W0.on(`terminal:error`,p);let _=e.onData(e=>{m.current&&W0.emit(`terminal:input`,{sessionId:m.current,input:e})});return typeof ResizeObserver==`function`&&(n=new ResizeObserver(()=>{o()}),n.observe(u.current)),window.setTimeout(()=>{o()},0),h.current().then(e=>{r||(m.current=e.session_id,W0.emit(`terminal:join`,{sessionId:e.session_id}))}).catch(t=>{if(r)return;b(!1);let n=t instanceof Error?t.message:`Unable to open the terminal right now.`;v(n),e.writeln(``),e.writeln(`[archon] ${n}`)}),()=>{r=!0,window.removeEventListener(`pagehide`,i),window.removeEventListener(`beforeunload`,i),m.current&&(g.current||W0.emit(`terminal:destroy`,{sessionId:m.current})),n?.disconnect(),_.dispose(),W0.off(`terminal:ready`,s),W0.off(`terminal:data`,c),W0.off(`terminal:exit`,l),W0.off(`terminal:error`,p),e.dispose(),d.current=null,f.current=null,m.current=null}},[]),(0,p.useEffect)(()=>{if(!n)return;let e=window.setTimeout(()=>{f.current?.fit(),d.current&&m.current&&(W0.emit(`terminal:resize`,{sessionId:m.current,cols:d.current.cols,rows:d.current.rows}),d.current.focus())},0);return()=>{window.clearTimeout(e)}},[t,n]),(0,Y.jsxs)(ub,{"aria-label":o,"data-terminal-pane":`true`,className:`flex min-h-0 flex-1 flex-col gap-0 overflow-hidden rounded-xl border-border bg-[#0c1119] ${a}`.trim(),children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-border bg-card/80 px-3 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded-lg bg-primary/12 text-primary`,children:(0,Y.jsx)(zv,{className:`h-4 w-4`})}),(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:s}),l&&(0,Y.jsx)(`div`,{className:`mt-1 min-w-0 text-xs text-muted-foreground`,children:l})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[y&&!_&&(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Opening terminal...`}),_&&(0,Y.jsx)(`span`,{className:`max-w-56 truncate text-xs text-red-300`,children:_}),(0,Y.jsx)(G0,{label:t?`Collapse terminal`:`Expand terminal`,onClick:i,children:t?(0,Y.jsx)(fS,{className:`h-4 w-4`}):(0,Y.jsx)(pS,{className:`h-4 w-4`})}),(0,Y.jsx)(G0,{label:c,onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]})]}),(0,Y.jsx)(`div`,{ref:u,"data-testid":`terminal-viewport`,onClick:()=>d.current?.focus(),className:`min-h-0 flex-1 overflow-hidden bg-[#0b0d14] pb-4`})]})},J0=({actions:e,activeAction:t=null,disableWhenActive:n=!1,className:r,heading:i,headingClassName:a,actionsClassName:o,showDisabledReason:s=!1,disabledReasonClassName:c,error:l,errorClassName:u,leadingContent:d,renderAction:f})=>{if(e.length===0&&!d)return null;let p=e.find(e=>e.disabled&&e.disabledReason)?.disabledReason??null;return(0,Y.jsxs)(`div`,{className:r,children:[i&&(0,Y.jsx)(`div`,{className:a,children:i}),(0,Y.jsxs)(`div`,{className:o,children:[d,e.map(e=>{let r=t===e.id,i=e.disabled||n&&t!==null;return f({action:e,label:r?e.pendingLabel:e.label,disabled:i,title:e.disabledReason??e.title,ariaLabel:e.ariaLabel})})]}),s&&p&&(0,Y.jsx)(`p`,{className:c,children:p}),l&&(0,Y.jsx)(`p`,{className:u,children:l})]})},Y0=({id:e,label:t,pendingLabel:n,ariaLabel:r=t,title:i,disabled:a=!1,disabledReason:o=null})=>({id:e,label:t,pendingLabel:n,ariaLabel:r,title:i,disabled:a,disabledReason:o}),X0=(e,t={})=>{let{isEditing:n=!1,includePlanAdvance:r=!0,hideAdvanceWhenBlocked:i=!1,hasOpenBlockers:a=!1,canRun:o=!0,canStopRun:s=!0,canPauseBuild:c=!0,canResumeBuild:l=!0,runDisabled:u=!1,runDisabledReason:d,buildLabel:f=`Build`,reviewLabel:p=`Review`}=t,m=fN(e.state),h=m?CN(e,m):!1,g=wN(e),_=e.bundle?.branch??e.branch,v=e.has_worktree??!!_,y=e.worktree_bundle_id!==null,b=e.state===`plan`&&e.agent_status===`running`,x=d??(e.has_run_config===!1?`No run config is available for this project.`:null),S=[];return r&&e.state===`plan`&&!e.parked_at&&S.push(Y0({id:`build`,label:f,pendingLabel:`Building...`,ariaLabel:f,disabled:!h,disabledReason:g})),e.state===`build`&&!e.parked_at&&!(i&&a)&&S.push(Y0({id:`review`,label:p,pendingLabel:`Starting review...`,ariaLabel:p,disabled:!h,disabledReason:g})),_&&v&&!b&&!n&&!y&&e.is_running!==!0&&o&&S.push(Y0({id:`run`,label:`Run`,pendingLabel:`Starting run...`,ariaLabel:`Run`,disabled:u||!!x,disabledReason:x,title:u?x??`Stop the currently running ticket before starting another run.`:void 0})),_&&!n&&!y&&e.is_running===!0&&s&&S.push(Y0({id:`stop-run`,label:`Stop Run`,pendingLabel:`Stopping run...`,ariaLabel:`Stop Run`,title:`Stop the currently running ticket.`,disabled:!1,disabledReason:null})),!n&&hN(e)&&e.agent_status===`running`&&e.session_id&&c&&S.push(Y0({id:`pause-build`,label:`Pause Build`,pendingLabel:`Pausing build...`,ariaLabel:`Pause Build`,title:`Pause the build session. You can resume it later.`,disabled:!1,disabledReason:null})),!n&&hN(e)&&e.agent_status===`stopped`&&e.session_id&&l&&S.push(Y0({id:`resume-build`,label:`Resume`,pendingLabel:`Resuming build...`,ariaLabel:`Resume`,disabled:!1,disabledReason:null})),S},Z0=(e,t={})=>{let n=e.state===`plan`,r=e.bundle?.branch??e.branch,i=e.has_worktree??!!r;return{isPlan:n,hasWorktree:i,disabledReason:e.agent_status===`running`?n?`Wait for planning to finish before sending another message.`:`Wait for the current build to finish before sending a follow-up prompt.`:t.requireWorktree===!0&&!n&&!i?`Worktree not ready yet.`:null,heading:n?`Planning follow-up`:`Ticket follow-up`,description:n?`Ask the agent to refine this plan.`:`Send a follow-up prompt for this ticket.`,placeholder:n?`Ask the agent to refine this plan...`:`Send a follow-up for this ticket...`}},Q0=(e,t,n={})=>{let r=(e.tool??n.activeTool??`opencode`)===`opencode`||n.persistPlanSettings===!0,i=r&&t.model?t.model:null,a=r&&t.model&&t.variant?t.variant:null,o=r?t.skills:[],s=e.skills??[],c=o.length!==s.length||o.some((e,t)=>e!==s[t]);return{model:i,variant:a,skills:o,shouldPersist:r&&(i!==e.model||a!==e.variant||c)}},$0=(0,p.lazy)(()=>bU(()=>Promise.resolve().then(()=>l6).then(e=>({default:e.TicketChangesModal})),void 0)),e2=(0,p.lazy)(()=>bU(()=>import(`./TestsDialog-DR6zI8VO.js`).then(e=>({default:e.TestsDialog})),__vite__mapDeps([19,3]))),t2=`(min-width: 1280px)`,n2=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!0:window.matchMedia(e).matches,r2=e=>{let[t,n]=(0,p.useState)(()=>n2(e));return(0,p.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let t=window.matchMedia(e),r=()=>{n(t.matches)};return r(),t.addEventListener(`change`,r),()=>{t.removeEventListener(`change`,r)}},[e]),t},i2=({onClose:e})=>{let{t}=Ue(`common`);return(0,Y.jsx)(tb,{onClose:e,overlayClassName:`z-[70] bg-black/30 p-[5vh]`,panelClassName:`flex h-full w-full max-w-none items-center justify-center rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:(0,Y.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:t(`ticketModal.loadingDiff`)})})},a2=({ariaLabel:e,title:t,closeAriaLabel:n,className:r,showTopSpacer:i=!0,description:a,onClose:o,...s})=>(0,Y.jsxs)(`aside`,{className:`min-h-0 flex flex-col gap-3 overflow-hidden${r?` ${r}`:``}`,"aria-label":e,children:[i?(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:`h-9 shrink-0`}):null,(0,Y.jsx)(UW,{...s,header:({showThinkingControl:e})=>(0,Y.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,Y.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:t}),e]}),a?(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:a}):null]}),(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":n,onClick:o,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]})})]}),o2=(e,t)=>e?t.find(t=>t.id===e)?.label??e:null,s2=({ticket:e,allTickets:t=[],dependencies:n=[],bundles:r=[],projectTestCommands:i=[],showModelSelector:a=!1,activeTool:o=`opencode`,availableModels:s=[],availableSkills:c=[],projectBranchState:l=null,projectMemoryEnabled:u=!1,runDisabled:d=!1,runDisabledReason:f,onClose:m,onCreateBundle:h,onDeleteBundle:g,onRefreshBundles:_,onUpdate:v,onDeleteDependency:y,onAdvance:b,onBuildChain:x,onRun:S,onOpenIde:C,onStop:w,onStopBuild:T,onStopBuildChain:E,onResumeBuild:D,onFollowUp:O,onRequestTicketRefresh:k,onProjectMemorySuggestionsChanged:A,onViewSourceSpec:j})=>{let{t:M}=Ue(`common`),[N,P]=(0,p.useState)(null),[F,I]=(0,p.useState)(!1),[L,R]=(0,p.useState)(!1),[z,B]=(0,p.useState)(!1),[V,H]=(0,p.useState)(!1),[ee,U]=(0,p.useState)(!1),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(``),[ae,oe]=(0,p.useState)(`build`),[W,se]=(0,p.useState)(!1),[ce,le]=(0,p.useState)(!1),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(0),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(!1),[ve,ye]=(0,p.useState)(null),G=N??e,[be,xe]=(0,p.useState)(G.model??``),[Se,Ce]=(0,p.useState)(G.variant??``),[we,Te]=(0,p.useState)(G.skills??[]),[Ee,De]=(0,p.useState)(()=>o2(G.model,s)??`Agent`),Oe=(0,p.useRef)(G.id),ke=(0,p.useRef)(null),Ae=(0,p.useRef)(null),je=(0,p.useRef)(!1),Me=(0,p.useRef)(G.id),Ne=(0,p.useRef)(G.build_completed_at),Pe=r2(t2),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)({model:G.model,variant:G.variant,skills:G.skills??[]}),ze=G.state===`plan`,Be=ae===`plan`?`plan`:pN(G.state),Ve=ae===`plan`?M(`ticketModal.followUpPlanPlaceholder`):void 0,K=G.worktree_bundle_id!==null,He=ze&&G.agent_status===`running`,We=ze&&G.agent_status===`error`,Ge=ze&&!He||F,Ke=async e=>{let t=await kt(G.id,G.project_id,e);return P(t),v?.(t),_&&await _(),t},qe=async e=>{try{await Ke(e),m()}catch(e){Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}},Je=async e=>{try{if(await Ke(e),!b){m();return}await b(),m()}catch(e){Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}},q=async()=>{!b||lt?.disabled||(await b(),m())},Ye=e=>{if(e===`review`){q();return}if(e===`run`){S?.();return}if(e===`stop-run`){w?.();return}if(e===`pause-build`){T?.();return}e===`resume-build`&&D?.()},Xe=async e=>{try{if(await Ke(e),!x){m();return}await x(),m()}catch(e){Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}},Ze=ze?G.planning_session_id:G.session_id,J=Ze?Ze.startsWith(`ses_`)?`opencode --session ${Ze}`:`claude --resume ${Ze}`:null,Qe=G.bundle?.branch??G.branch,$e=G.has_worktree??!!Qe,et=`Stop Build Chain`,tt=new Map(t.map(e=>[e.id,e])),nt=n.filter(e=>e.blocker_ticket_id===G.id),rt=n.filter(e=>e.dependent_ticket_id===G.id),it=HN(G,tt,n),at=it.pendingBuildChainOrder.length>0?`Will build in order: ${it.pendingBuildChainOrder.map(e=>e.title).join(` -> `)}`:`All tickets in this chain have already finished build.`,ot=it.skippedBuildChainCount>0?`Skips ${it.skippedBuildChainCount} ticket${it.skippedBuildChainCount===1?``:`s`} that already finished build.`:null,st=it.hasOpenBlockers,ct=X0(G,{isEditing:Ge,includePlanAdvance:!1,hideAdvanceWhenBlocked:!0,hasOpenBlockers:st,canRun:!!S,canStopRun:!!w,canPauseBuild:!!T,canResumeBuild:!!D,runDisabled:d,runDisabledReason:f,reviewLabel:`Review Bundle`}),lt=ct.find(e=>e.id===`review`)??null,ut=vN(G),dt=G.build_chain?.active_ticket_id?`Currently building ${tt.get(G.build_chain.active_ticket_id)?.title??`Unknown ticket`}.`:`Build chain is active.`,ft=G.build_chain&&G.build_chain.queued_ticket_ids.length>0?`Queued next: ${G.build_chain.queued_ticket_ids.map(e=>tt.get(e)?.title??`Unknown ticket`).join(` -> `)}`:`No additional tickets are queued after the current build.`,pt=ze&&!!b&&!it.hasOpenBlockers,mt=ze&&!!x&&it.canStartBuildChain,ht=!!G.project_id&&!ze&&!K,gt=ze,_t=K&&!ze,vt=!!G.project_id&&!!Qe&&$e&&!Ge&&!He&&!K,yt=!!G.project_id&&$e&&!Ge&&!He&&!!C&&!K,bt=!!G.project_id&&i.length>0&&$e,xt=ht&&!V,St=M(`workspaceControls.openTerminalAriaLabel`),Ct=ht&&te,wt=re.trim(),Tt=!Ge&&!He&&G.state!==`plan`&&$e&&!!O,Et=Tt&&(G.state===`build`||G.state===`review`);(0,p.useEffect)(()=>{let e=e=>{wG(e)&&Tt&&(e.preventDefault(),oe(e=>CG(e)))};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[Tt]);let Dt=gt&&ce,Ot=_t&&ue,At=(G.planning_context?.open_questions.length??0)>0,jt=Tt&&a&&hP(G,o)===`opencode`,Mt=M(`ticketModal.discardUnsavedDescription`),Nt=s.find(e=>e.id===be)??null,Pt=G.agent_status===`running`,Ft=QN(G,{allTickets:t,preferBundleReviewStatus:!0}),It=G.skills??[],Lt=Z0(G),Rt=Pt?Lt.disabledReason??void 0:void 0,zt=He?Lt.disabledReason??void 0:void 0,Bt=[...He?[]:[{label:`Worktree`,value:Qe??``}],{label:`Session`,value:J??``},...He?[{label:G.bundle?.kind===`project_root`?`Project root branch`:`Bundle`,value:(G.bundle?.kind,G.bundle?my(G.bundle):``)}]:ze?[{label:`Bundle`,value:G.bundle?my(G.bundle):``},{label:`Model`,value:G.model??``},{label:`Variant`,value:G.variant??``},{label:`Skills`,value:It.length>0?`${It.length} skill${It.length===1?``:`s`}`:``},{label:`Initiative`,value:G.planning_context?.initiative_prompt??``}]:[]],Vt=He?{model:G.model??``,variant:G.variant??``,skills:It}:null,Ht=gt&&ce,Ut=_t&&ue,Wt=(Ht||Ut)&&!Pe,Gt=Ht&&!Wt,Kt=Gt||Ut&&!Wt,qt=ze&&(Ht||!Pe),Jt=V?`flex h-[92vh] w-[96vw] max-w-7xl flex-col gap-3 overflow-hidden rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`:Kt?`flex h-[92vh] w-[98vw] max-w-[100rem] flex-col gap-3 overflow-visible rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`:Wt?`flex h-[92vh] w-[98vw] max-w-6xl flex-col gap-3 overflow-hidden rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`:`flex h-[92vh] w-[96vw] max-w-6xl flex-col gap-3 overflow-visible rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`,Yt=V&&!ee?`grid min-h-0 flex-1 grid-cols-1 gap-3 lg:grid-cols-2`:Kt?`grid min-h-0 flex-1 grid-cols-1 gap-3 xl:grid-cols-[minmax(0,1fr)_minmax(30rem,1fr)]`:`flex min-h-0 flex-1 flex-col`,Xt=()=>{ne(!0),H(e=>(e&&U(!1),!e))},Zt=()=>{H(!1),U(!1),ne(!1),k?.(G.id)},Qt=()=>{_e(!1),ye(null)},tn=()=>{_e(!1),ve===`cancel_edit`&&!ze?I(!1):m(),ye(null)},nn=()=>{if(!Ge){m();return}if(!me){m();return}ye(`close_modal`),_e(!0)},rn=()=>{if(ze){nn();return}if(!me){I(!1);return}ye(`cancel_edit`),_e(!0)};(0,p.useEffect)(()=>{P(t=>!t||t.id!==e.id||e.updated_at>=t.updated_at?null:t)},[e]),(0,p.useEffect)(()=>{if(Me.current!==G.id){Me.current=G.id,Ne.current=G.build_completed_at;return}if(Ne.current===G.build_completed_at)return;let e=Ne.current;Ne.current=G.build_completed_at,G.build_completed_at&&G.build_completed_at!==e&&pe(e=>e+1)},[G.build_completed_at,G.id]),(0,p.useEffect)(()=>{xe(G.model??``),Ce(G.variant??``),Te(G.skills??[])},[G.model,G.skills,G.variant]),(0,p.useEffect)(()=>{Oe.current!==G.id&&(Oe.current=G.id,De(o2(G.model,s)??`Agent`))},[s,G.id,G.model]),(0,p.useEffect)(()=>{let e=o2(G.model,s);e&&De(e)},[s,G.model]),(0,p.useEffect)(()=>{Re({model:G.model,variant:G.variant,skills:G.skills??[]})},[G.id,G.model,G.skills,G.variant]),(0,p.useEffect)(()=>{Ge||(he(!1),_e(!1),ye(null))},[Ge]),(0,p.useEffect)(()=>{me||(_e(!1),ye(null))},[me]),(0,p.useEffect)(()=>{if(!ze){ke.current=null,je.current=!1;return}let e=ke.current!==G.id,t=!je.current&&At;(e&&At||t)&&le(!0),ke.current=G.id,je.current=At},[At,ze,G.id]),(0,p.useEffect)(()=>{if(!_t){Ae.current=null;return}Ae.current!==G.id&&de(!1),Ae.current=G.id},[_t,G.id]);let an=async(e,t,n)=>{Ie(!0);try{let r=await kt(G.id,G.project_id,{model:e.trim()||null,variant:t.trim()||null,skills:n});P(r),v?.(r)}catch(e){xe(G.model??``),Ce(G.variant??``),Te(G.skills??[]),Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}finally{Ie(!1)}},on=e=>{let t=(s.find(t=>t.id===e)??null)?.variants.includes(Se)?Se:``;xe(e),Ce(t),an(e,t,we)},sn=e=>{Ce(e),an(be,e,we)},cn=e=>{Te(e),an(be,Se,e)},ln=async()=>{if(!(!O||W||Pt||!wt)){se(!0);try{await O(wt,ae),ie(``)}finally{se(!1)}}},un=async()=>{if(!(W||He||!wt||!Dt)){se(!0);try{let e=Q0(G,Le,{persistPlanSettings:!0});if(e.shouldPersist){let t=await kt(G.id,G.project_id,{model:e.model,variant:e.variant,skills:e.skills});P(t),v?.(t)}let t=await $t(G.id,G.project_id,wt);P(t),v?.(t),ie(``)}finally{se(!1)}}},dn=(G.messages??[]).filter(DP).map(e=>e.role===`assistant`?{...e,displayTitle:Ee}:e.kind===`follow_up`?{...e,displayTitle:M(`chatView.user.you`)}:e),fn=(G.messages??[]).filter(e=>(e.kind===`planning_follow_up`||e.kind===`planning_response`)&&DP(e)).map(e=>e.role===`assistant`?{...e,displayTitle:Ee}:e.kind===`planning_follow_up`?{...e,displayTitle:M(`chatView.user.you`)}:e),pn=Ht?(0,Y.jsx)(a2,{ariaLabel:M(`ticketModal.planningChatAriaLabel`),title:M(`ticketModal.planningChatTitle`),closeAriaLabel:M(`ticketModal.closePlanningChatAriaLabel`),className:Wt?`absolute inset-x-4 bottom-4 top-[4.25rem] z-30 rounded-2xl border border-border bg-card shadow-2xl sm:inset-x-auto sm:right-5 sm:w-[min(34rem,calc(100%-2.5rem))] lg:right-6`:void 0,showTopSpacer:!Wt,description:At?(0,Y.jsx)(`p`,{children:M(`ticketModal.planningOpenQuestions`,{count:G.planning_context?.open_questions.length??0})}):void 0,projectId:G.project_id,followUpTicketId:null,messages:fn,internalLog:G.agent_log??null,currentThinkingMessageId:G.agent_message_id??null,previousThinkingLog:G.previous_agent_log??null,previousThinkingMessageId:G.previous_agent_message_id??null,streamingResponse:G.streaming_response??null,isRunning:G.agent_status===`running`,canShowComposer:Dt,pendingAgentTitle:Ee,composerTheme:Be,followUpPlaceholder:M(`ticketModal.planningFollowUpPlaceholder`),emptyStateText:null,autoFocusComposer:ce,followUpPrompt:re,isSendingFollowUp:W,followUpDisabledReason:zt,onFollowUpPromptChange:ie,onFollowUpKeyDown:e=>{e.key!==`Enter`||e.shiftKey||He||W||(e.preventDefault(),un())},onFollowUpSubmit:()=>{un()},onClose:()=>{le(!1)}}):Ut?(0,Y.jsx)(a2,{ariaLabel:M(`ticketModal.ticketChatAriaLabel`),title:M(`ticketModal.ticketChatTitle`),closeAriaLabel:M(`ticketModal.closeTicketChatAriaLabel`),className:Wt?`absolute inset-x-4 bottom-4 top-[4.25rem] z-30 rounded-2xl border border-border bg-card shadow-2xl sm:inset-x-auto sm:right-5 sm:w-[min(34rem,calc(100%-2.5rem))] lg:right-6`:void 0,showTopSpacer:!Wt,projectId:G.project_id,followUpTicketId:G.id,messages:dn,internalLog:G.agent_log??null,currentThinkingMessageId:G.agent_message_id??null,previousThinkingLog:G.previous_agent_log??null,previousThinkingMessageId:G.previous_agent_message_id??null,streamingResponse:G.streaming_response??null,isRunning:G.agent_status===`running`,canShowComposer:Ot,pendingAgentTitle:Ee,composerTheme:Be,composerControls:Et?(0,Y.jsx)(bG,{value:ae,disabled:W||Pt,onChange:oe,planInactiveTooltip:(0,Y.jsx)(DG,{label:M(`chatView.shortcuts.switchToPlan`)}),buildInactiveTooltip:(0,Y.jsx)(DG,{label:M(`chatView.shortcuts.switchToBuild`)})}):void 0,autoFocusComposer:ue,followUpPrompt:re,isSendingFollowUp:W,followUpDisabledReason:Rt,followUpComposerControls:jt?(0,Y.jsx)(NG,{model:be,variant:Se,skills:we,showModelSelector:!0,showSkillsSelector:!0,availableModels:s,availableSkills:c,selectedModel:Nt,onModelChange:on,onVariantChange:sn,onSkillsChange:cn,modelSelectId:`ticket-follow-up-model`,variantSelectId:`ticket-follow-up-variant`,skillsSelectId:`ticket-follow-up-skills`,disabled:Fe}):void 0,onFollowUpPromptChange:ie,onFollowUpKeyDown:e=>{e.key!==`Enter`||e.shiftKey||Pt||W||(e.preventDefault(),ln())},onFollowUpSubmit:()=>{ln()},onClose:()=>{de(!1)}}):null,mn=(0,p.useCallback)(e=>O?O(e,ae):Promise.resolve(),[O,ae]);return(0,Y.jsx)(tb,{onClose:nn,overlayClassName:`bg-black/60`,panelClassName:Jt,renderContent:({closeButton:e})=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`absolute right-4 top-4 z-10 flex items-center gap-2 sm:right-5 sm:top-5 lg:right-6 lg:top-6`,children:[vt&&G.diff_stats&&(0,Y.jsx)(jv,{stats:G.diff_stats,showFiles:!0,className:`text-xs`}),vt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.changes`),onClick:()=>{k?.(G.id),R(!0)},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Nv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.changes`)})]}),bt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.tests`),onClick:()=>{B(!0)},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Mv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.tests`)})]}),yt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.openIde`),onClick:()=>{C?.()},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Pv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.openIde`)})]}),xt&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":St,"aria-pressed":V,onClick:Xt,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(zv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.terminal`)})]}),(gt||_t)&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":M(`workspaceControls.chat`),"aria-pressed":ze?ce:ue,onClick:()=>{if(ze){le(e=>!e);return}de(e=>!e)},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(XC,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:M(`workspaceControls.chat`)})]}),e]}),(0,Y.jsxs)(`div`,{"data-testid":`ticket-modal-layout`,"data-terminal-mode":V?ee?`expanded`:`split`:`closed`,"data-side-chat-mode":Kt?`inline`:Wt?`overlay`:`closed`,className:Yt,children:[(0,Y.jsxs)(`div`,{className:`min-h-0 flex flex-1 flex-col gap-3 overflow-hidden`,children:[Ge?(0,Y.jsxs)(Y.Fragment,{children:[We&&G.agent_log&&(0,Y.jsxs)(`div`,{className:`rounded-lg border border-red-500/40 bg-destructive/15 px-3 py-2 text-xs text-red-300`,children:[(0,Y.jsx)(`span`,{className:`font-semibold`,children:M(`ticketModal.planningFailedPrefix`)}),G.agent_log]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(gP,{tool:G.tool,className:`text-[11px]`}),(0,Y.jsx)(bP,{totalTokens:G.usage_snapshot_total_tokens??null,contextWindow:G.usage_snapshot_context_window??null,cost:G.usage_snapshot_cost??null,tool:G.tool,model:G.model,availableModels:s}),G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j(G.origin_spec_session_id,G.origin_spec_snapshot_id)},children:M(`common:specView.provenance.viewSourceSpec`)}):null]}),(0,Y.jsx)(xP,{externalSource:G.external_source}),(0,Y.jsx)(sG,{heading:`Edit Ticket`,bundles:r,initialTitle:G.title,initialDescription:G.description??``,initialModel:G.model??``,initialVariant:G.variant??``,initialSkills:G.skills??[],initialWorktreeBundleId:G.worktree_bundle_id,projectBranchState:l,projectId:G.project_id,stackConfigurationSections:Gt&&!qt,preferWideBundleSelector:Gt&&qt,agentSettingsPresentation:qt?`popover`:`panel`,showModelSelector:a,availableModels:s,availableSkills:c,onAgentSettingsChange:Re,onCreateBundle:h,onDeleteBundle:g,onRefreshBundles:_,onCancel:rn,onDirtyChange:he,titleInputId:`edit-title`,descriptionInputId:`edit-description`,bundleSelectId:`edit-ticket-bundle`,modelSelectId:`edit-model`,variantSelectId:`edit-variant`,skillsSelectId:`edit-skills`,showEmptyBundleOption:!1,planAction:{label:`Plan`,onClick:async({title:e,description:t,model:n,variant:r,skills:i,worktree_bundle_id:a})=>{let o=await kt(G.id,G.project_id,{title:e,description:t,model:n,variant:r,skills:i,worktree_bundle_id:a});v?.(o),m(),await en(G.id,G.project_id)}},primaryAction:{label:`Save`,variant:pt?`subtle`:`brand`,onClick:qe},secondaryAction:pt?{label:`Save & Build`,variant:`brand`,showAdvanceIcon:!0,onClick:Je}:void 0,tertiaryAction:mt?{label:`Save & Build Chain`,variant:`brand`,showAdvanceIcon:!0,onClick:Xe}:void 0,beforeActionsContent:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(vG,{projectId:G.project_id,ticketId:G.id,memoryEnabled:u,refreshKey:fe,onSuggestionsChanged:A}),it.hasDependents&&(0,Y.jsx)(OP,{summary:at,detail:ot}),(0,Y.jsx)(KW,{blocks:nt,blockedBy:rt,resolveTicket:e=>tt.get(e),onDeleteDependency:y})]}),footerLeadingContent:me?(0,Y.jsx)(lb,{variant:`outline`,className:`border-amber-500/35 bg-amber-500/10 text-amber-200`,children:`Unsaved changes`}):null},`${G.id}:${G.updated_at}:${G.title}:${G.description}`)]}):(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden`,children:[(0,Y.jsx)(`div`,{className:`sticky top-0 -my-1 bg-card py-1 pr-12 sm:pr-24`,children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-base font-semibold text-foreground`,children:G.title}),(0,Y.jsx)(gP,{tool:G.tool,className:`text-[11px]`}),(0,Y.jsx)(bP,{totalTokens:G.usage_snapshot_total_tokens??null,contextWindow:G.usage_snapshot_context_window??null,cost:G.usage_snapshot_cost??null,tool:G.tool,model:G.model,availableModels:s}),(Ft===`building`||Ft===`done`)&&(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[G.is_running&&(0,Y.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-emerald-400 animate-pulse flex-shrink-0`}),(0,Y.jsx)(JN,{status:Ft,showBuildGlyph:!0})]}),Ft!==null&&Ft!==`building`&&Ft!==`done`&&(0,Y.jsx)(JN,{status:Ft,showBuildGlyph:!0}),At&&(0,Y.jsx)(lb,{variant:`warning`,children:M(`ticketModal.openQuestionsBadge`)}),ut&&(0,Y.jsx)(lb,{variant:`outline`,className:`border-border/80 bg-card/60 text-muted-foreground`,children:`Stale`}),G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{G.origin_spec_session_id&&G.origin_spec_snapshot_id&&j(G.origin_spec_session_id,G.origin_spec_snapshot_id)},children:M(`common:specView.provenance.viewSourceSpec`)}):null]})}),K?(0,Y.jsx)(`div`,{className:`mt-3 min-h-0 flex flex-1 flex-col`,children:(0,Y.jsx)(yG,{content:G.description,externalSource:G.external_source})}):(0,Y.jsx)(Y.Fragment,{children:ze?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 flex flex-col${He?` mt-3`:``}`,children:(0,Y.jsx)(yG,{content:G.description,externalSource:G.external_source})}):(0,Y.jsx)(UW,{projectId:G.project_id,followUpTicketId:G.id,messages:dn,internalLog:G.agent_log??null,currentThinkingMessageId:G.agent_message_id??null,previousThinkingLog:G.previous_agent_log??null,previousThinkingMessageId:G.previous_agent_message_id??null,streamingResponse:G.streaming_response??null,isRunning:G.agent_status===`running`,canShowComposer:Tt,pendingAgentTitle:Ee,composerTheme:Be,composerControls:Et?(0,Y.jsx)(bG,{value:ae,disabled:W||Pt,onChange:oe}):void 0,followUpPlaceholder:Ve,followUpComposerControls:jt?(0,Y.jsx)(NG,{model:be,variant:Se,skills:we,showModelSelector:!0,showSkillsSelector:!0,availableModels:s,availableSkills:c,selectedModel:Nt,onModelChange:on,onVariantChange:sn,onSkillsChange:cn,modelSelectId:`ticket-follow-up-model`,variantSelectId:`ticket-follow-up-variant`,skillsSelectId:`ticket-follow-up-skills`,disabled:Fe}):void 0,followUpPrompt:re,isSendingFollowUp:W,followUpDisabledReason:Rt,onFollowUpPromptChange:ie,onFollowUpKeyDown:e=>{e.key!==`Enter`||e.shiftKey||Pt||W||(e.preventDefault(),ln())},onFollowUpSubmit:()=>{ln()}})}),He&&(0,Y.jsxs)(`section`,{"aria-label":M(`workspaceControls.ticketMetadataAriaLabel`),className:`flex flex-wrap items-center gap-2`,children:[Bt.filter(e=>e.value.trim().length>0).map(e=>(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 sm:flex-none sm:max-w-full`,children:(0,Y.jsx)(CP,{label:e.label,value:e.value,variant:`compact`,className:`min-w-0`})},`${e.label}:${e.value}`)),(0,Y.jsx)(`div`,{className:`min-w-0 sm:flex-none`,children:(0,Y.jsx)(pP,{model:Vt.model,variant:Vt.variant,skills:Vt.skills})})]}),!He&&!Kt&&(0,Y.jsx)(wP,{ariaLabel:M(`workspaceControls.ticketMetadataAriaLabel`),items:Bt}),(0,Y.jsx)(vG,{projectId:G.project_id,ticketId:G.id,memoryEnabled:u,refreshKey:fe,onSuggestionsChanged:A}),(0,Y.jsx)(KW,{blocks:nt,blockedBy:rt,resolveTicket:e=>tt.get(e),onDeleteDependency:y}),G.build_chain&&(0,Y.jsx)(OP,{summary:dt,detail:ft})]}),!Ge&&(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 border-t border-border pt-4 sm:flex-row sm:items-end sm:justify-between`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,onClick:m,variant:`ghost`,children:M(`workspaceControls.close`)}),G.build_chain&&E&&(0,Y.jsxs)(Z,{type:`button`,onClick:()=>{E()},title:`Stop scheduling the remaining tickets in this build chain.`,"aria-label":et,variant:`destructive`,children:[(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`}),et]}),(0,Y.jsx)(J0,{actions:ct,actionsClassName:`contents`,renderAction:({action:e,label:t,disabled:n,title:r,ariaLabel:i})=>{let a=e.id===`review`?(0,Y.jsx)(lN,{className:`w-3.5 h-3.5`}):e.id===`run`||e.id===`resume-build`?(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}):(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`});return(0,Y.jsxs)(Z,{type:`button`,disabled:n,title:r,"aria-label":i,variant:e.id===`stop-run`?`destructive`:e.id===`pause-build`||e.id===`resume-build`?`warning`:e.id===`run`?`secondary`:`default`,className:e.id===`run`?`bg-sky-700 text-sky-100 hover:bg-sky-600 hover:text-white disabled:bg-slate-700 disabled:text-slate-400`:e.id===`resume-build`?`bg-amber-700 text-amber-50 hover:bg-amber-600 hover:text-white`:void 0,onClick:()=>Ye(e.id),children:[e.id===`review`?t:a,e.id===`review`?a:t]},e.id)}})]})]})]}),Kt&&pn,Ct&&(0,Y.jsx)(`div`,{className:V?ee?`fixed inset-0 z-[70] flex items-center justify-center bg-black/30 p-[5vh]`:`mt-12 min-h-0 flex flex-1 flex-col overflow-hidden`:`hidden`,children:(0,Y.jsx)(q0,{createSession:()=>uP(G.id,G.project_id),isExpanded:ee,isVisible:V,ariaLabel:M(`ticketModal.ticketTerminalAriaLabel`),className:ee?`h-full w-full max-w-none rounded-2xl shadow-2xl`:void 0,onClose:Zt,onToggleExpanded:()=>{U(e=>!e)}})})]}),Wt&&pn,L&&(0,Y.jsx)(p.Suspense,{fallback:(0,Y.jsx)(i2,{onClose:()=>{R(!1),k?.(G.id)}}),children:(0,Y.jsx)($0,{ticketId:G.id,projectId:G.project_id,title:G.title,onTicketUpdate:v,onRequestTicketRefresh:k,onSubmitReviewPrompt:mn,canSubmitReviewPrompt:!Pt,reviewSubmitDisabledReason:Rt,onViewSourceSpec:j,originSpecSessionId:G.origin_spec_session_id??null,originSpecSnapshotId:G.origin_spec_snapshot_id??null,onClose:()=>{R(!1),k?.(G.id)}})}),z&&bt&&G.project_id&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(e2,{scope:`ticket`,ticketId:G.id,projectId:G.project_id,testCommands:i,onClose:()=>{B(!1)}})}),ge&&(0,Y.jsx)(nb,{title:M(`ticketModal.discardUnsavedTitle`),description:Mt,confirmLabel:M(`ticketModal.discardUnsavedConfirm`),cancelLabel:M(`ticketModal.discardUnsavedCancel`),confirmVariant:`destructive`,onConfirm:tn,onCancel:Qt})]})})},c2=({ticket:e,allTickets:t=[],dependencies:n=[],bundles:r=[],projectMemoryEnabled:i=!1,overlay:a=!1,showModelSelector:o,availableModels:s,runDisabled:c=!1,runDisabledReason:l,dependencyTargetState:u=`idle`,onDependencyStart:d,onDeleteDependency:f,onRegisterNode:m,onRegisterOverlayNode:h,onCreateBundle:g,onDeleteBundle:_,onRefreshBundles:v,onUpdate:y,onDelete:b,onUndo:x,onRetry:S,onAdvance:C,onPark:w,onUnpark:T,onBuildChain:E,onRun:D,onOpenTests:O,onOpenChanges:k,onOpenIde:A,onAddTicketToBundle:j,onStop:M,onStopBuild:N,onStopBuildChain:P,onResumeBuild:F,onFollowUp:I,onOpenBundleDetails:L,onOpenTicketDetails:R,preferBundleDetailsOnClick:z=!1,hideBundleScopedControls:B=!1,hideStatusBadge:V=!1,onRequestTicketRefresh:H,undoInProgress:ee=!1})=>{let{t:U}=Ue(`common`),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(!1),[ae,oe]=(0,p.useState)(!1),[W,se]=(0,p.useState)(!1),[ce,le]=(0,p.useState)(null),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(!1),me=e.agent_status===`running`||ee,he=B,ge=e.bundle?.branch??e.branch,_e=e.has_worktree??(e.state===`plan`?!1:!!ge),ve=!B&&_e,ye=HN(e,new Map(t.map(e=>[e.id,e])),n),G=fN(e.state),be=e.state===`review`&&e.can_re_review===!0&&e.agent_status!==`running`,xe=e.worktree_bundle_id!==null,Se=gN(e),Ce=_N(e),we=vN(e),Te=!B&&Ce!==`plan`&&e.diff_stats===void 0,Ee=(we||Se)&&!a,De=G?U(G===`review`?`card.advance.reviewBundle`:`card.columnLabels.${G}`):be?U(`card.advance.rerunReview`):null,Oe=CN(e,`trash`),ke=e.undo,Ae=!!x&&ke?.stage!==null,je=be||(G?CN(e,G):!1),Me=!Se&&!!C&&!!De&&!ye.hasOpenBlockers,Ne=!!w&&xN(e),Pe=Se&&typeof e.state==`string`?U(`card.returnTo`,{state:U(`card.columnLabels.${e.state}`)}):null,Fe=!!T&&Pe!==null&&e.state!==`plan`,Ie=!Se&&!!E&&ye.canStartBuildChain,Le=hN(e)&&e.agent_status===`running`&&!!e.session_id&&!!N,Re=hN(e)&&e.agent_status===`stopped`&&!!e.session_id&&!!F,ze=ve&&!!k,Be=ve&&!!e.project_id&&!!O,Ve=ve&&!!A,K=!Se&&!B&&xe&&!!j,He=!he&&_e&&!!ge&&!e.is_running&&!!D,We=!he&&_e&&!!ge&&!!e.is_running&&!!M,Ge=!!e.build_chain&&!!P,Ke=!!b||Ae||Me||Ne||Fe||Ie||Le||Re||K||He||We||Be||ze||Ve||Ge,qe=async()=>{if(!(!D||c||ue)){de(!0);try{await D()}finally{de(!1)}}},Je=async()=>{if(!(!M||fe)){pe(!0);try{await M()}finally{pe(!1)}}},q=!he&&_e&&ge&&e.is_running&&M&&!ee?(0,Y.jsx)(XN,{isRunning:!0,isStopPending:fe,onStop:Je}):!he&&_e&&ge&&!e.is_running&&!Se&&D?(0,Y.jsx)(XN,{isRunning:!1,isRunPending:ue,runDisabled:c,runDisabledReason:l,onRun:qe}):null;(0,p.useEffect)(()=>{if(!W)return;let e=()=>{se(!1)};return window.addEventListener(`click`,e,{once:!0}),()=>{window.removeEventListener(`click`,e)}},[W]);let Ye=()=>{if(a||W||ee){se(!1);return}if(z&&L){L();return}if(R){R();return}H?.(e.id),oe(!0)},{attributes:Xe,listeners:Ze,setNodeRef:J,isDragging:Qe}=IM({id:e.id,disabled:a||me}),$e=(0,p.useRef)(J);(0,p.useEffect)(()=>{$e.current=J},[J]);let et=(0,p.useCallback)(t=>{if(a){h?.(t);return}$e.current(t),m?.(e.id,t)},[m,h,a,e.id]),tt=u===`valid`?`border-emerald-400 shadow-[0_0_0_1px_rgba(52,211,153,0.35)]`:u===`invalid`?`border-red-400 shadow-[0_0_0_1px_rgba(248,113,113,0.35)]`:a?`border-violet-400`:ye.isVisibleStartPoint?`border-violet-500/35 shadow-[0_0_0_1px_rgba(168,85,247,0.18)] hover:border-violet-400/55`:`border-border hover:border-primary/40`,nt=a||ee?`pointer-events-none cursor-grabbing shadow-2xl`:`cursor-pointer`,rt=Qe?`opacity-30`:Ee?`opacity-90`:`opacity-100`,it=Ee?`bg-card/60`:`bg-secondary/30`,at=Ee?`p-3 text-foreground/70`:`p-3`,ot=Ee?`truncate text-sm font-medium text-foreground/70`:`truncate text-sm font-medium text-foreground`,st=Ee?`text-[11px] text-foreground/55`:`text-[11px] text-muted-foreground`,ct=Ee?`whitespace-pre-line text-xs leading-relaxed text-foreground/55 wrap-anywhere`:`whitespace-pre-line text-xs leading-relaxed text-muted-foreground wrap-anywhere`,lt=e.tool===`opencode`?e.model??``:``,ut=!!e.bundle&&!B,dt=!!e.bundle?.pull_request&&!B,ft=ut||dt,pt=ft||lt.length>0,mt=ce===e.id,ht=(0,p.useMemo)(()=>{let t=e.description??``;return t?QU(t):{text:``,truncated:!1}},[e.description]);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(ub,{"data-testid":`ticket-card-${e.id}`,className:`group/card shrink-0 select-none transition-colors ${tt} ${nt} ${rt} ${it} gap-0 rounded-xl border shadow-none`,ref:et,onClick:Ye,...Ze,...Xe,children:[ee&&(0,Y.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-background/85 backdrop-blur-[1px]`,children:(0,Y.jsxs)(lb,{variant:`warning`,className:`gap-1.5`,children:[(0,Y.jsx)(CS,{className:`h-3.5 w-3.5 animate-spin`}),U(`card.undoInProgress`)]})}),(0,Y.jsxs)(hb,{className:at,children:[(0,Y.jsxs)(`div`,{className:`mb-1.5 flex items-start justify-between gap-2`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(`div`,{className:ot,children:e.title})}),(0,Y.jsxs)(`div`,{className:`flex flex-shrink-0 items-start gap-1`,children:[(0,Y.jsx)(`div`,{className:`mr-1`,children:q}),(0,Y.jsx)(`div`,{className:`flex size-7 items-start justify-center`,children:d&&(0,Y.jsx)(Sv,{content:U(`card.drawDependency`),children:(0,Y.jsx)(Z,{type:`button`,"aria-label":U(`card.createDependencyAriaLabel`,{title:e.title}),variant:`ghost`,size:`icon-xs`,className:`cursor-crosshair opacity-0 transition-all group-hover/card:opacity-100`,onClick:e=>e.stopPropagation(),onPointerDown:t=>{t.stopPropagation(),se(!0),d(e.id,t)},children:(0,Y.jsx)(Ux,{className:`h-4 w-4`})})})}),(0,Y.jsx)(`div`,{className:`flex size-7 items-start justify-center`,children:Ke&&(0,Y.jsx)(oP,{title:e.title,canDelete:Oe,undo:ke,undoInProgress:ee,runDisabled:c,isRunPending:ue,isStopPending:fe,showTestsAction:Be,showOpenChangesAction:ze,showOpenIdeAction:Ve,showAddTicketToBundleAction:K,showRunAction:He,showStopRunAction:We,showAdvanceAction:Me,advanceLabel:De,canAdvance:je,showParkAction:Ne,showReturnAction:Fe,returnLabel:Pe,showBuildChainAction:Ie,showPauseBuildAction:Le,showResumeBuildAction:Re,showStopBuildChainAction:Ge,onDelete:b,onConfirmDelete:()=>ne(!0),onConfirmUndo:()=>ie(!0),onOpenTests:O,onOpenChanges:k,onOpenIde:A,onAddTicketToBundle:K?()=>j?.(e.worktree_bundle_id):void 0,onAdvance:C,onPark:w,onUnpark:T,onBuildChain:E,onRun:qe,onStop:Je,onStopBuild:N,onResumeBuild:F,onStopBuildChain:P})})]})]}),(0,Y.jsx)(`div`,{className:`mt-2`,children:(0,Y.jsx)(lP,{ticket:e,hideStatusBadge:V,hideBundleScopedControls:B,isStale:we,runControl:null,onRetry:S,undoInProgress:ee,isChainStart:ye.isVisibleStartPoint})}),pt&&(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-col gap-1`,children:[ft&&(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 ${st}`,children:[ut&&(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:my(e.bundle)}),dt&&e.bundle?.pull_request&&(0,Y.jsx)(sN,{pullRequest:e.bundle.pull_request,asLink:!0,showNumber:!0,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation()})]}),lt.length>0&&(0,Y.jsx)(`div`,{className:st,children:(0,Y.jsx)(`span`,{className:`truncate`,children:lt})})]}),e.description&&(0,Y.jsx)(`div`,{className:`mt-2`,children:(0,Y.jsx)(cP,{description:e.description,descriptionClass:ct,isExpanded:mt,collapsedState:ht,useStaleLikeStyling:Ee,onExpand:()=>le(e.id),onCollapse:()=>le(null)})}),!B&&(bN(Ce,e.diff_stats)||Te)&&(0,Y.jsx)(jv,{stats:e.diff_stats,isLoading:Te,showFiles:!0,className:`mt-2`})]})]}),ae&&(0,Y.jsx)(s2,{ticket:e,allTickets:t,dependencies:n,bundles:r,projectMemoryEnabled:i,onClose:()=>{oe(!1),H?.(e.id)},showModelSelector:o,availableModels:s,runDisabled:c,runDisabledReason:l,onDeleteDependency:f,onCreateBundle:g,onDeleteBundle:_,onRefreshBundles:v,onUpdate:y,onAdvance:C,onBuildChain:E,onRun:D,onOpenIde:A,onStop:M,onStopBuild:N,onStopBuildChain:P,onResumeBuild:F,onFollowUp:I}),te&&(0,Y.jsx)(sP,{title:e.title,bundleName:e.bundle?my(e.bundle):void 0,onConfirm:()=>{ne(!1),b?.()},onCancel:()=>ne(!1)}),re&&ke?.stage&&(0,Y.jsx)(YN,{title:e.title,stage:ke.stage,onConfirm:()=>{ie(!1),x?.()},onCancel:()=>ie(!1)})]})},l2=({index:e})=>{let{t}=Ue(`common`);return(0,Y.jsx)(ub,{"aria-hidden":`true`,"data-testid":`ticket-card-skeleton`,className:`group shrink-0 select-none gap-0 rounded-xl border border-border/70 bg-secondary/20 shadow-none`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,"aria-hidden":`true`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,Y.jsx)(Av,{className:`h-3.5 w-3/5 rounded-full`}),(0,Y.jsx)(Av,{className:`h-5 w-11 rounded-full`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(Av,{className:`h-3 w-full rounded-full`}),(0,Y.jsx)(Av,{className:`h-3 w-11/12 rounded-full`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Av,{className:`h-4 w-14 rounded-full`}),(0,Y.jsx)(Av,{className:`h-4 w-10 rounded-full`})]}),(0,Y.jsx)(`span`,{className:`sr-only`,children:t(`column.loadingCard`,{index:e+1})})]})})},u2=({id:e,title:t,items:n,ticketCount:r,pinnedContent:i=null,allTickets:a,dependencies:o,showModelSelector:s,availableModels:c,activeRunContextKey:l,isProjectRootRunActive:u=!1,isBundleRunDisabled:d,bundles:f,getDependencyTargetState:m,onDependencyStart:h,onDeleteDependency:g,onRegisterTicketNode:_,onAddTicket:v,onCreateBundle:y,onDeleteBundle:b,onRefreshBundles:x,onUpdateTicket:S,onDeleteTicket:C,onUndoTicket:w,undoingColumn:T=null,onRetryTicket:E,onAdvanceTicket:D,onParkTicket:O,onUnparkTicket:k,onBuildChainTicket:A,onRunTicket:j,onOpenTestsTicket:M,canOpenChangesForTicket:N,onOpenChangesTicket:P,canOpenIdeForTicket:F,onOpenIdeTicket:I,onStopTicket:L,onStopBuildTicket:R,onStopBuildChainTicket:z,onResumeBuildTicket:B,onFollowUpTicket:V,onBuildBundle:H,onReviewBundle:ee,onUndoBundleReview:U,onRunBundle:te,onStopBundle:ne,onParkBundleWrapper:re,onUnparkBundleWrapper:ie,bundleActionState:ae,onOpenTicketDetails:oe,onOpenBundleDetails:W,onOpenBundleChanges:se,onOpenBundleTests:ce,onOpenBundleIde:le,onDeleteBundleWrapper:ue,onAddTicketToBundle:de,onRequestBundleRefresh:fe,onRequestTicketRefresh:pe,className:me=``,headerAccessory:he=null,loadingSkeletonCount:ge=0})=>{let{t:_e}=Ue(`common`),{setNodeRef:ve,isOver:ye}=BM({id:e}),G=(0,p.useRef)(null),[be,xe]=(0,p.useState)(!1),[Se,Ce]=(0,p.useState)(!1),we=e=>e.has_worktree??!!(e.bundle?.branch??e.branch),Te=ye?`border-primary`:`border-border`,Ee=T===e&&(e===`build`||e===`review`),De=(0,p.useCallback)(()=>{let e=G.current;if(!e){xe(!1),Ce(!1);return}if(!(e.scrollHeight>e.clientHeight+1)){xe(!1),Ce(!1);return}let t=e.scrollHeight-e.clientHeight;xe(e.scrollTop>1),Ce(e.scrollTop<t-1)},[]);(0,p.useEffect)(()=>{let e=window.requestAnimationFrame(De),t=G.current;if(!t){window.cancelAnimationFrame(e);return}return t.addEventListener(`scroll`,De),window.addEventListener(`resize`,De),()=>{window.cancelAnimationFrame(e),t.removeEventListener(`scroll`,De),window.removeEventListener(`resize`,De)}},[n.length,ge,De]);let Oe=(0,p.useCallback)((t,n)=>{let r=t.worktree_bundle_id!==null,i=n?.nestedInBundle??!1,d=n?.hideStatusBadge??!1,p=r&&e!==`plan`,v=LN(t),T=u||l!==null&&l!==mN(t)?_e(`column.runDisabledReason`):v;return(0,Y.jsx)(c2,{ticket:t,allTickets:a,dependencies:o,bundles:f,showModelSelector:s,availableModels:c,runDisabled:T!==void 0,runDisabledReason:T,dependencyTargetState:m?.(t.id)??`idle`,onDependencyStart:h,onDeleteDependency:g,onRegisterNode:_,onCreateBundle:y,onDeleteBundle:b,onRefreshBundles:x,onUpdate:S,onDelete:()=>C(t.id),onUndo:w?()=>w(t.id):void 0,undoInProgress:!1,onRetry:()=>E(t.id),onAdvance:D?()=>D(t.id):void 0,onPark:O?()=>O(t.id):void 0,onUnpark:k?()=>k(t.id):void 0,onBuildChain:A?()=>A(t.id):void 0,onRun:we(t)&&t.has_run_config&&j?()=>j(t.id):void 0,onOpenTests:M&&t.project_id&&we(t)?()=>M(t.id):void 0,onOpenChanges:N?.(t)&&P?()=>P(t.id):void 0,onOpenIde:F?.(t)&&I?()=>I(t.id):void 0,onStop:L?()=>L(t.id):void 0,onStopBuild:R?()=>R(t.id):void 0,onStopBuildChain:z?()=>z(t.id):void 0,onResumeBuild:B?()=>B(t.id):void 0,onFollowUp:V?(e,n)=>V(t.id,e,n):void 0,onAddTicketToBundle:de,onOpenBundleDetails:p&&W?()=>W(t.worktree_bundle_id,e):void 0,onOpenTicketDetails:()=>oe(t),preferBundleDetailsOnClick:p,hideBundleScopedControls:i,hideStatusBadge:d,onRequestTicketRefresh:pe})},[l,a,c,f,N,F,o,m,e,u,de,D,A,y,b,g,C,h,V,W,P,I,M,oe,O,x,_,pe,B,E,j,z,R,L,w,k,S,s,_e]);return(0,Y.jsxs)(ub,{className:`flex min-h-0 min-w-[280px] flex-1 flex-col rounded-2xl bg-card/80 p-4 transition-colors ${me} ${Te}`,ref:ve,children:[(0,Y.jsxs)(`div`,{className:`mb-4 flex min-h-7 items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-xs font-semibold uppercase tracking-widest text-muted-foreground`,children:t}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[he,(0,Y.jsx)(lb,{variant:`outline`,children:r}),v&&(0,Y.jsxs)(Z,{type:`button`,onClick:v,size:`xs`,variant:`success`,className:`gap-2 shadow-[0_8px_20px_rgba(16,185,129,0.22)]`,children:[(0,Y.jsx)(`span`,{children:_e(`column.newTicket`)}),(0,Y.jsx)(lb,{"aria-hidden":`true`,variant:`hotkeyDark`,className:`rounded-md px-1.5 py-0.5 text-[10px] leading-none`,children:`N`})]})]})]}),(0,Y.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{ref:G,className:`flex min-h-0 h-full flex-col gap-2.5 overflow-y-auto pr-1`,children:[i,n.map(e=>{if(e.kind===`bundle`)return(0,Y.jsx)(iP,{group:e.group,renderTicket:t=>Oe(t,{nestedInBundle:!0,hideStatusBadge:e.group.column===`review`}),runDisabled:d?.(e.group.bundle.id)??!1,onBuildBundle:H,onReviewBundle:ee,onUndoBundleReview:U,onRunBundle:te,onStopBundle:ne,onParkBundleWrapper:re,onUnparkBundleWrapper:ie,bundleActionState:ae,onStopBuildTicket:R,onResumeBuildTicket:B,onOpenBundleDetails:W,onOpenBundleChanges:se,onOpenBundleTests:ce,onOpenBundleIde:le,onDeleteBundleWrapper:ue,onAddTicketToBundle:de,onRequestBundleRefresh:fe},e.group.id);let t=e.ticket;return(0,Y.jsx)(p.Fragment,{children:Oe(t)},t.id)}),Array.from({length:ge},(t,n)=>(0,Y.jsx)(l2,{index:n},`loading-card-${e}-${n}`))]}),Ee&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`column-undo-overlay-${e}`,className:`absolute inset-0 z-20 flex items-center justify-center rounded-xl bg-background/85 backdrop-blur-[1px]`,children:(0,Y.jsxs)(lb,{variant:`warning`,className:`gap-1.5`,children:[(0,Y.jsx)(CS,{className:`h-3.5 w-3.5 animate-spin`}),_e(`column.undoInProgress`)]})}),be&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`column-top-fade`,className:`pointer-events-none absolute inset-x-0 top-0 h-6 rounded-t-xl bg-gradient-to-b from-card to-transparent`}),Se&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,"data-testid":`column-bottom-fade`,className:`pointer-events-none absolute inset-x-0 bottom-0 h-8 rounded-b-xl bg-gradient-to-t from-card to-transparent`})]})]})},d2=({ticketCount:e,isDeleting:t,onCancel:n,onConfirm:r})=>{let{t:i}=Ue(`common`);return(0,Y.jsxs)(tb,{onClose:t?()=>{}:n,overlayClassName:`bg-black/60`,panelClassName:`max-w-md rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,Y.jsx)(`h2`,{className:`mb-3 text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:i(`boardConfirmEmptyDoneModal.heading`)}),(0,Y.jsx)(`p`,{className:`mb-2 text-sm text-foreground`,children:i(`boardConfirmEmptyDoneModal.deletePrompt`,{count:e})}),(0,Y.jsx)(`p`,{className:`mb-6 text-xs text-muted-foreground`,children:i(`boardConfirmEmptyDoneModal.description`)}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,disabled:t,onClick:n,children:i(`boardConfirmEmptyDoneModal.cancel`)}),(0,Y.jsx)(Z,{type:`button`,variant:`destructive`,disabled:t,onClick:r,children:i(t?`boardConfirmEmptyDoneModal.deleting`:`boardConfirmEmptyDoneModal.confirm`)})]})]})},f2=({projectId:e,followUpTicketId:t=null,messages:n,internalLog:r,currentThinkingMessageId:i=null,legacyThinkingTicketId:a=null,previousThinkingLog:o=null,previousThinkingMessageId:s=null,pendingAgentTitle:c,streamingResponse:l,isRunning:u,isLoading:d=!1,canShowComposer:f,topControls:p,composerControls:m,composerTheme:h=`default`,layoutKey:g,scrollLayoutKey:_,followUpPrompt:v,followUpPlaceholder:y=`Follow up on this bundle`,isSendingFollowUp:b,followUpDisabledReason:x,onFollowUpPromptChange:S,onFollowUpKeyDown:C,onFollowUpSubmit:w})=>(0,Y.jsx)(HW,{projectId:e,followUpTicketId:t,messages:n,internalLog:r,currentThinkingMessageId:i,legacyThinkingTicketId:a,previousThinkingLog:o,previousThinkingMessageId:s,pendingAgentTitle:c,streamingResponse:l,isRunning:u,isLoading:d,autoScrollBehavior:`sticky`,canShowComposer:f,composerControls:p,composerInlineControls:m,composerTheme:h,composerSize:`compact-on-laptop`,layoutKey:g,scrollLayoutKey:_,followUpPrompt:v,followUpPlaceholder:y,emptyStateText:`No bundle messages yet.`,autoFocusComposer:!0,isSendingFollowUp:b,followUpDisabledReason:x,onFollowUpPromptChange:S,onFollowUpKeyDown:C,onFollowUpSubmit:w}),p2=({bundleId:e,actionState:t,runDisabled:n,canBuild:r,canStopBuild:i,runningBuildTicketId:a,canResumeBuild:o,resumableBuildTicketId:s,isRunning:c,canRun:l,canReview:u,reviewActionLabel:d=`Review Bundle`,onClose:f,onBuildBundle:p,onStopBuildTicket:m,onResumeBuildTicket:h,onRunBundle:g,onStopBundle:_,onReviewBundle:v})=>{let y=t.review||t.followUp;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 pt-4 sm:flex-row sm:items-end sm:justify-between`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,onClick:f,variant:`ghost`,children:`Close`}),c?(0,Y.jsxs)(Z,{type:`button`,variant:`destructive`,disabled:t.stop,onClick:()=>void _(e),children:[(0,Y.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-emerald-400 animate-pulse flex-shrink-0`}),(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`}),t.stop?`Stopping...`:`Stop Run`]}):l?(0,Y.jsxs)(Z,{type:`button`,variant:`secondary`,disabled:t.run||n,title:n?`Stop the currently running ticket before starting another run.`:void 0,onClick:()=>{n||g(e)},className:`bg-sky-700 text-sky-100 hover:bg-sky-600 hover:text-white disabled:bg-slate-700 disabled:text-slate-400`,children:[(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}),t.run?`Starting Run...`:`Run`]}):null,r&&(0,Y.jsxs)(Z,{type:`button`,disabled:t.build,onClick:()=>void p(e),children:[(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}),t.build?`Building Bundle...`:`Build Bundle`]}),i&&a&&(0,Y.jsxs)(Z,{type:`button`,variant:`warning`,disabled:t.stopBuild,title:`Pause the build session. You can resume it later.`,"aria-label":`Pause Build`,onClick:()=>void m(a),children:[(0,Y.jsx)(Rv,{className:`w-3.5 h-3.5`}),t.stopBuild?`Pausing...`:`Pause Build`]}),o&&s&&(0,Y.jsxs)(Z,{type:`button`,variant:`warning`,className:`bg-amber-700 text-amber-50 hover:bg-amber-600 hover:text-white`,disabled:t.resumeBuild,onClick:()=>void h(s),children:[(0,Y.jsx)(Iv,{className:`w-3.5 h-3.5`}),t.resumeBuild?`Resuming...`:`Resume`]}),u&&(0,Y.jsxs)(Z,{type:`button`,disabled:y,onClick:()=>void v(e),children:[(0,Y.jsx)(lN,{className:`w-3.5 h-3.5`}),y?`Reviewing Bundle...`:d]})]})]})},m2=e=>e.agent_status===`running`?`bg-amber-400`:e.agent_status===`error`?`bg-rose-400`:e.agent_status===`stopped`?`bg-amber-300`:e.agent_status===`done`?`bg-emerald-400`:`bg-border`,h2=({tickets:e,onOpenTicketDetails:t,highlightedTicketId:n=null,pendingMemorySuggestionCounts:r={},availableModels:i=[]})=>{let a=e.filter(e=>e.agent_status===`running`).length,o=e.filter(e=>e.agent_status===`error`).length;return(0,Y.jsxs)(`section`,{"aria-label":`Bundle tickets`,className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground`,children:`Tickets`}),(0,Y.jsx)(lb,{variant:`outline`,children:e.length}),a>0&&(0,Y.jsxs)(`span`,{className:`text-[11px] text-muted-foreground`,children:[a,` active`]}),o>0&&(0,Y.jsxs)(`span`,{className:`text-[11px] text-rose-300`,children:[o,` error`,o===1?``:`s`]})]}),(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-col gap-1 overflow-y-auto pr-1`,children:e.map(e=>{let a=r[e.id]??0,o=e.id===n;return(0,Y.jsxs)(`button`,{type:`button`,"data-follow-up-target":o?`true`:`false`,"aria-current":o?`true`:void 0,className:X(`flex cursor-pointer items-center gap-3 rounded-lg px-2.5 py-2.5 text-left text-foreground transition-colors`,o?`border border-sky-500/35 bg-sky-500/10 shadow-[inset_0_0_0_1px_rgba(56,189,248,0.12)] hover:bg-sky-500/15`:`bg-background/20 hover:bg-accent/45`),onClick:()=>t(e),children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,className:X(`h-2 w-2 shrink-0 rounded-full`,m2(e))}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`truncate text-xs font-medium`,children:e.title}),(0,Y.jsx)(gP,{tool:e.tool,className:`shrink-0 text-[10px]`}),(0,Y.jsx)(bP,{totalTokens:e.usage_snapshot_total_tokens??null,contextWindow:e.usage_snapshot_context_window??null,cost:e.usage_snapshot_cost??null,tool:e.tool,model:e.model,availableModels:i})]}),(0,Y.jsx)(`div`,{className:`mt-0.5 text-[11px] text-muted-foreground`,children:e.state})]}),o&&(0,Y.jsx)(lb,{variant:`info`,className:`shrink-0 px-1.5 text-[10px]`,"aria-label":`Follow-up target`,children:`Follow-up`}),a>0&&(0,Y.jsx)(lb,{variant:`warning`,className:`h-5 min-w-5 shrink-0 justify-center rounded-full px-1.5 text-[10px]`,"aria-label":`${a} pending memory suggestion${a===1?``:`s`}`,title:`${a} pending memory suggestion${a===1?``:`s`}`,children:a})]},e.id)})})]})},g2=e=>e.kind===`description`?e.bundle_visible_at??e.created_at:e.created_at,_2=(e,t)=>e?t.get(e)??e:null,v2=(e,t)=>_2(e,t)??`Agent`,y2=e=>e.kind===`planning_follow_up`||e.kind===`planning_response`?0:e.kind===`description`?1:2,b2=(e,t)=>{let n={};for(let r of e){let e=_2(r.model,t);e&&(n[r.id]=e)}return n},x2=(e,t=[])=>{let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>{let r=n.get(e.id)??e.bundle_execution_position??2**53-1,i=n.get(t.id)??t.bundle_execution_position??2**53-1;if(r!==i)return r-i;if(e.created_at!==t.created_at)return e.created_at.localeCompare(t.created_at);let a=e.title.localeCompare(t.title,void 0,{sensitivity:`base`});return a===0?e.id.localeCompare(t.id):a})},S2=(e,t,n,r=[])=>{let i=x2(e,r),a=new Map(i.map((e,t)=>[e.id,t]));return i.flatMap(e=>{let r=e.messages??[],i=e.agent_status!==null||e.session_id!==null||r.some(e=>e.kind!==`description`&&DP(e)),o=r.filter(e=>DP(e)&&(i||e.kind!==`description`)),s=n[e.id]??v2(e.model,t);return o.map(t=>t.role===`assistant`?{...t,displayTitle:s,ticketOrder:a.get(e.id)??2**53-1}:t.kind===`follow_up`?{...t,displayTitle:`You`,ticketOrder:a.get(e.id)??2**53-1}:{...t,displayTitle:e.title,ticketOrder:a.get(e.id)??2**53-1})}).sort((e,t)=>{if(e.ticket_id===t.ticket_id){let n=y2(e)-y2(t);if(n!==0)return n}let n=g2(e),r=g2(t);if(n!==r)return n.localeCompare(r);if(e.ticket_id!==t.ticket_id&&e.ticketOrder!==t.ticketOrder)return e.ticketOrder-t.ticketOrder;let i=y2(e)-y2(t);return i===0?e.id.localeCompare(t.id):i}).map(e=>{let{ticketOrder:t,...n}=e;return n})},C2=e=>uy(e.tickets,{targetTicketId:e.target_ticket_id,reviewOwnerTicketId:e.review_owner_ticket_id,latestSessionTicketId:e.latest_session_ticket_id}),w2=(0,p.lazy)(()=>bU(()=>Promise.resolve().then(()=>l6).then(e=>({default:e.TicketChangesModal})),void 0)),T2=e=>e.replace(/\r\n/g,`
|
|
251
251
|
`).trim(),E2=(e,t)=>e.ticket_id===t.ticket_id&&e.role===`user`&&t.role===`user`&&e.kind===`follow_up`&&t.kind===`follow_up`&&T2(e.content)===T2(t.content),D2=(e,t)=>{if(t.length===0)return e;let n=new Set,r=new Set,i=new Map,a=[];for(let a of t){let t=[...e].reverse().find(e=>!r.has(e.id)&&!n.has(a.id)&&E2(a,e));t&&(r.add(t.id),n.add(a.id),i.set(t.id,a))}for(let t of e){let e=i.get(t.id);if(e){a.push(e);continue}a.push(t)}for(let e of t)n.has(e.id)||a.push(e);return a},O2=e=>e?e.startsWith(`ses_`)?`opencode --session ${e}`:`claude --resume ${e}`:null,k2=(e,t)=>e.latest_session_id?O2(e.latest_session_id):O2(t?.session_id??null),A2=(e,t)=>t?.diff_stats?t.diff_stats:e.find(e=>e.diff_stats)?.diff_stats??null,j2=({details:e,activeColumn:t=null,isLoading:n=!1,actionState:r,canOpenIde:i,projectMemoryEnabled:a=!1,memorySuggestionsRefreshKey:o=0,runDisabled:s=!1,showModelSelector:c=!1,availableModels:l=[],availableSkills:u=[],onClose:d,onOpenTicketDetails:f,onOpenIde:m,onOpenTests:h,onRefresh:g,onUpdateTicket:_,onBuildBundle:v,onStopBuildTicket:y,onResumeBuildTicket:b,onReviewBundle:x,onRunBundle:S,onStopBundle:C,onFollowUpBundle:w})=>{let{t:T}=Ue(`common`),[E,D]=(0,p.useState)(!1),[O,k]=(0,p.useState)(``),[A,j]=(0,p.useState)(`build`),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(!1),[I,L]=(0,p.useState)(!1),[R,z]=(0,p.useState)(``),[B,V]=(0,p.useState)(``),[H,ee]=(0,p.useState)([]),[U,te]=(0,p.useState)(null),[ne,re]=(0,p.useState)(!1),[ie,ae]=(0,p.useState)(!1),[oe,W]=(0,p.useState)({}),[se,ce]=(0,p.useState)([]),le=(0,p.useMemo)(()=>C2(e),[e]),ue=(0,p.useMemo)(()=>new Map(l.map(e=>[e.id,e.label])),[l]),[de,fe]=(0,p.useState)(()=>b2(e.tickets,ue)),pe=(0,p.useMemo)(()=>x2(e.tickets,e.execution_order_ticket_ids),[e.execution_order_ticket_ids,e.tickets]),me=t??le?.state??null,he=me===`plan`,ge=(0,p.useMemo)(()=>D2(S2(e.tickets,ue,de,e.execution_order_ticket_ids),se),[ue,e.execution_order_ticket_ids,e.tickets,se,de]),_e=(0,p.useMemo)(()=>$N(e.tickets,me),[me,e.tickets]),ve=(0,p.useMemo)(()=>(0,Y.jsx)(JN,{status:_e}),[_e]),ye=(0,p.useMemo)(()=>k2(e,le),[e,le]),G=(0,p.useMemo)(()=>A2(e.tickets,le),[e.tickets,le]),be=!he&&!!(le?.project_id&&le&&ly(le)),xe=!!(h&&le?.project_id&&le&&ly(le)),Se=!he&&!!(le?.project_id&&le),Ce=Se&&!M,we=Se&&I&&le!==null,Te=me===`plan`&&e.tickets.some(e=>e.state===`plan`),Ee=pe.find(e=>hN(e)&&e.agent_status===`running`&&!!e.session_id)??null,De=pe.find(e=>hN(e)&&e.agent_status===`stopped`&&!!e.session_id)??null,Oe=Ee!==null,ke=!Oe&&De!==null,Ae=me===`build`&&e.tickets.some(e=>e.state===`build`)&&e.tickets.filter(e=>e.state===`build`).every(e=>e.agent_status===`done`),je=r.review||r.followUp,Me=me===`review`&&e.can_re_review===!0&&!e.tickets.some(e=>e.agent_status===`running`)&&!je,Ne=Ae||Me,Pe=Me?`Re-run review`:`Review Bundle`,Fe=e.tickets.some(e=>e.has_run_config&&IN(e)),Ie=e.tickets.some(e=>e.is_running),Le=e.tickets.find(e=>e.agent_status===`running`)??le,Re=Le?.streaming_response??null,ze=Le?.agent_log??null,Be=Le?.agent_message_id??le?.agent_message_id??null,Ve=Le?.previous_agent_log??le?.previous_agent_log??null,K=Le?.previous_agent_message_id??le?.previous_agent_message_id??null,He=l.find(e=>e.id===R)??null,We=le?.project_id??e.tickets.find(e=>e.project_id)?.project_id??null,Ge=(0,p.useMemo)(()=>e.tickets.map(e=>e.id).sort().join(`|`),[e.tickets]),qe=(0,p.useMemo)(()=>new Set(Ge.length>0?Ge.split(`|`):[]),[Ge]),Je=(0,p.useMemo)(()=>e.tickets.map(e=>`${e.id}:${e.build_completed_at??``}`).sort().join(`|`),[e.tickets]),q=Le??le??e.tickets[0]??null,Ye=q??le,Xe=Ye?.id??null,Ze=Le?de[Le.id]??Le.model??`Agent`:`Agent`,J=Le?.agent_status===`running`?Ze:null,Qe=!he&&!!(le&&ly(le)),$e=A===`plan`?`plan`:pN(t??le?.state??null),et=Qe&&c&&Ye?.tool===`opencode`,tt=r.followUp||ie,nt=e.tickets.some(e=>e.agent_status===`running`),rt=nt?`Wait for all bundle tickets to finish building before sending a follow-up prompt.`:void 0,it=A===`plan`?T(`ticketModal.followUpPlanPlaceholder`):q?`Follow up on: ${q.title}`:`Follow up on this bundle`,at=[{label:e.bundle.kind===`project_root`?`Project root branch`:`Worktree`,value:e.bundle.branch},{label:`Session`,value:ye??``}],ot=!he,st=M&&!P,ct=e.bundle.id,lt=M?P?`expanded`:`split`:`closed`,ut=st?`flex h-[92vh] w-[98vw] max-w-[110rem] flex-col gap-3 overflow-visible rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`:`flex h-[92vh] w-[96vw] max-w-[100rem] flex-col gap-3 overflow-visible rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`,dt=st?`grid min-h-0 flex-1 grid-cols-[16rem_minmax(0,1fr)_minmax(30rem,1fr)] gap-3 2xl:grid-cols-[18rem_minmax(0,1fr)_minmax(30rem,1fr)]`:ot?`grid min-h-0 flex-1 grid-cols-[16rem_minmax(0,1fr)] gap-3 2xl:grid-cols-[18rem_minmax(0,1fr)]`:`flex min-h-0 flex-1 flex-col`,ft=P?`fixed inset-0 z-[70] flex items-center justify-center bg-black/30 p-[5vh]`:`fixed inset-4 z-[70] flex items-stretch justify-end bg-black/30 backdrop-blur-sm 2xl:hidden sm:inset-6 lg:inset-8`;(0,p.useEffect)(()=>{if(!a||he||!We||Ge.length===0){W({});return}let e=new AbortController;return Rn(We,null,e.signal).then(t=>{e.signal.aborted||W(t.suggestions.reduce((e,t)=>(!t.ticket_id||!qe.has(t.ticket_id)||(e[t.ticket_id]=(e[t.ticket_id]??0)+1),e),{}))}).catch(t=>{if(!e.signal.aborted){if(t instanceof Ke&&(t.status===404||t.status===409)){W({});return}W({})}}),()=>{e.abort()}},[Je,We,qe,Ge,he,o,a]),(0,p.useEffect)(()=>{fe(t=>{let n={...t},r=!1,i=new Set(e.tickets.map(e=>e.id));for(let t of e.tickets){let e=t.model?ue.get(t.model)??t.model:null;!e||n[t.id]===e||(n[t.id]=e,r=!0)}for(let e of Object.keys(n))i.has(e)||(delete n[e],r=!0);return r?n:t})},[ue,e.tickets]),(0,p.useEffect)(()=>{if(Xe!==null&&U?.ticketId===Xe)if((Ye?.model??``)===U.model&&(Ye?.variant??``)===U.variant&&(Ye?.skills.length??0)===U.skills.length&&(Ye?.skills??[]).every((e,t)=>e===U.skills[t]))te(null);else return;z(Ye?.model??``),V(Ye?.variant??``),ee(Ye?.skills??[])},[Ye?.model,Ye?.skills,Ye?.variant,Xe,U]);let pt=async(e,t,n)=>{if(Ye){te({ticketId:Ye.id,model:e,variant:t,skills:n}),re(!0);try{let r=await kt(Ye.id,Ye.project_id,{model:e.trim()||null,variant:t.trim()||null,skills:n});_?.(r)}catch(e){te(null),z(Ye.model??``),V(Ye.variant??``),ee(Ye.skills),Q.error(e instanceof Error?e.message:`Unable to update the ticket right now.`,{id:`ticket-save-error`})}finally{re(!1)}}},mt=async()=>{let t=O.trim();if(!t||tt||nt)return;let n=q?{id:`optimistic-follow-up-${Date.now()}`,ticket_id:q.id,role:`user`,kind:`follow_up`,content:t,created_at:new Date().toISOString(),displayTitle:`You`}:null;ae(!0),k(``),n&&ce(e=>[...e,n]);try{await w(e.bundle.id,t,A)}catch{n&&ce(e=>e.filter(e=>e.id!==n.id)),k(t)}finally{ae(!1)}},ht=et?(0,Y.jsx)(`div`,{className:`flex flex-col gap-2.5`,children:et&&(0,Y.jsx)(NG,{model:R,variant:B,skills:H,showModelSelector:!0,showSkillsSelector:!0,availableModels:l,availableSkills:u,selectedModel:He,onModelChange:e=>{let t=(l.find(t=>t.id===e)??null)?.variants.includes(B)?B:``;z(e),V(t),pt(e,t,H)},onVariantChange:e=>{V(e),pt(R,e,H)},onSkillsChange:e=>{ee(e),pt(R,B,e)},modelSelectId:`bundle-follow-up-model`,variantSelectId:`bundle-follow-up-variant`,skillsSelectId:`bundle-follow-up-skills`,disabled:ne})}):void 0,gt=Qe;(0,p.useEffect)(()=>{let e=e=>{wG(e)&&Qe&&(e.preventDefault(),j(e=>CG(e)))};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[Qe]);let _t=gt?(0,Y.jsx)(bG,{value:A,disabled:tt,onChange:j,planInactiveTooltip:(0,Y.jsx)(DG,{label:T(`chatView.shortcuts.switchToPlan`)}),buildInactiveTooltip:(0,Y.jsx)(DG,{label:T(`chatView.shortcuts.switchToBuild`)})}):void 0,vt=(0,p.useCallback)(t=>w(e.bundle.id,t,A),[w,e.bundle.id,A]);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(tb,{onClose:d,overlayClassName:`bg-black/60 !z-40`,panelClassName:ut,renderContent:({closeButton:t})=>(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsxs)(`div`,{"data-testid":`bundle-modal-layout`,"data-terminal-mode":lt,className:`min-h-0 flex flex-1 flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-base font-semibold text-foreground`,children:my(e.bundle)}),ve,e.bundle.pull_request&&(0,Y.jsx)(sN,{pullRequest:e.bundle.pull_request,asLink:!0}),(0,Y.jsxs)(lb,{variant:`outline`,children:[e.tickets.length,` tickets`]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[!he&&G&&(0,Y.jsx)(jv,{stats:G,showFiles:!0,className:`text-xs`}),be&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":T(`workspaceControls.changes`),onClick:()=>D(!0),variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Nv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:T(`workspaceControls.changes`)})]}),xe&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":T(`workspaceControls.tests`),onClick:h,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Mv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:T(`workspaceControls.tests`)})]}),!he&&i&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":T(`workspaceControls.openIde`),onClick:m,variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(Pv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:T(`workspaceControls.openIde`)})]}),Ce&&(0,Y.jsxs)(Z,{type:`button`,"aria-label":T(`workspaceControls.openTerminalAriaLabel`),onClick:()=>{L(!0),N(!0)},variant:`outline`,className:`gap-2`,children:[(0,Y.jsx)(zv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:T(`workspaceControls.terminal`)})]}),t]})]}),(0,Y.jsxs)(`div`,{className:dt,children:[ot&&(0,Y.jsxs)(`aside`,{"data-testid":`bundle-modal-sidebar`,className:`flex min-h-0 flex-col gap-4`,children:[(0,Y.jsx)(wP,{ariaLabel:T(`workspaceControls.ticketMetadataAriaLabel`),items:at,className:`flex-col items-stretch gap-3`}),(0,Y.jsx)(h2,{tickets:e.tickets,onOpenTicketDetails:f,highlightedTicketId:q?.id??null,pendingMemorySuggestionCounts:oe,availableModels:l})]}),(0,Y.jsxs)(`div`,{"data-testid":`bundle-modal-main`,className:`min-h-0 flex flex-1 flex-col gap-3 overflow-hidden`,children:[!he&&(0,Y.jsx)(f2,{projectId:le?.project_id??null,followUpTicketId:e.target_ticket_id,messages:ge,internalLog:ze,currentThinkingMessageId:Be,legacyThinkingTicketId:Le?.id??le?.id??null,previousThinkingLog:Ve,previousThinkingMessageId:K,pendingAgentTitle:J,streamingResponse:Re,isRunning:Le?.agent_status===`running`,isLoading:n,canShowComposer:Qe,topControls:_t,layoutKey:ct,scrollLayoutKey:lt,composerControls:ht,composerTheme:$e,followUpPrompt:O,followUpPlaceholder:it,isSendingFollowUp:tt,followUpDisabledReason:rt,onFollowUpPromptChange:k,onFollowUpKeyDown:e=>{e.key!==`Enter`||e.shiftKey||nt||tt||(e.preventDefault(),mt())},onFollowUpSubmit:()=>{mt()}}),he&&(0,Y.jsx)(h2,{tickets:e.tickets,onOpenTicketDetails:f,pendingMemorySuggestionCounts:oe,availableModels:l}),(0,Y.jsx)(p2,{bundleId:e.bundle.id,actionState:r,runDisabled:s,canBuild:Te,canStopBuild:Oe,runningBuildTicketId:Ee?.id??null,canResumeBuild:ke,resumableBuildTicketId:De?.id??null,isRunning:Ie,canRun:Fe,canReview:Ne,reviewActionLabel:Pe,onClose:d,onBuildBundle:v,onStopBuildTicket:y,onResumeBuildTicket:b,onRunBundle:S,onStopBundle:C,onReviewBundle:x})]}),we&&le&&(0,Y.jsx)(`div`,{className:M?st?`min-h-0 flex flex-col overflow-hidden`:ft:`hidden`,children:(0,Y.jsx)(q0,{createSession:()=>uP(le.id,le.project_id),isExpanded:P,isVisible:M,ariaLabel:T(`bundleDetailsModal.bundleTerminalAriaLabel`),title:T(`workspaceControls.terminalTitle`),className:st||P?`h-full w-full max-w-none rounded-2xl shadow-2xl`:`h-full w-full max-w-5xl rounded-2xl shadow-2xl`,onClose:()=>{N(!1),F(!1),L(!1),g(e.bundle.id)},onToggleExpanded:()=>{F(e=>!e)}})})]})]})})}),E&&le&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(w2,{ticketId:le.id,projectId:le.project_id,reviewCommentsBundleId:e.bundle.id,title:my(e.bundle),onSubmitReviewPrompt:vt,canSubmitReviewPrompt:!nt,reviewSubmitDisabledReason:rt,canAddReviewComments:!nt,canModifyChanges:!nt,changesDisabledReason:rt,onClose:()=>{D(!1),g(e.bundle.id)}})})]})},M2=Zn(`group/toggle inline-flex cursor-pointer items-center justify-center gap-1 rounded-3xl text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-muted`},size:{default:`h-9 min-w-9 px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5`,sm:`h-8 min-w-8 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,lg:`h-10 min-w-10 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3`}},defaultVariants:{variant:`default`,size:`default`}}),N2=p.createContext({size:`default`,variant:`default`,spacing:0,orientation:`horizontal`});function P2({className:e,variant:t,size:n,spacing:r=0,orientation:i=`horizontal`,children:a,...o}){return(0,Y.jsx)(Bp,{"data-slot":`toggle-group`,"data-variant":t,"data-size":n,"data-spacing":r,"data-orientation":i,style:{"--gap":r},className:X(`group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[spacing=0]:data-[variant=outline]:rounded-3xl data-vertical:flex-col data-vertical:items-stretch`,e),...o,children:(0,Y.jsx)(N2.Provider,{value:{variant:t,size:n,spacing:r,orientation:i},children:a})})}function F2({className:e,children:t,variant:n=`default`,size:r=`default`,...i}){let a=p.useContext(N2);return(0,Y.jsx)(Vp,{"data-slot":`toggle-group-item`,"data-variant":a.variant||n,"data-size":a.size||r,"data-spacing":a.spacing,className:X(`shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-3 group-data-[spacing=0]/toggle-group:shadow-none focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-2.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-2.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-3xl group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-3xl group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-3xl group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-3xl data-[state=on]:bg-muted group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t`,M2({variant:a.variant||n,size:a.size||r}),e),...i,children:t})}var I2=`border-sky-400/30 bg-sky-400/10 text-sky-100`,L2=(e,t)=>sb.t(`common:pendingFixesPopover.${e}`,t),R2=e=>e.old_line_number!==null&&e.new_line_number!==null?L2(`lineReference.oldAndNew`,{oldLine:e.old_line_number,newLine:e.new_line_number}):e.new_line_number===null?e.old_line_number===null?L2(`lineReference.unavailable`):L2(`lineReference.oldOnly`,{oldLine:e.old_line_number}):L2(`lineReference.newOnly`,{newLine:e.new_line_number}),z2=e=>e.old_line_number!==null&&e.new_line_number!==null?L2(`lineReference.oldAndNew`,{oldLine:e.old_line_number,newLine:e.new_line_number}):e.new_line_number===null?e.old_line_number===null?L2(`lineReference.unavailable`):L2(`lineReference.oldOnly`,{oldLine:e.old_line_number}):L2(`lineReference.newOnly`,{newLine:e.new_line_number}),B2=e=>e.subject_type===`file`,V2=({reviewComments:e,reviewFindings:t=[],githubComments:n=[],pendingFixCount:r,triggerMode:i=`full`,canSendReview:a,isSubmittingReview:o,reviewSubmitDisabledReason:s,onClearPendingFixes:c,onSubmitReview:l})=>(0,Y.jsxs)(ev,{children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,variant:`default`,size:`sm`,className:i===`compact`?`gap-1.5 px-2.5`:`gap-2`,"aria-label":L2(`triggerLabel`),disabled:r===0,children:[i===`compact`?(0,Y.jsx)(XC,{className:`h-4 w-4`}):(0,Y.jsx)(`span`,{children:L2(`triggerLabel`)}),(0,Y.jsx)(lb,{variant:`outline`,className:`h-5 min-w-5 px-1.5 text-[10px]`,children:r}),(0,Y.jsx)(Ev,{className:`h-4 w-4`})]})}),(0,Y.jsxs)(nv,{align:`end`,className:`z-[90] w-[30rem] max-w-[calc(100vw-2rem)] p-4`,children:[(0,Y.jsxs)(rv,{className:`flex-row items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(iv,{children:L2(`title`)}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:L2(`description`)})]}),(0,Y.jsx)(lb,{variant:`outline`,children:r})]}),r===0?(0,Y.jsx)(`div`,{className:`rounded-xl border border-border bg-background/40 px-4 py-3 text-sm text-muted-foreground`,children:L2(`empty`)}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`max-h-80 space-y-2 overflow-auto pr-1`,children:[e.map(e=>(0,Y.jsx)(`div`,{className:`rounded-xl border border-sky-500/20 bg-sky-500/8 px-3 py-3 shadow-sm`,children:(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(XC,{className:`mt-0.5 h-4 w-4 flex-shrink-0 text-sky-200`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:L2(`manualCommentTitle`)}),(0,Y.jsx)(lb,{variant:`outline`,className:I2,children:L2(`manualBadge`)})]}),(0,Y.jsxs)(`div`,{className:`mt-1 text-xs text-sky-100/70`,children:[ok(e.scope),` · `,e.filePath,` · `,ak(e)]}),(0,Y.jsx)(`div`,{className:`mt-2 rounded-lg border border-sky-500/15 bg-background/60 px-3 py-2`,children:(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap text-xs text-foreground`,children:e.comment})})]})]})},`${e.filePath}:${e.changeKey}`)),t.map(e=>(0,Y.jsx)(`div`,{className:`rounded-xl border border-border bg-background/40 px-3 py-3`,children:(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(Vx,{className:`mt-0.5 h-4 w-4 flex-shrink-0 text-muted-foreground`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:L2(`findingTitle`,{ordinal:e.ordinal})}),(0,Y.jsx)(lb,{variant:`outline`,className:`capitalize`,children:e.severity})]}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:[e.file_path,R2(e)].filter(Boolean).join(` · `)}),(0,Y.jsx)(`div`,{className:`mt-2 text-xs font-medium text-foreground`,children:e.title}),(0,Y.jsx)(`p`,{className:`mt-1 whitespace-pre-wrap text-xs text-foreground`,children:e.what_text})]})]})},e.id)),n.map(e=>(0,Y.jsx)(`div`,{className:`rounded-xl border border-border bg-background/40 px-3 py-3`,children:(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(Lv,{className:`mt-0.5 h-4 w-4 flex-shrink-0 text-muted-foreground`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:e.kind===`review`?L2(`githubReviewSummary`):L2(`githubReviewComment`)}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:[e.file_path,e.kind===`inline`&&!B2(e)?z2(e):e.author].filter(Boolean).join(` · `)}),(0,Y.jsx)(WU,{content:e.body})]})]})},e.id))]}),(0,Y.jsxs)(`div`,{className:`flex justify-between gap-2 pt-2`,children:[(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`ghost`,disabled:r===0||o,onClick:c,children:L2(`clear`)}),(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`default`,disabled:!a,title:s,onClick:l,className:`gap-2`,children:[(0,Y.jsx)(lN,{className:`h-4 w-4`}),o?L2(`sending`):L2(`sendFixes`,{count:r})]})]})]})]})]}),H2=({commitMessage:e,onCommitMessageChange:t,commitMessageRef:n,selectedFileCount:r,changesDisabledReason:i,canEditCommitMessage:a=!0,canGenerateCommitMessage:o,canCommit:s,isGeneratingCommitMessage:c,isCommitting:l,onGenerateCommitMessage:u,onCommit:d})=>{let{t:f}=Ue(`common`),p=e.trim()===``,m=!a||c;return(0,Y.jsx)(`div`,{className:`rounded-2xl border border-border bg-background/40 px-4 py-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 xl:flex-row xl:items-center xl:gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 xl:w-56`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:f(`ticketChangesCommitPanel.title`)}),(0,Y.jsx)(`div`,{className:`mt-1 flex items-center gap-3 text-xs text-muted-foreground`,children:(0,Y.jsx)(lb,{variant:`outline`,children:f(`ticketChangesCommitPanel.selectedFiles`,{count:r})})})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,Y.jsxs)(V_,{"data-disabled":!a,className:`flex-1`,children:[(0,Y.jsx)(K_,{autocomplete:`off`,"aria-label":f(`ticketChangesCommitPanel.commitMessageAriaLabel`),id:`ticket-changes-commit-message`,ref:n,value:e,onChange:e=>{t(e.target.value)},placeholder:f(`ticketChangesCommitPanel.commitMessagePlaceholder`),disabled:m,title:i}),p&&(0,Y.jsx)(U_,{align:`inline-end`,children:(0,Y.jsx)(G_,{"aria-label":f(`ticketChangesCommitPanel.generateCommitMessageAriaLabel`),disabled:!o,onClick:u,title:i,children:f(c?`ticketChangesCommitPanel.generating`:`ticketChangesCommitPanel.generate`)})})]}),(0,Y.jsxs)(Z,{type:`button`,onClick:d,disabled:!s,title:i,className:`w-full gap-2 sm:w-auto sm:min-w-32`,children:[(0,Y.jsx)(Nv,{className:`h-4 w-4`}),f(l?`ticketChangesCommitPanel.committing`:`ticketChangesCommitPanel.commit`)]})]})]})})},U2=({isCommitsLoading:e,commitsError:t,unpushedCommits:n,canUndoLatestCommit:r,isUndoing:i,aheadCount:a,onUndoLatestCommit:o})=>{let{t:s}=Ue(`common`);if(!e&&n.length===0&&!t)return null;let c=n.length||a;return(0,Y.jsxs)(ev,{children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,size:`sm`,className:`gap-2`,children:[(0,Y.jsx)(`span`,{children:s(`ticketChangesCommitsPanel.triggerLabel`)}),(0,Y.jsx)(lb,{variant:`outline`,className:`h-5 min-w-5 px-1.5 text-[10px]`,children:c}),(0,Y.jsx)(Ev,{className:`h-4 w-4`})]})}),(0,Y.jsxs)(nv,{align:`end`,className:`z-[90] w-[28rem] p-4`,children:[(0,Y.jsxs)(rv,{className:`flex-row items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(iv,{children:s(`ticketChangesCommitsPanel.triggerLabel`)}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:s(`ticketChangesCommitsPanel.description`)})]}),!e&&!t&&(0,Y.jsx)(lb,{variant:`outline`,children:n.length})]}),e?(0,Y.jsx)(`div`,{className:`rounded-xl border border-border bg-background/40 px-4 py-3 text-sm text-muted-foreground`,children:s(`ticketChangesCommitsPanel.loading`)}):t?(0,Y.jsx)(`div`,{className:`rounded-xl border border-amber-500/40 bg-amber-500/10 px-4 py-3 text-sm text-amber-100`,children:t}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:o,disabled:!r,children:[(0,Y.jsx)(CS,{className:`h-3.5 w-3.5`}),s(i?`ticketChangesCommitsPanel.undoing`:`ticketChangesCommitsPanel.undoLatestCommit`)]})}),(0,Y.jsx)(`div`,{className:`max-h-72 space-y-2 overflow-auto`,children:n.map(e=>(0,Y.jsxs)(`div`,{className:`rounded-xl border border-border bg-background/40 px-3 py-3`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e.subject}),(0,Y.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,Y.jsx)(lb,{variant:`outline`,className:`font-mono`,children:e.short_hash}),(0,Y.jsx)(`span`,{children:new Date(e.committed_at).toLocaleString()})]})]},e.hash))})]})]})]})};function W2(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o;n.key&&n.debug?.call(n)&&(o=Date.now());let s=e();if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug?.call(n)&&(c=Date.now()),i=t(...s),n.key&&n.debug?.call(n)){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
|
|
252
252
|
font-size: .6rem;
|
|
253
253
|
font-weight: bold;
|
|
254
254
|
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return o.updateDeps=e=>{r=e},o}function G2(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var K2=(e,t)=>Math.abs(e-t)<1.01,q2=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},J2=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},Y2=e=>e,X2=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},Z2=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(J2(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(J2(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},Q2={passive:!0},$2=typeof window>`u`?!0:`onscrollend`in window,e4=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=0,a=e.options.useScrollendEvent&&$2?()=>void 0:q2(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),o=r=>()=>{let{horizontal:o,isRtl:s}=e.options;i=o?n.scrollLeft*(s&&-1||1):n.scrollTop,a(),t(i,r)},s=o(!0),c=o(!1);n.addEventListener(`scroll`,s,Q2);let l=e.options.useScrollendEvent&&$2;return l&&n.addEventListener(`scrollend`,c,Q2),()=>{n.removeEventListener(`scroll`,s),l&&n.removeEventListener(`scrollend`,c)}},t4=(e,t,n)=>{if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},n4=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},r4=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{n===void 0&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Y2,rangeExtractor:X2,onChange:()=>{},measureElement:t4,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,...e}},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=W2(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=W2(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=W2(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let c=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let l=this.measurementsCache.slice(0,c),u=Array(a).fill(void 0);for(let e=0;e<c;e++){let t=l[e];t&&(u[t.lane]=e)}for(let i=c;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),c,d,f=o===`estimate`||s.has(e);if(a!==void 0&&this.options.lanes>1){c=a;let e=u[c],r=e===void 0?void 0:l[e];d=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?l[i-1]:this.getFurthestMeasurement(l,i);d=e?e.end+this.options.gap:t+n,c=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,c)}let p=s.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=d+m;l[i]={index:i,start:d,size:m,end:h,key:e,lane:c},u[c]=i}return this.measurementsCache=l,l},{key:!1,debug:()=>this.options.debug}),this.calculateRange=W2(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?a4({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=W2(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&(this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this))&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=W2(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length!==0)return G2(t[i4(0,t.length-1,e=>G2(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=e[e.length-1]?.end??0;else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&K2(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,n&&(this.scrollState.lastTargetOffset=t,this.scrollState.behavior=`auto`,this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}));this.scheduleScrollReconcile()}},i4=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function a4({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){let i=e.length-1,a=t=>e[t].start;if(e.length<=r)return{startIndex:0,endIndex:i};let o=i4(0,i,a,n),s=o;if(r===1)for(;s<i&&e[s].end<n+t;)s++;else if(r>1){let a=Array(r).fill(0);for(;s<i&&a.some(e=>e<n+t);){let t=e[s];a[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(i,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var o4=typeof document<`u`?p.useLayoutEffect:p.useEffect;function s4({useFlushSync:e=!0,...t}){let n=p.useReducer(()=>({}),{})[1],r={...t,onChange:(r,i)=>{var a;e&&i?(0,m.flushSync)(n):n(),(a=t.onChange)==null||a.call(t,r,i)}},[i]=p.useState(()=>new r4(r));return i.setOptions(r),o4(()=>i._didMount(),[]),o4(()=>i._willUpdate()),i}function c4(e){return s4({observeElementRect:Z2,observeElementOffset:e4,scrollToFn:n4,...e})}var l4=8,u4=520,d4=2,f4=(e,t)=>sb.t(`common:ticketChangesDiffPanel.${e}`,t),p4=()=>(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-resize-placeholder`,className:`space-y-4 px-3 py-3`,children:[{gutter:`w-8`,code:`w-[68%]`},{gutter:`w-10`,code:`w-[54%]`},{gutter:`w-8`,code:`w-[74%]`},{gutter:`w-6`,code:`w-[38%]`},{gutter:`w-10`,code:`w-[82%]`},{gutter:`w-7`,code:`w-[61%]`},{gutter:`w-9`,code:`w-[48%]`},{gutter:`w-8`,code:`w-[71%]`},{gutter:`w-11`,code:`w-[57%]`},{gutter:`w-7`,code:`w-[66%]`},{gutter:`w-9`,code:`w-[43%]`},{gutter:`w-8`,code:`w-[76%]`}].map((e,t)=>(0,Y.jsxs)(`div`,{"data-testid":`ticket-diff-resize-placeholder-row`,className:`flex items-center gap-4`,children:[(0,Y.jsx)(`div`,{className:X(`h-4 rounded bg-muted/80`,e.gutter)}),(0,Y.jsx)(`div`,{className:X(`h-4 rounded bg-muted/60`,e.code)})]},`${e.gutter}-${e.code}-${t}`))}),m4=({additions:e,deletions:t,fileCount:n})=>n===null?[{key:`additions`,content:`+${e}`,className:`font-mono text-emerald-400`},{key:`deletions`,content:`-${t}`,className:`font-mono text-rose-400`}]:[{key:`files`,content:f4(`stats.fileCount`,{count:n}),className:`text-muted-foreground`},{key:`additions`,content:`+${e}`,className:`font-mono text-emerald-400`},{key:`deletions`,content:`-${t}`,className:`font-mono text-rose-400`}],h4=({control:e,mode:t})=>typeof e==`function`?e(t):e??null,g4=e=>e.reduce((e,t)=>e+t.hunks.reduce((e,t)=>e+t.changes.length,0),0),_4=e=>YO(e),v4=(e,t)=>{let n=`oldPath`in e&&typeof e.oldPath==`string`?t(e.oldPath):``,r=`newPath`in e&&typeof e.newPath==`string`?t(e.newPath):``;return[...new Set([r,n].filter(e=>e&&e!==`/dev/null`))]},y4=e=>e.subject_type===`file`,b4=e=>e.subject_type===`line`,x4=`border-sky-400/30 bg-sky-400/10 text-sky-100`,S4=({context:e,comment:t,reviewDraftInput:n,canEdit:r,autoFocus:i,isReadOnly:a,hasSavedComment:o,onReviewDraftInputChange:s,onCancelReviewDraft:c,onEditReviewDraft:l,onRemoveReviewDraft:u,onSaveReviewDraft:d})=>{let f=(0,p.useRef)(null),[m,h]=(0,p.useState)(()=>n),g=_4(e.change);return(0,p.useEffect)(()=>{!i||a||f.current?.focus({preventScroll:!0})},[i,a]),(0,Y.jsxs)(`div`,{className:`rounded-xl border border-sky-500/20 bg-sky-500/8 p-3 shadow-sm`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(lb,{variant:`outline`,className:x4,children:f4(`reviewComment.manualBadge`)}),(0,Y.jsx)(`div`,{className:`text-[11px] font-medium uppercase tracking-wide text-sky-100/80`,children:f4(o?`reviewComment.commentOnLine`:`reviewComment.addCommentToLine`,{lineNumber:g})})]}),(0,Y.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[a?(0,Y.jsx)(`div`,{className:`whitespace-pre-wrap rounded-xl border border-sky-500/15 bg-background/70 px-3 py-2.5 text-xs text-foreground`,children:t}):(0,Y.jsx)(B_,{ref:f,"aria-label":f4(`reviewComment.ariaLabel`,{filePath:e.filePath}),value:m,onChange:e=>{h(e.target.value),s(e.target.value)},disabled:!r,className:`min-h-20 text-xs`,placeholder:f4(`reviewComment.placeholder`)}),(0,Y.jsx)(`div`,{className:`flex gap-2`,children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(Z,{type:`button`,size:`xs`,variant:`outline`,onClick:()=>{l(e.commentKey)},disabled:!r,children:[(0,Y.jsx)(bS,{className:`h-3.5 w-3.5`}),f4(`reviewComment.edit`)]}),(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,onClick:()=>{u(e.commentKey)},disabled:!r,children:f4(`reviewComment.remove`)})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Z,{type:`button`,size:`xs`,onClick:()=>{d(e,m)},disabled:!r||!m.trim(),children:f4(`reviewComment.add`)}),(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,onClick:c,children:f4(`reviewComment.cancel`)})]})})]})]})},C4=e=>e===`high`?`destructive`:e===`medium`?`warning`:`outline`,w4=e=>e.old_line_number!==null&&e.new_line_number!==null?f4(`lineReference.oldAndNew`,{oldLine:e.old_line_number,newLine:e.new_line_number}):e.new_line_number===null?e.old_line_number===null?f4(`lineReference.unavailable`):f4(`lineReference.oldOnly`,{oldLine:e.old_line_number}):f4(`lineReference.newOnly`,{newLine:e.new_line_number}),T4=({finding:e,isSelected:t,onToggle:n})=>{let[r,i]=(0,p.useState)(!1);return(0,Y.jsxs)(`div`,{className:`rounded-xl border border-slate-400/30 bg-slate-400/10 p-3 shadow-sm`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,Y.jsx)(Vx,{className:`h-3.5 w-3.5 flex-shrink-0`}),(0,Y.jsx)(`div`,{children:f4(`reviewFinding.title`,{ordinal:e.ordinal})}),(0,Y.jsx)(lb,{variant:C4(e.severity),className:`normal-case`,children:e.severity})]}),(0,Y.jsx)(`div`,{className:`mt-2 text-sm font-medium text-foreground`,children:e.title}),(0,Y.jsx)(`p`,{className:`mt-1 whitespace-pre-wrap text-xs text-foreground`,children:e.what_text})]}),(0,Y.jsxs)(Z,{type:`button`,size:`xs`,variant:t?`default`:`outline`,onClick:n,className:`gap-1.5`,children:[!t&&(0,Y.jsx)(Ey,{className:`h-3.5 w-3.5`}),f4(t?`reviewFinding.selected`:`reviewFinding.fix`)]})]}),(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-[11px] text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:w4(e)}),e.file_path&&(0,Y.jsx)(`span`,{children:e.file_path})]}),(e.why_text||e.fix_text)&&(0,Y.jsxs)(`div`,{className:`mt-3`,children:[(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,onClick:()=>{i(e=>!e)},children:f4(r?`reviewFinding.hideDetails`:`reviewFinding.details`)}),r&&(0,Y.jsxs)(`div`,{className:`mt-2 space-y-2 rounded-xl border border-border bg-background/60 p-3 text-xs text-foreground`,children:[e.why_text&&(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`div`,{className:`font-medium text-muted-foreground`,children:f4(`reviewFinding.whyItMatters`)}),(0,Y.jsx)(`p`,{className:`mt-1 whitespace-pre-wrap`,children:e.why_text})]}),e.fix_text&&(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`div`,{className:`font-medium text-muted-foreground`,children:f4(`reviewFinding.requestedFix`)}),(0,Y.jsx)(`p`,{className:`mt-1 whitespace-pre-wrap`,children:e.fix_text})]})]})]})]})},E4=e=>e.old_line_number!==null&&e.new_line_number!==null?f4(`lineReference.oldAndNew`,{oldLine:e.old_line_number,newLine:e.new_line_number}):e.new_line_number===null?e.old_line_number===null?f4(`lineReference.unavailable`):f4(`lineReference.oldOnly`,{oldLine:e.old_line_number}):f4(`lineReference.newOnly`,{newLine:e.new_line_number}),D4=e=>e.old_line_number!==null||e.new_line_number!==null,O4=e=>e.kind===`review`?f4(`githubComment.reviewSummary`):y4(e)?f4(`githubComment.fileComment`):D4(e)||b4(e)?f4(`githubComment.inlineComment`):f4(`githubComment.fileComment`),k4=({comment:e,isSelected:t,onToggle:n})=>(0,Y.jsxs)(`div`,{className:`rounded-xl border border-violet-400/30 bg-violet-400/10 p-3 shadow-sm`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,Y.jsx)(lb,{variant:`outline`,className:`border-violet-400/40 bg-violet-400/10 text-violet-100`,children:f4(`githubComment.badge`)}),(0,Y.jsx)(`span`,{children:O4(e)}),e.is_outdated&&(0,Y.jsx)(lb,{variant:`warning`,className:`normal-case`,children:f4(`githubComment.outdated`)})]}),(0,Y.jsx)(`div`,{className:`mt-2 text-sm font-medium text-foreground`,children:e.author}),(0,Y.jsx)(WU,{content:e.body})]}),(0,Y.jsxs)(Z,{type:`button`,size:`xs`,variant:t?`default`:`outline`,onClick:n,className:`gap-1.5`,children:[!t&&(0,Y.jsx)(Ey,{className:`h-3.5 w-3.5`}),f4(t?`reviewFinding.selected`:`reviewFinding.fix`)]})]}),(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-[11px] text-muted-foreground`,children:[e.file_path&&(0,Y.jsx)(`span`,{children:e.file_path}),e.kind===`inline`&&!y4(e)&&D4(e)&&(0,Y.jsx)(`span`,{children:E4(e)}),(0,Y.jsx)(`span`,{children:new Date(e.updated_at).toLocaleString()}),(0,Y.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,className:`text-violet-200 underline underline-offset-2 transition-colors hover:text-violet-100`,children:f4(`githubComment.openOnGitHub`)})]})]}),A4=({allDiffFiles:e,resolveFilePath:t,normalizeDiffPath:n,reviewFindings:r})=>{let i=new Map,a=new Map,o=[],s=new Map;for(let t of e)for(let e of v4(t,n))s.has(e)||s.set(e,t);for(let e of r){let n=e.file_path,r=n?s.get(n):null;if(!r||!n){o.push(e);continue}let c=t(r),l=null;for(let t of r.hunks){for(let n of t.changes)if(ZO(e,n)){l=sD(n);break}if(l)break}if(l){let t=i.get(c)??new Map,n=t.get(l)??[];t.set(l,[...n,e]),i.set(c,t);continue}a.set(c,[...a.get(c)??[],e])}return{inlineByFilePath:i,fileLevelByFilePath:a,globalFindings:o}},j4=({allDiffFiles:e,resolveFilePath:t,normalizeDiffPath:n,githubComments:r})=>{let i=new Map,a=new Map,o=[],s=new Map;for(let t of e)for(let e of v4(t,n))s.has(e)||s.set(e,t);for(let e of r){if(e.kind===`review`||!e.file_path){o.push(e);continue}let n=s.get(e.file_path);if(!n){o.push(e);continue}let r=t(n);if(y4(e)||!e.subject_type&&!D4(e)){a.set(r,[...a.get(r)??[],e]);continue}let c=null;for(let t of n.hunks){for(let n of t.changes)if(XO(e,n)){c=sD(n);break}if(c)break}if(!c){o.push(e);continue}let l=i.get(r)??new Map,u=l.get(c)??[];l.set(c,[...u,e]),i.set(r,l)}return{inlineByFilePath:i,fileLevelByFilePath:a,fallbackComments:o}},M4=({filePath:e,hunks:t,activeReviewTarget:n,editingReviewCommentKey:r,reviewDraftInstanceKey:i,reviewDraftInput:a,reviewComments:o,reviewFindingsByChangeKey:s,githubCommentsByChangeKey:c,selectedReviewFindingIds:l,selectedGitHubCommentIds:u,canEditActiveReviewDraft:d,onToggleReviewFindingSelection:f,onToggleGitHubCommentSelection:p,onReviewDraftInputChange:m,onCancelReviewDraft:h,onEditReviewDraft:g,onRemoveReviewDraft:_,onSaveReviewDraft:v})=>{let y=new Map(o.map(e=>[sk(e.filePath,e.changeKey),e]));return t.reduce((t,o)=>{for(let b of o.changes){let x=sD(b),S=sk(e,x),C=n?.commentKey===S,w=y.get(S),T=r===S,E=s.get(x)??[],D=c.get(x)??[];if(!C&&!w&&E.length===0&&D.length===0)continue;let O={filePath:e,changeKey:x,commentKey:S,hunk:o,change:b},k=!!w&&!T&&!C,A=k?w?.comment??``:a;t[x]=(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[E.map(e=>(0,Y.jsx)(T4,{finding:e,isSelected:l.includes(e.id),onToggle:()=>{f(e.id)}},e.id)),D.map(e=>(0,Y.jsx)(k4,{comment:e,isSelected:u.includes(e.id),onToggle:()=>{p(e.id)}},e.id)),(C||w)&&(0,Y.jsx)(S4,{context:O,comment:w?.comment??``,reviewDraftInput:A,canEdit:d,autoFocus:C||T,isReadOnly:k,hasSavedComment:!!w,onReviewDraftInputChange:m,onCancelReviewDraft:h,onEditReviewDraft:g,onRemoveReviewDraft:_,onSaveReviewDraft:v},`${i??O.commentKey}:${k?`readonly`:`editable`}`)]})}return t},{})},N4=e=>e.reduce((e,t)=>{for(let n of t.changes)e.set(sD(n),{hunk:t,change:n});return e},new Map),P4=(0,p.memo)(({selectedDiffPath:e,sidebarFiles:t,diffResponse:n,isDiffLoading:r,diffError:i,allDiffFiles:a,renderedFiles:o,viewType:s,onViewTypeChange:c,onRetry:l,activeReviewTarget:u,editingReviewCommentKey:d,reviewDraftInstanceKey:f,reviewDraftInput:m,reviewComments:h,reviewFindings:g,githubComments:_,selectedReviewFindingIds:v,selectedGitHubCommentIds:y,canSelectReviewTarget:b,canEditActiveReviewDraft:x,reviewFindingsError:S,gitHubCommentsError:C,hasStaleReviewFindings:w,onSelectReviewTarget:T,onToggleReviewFindingSelection:E,onToggleGitHubCommentSelection:D,onReviewDraftInputChange:O,onCancelReviewDraft:k,onEditReviewDraft:A,onRemoveReviewDraft:j,onSaveReviewDraft:M,diffThemeClassName:N,resolveFilePath:P,normalizeDiffPath:F,emptyStateTitle:I=f4(`states.emptyTitle`),emptyStateDescription:L=null,filePickerControl:R,reviewSummaryControl:z,extraHeaderControl:B,headerLayout:V=`stacked`,surfaceVariant:H=`default`,showViewTypeToggle:ee=!0,gutterVariant:U=`default`,isResizing:te=!1,resizePlaceholderLineThreshold:ne=1/0,onVisibleFilePathsChange:re})=>{let ie=(0,p.useRef)(null),{mode:ae,ref:oe}=PC({compactAt:H===`flat`?460:620,tightAt:H===`flat`?360:500}),W=!!n?.diff?.trim()||o.length>0||(n?.files.length??0)>0,se=(0,p.useMemo)(()=>g4(o),[o]),ce=e===`all`&&o.length>=l4,le=te&&se>ne,ue=(0,p.useMemo)(()=>o.map(e=>P(e)).join(`
|
|
255
255
|
`),[o,P]),de=c4({count:ce?o.length:0,getScrollElement:()=>ie.current,estimateSize:()=>u4,overscan:d4,getItemKey:e=>{let t=o[e];return t?`${P(t)}:${t.type??`modify`}`:e},initialRect:{width:0,height:900}}),fe=(0,p.useMemo)(()=>new Map(n?.files.map(e=>[e.path,e])??[]),[n?.files]),pe=(0,p.useMemo)(()=>A4({allDiffFiles:a,resolveFilePath:P,normalizeDiffPath:F,reviewFindings:w?[]:g}),[a,w,F,P,g]),me=(0,p.useMemo)(()=>j4({allDiffFiles:a,resolveFilePath:P,normalizeDiffPath:F,githubComments:_}),[a,_,F,P]);(0,p.useEffect)(()=>{let e=ie.current;e&&(e.scrollTop=0)},[e]),(0,p.useEffect)(()=>{let e=ie.current;return()=>{window.getSelection()?.removeAllRanges(),e&&(e.scrollTop=0)}},[ue]);let he=de.getVirtualItems(),ge=(0,p.useMemo)(()=>ce?he.map(e=>P(o[e.index])):o.map(e=>P(e)),[o,P,ce,he]);(0,p.useEffect)(()=>{re?.(ge)},[re,ge]);let _e=ce&&he.length>0?he[0]?.start??0:0,ve=ce&&he.length>0?Math.max(0,de.getTotalSize()-(he[he.length-1]?.end??0)):0,ye=ce?he.map(e=>({file:o[e.index],virtualItem:e})):o.map(e=>({file:e,virtualItem:null})),G=e===`all`?null:t.find(t=>t.path===e)??null,be=e===`all`?m4({additions:n?.stats?.additions??0,deletions:n?.stats?.deletions??0,fileCount:n?.stats?.files_changed??null}):G?m4({additions:G.additions,deletions:G.deletions,fileCount:null}):[],xe=(0,p.useMemo)(()=>ee?(0,Y.jsxs)(P2,{type:`single`,size:`sm`,variant:`outline`,value:s,onValueChange:e=>{(e===`split`||e===`unified`)&&c(e)},children:[(0,Y.jsx)(F2,{value:`unified`,children:f4(`viewType.unified`)}),(0,Y.jsx)(F2,{value:`split`,children:f4(`viewType.split`)})]}):null,[c,ee,s]),Se=(0,p.useMemo)(()=>[h4({control:R,mode:ae}),h4({control:z,mode:ae})].filter(Boolean),[R,ae,z]),Ce=xe||Se.length>0||B;return(0,Y.jsxs)(`section`,{className:X(`flex min-h-0 flex-1 flex-col overflow-hidden`,H===`default`?`rounded-2xl border border-border bg-background/30`:`bg-transparent`),children:[(0,Y.jsx)(`div`,{ref:oe,"data-responsive-mode":ae,"data-testid":`ticket-diff-header`,className:X(`grid min-w-0 items-start gap-x-3 gap-y-2 border-b px-4 py-3`,H===`default`?`border-border`:`border-border/70 px-3`,V===`stacked`?B?`grid-cols-[minmax(0,1fr)_auto]`:`grid-cols-[minmax(0,1fr)]`:Ce?`grid-cols-[minmax(0,1fr)_auto]`:`grid-cols-[minmax(0,1fr)]`),children:V===`stacked`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{"data-testid":`ticket-diff-header-left`,className:`grid min-w-0 gap-2`,children:[(0,Y.jsxs)(`div`,{"data-testid":`ticket-diff-header-info`,className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:e===`all`?f4(`header.allChanges`):e}),be.length>0&&(0,Y.jsx)(`div`,{className:`mt-1 flex items-center gap-3 whitespace-nowrap text-xs`,children:be.map(e=>(0,Y.jsx)(`span`,{className:e.className,children:e.content},e.key))})]}),xe||Se.length>0?(0,Y.jsxs)(`div`,{"data-testid":`ticket-diff-header-controls`,className:`flex min-w-0 flex-wrap items-center gap-2 justify-start`,children:[xe?(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-header-primary-controls`,className:`shrink-0`,children:xe}):null,Se.length>0?(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-header-secondary-controls`,className:`flex min-w-0 items-center gap-2 justify-start`,children:Se.map((e,t)=>(0,Y.jsx)(`div`,{className:`min-w-0 shrink-0`,children:e},`header-secondary-control-${t+1}`))}):null]}):null]}),B?(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-header-close`,className:`flex shrink-0 items-start justify-end`,children:B}):null]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{"data-testid":`ticket-diff-header-info`,className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:e===`all`?f4(`header.allChanges`):e}),be.length>0&&(0,Y.jsx)(`div`,{className:`mt-1 flex items-center gap-3 whitespace-nowrap text-xs`,children:be.map(e=>(0,Y.jsx)(`span`,{className:e.className,children:e.content},e.key))})]}),Ce?(0,Y.jsxs)(`div`,{"data-testid":`ticket-diff-header-inline-controls`,className:`flex min-w-0 flex-wrap items-start justify-end gap-2`,children:[xe?(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-header-primary-controls`,className:`shrink-0`,children:xe}):null,Se.length>0?(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-header-secondary-controls`,className:`flex min-w-0 flex-wrap items-center justify-end gap-2`,children:Se.map((e,t)=>(0,Y.jsx)(`div`,{className:`min-w-0 shrink-0`,children:e},`header-secondary-control-${t+1}`))}):null,B?(0,Y.jsx)(`div`,{"data-testid":`ticket-diff-header-close`,className:`flex shrink-0 items-start justify-end`,children:B}):null]}):null]})}),(0,Y.jsx)(`div`,{ref:ie,"data-testid":`ticket-diff-scroll-region`,className:`min-h-0 flex-1 overflow-auto`,children:(0,Y.jsxs)(`div`,{className:X(`min-h-full pb-4 pt-4`,H===`default`?`px-4`:`px-0`),children:[r&&(0,Y.jsx)(`div`,{className:`flex h-full min-h-48 items-center justify-center text-sm text-muted-foreground`,children:f4(`states.loading`)}),!r&&i&&(0,Y.jsxs)(`div`,{className:`flex h-full min-h-48 flex-col items-center justify-center gap-4 text-center`,children:[(0,Y.jsx)(`p`,{className:`max-w-md text-sm text-rose-300`,children:i}),(0,Y.jsx)(Z,{type:`button`,variant:`outline`,onClick:l,children:f4(`states.retry`)})]}),!r&&!i&&n&&!W&&(0,Y.jsxs)(`div`,{className:`flex h-full min-h-48 flex-col items-center justify-center gap-2 text-center`,children:[(0,Y.jsx)(`div`,{className:`text-sm text-foreground`,children:I}),L&&(0,Y.jsx)(`div`,{className:`max-w-md text-xs text-muted-foreground`,children:L})]}),!r&&!i&&n&&W&&e!==`all`&&o.length===0&&(0,Y.jsxs)(`div`,{className:`flex h-full min-h-48 flex-col items-center justify-center gap-3 text-center`,children:[(0,Y.jsx)(`div`,{className:`text-sm text-foreground`,children:f4(`states.noRenderableFileTitle`)}),(0,Y.jsx)(`div`,{className:`max-w-md text-xs text-muted-foreground`,children:e})]}),!r&&!i&&n&&W&&o.length>0&&le&&(0,Y.jsx)(p4,{}),!r&&!i&&n&&W&&o.length>0&&!le&&(0,Y.jsxs)(`div`,{className:X(`archon-diff-viewer`,U===`compact`&&`archon-diff-viewer--compact-gutter`,e===`all`&&H===`default`&&`space-y-6`,e===`all`&&H===`flat`&&`space-y-0`,N),children:[S&&(0,Y.jsx)(`div`,{className:`rounded-xl border border-dashed border-border bg-background/40 px-4 py-3 text-xs text-muted-foreground`,children:S}),C&&(0,Y.jsx)(`div`,{className:`rounded-xl border border-dashed border-border bg-background/40 px-4 py-3 text-xs text-muted-foreground`,children:C}),pe.globalFindings.length>0&&(0,Y.jsxs)(`section`,{className:`rounded-xl border border-border bg-card/70 p-3`,children:[(0,Y.jsx)(`div`,{className:`mb-3 text-sm font-semibold text-foreground`,children:f4(`reviewFinding.sectionTitle`)}),(0,Y.jsx)(`div`,{className:`space-y-3`,children:pe.globalFindings.map(e=>(0,Y.jsx)(T4,{finding:e,isSelected:v.includes(e.id),onToggle:()=>{E(e.id)}},e.id))})]}),e===`all`&&me.fallbackComments.length>0&&(0,Y.jsxs)(`section`,{className:`rounded-xl border border-border bg-card/70 p-3`,children:[(0,Y.jsx)(`div`,{className:`mb-3 text-sm font-semibold text-foreground`,children:f4(`githubComment.sectionTitle`)}),(0,Y.jsx)(`div`,{className:`space-y-3`,children:me.fallbackComments.map(e=>(0,Y.jsx)(k4,{comment:e,isSelected:y.includes(e.id),onToggle:()=>{D(e.id)}},e.id))})]}),_e>0&&(0,Y.jsx)(`div`,{style:{height:_e}}),ye.map(({file:t,virtualItem:n})=>{let r=P(t),i=fe.get(r),a=N4(t.hunks),o=pe.inlineByFilePath.get(r)??new Map,c=me.inlineByFilePath.get(r)??new Map,l=pe.fileLevelByFilePath.get(r)??[],p=me.fileLevelByFilePath.get(r)??[],g=d?h.find(e=>sk(e.filePath,e.changeKey)===d)??null:null,_=[...h.filter(e=>e.filePath===r).map(e=>e.changeKey),...u?.filePath===r?[u.changeKey]:[],...g?.filePath===r?[g.changeKey]:[]],S=M4({filePath:r,hunks:t.hunks,activeReviewTarget:u,editingReviewCommentKey:d,reviewDraftInstanceKey:f,reviewDraftInput:m,reviewComments:h,reviewFindingsByChangeKey:o,githubCommentsByChangeKey:c,selectedReviewFindingIds:v,selectedGitHubCommentIds:y,canEditActiveReviewDraft:x,onToggleReviewFindingSelection:E,onToggleGitHubCommentSelection:D,onReviewDraftInputChange:O,onCancelReviewDraft:k,onEditReviewDraft:A,onRemoveReviewDraft:j,onSaveReviewDraft:M}),C=(0,Y.jsx)(qD,{diffType:t.type,hunks:t.hunks,tokens:t.tokens,viewType:s,selectedChanges:[...new Set(_)],widgets:S,renderGutter:({change:e,side:t,renderDefault:n,wrapInAnchor:i,inHoverState:o})=>{if(!e)return i(n());let c=sD(e),l=t===`new`,u=b&&t===`new`,d=s===`unified`&&e.type===`normal`&&t===`new`?null:i(n());return(0,Y.jsxs)(`div`,{className:X(`flex items-center justify-end pr-1`,U===`compact`?`gap-1 pr-0.5`:`gap-2`),children:[d,l&&(0,Y.jsx)(`span`,{"data-diff-gutter-action-slot":`true`,className:[U===`compact`?`flex size-5 shrink-0 items-center justify-center rounded-md border border-emerald-300/80 bg-emerald-400 text-[#07130d] shadow-[0_8px_20px_rgba(16,185,129,0.22)] transition-all`:`flex size-6 shrink-0 items-center justify-center rounded-md border border-emerald-300/80 bg-emerald-400 text-[#07130d] shadow-[0_8px_20px_rgba(16,185,129,0.22)] transition-all`,u&&o?`border-emerald-200 bg-emerald-300 opacity-100`:`opacity-0 pointer-events-none`].join(` `),"aria-hidden":`true`,onClick:t=>{if(t.stopPropagation(),!b||!e)return;let n=a.get(c);n&&T({filePath:r,changeKey:c,commentKey:sk(r,c),hunk:n.hunk,change:n.change})},children:(0,Y.jsx)(Ey,{className:U===`compact`?`h-3 w-3`:`h-3.5 w-3.5`})}),(0,Y.jsx)(`span`,{className:`sr-only`,children:c})]})},children:e=>e.map(e=>(0,Y.jsx)(HD,{hunk:e},`${r}-${e.content}`))});return e===`all`?(0,Y.jsx)(`div`,{"data-index":n?.index,ref:n?de.measureElement:void 0,children:(0,Y.jsxs)(`section`,{className:X(H===`default`?`rounded-xl border border-border bg-card/70`:`border-t border-border/70 bg-transparent first:border-t-0`),children:[(0,Y.jsxs)(`div`,{className:X(`sticky top-0 z-20 border-b text-xs font-medium text-foreground`,H===`default`?`rounded-t-xl border-border bg-card px-4 py-3`:`border-border/70 bg-background/95 px-3 py-2.5 backdrop-blur-sm`),children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[`oldPath`in t&&typeof t.oldPath==`string`&&F(t.oldPath)===`/dev/null`&&(0,Y.jsx)(lb,{variant:`success`,className:`shrink-0`,children:f4(`fileBadge.newFile`)}),(0,Y.jsx)(`span`,{children:r})]}),i&&(0,Y.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 text-xs`,children:[(0,Y.jsxs)(`span`,{className:`font-mono text-emerald-400`,children:[`+`,i.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono text-rose-400`,children:[`-`,i.deletions]})]})]}),(0,Y.jsxs)(`div`,{className:X(`overflow-x-auto`,H===`default`?`p-3`:`px-0 py-3`),children:[l.length>0&&(0,Y.jsx)(`div`,{className:X(`mb-3 space-y-3`,H===`flat`&&`px-3`),children:l.map(e=>(0,Y.jsx)(T4,{finding:e,isSelected:v.includes(e.id),onToggle:()=>{E(e.id)}},e.id))}),p.length>0&&(0,Y.jsx)(`div`,{className:X(`mb-3 space-y-3`,H===`flat`&&`px-3`),children:p.map(e=>(0,Y.jsx)(k4,{comment:e,isSelected:y.includes(e.id),onToggle:()=>{D(e.id)}},e.id))}),C]})]})},`${r}-${t.type??`modify`}`):(0,Y.jsxs)(`div`,{"data-index":n?.index,ref:n?de.measureElement:void 0,children:[l.length>0&&(0,Y.jsx)(`div`,{className:`mb-3 space-y-3`,children:l.map(e=>(0,Y.jsx)(T4,{finding:e,isSelected:v.includes(e.id),onToggle:()=>{E(e.id)}},e.id))}),p.length>0&&(0,Y.jsx)(`div`,{className:`mb-3 space-y-3`,children:p.map(e=>(0,Y.jsx)(k4,{comment:e,isSelected:y.includes(e.id),onToggle:()=>{D(e.id)}},e.id))}),C]},`${r}-${t.type??`modify`}`)}),ve>0&&(0,Y.jsx)(`div`,{style:{height:ve}})]})]})})]})});P4.displayName=`TicketChangesDiffPanel`;var F4=e=>X(`group`,e?`border-sky-700 bg-card/95 shadow-sm`:`border-border/50 bg-transparent text-muted-foreground hover:border-border/80 hover:bg-accent/60 hover:text-accent-foreground hover:shadow-sm`),I4={modified:`border-amber-500/40 bg-amber-500/10 text-amber-200`,added:`border-emerald-500/40 bg-emerald-500/10 text-emerald-200`,deleted:`border-rose-500/40 bg-rose-500/10 text-rose-200`,renamed:`border-sky-500/40 bg-sky-500/10 text-sky-200`,untracked:`border-violet-500/40 bg-violet-500/10 text-violet-200`,typechanged:`border-slate-500/40 bg-slate-500/10 text-slate-200`},L4={modified:`Modified`,added:`Added`,deleted:`Deleted`,renamed:`Renamed`,untracked:`Untracked`,typechanged:`Type changed`},R4=e=>{let t=e.split(/[\\/]/);return t[t.length-1]||e},z4=({selectionWarning:e,gitError:t,sidebarFiles:n,commentCountByPath:r,commentCountTone:i,isGitStatusLoading:a,selectedPaths:o,selectedDiffPath:s,allFilesSelected:c,diffStats:l,title:u=`Changed files`,allChangesDescription:d=`Review the full workspace diff.`,enableSelection:f=!0,onToggleSelectAll:p,onSelectDiffPath:m,onTogglePath:h})=>{let g=i===`bundle_diff`?`rounded-full border border-violet-400/40 bg-violet-400/12 px-1.5 py-0.5 text-[10px] font-semibold leading-none text-violet-100`:`rounded-full border border-sky-400/40 bg-sky-400/12 px-1.5 py-0.5 text-[10px] font-semibold leading-none text-sky-100`;return(0,Y.jsxs)(`aside`,{className:`flex min-h-0 h-full flex-col between overflow-hidden rounded-2xl border border-border bg-background/40`,children:[(e||t)&&(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 border-b border-border p-4`,children:[e&&(0,Y.jsx)(`div`,{className:`rounded-xl border border-amber-500/40 bg-amber-500/10 px-4 py-3 text-sm text-amber-100`,children:e}),t&&(0,Y.jsx)(`div`,{className:`rounded-xl border border-amber-500/40 bg-amber-500/10 px-4 py-3 text-sm text-amber-100`,children:t})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-border px-4 py-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:u}),(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[n.length,` file`,n.length===1?``:`s`,` changed`]})]}),f&&(0,Y.jsx)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:p,disabled:n.length===0,children:c?`Unselect all`:`Select all`})]}),(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:[a&&(0,Y.jsx)(`div`,{className:`flex h-full min-h-48 items-center justify-center text-sm text-muted-foreground`,children:`Loading file list...`}),!a&&n.length===0&&(0,Y.jsx)(`div`,{className:`flex h-full min-h-48 items-center justify-center text-sm text-muted-foreground`,children:`No changes to review.`}),!a&&n.length>0&&(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{m(`all`)},className:X(`flex w-full cursor-pointer items-start justify-between gap-3 rounded-xl border px-2.5 py-2 text-left transition-colors`,F4(s===`all`)),children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,Y.jsx)(`div`,{className:`text-xs font-semibold text-foreground`,children:`All changes`}),l&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 text-[11px]`,children:[(0,Y.jsxs)(`span`,{className:`text-muted-foreground transition-colors group-hover:text-foreground/70`,children:[l.files_changed,` file`,l.files_changed===1?``:`s`]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,l.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,l.deletions]})]})]}),(0,Y.jsx)(`div`,{className:`mt-1 flex w-full flex-1 text-xs text-muted-foreground transition-colors group-hover:text-foreground/70`,children:d})]})}),n.map(e=>{let t=f&&o.has(e.path),n=s===e.path,i=r.get(e.path)??0;return(0,Y.jsxs)(`div`,{className:X(`relative flex cursor-pointer items-start gap-2.5 rounded-xl border px-2.5 py-2 transition-colors`,F4(n)),children:[(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Open diff for ${e.path}`,onClick:()=>{m(e.path)},className:`absolute inset-0 cursor-pointer rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background`}),f&&(0,Y.jsx)(`input`,{type:`checkbox`,"aria-label":e.path,checked:t,onChange:()=>{h(e.path)},className:`relative z-10 mt-0.5 h-4 w-4 rounded border-border bg-background text-primary`}),(0,Y.jsxs)(`div`,{className:`relative z-10 min-w-0 flex-1 cursor-pointer text-left pointer-events-none`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex flex-1 items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 truncate font-mono text-xs text-foreground`,children:R4(e.path)}),i>0&&(0,Y.jsx)(`span`,{"aria-label":`${i} comment${i===1?``:`s`} in ${e.path}`,className:g,children:i})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 text-[11px]`,children:[(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,e.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,e.deletions]})]})]}),(0,Y.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-1.5 text-[11px]`,children:[e.status&&(0,Y.jsx)(lb,{variant:`outline`,className:I4[e.status],children:L4[e.status]}),e.staged&&(0,Y.jsx)(lb,{variant:`outline`,children:`Staged`}),e.unstaged&&(0,Y.jsx)(lb,{variant:`outline`,children:`Unstaged`}),e.conflicted&&(0,Y.jsx)(lb,{variant:`destructive`,children:`Conflicted`}),e.originalPath&&(0,Y.jsx)(`span`,{className:`break-all font-mono text-[11px] text-muted-foreground transition-colors group-hover:text-foreground/70`,children:e.status===`renamed`?`from ${e.originalPath}`:e.originalPath})]})]})]},`${e.path}:${e.originalPath??``}`)})]})]})]})},B4=[`[--diff-background-color:transparent]`,`[--diff-text-color:rgb(226_232_240)]`,`[--diff-selection-background-color:rgba(148,163,184,0.2)]`,`[--diff-gutter-insert-background-color:rgba(34,197,94,0.16)]`,`[--diff-gutter-delete-background-color:rgba(244,63,94,0.16)]`,`[--diff-gutter-selected-background-color:rgba(148,163,184,0.12)]`,`[--diff-code-insert-background-color:rgba(34,197,94,0.08)]`,`[--diff-code-delete-background-color:rgba(244,63,94,0.08)]`,`[--diff-code-insert-edit-background-color:rgba(34,197,94,0.22)]`,`[--diff-code-delete-edit-background-color:rgba(244,63,94,0.22)]`,`[--diff-code-selected-background-color:rgba(148,163,184,0.12)]`,`[--diff-font-family:var(--font-mono)]`,`[&_.diff]:w-full`,`[&_.diff]:border-collapse`,`[&_.diff]:font-mono`,`[&_.diff-code]:whitespace-pre-wrap`,`[&_.diff-code]:break-words`,`[&_.diff-gutter]:select-none`].join(` `),V4=25e4,H4=2e3,U4=new Map,W4=e=>e?e.split(`
|
|
256
|
-
`).length:0,G4=e=>{let t=e.diff??``;return t?t.length<=V4&&W4(t)<=H4:!0},K4=({scope:e,projectId:t,ticketId:n,projectTargetBundleId:r=null})=>e===`project_root`?t?`project_root:${t}:${r??`repo_root`}`:null:n?`ticket:${t??`none`}:${n}`:null,q4=e=>e?U4.get(e)??null:null,J4=({cacheKey:e,diffResponse:t,gitStatus:n})=>{let r=n.workspace_signature?.trim();if(!(!e||!r)){if(!G4(t)){U4.delete(e);return}U4.set(e,{diffResponse:t,gitStatus:n,workspaceSignature:r})}},Y4=e=>{e&&U4.delete(e)},X4={css:`css`,html:`markup`,htm:`markup`,js:`javascript`,jsx:`jsx`,json:`json`,md:`markdown`,markdown:`markdown`,sh:`bash`,ts:`typescript`,tsx:`tsx`,yaml:`yaml`,yml:`yaml`},Z4=e=>{if(!e)return null;let t=e.split(` -> `),n=t[t.length-1]??e,r=n.split(`/`),i=r[r.length-1]??n,a=``;if(i.includes(`.`)){let e=i.split(`.`);a=e[e.length-1]?.toLowerCase()??``}return X4[a]??null},Q4=new Set,$4=e=>{e&&Q4.forEach(t=>t(e))},e3=e=>(Q4.add(e),()=>{Q4.delete(e)}),t3=300,n3=(e,t={})=>{let n=t.dedupeMs??t3,r=0,i=()=>{if(document.visibilityState!==`visible`)return;let t=Date.now();t-r<n||(r=t,e())};return window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,i),()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,i)}},r3=i(((e,t)=>{t.exports=r;var n=Object.prototype.hasOwnProperty;function r(){for(var e={},t=0;t<arguments.length;t++){var r=arguments[t];for(var i in r)n.call(r,i)&&(e[i]=r[i])}return e}})),i3=i(((e,t)=>{t.exports=r;var n=r.prototype;n.space=null,n.normal={},n.property={};function r(e,t,n){this.property=e,this.normal=t,n&&(this.space=n)}})),a3=i(((e,t)=>{var n=r3(),r=i3();t.exports=i;function i(e){for(var t=e.length,i=[],a=[],o=-1,s,c;++o<t;)s=e[o],i.push(s.property),a.push(s.normal),c=s.space;return new r(n.apply(null,i),n.apply(null,a),c)}})),o3=i(((e,t)=>{t.exports=n;function n(e){return e.toLowerCase()}})),s3=i(((e,t)=>{t.exports=r;var n=r.prototype;n.space=null,n.attribute=null,n.property=null,n.boolean=!1,n.booleanish=!1,n.overloadedBoolean=!1,n.number=!1,n.commaSeparated=!1,n.spaceSeparated=!1,n.commaOrSpaceSeparated=!1,n.mustUseProperty=!1,n.defined=!1;function r(e,t){this.property=e,this.attribute=t}})),c3=i((e=>{var t=0;e.boolean=n(),e.booleanish=n(),e.overloadedBoolean=n(),e.number=n(),e.spaceSeparated=n(),e.commaSeparated=n(),e.commaOrSpaceSeparated=n();function n(){return 2**++t}})),l3=i(((e,t)=>{var n=s3(),r=c3();t.exports=o,o.prototype=new n,o.prototype.defined=!0;var i=[`boolean`,`booleanish`,`overloadedBoolean`,`number`,`commaSeparated`,`spaceSeparated`,`commaOrSpaceSeparated`],a=i.length;function o(e,t,o,c){var l=-1,u;for(s(this,`space`,c),n.call(this,e,t);++l<a;)u=i[l],s(this,u,(o&r[u])===r[u])}function s(e,t,n){n&&(e[t]=n)}})),u3=i(((e,t)=>{var n=o3(),r=i3(),i=l3();t.exports=a;function a(e){var t=e.space,a=e.mustUseProperty||[],o=e.attributes||{},s=e.properties,c=e.transform,l={},u={},d,f;for(d in s)f=new i(d,c(o,d),s[d],t),a.indexOf(d)!==-1&&(f.mustUseProperty=!0),l[d]=f,u[n(d)]=d,u[n(f.attribute)]=d;return new r(l,u,t)}})),d3=i(((e,t)=>{t.exports=u3()({space:`xlink`,transform:n,properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}});function n(e,t){return`xlink:`+t.slice(5).toLowerCase()}})),f3=i(((e,t)=>{t.exports=u3()({space:`xml`,transform:n,properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function n(e,t){return`xml:`+t.slice(3).toLowerCase()}})),p3=i(((e,t)=>{t.exports=n;function n(e,t){return t in e?e[t]:t}})),m3=i(((e,t)=>{var n=p3();t.exports=r;function r(e,t){return n(e,t.toLowerCase())}})),h3=i(((e,t)=>{t.exports=u3()({space:`xmlns`,attributes:{xmlnsxlink:`xmlns:xlink`},transform:m3(),properties:{xmlns:null,xmlnsXLink:null}})})),g3=i(((e,t)=>{var n=c3(),r=u3(),i=n.booleanish,a=n.number,o=n.spaceSeparated;t.exports=r({transform:s,properties:{ariaActiveDescendant:null,ariaAtomic:i,ariaAutoComplete:null,ariaBusy:i,ariaChecked:i,ariaColCount:a,ariaColIndex:a,ariaColSpan:a,ariaControls:o,ariaCurrent:null,ariaDescribedBy:o,ariaDetails:null,ariaDisabled:i,ariaDropEffect:o,ariaErrorMessage:null,ariaExpanded:i,ariaFlowTo:o,ariaGrabbed:i,ariaHasPopup:null,ariaHidden:i,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:o,ariaLevel:a,ariaLive:null,ariaModal:i,ariaMultiLine:i,ariaMultiSelectable:i,ariaOrientation:null,ariaOwns:o,ariaPlaceholder:null,ariaPosInSet:a,ariaPressed:i,ariaReadOnly:i,ariaRelevant:null,ariaRequired:i,ariaRoleDescription:o,ariaRowCount:a,ariaRowIndex:a,ariaRowSpan:a,ariaSelected:i,ariaSetSize:a,ariaSort:null,ariaValueMax:a,ariaValueMin:a,ariaValueNow:a,ariaValueText:null,role:null}});function s(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}})),_3=i(((e,t)=>{var n=c3(),r=u3(),i=m3(),a=n.boolean,o=n.overloadedBoolean,s=n.booleanish,c=n.number,l=n.spaceSeparated,u=n.commaSeparated;t.exports=r({space:`html`,attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},transform:i,mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:u,acceptCharset:l,accessKey:l,action:null,allow:null,allowFullScreen:a,allowPaymentRequest:a,allowUserMedia:a,alt:null,as:null,async:a,autoCapitalize:null,autoComplete:l,autoFocus:a,autoPlay:a,capture:a,charSet:null,checked:a,cite:null,className:l,cols:c,colSpan:null,content:null,contentEditable:s,controls:a,controlsList:l,coords:c|u,crossOrigin:null,data:null,dateTime:null,decoding:null,default:a,defer:a,dir:null,dirName:null,disabled:a,download:o,draggable:s,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:a,formTarget:null,headers:l,height:c,hidden:a,high:c,href:null,hrefLang:null,htmlFor:l,httpEquiv:l,id:null,imageSizes:null,imageSrcSet:u,inputMode:null,integrity:null,is:null,isMap:a,itemId:null,itemProp:l,itemRef:l,itemScope:a,itemType:l,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:a,low:c,manifest:null,max:null,maxLength:c,media:null,method:null,min:null,minLength:c,multiple:a,muted:a,name:null,nonce:null,noModule:a,noValidate:a,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextMenu:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:a,optimum:c,pattern:null,ping:l,placeholder:null,playsInline:a,poster:null,preload:null,readOnly:a,referrerPolicy:null,rel:l,required:a,reversed:a,rows:c,rowSpan:c,sandbox:l,scope:null,scoped:a,seamless:a,selected:a,shape:null,size:c,sizes:null,slot:null,span:c,spellCheck:s,src:null,srcDoc:null,srcLang:null,srcSet:u,start:c,step:null,style:null,tabIndex:c,target:null,title:null,translate:null,type:null,typeMustMatch:a,useMap:null,value:s,width:c,wrap:null,align:null,aLink:null,archive:l,axis:null,background:null,bgColor:null,border:c,borderColor:null,bottomMargin:c,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:a,declare:a,event:null,face:null,frame:null,frameBorder:null,hSpace:c,leftMargin:c,link:null,longDesc:null,lowSrc:null,marginHeight:c,marginWidth:c,noResize:a,noHref:a,noShade:a,noWrap:a,object:null,profile:null,prompt:null,rev:null,rightMargin:c,rules:null,scheme:null,scrolling:s,standby:null,summary:null,text:null,topMargin:c,valueType:null,version:null,vAlign:null,vLink:null,vSpace:c,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:a,disableRemotePlayback:a,prefix:null,property:null,results:c,security:null,unselectable:null}})})),v3=i(((e,t)=>{var n=a3(),r=d3();t.exports=n([f3(),r,h3(),g3(),_3()])})),y3=i(((e,t)=>{var n=o3(),r=l3(),i=s3(),a=`data`;t.exports=l;var o=/^data[-\w.:]+$/i,s=/-[a-z]/g,c=/[A-Z]/g;function l(e,t){var s=n(t),c=t,l=i;return s in e.normal?e.property[e.normal[s]]:(s.length>4&&s.slice(0,4)===a&&o.test(t)&&(t.charAt(4)===`-`?c=u(t):t=d(t),l=r),new l(c,t))}function u(e){var t=e.slice(5).replace(s,p);return a+t.charAt(0).toUpperCase()+t.slice(1)}function d(e){var t=e.slice(4);return s.test(t)?e:(t=t.replace(c,f),t.charAt(0)!==`-`&&(t=`-`+t),a+t)}function f(e){return`-`+e.toLowerCase()}function p(e){return e.charAt(1).toUpperCase()}})),b3=i(((e,t)=>{t.exports=r;var n=/[#.]/g;function r(e,t){for(var r=e||``,i=t||`div`,a={},o=0,s,c,l;o<r.length;)n.lastIndex=o,l=n.exec(r),s=r.slice(o,l?l.index:r.length),s&&(c?c===`#`?a.id=s:a.className?a.className.push(s):a.className=[s]:i=s,o+=s.length),l&&(c=l[0],o++);return{type:`element`,tagName:i,properties:a,children:[]}}})),x3=i((e=>{e.parse=i,e.stringify=a;var t=``,n=` `,r=/[ \t\n\r\f]+/g;function i(e){var n=String(e||t).trim();return n===t?[]:n.split(r)}function a(e){return e.join(n).trim()}})),S3=i((e=>{e.parse=i,e.stringify=a;var t=`,`,n=` `,r=``;function i(e){for(var n=[],i=String(e||r),a=i.indexOf(t),o=0,s=!1,c;!s;)a===-1&&(a=i.length,s=!0),c=i.slice(o,a).trim(),(c||!s)&&n.push(c),o=a+1,a=i.indexOf(t,o);return n}function a(e,i){var a=i||{},o=a.padLeft===!1?r:n,s=a.padRight?n:r;return e[e.length-1]===r&&(e=e.concat(r)),e.join(s+t+o).trim()}})),C3=i(((e,t)=>{var n=y3(),r=o3(),i=b3(),a=x3().parse,o=S3().parse;t.exports=c;var s={}.hasOwnProperty;function c(e,t,r){var c=r?h(r):null;return u;function u(e,n){var r=i(e,t),a=Array.prototype.slice.call(arguments,2),o=r.tagName.toLowerCase(),u;if(r.tagName=c&&s.call(c,o)?c[o]:o,n&&l(n,r)&&(a.unshift(n),n=null),n)for(u in n)p(r.properties,u,n[u]);return d(r.children,a),r.tagName===`template`&&(r.content={type:`root`,children:r.children},r.children=[]),r}function p(t,r,i){var s,c,l;i==null||i!==i||(s=n(e,r),c=s.property,l=i,typeof l==`string`&&(s.spaceSeparated?l=a(l):s.commaSeparated?l=o(l):s.commaOrSpaceSeparated&&(l=a(o(l).join(` `)))),c===`style`&&typeof i!=`string`&&(l=m(l)),c===`className`&&t.className&&(l=t.className.concat(l)),t[c]=f(s,c,l))}}function l(e,t){return typeof e==`string`||`length`in e||u(t.tagName,e)}function u(e,t){var n=t.type;return e===`input`||!n||typeof n!=`string`?!1:typeof t.children==`object`&&`length`in t.children?!0:(n=n.toLowerCase(),e===`button`?n!==`menu`&&n!==`submit`&&n!==`reset`&&n!==`button`:`value`in t)}function d(e,t){var n,r;if(typeof t==`string`||typeof t==`number`){e.push({type:`text`,value:String(t)});return}if(typeof t==`object`&&`length`in t){for(n=-1,r=t.length;++n<r;)d(e,t[n]);return}if(typeof t!=`object`||!(`type`in t))throw Error("Expected node, nodes, or string, got `"+t+"`");e.push(t)}function f(e,t,n){var r,i,a;if(typeof n!=`object`||!(`length`in n))return p(e,t,n);for(i=n.length,r=-1,a=[];++r<i;)a[r]=p(e,t,n[r]);return a}function p(e,t,n){var i=n;return e.number||e.positiveNumber?!isNaN(i)&&i!==``&&(i=Number(i)):(e.boolean||e.overloadedBoolean)&&typeof i==`string`&&(i===``||r(n)===r(t))&&(i=!0),i}function m(e){var t=[],n;for(n in e)t.push([n,e[n]].join(`: `));return t.join(`; `)}function h(e){for(var t=e.length,n=-1,r={},i;++n<t;)i=e[n],r[i.toLowerCase()]=i;return r}})),w3=i(((e,t)=>{var n=v3(),r=C3()(n,`div`);r.displayName=`html`,t.exports=r})),T3=i(((e,t)=>{t.exports=w3()})),E3=r({AElig:()=>`Æ`,AMP:()=>`&`,Aacute:()=>`Á`,Acirc:()=>`Â`,Agrave:()=>`À`,Aring:()=>`Å`,Atilde:()=>`Ã`,Auml:()=>`Ä`,COPY:()=>`©`,Ccedil:()=>`Ç`,ETH:()=>`Ð`,Eacute:()=>`É`,Ecirc:()=>`Ê`,Egrave:()=>`È`,Euml:()=>`Ë`,GT:()=>`>`,Iacute:()=>`Í`,Icirc:()=>`Î`,Igrave:()=>`Ì`,Iuml:()=>`Ï`,LT:()=>`<`,Ntilde:()=>`Ñ`,Oacute:()=>`Ó`,Ocirc:()=>`Ô`,Ograve:()=>`Ò`,Oslash:()=>`Ø`,Otilde:()=>`Õ`,Ouml:()=>`Ö`,QUOT:()=>`"`,REG:()=>`®`,THORN:()=>`Þ`,Uacute:()=>`Ú`,Ucirc:()=>`Û`,Ugrave:()=>`Ù`,Uuml:()=>`Ü`,Yacute:()=>`Ý`,aacute:()=>`á`,acirc:()=>`â`,acute:()=>`´`,aelig:()=>`æ`,agrave:()=>`à`,amp:()=>`&`,aring:()=>`å`,atilde:()=>`ã`,auml:()=>`ä`,brvbar:()=>`¦`,ccedil:()=>`ç`,cedil:()=>`¸`,cent:()=>`¢`,copy:()=>`©`,curren:()=>`¤`,default:()=>D3,deg:()=>`°`,divide:()=>`÷`,eacute:()=>`é`,ecirc:()=>`ê`,egrave:()=>`è`,eth:()=>`ð`,euml:()=>`ë`,frac12:()=>`½`,frac14:()=>`¼`,frac34:()=>`¾`,gt:()=>`>`,iacute:()=>`í`,icirc:()=>`î`,iexcl:()=>`¡`,igrave:()=>`ì`,iquest:()=>`¿`,iuml:()=>`ï`,laquo:()=>`«`,lt:()=>`<`,macr:()=>`¯`,micro:()=>`µ`,middot:()=>`·`,nbsp:()=>`\xA0`,not:()=>`¬`,ntilde:()=>`ñ`,oacute:()=>`ó`,ocirc:()=>`ô`,ograve:()=>`ò`,ordf:()=>`ª`,ordm:()=>`º`,oslash:()=>`ø`,otilde:()=>`õ`,ouml:()=>`ö`,para:()=>`¶`,plusmn:()=>`±`,pound:()=>`£`,quot:()=>`"`,raquo:()=>`»`,reg:()=>`®`,sect:()=>`§`,shy:()=>``,sup1:()=>`¹`,sup2:()=>`²`,sup3:()=>`³`,szlig:()=>`ß`,thorn:()=>`þ`,times:()=>`×`,uacute:()=>`ú`,ucirc:()=>`û`,ugrave:()=>`ù`,uml:()=>`¨`,uuml:()=>`ü`,yacute:()=>`ý`,yen:()=>`¥`,yuml:()=>`ÿ`}),D3,O3=n((()=>{D3={AElig:`Æ`,AMP:`&`,Aacute:`Á`,Acirc:`Â`,Agrave:`À`,Aring:`Å`,Atilde:`Ã`,Auml:`Ä`,COPY:`©`,Ccedil:`Ç`,ETH:`Ð`,Eacute:`É`,Ecirc:`Ê`,Egrave:`È`,Euml:`Ë`,GT:`>`,Iacute:`Í`,Icirc:`Î`,Igrave:`Ì`,Iuml:`Ï`,LT:`<`,Ntilde:`Ñ`,Oacute:`Ó`,Ocirc:`Ô`,Ograve:`Ò`,Oslash:`Ø`,Otilde:`Õ`,Ouml:`Ö`,QUOT:`"`,REG:`®`,THORN:`Þ`,Uacute:`Ú`,Ucirc:`Û`,Ugrave:`Ù`,Uuml:`Ü`,Yacute:`Ý`,aacute:`á`,acirc:`â`,acute:`´`,aelig:`æ`,agrave:`à`,amp:`&`,aring:`å`,atilde:`ã`,auml:`ä`,brvbar:`¦`,ccedil:`ç`,cedil:`¸`,cent:`¢`,copy:`©`,curren:`¤`,deg:`°`,divide:`÷`,eacute:`é`,ecirc:`ê`,egrave:`è`,eth:`ð`,euml:`ë`,frac12:`½`,frac14:`¼`,frac34:`¾`,gt:`>`,iacute:`í`,icirc:`î`,iexcl:`¡`,igrave:`ì`,iquest:`¿`,iuml:`ï`,laquo:`«`,lt:`<`,macr:`¯`,micro:`µ`,middot:`·`,nbsp:`\xA0`,not:`¬`,ntilde:`ñ`,oacute:`ó`,ocirc:`ô`,ograve:`ò`,ordf:`ª`,ordm:`º`,oslash:`ø`,otilde:`õ`,ouml:`ö`,para:`¶`,plusmn:`±`,pound:`£`,quot:`"`,raquo:`»`,reg:`®`,sect:`§`,shy:``,sup1:`¹`,sup2:`²`,sup3:`³`,szlig:`ß`,thorn:`þ`,times:`×`,uacute:`ú`,ucirc:`û`,ugrave:`ù`,uml:`¨`,uuml:`ü`,yacute:`ý`,yen:`¥`,yuml:`ÿ`}})),k3=r({default:()=>A3}),A3,j3=n((()=>{A3={0:`�`,128:`€`,130:`‚`,131:`ƒ`,132:`„`,133:`…`,134:`†`,135:`‡`,136:`ˆ`,137:`‰`,138:`Š`,139:`‹`,140:`Œ`,142:`Ž`,145:`‘`,146:`’`,147:`“`,148:`”`,149:`•`,150:`–`,151:`—`,152:`˜`,153:`™`,154:`š`,155:`›`,156:`œ`,158:`ž`,159:`Ÿ`}})),M3=i(((e,t)=>{t.exports=n;function n(e){var t=typeof e==`string`?e.charCodeAt(0):e;return t>=48&&t<=57}})),N3=i(((e,t)=>{t.exports=n;function n(e){var t=typeof e==`string`?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}})),P3=i(((e,t)=>{t.exports=n;function n(e){var t=typeof e==`string`?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}})),F3=i(((e,t)=>{var n=P3(),r=M3();t.exports=i;function i(e){return n(e)||r(e)}})),I3=i(((e,t)=>{var n,r=59;t.exports=i;function i(e){var t=`&`+e+`;`,i;return n||=document.createElement(`i`),n.innerHTML=t,i=n.textContent,i.charCodeAt(i.length-1)===r&&e!==`semi`||i===t?!1:i}})),L3=i(((e,n)=>{var r=(O3(),t(E3).default),i=(j3(),t(k3).default),a=M3(),o=N3(),s=F3(),c=I3();n.exports=R;var l={}.hasOwnProperty,u=String.fromCharCode,d=Function.prototype,f={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},p=9,m=10,h=12,g=32,_=38,v=59,y=60,b=61,x=35,S=88,C=120,w=65533,T=`named`,E=`hexadecimal`,D=`decimal`,O={};O[E]=16,O[D]=10;var k={};k[T]=s,k[D]=a,k[E]=o;var A=1,j=2,M=3,N=4,P=5,F=6,I=7,L={};L[A]=`Named character references must be terminated by a semicolon`,L[j]=`Numeric character references must be terminated by a semicolon`,L[M]=`Named character references cannot be empty`,L[N]=`Numeric character references cannot be empty`,L[P]=`Named character references must be known`,L[F]=`Numeric character references cannot be disallowed`,L[I]=`Numeric character references cannot be outside the permissible Unicode range`;function R(e,t){var n={},r,i;for(i in t||={},f)r=t[i],n[i]=r??f[i];return(n.position.indent||n.position.start)&&(n.indent=n.position.indent||[],n.position=n.position.start),z(e,n)}function z(e,t){var n=t.additional,a=t.nonTerminated,o=t.text,f=t.reference,R=t.warning,z=t.textContext,H=t.referenceContext,ee=t.warningContext,U=t.position,te=t.indent||[],ne=e.length,re=0,ie=-1,ae=U.column||1,oe=U.line||1,W=``,se=[],ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,G,be,xe,Se,Ce,we,Te;for(typeof n==`string`&&(n=n.charCodeAt(0)),Se=Ee(),he=R?De:d,re--,ne++;++re<ne;)if(fe===m&&(ae=te[ie]||1),fe=e.charCodeAt(re),fe===_){if(me=e.charCodeAt(re+1),me===p||me===m||me===h||me===g||me===_||me===y||me!==me||n&&me===n){W+=u(fe),ae++;continue}for(G=re+1,ye=G,Te=G,me===x?(Te=++ye,me=e.charCodeAt(Te),me===S||me===C?(be=E,Te=++ye):be=D):be=T,ce=``,ve=``,de=``,xe=k[be],Te--;++Te<ne&&(me=e.charCodeAt(Te),xe(me));)de+=u(me),be===T&&l.call(r,de)&&(ce=de,ve=r[de]);ue=e.charCodeAt(Te)===v,ue&&(Te++,le=be===T?c(de):!1,le&&(ce=de,ve=le)),we=1+Te-G,!ue&&!a||(de?be===T?(ue&&!ve?he(P,1):(ce!==de&&(Te=ye+ce.length,we=1+Te-ye,ue=!1),ue||(ge=ce?A:M,t.attribute?(me=e.charCodeAt(Te),me===b?(he(ge,we),ve=null):s(me)?ve=null:he(ge,we)):he(ge,we))),pe=ve):(ue||he(j,we),pe=parseInt(de,O[be]),B(pe)?(he(I,we),pe=u(w)):pe in i?(he(F,we),pe=i[pe]):(_e=``,V(pe)&&he(F,we),pe>65535&&(pe-=65536,_e+=u(pe>>>10|55296),pe=56320|pe&1023),pe=_e+u(pe))):be!==T&&he(N,we)),pe?(Oe(),Se=Ee(),re=Te-1,ae+=Te-G+1,se.push(pe),Ce=Ee(),Ce.offset++,f&&f.call(H,pe,{start:Se,end:Ce},e.slice(G-1,Te)),Se=Ce):(de=e.slice(G-1,Te),W+=de,ae+=de.length,re=Te-1)}else fe===10&&(oe++,ie++,ae=0),fe===fe?(W+=u(fe),ae++):Oe();return se.join(``);function Ee(){return{line:oe,column:ae,offset:re+(U.offset||0)}}function De(e,t){var n=Ee();n.column+=t,n.offset+=t,R.call(ee,L[e],n,e)}function Oe(){W&&=(se.push(W),o&&o.call(z,W,{start:Se,end:Ee()}),``)}}function B(e){return e>=55296&&e<=57343||e>1114111}function V(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)==65535||(e&65535)==65534}})),R3=i(((e,t)=>{var n=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,`&`).replace(/</g,`<`).replace(/\u00a0/g,` `)},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,`__id`,{value:++n}),e.__id},clone:function e(t,n){n||={};var r,a;switch(i.util.type(t)){case`Object`:if(a=i.util.objId(t),n[a])return n[a];for(var o in r={},n[a]=r,t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case`Array`:return a=i.util.objId(t),n[a]?n[a]:(r=[],n[a]=r,t.forEach(function(t,i){r[i]=e(t,n)}),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return`none`},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,`gi`),``),e.classList.add(`language-`+n)},currentScript:function(){if(typeof document>`u`)return null;if(`currentScript`in document)return document.currentScript;try{throw Error()}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName(`script`);for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r=`no-`+t;e;){var i=e.classList;if(i.contains(t))return!0;if(i.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=i.util.clone(i.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r||=i.languages;var a=r[e],o={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(o[c]=n[c]);n.hasOwnProperty(s)||(o[s]=a[s])}var l=r[e];return r[e]=o,i.languages.DFS(i.languages,function(t,n){n===l&&t!=e&&(this[t]=o)}),o},DFS:function e(t,n,r,a){a||={};var o=i.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var c=t[s],l=i.util.type(c);l===`Object`&&!a[o(c)]?(a[o(c)]=!0,e(c,n,null,a)):l===`Array`&&!a[o(c)]&&(a[o(c)]=!0,e(c,n,s,a))}}},plugins:{},highlightAll:function(e,t){i.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:`code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code`};i.hooks.run(`before-highlightall`,r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),i.hooks.run(`before-all-elements-highlight`,r);for(var a=0,o;o=r.elements[a++];)i.highlightElement(o,t===!0,r.callback)},highlightElement:function(t,n,r){var a=i.util.getLanguage(t),o=i.languages[a];i.util.setLanguage(t,a);var s=t.parentElement;s&&s.nodeName.toLowerCase()===`pre`&&i.util.setLanguage(s,a);var c={element:t,language:a,grammar:o,code:t.textContent};function l(e){c.highlightedCode=e,i.hooks.run(`before-insert`,c),c.element.innerHTML=c.highlightedCode,i.hooks.run(`after-highlight`,c),i.hooks.run(`complete`,c),r&&r.call(c.element)}if(i.hooks.run(`before-sanity-check`,c),s=c.element.parentElement,s&&s.nodeName.toLowerCase()===`pre`&&!s.hasAttribute(`tabindex`)&&s.setAttribute(`tabindex`,`0`),!c.code){i.hooks.run(`complete`,c),r&&r.call(c.element);return}if(i.hooks.run(`before-highlight`,c),!c.grammar){l(i.util.encode(c.code));return}if(n&&e.Worker){var u=new Worker(i.filename);u.onmessage=function(e){l(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else l(i.highlight(c.code,c.grammar,c.language))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(i.hooks.run(`before-tokenize`,r),!r.grammar)throw Error(`The language "`+r.language+`" has no grammar.`);return r.tokens=i.tokenize(r.code,r.grammar),i.hooks.run(`after-tokenize`,r),a.stringify(i.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var i=new c;return l(i,i.head,e),s(e,i,t,i.head,0),d(i)},hooks:{all:{},add:function(e,t){var n=i.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=i.hooks.all[e];if(!(!n||!n.length))for(var r=0,a;a=n[r++];)a(t)}},Token:a};e.Prism=i;function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||``).length|0}a.stringify=function e(t,n){if(typeof t==`string`)return t;if(Array.isArray(t)){var r=``;return t.forEach(function(t){r+=e(t,n)}),r}var a={type:t.type,content:e(t.content,n),tag:`span`,classes:[`token`,t.type],attributes:{},language:n},o=t.alias;o&&(Array.isArray(o)?Array.prototype.push.apply(a.classes,o):a.classes.push(o)),i.hooks.run(`wrap`,a);var s=``;for(var c in a.attributes)s+=` `+c+`="`+(a.attributes[c]||``).replace(/"/g,`"`)+`"`;return`<`+a.tag+` class="`+a.classes.join(` `)+`"`+s+`>`+a.content+`</`+a.tag+`>`};function o(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var a=i[1].length;i.index+=a,i[0]=i[0].slice(a)}return i}function s(e,t,n,r,c,d){for(var f in n)if(!(!n.hasOwnProperty(f)||!n[f])){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+`,`+m)return;var h=p[m],g=h.inside,_=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var b=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,b+`g`)}for(var x=h.pattern||h,S=r.next,C=c;S!==t.tail&&!(d&&C>=d.reach);C+=S.value.length,S=S.next){var w=S.value;if(t.length>e.length)return;if(!(w instanceof a)){var T=1,E;if(v){if(E=o(x,C,e,_),!E||E.index>=e.length)break;var D=E.index,O=E.index+E[0].length,k=C;for(k+=S.value.length;D>=k;)S=S.next,k+=S.value.length;if(k-=S.value.length,C=k,S.value instanceof a)continue;for(var A=S;A!==t.tail&&(k<O||typeof A.value==`string`);A=A.next)T++,k+=A.value.length;T--,w=e.slice(C,k),E.index-=C}else if(E=o(x,0,w,_),!E)continue;var D=E.index,j=E[0],M=w.slice(0,D),N=w.slice(D+j.length),P=C+w.length;d&&P>d.reach&&(d.reach=P);var F=S.prev;M&&(F=l(t,F,M),C+=M.length),u(t,F,T);var I=new a(f,g?i.tokenize(j,g):j,y,j);if(S=l(t,F,I),N&&l(t,S,N),T>1){var L={cause:f+`,`+m,reach:P};s(e,t,n,S.prev,C,L),d&&L.reach>d.reach&&(d.reach=L.reach)}}}}}}function c(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function u(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}function d(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}if(!e.document)return e.addEventListener&&(i.disableWorkerMessageHandler||e.addEventListener(`message`,function(t){var n=JSON.parse(t.data),r=n.language,a=n.code,o=n.immediateClose;e.postMessage(i.highlight(a,i.languages[r],r)),o&&e.close()},!1)),i;var f=i.util.currentScript();f&&(i.filename=f.src,f.hasAttribute(`data-manual`)&&(i.manual=!0));function p(){i.manual||i.highlightAll()}if(!i.manual){var m=document.readyState;m===`loading`||m===`interactive`&&f&&f.defer?document.addEventListener(`DOMContentLoaded`,p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return i}(typeof window<`u`?window:typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope?self:{});t!==void 0&&t.exports&&(t.exports=n),typeof global<`u`&&(global.Prism=n)})),z3=i(((e,t)=>{t.exports=n,n.displayName=`markup`,n.aliases=[`html`,`mathml`,`svg`,`xml`,`ssml`,`atom`,`rss`];function n(e){e.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:`named-entity`},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside[`attr-value`].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside[`internal-subset`].inside=e.languages.markup,e.hooks.add(`wrap`,function(e){e.type===`entity`&&(e.attributes.title=e.content.value.replace(/&/,`&`))}),Object.defineProperty(e.languages.markup.tag,`addInlined`,{value:function(t,n){var r={};r[`language-`+n]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i[`language-`+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var a={};a[t]={pattern:RegExp(`(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)`.replace(/__/g,function(){return t}),`i`),lookbehind:!0,greedy:!0,inside:i},e.languages.insertBefore(`markup`,`cdata`,a)}}),Object.defineProperty(e.languages.markup.tag,`addAttribute`,{value:function(t,n){e.languages.markup.tag.inside[`special-attr`].push({pattern:RegExp(`(^|["'\\s])(?:`+t+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,`i`),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,`language-`+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend(`markup`,{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}})),B3=i(((e,t)=>{t.exports=n,n.displayName=`css`,n.aliases=[];function n(e){(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:`selector`},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp(`\\burl\\((?:`+t.source+`|(?:[^\\\\\\r\\n()"']|\\\\[\\s\\S])*)\\)`,`i`),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp(`^`+t.source+`$`),alias:`url`}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+`)*(?=\\s*\\{)`),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined(`style`,`css`),n.tag.addAttribute(`style`,`css`))})(e)}})),V3=i(((e,t)=>{t.exports=n,n.displayName=`clike`,n.aliases=[];function n(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}})),H3=i(((e,t)=>{t.exports=n,n.displayName=`javascript`,n.aliases=[`js`];function n(e){e.languages.javascript=e.languages.extend(`clike`,{"class-name":[e.languages.clike[`class-name`],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(`(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])`),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript[`class-name`][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore(`javascript`,`keyword`,{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:`language-regex`,inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:`function`},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore(`javascript`,`string`,{hashbang:{pattern:/^#!.*/,greedy:!0,alias:`comment`},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:`string`},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:`punctuation`},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:`property`}}),e.languages.insertBefore(`javascript`,`operator`,{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:`property`}}),e.languages.markup&&(e.languages.markup.tag.addInlined(`script`,`javascript`),e.languages.markup.tag.addAttribute(`on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)`,`javascript`)),e.languages.js=e.languages.javascript}})),U3=i(((e,t)=>{var n=typeof globalThis==`object`?globalThis:typeof self==`object`?self:typeof window==`object`?window:typeof global==`object`?global:{},r=C();n.Prism={manual:!0,disableWorkerMessageHandler:!0};var i=T3(),a=L3(),o=R3(),s=z3(),c=B3(),l=V3(),u=H3();r();var d={}.hasOwnProperty;function f(){}f.prototype=o;var p=new f;t.exports=p,p.highlight=g,p.register=m,p.alias=h,p.registered=_,p.listLanguages=v,m(s),m(c),m(l),m(u),p.util.encode=x,p.Token.stringify=y;function m(e){if(typeof e!=`function`||!e.displayName)throw Error("Expected `function` for `grammar`, got `"+e+"`");p.languages[e.displayName]===void 0&&e(p)}function h(e,t){var n=p.languages,r=e,i,a,o,s;for(i in t&&(r={},r[e]=t),r)for(a=r[i],a=typeof a==`string`?[a]:a,o=a.length,s=-1;++s<o;)n[a[s]]=n[i]}function g(e,t){var n=o.highlight,r;if(typeof e!=`string`)throw Error("Expected `string` for `value`, got `"+e+"`");if(p.util.type(t)===`Object`)r=t,t=null;else{if(typeof t!=`string`)throw Error("Expected `string` for `name`, got `"+t+"`");if(d.call(p.languages,t))r=p.languages[t];else throw Error("Unknown language: `"+t+"` is not registered")}return n.call(this,e,r,t)}function _(e){if(typeof e!=`string`)throw Error("Expected `string` for `language`, got `"+e+"`");return d.call(p.languages,e)}function v(){var e=p.languages,t=[],n;for(n in e)d.call(e,n)&&typeof e[n]==`object`&&t.push(n);return t}function y(e,t,n){var r;return typeof e==`string`?{type:`text`,value:e}:p.util.type(e)===`Array`?b(e,t):(r={type:e.type,content:p.Token.stringify(e.content,t,n),tag:`span`,classes:[`token`,e.type],attributes:{},language:t,parent:n},e.alias&&(r.classes=r.classes.concat(e.alias)),p.hooks.run(`wrap`,r),i(r.tag+`.`+r.classes.join(`.`),S(r.attributes),r.content))}function b(e,t){for(var n=[],r=e.length,i=-1,a;++i<r;)a=e[i],a!==``&&a!=null&&n.push(a);for(i=-1,r=n.length;++i<r;)a=n[i],n[i]=p.Token.stringify(a,t,n);return n}function x(e){return e}function S(e){for(var t in e)e[t]=a(e[t]);return e}function C(){var e=`Prism`in n,t=e?n.Prism:void 0;return r;function r(){e?n.Prism=t:delete n.Prism,e=void 0,t=void 0}}})),W3=i(((e,t)=>{t.exports=n,n.displayName=`bash`,n.aliases=[`shell`];function n(e){(function(e){var t=`\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b`,n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:`punctuation`,inside:null},r={bash:n,environment:{pattern:RegExp(`\\$`+t),alias:`constant`},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp(`(\\{)`+t),lookbehind:!0,alias:`constant`}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:`important`},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:`function`},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:`function`}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:`variable`,lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp(`(^|[\\s;|&]|[<>]\\()`+t),lookbehind:!0,alias:`constant`}},alias:`variable`,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp(`\\$?`+t),alias:`constant`},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:`class-name`},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:`important`},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:`important`}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=[`comment`,`function-name`,`for-or-select`,`assign-left`,`string`,`environment`,`function`,`keyword`,`builtin`,`boolean`,`file-descriptor`,`operator`,`punctuation`,`number`],a=r.variable[1].inside,o=0;o<i.length;o++)a[i[o]]=e.languages.bash[i[o]];e.languages.shell=e.languages.bash})(e)}})),G3=i(((e,t)=>{t.exports=n,n.displayName=`json`,n.aliases=[`webmanifest`];function n(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:`keyword`}},e.languages.webmanifest=e.languages.json}})),K3=i(((e,t)=>{t.exports=n,n.displayName=`jsx`,n.aliases=[];function n(e){(function(e){var t=e.util.clone(e.languages.javascript),n=`(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)`,r=`(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})`,i=`(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})`;function a(e,t){return e=e.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return r}).replace(/<SPREAD>/g,function(){return i}),RegExp(e,t)}i=a(i).source,e.languages.jsx=e.languages.extend(`markup`,t),e.languages.jsx.tag.pattern=a(`<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:"(?:\\\\[\\s\\S]|[^\\\\"])*"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>`),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside[`attr-value`].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside[`class-name`]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore(`inside`,`attr-name`,{spread:{pattern:a(`<SPREAD>`),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore(`inside`,`special-attr`,{script:{pattern:a(`=<BRACES>`),alias:`language-javascript`,inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:`punctuation`},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?typeof e==`string`?e:typeof e.content==`string`?e.content:e.content.map(o).join(``):``},s=function(t){for(var n=[],r=0;r<t.length;r++){var i=t[r],a=!1;if(typeof i!=`string`&&(i.type===`tag`&&i.content[0]&&i.content[0].type===`tag`?i.content[0].content[0].content===`</`?n.length>0&&n[n.length-1].tagName===o(i.content[0].content[1])&&n.pop():i.content[i.content.length-1].content===`/>`||n.push({tagName:o(i.content[0].content[1]),openedBraces:0}):n.length>0&&i.type===`punctuation`&&i.content===`{`?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&i.type===`punctuation`&&i.content===`}`?n[n.length-1].openedBraces--:a=!0),(a||typeof i==`string`)&&n.length>0&&n[n.length-1].openedBraces===0){var c=o(i);r<t.length-1&&(typeof t[r+1]==`string`||t[r+1].type===`plain-text`)&&(c+=o(t[r+1]),t.splice(r+1,1)),r>0&&(typeof t[r-1]==`string`||t[r-1].type===`plain-text`)&&(c=o(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token(`plain-text`,c,null,c)}i.content&&typeof i.content!=`string`&&s(i.content)}};e.hooks.add(`after-tokenize`,function(e){e.language!==`jsx`&&e.language!==`tsx`||s(e.tokens)})})(e)}})),q3=i(((e,t)=>{t.exports=n,n.displayName=`markdown`,n.aliases=[`md`];function n(e){(function(e){var t=`(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))`;function n(e){return e=e.replace(/<inner>/g,function(){return t}),RegExp(`((?:^|[^\\\\])(?:\\\\{2})*)(?:`+e+`)`)}var r="(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+",i=`\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))`.replace(/__/g,function(){return r}),a=`\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)`;e.languages.markdown=e.languages.extend(`markup`,{}),e.languages.insertBefore(`markdown`,`prolog`,{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:[`yaml`,`language-yaml`],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:`punctuation`},table:{pattern:RegExp(`^`+i+a+`(?:`+i+`)*`,`m`),inside:{"table-data-rows":{pattern:RegExp(`^(`+i+a+`)(?:`+i+`)*$`),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp(`^(`+i+`)`+a+`$`),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp(`^`+i+`$`),inside:{"table-header":{pattern:RegExp(r),alias:`important`,inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:`keyword`},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:`important`,inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:`important`,inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:`punctuation`},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:`punctuation`},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:`url`},bold:{pattern:n(`\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(`\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(`(~~?)(?:(?!~)<inner>)+\\2`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:[`code`,`keyword`]},url:{pattern:n(`!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])`),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),[`url`,`bold`,`italic`,`strike`].forEach(function(t){[`url`,`bold`,`italic`,`strike`,`code-snippet`].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add(`after-tokenize`,function(e){if(e.language!==`markdown`&&e.language!==`md`)return;function t(e){if(!(!e||typeof e==`string`))for(var n=0,r=e.length;n<r;n++){var i=e[n];if(i.type!==`code`){t(i.content);continue}var a=i.content[1],o=i.content[3];if(a&&o&&a.type===`code-language`&&o.type===`code-block`&&typeof a.content==`string`){var s=a.content.replace(/\b#/g,`sharp`).replace(/\b\+\+/g,`pp`);s=(/[a-z][\w-]*/i.exec(s)||[``])[0].toLowerCase();var c=`language-`+s;o.alias?typeof o.alias==`string`?o.alias=[o.alias,c]:o.alias.push(c):o.alias=[c]}}}t(e.tokens)}),e.hooks.add(`wrap`,function(t){if(t.type===`code-block`){for(var n=``,r=0,i=t.classes.length;r<i;r++){var a=t.classes[r],o=/language-(.+)/.exec(a);if(o){n=o[1];break}}var s=e.languages[n];if(s)t.content=e.highlight(l(t.content.value),s,n);else if(n&&n!==`none`&&e.plugins.autoloader){var c=`md-`+new Date().valueOf()+`-`+Math.floor(Math.random()*0x2386f26fc10000);t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})}}});var o=RegExp(e.languages.markup.tag.pattern.source,`gi`),s={amp:`&`,lt:`<`,gt:`>`,quot:`"`},c=String.fromCodePoint||String.fromCharCode;function l(e){var t=e.replace(o,``);return t=t.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(e,t){return t=t.toLowerCase(),t[0]===`#`?c(t[1]===`x`?parseInt(t.slice(2),16):Number(t.slice(1))):s[t]||e}),t}e.languages.md=e.languages.markdown})(e)}})),J3=i(((e,t)=>{t.exports=n,n.displayName=`typescript`,n.aliases=[`ts`];function n(e){(function(e){e.languages.typescript=e.languages.extend(`javascript`,{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript[`literal-property`];var t=e.languages.extend(`typescript`,{});delete t[`class-name`],e.languages.typescript[`class-name`].inside=t,e.languages.insertBefore(`typescript`,`function`,{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:`operator`},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:`class-name`,inside:t}}}}),e.languages.ts=e.languages.typescript})(e)}})),Y3=i(((e,t)=>{var n=K3(),r=J3();t.exports=i,i.displayName=`tsx`,i.aliases=[];function i(e){e.register(n),e.register(r),(function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend(`jsx`,t),delete e.languages.tsx.parameter,delete e.languages.tsx[`literal-property`];var n=e.languages.tsx.tag;n.pattern=RegExp(`(^|[^\\w$]|(?=<\\/))(?:`+n.pattern.source+`)`,n.pattern.flags),n.lookbehind=!0})(e)}})),X3=i(((e,t)=>{t.exports=n,n.displayName=`yaml`,n.aliases=[`yml`];function n(e){(function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r=`(?:`+n.source+`(?:[ ]+`+t.source+`)?|`+t.source+`(?:[ ]+`+n.source+`)?)`,i=`(?:[^\\s\\x00-\\x08\\x0e-\\x1f!"#%&'*,\\-:>?@[\\]\`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*`.replace(/<PLAIN>/g,function(){return`[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]`}),a=`"(?:[^"\\\\\\r\\n]|\\\\.)*"|'(?:[^'\\\\\\r\\n]|\\\\.)*'`;function o(e,t){t=(t||``).replace(/m/g,``)+`m`;var n=`([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))`.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e});return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(`([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)`.replace(/<<prop>>/g,function(){return r})),lookbehind:!0,alias:`string`},comment:/#.*/,key:{pattern:RegExp(`((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)`.replace(/<<prop>>/g,function(){return r}).replace(/<<key>>/g,function(){return`(?:`+i+`|`+a+`)`})),lookbehind:!0,greedy:!0,alias:`atrule`},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:`important`},datetime:{pattern:o(`\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?`),lookbehind:!0,alias:`number`},boolean:{pattern:o(`false|true`,`i`),lookbehind:!0,alias:`important`},null:{pattern:o(`null|~`,`i`),lookbehind:!0,alias:`important`},string:{pattern:o(a),lookbehind:!0,greedy:!0},number:{pattern:o(`[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)`,`i`),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml})(e)}})),Z3=e(U3(),1),Q3=e(W3(),1),$3=e(B3(),1),e6=e(H3(),1),t6=e(G3(),1),n6=e(K3(),1),r6=e(q3(),1),i6=e(z3(),1),a6=e(Y3(),1),o6=e(J3(),1),s6=e(X3(),1),c6=e=>{let t=e.displayName;!t||Z3.default.registered(t)||Z3.default.register(e)};c6(i6.default),c6($3.default),c6(e6.default),c6(o6.default),c6(a6.default),c6(t6.default),c6(n6.default),c6(r6.default),c6(s6.default),c6(Q3.default);var l6=r({TicketChangesModal:()=>B6}),u6=(e,t)=>sb.t(`common:ticketChangesModal.${e}`,t),d6=4,f6=1500,p6=`archon.ticket-changes.review-comments`,m6=[],h6=[],g6=[],_6=e=>new Set(e.map(e=>e.path)),v6=(e,t)=>{if(!e)return null;if(e.blocked_reason)return e.blocked_reason;let n=e.files.find(e=>!t.has(e.path)&&e.staged);return n?`"${n.path}" already has staged changes. Finish that commit in the terminal first.`:null},y6=e=>e.replace(/^[ab]\//,``),b6=e=>{let t=`oldPath`in e&&typeof e.oldPath==`string`?y6(e.oldPath):``,n=`newPath`in e&&typeof e.newPath==`string`?y6(e.newPath):``;return[...new Set([n,t].filter(e=>e&&e!==`/dev/null`))]},x6=e=>{let[t,n]=b6(e);return!t&&!n?`Unknown file`:t&&n&&t!==n?`${n} -> ${t}`:t??n??`Unknown file`},S6=e=>{let[t,n]=b6(e);return t??n??null},C6=e=>e.hunks.reduce((e,t)=>e+t.changes.length,0),w6=e=>{if(C6(e)>f6)return null;let t=Z4(S6(e));if(!t)return null;try{return qO(e.hunks,{highlight:!0,refractor:Z3.default,language:t,enhancers:[GO(e.hunks)]})}catch{return null}},T6=(e,t)=>e instanceof Error?e.message:t,E6=(e,t)=>`${p6}:${e}:${t}`,D6=()=>({activeTarget:null,editingCommentKey:null,draftInput:``,comments:new Map,signature:null}),O6=()=>({uncommitted:D6(),bundle_diff:D6()}),k6=e=>({uncommitted:e(),bundle_diff:e()}),A6=()=>k6(()=>new Map),j6=e=>{let t=5381;for(let n=0;n<e.length;n+=1)t=(t<<5)+t^e.charCodeAt(n);return`${e.length}:${t>>>0}`},M6=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return(t.scope===void 0||t.scope===`uncommitted`||t.scope===`bundle_diff`)&&typeof t.filePath==`string`&&typeof t.changeKey==`string`&&typeof t.changeType==`string`&&(typeof t.oldLineNumber==`number`||t.oldLineNumber===null)&&(typeof t.newLineNumber==`number`||t.newLineNumber===null)&&typeof t.hunkHeader==`string`&&typeof t.lineContent==`string`&&typeof t.diffSnippet==`string`&&typeof t.comment==`string`},N6=e=>{try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return null;let n=t;if(typeof n.diffSignature!=`string`||!Array.isArray(n.comments))return null;let r=n.comments.filter(M6).map(e=>({scope:e.scope??`uncommitted`,filePath:e.filePath,changeKey:e.changeKey,changeType:e.changeType,oldLineNumber:e.oldLineNumber,newLineNumber:e.newLineNumber,hunkHeader:e.hunkHeader,lineContent:e.lineContent,diffSnippet:e.diffSnippet,comment:e.comment}));return r.length===n.comments.length?{diffSignature:n.diffSignature,comments:r}:null}catch{return null}},P6=e=>new Map(e.map(e=>[sk(e.filePath,e.changeKey),e])),F6=(e,t)=>{e.set(t,(e.get(t)??0)+1)},I6=e=>e.find(e=>e.trim())||``,L6=({gitStatus:e,isProjectTargetRepoRoot:t,isGitHubConnected:n,effectiveDefaultBaseBranch:r})=>t&&!!e?.branch&&e?.has_upstream===!0&&(e?.ahead??0)===0&&!!r&&e?.branch!==r&&n,R6=({pullRequest:e,isLoading:t,isOpen:n,canCreate:r,disabledReason:i,isCreating:a,isSyncing:o,isGeneratingDescription:s,title:c,body:l,baseBranch:u,onOpenChange:d,onTitleChange:f,onBodyChange:p,onBaseBranchChange:m,showGenerateDescription:h,onGenerateDescription:g,onCreate:_})=>t?(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`outline`,disabled:!0,className:`gap-2`,children:u6(`loadingPullRequest`)}):o?(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,disabled:!0,className:`gap-2`,children:[(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}),u6(`checkingPullRequest`)]}):e?(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl border border-border/80 bg-background/50 px-3 py-2`,children:[(0,Y.jsx)(sN,{pullRequest:e}),(0,Y.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,className:`text-xs font-medium text-sky-300 underline underline-offset-2 hover:text-sky-200`,children:[`PR #`,e.number]})]}):(0,Y.jsxs)(ev,{open:n,onOpenChange:d,children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`default`,disabled:!r,title:i,className:`gap-2`,children:[a?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),u6(a?`creatingPullRequest`:`createPullRequest`)]})}),(0,Y.jsxs)(nv,{align:`end`,className:`z-[90] w-[36rem] max-w-[calc(100vw-2rem)] p-4`,children:[(0,Y.jsx)(rv,{children:(0,Y.jsx)(iv,{children:u6(`createPullRequestTitle`)})}),(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(_b,{label:u6(`pullRequestFieldTitle`),htmlFor:`bundle-pr-title`,children:(0,Y.jsx)(z_,{id:`bundle-pr-title`,value:c,onChange:e=>f(e.target.value),placeholder:u6(`pullRequestTitlePlaceholder`),disabled:a})}),(0,Y.jsx)(_b,{label:u6(`pullRequestFieldBaseBranch`),htmlFor:`bundle-pr-base-branch`,description:u6(`pullRequestBaseBranchDescription`),children:(0,Y.jsx)(z_,{id:`bundle-pr-base-branch`,value:u,onChange:e=>m(e.target.value),placeholder:u6(`pullRequestBaseBranchPlaceholder`),disabled:a})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsx)(`label`,{className:`text-xs font-medium uppercase tracking-[0.22em] text-muted-foreground`,htmlFor:`bundle-pr-body`,children:u6(`pullRequestFieldDescription`)}),h&&(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:`gap-2`,disabled:a||s,onClick:g,children:[s?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):null,u6(s?`generatingDescription`:`generateDescription`)]})]}),(0,Y.jsx)(B_,{id:`bundle-pr-body`,value:l,onChange:e=>p(e.target.value),placeholder:u6(`pullRequestDescriptionPlaceholder`),className:`min-h-40`,disabled:a})]}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,disabled:!c.trim()||a,onClick:_,children:u6(a?`creating`:`createPullRequest`)})})]})]})]}),z6=(e,t,n)=>{if(n)return _6(t);let r=new Set(t.map(e=>e.path));return new Set([...e].filter(e=>r.has(e)))},B6=e=>{let{projectId:t,reviewCommentsBundleId:n=null,targetKind:r,repoRootDefaultBranch:i=null,title:a,hasHelperModel:o=!1,onClose:s,onSubmitReviewPrompt:c,canSubmitReviewPrompt:l=!1,reviewSubmitDisabledReason:u,canAddReviewComments:d=!0,canModifyChanges:f=!0,changesDisabledReason:m,onViewSourceSpec:h,originSpecSessionId:g=null,originSpecSnapshotId:_=null}=e,v=e.scope??`ticket`,{isGitHubConnected:y,defaultBaseBranch:b}=cS(t),x=e.scope===`project_root`?null:e.ticketId,S=e.scope===`project_root`?void 0:e.onTicketUpdate,C=e.scope===`project_root`?void 0:e.onRequestTicketRefresh,w=v===`project_root`,T=!!(t&&n),E=r??(T?`bundle`:`repo_root`),D=w&&E===`repo_root`,O=b??i,[k,A]=(0,p.useState)(`uncommitted`),[j,M]=(0,p.useState)(null),[N,P]=(0,p.useState)(null),[F,I]=(0,p.useState)(null),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(new Set),[V,H]=(0,p.useState)(`all`),[ee,U]=(0,p.useState)(``),[te,ne]=(0,p.useState)(null),[re,ie]=(0,p.useState)(null),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)(null),[ce,le]=(0,p.useState)(!0),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(!0),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(!1),[ve,ye]=(0,p.useState)(!1),[G,be]=(0,p.useState)(null),[xe,Se]=(0,p.useState)(!1),[Ce,we]=(0,p.useState)(`unified`),[Te,Ee]=(0,p.useState)(new Map),[De,Oe]=(0,p.useState)(g6),[ke,Ae]=(0,p.useState)(O6),[je,Me]=(0,p.useState)(null),[Ne,Pe]=(0,p.useState)([]),[Fe,Ie]=(0,p.useState)(null),[Le,Re]=(0,p.useState)(null),[ze,Be]=(0,p.useState)(new Set),[Ve,K]=(0,p.useState)(new Set),[He,Ue]=(0,p.useState)(!1),[We,Ge]=(0,p.useState)(null),[Ke,qe]=(0,p.useState)(null),[Je,q]=(0,p.useState)(!1),[Ye,Xe]=(0,p.useState)(!1),[Ze,J]=(0,p.useState)(``),[Qe,$e]=(0,p.useState)(``),[et,tt]=(0,p.useState)(``),[nt,rt]=(0,p.useState)([]),[it,ot]=(0,p.useState)(!1),[ut,dt]=(0,p.useState)(!1),[ft,pt]=(0,p.useState)(!1),_t=(0,p.useRef)(null),vt=(0,p.useRef)(!1),yt=(0,p.useRef)(null),bt=(0,p.useRef)(null),xt=(0,p.useRef)(0),St=(0,p.useRef)(0),Ct=(0,p.useRef)(!1),wt=(0,p.useRef)(k6(()=>null)),Tt=(0,p.useRef)(A6()),Et=(0,p.useRef)(`idle`),Dt=(0,p.useRef)(0),Ot=(0,p.useRef)(null),kt=(0,p.useMemo)(()=>K4({scope:v,projectId:t,ticketId:x,projectTargetBundleId:w?n:null}),[t,n,v,x,w]),At=(0,p.useCallback)(()=>{if(!x)throw Error(`Ticket changes require a ticket id.`);return x},[x]),Rt=(0,p.useCallback)(e=>{yt.current=e,M(e),ne(null)},[]),zt=(0,p.useCallback)((e,t)=>{J4({cacheKey:kt,diffResponse:e,gitStatus:t})},[kt]),Bt=(0,p.useCallback)(e=>{yt.current&&J4({cacheKey:kt,diffResponse:yt.current,gitStatus:e})},[kt]),Vt=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await yn(t)}return await jt(At(),t)},[t,At,v]),Ht=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await xn(t)}return await Mt(At(),t,{refreshRemote:!1})},[t,At,v]),Ut=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await Sn(t)}return await It(At(),t)},[t,At,v]),Wt=(0,p.useCallback)(async e=>!n||!t?null:await mt(t,n,e),[t,n]),Gt=(0,p.useCallback)(async e=>!n||!t?null:await at(t,n,e),[t,n]),Kt=(0,p.useCallback)(async e=>!n||!t?null:await ht(t,n,e),[t,n]),qt=(0,p.useCallback)(async e=>!n||!t?null:await gt(t,n,e),[t,n]),Jt=(0,p.useCallback)(function e({silent:r}){if(!n||!t||!We?.bundle.pull_request||!y||Et.current===`loaded`)return Promise.resolve();if(Et.current===`loading`){let t=Ot.current;return t?t.then(()=>{if(!r&&Et.current===`idle`)return e({silent:!1})}):Promise.resolve()}r||Re(null),Et.current=`loading`;let i=Dt.current,a=qt().then(e=>{if(i===Dt.current){if(!e){Et.current=`idle`;return}if(e.error){r||(Pe(e.comments),Re(e.error),K(t=>{let n=new Set(e.comments.map(e=>e.id));return new Set([...t].filter(e=>n.has(e)))})),Et.current=`idle`;return}Pe(e.comments),Re(null),K(t=>{let n=new Set(e.comments.map(e=>e.id));return new Set([...t].filter(e=>n.has(e)))}),Et.current=`loaded`}}).catch(e=>{i===Dt.current&&(Et.current=`idle`,!r&&(Pe([]),Re(T6(e,`Unable to load GitHub review comments right now.`)),K(new Set)))}).finally(()=>{i===Dt.current&&Ot.current===a&&(Ot.current=null)});return Ot.current=a,a},[We?.bundle.pull_request,y,t,qt,n]),Yt=(0,p.useCallback)((e,t)=>{Ae(n=>({...n,[e]:t(n[e])}))},[]),Xt=(0,p.useCallback)(async e=>{if(T&&n&&t)return await ct(t,n,e);if(w){if(!t)throw Error(`Project changes require a project id.`);return await Dn(t,e)}throw Error(`Pull request description generation requires a supported target context.`)},[T,t,n,w]),Zt=(0,p.useCallback)(async e=>{if(!t)throw Error(`Project changes require a project id.`);return await En(t,e)},[t]),Qt=(0,p.useCallback)(async e=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await Cn(t,e)}return await Nt(At(),t,e)},[t,At,v]),$t=(0,p.useCallback)(async e=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await wn(t,e)}return await Pt(At(),t,e)},[t,At,v]),en=(0,p.useCallback)(async(e={})=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await Tn(t,e)}return await Ft(At(),t,e)},[t,At,v]),tn=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await On(t)}return await Lt(At(),t)},[t,At,v]),nn=(0,p.useCallback)(async(e,t={})=>{let n=t.preserveContent??!1,r=xt.current+1;xt.current=r,he(!0),n||se(null);try{let t=await Ut();if(!e()||xt.current!==r)return;R(t.commits),se(null)}catch(t){if(!e()||xt.current!==r)return;se(T6(t,`Unable to load local commits right now.`)),n||R([])}finally{e()&&xt.current===r&&he(!1)}},[Ut]),rn=(0,p.useCallback)(()=>{xt.current+=1,R([]),se(null),he(!1)},[]),an=(0,p.useCallback)((e,t={})=>{let n=t.resetSelection??!1;bt.current=e,I(e),oe(null),B(t=>{let r=z6(t,e.files,n||!vt.current);return vt.current=!0,r})},[]),on=(0,p.useCallback)(async(e={})=>{let t=e.preserveContent??!1,n=e.gitStatusForCache??null;t||ne(null),le(!0);try{let e=await Vt();Rt(e),n&&zt(e,n)}catch(e){n&&Y4(kt),(!t||!yt.current)&&ne(T6(e,`Unable to load the diff right now.`))}finally{le(!1)}},[Rt,kt,Vt,zt]),sn=(0,p.useCallback)(async(e={})=>{let t=e.preserveContent??!1;if(!T){P(null),ie(null),de(!1);return}t||ie(null),de(!0);try{P(await Kt()),ie(null)}catch(e){(!t||!N)&&ie(T6(e,`Unable to load the branch diff right now.`))}finally{de(!1)}},[N,T,Kt]),cn=(0,p.useCallback)(async(e,t={})=>{let n=t.preserveContent??!1,r=t.resetSelection??!1,i=t.allowCache??!0?q4(kt):null;if(n||(ne(null),oe(null)),pe(!0),i){Rt(i.diffResponse),an(i.gitStatus,{resetSelection:r}),le(!1);try{let t=await Ht();if(!e())return;an(t,{resetSelection:r}),pe(!1),(t.ahead??0)>0?nn(e,{preserveContent:!0}):rn();let n=t.workspace_signature??null;if(n&&n===i.workspaceSignature){zt(i.diffResponse,t);return}Y4(kt),await on({preserveContent:!0,gitStatusForCache:t});return}catch(t){if(!e())return;oe(T6(t,`Unable to load git status right now.`)),I(null),pe(!1),rn();return}}le(!0),Vt().then(t=>{e()&&(Rt(t),bt.current&&zt(t,bt.current))}).catch(t=>{e()&&(!n||!yt.current)&&ne(T6(t,`Unable to load the diff right now.`))}).finally(()=>{e()&&le(!1)});try{let t=await Ht();if(!e())return;an(t,{resetSelection:r}),pe(!1),yt.current&&zt(yt.current,t),(t.ahead??0)>0?nn(e,{preserveContent:n}):rn()}catch(t){if(!e())return;oe(T6(t,`Unable to load git status right now.`)),n||I(null),pe(!1),rn()}},[Rt,an,kt,rn,nn,on,Vt,Ht,zt]),ln=(0,p.useCallback)(async()=>{if(!t)return;let e=St.current+1;St.current=e,pe(!0);try{let t=await Ht();if(St.current!==e)return;let n=bt.current?.workspace_signature??null,r=t.workspace_signature??null,i=!yt.current||n!==r;if(an(t),(t.ahead??0)>0?nn(()=>St.current===e,{preserveContent:!0}):rn(),!i){Bt(t);return}await on({preserveContent:!0,gitStatusForCache:t})}catch{return}finally{St.current===e&&pe(!1)}},[an,rn,nn,on,t,Ht,Bt]);(0,p.useEffect)(()=>{yt.current=j},[j]),(0,p.useEffect)(()=>{bt.current=F},[F]),(0,p.useEffect)(()=>{let e=!0;return cn(()=>e,{resetSelection:!0}),()=>{e=!1}},[cn]),(0,p.useEffect)(()=>{if(t)return e3(e=>{if(e===t){if(Ct.current){Ct.current=!1;return}ln()}})},[t,ln]),(0,p.useEffect)(()=>{if(!t)return;let e=n3(()=>{document.visibilityState===`visible`&&ln()});return()=>{e()}},[t,ln]),(0,p.useEffect)(()=>{if(!T){Me(null),Ie(null),Be(new Set);return}if(!j?.diff?.trim()){Me(null),Ie(null),Be(new Set);return}let e=new AbortController,t=!0;return Ie(null),Wt(e.signal).then(e=>{t&&(Me(e),Be(t=>{let n=new Set((e?.findings??[]).map(e=>e.id));return new Set([...t].filter(e=>n.has(e)))}))}).catch(n=>{!t||e.signal.aborted||(Ie(T6(n,`Unable to load review findings right now.`)),Me(null),Be(new Set))}),()=>{t=!1,e.abort()}},[j?.diff,T,Wt]),(0,p.useEffect)(()=>{A(`uncommitted`),wt.current=k6(()=>null),Tt.current=A6(),Ae(O6()),P(null),ie(null),de(!1),Dt.current+=1,Et.current=`idle`,Ot.current=null,Pe([]),Re(null),K(new Set),Ge(null),qe(null),q(!1),Xe(!1),J(``),$e(``),tt(``),rt([]),ot(!1),dt(!1),pt(!1)},[n,E]),(0,p.useEffect)(()=>{if(!T){Ge(null),q(!1);return}if(j===null&&!te){q(!1);return}let e=new AbortController,t=!0;return q(!0),Gt(e.signal).then(e=>{t&&(Ge(e),J(t=>t.trim()?t:e?.bundle?my(e.bundle):a),$e(t=>t.trim()?t:I6(e?.recent_commit_subjects??nt)),tt(t=>t.trim()?t:e?.bundle.pull_request?.base_branch??``))}).catch(()=>{!t||e.signal.aborted||Ge(null)}).finally(()=>{t&&q(!1)}),()=>{t=!1,e.abort()}},[te,j,nt,t,Gt,T,a]),(0,p.useEffect)(()=>{D&&(J(e=>e.trim()&&e!==a?e:F?.branch??a),$e(e=>e.trim()?e:I6(nt)))},[F?.branch,D,nt,a]),(0,p.useEffect)(()=>{if(!T){P(null),ie(null),de(!1);return}if(k!==`bundle_diff`){de(!1);return}let e=new AbortController,t=!0;return de(!0),ie(null),Kt(e.signal).then(e=>{t&&(P(e),ie(null))}).catch(n=>{!t||e.signal.aborted||(ie(T6(n,`Unable to load the branch diff right now.`)),P(null))}).finally(()=>{t&&de(!1)}),()=>{t=!1,e.abort()}},[k,T,Kt]),(0,p.useEffect)(()=>{let e=We?.bundle.pull_request??null;if(!T||!e){Dt.current+=1,Et.current=`idle`,Ot.current=null,Pe([]),Re(null),K(new Set);return}if(!y){Dt.current+=1,Et.current=`idle`,Ot.current=null,Pe([]),Re(null),K(new Set);return}Jt({silent:!0})},[We?.bundle.pull_request,Jt,y,T]),(0,p.useEffect)(()=>{k===`bundle_diff`&&Jt({silent:!1})},[k,We?.bundle.pull_request,Jt,y]),(0,p.useEffect)(()=>{fe&&F===null||_t.current?.focus()},[F,fe]);let un=(0,p.useMemo)(()=>{let e=typeof j?.diff==`string`?j.diff:``;return e.trim()?Pw(e).map(e=>({...e,pathCandidates:b6(e)})):[]},[j]),dn=(0,p.useMemo)(()=>{let e=typeof N?.diff==`string`?N.diff:``;return e.trim()?Pw(e).map(e=>({...e,pathCandidates:b6(e)})):[]},[N]),fn=(0,p.useMemo)(()=>{let e=j?.diff??``;return e?j6(e):null},[j?.diff]),pn=(0,p.useMemo)(()=>{let e=N?.diff??``;return e?j6(e):null},[N?.diff]),mn=k===`bundle_diff`?N:j,hn=k===`bundle_diff`?dn:un,gn=(0,p.useMemo)(()=>n?{uncommitted:E6(n,`uncommitted`),bundle_diff:E6(n,`bundle_diff`)}:{uncommitted:null,bundle_diff:null},[n]),_n=(0,p.useMemo)(()=>({uncommitted:fn,bundle_diff:pn}),[pn,fn]),vn=(0,p.useMemo)(()=>{let e=new Map;for(let t of mn?.files??[])e.set(t.path,t);return e},[mn]),bn=(0,p.useMemo)(()=>{let e=new Map;for(let t of hn)for(let n of t.pathCandidates)e.has(n)||e.set(n,t);return e},[hn]),kn=(0,p.useCallback)(e=>{Oe(t=>t.length===e.length&&t.every((t,n)=>t===e[n])?t:e)},[]),An=(0,p.useMemo)(()=>k===`bundle_diff`?(N?.files??[]).map(e=>({path:e.path,originalPath:null,status:null,staged:!1,unstaged:!1,conflicted:!1,additions:e.additions,deletions:e.deletions})):F?(F.files??[]).map(e=>{let t=vn.get(e.path)??(e.original_path?vn.get(e.original_path):void 0);return{path:e.path,originalPath:e.original_path,status:e.status,staged:e.staged,unstaged:e.unstaged,conflicted:e.conflicted,additions:t?.additions??0,deletions:t?.deletions??0}}):(j?.files??[]).map(e=>({path:e.path,originalPath:null,status:null,staged:!1,unstaged:!1,conflicted:!1,additions:e.additions,deletions:e.deletions})),[k,N?.files,vn,j?.files,F]);(0,p.useEffect)(()=>{V!==`all`&&(An.some(e=>e.path===V)||H(`all`))},[V,An]);let jn=k===`bundle_diff`?0:z.size,Mn=G!==null,Nn=G===`force`,Pn=k===`bundle_diff`?An.length:F?.files?.length??An.length,Fn=Pn>0&&jn===Pn,In=(0,p.useMemo)(()=>k===`bundle_diff`?null:v6(F,z),[k,F,z]),Ln=k===`uncommitted`&&!fe&&!ge&&f&&!!F&&jn>0&&ee.trim().length>0&&In===null,Rn=k===`uncommitted`&&!fe&&!ce&&!ve&&!ge&&!Mn&&f&&!He&&!!F&&jn>0,zn=!fe&&(Mn||!!F?.can_push&&(F?.ahead??0)>0),Bn=zn&&!!F?.can_force_push_with_lease,Vn=zn&&f&&!Mn&&!ge,Hn=Bn&&f&&!Mn&&!ge,Un=f&&!me&&!xe&&!ge&&!Mn&&(L?.length??0)>0,Wn=(F?.ahead??0)>0?`${F?.ahead??0} to push`:`Up to date`,Gn=(F?.behind??0)>0?`${F?.behind??0} behind`:`In sync`,Kn=F?.branch??null,qn=V===`all`?null:bn.get(V)??null,Jn=(0,p.useMemo)(()=>V===`all`?hn:qn?[qn]:[],[hn,V,qn]);(0,p.useEffect)(()=>{Ee(new Map),Oe(g6)},[k,hn]),(0,p.useEffect)(()=>{let e={uncommitted:gn.uncommitted&&_n.uncommitted?`${gn.uncommitted}:${_n.uncommitted}`:null,bundle_diff:gn.bundle_diff&&_n.bundle_diff?`${gn.bundle_diff}:${_n.bundle_diff}`:null},t=wt.current;t.uncommitted===e.uncommitted&&t.bundle_diff===e.bundle_diff||(wt.current=e,Ae(n=>{let r={...n};return[`uncommitted`,`bundle_diff`].forEach(i=>{if(t[i]===e[i])return;let a=_n[i],o=gn[i],s=n[i];if(t[i]===null&&a&&(s.activeTarget||s.editingCommentKey||s.draftInput.trim()||s.comments.size>0)){r[i]={...s,signature:a};return}if(!a){Tt.current[i]=new Map,r[i]=D6();return}let c=new Map;if(o){let e=window.localStorage.getItem(o),t=e?N6(e):null;t?.diffSignature===a?c=P6(t.comments.map(e=>({...e,scope:i}))):e!==null&&window.localStorage.removeItem(o)}Tt.current[i]=new Map,r[i]={activeTarget:null,editingCommentKey:null,draftInput:``,comments:c,signature:a}}),r}))},[_n,gn]),(0,p.useEffect)(()=>{[`uncommitted`,`bundle_diff`].forEach(e=>{let t=gn[e],n=_n[e],r=ke[e];if(!t||!n||r.signature!==n)return;if(r.comments.size===0){window.localStorage.removeItem(t);return}let i={diffSignature:n,comments:[...r.comments.values()]};window.localStorage.setItem(t,JSON.stringify(i))})},[_n,gn,ke]),(0,p.useEffect)(()=>{if(hn.length===0)return;let e=!1,t=null,n=(()=>{if(!qn){let e=[],t=new Set;for(let n of De){let r=bn.get(n);if(!r)continue;let i=x6(r);t.has(i)||(t.add(i),e.push(r))}return e.length>0?e:hn.slice(0,d6)}return[qn]})(),r=0,i=()=>{if(e)return;let a=n.slice(r,r+d6);a.length!==0&&(Ee(e=>{let t=new Map(e);for(let e of a){let n=x6(e);t.has(n)||t.set(n,w6(e))}return t}),r+=d6,r<n.length&&(t=window.setTimeout(i,0)))};return n.length<=d6?i():t=window.setTimeout(i,0),()=>{e=!0,t!==null&&window.clearTimeout(t)}},[hn,bn,qn,De]);let Yn=(0,p.useMemo)(()=>Jn.map(e=>({...e,tokens:Te.get(x6(e))??null})),[Te,Jn]),Xn=(0,p.useMemo)(()=>hn.map(e=>({...e,tokens:null})),[hn]),Zn=(0,p.useMemo)(()=>{let e=new Map;for(let t of hn){let n=x6(t);e.set(n,n);for(let r of b6(t))e.set(r,n)}return e},[hn]),Qn=(0,p.useMemo)(()=>[...ke.uncommitted.comments.values()],[ke.uncommitted.comments]),$n=(0,p.useMemo)(()=>[...ke.bundle_diff.comments.values()],[ke.bundle_diff.comments]),er=ke[k],tr=er.activeTarget,nr=er.editingCommentKey,rr=tr?.commentKey??nr,ir=rr?`${k}:${rr}`:k,ar=rr?Tt.current[k].get(rr)??er.draftInput:er.draftInput,or=k===`bundle_diff`?$n:Qn,sr=(0,p.useMemo)(()=>[...Qn,...$n],[$n,Qn]),cr=(0,p.useMemo)(()=>je?.findings??[],[je]),lr=(0,p.useMemo)(()=>je?.is_current_diff?cr.filter(e=>ze.has(e.id)):[],[cr,je?.is_current_diff,ze]),ur=(0,p.useMemo)(()=>[...ze],[ze]),dr=(0,p.useMemo)(()=>Ne.filter(e=>Ve.has(e.id)),[Ne,Ve]),fr=(0,p.useMemo)(()=>[...Ve],[Ve]),pr=sr.length+lr.length+dr.length,mr=!!(je?.review_run&&cr.length>0&&!je.is_current_diff),hr=We?.bundle.pull_request??null,gr=hr??Ke,_r=(0,p.useMemo)(()=>nt.length>0?nt:We?.recent_commit_subjects??[],[We?.recent_commit_subjects,nt]),vr=We?.has_helper_model===!0||o,yr=T,br=k===`bundle_diff`?re:te,xr=ce&&j===null,Sr=ue&&N===null,Cr=fe&&F===null,wr=Je&&We===null,Tr=k===`bundle_diff`?Sr:xr,Er=k===`uncommitted`?cr:m6,Dr=k===`uncommitted`?ur:g6,Or=k===`bundle_diff`?Ne:h6,kr=k===`bundle_diff`?fr:g6,Ar=k===`bundle_diff`?`bundle_diff`:`uncommitted`,jr=(0,p.useMemo)(()=>{let e=new Map,t=e=>e?Zn.get(e)??e:null;for(let n of or){let r=t(n.filePath);r&&F6(e,r)}if(k===`uncommitted`){if(mr)return e;for(let n of cr){let r=t(n.file_path);r&&F6(e,r)}return e}for(let n of Ne){let r=t(n.file_path);r&&F6(e,r)}return e},[k,Zn,or,Ne,mr,cr]),Mr=(mr?0:cr.length)+Qn.length,Nr=Ne.length+$n.length,Pr=k===`bundle_diff`?`No branch diff to show.`:`No uncommitted changes to show.`,Fr=k===`uncommitted`&&yr?`Switch to Branch diff to review the full branch diff.`:null,Ir=yr&&!wr&&!!We&&We?.bundle.kind!==`project_root`&&F?.has_upstream===!0&&y,Lr=L6({gitStatus:F,isProjectTargetRepoRoot:D,isGitHubConnected:y,effectiveDefaultBaseBranch:O}),Rr=Ir||Lr,zr=Rr&&!hr&&!Ke&&!it&&!ut&&!ft&&!He&&!Mn&&!ge&&!xe&&(F?.ahead??0)===0&&!!F?.branch,Br=(0,p.useCallback)(e=>{if(!e){Xe(!1);return}if(!T){Xe(e);return}if(!t||!n||!Ir||hr||ut){Xe(e);return}dt(!0),lt(t,n).then(e=>{Ge(e),tt(t=>t.trim()?t:e.bundle.pull_request?.base_branch??``),Xe(!e.bundle.pull_request)}).catch(e=>{Q.error(T6(e,`Unable to check for an existing pull request right now.`),{id:`ticket-changes-sync-pr-error`}),Xe(!0)}).finally(()=>{dt(!1)})},[hr,T,ut,t,n,Ir]),Vr=(0,p.useMemo)(()=>{if(Rr)return(F?.ahead??0)>0?`Push the branch before creating a pull request.`:F?.branch?m:u6(`branchUnavailable`)},[m,F?.ahead,F?.branch,Rr]),Hr=d&&!Tr&&(k===`bundle_diff`||!Cr)&&!ge&&!Mn&&!xe,Ur=tr?Hr||er.comments.has(tr.commentKey):Hr,Wr=!!c&&l&&pr>0&&!He,Gr=(0,p.useCallback)(e=>{Be(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Kr=(0,p.useCallback)(e=>{K(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),qr=(0,p.useCallback)(()=>{Tt.current=A6(),Ae(e=>({uncommitted:{...e.uncommitted,activeTarget:null,editingCommentKey:null,draftInput:``,comments:new Map},bundle_diff:{...e.bundle_diff,activeTarget:null,editingCommentKey:null,draftInput:``,comments:new Map}}))},[]),Jr=(0,p.useCallback)(()=>{qr(),Be(new Set),K(new Set)},[qr]),Yr=(0,p.useCallback)(async()=>{if(!(!t||!zr)){ot(!0);try{if(T&&n){let e=await st(t,n,{title:Ze.trim(),body:Qe.trim(),base_branch:et.trim()||null});Ge(e),tt(e.bundle.pull_request?.base_branch??et.trim())}else{let e=await Zt({title:Ze.trim(),body:Qe.trim(),base_branch:et.trim()||null});qe(e.pull_request),tt(e.pull_request.base_branch||et.trim())}Xe(!1),Q.success(u6(`pullRequestCreated`),{id:`ticket-changes-create-pr-success`})}catch(e){Q.error(T6(e,u6(`createPullRequestFallbackError`)),{id:`ticket-changes-create-pr-error`})}finally{ot(!1)}}},[zr,t,et,Qe,Ze,Zt,n,T]),Xr=(0,p.useCallback)(async()=>{if(!(!t||!Rr||ft)){pt(!0);try{$e((await Xt({title:Ze.trim(),commit_subjects:_r})).description)}catch(e){Q.error(T6(e,`Unable to generate the pull request description right now.`),{id:`ticket-changes-generate-pr-description-error`})}finally{pt(!1)}}},[ft,t,_r,Ze,Xt,Rr]),Zr=(0,p.useCallback)(({filePath:e,changeKey:t,commentKey:n})=>{let r=er.comments.get(n),i=Tt.current[k].get(n)??r?.comment??``;if(r){H(r.filePath),Yt(k,e=>({...e,activeTarget:null,editingCommentKey:n,draftInput:i}));return}Hr&&Yt(k,r=>({...r,activeTarget:{filePath:e,changeKey:t,commentKey:n},editingCommentKey:null,draftInput:i}))},[k,er.comments,Hr,Yt]),Qr=(0,p.useCallback)(()=>{rr&&Tt.current[k].delete(rr),Yt(k,e=>({...e,activeTarget:null,editingCommentKey:null,draftInput:``}))},[k,rr,Yt]),$r=(0,p.useCallback)(e=>{rr&&Tt.current[k].set(rr,e)},[k,rr]),ei=(0,p.useCallback)((e,t)=>{let n=er.comments.has(e.commentKey);if(!Hr&&!n)return;let r=t.trim();if(!r)return;let i=e.change.type===`insert`?null:`oldLineNumber`in e.change?e.change.oldLineNumber:e.change.lineNumber,a=e.change.type===`delete`?null:`newLineNumber`in e.change?e.change.newLineNumber:e.change.lineNumber;Yt(k,t=>{let n=new Map(t.comments);return n.set(e.commentKey,{scope:k,filePath:e.filePath,changeKey:e.changeKey,changeType:e.change.type,oldLineNumber:i,newLineNumber:a,hunkHeader:e.hunk.content,lineContent:e.change.content,diffSnippet:ck(e.hunk,e.change),comment:r}),{...t,activeTarget:null,editingCommentKey:null,draftInput:``,comments:n}}),Tt.current[k].delete(e.commentKey)},[k,er.comments,Hr,Yt]),ti=(0,p.useCallback)(e=>{let t=er.comments.get(e);if(!t)return;H(t.filePath);let n=Tt.current[k].get(e)??t.comment;Yt(k,t=>({...t,activeTarget:null,editingCommentKey:e,draftInput:n}))},[k,er.comments,Yt]),ni=(0,p.useCallback)(e=>{Tt.current[k].delete(e),Yt(k,t=>{let n=new Map(t.comments);return n.delete(e),{...t,activeTarget:t.activeTarget?.commentKey===e?null:t.activeTarget,editingCommentKey:t.editingCommentKey===e?null:t.editingCommentKey,draftInput:t.activeTarget?.commentKey===e||t.editingCommentKey===e?``:t.draftInput,comments:n}})},[k,Yt]),ri=(0,p.useCallback)(async()=>{if(!c||!Wr)return;Ue(!0);let e=pk({drafts:sr,findings:lr,githubComments:dr,uncommittedFiles:un,bundleFiles:dn});qr(),Be(new Set),K(new Set);try{await c(e),Me(e=>e&&{...e,findings:[],is_current_diff:!1}),Q.success(`Fixes submitted.`,{id:`ticket-diff-review-submit-success`}),s()}catch(e){Q.error(T6(e,`Unable to submit the review right now.`),{id:`ticket-diff-review-submit-error`})}finally{Ue(!1)}},[sr,dn,Wr,qr,s,c,dr,lr,un]),ii=(0,p.useCallback)(()=>{if(k===`bundle_diff`){sn();return}cn(()=>!0,{allowCache:!1,resetSelection:!vt.current})},[k,sn,cn]),ai=(0,p.useMemo)(()=>c?(0,Y.jsx)(V2,{reviewComments:sr,reviewFindings:lr,githubComments:dr,pendingFixCount:pr,canSendReview:Wr,isSubmittingReview:He,reviewSubmitDisabledReason:u,onClearPendingFixes:Jr,onSubmitReview:()=>{ri()}}):null,[sr,Wr,Jr,ri,He,c,pr,u,dr,lr]),oi=e=>{B(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},si=()=>{F&&B(Fn?new Set:_6(F.files))},ci=async()=>{if(Ln){_e(!0);try{let e=await Qt({message:ee.trim(),selected_paths:[...z]});e.ticket&&S?.(e.ticket),an(e.git_status,{resetSelection:!0}),U(``),t&&(Ct.current=!0,$4(t)),x&&C?.(x),await on({preserveContent:!0,gitStatusForCache:e.git_status}),await sn({preserveContent:!0}),(e.git_status.ahead??0)>0?await nn(()=>!0):rn(),Q.success(`Commit created.`,{id:`ticket-git-commit-success`})}catch(e){Q.error(T6(e,`Unable to create the commit right now.`),{id:`ticket-git-commit-error`})}finally{_e(!1)}}},li=async()=>{if(Rn){ye(!0);try{U((await $t({selected_paths:[...z]})).message),_t.current?.focus()}catch(e){Q.error(T6(e,`Unable to generate a commit message right now.`),{id:`ticket-git-commit-message-error`})}finally{ye(!1)}}},ui=async(e=`normal`)=>{if(!(e===`force`?!Hn:!Vn)){be(e);try{let r=L.map(e=>e.subject.trim()).filter(Boolean),i=await en({forceWithLease:e===`force`});if(i.ticket&&S?.(i.ticket),an(i.git_status,{resetSelection:!0}),Bt(i.git_status),rt(r),rn(),t&&(Ct.current=!0,$4(t)),x&&C?.(x),Q.success(e===`force`?i.git_status.ahead===0?u6(`branchForcePushed`):u6(`forcePushCompleted`):i.git_status.ahead===0?u6(`branchPushed`):u6(`pushCompleted`),{id:`ticket-git-push-success`}),i.git_status.ahead===0)if(T&&t&&n)try{let e=await at(t,n);Ge(e),J(t=>t.trim()?t:my(e.bundle)),$e(e=>e.trim()?e:I6(r)),tt(t=>t.trim()?t:e.bundle.pull_request?.base_branch??``)}catch{}else L6({gitStatus:i.git_status,isProjectTargetRepoRoot:D,isGitHubConnected:y,effectiveDefaultBaseBranch:O})||s()}catch(t){Q.error(T6(t,u6(e===`force`?`forcePushFallbackError`:`pushFallbackError`)),{id:`ticket-git-push-error`})}finally{be(null)}}},di=async()=>{if(Un){Se(!0);try{let e=await tn();e.ticket&&S?.(e.ticket),an(e.git_status,{resetSelection:!0}),R(e.commits),se(null),he(!1),t&&(Ct.current=!0,$4(t)),x&&C?.(x),await on({preserveContent:!0,gitStatusForCache:e.git_status}),await sn({preserveContent:!0}),Q.success(`Latest local commit undone.`,{id:`ticket-git-undo-success`})}catch(e){Q.error(T6(e,`Unable to undo the latest local commit right now.`),{id:`ticket-git-undo-error`})}finally{Se(!1)}}};return(0,Y.jsx)(tb,{onClose:s,overlayClassName:`z-[70] bg-black/30 p-[5vh]`,panelClassName:`flex h-[92vh] w-full max-w-none flex-col overflow-hidden rounded-2xl border border-border bg-card p-6 shadow-2xl`,renderContent:({closeButton:e})=>(0,Y.jsxs)(Y.Fragment,{children:[Mn&&(0,Y.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center rounded-2xl bg-black/45 backdrop-blur-sm`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl border border-border bg-card/95 px-4 py-3 text-sm text-foreground shadow-xl`,children:[(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(`span`,{children:`Pushing branch...`})]})}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-widest text-muted-foreground`,children:`Changes`}),Kn?(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,Y.jsx)(`h2`,{className:`max-w-full truncate font-mono text-lg font-semibold text-foreground`,children:Kn}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(lb,{variant:(F?.ahead??0)>0?`info`:`outline`,children:Wn}),(0,Y.jsx)(lb,{variant:(F?.behind??0)>0?`warning`:`outline`,children:Gn}),(0,Y.jsx)(lb,{variant:F?.is_dirty?`warning`:`success`,children:F?.is_dirty?`Dirty`:`Clean`})]})]}):(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`h-7 w-56 animate-pulse rounded-md bg-muted/70`,"aria-hidden":`true`}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(`div`,{className:`h-6 w-32 animate-pulse rounded-full bg-muted/60`,"aria-hidden":`true`}),(0,Y.jsx)(`div`,{className:`h-6 w-20 animate-pulse rounded-full bg-muted/60`,"aria-hidden":`true`}),(0,Y.jsx)(`div`,{className:`h-6 w-20 animate-pulse rounded-full bg-muted/60`,"aria-hidden":`true`})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 text-xs text-muted-foreground`,children:[g&&_&&h?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{g&&_&&h(g,_)},children:u6(`viewSourceSpec`)}):null,(gr||Rr)&&(0,Y.jsx)(R6,{pullRequest:gr,isLoading:wr,isOpen:Ye,canCreate:zr,disabledReason:Vr,isCreating:it,isSyncing:ut,isGeneratingDescription:ft,title:Ze,body:Qe,baseBranch:et,onOpenChange:Br,onTitleChange:J,onBodyChange:$e,onBaseBranchChange:tt,showGenerateDescription:vr,onGenerateDescription:()=>{Xr()},onCreate:()=>{Yr()}}),(0,Y.jsx)(U2,{isCommitsLoading:me,commitsError:W,unpushedCommits:L,canUndoLatestCommit:Un,isUndoing:xe,aheadCount:F?.ahead??0,onUndoLatestCommit:()=>{di()}}),zn&&(Bn?(0,Y.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`default`,onClick:()=>{ui()},disabled:!Vn,title:m,className:`gap-2 rounded-r-none`,children:[Mn?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),u6(Nn?`forcePushing`:Mn?`pushing`:`pushBranch`)]}),(0,Y.jsxs)(tN,{children:[(0,Y.jsx)(nN,{asChild:!0,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`default`,disabled:!Hn,"aria-label":u6(`morePushActions`),className:`rounded-l-none border-l border-primary-foreground/20 px-2`,children:(0,Y.jsx)(Ev,{className:`h-4 w-4`})})}),(0,Y.jsx)(rN,{align:`end`,className:`w-56`,children:(0,Y.jsx)(iN,{disabled:!Hn,onSelect:()=>{ui(`force`)},children:u6(`forcePushWithLease`)})})]})]}):(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`default`,onClick:()=>{ui()},disabled:!Vn,title:m,className:`gap-2`,children:[Mn?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),u6(Mn?`pushing`:`pushBranch`)]})),e]})]}),(0,Y.jsxs)(`div`,{"data-testid":`ticket-changes-layout`,className:`grid min-h-0 flex-1 gap-4 lg:grid-cols-[18rem_minmax(0,1fr)] xl:grid-cols-[20rem_minmax(0,1fr)]`,children:[(0,Y.jsxs)(`aside`,{className:`flex min-h-0 flex-col`,children:[yr&&(0,Y.jsxs)(P2,{type:`single`,size:`sm`,variant:`outline`,value:k,onValueChange:e=>{(e===`uncommitted`||e===`bundle_diff`)&&A(e)},className:`mb-3 self-start`,children:[(0,Y.jsxs)(F2,{value:`uncommitted`,className:`gap-2`,children:[(0,Y.jsx)(`span`,{children:`Uncommitted`}),Mr>0&&(0,Y.jsx)(`span`,{className:`rounded-full border border-sky-400/40 bg-sky-400/12 px-1.5 py-0.5 text-[10px] font-semibold leading-none text-sky-100`,children:Mr})]}),(0,Y.jsxs)(F2,{value:`bundle_diff`,className:`gap-2`,children:[(0,Y.jsx)(`span`,{children:`Branch diff`}),Nr>0&&(0,Y.jsx)(`span`,{className:`rounded-full border border-violet-400/40 bg-violet-400/12 px-1.5 py-0.5 text-[10px] font-semibold leading-none text-violet-100`,children:Nr})]})]}),(0,Y.jsx)(z4,{selectionWarning:k===`uncommitted`?In:null,gitError:k===`uncommitted`?ae:re,sidebarFiles:An,commentCountByPath:jr,commentCountTone:Ar,isGitStatusLoading:k===`bundle_diff`?Sr:Cr&&An.length===0,selectedPaths:z,selectedDiffPath:V,allFilesSelected:Fn,diffStats:mn?.stats??null,title:k===`bundle_diff`?`Branch diff files`:`Changed files`,allChangesDescription:k===`bundle_diff`?`Review the full branch diff against the review base.`:`Review the full workspace diff.`,enableSelection:k===`uncommitted`&&!Cr,onToggleSelectAll:si,onSelectDiffPath:H,onTogglePath:oi})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3`,children:[(0,Y.jsx)(P4,{selectedDiffPath:V,sidebarFiles:An,diffResponse:mn,isDiffLoading:Tr,diffError:br,allDiffFiles:Xn,renderedFiles:Yn,viewType:Ce,onViewTypeChange:we,onRetry:ii,activeReviewTarget:tr,editingReviewCommentKey:nr,reviewDraftInstanceKey:ir,reviewDraftInput:ar,reviewComments:or,reviewFindings:Er,githubComments:Or,selectedReviewFindingIds:Dr,selectedGitHubCommentIds:kr,canSelectReviewTarget:Hr,canEditActiveReviewDraft:Ur,reviewFindingsError:k===`uncommitted`?Fe:null,gitHubCommentsError:k===`bundle_diff`?Le:null,hasStaleReviewFindings:k===`uncommitted`?mr:!1,onSelectReviewTarget:Zr,onToggleReviewFindingSelection:Gr,onToggleGitHubCommentSelection:Kr,onReviewDraftInputChange:$r,onCancelReviewDraft:Qr,onEditReviewDraft:ti,onRemoveReviewDraft:ni,onSaveReviewDraft:ei,diffThemeClassName:B4,resolveFilePath:x6,normalizeDiffPath:y6,onVisibleFilePathsChange:kn,emptyStateTitle:Pr,emptyStateDescription:Fr,reviewSummaryControl:ai,headerLayout:`inline-controls`}),k===`uncommitted`&&(0,Y.jsx)(`div`,{className:`mt-auto shrink-0`,children:(0,Y.jsx)(H2,{commitMessage:ee,onCommitMessageChange:U,commitMessageRef:_t,selectedFileCount:jn,changesDisabledReason:m,canEditCommitMessage:f&&!He,canGenerateCommitMessage:Rn,canCommit:Ln,isGeneratingCommitMessage:ve,isCommitting:ge,onGenerateCommitMessage:()=>{li()},onCommit:()=>{ci()}})})]})]})]})]})})},V6={blocked:{className:`stroke-red-400/80`,markerId:`dependency-arrowhead-blocked`},ready:{className:`stroke-emerald-400/80`,markerId:`dependency-arrowhead-ready`},preview:{className:`stroke-amber-300/80`,markerId:`dependency-arrowhead-preview`}},H6=e=>FN(e)?`ready`:`blocked`,U6=180,W6=560,G6=88,K6=12,q6=18,J6=(e,t,n)=>Math.min(Math.max(e,t),n),Y6=(e,t,n)=>n&&n.width>0&&n.height>0?n:Object.values(e).reduce((e,t)=>({width:Math.max(e.width,t.left+t.width),height:Math.max(e.height,t.top+t.height)}),{width:t.x,height:t.y}),X6=(e,t)=>{let n=J6(Math.round(e.length*7.2)+24,U6,W6),r=Math.max(U6,t-K6*2);return Math.min(n,r)},Z6=(e,t,n,r,i)=>{let a=n.get(e.blockerTicketId);if(!a)return null;let o=e.hoveredTicketId&&e.hoveredTicketId!==e.blockerTicketId?r[e.hoveredTicketId]:null,s=e.hoveredTicketId&&e.hoveredTicketId!==e.blockerTicketId?n.get(e.hoveredTicketId):null,c=s?`${a.title} is blocking ${s.title}`:`${a.title} is blocking...`,{start:l,end:u}=UN(t,o??{left:e.pointer.x,top:e.pointer.y,width:0,height:0}),d=Y6(r,e.pointer,i),f=o&&s?{x:l.x+(u.x-l.x)*.6,y:l.y+(u.y-l.y)*.6-28}:{x:u.x,y:u.y-28},p=X6(c,d.width);return{text:c,x:o&&s?J6(f.x-p/2,K6,Math.max(K6,d.width-p-K6)):(()=>{let e=f.x+q6,t=f.x-q6-p;return e+p<=d.width-K6?e:t>=K6?t:J6(e,K6,Math.max(K6,d.width-p-K6))})(),y:J6(f.y,K6,Math.max(K6,d.height-G6-K6)),width:p}},Q6=({blockerRect:e,dependentRect:t,className:n,testId:r,markerEnd:i})=>{let{start:a,end:o}=UN(e,t),{path:s}=WN(a,o);return(0,Y.jsx)(`g`,{"data-testid":r,children:(0,Y.jsx)(`path`,{d:s,className:n,fill:`none`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,markerEnd:i})})},$6=({preview:e,cardRects:t,ticketsById:n,overlaySize:r})=>{if(!e)return null;let i=t[e.blockerTicketId];if(!i)return null;let a=(e.hoveredTicketId&&e.hoveredTicketId!==e.blockerTicketId&&t[e.hoveredTicketId]?t[e.hoveredTicketId]:null)??{left:e.pointer.x,top:e.pointer.y,width:0,height:0},o=Z6(e,i,n,t,r);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Q6,{blockerRect:i,dependentRect:a,className:V6.preview.className,testId:`dependency-preview`,markerEnd:`url(#${V6.preview.markerId})`}),(e=>o?(0,Y.jsx)(`foreignObject`,{x:o.x,y:o.y,width:o.width,height:G6,"data-testid":`dependency-preview-label`,children:e}):null)((0,Y.jsx)(`div`,{className:`pointer-events-none flex h-full w-full items-start`,children:(0,Y.jsx)(`div`,{className:`max-w-full rounded-md border border-amber-300/60 bg-stone-950/85 px-3 py-1.5 text-xs font-medium leading-5 text-amber-100 shadow-lg shadow-stone-950/20 whitespace-normal break-words`,children:o?.text})}))]})},e8=({dependencies:e,cardRects:t,preview:n,ticketsById:r,overlaySize:i})=>(0,Y.jsxs)(`svg`,{className:`pointer-events-none absolute inset-0 z-10 h-full w-full overflow-visible`,children:[(0,Y.jsx)(`defs`,{children:Object.values(V6).map(e=>(0,Y.jsx)(`marker`,{id:e.markerId,markerWidth:`8`,markerHeight:`8`,refX:`7`,refY:`4`,orient:`auto`,markerUnits:`userSpaceOnUse`,children:(0,Y.jsx)(`path`,{d:`M 0 0 L 8 4 L 0 8`,className:e.className,fill:`none`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`})},e.markerId))}),e.map(e=>{let n=r.get(e.blocker_ticket_id),i=r.get(e.dependent_ticket_id),a=t[e.blocker_ticket_id],o=t[e.dependent_ticket_id];if(n?.parked_at||i?.parked_at)return null;let s=V6[H6(n)];return!a||!o?null:(0,Y.jsx)(Q6,{blockerRect:a,dependentRect:o,className:s.className,testId:`dependency-edge-${e.blocker_ticket_id}-${e.dependent_ticket_id}`,markerEnd:`url(#${s.markerId})`},`${e.blocker_ticket_id}:${e.dependent_ticket_id}`)}),(0,Y.jsx)($6,{preview:n,cardRects:t,ticketsById:r,overlaySize:i})]}),t8=({onSubmit:e,bundles:t,projectId:n=null,projectBranchState:r=null,tool:i,showModelSelector:a=!1,availableModels:o=[],availableSkills:s=[],initialModel:c=``,initialVariant:l=``,initialSkills:u=[],initialWorktreeBundleId:d=null,onCreateBundle:f,onDeleteBundle:p,onRefreshBundles:m,onClose:h})=>{let{t:g}=Ue(`common`),{jiraImportState:_,importFromJira:v}=dS(n),{gitHubImportState:y,importFromGitHub:b}=cS(n),x=[{key:`jira`,label:g(`jiraImportField.label`),placeholder:g(`jiraImportField.placeholder`),state:_,onImport:v},{key:`github`,label:g(`githubImportField.label`),placeholder:g(`githubImportField.placeholder`),state:y,onImport:b}];return(0,Y.jsx)(tb,{onClose:h,overlayClassName:`bg-black/60`,panelClassName:`h-[92vh] w-[96vw] max-w-6xl overflow-y-auto rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`,renderContent:({closeButton:_})=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`absolute right-4 top-4 z-10 sm:right-5 sm:top-5 lg:right-6 lg:top-6`,children:_}),(0,Y.jsx)(sG,{heading:g(`newTicketModal.heading`),bundles:t,showModelSelector:a,availableModels:o,availableSkills:s,projectId:n,initialModel:c,initialVariant:l,initialSkills:u,initialWorktreeBundleId:d,projectBranchState:r,externalImportProviders:x,onCancel:h,onCreateBundle:f,onDeleteBundle:p,onRefreshBundles:m,titleInputId:`title`,descriptionInputId:`description`,bundleSelectId:`new-ticket-bundle`,modelSelectId:`new-model`,variantSelectId:`new-variant`,skillsSelectId:`new-skills`,showEmptyBundleOption:!0,planAction:i?{label:g(`newTicketModal.actions.plan`),onClick:async({title:t,description:n,model:r,variant:i,skills:a,worktree_bundle_id:o,external_source:s})=>{await e(t,n,`plan`,r,i,a,{worktree_bundle_id:o??void 0,...s?{external_source:s}:{}}),h()}}:void 0,primaryAction:{label:g(`newTicketModal.actions.createTicket`),variant:`subtle`,onClick:async({title:t,description:n,model:r,variant:i,skills:a,worktree_bundle_id:o,external_source:s})=>{await e(t,n,`create`,r,i,a,{worktree_bundle_id:o??void 0,...s?{external_source:s}:{}}),h()}},secondaryAction:{label:g(`newTicketModal.actions.createAndBuild`),variant:`brand`,showAdvanceIcon:!0,onClick:async({title:t,description:n,model:r,variant:i,skills:a,worktree_bundle_id:o,external_source:s})=>{await e(t,n,`build`,r,i,a,{worktree_bundle_id:o??void 0,...s?{external_source:s}:{}}),h()}}})]})})},n8=e=>{let t=Math.max(0,Date.now()-e),n=Math.floor(t/1e3);return n<60?`${n}s`:`${Math.floor(n/60)}m ${n%60}s`},r8=e=>e.status===`error`?`border-red-500/35 bg-red-500/10`:e.status===`done`?e.boardState===`fading`?`border-emerald-500/25 bg-emerald-500/10 opacity-0 transition-opacity duration-700`:`border-emerald-500/35 bg-emerald-500/10`:`border-violet-500/30 bg-card/60`,i8=({run:e})=>(0,Y.jsxs)(ub,{"data-testid":`planning-run-card-${e.id}`,className:`relative overflow-hidden rounded-xl border shadow-none ${r8(e)}`,children:[e.status===`running`&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:`absolute inset-x-0 top-0 h-1 animate-pulse bg-gradient-to-r from-violet-500/0 via-violet-300/80 to-violet-500/0`}),(0,Y.jsxs)(hb,{className:`space-y-3 p-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[e.status===`running`?(0,Y.jsx)(qN,{label:`Planning...`}):e.status===`done`?(0,Y.jsx)(qN,{label:`Done`,className:`bg-emerald-500/85 text-emerald-50`}):(0,Y.jsx)(qN,{label:`Planning failed`,className:`bg-red-500/85 text-red-50`}),(0,Y.jsx)(`span`,{className:`text-[11px] uppercase tracking-[0.16em] text-muted-foreground`,children:n8(e.submittedAt)})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm font-medium text-foreground`,children:e.description}),e.status===`done`&&e.summary&&(0,Y.jsxs)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:[`Created `,e.summary.ticketCount,` tickets, `,e.summary.dependencyCount,` dependencies`,e.summary.ticketsWithOpenQuestions>0?`, ${e.summary.ticketsWithOpenQuestions} open question${e.summary.ticketsWithOpenQuestions===1?``:`s`}`:``]}),e.status===`error`&&e.error&&(0,Y.jsx)(`p`,{className:`mt-2 text-xs text-red-200`,children:e.error})]})]})]}),a8={idle:`bg-secondary`,running:`bg-sky-400`,done:`bg-emerald-400`,error:`bg-red-400`},o8=e=>e.some(e=>e.status===`running`)?`running`:e.some(e=>e.status===`error`)?`error`:e.some(e=>e.status===`done`)?`done`:`idle`,s8=e=>{let t=Math.max(0,Date.now()-e),n=Math.floor(t/1e3);return n<60?`${n}s`:`${Math.floor(n/60)}m ${n%60}s`},c8=({status:e})=>{let{t}=Ue(`common`);return e===`running`?(0,Y.jsx)(qN,{label:t(`planningAgentSidebar.runStatus.planning`),className:`px-2.5 py-0.5 text-[11px]`}):e===`done`?(0,Y.jsx)(lb,{className:`bg-emerald-500/85 px-2.5 py-0.5 text-[11px] text-emerald-50`,children:t(`planningAgentSidebar.runStatus.done`)}):(0,Y.jsx)(lb,{className:`bg-red-500/85 px-2.5 py-0.5 text-[11px] text-red-50`,children:t(`planningAgentSidebar.runStatus.failed`)})},l8=({heading:e,runs:t})=>{let{t:n}=Ue(`common`);return t.length===0?null:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,Y.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:e}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-2.5`,children:t.map(e=>(0,Y.jsx)(ub,{className:`rounded-2xl border-border bg-card/70 shadow-none`,children:(0,Y.jsxs)(hb,{className:`space-y-2 p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm font-medium text-foreground`,children:e.description}),(0,Y.jsx)(c8,{status:e.status})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:s8(e.submittedAt)}),e.summary&&(0,Y.jsxs)(`span`,{children:[n(`planningAgentSidebar.runSummary.tickets`,{count:e.summary.ticketCount}),`, `,n(`planningAgentSidebar.runSummary.dependencies`,{count:e.summary.dependencyCount}),e.summary.ticketsWithOpenQuestions>0?`, ${n(`planningAgentSidebar.runSummary.openQuestions`,{count:e.summary.ticketsWithOpenQuestions})}`:``]})]}),e.error&&(0,Y.jsx)(`div`,{className:`rounded-xl border border-red-500/30 bg-destructive/15 px-3 py-2 text-xs text-red-200`,children:e.error})]})},e.id))})]})},u8=({projectId:e=null,state:t,bundles:n,showModelSelector:r,availableModels:i,availableSkills:a,onManageBundles:o,onToggle:s,onDescriptionChange:c,onModelChange:l,onVariantChange:u,onSkillsChange:d,onBundleChange:f,onGenerate:m})=>{let{t:h}=Ue(`common`),g=i.find(e=>e.id===t.composer.model)??null,{jiraImportState:_,importFromJira:v}=dS(t.isOpen?e:null),{gitHubImportState:y,importFromGitHub:b}=cS(t.isOpen?e:null),x=(0,p.useRef)(null),S=[{key:`jira`,label:h(`jiraImportField.label`),placeholder:h(`jiraImportField.placeholder`),state:_,onImport:v},{key:`github`,label:h(`githubImportField.label`),placeholder:h(`githubImportField.placeholder`),state:y,onImport:b}],C=(0,p.useRef)(t.isOpen),w=(0,p.useRef)(t.isOpen),T=o8(t.runs),E=t.runs.filter(e=>e.status===`running`),D=t.runs.filter(e=>e.status!==`running`),O=t.composer.description.trim().length>0,k=h(`planningAgentSidebar.actions.planTickets`);(0,p.useEffect)(()=>{if(t.isOpen&&!C.current&&(w.current=!0),t.isOpen||(w.current=!1),C.current=t.isOpen,!t.isOpen||!w.current)return;let e=window.requestAnimationFrame(()=>{let e=document.activeElement,t=e instanceof HTMLElement&&e.closest(`[data-testid="planning-agent-rail"]`)!==null;if(e instanceof HTMLElement&&e!==document.body&&e!==x.current&&!t){w.current=!1;return}x.current?.focus({preventScroll:!0}),w.current=!1});return()=>{window.cancelAnimationFrame(e)}},[t.isOpen]),(0,p.useEffect)(()=>{if(!t.isOpen)return;let e=e=>{e.key!==`Escape`||e.defaultPrevented||(e.preventDefault(),s())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[s,t.isOpen]);let A=(0,Y.jsxs)(Z,{type:`button`,"aria-label":t.isOpen?h(`planningAgentSidebar.actions.closeAriaLabel`):h(`planningAgentSidebar.actions.openAriaLabel`),"aria-pressed":t.isOpen,onClick:s,variant:`outline`,className:`relative flex h-14 w-11 flex-col items-center justify-center gap-1 p-0`,children:[(0,Y.jsx)(Vx,{className:`size-5`}),(0,Y.jsx)($M,{"aria-hidden":`true`,children:`A`}),(0,Y.jsx)(`span`,{className:`absolute top-1 right-1 h-2.5 w-2.5 rounded-full ring-2 ring-card ${a8[T]}`})]});return(0,Y.jsxs)(`aside`,{"aria-label":h(`planningAgentSidebar.ariaLabel`),className:`relative z-20 h-full w-16 shrink-0 overflow-visible border-r border-border bg-background`,children:[(0,Y.jsx)(`div`,{"data-testid":`planning-agent-rail`,className:`relative z-40 flex h-full w-16 shrink-0 flex-col items-center border-r border-border bg-background py-4`,children:t.isOpen?A:(0,Y.jsx)(Sv,{content:h(`planningAgentSidebar.tooltip`),children:A})}),(0,Y.jsx)(`div`,{"data-testid":`planning-agent-drawer`,"aria-hidden":!t.isOpen,inert:!t.isOpen||void 0,className:X(`absolute inset-y-0 left-16 z-30 w-[min(36rem,calc(100vw-5rem))] overflow-hidden transition-transform duration-200 ease-out motion-reduce:transition-none`,t.isOpen?`pointer-events-auto translate-x-0`:`pointer-events-none -translate-x-full`),children:(0,Y.jsxs)(`div`,{className:`flex h-full w-[min(36rem,calc(100vw-5rem))] flex-col border-r border-border bg-background`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-border px-6 py-5`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-foreground`,children:h(`planningAgentSidebar.title`)}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:h(`planningAgentSidebar.description`)})]}),(0,Y.jsx)(Z,{type:`button`,"aria-label":h(`planningAgentSidebar.actions.closePanelAriaLabel`),onClick:s,variant:`ghost`,size:`icon-sm`,className:`shrink-0 text-muted-foreground hover:text-foreground`,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsx)(`div`,{"data-testid":`planning-agent-scroll-body`,className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsxs)(`div`,{className:`space-y-5 px-6 py-5`,children:[(0,Y.jsx)(rG,{providers:S,onImported:e=>{c(e.description)},inputId:`planning-agent-external-import`}),(0,Y.jsx)(_b,{label:h(`planningAgentSidebar.descriptionLabel`),htmlFor:`planning-agent-description`,className:`gap-2`,children:(0,Y.jsx)(`div`,{className:`relative`,children:(0,Y.jsx)(qC,{ref:x,projectId:e,suggestionAnchor:`caret`,id:`planning-agent-description`,"aria-label":h(`planningAgentSidebar.descriptionAriaLabel`),value:t.composer.description,onValueChange:c,rows:14,className:`min-h-[18rem] resize-y text-sm leading-6`,placeholder:h(`planningAgentSidebar.descriptionPlaceholder`)})})}),(0,Y.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(iG,{bundles:n,value:t.composer.worktreeBundleId,onChange:f,selectId:`planning-agent-bundle`,emptyLabel:h(`planningAgentSidebar.autoCreateBundle`),hideProjectRootBundles:!0,label:``})}),o&&(0,Y.jsx)(Z,{type:`button`,onClick:o,variant:`outline`,size:`sm`,className:`shrink-0 whitespace-nowrap border-sky-500/30 bg-sky-500/10 text-sky-200 hover:border-sky-400 hover:bg-sky-500/20 hover:text-sky-100`,children:h(`planningAgentSidebar.actions.manageBundles`)})]}),(0,Y.jsx)(`div`,{className:`space-y-3`,children:(0,Y.jsx)(ZW,{model:t.composer.model,variant:t.composer.variant,skills:t.composer.skills,showModelSelector:r,showSkillsSelector:r,availableModels:i,availableSkills:a,selectedModel:g,onModelChange:l,onVariantChange:u,onSkillsChange:d,modelSelectId:`planning-agent-model`,variantSelectId:`planning-agent-variant`,skillsSelectId:`planning-agent-skills`,layout:`stacked`})}),(0,Y.jsx)(`div`,{"data-testid":`planning-agent-runs`,className:`border-t border-border/80 px-0 pt-5`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(l8,{heading:h(`planningAgentSidebar.activeRuns`),runs:E}),(0,Y.jsx)(l8,{heading:h(`planningAgentSidebar.recentRuns`),runs:D})]})})]})}),(0,Y.jsx)(`div`,{className:`shrink-0 border-t border-border px-6 py-4`,children:(0,Y.jsx)(Z,{type:`button`,onClick:m,disabled:!O,className:`w-full`,children:k})})]})})]})},d8=({className:e=``})=>{let{setNodeRef:t,isOver:n}=BM({id:`trash`});return(0,Y.jsxs)(`div`,{ref:t,"data-testid":`delete-drop-zone`,className:`${e} flex min-w-[13rem] select-none items-center justify-between gap-4 rounded-2xl border px-4 py-3 backdrop-blur-sm transition-all duration-150 ${n?`scale-[1.02] border-red-400/70 bg-destructive/35 text-red-100 shadow-lg shadow-red-950/30`:`border-red-500/30 bg-background/82 text-red-200/85`}`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(lb,{variant:`destructive`,className:`text-[11px] uppercase tracking-[0.28em]`,children:`Delete`}),(0,Y.jsx)(`div`,{className:`mt-1 text-sm font-medium`,children:n?`Release to delete`:`Drop here to delete`})]}),(0,Y.jsx)(`div`,{className:`rounded-xl border p-2 transition-colors ${n?`border-red-400/60 bg-red-500/20`:`border-red-500/20 bg-background/60`}`,children:(0,Y.jsx)(vb,{className:`h-5 w-5 transition-colors ${n?`text-red-100`:`text-red-300/70`}`})})]})},f8=(e,t)=>J(q(`/ticket-dependencies`,e),{signal:t}),p8=(e,t)=>J(q(`/ticket-dependencies`,e),{method:`POST`,body:t,fallbackErrorMessage:`Unable to create the dependency right now.`}),m8=(e,t,n)=>Ze(q(`/ticket-dependencies/${t}/${n}`,e),{method:`DELETE`,fallbackErrorMessage:`Unable to remove the dependency right now.`}),h8=(e,t)=>{let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(!n||!i||n.left!==i.left||n.top!==i.top||n.width!==i.width||n.height!==i.height)return!1}return!0},g8=(e,t)=>e===t?!0:!e||!t?!1:e.projectId===t.projectId&&e.blockerTicketId===t.blockerTicketId&&e.hoveredTicketId===t.hoveredTicketId&&e.pointer.x===t.pointer.x&&e.pointer.y===t.pointer.y,_8=({activeProjectId:e,tickets:t,dependencies:n,setDependencies:r,activeTicket:i,activeOverlayNode:a,dragOffset:o})=>{let[s,c]=(0,p.useState)({}),[l,u]=(0,p.useState)({width:0,height:0}),[d,f]=(0,p.useState)(null),[m,h]=(0,p.useState)(null),g=(0,p.useRef)(null),_=(0,p.useRef)(null),v=(0,p.useRef)(null),y=(0,p.useRef)(new Map),b=(0,p.useRef)({}),x=(0,p.useRef)(null),S=(0,p.useRef)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(null),T=(0,p.useRef)(null),E=(0,p.useRef)(null),D=(0,p.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]);(0,p.useEffect)(()=>{w.current=m},[m]),(0,p.useLayoutEffect)(()=>{if(!i||!a||!_.current)return;let e=window.requestAnimationFrame(()=>{let e=_.current?.getBoundingClientRect(),t=a.getBoundingClientRect();e&&f({ticketId:i.id,rect:{left:t.left-e.left,top:t.top-e.top,width:t.width,height:t.height}})});return()=>{window.cancelAnimationFrame(e)}},[a,i,o.x,o.y]);let O=(0,p.useCallback)(()=>{x.current===null&&(x.current=window.requestAnimationFrame(()=>{x.current=null;let e=_.current;if(!e){v.current=null,b.current={},c({}),u({width:0,height:0});return}let t=e.getBoundingClientRect(),n={};v.current={left:t.left,top:t.top},u(e=>e.width===t.width&&e.height===t.height?e:{width:t.width,height:t.height});for(let[e,r]of y.current){let i=r.getBoundingClientRect();n[e]={left:i.left-t.left,top:i.top-t.top,width:i.width,height:i.height}}b.current=n,c(e=>h8(e,n)?e:n)}))},[]);(0,p.useEffect)(()=>{let e=g.current;if(!e)return;let t=()=>{O()};return e.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t),()=>{e.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t)}},[O]),(0,p.useEffect)(()=>{if(typeof ResizeObserver!=`function`)return;let e=new ResizeObserver(()=>{O()});S.current=e;for(let t of y.current.values())e.observe(t);return()=>{e.disconnect(),S.current===e&&(S.current=null)}},[O]),(0,p.useEffect)(()=>{let e=g.current,t=_.current;if(!e&&!t)return;let n=new ResizeObserver(()=>{O()});return e&&n.observe(e),t&&t!==e&&n.observe(t),()=>{n.disconnect()}},[O]),(0,p.useEffect)(()=>(O(),()=>{x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null)}),[n,O,t]);let k=(0,p.useCallback)((e,t)=>{let n=y.current.get(e);if(t){if(n===t)return;y.current.set(e,t),S.current?.observe(t)}else{if(!n)return;y.current.delete(e),S.current?.unobserve(n)}O()},[O]),A=(0,p.useCallback)(e=>{g8(w.current,e)||(w.current=e,h(e))},[]),j=(0,p.useCallback)(()=>{T.current!==null&&(window.cancelAnimationFrame(T.current),T.current=null),E.current=null},[]),M=(0,p.useCallback)(e=>{E.current=e,T.current===null&&(T.current=window.requestAnimationFrame(()=>{T.current=null;let e=E.current;E.current=null,A(e)}))},[A]),N=(0,p.useCallback)((e,t)=>{let n=v.current;if(!n&&_.current){let e=_.current.getBoundingClientRect();n={left:e.left,top:e.top},v.current=n}return n?{x:e-n.left,y:t-n.top}:{x:e,y:t}},[]),P=(0,p.useCallback)((e,t,n)=>{for(let[r,i]of Object.entries(b.current))if(r!==n&&e>=i.left&&e<=i.left+i.width&&t>=i.top&&t<=i.top+i.height)return r;return null},[]),F=(0,p.useCallback)(async t=>{if(e)try{await m8(e,t.blocker_ticket_id,t.dependent_ticket_id),r(e=>jN(e,t.blocker_ticket_id,t.dependent_ticket_id))}catch(e){Q.error(e instanceof Ke?e.message:`Unable to remove the dependency right now.`,{id:`board-dependency-error`})}},[e,r]),I=(0,p.useCallback)((t,i)=>{if(!e)return;i.preventDefault(),C.current?.();let a=(n,r,i=!1)=>{let a=N(n,r),o={projectId:e,blockerTicketId:t,hoveredTicketId:P(a.x,a.y,t),pointer:a};if(i){j(),A(o);return}M(o)};a(i.clientX,i.clientY,!0);let o=e=>{a(e.clientX,e.clientY)},s=async i=>{let a=N(i.clientX,i.clientY),o=P(a.x,a.y,t),s=o?NN(n,t,o):null;if(C.current?.(),C.current=null,A(null),!(!o||!s)){if(!s.valid){Q.error(PN(s.reason),{id:`board-dependency-error`});return}try{let n=await p8(e,{blocker_ticket_id:t,dependent_ticket_id:o});r(e=>AN(e,n))}catch(e){Q.error(e instanceof Ke?e.message:`Unable to create the dependency right now.`,{id:`board-dependency-error`})}}};C.current=()=>{window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),j()},window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s,{once:!0})},[e,j,n,P,N,M,r,A]);(0,p.useEffect)(()=>{C.current?.(),C.current=null,j(),w.current=null},[e,j]),(0,p.useEffect)(()=>()=>{C.current?.(),T.current!==null&&(window.cancelAnimationFrame(T.current),T.current=null)},[]);let L=(0,p.useMemo)(()=>{let r=m?.blockerTicketId;if(!r||m.projectId!==e||!D.has(r))return null;let i=new Map;for(let e of t){if(e.id===r){i.set(e.id,`source`);continue}let t=NN(n,r,e.id);i.set(e.id,t.valid?`valid`:`idle`)}return i},[e,n,m,D,t]),R=(0,p.useCallback)(e=>{if(!L||!m)return`idle`;let t=L.get(e)??`idle`;return e===m.hoveredTicketId&&t===`idle`?`invalid`:t},[L,m]),z=(0,p.useMemo)(()=>!m||m.projectId!==e||!D.has(m.blockerTicketId)?null:{blockerTicketId:m.blockerTicketId,hoveredTicketId:m.hoveredTicketId,pointer:m.pointer},[e,m,D]);return{boardViewportRef:g,boardContentRef:_,registerTicketNode:k,measuredCardRects:(0,p.useMemo)(()=>{if(!i)return s;let e=s[i.id];return e?d?.ticketId===i.id?{...s,[i.id]:d.rect}:{...s,[i.id]:{...e,left:e.left+o.x,top:e.top+o.y}}:s},[d,i,s,o.x,o.y]),overlayPreview:z,overlaySize:l,getDependencyTargetState:R,handleDependencyStart:I,handleDeleteDependency:F}},v8=e=>{if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.id==`string`?t.id:``,r=typeof t.name==`string`?t.name:``,i=typeof t.command==`string`?t.command:``,a=typeof t.cwd==`string`?t.cwd:``,o=t.runner===`vitest`||t.runner===`jest`||t.runner===`unknown`?t.runner:`auto`;return n.trim()===``||r.trim()===``&&i.trim()===``&&a.trim()===``?[]:[{id:n,name:r,command:i,cwd:a,runner:o}]}):[]}catch{return[]}},y8=`[data-terminal-pane="true"]`,b8=e=>{if(!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase();return t===`input`||t===`textarea`||e.isContentEditable},x8=e=>e instanceof HTMLElement?e.closest(y8)!==null:!1,S8=e=>b8(e)||x8(e),C8=(e,t={})=>{let{isBlocked:n}=t;(0,p.useEffect)(()=>{let t=t=>{if(t.defaultPrevented||t.repeat)return;let r=e.find(e=>!e.disabled&&e.key.toLowerCase()===t.key.toLowerCase()&&(e.ctrlKey??!1)===t.ctrlKey&&(e.altKey??!1)===t.altKey&&(e.metaKey??!1)===t.metaKey&&(e.shiftKey===void 0||e.shiftKey===t.shiftKey));r&&(n?.(document.activeElement)||(t.preventDefault(),r.onKeyDown()))};return window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`keydown`,t)}},[e,n])},w8=e=>({...e,messages:void 0,agent_log:void 0,streaming_response:void 0}),T8=(e,t)=>e?e.state!==t.state||e.parked_at!==t.parked_at||e.worktree_bundle_id!==t.worktree_bundle_id:!0,E8=(e,t)=>{if(!e)return t;let n=t.worktree_bundle_id!==null&&e.worktree_bundle_id===t.worktree_bundle_id,r=t.bundle??(n&&e.bundle?.id===t.worktree_bundle_id?e.bundle:null),i=t.bundle_execution_position??(n?e.bundle_execution_position??null:null);return{...e,...t,bundle:r,bundle_execution_position:i}},D8=(e,t)=>{let n=e=>gN(t)?gN(e):e.state===t.state&&!gN(e),r=e.findIndex(e=>n(e));if(r===-1)return[...e,t];let i=[...e];return i.splice(r,0,t),i},O8=(e,t)=>{let n=e.find(e=>e.id===t.id);return[n&&n.pull_request!==void 0&&t.pull_request===void 0?{...n,...t,pull_request:n.pull_request}:t,...e.filter(e=>e.id!==t.id)]},k8=(e,t)=>{let n=e.find(e=>e.id===t.id);if(!n)return[...e,t];let r=E8(n,t);return e.map(e=>e.id===t.id?r:e)},A8=(e,t)=>{let n=E8(e.find(e=>e.id===t.id),t);return D8(M8(e,t.id),n)},j8=(e,t)=>{if(e.length===0)return[...t];let n=[...e];for(let e of t)n=T8(n.find(t=>t.id===e.id),e)?A8(n,e):k8(n,e);let r=new Set(t.map(e=>e.id));return n.filter(e=>r.has(e.id))},M8=(e,t)=>e.filter(e=>e.id!==t),N8=(e,t,n,r={},i={})=>{let a=e.findIndex(e=>e.id===t);if(a===-1)return e;let o={...e[a],state:n,...r},s=M8(e,t);if(i.preferredIndex!==void 0){let e=Math.max(0,Math.min(i.preferredIndex,s.length));return s.splice(e,0,o),s}return D8(s,o)},P8=async(e,t)=>{`Notification`in window&&Notification.permission!==`denied`&&(Notification.permission===`default`&&await Notification.requestPermission(),Notification.permission===`granted`&&new Notification(e,{body:t}))},F8=(0,p.createContext)(W0),I8=()=>(0,p.useContext)(F8),L8=(0,p.createContext)(null),R8=15*1e3,z8=1e3,B8=async e=>P8(`Ticket done`,e),V8=e=>w8(e),H8=(e,t)=>t===`running`&&e.agent_status===`done`?`Finished ${e.state} for "${e.title}"`:t===`running`&&e.agent_status===`error`?`Failed ${e.state} for "${e.title}"`:t!==`running`&&e.agent_status===`running`?`Running ${e.state} for "${e.title}"`:null,U8=({activeProjectId:e,refreshKey:t=0,onLoadedProjectIdChange:n,onProjectUsageChange:r,onBundlesChange:i,onBundlesLoadingChange:a,children:o})=>{let s=I8(),[c,l]=(0,p.useState)([]),[u,d]=(0,p.useState)([]),[f,m]=(0,p.useState)([]),[h,g]=(0,p.useState)(null),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(null),[x,S]=(0,p.useState)(null),[C,w]=(0,p.useState)(null),T=(0,p.useRef)(0),E=(0,p.useRef)(0),D=(0,p.useRef)(new Map),O=(0,p.useRef)(new Map),k=(0,p.useRef)([]),A=(0,p.useRef)(e),j=(0,p.useRef)(new Map),M=(0,p.useRef)(new Map),N=(0,p.useRef)(new Map),P=(0,p.useCallback)((e,t)=>{let n=M.current.get(t.id);return!n||!e||t.state===n?t:e},[]),F=(0,p.useCallback)((e,t)=>{if(e.length===0)return;let n=new Map(M.current);for(let r of e)n.set(r,t);M.current=n},[]),I=(0,p.useCallback)(e=>{if(e.length===0||M.current.size===0)return;let t=new Map(M.current);for(let n of e)t.delete(n);M.current=t},[]),L=(0,p.useCallback)((e,t)=>{if(e.length===0)return;let n=new Map(N.current);for(let r of e)n.set(r,t);N.current=n},[]),R=(0,p.useCallback)(e=>{if(e.length===0||N.current.size===0)return;let t=new Map(N.current);for(let n of e)t.delete(n);N.current=t},[]),z=(0,p.useCallback)((e,t)=>{if(j.current.has(t.id))return null;let n=P(e,t);return N.current.has(t.id)?{...n,parked_at:N.current.get(t.id)??null}:n},[P]),B=(0,p.useCallback)((e,t)=>{if(j.current.size===0&&M.current.size===0&&N.current.size===0)return t;let n=new Map(e.map(e=>[e.id,e]));return t.flatMap(e=>{let t=z(n.get(e.id),e);return t?[t]:[]})},[z]),V=(0,p.useCallback)(async(e,t)=>{let n=await wt(e,t,{detail:`board`});return Array.isArray(n)?(!t?.aborted&&A.current===e&&l(e=>j8(e,B(e,n).map(V8))),n):null},[B]),H=(0,p.useCallback)(async(e,t)=>{await V(e,t)},[V]),ee=(0,p.useCallback)(async(e,t)=>{let n=++E.current,r=await Tt(e,t);if(!Array.isArray(r)||t?.aborted||A.current!==e||E.current!==n)return;let i=new Map(r.map(e=>[e.id,e]));l(e=>e.map(e=>{let t=i.get(e.id);return t?{...e,diff_stats:t.diff_stats??null,is_stale:t.is_stale}:e}))},[]),U=(0,p.useCallback)(e=>e.some(e=>e.is_stale===void 0),[]),te=(0,p.useCallback)(async e=>{let t=A.current;if(!t)return null;try{let n=await Et(e,t);if(A.current!==t)return null;let r=O.current.get(n.id),i=z(r,n);if(!i)return null;let a=V8(i),o=T8(r,a);return l(e=>o?A8(e,a):k8(e,a)),n}catch{return null}},[z]),ne=(0,p.useCallback)(async t=>{if(!e){m([]);return}m(await rt(e,t))},[e]),re=(0,p.useMemo)(()=>new Map(c.map(e=>[e.id,e])),[c]),ie=(0,p.useMemo)(()=>{let e=c.filter(e=>e.agent_status===`running`),t=new Set(e.map(e=>e.worktree_bundle_id).filter(e=>typeof e==`string`&&e.trim().length>0));return{total_running:e.length,running_plan_count:e.filter(e=>e.state===`plan`).length,running_build_count:e.filter(e=>e.state===`build`).length,running_review_count:e.filter(e=>e.state===`review`).length,active_bundle_count:t.size,latest_message:C}},[C,c]);(0,p.useEffect)(()=>{if(O.current=re,k.current.length===0)return;let e=[],t=[];for(let n of k.current){let r=re.get(n.blocker_ticket_id),i=re.get(n.dependent_ticket_id);r&&i&&r.project_id===A.current&&i.project_id===A.current?e.push(n):t.push(n)}k.current=t,e.length>0&&d(t=>e.reduce((e,t)=>AN(e,t),t))},[re]),(0,p.useEffect)(()=>{A.current=e,j.current.clear(),k.current=[],M.current.clear(),N.current.clear(),w(null),g(null),D.current.clear()},[e]),(0,p.useEffect)(()=>{n?.(y?null:_)},[_,y,n]),(0,p.useEffect)(()=>{if(i){if(!e){i(null,[]);return}if(_!==e){i(e,[]);return}i(e,f)}},[e,f,_,i]),(0,p.useEffect)(()=>{if(a){if(!e){a(null,!1);return}a(e,x===e)}},[e,x,a]),(0,p.useEffect)(()=>{let t=new AbortController,n=++T.current,r=null,i=async()=>{try{if(!e){l([]),d([]),m([]),v(null),b(null);return}l([]),d([]),m([]),v(null),b(e),S(e);let[n,i,a]=await Promise.allSettled([V(e,t.signal),f8(e,t.signal),rt(e,t.signal)]);if(t.signal.aborted)return;n.status!==`fulfilled`&&!Ye(n.reason)&&l([]),i.status===`fulfilled`?d(i.value):Ye(i.reason)||d([]),a.status===`fulfilled`?m(a.value):Ye(a.reason)||m([]),v(n.status===`fulfilled`&&i.status===`fulfilled`&&a.status===`fulfilled`?e:null),n.status===`fulfilled`&&n.value!==null&&U(n.value)&&(r=window.setTimeout(()=>{t.signal.aborted||ee(e,t.signal)},z8))}finally{!t.signal.aborted&&T.current===n&&(b(null),S(null))}},a=t=>{t.project_id===e&&(g(t),!j.current.has(t.id)&&(t.bundle&&m(e=>O8(e,t.bundle)),l(e=>A8(e,V8(t)))))},o=t=>{if(t.project_id===e&&g(t),l(n=>{if(t.project_id!==e)return M8(n,t.id);let r=n.find(e=>e.id===t.id),i=z(r,t);if(!i)return n;let a=V8(i);return T8(r,a)?A8(n,a):k8(n,a)}),t.project_id!==e){d(e=>kN(e,t.id));return}t.bundle&&m(e=>O8(e,t.bundle))},c=({id:e})=>{j.current.delete(e),N.current.delete(e),M.current.delete(e),l(t=>M8(t,e)),d(t=>kN(t,e))},u=e=>{if(!e)return;let t=O.current.get(e.blocker_ticket_id),n=O.current.get(e.dependent_ticket_id);if(!t||!n){k.current.push(e);return}t.project_id!==A.current||n.project_id!==A.current||d(t=>AN(t,e))},f=e=>{d(t=>jN(t,e.blocker_ticket_id,e.dependent_ticket_id))};return i(),s.on(`ticket:created`,a),s.on(`ticket:updated`,o),s.on(`ticket:deleted`,c),s.on(`ticket-dependency:created`,u),s.on(`ticket-dependency:deleted`,f),()=>{t.abort(),r!==null&&window.clearTimeout(r),s.off(`ticket:created`,a),s.off(`ticket:updated`,o),s.off(`ticket:deleted`,c),s.off(`ticket-dependency:created`,u),s.off(`ticket-dependency:deleted`,f)}},[e,ee,t,U,V,z,s]),(0,p.useEffect)(()=>{if(!e)return;let t=new AbortController,n=()=>{document.visibilityState===`visible`&&Promise.allSettled([V(e,t.signal),ne(t.signal)]).then(n=>{n[0]?.status===`fulfilled`&&n[0].value!==null&&U(n[0].value)&&ee(e,t.signal)}).catch(()=>{})},r=window.setInterval(n,R8),i=n3(n);return()=>{t.abort(),window.clearInterval(r),i()}},[e,ne,ee,U,V]),(0,p.useEffect)(()=>{if(!e||!r||_!==e)return;let t=c.filter(e=>{let t=e.bundle?.branch??e.branch;return typeof t==`string`&&t.trim()!==``}).length;r({projectId:e,ticketCount:c.length,worktreeCount:t,repoPathLocked:c.length>0||t>0||f.length>0})},[e,f.length,_,r,c]),(0,p.useEffect)(()=>{for(let e of c){let t=D.current.get(e.id),n=H8(e,t);n&&w(n),t!==void 0&&t===`running`&&e.agent_status===`done`&&(e.state===`plan`||e.state===`build`||e.state===`review`)&&B8(e.title),D.current.set(e.id,e.agent_status)}},[c]);let ae=(0,p.useCallback)(()=>{g(null)},[]),oe=(0,p.useMemo)(()=>({tickets:c,setTickets:l,dependencies:u,setDependencies:d,bundles:f,setBundles:m,latestDetailedTicketUpdate:h,clearLatestDetailedTicketUpdate:ae,loadedProjectId:_,loadingProjectId:y,activeProjectIdRef:A,pendingDeletedTicketsRef:j,pendingOptimisticMovesRef:M,pendingParkedTicketsRef:N,refreshTickets:H,requestSingleTicketRefresh:te,refreshBundles:ne,resolvePendingTicket:z,resolvePendingTickets:B,markPendingOptimisticMoves:F,clearPendingOptimisticMoves:I,markPendingParkedTickets:L,clearPendingParkedTickets:R,liveActivity:ie}),[f,ae,I,R,u,ie,_,h,y,F,L,ne,H,te,z,B,c]);return(0,Y.jsx)(L8.Provider,{value:oe,children:o})},W8=()=>{let e=(0,p.useContext)(L8);if(!e)throw Error(`useProjectWorkspace must be used inside ProjectWorkspaceProvider`);return e},G8=(0,p.lazy)(()=>bU(()=>import(`./TestsDialog-DelI4dOJ.js`).then(e=>({default:e.TestsDialog})),__vite__mapDeps([19,3]))),K8=`archon.last-model-selection`,q8=`archon.last-variant-selection`,J8=`archon.last-skills-selection`,Y8=()=>{try{let e=window.localStorage.getItem(J8),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}},X8=e=>[e.title,e.description,e.bundle?.name??``,e.bundle?.branch??``,e.branch??``].map(e=>e.toLowerCase()),Z8=(e,t)=>{let n=e.bundle_execution_position??2**53-1,r=t.bundle_execution_position??2**53-1;if(n!==r)return n-r;if(e.created_at!==t.created_at)return e.created_at.localeCompare(t.created_at);let i=e.title.localeCompare(t.title,void 0,{sensitivity:`base`});return i===0?e.id.localeCompare(t.id):i},Q8=(e,t)=>t?{...e,...t,messages:t.messages===void 0?e.messages:t.messages,agent_log:t.agent_log===void 0?e.agent_log:t.agent_log,streaming_response:t.streaming_response===void 0?e.streaming_response:t.streaming_response}:e,$8=(e,t)=>{let n=e.toLowerCase().trim().split(/\s+/).filter(Boolean);if(n.length===0)return!0;let r=X8(t);return n.every(e=>r.some(t=>t.includes(e)))},e5=[`plan`,`build`,`review`],t5=`done`,n5=()=>({build:!1,stopBuild:!1,resumeBuild:!1,review:!1,undoReview:!1,run:!1,stop:!1,followUp:!1,bundleRefresh:!1}),r5=({bundleId:e,activeRunContextKey:t,isProjectRootRunActive:n})=>n?!0:t!==null&&t!==e,are=(e,t)=>{if(!e)return null;let n=t.find(t=>t.id===e.ticket_id);return n?mN(n):e.ticket_id},ore=()=>({description:``,model:window.localStorage.getItem(K8)??``,variant:window.localStorage.getItem(q8)??``,skills:Y8(),worktreeBundleId:``}),i5=()=>({isOpen:!1,composer:ore(),runs:[]}),sre=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`planning-run-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,cre=e=>({ticketCount:e.tickets.length,dependencyCount:e.dependencies.length,ticketsWithOpenQuestions:e.tickets.filter(e=>(e.planning_context?.open_questions.length??0)>0).length,ticketTitles:e.tickets.map(e=>e.title),ticketIds:e.tickets.map(e=>e.id)}),a5=(e,t,n)=>e.map(e=>e.id===t?n(e):e),o5=(e,t,n)=>{e?window.localStorage.setItem(K8,e):window.localStorage.removeItem(K8),t?window.localStorage.setItem(q8,t):window.localStorage.removeItem(q8),n.length>0?window.localStorage.setItem(J8,JSON.stringify(n)):window.localStorage.removeItem(J8)},s5=(e,t={})=>uy(e,t),lre=()=>({model:window.localStorage.getItem(K8)??``,variant:window.localStorage.getItem(q8)??``,skills:Y8()}),c5=(e,t)=>{let n=M8(e,t.ticket.id),r=Math.max(0,Math.min(t.index,n.length));return n.splice(r,0,t.ticket),n},l5=e=>e.tickets.length>0&&e.tickets.every(e=>CN(e,`trash`)),ure=e=>e.tickets.length>0&&e.tickets.every(e=>CN(e,t5)),dre=e=>e.column===t5&&e.tickets.length>0&&e.tickets.every(e=>e.state!==`plan`),u5=(e,t,n,r)=>n||t!==null&&t!==mN(e)?r:LN(e),d5=(e,t)=>t===`build`?{agent_status:null,agent_log:null,streaming_response:null,build_completed_at:null,planning_context:e.planning_context?{...e.planning_context,open_questions:[]}:null}:t===`review`?{agent_status:null,agent_log:null,streaming_response:null}:{},fre=(e,t)=>e===`plan`&&t===`build`?`build`:e===`build`&&t===`review`?`review`:e===`review`&&t===`build`?`undoReview`:null,pre=(e,t,n)=>t===`review`&&n===`build`?{}:d5(e,n),mre=({activeProjectId:e,activeProject:t=null,activeProjectBranchState:n=null,activeRun:r,activeTool:i,onPreviewReviewCapabilityChange:a,onRunStopped:o,onRunStatusChange:s,onViewSourceSpec:c,refreshKey:l=0})=>{let{t:u}=Ue(`common`),d=NA(MA(Fj,{activationConstraint:{distance:5}})),{tickets:f,setTickets:m,dependencies:h,setDependencies:g,bundles:_,setBundles:v,latestDetailedTicketUpdate:y,clearLatestDetailedTicketUpdate:b,loadedProjectId:x,loadingProjectId:S,activeProjectIdRef:C,pendingDeletedTicketsRef:w,requestSingleTicketRefresh:T,refreshBundles:E,resolvePendingTicket:D,markPendingOptimisticMoves:O,clearPendingOptimisticMoves:k,markPendingParkedTickets:A,clearPendingParkedTickets:j}=W8(),[M,N]=(0,p.useState)(null),[P,F]=(0,p.useState)(null),[I,L]=(0,p.useState)(null),[R,z]=(0,p.useState)({x:0,y:0}),[B,V]=(0,p.useState)(null),[H,ee]=(0,p.useState)(!1),[U,te]=(0,p.useState)([]),[ne,re]=(0,p.useState)([]),[ie,ae]=(0,p.useState)(!1),[oe,W]=(0,p.useState)({}),[se,ce]=(0,p.useState)(!1),[le,ue]=(0,p.useState)(!1),[de,fe]=(0,p.useState)(null),[pe,me]=(0,p.useState)(null),[he,ge]=(0,p.useState)(null),[_e,ve]=(0,p.useState)(null),[ye,G]=(0,p.useState)(null),[be,xe]=(0,p.useState)(null),[Se,Ce]=(0,p.useState)(null),[we,Te]=(0,p.useState)(null),[Ee,De]=(0,p.useState)(null),[Oe,ke]=(0,p.useState)(null),[Ae,je]=(0,p.useState)(!1),[Me,Ne]=(0,p.useState)(n5()),[Pe,Fe]=(0,p.useState)(0),[Ie,Le]=(0,p.useState)(``),[Re,ze]=(0,p.useState)(!1),Be=i===`opencode`||he?.tool===`opencode`||!!be?.tickets.some(e=>e.tool===`opencode`),Ve=i===`opencode`&&U.length>0,K=hP(he,i)===`opencode`&&U.length>0,He=!!be?.tickets.some(e=>hP(e,i)===`opencode`)&&U.length>0,We=(0,p.useRef)(e),Ge=(0,p.useRef)(null),qe=(0,p.useRef)(null),[Je,q]=(0,p.useState)(null),Xe=f.find(e=>e.is_running)??null,Ze=Xe?mN(Xe):null,J=r?.context_key??null,Qe=r?.kind===`ticket`?are(r,f)??Ze:Ze,$e=r?.kind===`project`,et=Qe??Je,tt=(0,p.useCallback)(e=>r5({bundleId:e,activeRunContextKey:et,isProjectRootRunActive:$e}),[et,$e]),nt=M!==null&&CN(M,`trash`)||P!==null&&l5(P),rt=S===e,st=(0,p.useMemo)(()=>v8(t?.test_commands??null),[t?.test_commands]),ct=(0,p.useCallback)(async e=>P8(u(`board.notifications.planningDoneTitle`),u(`board.notifications.planningDoneBody`,{count:e})),[u]),lt=st.length>0,mt=(0,p.useMemo)(()=>new Map(f.map(e=>[e.id,e])),[f]);(0,p.useEffect)(()=>{q(null)},[e]),(0,p.useEffect)(()=>{Je!==null&&($e||Qe!==null)&&q(null)},[Qe,$e,Je]),(0,p.useEffect)(()=>{if(!pe){ge(null);return}let e=mt.get(pe)??null;e&&ge(t=>!t||t.id!==pe?e:Q8(t,e))},[pe,mt]),(0,p.useEffect)(()=>{y&&(ge(e=>!e||e.id!==y.id?e:Q8(e,y)),xe(e=>{if(!e)return e;let t=y.worktree_bundle_id;if(!t||e.bundle.id!==t)return e;let n=e.tickets.some(e=>e.id===y.id)?e.tickets.map(e=>e.id===y.id?Q8(e,y):e):[...e.tickets,y];return{...e,tickets:n}}))},[y]),(0,p.useEffect)(()=>{y===null||pe!==null||_e!==null||b()},[b,y,_e,pe]);let ht=(0,p.useCallback)(async e=>{let t=await T(e);if(!t)return null;let n=mt.get(e),r=n?Q8(t,n):t;return ge(t=>t&&t.id!==e||pe&&pe!==e?t:r),r},[T,pe,mt]),gt=(0,p.useCallback)(e=>{ge(e),me(e.id),ht(e.id)},[ht]),bt=(0,p.useMemo)(()=>new Map(_.map(e=>[e.id,e])),[_]),xt=(0,p.useMemo)(()=>{if(!be)return null;let e=be.bundle.id,t=y?.worktree_bundle_id===e?y:null,n=f.filter(t=>t.worktree_bundle_id===e),r=new Map(n.map(e=>[e.id,e])),i=be.tickets.filter(e=>!w.current.has(e.id)).map(e=>t&&e.id===t.id?Q8(e,t):e);t&&!i.some(e=>e.id===t.id)&&!w.current.has(t.id)&&i.push(t);let a=i.map(e=>Q8(e,r.get(e.id)));for(let e of n)a.some(t=>t.id===e.id)||a.push(e);a.sort(Z8);let o=be.execution_order_ticket_ids??[],s=a.map(e=>e.id),c=[...o,...s].filter((e,t,n)=>s.includes(e)&&n.indexOf(e)===t),l=n.some(e=>e.can_re_review!==void 0||e.has_completed_review!==void 0||e.has_follow_up_since_last_review!==void 0),u=n.some(e=>e.agent_status===`running`),d={has_completed_review:n.some(e=>e.has_completed_review===!0),has_follow_up_since_last_review:n.some(e=>e.has_follow_up_since_last_review===!0),can_re_review:!u&&n.some(e=>e.can_re_review===!0)},p=cy(a),m=a.find(e=>e.id===be.review_owner_ticket_id&&e.state===`review`)??a.find(e=>e.state===`review`)??null,h=uy(a,{targetTicketId:be.target_ticket_id,reviewOwnerTicketId:m?.id??be.review_owner_ticket_id,latestSessionTicketId:p?.id??be.latest_session_ticket_id});return{...be,bundle:bt.get(e)??be.bundle,tickets:a,execution_order_ticket_ids:c,latest_session_ticket_id:p?.id??null,latest_session_id:p?.session_id??null,review_owner_ticket_id:m?.id??null,target_ticket_id:h?.id??null,has_completed_review:l?d.has_completed_review:be.has_completed_review,has_follow_up_since_last_review:l?d.has_follow_up_since_last_review:be.has_follow_up_since_last_review,can_re_review:l?d.can_re_review:be.can_re_review}},[bt,y,w,be,f]),St=(0,p.useMemo)(()=>f.filter(e=>Re&&vN(e)?!1:$8(Ie,e)),[Re,Ie,f]),Ct=(0,p.useMemo)(()=>St.filter(e=>gN(e)),[St]),wt=(0,p.useMemo)(()=>dy(Ct,_,t5),[_,Ct]),{boardViewportRef:Tt,boardContentRef:Et,registerTicketNode:kt,measuredCardRects:jt,overlayPreview:Mt,overlaySize:Nt,getDependencyTargetState:Pt,handleDependencyStart:Ft,handleDeleteDependency:It}=_8({activeProjectId:e,tickets:f,dependencies:h,setDependencies:g,activeTicket:M,activeOverlayNode:I,dragOffset:R}),Lt=e?oe[e]??i5():i5(),tn=Lt.composer.worktreeBundleId&&_.some(e=>e.id===Lt.composer.worktreeBundleId)?Lt.composer.worktreeBundleId:``,nn=tn===Lt.composer.worktreeBundleId?Lt:{...Lt,composer:{...Lt.composer,worktreeBundleId:tn}},rn=lre(),an=!!t?.run_ide?.trim(),on=nn.runs.filter(e=>e.boardVisible),sn=(0,p.useCallback)((e,t,n=f)=>{let r=dy(n,_,t).find(t=>t.kind===`bundle`&&t.group.bundle.id===e);return r?.kind===`bundle`?r.group:null},[_,f]),cn=(0,p.useCallback)(e=>(0,Y.jsx)(c2,{ticket:e,allTickets:f,dependencies:h,bundles:_,projectMemoryEnabled:!!t?.memory_enabled,overlay:!0,showModelSelector:hP(e,i)===`opencode`&&U.length>0,availableModels:U,runDisabled:!0,hideBundleScopedControls:!0}),[t?.memory_enabled,i,U,_,h,f]),ln=on.length>0?(0,Y.jsx)(`div`,{className:`mb-0.5 flex flex-col gap-2.5`,children:on.map(e=>(0,Y.jsx)(i8,{run:e},e.id))}):null,un=(0,p.useCallback)(t=>ly(t)?t.project_id===e?an:!!t.has_run_ide:!1,[an,e]),dn=(0,p.useCallback)(e=>!!e.project_id&&!!(e.bundle?.branch??e.branch)&&ly(e),[]),fn=(0,p.useCallback)(e=>{let t=e?.tickets.find(t=>t.id===e.target_ticket_id)??e?.tickets.find(e=>e.has_worktree)??null;return t?un(t):!1},[un]),pn=(0,p.useCallback)(e=>{let t=f.filter(t=>t.worktree_bundle_id===e).sort(Z8);return be?.bundle.id===e?s5(be.tickets.map(e=>t.find(t=>t.id===e.id)??e).sort(Z8),{targetTicketId:be.target_ticket_id,reviewOwnerTicketId:be.review_owner_ticket_id,latestSessionTicketId:be.latest_session_ticket_id}):s5(t)},[be,f]),mn=(0,p.useCallback)((e,t)=>{W(n=>({...n,[e]:t(n[e]??i5())}))},[]);(0,p.useEffect)(()=>{ce(!1),ue(!1),Ce(null),ke(null),We.current!==e&&(Ge.current=e),e||(Ge.current=null,Le(``)),We.current=e},[e,l]),(0,p.useLayoutEffect)(()=>{!e||x!==e||Ge.current===e&&(Ge.current=null,Le(``))},[e,x]),(0,p.useEffect)(()=>{if(!Be){re([]);return}let t=new AbortController;return(async()=>{try{te(await Wn(`opencode`,t.signal))}catch(e){Ye(e)||te(e=>e)}})(),(async()=>{try{re(await eN(`opencode`,t.signal,e))}catch(e){Ye(e)||re([])}})(),()=>{t.abort()}},[e,Be]);let hn=({active:e})=>{ae(!1),L(null),z({x:0,y:0});let t=fy(String(e.id));if(t){F(sn(t.bundleId,t.column)),N(null);return}F(null),N(f.find(t=>t.id===e.id)??null)},gn=()=>{ae(!1),L(null),z({x:0,y:0}),N(null),F(null)},_n=(0,p.useCallback)(e=>{m(t=>e.reduce((e,t)=>A8(e,t),t))},[m]),vn=(0,p.useCallback)((e,t)=>{if(e.length===0)return;let n=e[0]?.state;n&&m(r=>e.reduce((e,r)=>N8(e,r.id,t,pre(r,n,t)),r))},[m]),yn=(0,p.useCallback)((e,t=f)=>!e.worktree_bundle_id||!e.project_id||e.state!==`build`?[]:t.filter(t=>t.project_id===e.project_id&&t.worktree_bundle_id===e.worktree_bundle_id&&t.state===`build`&&t.parked_at===null).sort(Z8),[f]),bn=async({active:e,over:t})=>{let n=fy(String(e.id)),r=f.find(t=>t.id===e.id),i=n?sn(n.bundleId,n.column):null,a=t?.id===`trash`&&(r!==void 0&&CN(r,`trash`)||i!==null&&l5(i)),o=t?.id&&e5.includes(t.id)?t.id:null;if(ae(a),L(null),z({x:0,y:0}),N(null),F(null),t){if(n){if(t.id===`trash`){if(!i||!l5(i))return;await Mn(i);return}if(t.id===t5){if(!i||!ure(i))return;await kn(i);return}if(o){if(n.column===t5){if(!i||!dre(i))return;await An(i);return}await cr(n.bundleId,n.column,o)}return}if(t.id===`trash`){if(!r||!CN(r,`trash`))return;Fn(e.id);return}if(t.id===t5){if(!r||!CN(r,t5))return;await Dn(e.id);return}if(o){if(r&&SN(r,o)){await On(e.id);return}if(!(!r||!CN(r,o)))try{await Tn(r,o,{optimistic:!0})}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.moveTicket`),{id:`board-move-error`})}}}},xn=async(t,n,r,i,a,o,s)=>{let c=await Dt({title:t,description:n,model:i,variant:a,skills:o,project_id:e,...s});if(o5(i,a,o),m(e=>A8(e,w8(c))),c.bundle&&v(e=>O8(e,c.bundle)),r===`build`)try{await Tn(c,`build`)}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.moveTicket`),{id:`board-move-error`})}r===`plan`&&en(c.id,c.project_id)},Sn=async t=>{if(!e)throw Error(u(`board.errors.createBundleWithoutProject`));let n=await it(e,{name:t,prepare:!0});return v(e=>O8(e,n)),n},Cn=e=>{m(t=>[...e.tickets].reverse().reduce((e,t)=>A8(e,w8(t)),t)),g(t=>e.dependencies.reduce((e,t)=>AN(e,t),t));for(let t of e.tickets)t.bundle&&v(e=>O8(e,t.bundle))},wn=(0,p.useCallback)((e,t={})=>{let n=w8(e);m(e=>t.reorderInState?A8(e,n):k8(e,n)),ge(t=>!t||t.id!==e.id?t:Q8(e,n)),e.bundle&&v(t=>O8(t,e.bundle))},[v,m]),Tn=async(e,t,n={})=>{let r=f.findIndex(t=>t.id===e.id),i=t===`review`?yn(e):[],a=t===`review`&&i.length>1,o=n.optimistic?a?i.map(e=>e.id):[e.id]:[];n.optimistic&&(O(o,t),a?vn(i,t):m(n=>N8(n,e.id,t,d5(e,t))));try{if(a&&e.project_id&&e.worktree_bundle_id){let t=await dt(e.project_id,e.worktree_bundle_id);Zn(t);let n=t.tickets.find(t=>t.id===e.id);if(!n)throw Error(u(`board.errors.missingBundleReviewTicket`));return k(o),n}let n=await At(e.id,e.project_id,t);return m(r=>{let i=r.find(t=>t.id===e.id);return i?.state===t&&n.state===t&&i.agent_status!==n.agent_status&&n.agent_status===e.agent_status?r:T8(i,n)?A8(r,n):k8(r,n)}),n.bundle&&v(e=>O8(e,n.bundle)),k(o),n}catch(t){throw n.optimistic&&(a?_n(i):m(t=>N8(t,e.id,e.state,{agent_status:e.agent_status,agent_log:e.agent_log,build_completed_at:e.build_completed_at},{preferredIndex:r})),k(o)),t}},En=(e,t)=>{m(n=>n.map(n=>n.id===e?{...n,...t}:n))},Dn=async t=>{let n=f.find(e=>e.id===t);if(n)try{let r=new Date().toISOString();A([t],r),En(t,{parked_at:r}),wn(await Ht(t,n.project_id??e),{reorderInState:!0}),j([t])}catch(e){j([t]),En(t,{parked_at:n.parked_at}),Q.error(e instanceof Ke?e.message:u(`board.errors.parkTicket`),{id:`board-park-error`})}},On=async t=>{let n=f.find(e=>e.id===t);if(n)try{A([t],null),En(t,{parked_at:null}),wn(await Ut(t,n.project_id??e),{reorderInState:!0}),j([t])}catch(e){j([t]),En(t,{parked_at:n.parked_at}),Q.error(e instanceof Ke?e.message:u(`board.errors.returnTicket`),{id:`board-unpark-error`})}},kn=(0,p.useCallback)(async e=>{let t=new Set(e.tickets.map(e=>e.id)),n=e.tickets.map(e=>({id:e.id,parked_at:e.parked_at})),r=new Date().toISOString();A(e.tickets.map(e=>e.id),r),m(e=>e.map(e=>t.has(e.id)?{...e,parked_at:r}:e));let i=await Promise.allSettled(e.tickets.map(e=>Ht(e.id,e.project_id??C.current))),a=new Set;if(i.forEach((t,n)=>{if(t.status===`fulfilled`){j([t.value.id]),wn(t.value,{reorderInState:!0});return}let r=e.tickets[n];r&&a.add(r.id)}),a.size===0)return;j([...a]),m(e=>e.map(e=>{if(!a.has(e.id))return e;let t=n.find(t=>t.id===e.id);return t?{...e,parked_at:t.parked_at}:e}));let o=i.find(e=>e.status===`rejected`),s=a.size===e.tickets.length?o?.reason instanceof Ke?o.reason.message:u(`board.errors.moveBundleToDone`):u(`board.toasts.movedBundleToDonePartial`,{movedCount:e.tickets.length-a.size,totalCount:e.tickets.length});Q.error(s,{id:`board-bundle-park-error`})},[C,wn,j,A,m,u]),An=(0,p.useCallback)(async e=>{let t=new Set(e.tickets.map(e=>e.id)),n=e.tickets.map(e=>({id:e.id,parked_at:e.parked_at}));A(e.tickets.map(e=>e.id),null),m(e=>e.map(e=>t.has(e.id)?{...e,parked_at:null}:e));let r=await Promise.allSettled(e.tickets.map(e=>Ut(e.id,e.project_id??C.current))),i=new Set;if(r.forEach((t,n)=>{if(t.status===`fulfilled`){j([t.value.id]),wn(t.value,{reorderInState:!0});return}let r=e.tickets[n];r&&i.add(r.id)}),i.size===0)return;j([...i]),m(e=>e.map(e=>{if(!i.has(e.id))return e;let t=n.find(t=>t.id===e.id);return t?{...e,parked_at:t.parked_at}:e}));let a=r.find(e=>e.status===`rejected`),o=i.size===e.tickets.length?a?.reason instanceof Ke?a.reason.message:u(`board.errors.restoreBundle`):u(`board.toasts.restoredBundlePartial`,{restoredCount:e.tickets.length-i.size,totalCount:e.tickets.length});Q.error(o,{id:`board-bundle-unpark-error`})},[C,wn,j,A,m,u]),jn=async t=>{e&&(await yt(e,t),v(e=>e.filter(e=>e.id!==t)))},Mn=(0,p.useCallback)(async t=>{let n=t.tickets.map(e=>({ticket:e,index:f.findIndex(t=>t.id===e.id)})).filter(e=>e.index!==-1);if(n.length===0)return;for(let e of n)w.current.set(e.ticket.id,e);let r=new Set(n.map(e=>e.ticket.id));m(e=>e.filter(e=>!r.has(e.id))),g(e=>e.filter(e=>!r.has(e.blocker_ticket_id)&&!r.has(e.dependent_ticket_id)));let i=await Promise.allSettled(n.map(async t=>(await Bt(t.ticket.id,t.ticket.project_id??e),w.current.delete(t.ticket.id),t.ticket.id)));t.tickets.some(e=>e.project_id===C.current)&&E().catch(()=>{});let a=n.filter((e,t)=>i[t]?.status===`rejected`);if(a.length===0)return;for(let e of a)w.current.delete(e.ticket.id);a.some(e=>e.ticket.project_id===C.current)&&m(e=>[...a].sort((e,t)=>e.index-t.index).reduce((e,t)=>c5(e,t),e));let o=i.find(e=>e.status===`rejected`),s=a.length===n.length?o?.reason instanceof Ke?o.reason.message:u(`board.errors.deleteBundleTickets`):u(`board.toasts.deletedBundleTicketsPartial`,{deletedCount:n.length-a.length,totalCount:n.length});Q.error(s,{id:`board-delete-bundle-wrapper-error`})},[e,C,w,E,g,m,f,u]),Nn=e=>{let t=mt.get(e.id);wn(e,{reorderInState:t?t.state!==e.state||t.parked_at!==e.parked_at||t.worktree_bundle_id!==e.worktree_bundle_id:!1}),t?.worktree_bundle_id&&t.worktree_bundle_id!==e.worktree_bundle_id&&t.bundle?.ticket_count===1&&v(e=>e.filter(e=>e.id!==t.worktree_bundle_id)),(t?.worktree_bundle_id!==e.worktree_bundle_id||t?.bundle?.ticket_count!==e.bundle?.ticket_count)&&e.project_id===C.current&&E().catch(()=>{})},Pn=async()=>{if(!e)return;let t=e,n=Lt.composer.description.trim();if(!n)return;let r=sre(),a=Ve?Lt.composer.model.trim():``,o=Ve&&a?Lt.composer.variant.trim():``,s=Ve?Lt.composer.skills:[],c=Date.now();mn(t,e=>({...e,isOpen:!1,composer:{...e.composer,description:``,worktreeBundleId:``},runs:[{id:r,description:n,model:a,variant:o,skills:s,worktreeBundleId:tn,status:`running`,error:null,submittedAt:c,completedAt:null,boardVisible:!0,boardState:`visible`,summary:null},...e.runs]}));try{let e=await Ot({description:n,tool:i,model:a||null,variant:a&&o||null,skills:s,project_id:t,worktree_bundle_id:tn||null});o5(a||null,a&&o||null,s);let c=cre(e);mn(t,e=>({...e,runs:a5(e.runs,r,e=>({...e,status:`done`,error:null,completedAt:Date.now(),summary:c,boardVisible:!1}))})),Q.success(u(`board.toasts.planningAgentCardsCreated`,{count:c.ticketCount}),{id:`planning-agent-success-${r}`}),ct(e.tickets.length),C.current===t&&Cn(e)}catch(e){let n=e instanceof Ke?e.message:u(`board.errors.generateTickets`);mn(t,e=>({...e,runs:a5(e.runs,r,e=>({...e,status:`error`,error:n,completedAt:Date.now()}))})),Q.error(n,{id:`planning-agent-error`})}},Fn=async t=>{let n=f.find(e=>e.id===t),r=f.findIndex(e=>e.id===t);if(!(!n||r===-1)){w.current.set(t,{ticket:n,index:r}),m(e=>M8(e,t)),g(e=>kN(e,t));try{await Bt(t,n.project_id??e),n.project_id===C.current&&E().catch(()=>{}),w.current.delete(t)}catch(e){let n=w.current.get(t);w.current.delete(t),n&&n.ticket.project_id===C.current&&(m(e=>c5(e,n)),Q.error(e instanceof Ke?e.message:u(`board.errors.deleteTicket`),{id:`board-delete-error`}))}}},In=async t=>{let n=f.find(e=>e.id===t);if(!n)return;let r=n.state===`review`?`review`:`build`;try{if(fe(r),n.project_id&&n.worktree_bundle_id&&n.state===`review`){Zn(await ft(n.project_id,n.worktree_bundle_id));return}wn(await Vt(t,n.project_id??e),{reorderInState:!0})}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.undoTicket`),{id:`board-undo-error`}),e}finally{fe(e=>e===r?null:e)}},Ln=t=>{Gt(t,f.find(e=>e.id===t)?.project_id??e)},Rn=async t=>{let n=f.find(e=>e.id===t),r=n?mN(n):t;try{q(r),await Kt(t,n?.project_id??e),s?.()}catch(e){q(e=>e===r?null:e),Q.error(e instanceof Ke?e.message:u(`board.errors.startRun`),{id:`board-run-error`})}},zn=(0,p.useCallback)(async t=>{let n=f.find(e=>e.id===t);try{await qt(t,n?.project_id??e)}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.openIde`),{id:`board-open-ide-error`})}},[e,u,f]),Bn=async t=>{let n=f.find(e=>e.id===t),i=r?.kind===`ticket`&&n&&Qe===mN(n)?J:null;try{await Jt(t,n?.project_id??e),o?.(i),s?.()}catch{}},Vn=t=>{Yt(t,f.find(e=>e.id===t)?.project_id??e).then(()=>{m(e=>e.map(e=>e.id===t?{...e,agent_status:`stopped`,is_running:!1}:e))})},Hn=t=>{Xt(t,f.find(e=>e.id===t)?.project_id??e).then(()=>{m(e=>e.map(e=>e.id===t?{...e,agent_status:`running`}:e))})},Un=(0,p.useCallback)(e=>{let t=pn(e);!t||!un(t)||zn(t.id)},[un,pn,zn]),Gn=(0,p.useCallback)(e=>{let t=pn(e);t&&De({bundleId:e,ticketId:t.id,projectId:t.project_id,title:t.bundle?my(t.bundle):t.title})},[pn]),Kn=(0,p.useCallback)(e=>{if(!lt)return;let t=pn(e);!t?.project_id||!ly(t)||ke(e)},[pn,lt]),qn=(0,p.useCallback)(e=>{let t=f.find(t=>t.id===e);if(!(!t||!dn(t))){if(t.worktree_bundle_id){Gn(t.worktree_bundle_id);return}Te({ticketId:t.id,projectId:t.project_id,title:t.title})}},[dn,Gn,f]),Jn=(0,p.useCallback)(e=>{if(!lt)return;let t=f.find(t=>t.id===e);!t?.project_id||!ly(t)||Ce({ticketId:t.id,projectId:t.project_id})},[lt,f]),Yn=(0,p.useCallback)(async(t,n,r=`build`)=>{let i=f.find(e=>e.id===t);if(i)try{wn(i.state===`plan`?await $t(t,i.project_id??e,n):await Zt(t,i.project_id??e,n,r))}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.sendFollowUp`),{id:`board-follow-up-error`}),e}},[e,wn,u,f]),Xn=(0,p.useCallback)(e=>{m(t=>e.reduce((e,t)=>{let n=e.find(e=>e.id===t.id),r=D(n,t);if(!r)return e;let i=w8(n&&n.state===r.state&&n.agent_status===`running`&&r.agent_status===null?{...r,agent_status:n.agent_status,session_id:n.session_id,is_running:n.is_running}:r);return T8(n,i)?A8(e,i):k8(e,i)},t))},[D,m]),Zn=(0,p.useCallback)(e=>{xe(e),v(t=>O8(t,e.bundle)),Xn(e.tickets)},[Xn,v]),Qn=(0,p.useCallback)((e,t)=>{Array.isArray(t.tickets)&&xe(n=>!n||n.bundle.id!==e?n:{...n,tickets:t.tickets,execution_order_ticket_ids:t.execution_order_ticket_ids,latest_session_ticket_id:t.latest_session_ticket_id,latest_session_id:t.latest_session_id,review_owner_ticket_id:t.review_owner_ticket_id,target_ticket_id:t.target_ticket_id})},[]),$n=(0,p.useCallback)(async e=>{let t=C.current;if(!t)return null;let n=await at(t,e);return C.current===t?(Zn(n),n):null},[C,Zn]),er=(0,p.useCallback)(async e=>{let t=C.current;if(!t)return null;let n=await ot(t,e);return C.current===t?(Qn(e,n),n):null},[C,Qn]),tr=(0,p.useCallback)(async(e,t=null)=>{let n=C.current;if(!n)return;me(null),ge(null),ve(e),G(t),Ne(n5());let r=bt.get(e)??null,i=f.filter(t=>t.worktree_bundle_id===e);if(r&&i.length>0){let e=cy(i),t=uy(i,{reviewOwnerTicketId:i.find(e=>e.state===`review`)?.id??null,latestSessionTicketId:e?.id??null});xe({bundle:r,tickets:i,latest_session_ticket_id:e?.id??null,latest_session_id:e?.session_id??null,review_owner_ticket_id:i.find(e=>e.state===`review`)?.id??null,target_ticket_id:t?.id??null})}else xe(null);je(!0);try{await er(e)}catch{}finally{C.current===n&&je(!1)}},[C,bt,er,f]),nr=(0,p.useCallback)(async(e,t)=>{Ne(t=>({...t,[e]:!0}));try{return await t()}finally{Ne(t=>({...t,[e]:!1}))}},[]),rr=(0,p.useCallback)(async t=>{await nr(`stopBuild`,async()=>{let n=f.find(e=>e.id===t);await Yt(t,n?.project_id??e),m(e=>e.map(e=>e.id===t?{...e,agent_status:`stopped`,is_running:!1}:e)),n?.worktree_bundle_id&&await $n(n.worktree_bundle_id)})},[e,$n,nr,m,f]),ir=(0,p.useCallback)(async t=>{await nr(`resumeBuild`,async()=>{let n=f.find(e=>e.id===t);await Xt(t,n?.project_id??e),m(e=>e.map(e=>e.id===t?{...e,agent_status:`running`}:e)),n?.worktree_bundle_id&&await $n(n.worktree_bundle_id)})},[e,$n,nr,m,f]),ar=(0,p.useCallback)(async t=>{if(e)try{Zn(await nr(`build`,()=>ut(e,t))),_e===t&&G(`build`),s?.()}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.buildBundle`),{id:`board-bundle-build-error`}),e}},[e,Zn,s,nr,_e,u]),or=(0,p.useCallback)(async t=>{if(e)try{Zn(await nr(`review`,()=>dt(e,t))),_e===t&&G(`review`)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.reviewBundle`),{id:`board-bundle-review-error`}),e}},[e,Zn,nr,_e,u]),sr=(0,p.useCallback)(async t=>{if(e)try{fe(`review`),Zn(await nr(`undoReview`,()=>ft(e,t))),_e===t&&G(`build`)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.undoBundleReview`),{id:`board-bundle-undo-review-error`}),e}finally{fe(e=>e===`review`?null:e)}},[e,Zn,nr,_e,u]),cr=(0,p.useCallback)(async(e,t,n)=>{if(t===t5||n===t5)return;let r=fre(t,n);if(!r)return;let i=f.filter(n=>n.worktree_bundle_id===e&&n.state===t&&n.parked_at===null);if(i.length===0)return;let a=i.map(e=>e.id);O(a,n),vn(i,n);try{if(r===`build`){await ar(e),k(a);return}if(r===`review`){await or(e),k(a);return}await sr(e),k(a)}catch(e){_n(i),k(a),Q.error(e instanceof Ke?e.message:u(`board.errors.moveBundle`),{id:`board-bundle-move-error`})}},[k,ar,or,sr,O,vn,_n,f,u]),lr=async t=>{e&&(Zn(await nr(`run`,()=>_t(e,t))),s?.())},ur=async t=>{if(!e)return;let n=r?.kind===`ticket`&&Qe===t?J:null,i=await nr(`stop`,()=>vt(e,t));o?.(n),Zn(i),s?.()},dr=(0,p.useCallback)(async(t,n,r=`build`)=>{e&&Zn(await nr(`followUp`,()=>pt(e,t,n,r)))},[e,Zn,nr]);(0,p.useEffect)(()=>()=>{a?.(null)},[a]),(0,p.useEffect)(()=>{if(!a)return;if(!r){a(null);return}if(r.kind===`project`){a({target:null,canSelect:!1,disabledReason:u(`board.preview.disabledProjectRoot`),submitPrompt:null});return}let e=f.find(e=>e.id===r.ticket_id);if(!e){a({target:null,canSelect:!1,disabledReason:u(`board.preview.disabledBuildCapable`),submitPrompt:null});return}if(e.state===`plan`){a({target:{kind:`ticket`,id:e.id},canSelect:!1,disabledReason:u(`board.preview.disabledPlanMode`),submitPrompt:null});return}if(e.worktree_bundle_id){a({target:{kind:`bundle`,id:e.worktree_bundle_id,ticket_id:e.id},canSelect:!0,disabledReason:null,promptPlaceholder:u(`board.preview.followUpBundlePlaceholder`),submitPrompt:t=>dr(e.worktree_bundle_id,t)});return}a({target:{kind:`ticket`,id:e.id},canSelect:!0,disabledReason:null,promptPlaceholder:u(`board.preview.followUpTicketPlaceholder`),submitPrompt:t=>Yn(e.id,t)})},[r,Yn,dr,a,u,f]);let fr=async t=>{let n=f.find(e=>e.id===t),r=n?fN(n.state):null;if(n)try{if(n.state===`review`&&n.can_re_review&&n.agent_status!==`running`){let t=await Qt(n.id,n.project_id??e);wn(t),t.worktree_bundle_id&&await $n(t.worktree_bundle_id);return}if(!r)return;if(n.worktree_bundle_id&&r===`review`){await or(n.worktree_bundle_id);return}await Tn(n,r)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.moveTicket`),{id:`board-move-error`}),e}},pr=async t=>{let n=f.find(e=>e.id===t);try{wn(await Rt(t,n?.project_id??e))}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.startBuildChain`),{id:`board-build-chain-error`}),e}},mr=async t=>{let n=f.find(e=>e.id===t);try{await zt(t,n?.project_id??e)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.stopBuildChain`),{id:`board-stop-build-chain-error`}),e}},hr=async()=>{if(!(!e||le)){ue(!0);try{let t=await Wt(e);m(e=>e.filter(e=>!t.deleted_ticket_ids.includes(e.id))),g(e=>t.deleted_ticket_ids.reduce(kN,e)),await E(),ce(!1),t.failed_count>0?Q.error(u(`board.toasts.deleteDonePartial`,{count:t.deleted_count,deletedCount:t.deleted_count,failedCount:t.failed_count}),{id:`board-delete-parked-error`}):Q.success(u(`board.toasts.deleteDoneSuccess`,{count:t.deleted_count}),{id:`board-delete-parked-success`})}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.emptyDone`),{id:`board-delete-parked-error`})}finally{ue(!1)}}},gr=({delta:e})=>{z(e)},_r=(0,p.useCallback)((t=null)=>{e&&V({initialWorktreeBundleId:t})},[e]),vr=(0,p.useCallback)(()=>{e&&mn(e,e=>e.isOpen?e:{...e,isOpen:!0})},[e,mn]),yr=(0,p.useCallback)(()=>{qe.current?.focus({preventScroll:!0})},[]);return C8([{key:`n`,onKeyDown:_r,disabled:!e},{key:`a`,onKeyDown:vr,disabled:!e},{key:`k`,ctrlKey:!0,onKeyDown:yr}],{isBlocked:S8}),(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(MM,{sensors:d,collisionDetection:WA,onDragStart:hn,onDragMove:gr,onDragCancel:gn,onDragEnd:bn,children:[(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 overflow-hidden`,children:[(0,Y.jsx)(u8,{projectId:e,state:nn,bundles:_,projectBranchState:n,showModelSelector:Ve,availableModels:U,availableSkills:ne,onManageBundles:e?()=>{(async()=>{try{await E()}catch{}ee(!0)})()}:void 0,onToggle:()=>{e&&mn(e,e=>({...e,isOpen:!e.isOpen}))},onDescriptionChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,description:t}}))},onModelChange:t=>{if(!e)return;let n=U.find(e=>e.id===t)??null;mn(e,e=>({...e,composer:{...e.composer,model:t,variant:n?.variants.includes(e.composer.variant)?e.composer.variant:``}}))},onSkillsChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,skills:t}}))},onVariantChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,variant:t}}))},onBundleChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,worktreeBundleId:t}}))},onGenerate:()=>{Pn()}}),(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:X(`absolute inset-y-0 left-16 right-0 z-10 bg-black/60 transition-opacity duration-200 ease-out motion-reduce:transition-none`,nn.isOpen?`opacity-100`:`pointer-events-none opacity-0`)}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-4 overflow-hidden p-6`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col items-start gap-3 sm:flex-row sm:items-center`,children:[(0,Y.jsxs)(`div`,{className:`relative w-full max-w-sm`,children:[(0,Y.jsx)(z_,{id:`board-ticket-search`,ref:qe,type:`search`,value:Ie,onChange:e=>Le(e.target.value),placeholder:u(`board.search.placeholder`),"aria-label":u(`board.search.ariaLabel`),className:`pr-32`}),Ie.length>0?(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":u(`board.search.clearAriaLabel`),className:`absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>{Le(``),qe.current?.focus()},children:(0,Y.jsx)(Jy,{className:`size-4`})}):(0,Y.jsxs)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5 text-[10px] leading-none`,children:[(0,Y.jsx)($M,{children:`CTRL`}),(0,Y.jsx)(`span`,{children:`+`}),(0,Y.jsx)($M,{children:`K`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Bx,{id:`board-hide-stale-tickets`,checked:Re,onCheckedChange:ze,"aria-label":u(`board.search.hideStaleAriaLabel`)}),(0,Y.jsx)($_,{htmlFor:`board-hide-stale-tickets`,className:`text-sm text-muted-foreground`,children:u(`board.search.hideStaleLabel`)})]})]}),(0,Y.jsx)(`div`,{ref:Tt,className:`flex min-h-0 flex-1 overflow-x-auto overflow-y-hidden`,children:(0,Y.jsxs)(`div`,{ref:Et,className:`relative flex min-h-0 w-max min-w-full gap-4`,children:[(0,Y.jsx)(e8,{dependencies:h,cardRects:jt,preview:Mt,ticketsById:mt,overlaySize:Nt}),e5.map(t=>{let n=f.filter(e=>e.state===t&&!gN(e)),r=St.filter(e=>e.state===t&&!gN(e)),i=dy(r,_,t),a=rt&&n.length===0?t===`plan`?1:t===`build`?2:0:0;return(0,Y.jsx)(u2,{id:t,title:u(`card.columnLabels.${t}`),pinnedContent:t===`plan`?ln:null,items:i,ticketCount:r.length,allTickets:f,dependencies:h,showModelSelector:Ve,availableModels:U,bundles:_,activeRunContextKey:et,isProjectRootRunActive:$e,isBundleRunDisabled:tt,getDependencyTargetState:Pt,onDependencyStart:Ft,onDeleteDependency:It,onRegisterTicketNode:kt,onAddTicket:t===`plan`&&e?_r:void 0,onCreateBundle:t===`plan`&&e?Sn:void 0,onDeleteBundle:t===`plan`&&e?jn:void 0,onDeleteBundleWrapper:Mn,onRefreshBundles:t===`plan`&&e?E:void 0,onUpdateTicket:Nn,onDeleteTicket:Fn,onUndoTicket:In,undoingColumn:de,onRetryTicket:Ln,onAdvanceTicket:fr,onParkTicket:Dn,onUnparkTicket:On,onBuildChainTicket:pr,onRunTicket:Rn,onOpenTestsTicket:lt?Jn:void 0,canOpenChangesForTicket:dn,onOpenChangesTicket:qn,canOpenIdeForTicket:un,onOpenIdeTicket:zn,onStopTicket:Bn,onStopBuildTicket:Vn,onStopBuildChainTicket:mr,onResumeBuildTicket:Hn,onOpenBundleChanges:Gn,onOpenBundleTests:lt?Kn:void 0,onOpenBundleIde:Un,onAddTicketToBundle:_r,onFollowUpTicket:Yn,bundleActionState:Me,onBuildBundle:ar,onReviewBundle:or,onUndoBundleReview:sr,onRunBundle:lr,onStopBundle:ur,onParkBundleWrapper:kn,onUnparkBundleWrapper:An,onOpenTicketDetails:gt,onOpenBundleDetails:(e,t)=>{tr(e,t)},onRequestBundleRefresh:e=>{nr(`bundleRefresh`,()=>$n(e))},onRequestTicketRefresh:T,loadingSkeletonCount:a},t)}),(0,Y.jsx)(u2,{id:t5,title:u(`card.columnLabels.done`),items:wt,ticketCount:Ct.length,allTickets:f,dependencies:h,showModelSelector:Ve,availableModels:U,bundles:_,activeRunContextKey:et,isProjectRootRunActive:$e,isBundleRunDisabled:tt,getDependencyTargetState:Pt,onDependencyStart:Ft,onDeleteDependency:It,onRegisterTicketNode:kt,onUpdateTicket:Nn,onDeleteTicket:Fn,onUndoTicket:In,undoingColumn:de,onRetryTicket:Ln,onAdvanceTicket:fr,onParkTicket:Dn,onUnparkTicket:On,onBuildChainTicket:pr,onRunTicket:Rn,onOpenTestsTicket:lt?Jn:void 0,canOpenChangesForTicket:dn,onOpenChangesTicket:qn,canOpenIdeForTicket:un,onOpenIdeTicket:zn,onStopTicket:Bn,onStopBuildTicket:Vn,onStopBuildChainTicket:mr,onResumeBuildTicket:Hn,onOpenBundleChanges:Gn,onOpenBundleTests:lt?Kn:void 0,onOpenBundleIde:Un,onAddTicketToBundle:_r,onFollowUpTicket:Yn,bundleActionState:Me,onBuildBundle:ar,onReviewBundle:or,onUndoBundleReview:sr,onRunBundle:lr,onStopBundle:ur,onParkBundleWrapper:kn,onUnparkBundleWrapper:An,onOpenTicketDetails:gt,onOpenBundleDetails:(e,t)=>{tr(e,t)},onRequestBundleRefresh:e=>{nr(`bundleRefresh`,()=>$n(e))},onRequestTicketRefresh:T,className:`min-w-[272px] max-w-[272px] flex-[0.98] bg-card/65`,headerAccessory:(0,Y.jsxs)(Z,{type:`button`,variant:`destructive`,size:`xs`,className:`gap-1.5`,disabled:Ct.length===0||le,onClick:()=>ce(!0),children:[(0,Y.jsx)(vb,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:u(`board.doneColumn.emptyAction`)})]})})]})})]})]}),(0,Y.jsxs)(QM,{zIndex:5,dropAnimation:ie?null:void 0,children:[M&&(0,Y.jsx)(c2,{ticket:M,allTickets:f,dependencies:h,bundles:_,projectMemoryEnabled:!!t?.memory_enabled,overlay:!0,showModelSelector:hP(M,i)===`opencode`&&U.length>0,availableModels:U,runDisabled:u5(M,et,$e,u(`board.errors.runBlockedByActive`))!==void 0,runDisabledReason:u5(M,et,$e,u(`board.errors.runBlockedByActive`)),onDependencyStart:Ft,onDeleteDependency:It,onRegisterOverlayNode:L,onCreateBundle:Sn,onDeleteBundle:jn,onRefreshBundles:E,onUpdate:Nn,onDelete:()=>Fn(M.id),onUndo:()=>In(M.id),undoInProgress:de===M.state&&(M.state===`build`||M.state===`review`),onRetry:()=>Ln(M.id),onAdvance:()=>fr(M.id),onPark:()=>Dn(M.id),onUnpark:()=>On(M.id),onBuildChain:()=>pr(M.id),onRun:M.worktree_bundle_id===null&&ly(M)&&M.has_run_config?()=>Rn(M.id):void 0,onOpenIde:M.worktree_bundle_id===null&&un(M)?()=>zn(M.id):void 0,onStop:M.worktree_bundle_id===null?()=>Bn(M.id):void 0,onStopBuild:()=>Vn(M.id),onStopBuildChain:()=>mr(M.id),onResumeBuild:()=>Hn(M.id),onFollowUp:e=>Yn(M.id,e),onRequestTicketRefresh:T}),!M&&P&&(0,Y.jsx)(iP,{group:P,overlay:!0,renderTicket:cn})]}),nt&&(0,Y.jsx)(d8,{className:`pointer-events-auto fixed left-1/2 top-4 z-20 w-[min(14rem,calc(100vw-2rem))] -translate-x-1/2`})]}),B&&(0,Y.jsx)(t8,{onSubmit:xn,bundles:_,projectId:e,projectBranchState:n,tool:i,showModelSelector:Ve,availableModels:U,availableSkills:ne,initialModel:Ve?rn.model:``,initialVariant:Ve&&rn.model?rn.variant:``,initialSkills:Ve?rn.skills:[],initialWorktreeBundleId:B.initialWorktreeBundleId,onCreateBundle:Sn,onDeleteBundle:jn,onRefreshBundles:E,onClose:()=>V(null)}),H&&e&&(0,Y.jsx)(bb,{bundles:_,selectedBundleId:nn.composer.worktreeBundleId||null,onSelectBundle:t=>{mn(e,e=>({...e,composer:{...e.composer,worktreeBundleId:t??``}}))},onCreateBundle:Sn,onDeleteBundle:jn,onClose:()=>ee(!1)}),se&&(0,Y.jsx)(d2,{ticketCount:Ct.length,isDeleting:le,onCancel:()=>ce(!1),onConfirm:()=>{hr()}}),he&&(0,Y.jsx)(s2,{ticket:he,allTickets:f,dependencies:h,bundles:_,projectMemoryEnabled:!!t?.memory_enabled,projectBranchState:n,onClose:()=>{let e=he.id;me(null),ge(null),m(t=>t.map(t=>t.id===e?w8(t):t))},showModelSelector:K,activeTool:i,availableModels:U,availableSkills:ne,runDisabled:u5(he,et,$e,u(`board.errors.runBlockedByActive`))!==void 0,runDisabledReason:u5(he,et,$e,u(`board.errors.runBlockedByActive`)),onDeleteDependency:It,onCreateBundle:Sn,onDeleteBundle:jn,onRefreshBundles:E,onUpdate:Nn,onAdvance:()=>fr(he.id),onBuildChain:()=>pr(he.id),onRun:ly(he)&&he.has_run_config?()=>Rn(he.id):void 0,onOpenIde:un(he)?()=>zn(he.id):void 0,onStop:()=>Bn(he.id),onStopBuild:()=>Vn(he.id),onStopBuildChain:()=>mr(he.id),onResumeBuild:()=>Hn(he.id),onFollowUp:e=>Yn(he.id,e),onProjectMemorySuggestionsChanged:()=>{Fe(e=>e+1)},onRequestTicketRefresh:e=>{ht(e)},onViewSourceSpec:c}),Se&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(G8,{scope:`ticket`,ticketId:Se.ticketId,projectId:Se.projectId,testCommands:st,onClose:()=>Ce(null)})}),Ee&&(0,Y.jsx)(B6,{ticketId:Ee.ticketId,projectId:Ee.projectId,reviewCommentsBundleId:Ee.bundleId,title:Ee.title,onSubmitReviewPrompt:e=>dr(Ee.bundleId,e),canSubmitReviewPrompt:!f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`),reviewSubmitDisabledReason:f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`)?u(`board.changes.reviewPromptDisabledReason`):void 0,canAddReviewComments:!f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`),canModifyChanges:!f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`),changesDisabledReason:f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`)?u(`board.changes.modifyChangesDisabledReason`):void 0,onClose:()=>{let{bundleId:e}=Ee;De(null),$n(e)},onTicketUpdate:Nn,onRequestTicketRefresh:T,onViewSourceSpec:c,originSpecSessionId:f.find(e=>e.id===Ee.ticketId)?.origin_spec_session_id??null,originSpecSnapshotId:f.find(e=>e.id===Ee.ticketId)?.origin_spec_snapshot_id??null}),we&&(0,Y.jsx)(B6,{ticketId:we.ticketId,projectId:we.projectId,title:we.title,onClose:()=>{let{ticketId:e}=we;Te(null),ht(e)},onTicketUpdate:Nn,onRequestTicketRefresh:e=>{ht(e)},onViewSourceSpec:c,originSpecSessionId:f.find(e=>e.id===we.ticketId)?.origin_spec_session_id??null,originSpecSnapshotId:f.find(e=>e.id===we.ticketId)?.origin_spec_snapshot_id??null}),Oe&&e&&t&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(G8,{scope:`project`,projectId:e,targetKind:`bundle`,targetBundleId:Oe,testCommands:st,onClose:()=>ke(null)})}),_e&&xt&&(0,Y.jsx)(j2,{details:xt,activeColumn:ye,isLoading:Ae||Me.bundleRefresh,actionState:Me,canOpenIde:fn(xt),projectMemoryEnabled:!!t?.memory_enabled,memorySuggestionsRefreshKey:Pe,runDisabled:tt(xt.bundle.id),showModelSelector:He,availableModels:U,availableSkills:ne,onClose:()=>{let e=xt.bundle.id;ve(null),G(null),xe(null),je(!1),Ne(n5()),m(t=>t.map(t=>t.worktree_bundle_id===e&&t.id!==pe?w8(t):t))},onOpenTicketDetails:gt,onUpdateTicket:Nn,onOpenIde:()=>{let e=xt.tickets.find(e=>e.id===xt.target_ticket_id)??xt.tickets.find(e=>e.has_worktree);e&&zn(e.id)},onOpenTests:lt?()=>{Kn(xt.bundle.id)}:void 0,onRefresh:e=>{nr(`bundleRefresh`,()=>$n(e))},onBuildBundle:ar,onStopBuildTicket:rr,onResumeBuildTicket:ir,onReviewBundle:or,onUndoBundleReview:sr,onRunBundle:lr,onStopBundle:ur,onFollowUpBundle:dr})]})},f5=({count:e,title:t,isDeleting:n,onConfirm:r,onCancel:i,labels:a})=>{let o=e>1;return(0,Y.jsxs)(tb,{onClose:i,overlayClassName:`bg-black/60`,panelClassName:`max-w-sm rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,Y.jsx)(`h2`,{className:`mb-3 text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:o?a.bulkTitle:a.title}),t?(0,Y.jsx)(`p`,{className:`mb-1 text-sm text-foreground`,children:t}):null,(0,Y.jsx)(`p`,{className:`mb-6 text-xs text-muted-foreground`,children:o?a.bulkDescription(e):a.description}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,onClick:i,disabled:n,children:a.cancel}),(0,Y.jsx)(Z,{type:`button`,variant:`destructive`,onClick:r,disabled:n,children:n?a.deleting:a.delete})]})]})},p5=({label:e})=>(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 text-sm text-muted-foreground`,children:e}),m5=({label:e})=>(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 text-sm text-muted-foreground`,children:e}),h5=({title:e,description:t,startNewSessionLabel:n,onStartNewSession:r,canStartNewSession:i})=>(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6`,children:(0,Y.jsxs)(ub,{className:`w-full max-w-lg border-dashed border-border/70 bg-card/40`,children:[(0,Y.jsxs)(db,{children:[(0,Y.jsx)(fb,{children:e}),(0,Y.jsx)(pb,{children:t})]}),(0,Y.jsx)(hb,{children:(0,Y.jsx)(Z,{type:`button`,onClick:r,disabled:!i,children:n})})]})}),hre=({className:e})=>(0,Y.jsx)(Mg,{"aria-hidden":`true`,className:e}),gre=({className:e})=>(0,Y.jsx)(Cg,{"aria-hidden":`true`,className:e}),_re=({className:e})=>(0,Y.jsx)(wg,{"aria-hidden":`true`,className:e}),g5=({sessions:e,sessionGroups:t,activeSessionId:n,isDraftOpen:r,isLoadingSessions:i,isOpen:a,onToggleOpen:o,testId:s,railTestId:c,onDraftOpen:l,isCreatingSession:u,isSendingPrompt:d,newSessionShortcutHint:f,newSessionTooltip:m,isSelectionMode:h,selectedSessionIds:g,selectedSessionCount:_,hasDeletableSessions:v,deletingSessionIds:y,onEnterSelectionMode:b,onExitSelectionMode:x,onToggleSessionSelection:S,onSetSessionSelection:C,onConfirmDeleteSelectedSessions:w,onSessionSelect:T,onConfirmDeleteSession:E,getSessionId:D,getSessionTitle:O,getDeleteDisabledReason:k,getActivityState:A,getRowAriaLabel:j,renderRowContent:M,labels:N})=>{let P=(0,p.useMemo)(()=>new Set(e.filter(e=>!k(e)&&!y.has(D(e))).map(e=>D(e))),[y,k,D,e]),F=(0,p.useRef)(null),I=(0,p.useRef)(!1),L=(0,p.useRef)(null),R=(0,p.useCallback)(()=>{L.current!==null&&(window.clearTimeout(L.current),L.current=null)},[]),z=(0,p.useCallback)(()=>{R(),L.current=window.setTimeout(()=>{I.current=!1,L.current=null},0)},[R]),B=(0,p.useCallback)(()=>{F.current&&(F.current=null,z())},[z]),V=(0,p.useCallback)(e=>{let t=F.current;!t||t.visitedSessionIds.has(e)||!P.has(e)||(t.visitedSessionIds.add(e),C(e,t.mode===`select`))},[C,P]),H=(0,p.useCallback)(e=>{let t=F.current;!t||e.pointerId!==t.pointerId||B()},[B]);return(0,p.useEffect)(()=>{if(!h){B();return}return window.addEventListener(`pointerup`,H),window.addEventListener(`pointercancel`,H),()=>{window.removeEventListener(`pointerup`,H),window.removeEventListener(`pointercancel`,H),B(),R()}},[R,H,h,B]),(0,Y.jsx)(`aside`,{"data-testid":s,"data-state":a?`expanded`:`collapsed`,"aria-label":N.ariaLabel,className:X(`relative z-20 flex h-full shrink-0 flex-col overflow-hidden border-r border-border/70 bg-background/40 transition-[width] duration-200 ease-out motion-reduce:transition-none`,a?`w-72`:`w-16`),children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-start gap-2 border-b border-border/70 px-4 py-3.5`,children:[(0,Y.jsxs)(Z,{type:`button`,size:`sm`,className:`gap-2`,onClick:l,disabled:u||d,children:[(0,Y.jsx)(Ey,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:N.newSession}),f]}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":N.collapseAriaLabel,"aria-expanded":a,className:`ml-auto`,onClick:o,children:(0,Y.jsx)(gre,{className:`h-4 w-4`})})]}),e.length>0?(0,Y.jsx)(`div`,{className:`px-4 py-2.5`,children:h?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`ghost`,className:`h-7 px-2 text-xs`,onClick:x,disabled:y.size>0,children:N.cancelSelection}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`destructive`,className:`h-7 px-2 text-xs`,onClick:w,disabled:_===0||y.size>0,children:N.deleteSelected})]}),(0,Y.jsx)(`div`,{className:`flex justify-end text-xs font-medium text-muted-foreground`,children:N.selectedCount(_)})]}):v?(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`ghost`,className:`h-7 gap-1.5 px-2 text-xs`,onClick:b,children:[(0,Y.jsx)(hre,{className:`h-3.5 w-3.5`}),N.select]}):null}):null,(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-2`,children:i&&e.length===0?(0,Y.jsx)(`div`,{className:`px-2 py-4 text-sm text-muted-foreground`,children:N.loadingSessions}):e.length===0?(0,Y.jsx)(`div`,{className:`rounded-lg border border-dashed border-border/70 px-3 py-4 text-sm text-muted-foreground`,children:N.noSessions}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-3`,children:t.map(e=>(0,Y.jsxs)(`section`,{"aria-label":e.label,className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`px-2 text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground/80`,children:e.label}),e.sessions.map(e=>{let t=D(e),i=!r&&t===n,a=k(e),o=y.has(t),s=!!a||o,c=g.has(t),l=A(e,i);return(0,Y.jsxs)(`div`,{"data-session-id":t,"data-session-selectable":s?`false`:`true`,className:X(`group relative rounded-xl border transition-colors`,i?`border-sky-400/40 bg-sky-500/10 text-foreground ring-1 ring-sky-400/40`:`border-border/50 bg-card/35 text-muted-foreground hover:border-border/80 hover:bg-card/60 hover:text-foreground`),onPointerDownCapture:e=>{!h||s||e.pointerType&&e.pointerType!==`mouse`||typeof e.button==`number`&&e.button!==0||(e.preventDefault(),R(),I.current=!0,F.current={pointerId:e.pointerId,mode:c?`deselect`:`select`,visitedSessionIds:new Set},V(t))},onPointerMove:e=>{let n=F.current;!n||n.pointerId!==e.pointerId||V(t)},children:[(0,Y.jsx)(`button`,{type:`button`,"aria-label":j(e,l),className:`flex w-full min-w-0 cursor-pointer items-start gap-2 rounded-xl px-3 py-2 pr-11 text-left transition-colors focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:outline-none`,onClick:()=>{if(h){if(I.current){I.current=!1;return}if(s)return;S(t);return}T(e)},children:M({session:e,isActive:i,activityState:l,isSelectionMode:h})}),h?(0,Y.jsx)(`div`,{className:`absolute top-2 right-2 flex h-7 w-7 items-center justify-center`,title:a??N.selectSessionTitle(O(e)),children:(0,Y.jsx)(`input`,{type:`checkbox`,"aria-label":N.selectSessionAriaLabel(O(e)),checked:c,disabled:s,onClick:e=>{e.stopPropagation()},onChange:()=>{I.current||S(t)},className:`h-4 w-4 rounded border-border bg-background text-primary`})}):(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":N.deleteSessionAriaLabel,className:X(`absolute top-2 right-2 h-7 w-7 shrink-0 rounded-md border border-transparent text-muted-foreground transition-all duration-150 hover:border-border/70 hover:bg-card/80 hover:text-foreground focus-visible:border-border/70 focus-visible:bg-card/80 focus-visible:text-foreground`,`opacity-100 sm:opacity-0 sm:pointer-events-none sm:group-hover:pointer-events-auto sm:group-focus-within:pointer-events-auto sm:group-hover:opacity-100 sm:group-focus-within:opacity-100`,s&&`sm:disabled:opacity-0 sm:group-hover:disabled:opacity-50 sm:group-focus-within:disabled:opacity-50`,(i||o)&&`sm:pointer-events-auto sm:opacity-100 sm:disabled:opacity-50`,a&&`cursor-not-allowed text-muted-foreground/50 hover:border-transparent hover:bg-transparent hover:text-muted-foreground/50 focus-visible:border-transparent focus-visible:bg-transparent focus-visible:text-muted-foreground/50`),title:a??N.deleteSessionTitle(O(e)),disabled:s,onClick:e=>{e.stopPropagation(),E(t)},children:(0,Y.jsx)(vb,{className:`h-4 w-4`})})]},t)})]},e.key))})})]}):(0,Y.jsxs)(`div`,{"data-testid":c,className:`flex h-full w-full flex-col items-center gap-2 bg-background/80 py-3`,children:[m?(0,Y.jsx)(Sv,{content:m,side:`right`,children:(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,"aria-label":N.newSession,className:`h-9 w-9`,onClick:l,disabled:u||d,children:(0,Y.jsx)(Ey,{className:`h-4 w-4`})})}):(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,"aria-label":N.newSession,className:`h-9 w-9`,onClick:l,disabled:u||d,children:(0,Y.jsx)(Ey,{className:`h-4 w-4`})}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":N.openAriaLabel,"aria-expanded":a,className:`h-9 w-9`,onClick:o,children:(0,Y.jsx)(_re,{className:`h-4 w-4`})})]})})},_5=({isInterrupting:e,onStop:t,interruptLabel:n,interruptingLabel:r})=>(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:`gap-2`,disabled:e,onClick:t,children:[e?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Rv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:e?r:n})]}),v5=4,vre=5e3,y5=(e,t)=>sb.t(`common:chatChangesPanel.${e}`,t),b5=e=>e.replace(/^[ab]\//,``),x5=e=>{let t=`oldPath`in e&&typeof e.oldPath==`string`?b5(e.oldPath):``,n=`newPath`in e&&typeof e.newPath==`string`?b5(e.newPath):``;return[...new Set([n,t].filter(e=>e&&e!==`/dev/null`))]},S5=e=>{let[t,n]=x5(e);return!t&&!n?y5(`unknownFile`):t&&n&&t!==n?`${n} -> ${t}`:t??n??y5(`unknownFile`)},C5=e=>{let t=Z4((()=>{let[t,n]=x5(e);return t??n??null})());if(!t)return null;try{return qO(e.hunks,{highlight:!0,refractor:Z3.default,language:t,enhancers:[GO(e.hunks)]})}catch{return null}},w5=(e,t)=>e instanceof Error?e.message:t,yre=(e,t)=>{if(!t)return e;let n=S5(t);return[t,...e.filter(e=>S5(e)!==n)]},bre=e=>[...e].sort((e,t)=>{if(e.filePath!==t.filePath)return e.filePath.localeCompare(t.filePath);let n=e.newLineNumber??e.oldLineNumber??2**53-1,r=t.newLineNumber??t.oldLineNumber??2**53-1;return n===r?e.changeKey.localeCompare(t.changeKey):n-r}),xre=({diffResponse:e,gitStatus:t})=>{let n=new Map;for(let t of e?.files??[])n.set(t.path,t);return t?t.files.map(e=>{let t=n.get(e.path)??(e.original_path?n.get(e.original_path):void 0);return{path:e.path,originalPath:e.original_path,status:e.status,staged:e.staged,unstaged:e.unstaged,conflicted:e.conflicted,additions:t?.additions??0,deletions:t?.deletions??0}}):(e?.files??[]).map(e=>({path:e.path,originalPath:null,status:null,staged:!1,unstaged:!1,conflicted:!1,additions:e.additions,deletions:e.deletions}))},T5=e=>{let t=e.split(/[\\/]/);return t[t.length-1]||e},Sre={modified:`border-amber-500/40 bg-amber-500/10 text-amber-200`,added:`border-emerald-500/40 bg-emerald-500/10 text-emerald-200`,deleted:`border-rose-500/40 bg-rose-500/10 text-rose-200`,renamed:`border-sky-500/40 bg-sky-500/10 text-sky-200`,untracked:`border-violet-500/40 bg-violet-500/10 text-violet-200`,typechanged:`border-slate-500/40 bg-slate-500/10 text-slate-200`},Cre=e=>y5(`fileStatus.${e}`),wre=({selectedDiffPath:e,sidebarFiles:t,diffStats:n,triggerMode:r=`full`,onSelectDiffPath:i})=>{let[a,o]=(0,p.useState)(!1),s=t.find(t=>t.path===e)??null,c=r===`compact`?e===`all`?y5(`picker.diff`):s?T5(s.path):y5(`picker.file`):e===`all`?y5(`picker.allChanges`):s?T5(s.path):e;return(0,Y.jsxs)(ev,{open:a,onOpenChange:o,children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:X(`max-w-full gap-2`,r===`full`?`min-w-0 max-w-[18rem]`:`min-w-0 px-2.5`),"aria-label":y5(`picker.openChangedFilesAriaLabel`),title:e===`all`?void 0:s?.path??e,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:c}),r===`full`&&(0,Y.jsx)(lb,{variant:`outline`,className:`shrink-0 text-[10px] uppercase tracking-wide`,children:y5(`picker.fileCount`,{count:t.length})}),(0,Y.jsx)(Ev,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})}),(0,Y.jsxs)(nv,{align:`start`,className:`z-[90] w-[28rem] max-w-[calc(100vw-2rem)] p-0`,children:[(0,Y.jsx)(`div`,{className:`border-b border-border/80 px-4 py-3`,children:(0,Y.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:y5(`picker.title`)})}),(0,Y.jsx)(`div`,{className:`max-h-[min(28rem,calc(100vh-10rem))] overflow-y-auto p-3`,children:(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{i(`all`),o(!1)},className:X(`flex w-full cursor-pointer items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors`,F4(e===`all`),`justify-between`),children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:y5(`picker.allChanges`)}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground transition-colors group-hover:text-foreground/70`,children:y5(`picker.allChangesDescription`)})]}),n&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 text-[11px]`,children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground transition-colors group-hover:text-foreground/70`,children:y5(`picker.fileCount`,{count:n.files_changed})}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,n.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,n.deletions]})]})]}),t.map(t=>(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{i(t.path),o(!1)},className:X(`flex w-full cursor-pointer items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors`,F4(e===t.path)),children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:T5(t.path)}),(0,Y.jsx)(`div`,{className:`mt-0.5 break-all font-mono text-[11px] text-muted-foreground transition-colors group-hover:text-foreground/70`,children:t.path})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 text-[11px]`,children:[(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,t.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,t.deletions]})]})]}),(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px]`,children:[t.status&&(0,Y.jsx)(lb,{variant:`outline`,className:Sre[t.status],children:Cre(t.status)}),t.staged&&(0,Y.jsx)(lb,{variant:`outline`,children:y5(`fileStatus.staged`)}),t.unstaged&&(0,Y.jsx)(lb,{variant:`outline`,children:y5(`fileStatus.unstaged`)}),t.conflicted&&(0,Y.jsx)(lb,{variant:`destructive`,children:y5(`fileStatus.conflicted`)}),t.originalPath&&(0,Y.jsx)(`span`,{className:`break-all font-mono text-[11px] text-muted-foreground transition-colors group-hover:text-foreground/70`,children:t.status===`renamed`?y5(`fileStatus.renamedFrom`,{path:t.originalPath}):t.originalPath})]})]})},`${t.path}:${t.originalPath??``}`))]})})]})]})},E5=(0,p.memo)(({projectId:e,chatSessionId:t=null,canSubmitReviewPrompt:n,reviewSubmitDisabledReason:r,onSubmitReviewPrompt:i,state:a,onStateChange:o,isResizing:s=!1,onClose:c,desktopWidth:l,panelElementRef:u})=>{let[d,f]=(0,p.useState)(null),[m,h]=(0,p.useState)(null),[g,_]=(0,p.useState)(null),[v,y]=(0,p.useState)(!1),[,b]=(0,p.useState)(!1),[x,S]=(0,p.useState)(new Map),[C,w]=(0,p.useState)(!1),T=(0,p.useRef)(0),E=(0,p.useRef)(0),D=(0,p.useRef)(null),O=(0,p.useRef)(null),k=a.selectedDiffPath,A=a.activeReviewTarget,j=a.editingReviewCommentKey,M=A?.commentKey??j??`chat`,N=a.reviewDraftInput,P=(0,p.useMemo)(()=>new Map(a.reviewComments.map(e=>[sk(e.filePath,e.changeKey),e])),[a.reviewComments]),F=(0,p.useCallback)(async()=>{if(!e)throw Error(`Project id is required`);return t?await Wk(e,t):await yn(e)},[t,e]),I=(0,p.useCallback)(async()=>{if(!e)throw Error(`Project id is required`);return t?await Gk(e,t):await xn(e)},[t,e]);(0,p.useEffect)(()=>{D.current=d},[d]),(0,p.useEffect)(()=>{O.current=m},[m]);let L=(0,p.useCallback)(async()=>{if(!e){E.current+=1,f(null),h(null),_(null),y(!1),b(!1);return}let t=T.current+1,n=E.current+1;T.current=t,E.current=n,y(!0),b(!0);let[r,i]=await Promise.allSettled([F(),I()]);T.current===t&&(r.status===`fulfilled`?(D.current=r.value,f(r.value),_(null)):_(w5(r.reason,y5(`errors.loadDiff`))),i.status===`fulfilled`&&(O.current=i.value,h(i.value)),E.current===n&&y(!1),b(!1))},[F,I,e]),R=(0,p.useCallback)(async(t={})=>{if(!e)return;let{broadcastOnSignatureChange:n=!1}=t,r=T.current+1;T.current=r,b(!0);try{let t=await I();if(T.current!==r)return;let i=O.current?.workspace_signature??null,a=t.workspace_signature??null,o=!D.current||i!==a;if(O.current=t,h(t),!o){E.current+=1,y(!1);return}let s=!D.current,c=E.current+1;E.current=c,s&&y(!0);try{let t=await F();if(T.current!==r)return;D.current=t,f(t),_(null),n&&i!==a&&$4(e)}catch(e){if(T.current!==r)return;D.current||_(w5(e,y5(`errors.loadDiff`)))}finally{s&&E.current===c&&y(!1)}}catch{D.current||(E.current+=1,y(!1));return}finally{T.current===r&&b(!1)}},[F,I,e]);(0,p.useEffect)(()=>{L()},[L]),(0,p.useEffect)(()=>{if(e)return e3(t=>{t===e&&R()})},[e,R]),(0,p.useEffect)(()=>{if(!e)return;let t=n3(()=>{document.visibilityState===`visible`&&R({broadcastOnSignatureChange:!0})});return()=>{t()}},[e,R]),(0,p.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>{document.visibilityState===`visible`&&R({broadcastOnSignatureChange:!0})},vre);return()=>{window.clearInterval(t)}},[e,R]);let z=(0,p.useMemo)(()=>{let e=typeof d?.diff==`string`?d.diff:``;return e.trim()?Pw(e,{nearbySequences:`zip`}).map(e=>({...e,pathCandidates:x5(e)})):[]},[d]),B=(0,p.useMemo)(()=>{let e=new Map;for(let t of z)for(let n of t.pathCandidates)e.has(n)||e.set(n,t);return e},[z]),V=(0,p.useMemo)(()=>xre({diffResponse:d,gitStatus:m}),[d,m]);(0,p.useEffect)(()=>{if(k!==`all`&&!(!d&&!m)){if(V.length===0){o(e=>({...e,selectedDiffPath:`all`}));return}V.some(e=>e.path===k)||o(e=>({...e,selectedDiffPath:`all`}))}},[d,m,o,k,V]);let H=k===`all`?null:B.get(k)??null,ee=(0,p.useMemo)(()=>yre(z,H),[z,H]),U=(0,p.useMemo)(()=>k===`all`?z:H?[H]:[],[z,k,H]);(0,p.useEffect)(()=>{S(new Map)},[z]),(0,p.useEffect)(()=>{if(ee.length===0)return;let e=!1,t=null,n=0,r=()=>{if(e)return;let i=ee.slice(n,n+v5);i.length!==0&&(S(e=>{let t=new Map(e);for(let e of i){let n=S5(e);t.has(n)||t.set(n,C5(e))}return t}),n+=v5,n<ee.length&&(t=window.setTimeout(r,0)))};return t=window.setTimeout(r,0),()=>{e=!0,t!==null&&window.clearTimeout(t)}},[ee]);let te=(0,p.useMemo)(()=>{let e=new Map;for(let t of ee.slice(0,v5))e.set(S5(t),C5(t));return e},[ee]),ne=(0,p.useMemo)(()=>U.map(e=>({...e,tokens:x.get(S5(e))??te.get(S5(e))??null})),[te,x,U]),re=(0,p.useMemo)(()=>z.map(e=>({...e,tokens:null})),[z]),ie=(0,p.useMemo)(()=>bre(a.reviewComments),[a.reviewComments]),ae=ie.length,oe=n&&!C&&ae>0,W=(0,p.useCallback)(()=>{o(e=>({...e,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``,reviewComments:[]}))},[o]),se=(0,p.useCallback)(({filePath:e,changeKey:t,commentKey:r})=>{let i=P.get(r);if(i){o(e=>({...e,selectedDiffPath:i.filePath,activeReviewTarget:null,editingReviewCommentKey:r,reviewDraftInput:i.comment}));return}n&&o(n=>({...n,activeReviewTarget:{filePath:e,changeKey:t,commentKey:r},editingReviewCommentKey:null,reviewDraftInput:``}))},[n,o,P]),ce=(0,p.useCallback)(()=>{o(e=>({...e,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``}))},[o]),le=(0,p.useCallback)(e=>{let t=P.has(e.commentKey);if(!n&&!t)return;let r=N.trim();if(!r)return;let i=e.change.type===`insert`?null:`oldLineNumber`in e.change?e.change.oldLineNumber:e.change.lineNumber,a=e.change.type===`delete`?null:`newLineNumber`in e.change?e.change.newLineNumber:e.change.lineNumber;o(t=>{let n=new Map(t.reviewComments.map(e=>[sk(e.filePath,e.changeKey),e]));return n.set(e.commentKey,{scope:`uncommitted`,filePath:e.filePath,changeKey:e.changeKey,changeType:e.change.type,oldLineNumber:i,newLineNumber:a,hunkHeader:e.hunk.content,lineContent:e.change.content,diffSnippet:ck(e.hunk,e.change),comment:r}),{...t,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``,reviewComments:[...n.values()]}})},[n,o,P,N]),ue=(0,p.useCallback)(e=>{let t=P.get(e);t&&o(n=>({...n,selectedDiffPath:t.filePath,activeReviewTarget:null,editingReviewCommentKey:e,reviewDraftInput:t.comment}))},[o,P]),de=(0,p.useCallback)(e=>{o(t=>({...t,activeReviewTarget:t.activeReviewTarget?.commentKey===e?null:t.activeReviewTarget,editingReviewCommentKey:t.editingReviewCommentKey===e?null:t.editingReviewCommentKey,reviewDraftInput:t.activeReviewTarget?.commentKey===e||t.editingReviewCommentKey===e?``:t.reviewDraftInput,reviewComments:t.reviewComments.filter(t=>sk(t.filePath,t.changeKey)!==e)}))},[o]),fe=(0,p.useCallback)(async()=>{if(!oe)return;w(!0);let e=pk({drafts:ie,findings:[],githubComments:[],uncommittedFiles:z});try{await i(e),W(),Q.success(y5(`toasts.sendChangesSuccess`),{id:`chat-diff-review-submit-success`})}catch(e){Q.error(w5(e,y5(`errors.sendChanges`)),{id:`chat-diff-review-submit-error`})}finally{w(!1)}},[oe,W,i,z,ie]),pe=(0,p.useCallback)(e=>(0,Y.jsx)(V2,{reviewComments:ie,pendingFixCount:ae,triggerMode:e===`wide`?`full`:`compact`,canSendReview:oe,isSubmittingReview:C,reviewSubmitDisabledReason:r??void 0,onClearPendingFixes:W,onSubmitReview:()=>{fe()}}),[oe,W,fe,C,ae,ie,r]),me=c?(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":y5(`closeAriaLabel`),className:`text-muted-foreground hover:text-foreground`,onClick:c,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})}):null,he=l?{"--chat-changes-panel-width":`${l}px`}:void 0;return(0,Y.jsx)(`aside`,{"data-testid":`chat-changes-panel`,"data-desktop-width":l?String(l):void 0,ref:u,style:he,className:X(`flex h-[26rem] min-h-0 w-full shrink-0 flex-col overflow-hidden border-t border-border/70 bg-background/20 xl:h-full xl:border-l xl:border-t-0`,l?`xl:w-[var(--chat-changes-panel-width)]`:`xl:w-[32rem]`),children:(0,Y.jsx)(P4,{selectedDiffPath:k,sidebarFiles:V,diffResponse:d,isDiffLoading:v,diffError:g,allDiffFiles:re,renderedFiles:ne,viewType:`unified`,onViewTypeChange:()=>{},onRetry:()=>{L()},activeReviewTarget:A,editingReviewCommentKey:j,reviewDraftInstanceKey:M,reviewDraftInput:N,reviewComments:ie,reviewFindings:[],githubComments:[],selectedReviewFindingIds:[],selectedGitHubCommentIds:[],canSelectReviewTarget:n,canEditActiveReviewDraft:n,reviewFindingsError:null,gitHubCommentsError:null,hasStaleReviewFindings:!1,onSelectReviewTarget:se,onToggleReviewFindingSelection:()=>{},onToggleGitHubCommentSelection:()=>{},onReviewDraftInputChange:e=>{o(t=>({...t,reviewDraftInput:e}))},onCancelReviewDraft:ce,onEditReviewDraft:ue,onRemoveReviewDraft:de,onSaveReviewDraft:le,diffThemeClassName:B4,resolveFilePath:S5,normalizeDiffPath:b5,emptyStateTitle:y5(`emptyStateTitle`),emptyStateDescription:y5(`emptyStateDescription`),filePickerControl:e=>(0,Y.jsx)(wre,{selectedDiffPath:k,sidebarFiles:V,diffStats:d?.stats??null,triggerMode:e===`wide`?`full`:`compact`,onSelectDiffPath:e=>{o(t=>({...t,selectedDiffPath:e}))}}),reviewSummaryControl:pe,extraHeaderControl:me,surfaceVariant:`flat`,showViewTypeToggle:!1,gutterVariant:`compact`,isResizing:s,resizePlaceholderLineThreshold:200})})});E5.displayName=`ChatChangesPanel`;var D5=({projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r=null,previousThinkingLog:i=null,previousThinkingMessageId:a=null,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l=!1,canShowComposer:u,cardClassName:d,isExternallyResizing:f=!1,pendingAgentRevealKey:p=null,pendingAgentRevealDelayMs:m=0,composerFocusNonce:h=0,blurComposerOnSendStart:g=!1,hidePendingAgentTitle:_=!1,forceScrollToBottomKey:v,header:y,composerControls:b,composerInlineControls:x,composerTheme:S=`default`,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E=[],followUpPlaceholder:D,emptyStateText:O=null,renderMessageFooter:k,isSendingFollowUp:A,isUploadingAttachments:j=!1,canAttachImages:M=!1,followUpDisabledReason:N,onFollowUpPromptChange:P,onFollowUpKeyDown:F,onFollowUpPaste:I,onUploadAttachments:L,onRemoveAttachment:R,onFollowUpSubmit:z})=>(0,Y.jsx)(HW,{projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r,previousThinkingLog:i,previousThinkingMessageId:a,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l,autoScrollBehavior:`sticky`,surfaceVariant:`chat`,canShowComposer:u,cardClassName:d,header:y,composerControls:b,composerInlineControls:x,composerTheme:S,composerSize:`compact-on-laptop`,showThinkingPlacement:`header`,pinComposerToBottom:!0,isExternallyResizing:f,pendingAgentRevealKey:p,pendingAgentRevealDelayMs:m,composerFocusNonce:h,blurComposerOnSendStart:g,forceScrollToBottomKey:v,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E,followUpPlaceholder:D,emptyStateText:O,autoFocusComposer:!0,renderMessageFooter:k,isSendingFollowUp:A,isUploadingAttachments:j,canAttachImages:M,followUpDisabledReason:N,hidePendingAgentTitle:_,onFollowUpPromptChange:P,onFollowUpKeyDown:F,onFollowUpPaste:I,onUploadAttachments:L,onRemoveAttachment:R,onFollowUpSubmit:z}),Tre={default:`h-5 rounded-md border-amber-500/40 bg-amber-500/10 px-1.5 text-[10px] uppercase tracking-[0.16em] text-amber-200`,muted:`h-5 rounded-md border-amber-500/40 bg-amber-500/10 px-1.5 text-[10px] uppercase tracking-[0.16em] text-amber-100`},O5=({tone:e=`default`,className:t,children:n,...r})=>(0,Y.jsx)(lb,{variant:`outline`,className:X(Tre[e],t),...r,children:n}),Ere=`mt-1 flex min-h-5 flex-wrap items-center gap-2 text-xs text-muted-foreground`,Dre=({label:e})=>(0,Y.jsx)(`div`,{className:`inline-flex items-center rounded-full border border-amber-500/30 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-100`,children:e}),k5=({title:e,tool:t=null,modelLabel:n=null,interrupted:r=!1,interruptedLabel:i,usage:a=null,metadataExtra:o=null,actions:s=null,warnings:c=null})=>(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`h3`,{className:`truncate text-sm font-semibold text-foreground`,children:e}),(0,Y.jsxs)(`div`,{className:Ere,children:[(0,Y.jsx)(gP,{tool:t,className:`text-[11px]`}),n?(0,Y.jsx)(`p`,{children:n}):null,r?(0,Y.jsx)(Dre,{label:i}):null,a?(0,Y.jsx)(bP,{totalTokens:a.totalTokens,contextWindow:a.contextWindow,cost:a.cost,tool:a.tool,model:a.model,availableModels:a.availableModels}):null,o]})]}),s]}),c]}),A5=(e,t)=>sb.t(`projects:memory.${e}`,t),Ore=e=>A5(`stageLabels.${e}`),kre=e=>A5(`priorityLabels.${e}`),j5=()=>({kind:`decision`,title:``,scope:``,content:``,rationale:``,implications:``,stages:``,priority:`normal`}),M5=e=>e.kind===`convention`?{kind:`convention`,title:e.title,scope:e.scope??``,content:e.instruction,rationale:e.rationale??``,implications:``,stages:e.stages.join(`
|
|
256
|
+
`).length:0,G4=e=>{let t=e.diff??``;return t?t.length<=V4&&W4(t)<=H4:!0},K4=({scope:e,projectId:t,ticketId:n,projectTargetBundleId:r=null})=>e===`project_root`?t?`project_root:${t}:${r??`repo_root`}`:null:n?`ticket:${t??`none`}:${n}`:null,q4=e=>e?U4.get(e)??null:null,J4=({cacheKey:e,diffResponse:t,gitStatus:n})=>{let r=n.workspace_signature?.trim();if(!(!e||!r)){if(!G4(t)){U4.delete(e);return}U4.set(e,{diffResponse:t,gitStatus:n,workspaceSignature:r})}},Y4=e=>{e&&U4.delete(e)},X4={css:`css`,html:`markup`,htm:`markup`,js:`javascript`,jsx:`jsx`,json:`json`,md:`markdown`,markdown:`markdown`,sh:`bash`,ts:`typescript`,tsx:`tsx`,yaml:`yaml`,yml:`yaml`},Z4=e=>{if(!e)return null;let t=e.split(` -> `),n=t[t.length-1]??e,r=n.split(`/`),i=r[r.length-1]??n,a=``;if(i.includes(`.`)){let e=i.split(`.`);a=e[e.length-1]?.toLowerCase()??``}return X4[a]??null},Q4=new Set,$4=e=>{e&&Q4.forEach(t=>t(e))},e3=e=>(Q4.add(e),()=>{Q4.delete(e)}),t3=300,n3=(e,t={})=>{let n=t.dedupeMs??t3,r=0,i=()=>{if(document.visibilityState!==`visible`)return;let t=Date.now();t-r<n||(r=t,e())};return window.addEventListener(`focus`,i),document.addEventListener(`visibilitychange`,i),()=>{window.removeEventListener(`focus`,i),document.removeEventListener(`visibilitychange`,i)}},r3=i(((e,t)=>{t.exports=r;var n=Object.prototype.hasOwnProperty;function r(){for(var e={},t=0;t<arguments.length;t++){var r=arguments[t];for(var i in r)n.call(r,i)&&(e[i]=r[i])}return e}})),i3=i(((e,t)=>{t.exports=r;var n=r.prototype;n.space=null,n.normal={},n.property={};function r(e,t,n){this.property=e,this.normal=t,n&&(this.space=n)}})),a3=i(((e,t)=>{var n=r3(),r=i3();t.exports=i;function i(e){for(var t=e.length,i=[],a=[],o=-1,s,c;++o<t;)s=e[o],i.push(s.property),a.push(s.normal),c=s.space;return new r(n.apply(null,i),n.apply(null,a),c)}})),o3=i(((e,t)=>{t.exports=n;function n(e){return e.toLowerCase()}})),s3=i(((e,t)=>{t.exports=r;var n=r.prototype;n.space=null,n.attribute=null,n.property=null,n.boolean=!1,n.booleanish=!1,n.overloadedBoolean=!1,n.number=!1,n.commaSeparated=!1,n.spaceSeparated=!1,n.commaOrSpaceSeparated=!1,n.mustUseProperty=!1,n.defined=!1;function r(e,t){this.property=e,this.attribute=t}})),c3=i((e=>{var t=0;e.boolean=n(),e.booleanish=n(),e.overloadedBoolean=n(),e.number=n(),e.spaceSeparated=n(),e.commaSeparated=n(),e.commaOrSpaceSeparated=n();function n(){return 2**++t}})),l3=i(((e,t)=>{var n=s3(),r=c3();t.exports=o,o.prototype=new n,o.prototype.defined=!0;var i=[`boolean`,`booleanish`,`overloadedBoolean`,`number`,`commaSeparated`,`spaceSeparated`,`commaOrSpaceSeparated`],a=i.length;function o(e,t,o,c){var l=-1,u;for(s(this,`space`,c),n.call(this,e,t);++l<a;)u=i[l],s(this,u,(o&r[u])===r[u])}function s(e,t,n){n&&(e[t]=n)}})),u3=i(((e,t)=>{var n=o3(),r=i3(),i=l3();t.exports=a;function a(e){var t=e.space,a=e.mustUseProperty||[],o=e.attributes||{},s=e.properties,c=e.transform,l={},u={},d,f;for(d in s)f=new i(d,c(o,d),s[d],t),a.indexOf(d)!==-1&&(f.mustUseProperty=!0),l[d]=f,u[n(d)]=d,u[n(f.attribute)]=d;return new r(l,u,t)}})),d3=i(((e,t)=>{t.exports=u3()({space:`xlink`,transform:n,properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}});function n(e,t){return`xlink:`+t.slice(5).toLowerCase()}})),f3=i(((e,t)=>{t.exports=u3()({space:`xml`,transform:n,properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function n(e,t){return`xml:`+t.slice(3).toLowerCase()}})),p3=i(((e,t)=>{t.exports=n;function n(e,t){return t in e?e[t]:t}})),m3=i(((e,t)=>{var n=p3();t.exports=r;function r(e,t){return n(e,t.toLowerCase())}})),h3=i(((e,t)=>{t.exports=u3()({space:`xmlns`,attributes:{xmlnsxlink:`xmlns:xlink`},transform:m3(),properties:{xmlns:null,xmlnsXLink:null}})})),g3=i(((e,t)=>{var n=c3(),r=u3(),i=n.booleanish,a=n.number,o=n.spaceSeparated;t.exports=r({transform:s,properties:{ariaActiveDescendant:null,ariaAtomic:i,ariaAutoComplete:null,ariaBusy:i,ariaChecked:i,ariaColCount:a,ariaColIndex:a,ariaColSpan:a,ariaControls:o,ariaCurrent:null,ariaDescribedBy:o,ariaDetails:null,ariaDisabled:i,ariaDropEffect:o,ariaErrorMessage:null,ariaExpanded:i,ariaFlowTo:o,ariaGrabbed:i,ariaHasPopup:null,ariaHidden:i,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:o,ariaLevel:a,ariaLive:null,ariaModal:i,ariaMultiLine:i,ariaMultiSelectable:i,ariaOrientation:null,ariaOwns:o,ariaPlaceholder:null,ariaPosInSet:a,ariaPressed:i,ariaReadOnly:i,ariaRelevant:null,ariaRequired:i,ariaRoleDescription:o,ariaRowCount:a,ariaRowIndex:a,ariaRowSpan:a,ariaSelected:i,ariaSetSize:a,ariaSort:null,ariaValueMax:a,ariaValueMin:a,ariaValueNow:a,ariaValueText:null,role:null}});function s(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}})),_3=i(((e,t)=>{var n=c3(),r=u3(),i=m3(),a=n.boolean,o=n.overloadedBoolean,s=n.booleanish,c=n.number,l=n.spaceSeparated,u=n.commaSeparated;t.exports=r({space:`html`,attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},transform:i,mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:u,acceptCharset:l,accessKey:l,action:null,allow:null,allowFullScreen:a,allowPaymentRequest:a,allowUserMedia:a,alt:null,as:null,async:a,autoCapitalize:null,autoComplete:l,autoFocus:a,autoPlay:a,capture:a,charSet:null,checked:a,cite:null,className:l,cols:c,colSpan:null,content:null,contentEditable:s,controls:a,controlsList:l,coords:c|u,crossOrigin:null,data:null,dateTime:null,decoding:null,default:a,defer:a,dir:null,dirName:null,disabled:a,download:o,draggable:s,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:a,formTarget:null,headers:l,height:c,hidden:a,high:c,href:null,hrefLang:null,htmlFor:l,httpEquiv:l,id:null,imageSizes:null,imageSrcSet:u,inputMode:null,integrity:null,is:null,isMap:a,itemId:null,itemProp:l,itemRef:l,itemScope:a,itemType:l,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:a,low:c,manifest:null,max:null,maxLength:c,media:null,method:null,min:null,minLength:c,multiple:a,muted:a,name:null,nonce:null,noModule:a,noValidate:a,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextMenu:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:a,optimum:c,pattern:null,ping:l,placeholder:null,playsInline:a,poster:null,preload:null,readOnly:a,referrerPolicy:null,rel:l,required:a,reversed:a,rows:c,rowSpan:c,sandbox:l,scope:null,scoped:a,seamless:a,selected:a,shape:null,size:c,sizes:null,slot:null,span:c,spellCheck:s,src:null,srcDoc:null,srcLang:null,srcSet:u,start:c,step:null,style:null,tabIndex:c,target:null,title:null,translate:null,type:null,typeMustMatch:a,useMap:null,value:s,width:c,wrap:null,align:null,aLink:null,archive:l,axis:null,background:null,bgColor:null,border:c,borderColor:null,bottomMargin:c,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:a,declare:a,event:null,face:null,frame:null,frameBorder:null,hSpace:c,leftMargin:c,link:null,longDesc:null,lowSrc:null,marginHeight:c,marginWidth:c,noResize:a,noHref:a,noShade:a,noWrap:a,object:null,profile:null,prompt:null,rev:null,rightMargin:c,rules:null,scheme:null,scrolling:s,standby:null,summary:null,text:null,topMargin:c,valueType:null,version:null,vAlign:null,vLink:null,vSpace:c,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:a,disableRemotePlayback:a,prefix:null,property:null,results:c,security:null,unselectable:null}})})),v3=i(((e,t)=>{var n=a3(),r=d3();t.exports=n([f3(),r,h3(),g3(),_3()])})),y3=i(((e,t)=>{var n=o3(),r=l3(),i=s3(),a=`data`;t.exports=l;var o=/^data[-\w.:]+$/i,s=/-[a-z]/g,c=/[A-Z]/g;function l(e,t){var s=n(t),c=t,l=i;return s in e.normal?e.property[e.normal[s]]:(s.length>4&&s.slice(0,4)===a&&o.test(t)&&(t.charAt(4)===`-`?c=u(t):t=d(t),l=r),new l(c,t))}function u(e){var t=e.slice(5).replace(s,p);return a+t.charAt(0).toUpperCase()+t.slice(1)}function d(e){var t=e.slice(4);return s.test(t)?e:(t=t.replace(c,f),t.charAt(0)!==`-`&&(t=`-`+t),a+t)}function f(e){return`-`+e.toLowerCase()}function p(e){return e.charAt(1).toUpperCase()}})),b3=i(((e,t)=>{t.exports=r;var n=/[#.]/g;function r(e,t){for(var r=e||``,i=t||`div`,a={},o=0,s,c,l;o<r.length;)n.lastIndex=o,l=n.exec(r),s=r.slice(o,l?l.index:r.length),s&&(c?c===`#`?a.id=s:a.className?a.className.push(s):a.className=[s]:i=s,o+=s.length),l&&(c=l[0],o++);return{type:`element`,tagName:i,properties:a,children:[]}}})),x3=i((e=>{e.parse=i,e.stringify=a;var t=``,n=` `,r=/[ \t\n\r\f]+/g;function i(e){var n=String(e||t).trim();return n===t?[]:n.split(r)}function a(e){return e.join(n).trim()}})),S3=i((e=>{e.parse=i,e.stringify=a;var t=`,`,n=` `,r=``;function i(e){for(var n=[],i=String(e||r),a=i.indexOf(t),o=0,s=!1,c;!s;)a===-1&&(a=i.length,s=!0),c=i.slice(o,a).trim(),(c||!s)&&n.push(c),o=a+1,a=i.indexOf(t,o);return n}function a(e,i){var a=i||{},o=a.padLeft===!1?r:n,s=a.padRight?n:r;return e[e.length-1]===r&&(e=e.concat(r)),e.join(s+t+o).trim()}})),C3=i(((e,t)=>{var n=y3(),r=o3(),i=b3(),a=x3().parse,o=S3().parse;t.exports=c;var s={}.hasOwnProperty;function c(e,t,r){var c=r?h(r):null;return u;function u(e,n){var r=i(e,t),a=Array.prototype.slice.call(arguments,2),o=r.tagName.toLowerCase(),u;if(r.tagName=c&&s.call(c,o)?c[o]:o,n&&l(n,r)&&(a.unshift(n),n=null),n)for(u in n)p(r.properties,u,n[u]);return d(r.children,a),r.tagName===`template`&&(r.content={type:`root`,children:r.children},r.children=[]),r}function p(t,r,i){var s,c,l;i==null||i!==i||(s=n(e,r),c=s.property,l=i,typeof l==`string`&&(s.spaceSeparated?l=a(l):s.commaSeparated?l=o(l):s.commaOrSpaceSeparated&&(l=a(o(l).join(` `)))),c===`style`&&typeof i!=`string`&&(l=m(l)),c===`className`&&t.className&&(l=t.className.concat(l)),t[c]=f(s,c,l))}}function l(e,t){return typeof e==`string`||`length`in e||u(t.tagName,e)}function u(e,t){var n=t.type;return e===`input`||!n||typeof n!=`string`?!1:typeof t.children==`object`&&`length`in t.children?!0:(n=n.toLowerCase(),e===`button`?n!==`menu`&&n!==`submit`&&n!==`reset`&&n!==`button`:`value`in t)}function d(e,t){var n,r;if(typeof t==`string`||typeof t==`number`){e.push({type:`text`,value:String(t)});return}if(typeof t==`object`&&`length`in t){for(n=-1,r=t.length;++n<r;)d(e,t[n]);return}if(typeof t!=`object`||!(`type`in t))throw Error("Expected node, nodes, or string, got `"+t+"`");e.push(t)}function f(e,t,n){var r,i,a;if(typeof n!=`object`||!(`length`in n))return p(e,t,n);for(i=n.length,r=-1,a=[];++r<i;)a[r]=p(e,t,n[r]);return a}function p(e,t,n){var i=n;return e.number||e.positiveNumber?!isNaN(i)&&i!==``&&(i=Number(i)):(e.boolean||e.overloadedBoolean)&&typeof i==`string`&&(i===``||r(n)===r(t))&&(i=!0),i}function m(e){var t=[],n;for(n in e)t.push([n,e[n]].join(`: `));return t.join(`; `)}function h(e){for(var t=e.length,n=-1,r={},i;++n<t;)i=e[n],r[i.toLowerCase()]=i;return r}})),w3=i(((e,t)=>{var n=v3(),r=C3()(n,`div`);r.displayName=`html`,t.exports=r})),T3=i(((e,t)=>{t.exports=w3()})),E3=r({AElig:()=>`Æ`,AMP:()=>`&`,Aacute:()=>`Á`,Acirc:()=>`Â`,Agrave:()=>`À`,Aring:()=>`Å`,Atilde:()=>`Ã`,Auml:()=>`Ä`,COPY:()=>`©`,Ccedil:()=>`Ç`,ETH:()=>`Ð`,Eacute:()=>`É`,Ecirc:()=>`Ê`,Egrave:()=>`È`,Euml:()=>`Ë`,GT:()=>`>`,Iacute:()=>`Í`,Icirc:()=>`Î`,Igrave:()=>`Ì`,Iuml:()=>`Ï`,LT:()=>`<`,Ntilde:()=>`Ñ`,Oacute:()=>`Ó`,Ocirc:()=>`Ô`,Ograve:()=>`Ò`,Oslash:()=>`Ø`,Otilde:()=>`Õ`,Ouml:()=>`Ö`,QUOT:()=>`"`,REG:()=>`®`,THORN:()=>`Þ`,Uacute:()=>`Ú`,Ucirc:()=>`Û`,Ugrave:()=>`Ù`,Uuml:()=>`Ü`,Yacute:()=>`Ý`,aacute:()=>`á`,acirc:()=>`â`,acute:()=>`´`,aelig:()=>`æ`,agrave:()=>`à`,amp:()=>`&`,aring:()=>`å`,atilde:()=>`ã`,auml:()=>`ä`,brvbar:()=>`¦`,ccedil:()=>`ç`,cedil:()=>`¸`,cent:()=>`¢`,copy:()=>`©`,curren:()=>`¤`,default:()=>D3,deg:()=>`°`,divide:()=>`÷`,eacute:()=>`é`,ecirc:()=>`ê`,egrave:()=>`è`,eth:()=>`ð`,euml:()=>`ë`,frac12:()=>`½`,frac14:()=>`¼`,frac34:()=>`¾`,gt:()=>`>`,iacute:()=>`í`,icirc:()=>`î`,iexcl:()=>`¡`,igrave:()=>`ì`,iquest:()=>`¿`,iuml:()=>`ï`,laquo:()=>`«`,lt:()=>`<`,macr:()=>`¯`,micro:()=>`µ`,middot:()=>`·`,nbsp:()=>`\xA0`,not:()=>`¬`,ntilde:()=>`ñ`,oacute:()=>`ó`,ocirc:()=>`ô`,ograve:()=>`ò`,ordf:()=>`ª`,ordm:()=>`º`,oslash:()=>`ø`,otilde:()=>`õ`,ouml:()=>`ö`,para:()=>`¶`,plusmn:()=>`±`,pound:()=>`£`,quot:()=>`"`,raquo:()=>`»`,reg:()=>`®`,sect:()=>`§`,shy:()=>``,sup1:()=>`¹`,sup2:()=>`²`,sup3:()=>`³`,szlig:()=>`ß`,thorn:()=>`þ`,times:()=>`×`,uacute:()=>`ú`,ucirc:()=>`û`,ugrave:()=>`ù`,uml:()=>`¨`,uuml:()=>`ü`,yacute:()=>`ý`,yen:()=>`¥`,yuml:()=>`ÿ`}),D3,O3=n((()=>{D3={AElig:`Æ`,AMP:`&`,Aacute:`Á`,Acirc:`Â`,Agrave:`À`,Aring:`Å`,Atilde:`Ã`,Auml:`Ä`,COPY:`©`,Ccedil:`Ç`,ETH:`Ð`,Eacute:`É`,Ecirc:`Ê`,Egrave:`È`,Euml:`Ë`,GT:`>`,Iacute:`Í`,Icirc:`Î`,Igrave:`Ì`,Iuml:`Ï`,LT:`<`,Ntilde:`Ñ`,Oacute:`Ó`,Ocirc:`Ô`,Ograve:`Ò`,Oslash:`Ø`,Otilde:`Õ`,Ouml:`Ö`,QUOT:`"`,REG:`®`,THORN:`Þ`,Uacute:`Ú`,Ucirc:`Û`,Ugrave:`Ù`,Uuml:`Ü`,Yacute:`Ý`,aacute:`á`,acirc:`â`,acute:`´`,aelig:`æ`,agrave:`à`,amp:`&`,aring:`å`,atilde:`ã`,auml:`ä`,brvbar:`¦`,ccedil:`ç`,cedil:`¸`,cent:`¢`,copy:`©`,curren:`¤`,deg:`°`,divide:`÷`,eacute:`é`,ecirc:`ê`,egrave:`è`,eth:`ð`,euml:`ë`,frac12:`½`,frac14:`¼`,frac34:`¾`,gt:`>`,iacute:`í`,icirc:`î`,iexcl:`¡`,igrave:`ì`,iquest:`¿`,iuml:`ï`,laquo:`«`,lt:`<`,macr:`¯`,micro:`µ`,middot:`·`,nbsp:`\xA0`,not:`¬`,ntilde:`ñ`,oacute:`ó`,ocirc:`ô`,ograve:`ò`,ordf:`ª`,ordm:`º`,oslash:`ø`,otilde:`õ`,ouml:`ö`,para:`¶`,plusmn:`±`,pound:`£`,quot:`"`,raquo:`»`,reg:`®`,sect:`§`,shy:``,sup1:`¹`,sup2:`²`,sup3:`³`,szlig:`ß`,thorn:`þ`,times:`×`,uacute:`ú`,ucirc:`û`,ugrave:`ù`,uml:`¨`,uuml:`ü`,yacute:`ý`,yen:`¥`,yuml:`ÿ`}})),k3=r({default:()=>A3}),A3,j3=n((()=>{A3={0:`�`,128:`€`,130:`‚`,131:`ƒ`,132:`„`,133:`…`,134:`†`,135:`‡`,136:`ˆ`,137:`‰`,138:`Š`,139:`‹`,140:`Œ`,142:`Ž`,145:`‘`,146:`’`,147:`“`,148:`”`,149:`•`,150:`–`,151:`—`,152:`˜`,153:`™`,154:`š`,155:`›`,156:`œ`,158:`ž`,159:`Ÿ`}})),M3=i(((e,t)=>{t.exports=n;function n(e){var t=typeof e==`string`?e.charCodeAt(0):e;return t>=48&&t<=57}})),N3=i(((e,t)=>{t.exports=n;function n(e){var t=typeof e==`string`?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}})),P3=i(((e,t)=>{t.exports=n;function n(e){var t=typeof e==`string`?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}})),F3=i(((e,t)=>{var n=P3(),r=M3();t.exports=i;function i(e){return n(e)||r(e)}})),I3=i(((e,t)=>{var n,r=59;t.exports=i;function i(e){var t=`&`+e+`;`,i;return n||=document.createElement(`i`),n.innerHTML=t,i=n.textContent,i.charCodeAt(i.length-1)===r&&e!==`semi`||i===t?!1:i}})),L3=i(((e,n)=>{var r=(O3(),t(E3).default),i=(j3(),t(k3).default),a=M3(),o=N3(),s=F3(),c=I3();n.exports=R;var l={}.hasOwnProperty,u=String.fromCharCode,d=Function.prototype,f={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},p=9,m=10,h=12,g=32,_=38,v=59,y=60,b=61,x=35,S=88,C=120,w=65533,T=`named`,E=`hexadecimal`,D=`decimal`,O={};O[E]=16,O[D]=10;var k={};k[T]=s,k[D]=a,k[E]=o;var A=1,j=2,M=3,N=4,P=5,F=6,I=7,L={};L[A]=`Named character references must be terminated by a semicolon`,L[j]=`Numeric character references must be terminated by a semicolon`,L[M]=`Named character references cannot be empty`,L[N]=`Numeric character references cannot be empty`,L[P]=`Named character references must be known`,L[F]=`Numeric character references cannot be disallowed`,L[I]=`Numeric character references cannot be outside the permissible Unicode range`;function R(e,t){var n={},r,i;for(i in t||={},f)r=t[i],n[i]=r??f[i];return(n.position.indent||n.position.start)&&(n.indent=n.position.indent||[],n.position=n.position.start),z(e,n)}function z(e,t){var n=t.additional,a=t.nonTerminated,o=t.text,f=t.reference,R=t.warning,z=t.textContext,H=t.referenceContext,ee=t.warningContext,U=t.position,te=t.indent||[],ne=e.length,re=0,ie=-1,ae=U.column||1,oe=U.line||1,W=``,se=[],ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,G,be,xe,Se,Ce,we,Te;for(typeof n==`string`&&(n=n.charCodeAt(0)),Se=Ee(),he=R?De:d,re--,ne++;++re<ne;)if(fe===m&&(ae=te[ie]||1),fe=e.charCodeAt(re),fe===_){if(me=e.charCodeAt(re+1),me===p||me===m||me===h||me===g||me===_||me===y||me!==me||n&&me===n){W+=u(fe),ae++;continue}for(G=re+1,ye=G,Te=G,me===x?(Te=++ye,me=e.charCodeAt(Te),me===S||me===C?(be=E,Te=++ye):be=D):be=T,ce=``,ve=``,de=``,xe=k[be],Te--;++Te<ne&&(me=e.charCodeAt(Te),xe(me));)de+=u(me),be===T&&l.call(r,de)&&(ce=de,ve=r[de]);ue=e.charCodeAt(Te)===v,ue&&(Te++,le=be===T?c(de):!1,le&&(ce=de,ve=le)),we=1+Te-G,!ue&&!a||(de?be===T?(ue&&!ve?he(P,1):(ce!==de&&(Te=ye+ce.length,we=1+Te-ye,ue=!1),ue||(ge=ce?A:M,t.attribute?(me=e.charCodeAt(Te),me===b?(he(ge,we),ve=null):s(me)?ve=null:he(ge,we)):he(ge,we))),pe=ve):(ue||he(j,we),pe=parseInt(de,O[be]),B(pe)?(he(I,we),pe=u(w)):pe in i?(he(F,we),pe=i[pe]):(_e=``,V(pe)&&he(F,we),pe>65535&&(pe-=65536,_e+=u(pe>>>10|55296),pe=56320|pe&1023),pe=_e+u(pe))):be!==T&&he(N,we)),pe?(Oe(),Se=Ee(),re=Te-1,ae+=Te-G+1,se.push(pe),Ce=Ee(),Ce.offset++,f&&f.call(H,pe,{start:Se,end:Ce},e.slice(G-1,Te)),Se=Ce):(de=e.slice(G-1,Te),W+=de,ae+=de.length,re=Te-1)}else fe===10&&(oe++,ie++,ae=0),fe===fe?(W+=u(fe),ae++):Oe();return se.join(``);function Ee(){return{line:oe,column:ae,offset:re+(U.offset||0)}}function De(e,t){var n=Ee();n.column+=t,n.offset+=t,R.call(ee,L[e],n,e)}function Oe(){W&&=(se.push(W),o&&o.call(z,W,{start:Se,end:Ee()}),``)}}function B(e){return e>=55296&&e<=57343||e>1114111}function V(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)==65535||(e&65535)==65534}})),R3=i(((e,t)=>{var n=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,`&`).replace(/</g,`<`).replace(/\u00a0/g,` `)},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,`__id`,{value:++n}),e.__id},clone:function e(t,n){n||={};var r,a;switch(i.util.type(t)){case`Object`:if(a=i.util.objId(t),n[a])return n[a];for(var o in r={},n[a]=r,t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case`Array`:return a=i.util.objId(t),n[a]?n[a]:(r=[],n[a]=r,t.forEach(function(t,i){r[i]=e(t,n)}),r);default:return t}},getLanguage:function(e){for(;e;){var n=t.exec(e.className);if(n)return n[1].toLowerCase();e=e.parentElement}return`none`},setLanguage:function(e,n){e.className=e.className.replace(RegExp(t,`gi`),``),e.classList.add(`language-`+n)},currentScript:function(){if(typeof document>`u`)return null;if(`currentScript`in document)return document.currentScript;try{throw Error()}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName(`script`);for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r=`no-`+t;e;){var i=e.classList;if(i.contains(t))return!0;if(i.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,t){var n=i.util.clone(i.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r||=i.languages;var a=r[e],o={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(o[c]=n[c]);n.hasOwnProperty(s)||(o[s]=a[s])}var l=r[e];return r[e]=o,i.languages.DFS(i.languages,function(t,n){n===l&&t!=e&&(this[t]=o)}),o},DFS:function e(t,n,r,a){a||={};var o=i.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],r||s);var c=t[s],l=i.util.type(c);l===`Object`&&!a[o(c)]?(a[o(c)]=!0,e(c,n,null,a)):l===`Array`&&!a[o(c)]&&(a[o(c)]=!0,e(c,n,s,a))}}},plugins:{},highlightAll:function(e,t){i.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,container:e,selector:`code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code`};i.hooks.run(`before-highlightall`,r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),i.hooks.run(`before-all-elements-highlight`,r);for(var a=0,o;o=r.elements[a++];)i.highlightElement(o,t===!0,r.callback)},highlightElement:function(t,n,r){var a=i.util.getLanguage(t),o=i.languages[a];i.util.setLanguage(t,a);var s=t.parentElement;s&&s.nodeName.toLowerCase()===`pre`&&i.util.setLanguage(s,a);var c={element:t,language:a,grammar:o,code:t.textContent};function l(e){c.highlightedCode=e,i.hooks.run(`before-insert`,c),c.element.innerHTML=c.highlightedCode,i.hooks.run(`after-highlight`,c),i.hooks.run(`complete`,c),r&&r.call(c.element)}if(i.hooks.run(`before-sanity-check`,c),s=c.element.parentElement,s&&s.nodeName.toLowerCase()===`pre`&&!s.hasAttribute(`tabindex`)&&s.setAttribute(`tabindex`,`0`),!c.code){i.hooks.run(`complete`,c),r&&r.call(c.element);return}if(i.hooks.run(`before-highlight`,c),!c.grammar){l(i.util.encode(c.code));return}if(n&&e.Worker){var u=new Worker(i.filename);u.onmessage=function(e){l(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else l(i.highlight(c.code,c.grammar,c.language))},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(i.hooks.run(`before-tokenize`,r),!r.grammar)throw Error(`The language "`+r.language+`" has no grammar.`);return r.tokens=i.tokenize(r.code,r.grammar),i.hooks.run(`after-tokenize`,r),a.stringify(i.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var i=new c;return l(i,i.head,e),s(e,i,t,i.head,0),d(i)},hooks:{all:{},add:function(e,t){var n=i.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=i.hooks.all[e];if(!(!n||!n.length))for(var r=0,a;a=n[r++];)a(t)}},Token:a};e.Prism=i;function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||``).length|0}a.stringify=function e(t,n){if(typeof t==`string`)return t;if(Array.isArray(t)){var r=``;return t.forEach(function(t){r+=e(t,n)}),r}var a={type:t.type,content:e(t.content,n),tag:`span`,classes:[`token`,t.type],attributes:{},language:n},o=t.alias;o&&(Array.isArray(o)?Array.prototype.push.apply(a.classes,o):a.classes.push(o)),i.hooks.run(`wrap`,a);var s=``;for(var c in a.attributes)s+=` `+c+`="`+(a.attributes[c]||``).replace(/"/g,`"`)+`"`;return`<`+a.tag+` class="`+a.classes.join(` `)+`"`+s+`>`+a.content+`</`+a.tag+`>`};function o(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var a=i[1].length;i.index+=a,i[0]=i[0].slice(a)}return i}function s(e,t,n,r,c,d){for(var f in n)if(!(!n.hasOwnProperty(f)||!n[f])){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+`,`+m)return;var h=p[m],g=h.inside,_=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var b=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,b+`g`)}for(var x=h.pattern||h,S=r.next,C=c;S!==t.tail&&!(d&&C>=d.reach);C+=S.value.length,S=S.next){var w=S.value;if(t.length>e.length)return;if(!(w instanceof a)){var T=1,E;if(v){if(E=o(x,C,e,_),!E||E.index>=e.length)break;var D=E.index,O=E.index+E[0].length,k=C;for(k+=S.value.length;D>=k;)S=S.next,k+=S.value.length;if(k-=S.value.length,C=k,S.value instanceof a)continue;for(var A=S;A!==t.tail&&(k<O||typeof A.value==`string`);A=A.next)T++,k+=A.value.length;T--,w=e.slice(C,k),E.index-=C}else if(E=o(x,0,w,_),!E)continue;var D=E.index,j=E[0],M=w.slice(0,D),N=w.slice(D+j.length),P=C+w.length;d&&P>d.reach&&(d.reach=P);var F=S.prev;M&&(F=l(t,F,M),C+=M.length),u(t,F,T);var I=new a(f,g?i.tokenize(j,g):j,y,j);if(S=l(t,F,I),N&&l(t,S,N),T>1){var L={cause:f+`,`+m,reach:P};s(e,t,n,S.prev,C,L),d&&L.reach>d.reach&&(d.reach=L.reach)}}}}}}function c(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function u(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}function d(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}if(!e.document)return e.addEventListener&&(i.disableWorkerMessageHandler||e.addEventListener(`message`,function(t){var n=JSON.parse(t.data),r=n.language,a=n.code,o=n.immediateClose;e.postMessage(i.highlight(a,i.languages[r],r)),o&&e.close()},!1)),i;var f=i.util.currentScript();f&&(i.filename=f.src,f.hasAttribute(`data-manual`)&&(i.manual=!0));function p(){i.manual||i.highlightAll()}if(!i.manual){var m=document.readyState;m===`loading`||m===`interactive`&&f&&f.defer?document.addEventListener(`DOMContentLoaded`,p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return i}(typeof window<`u`?window:typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope?self:{});t!==void 0&&t.exports&&(t.exports=n),typeof global<`u`&&(global.Prism=n)})),z3=i(((e,t)=>{t.exports=n,n.displayName=`markup`,n.aliases=[`html`,`mathml`,`svg`,`xml`,`ssml`,`atom`,`rss`];function n(e){e.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:`named-entity`},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside[`attr-value`].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside[`internal-subset`].inside=e.languages.markup,e.hooks.add(`wrap`,function(e){e.type===`entity`&&(e.attributes.title=e.content.value.replace(/&/,`&`))}),Object.defineProperty(e.languages.markup.tag,`addInlined`,{value:function(t,n){var r={};r[`language-`+n]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i[`language-`+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var a={};a[t]={pattern:RegExp(`(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)`.replace(/__/g,function(){return t}),`i`),lookbehind:!0,greedy:!0,inside:i},e.languages.insertBefore(`markup`,`cdata`,a)}}),Object.defineProperty(e.languages.markup.tag,`addAttribute`,{value:function(t,n){e.languages.markup.tag.inside[`special-attr`].push({pattern:RegExp(`(^|["'\\s])(?:`+t+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,`i`),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,`language-`+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend(`markup`,{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}})),B3=i(((e,t)=>{t.exports=n,n.displayName=`css`,n.aliases=[];function n(e){(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:`selector`},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp(`\\burl\\((?:`+t.source+`|(?:[^\\\\\\r\\n()"']|\\\\[\\s\\S])*)\\)`,`i`),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp(`^`+t.source+`$`),alias:`url`}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+`)*(?=\\s*\\{)`),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined(`style`,`css`),n.tag.addAttribute(`style`,`css`))})(e)}})),V3=i(((e,t)=>{t.exports=n,n.displayName=`clike`,n.aliases=[];function n(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}})),H3=i(((e,t)=>{t.exports=n,n.displayName=`javascript`,n.aliases=[`js`];function n(e){e.languages.javascript=e.languages.extend(`clike`,{"class-name":[e.languages.clike[`class-name`],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(`(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])`),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript[`class-name`][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore(`javascript`,`keyword`,{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:`language-regex`,inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:`function`},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore(`javascript`,`string`,{hashbang:{pattern:/^#!.*/,greedy:!0,alias:`comment`},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:`string`},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:`punctuation`},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:`property`}}),e.languages.insertBefore(`javascript`,`operator`,{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:`property`}}),e.languages.markup&&(e.languages.markup.tag.addInlined(`script`,`javascript`),e.languages.markup.tag.addAttribute(`on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)`,`javascript`)),e.languages.js=e.languages.javascript}})),U3=i(((e,t)=>{var n=typeof globalThis==`object`?globalThis:typeof self==`object`?self:typeof window==`object`?window:typeof global==`object`?global:{},r=C();n.Prism={manual:!0,disableWorkerMessageHandler:!0};var i=T3(),a=L3(),o=R3(),s=z3(),c=B3(),l=V3(),u=H3();r();var d={}.hasOwnProperty;function f(){}f.prototype=o;var p=new f;t.exports=p,p.highlight=g,p.register=m,p.alias=h,p.registered=_,p.listLanguages=v,m(s),m(c),m(l),m(u),p.util.encode=x,p.Token.stringify=y;function m(e){if(typeof e!=`function`||!e.displayName)throw Error("Expected `function` for `grammar`, got `"+e+"`");p.languages[e.displayName]===void 0&&e(p)}function h(e,t){var n=p.languages,r=e,i,a,o,s;for(i in t&&(r={},r[e]=t),r)for(a=r[i],a=typeof a==`string`?[a]:a,o=a.length,s=-1;++s<o;)n[a[s]]=n[i]}function g(e,t){var n=o.highlight,r;if(typeof e!=`string`)throw Error("Expected `string` for `value`, got `"+e+"`");if(p.util.type(t)===`Object`)r=t,t=null;else{if(typeof t!=`string`)throw Error("Expected `string` for `name`, got `"+t+"`");if(d.call(p.languages,t))r=p.languages[t];else throw Error("Unknown language: `"+t+"` is not registered")}return n.call(this,e,r,t)}function _(e){if(typeof e!=`string`)throw Error("Expected `string` for `language`, got `"+e+"`");return d.call(p.languages,e)}function v(){var e=p.languages,t=[],n;for(n in e)d.call(e,n)&&typeof e[n]==`object`&&t.push(n);return t}function y(e,t,n){var r;return typeof e==`string`?{type:`text`,value:e}:p.util.type(e)===`Array`?b(e,t):(r={type:e.type,content:p.Token.stringify(e.content,t,n),tag:`span`,classes:[`token`,e.type],attributes:{},language:t,parent:n},e.alias&&(r.classes=r.classes.concat(e.alias)),p.hooks.run(`wrap`,r),i(r.tag+`.`+r.classes.join(`.`),S(r.attributes),r.content))}function b(e,t){for(var n=[],r=e.length,i=-1,a;++i<r;)a=e[i],a!==``&&a!=null&&n.push(a);for(i=-1,r=n.length;++i<r;)a=n[i],n[i]=p.Token.stringify(a,t,n);return n}function x(e){return e}function S(e){for(var t in e)e[t]=a(e[t]);return e}function C(){var e=`Prism`in n,t=e?n.Prism:void 0;return r;function r(){e?n.Prism=t:delete n.Prism,e=void 0,t=void 0}}})),W3=i(((e,t)=>{t.exports=n,n.displayName=`bash`,n.aliases=[`shell`];function n(e){(function(e){var t=`\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b`,n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:`punctuation`,inside:null},r={bash:n,environment:{pattern:RegExp(`\\$`+t),alias:`constant`},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp(`(\\{)`+t),lookbehind:!0,alias:`constant`}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:`important`},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:`function`},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:`function`}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:`variable`,lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp(`(^|[\\s;|&]|[<>]\\()`+t),lookbehind:!0,alias:`constant`}},alias:`variable`,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp(`\\$?`+t),alias:`constant`},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:`class-name`},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:`important`},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:`important`}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=[`comment`,`function-name`,`for-or-select`,`assign-left`,`string`,`environment`,`function`,`keyword`,`builtin`,`boolean`,`file-descriptor`,`operator`,`punctuation`,`number`],a=r.variable[1].inside,o=0;o<i.length;o++)a[i[o]]=e.languages.bash[i[o]];e.languages.shell=e.languages.bash})(e)}})),G3=i(((e,t)=>{t.exports=n,n.displayName=`json`,n.aliases=[`webmanifest`];function n(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:`keyword`}},e.languages.webmanifest=e.languages.json}})),K3=i(((e,t)=>{t.exports=n,n.displayName=`jsx`,n.aliases=[];function n(e){(function(e){var t=e.util.clone(e.languages.javascript),n=`(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)`,r=`(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})`,i=`(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})`;function a(e,t){return e=e.replace(/<S>/g,function(){return n}).replace(/<BRACES>/g,function(){return r}).replace(/<SPREAD>/g,function(){return i}),RegExp(e,t)}i=a(i).source,e.languages.jsx=e.languages.extend(`markup`,t),e.languages.jsx.tag.pattern=a(`<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:"(?:\\\\[\\s\\S]|[^\\\\"])*"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>`),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside[`attr-value`].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside[`class-name`]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore(`inside`,`attr-name`,{spread:{pattern:a(`<SPREAD>`),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore(`inside`,`special-attr`,{script:{pattern:a(`=<BRACES>`),alias:`language-javascript`,inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:`punctuation`},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?typeof e==`string`?e:typeof e.content==`string`?e.content:e.content.map(o).join(``):``},s=function(t){for(var n=[],r=0;r<t.length;r++){var i=t[r],a=!1;if(typeof i!=`string`&&(i.type===`tag`&&i.content[0]&&i.content[0].type===`tag`?i.content[0].content[0].content===`</`?n.length>0&&n[n.length-1].tagName===o(i.content[0].content[1])&&n.pop():i.content[i.content.length-1].content===`/>`||n.push({tagName:o(i.content[0].content[1]),openedBraces:0}):n.length>0&&i.type===`punctuation`&&i.content===`{`?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&i.type===`punctuation`&&i.content===`}`?n[n.length-1].openedBraces--:a=!0),(a||typeof i==`string`)&&n.length>0&&n[n.length-1].openedBraces===0){var c=o(i);r<t.length-1&&(typeof t[r+1]==`string`||t[r+1].type===`plain-text`)&&(c+=o(t[r+1]),t.splice(r+1,1)),r>0&&(typeof t[r-1]==`string`||t[r-1].type===`plain-text`)&&(c=o(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token(`plain-text`,c,null,c)}i.content&&typeof i.content!=`string`&&s(i.content)}};e.hooks.add(`after-tokenize`,function(e){e.language!==`jsx`&&e.language!==`tsx`||s(e.tokens)})})(e)}})),q3=i(((e,t)=>{t.exports=n,n.displayName=`markdown`,n.aliases=[`md`];function n(e){(function(e){var t=`(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))`;function n(e){return e=e.replace(/<inner>/g,function(){return t}),RegExp(`((?:^|[^\\\\])(?:\\\\{2})*)(?:`+e+`)`)}var r="(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+",i=`\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))`.replace(/__/g,function(){return r}),a=`\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)`;e.languages.markdown=e.languages.extend(`markup`,{}),e.languages.insertBefore(`markdown`,`prolog`,{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:[`yaml`,`language-yaml`],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:`punctuation`},table:{pattern:RegExp(`^`+i+a+`(?:`+i+`)*`,`m`),inside:{"table-data-rows":{pattern:RegExp(`^(`+i+a+`)(?:`+i+`)*$`),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp(`^(`+i+`)`+a+`$`),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp(`^`+i+`$`),inside:{"table-header":{pattern:RegExp(r),alias:`important`,inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:`keyword`},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:`important`,inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:`important`,inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:`punctuation`},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:`punctuation`},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:`url`},bold:{pattern:n(`\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(`\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(`(~~?)(?:(?!~)<inner>)+\\2`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:[`code`,`keyword`]},url:{pattern:n(`!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])`),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),[`url`,`bold`,`italic`,`strike`].forEach(function(t){[`url`,`bold`,`italic`,`strike`,`code-snippet`].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add(`after-tokenize`,function(e){if(e.language!==`markdown`&&e.language!==`md`)return;function t(e){if(!(!e||typeof e==`string`))for(var n=0,r=e.length;n<r;n++){var i=e[n];if(i.type!==`code`){t(i.content);continue}var a=i.content[1],o=i.content[3];if(a&&o&&a.type===`code-language`&&o.type===`code-block`&&typeof a.content==`string`){var s=a.content.replace(/\b#/g,`sharp`).replace(/\b\+\+/g,`pp`);s=(/[a-z][\w-]*/i.exec(s)||[``])[0].toLowerCase();var c=`language-`+s;o.alias?typeof o.alias==`string`?o.alias=[o.alias,c]:o.alias.push(c):o.alias=[c]}}}t(e.tokens)}),e.hooks.add(`wrap`,function(t){if(t.type===`code-block`){for(var n=``,r=0,i=t.classes.length;r<i;r++){var a=t.classes[r],o=/language-(.+)/.exec(a);if(o){n=o[1];break}}var s=e.languages[n];if(s)t.content=e.highlight(l(t.content.value),s,n);else if(n&&n!==`none`&&e.plugins.autoloader){var c=`md-`+new Date().valueOf()+`-`+Math.floor(Math.random()*0x2386f26fc10000);t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})}}});var o=RegExp(e.languages.markup.tag.pattern.source,`gi`),s={amp:`&`,lt:`<`,gt:`>`,quot:`"`},c=String.fromCodePoint||String.fromCharCode;function l(e){var t=e.replace(o,``);return t=t.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(e,t){return t=t.toLowerCase(),t[0]===`#`?c(t[1]===`x`?parseInt(t.slice(2),16):Number(t.slice(1))):s[t]||e}),t}e.languages.md=e.languages.markdown})(e)}})),J3=i(((e,t)=>{t.exports=n,n.displayName=`typescript`,n.aliases=[`ts`];function n(e){(function(e){e.languages.typescript=e.languages.extend(`javascript`,{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript[`literal-property`];var t=e.languages.extend(`typescript`,{});delete t[`class-name`],e.languages.typescript[`class-name`].inside=t,e.languages.insertBefore(`typescript`,`function`,{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:`operator`},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:`class-name`,inside:t}}}}),e.languages.ts=e.languages.typescript})(e)}})),Y3=i(((e,t)=>{var n=K3(),r=J3();t.exports=i,i.displayName=`tsx`,i.aliases=[];function i(e){e.register(n),e.register(r),(function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend(`jsx`,t),delete e.languages.tsx.parameter,delete e.languages.tsx[`literal-property`];var n=e.languages.tsx.tag;n.pattern=RegExp(`(^|[^\\w$]|(?=<\\/))(?:`+n.pattern.source+`)`,n.pattern.flags),n.lookbehind=!0})(e)}})),X3=i(((e,t)=>{t.exports=n,n.displayName=`yaml`,n.aliases=[`yml`];function n(e){(function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r=`(?:`+n.source+`(?:[ ]+`+t.source+`)?|`+t.source+`(?:[ ]+`+n.source+`)?)`,i=`(?:[^\\s\\x00-\\x08\\x0e-\\x1f!"#%&'*,\\-:>?@[\\]\`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*`.replace(/<PLAIN>/g,function(){return`[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]`}),a=`"(?:[^"\\\\\\r\\n]|\\\\.)*"|'(?:[^'\\\\\\r\\n]|\\\\.)*'`;function o(e,t){t=(t||``).replace(/m/g,``)+`m`;var n=`([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))`.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e});return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(`([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)`.replace(/<<prop>>/g,function(){return r})),lookbehind:!0,alias:`string`},comment:/#.*/,key:{pattern:RegExp(`((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)`.replace(/<<prop>>/g,function(){return r}).replace(/<<key>>/g,function(){return`(?:`+i+`|`+a+`)`})),lookbehind:!0,greedy:!0,alias:`atrule`},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:`important`},datetime:{pattern:o(`\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?`),lookbehind:!0,alias:`number`},boolean:{pattern:o(`false|true`,`i`),lookbehind:!0,alias:`important`},null:{pattern:o(`null|~`,`i`),lookbehind:!0,alias:`important`},string:{pattern:o(a),lookbehind:!0,greedy:!0},number:{pattern:o(`[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)`,`i`),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml})(e)}})),Z3=e(U3(),1),Q3=e(W3(),1),$3=e(B3(),1),e6=e(H3(),1),t6=e(G3(),1),n6=e(K3(),1),r6=e(q3(),1),i6=e(z3(),1),a6=e(Y3(),1),o6=e(J3(),1),s6=e(X3(),1),c6=e=>{let t=e.displayName;!t||Z3.default.registered(t)||Z3.default.register(e)};c6(i6.default),c6($3.default),c6(e6.default),c6(o6.default),c6(a6.default),c6(t6.default),c6(n6.default),c6(r6.default),c6(s6.default),c6(Q3.default);var l6=r({TicketChangesModal:()=>B6}),u6=(e,t)=>sb.t(`common:ticketChangesModal.${e}`,t),d6=4,f6=1500,p6=`archon.ticket-changes.review-comments`,m6=[],h6=[],g6=[],_6=e=>new Set(e.map(e=>e.path)),v6=(e,t)=>{if(!e)return null;if(e.blocked_reason)return e.blocked_reason;let n=e.files.find(e=>!t.has(e.path)&&e.staged);return n?`"${n.path}" already has staged changes. Finish that commit in the terminal first.`:null},y6=e=>e.replace(/^[ab]\//,``),b6=e=>{let t=`oldPath`in e&&typeof e.oldPath==`string`?y6(e.oldPath):``,n=`newPath`in e&&typeof e.newPath==`string`?y6(e.newPath):``;return[...new Set([n,t].filter(e=>e&&e!==`/dev/null`))]},x6=e=>{let[t,n]=b6(e);return!t&&!n?`Unknown file`:t&&n&&t!==n?`${n} -> ${t}`:t??n??`Unknown file`},S6=e=>{let[t,n]=b6(e);return t??n??null},C6=e=>e.hunks.reduce((e,t)=>e+t.changes.length,0),w6=e=>{if(C6(e)>f6)return null;let t=Z4(S6(e));if(!t)return null;try{return qO(e.hunks,{highlight:!0,refractor:Z3.default,language:t,enhancers:[GO(e.hunks)]})}catch{return null}},T6=(e,t)=>e instanceof Error?e.message:t,E6=(e,t)=>`${p6}:${e}:${t}`,D6=()=>({activeTarget:null,editingCommentKey:null,draftInput:``,comments:new Map,signature:null}),O6=()=>({uncommitted:D6(),bundle_diff:D6()}),k6=e=>({uncommitted:e(),bundle_diff:e()}),A6=()=>k6(()=>new Map),j6=e=>{let t=5381;for(let n=0;n<e.length;n+=1)t=(t<<5)+t^e.charCodeAt(n);return`${e.length}:${t>>>0}`},M6=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return(t.scope===void 0||t.scope===`uncommitted`||t.scope===`bundle_diff`)&&typeof t.filePath==`string`&&typeof t.changeKey==`string`&&typeof t.changeType==`string`&&(typeof t.oldLineNumber==`number`||t.oldLineNumber===null)&&(typeof t.newLineNumber==`number`||t.newLineNumber===null)&&typeof t.hunkHeader==`string`&&typeof t.lineContent==`string`&&typeof t.diffSnippet==`string`&&typeof t.comment==`string`},N6=e=>{try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return null;let n=t;if(typeof n.diffSignature!=`string`||!Array.isArray(n.comments))return null;let r=n.comments.filter(M6).map(e=>({scope:e.scope??`uncommitted`,filePath:e.filePath,changeKey:e.changeKey,changeType:e.changeType,oldLineNumber:e.oldLineNumber,newLineNumber:e.newLineNumber,hunkHeader:e.hunkHeader,lineContent:e.lineContent,diffSnippet:e.diffSnippet,comment:e.comment}));return r.length===n.comments.length?{diffSignature:n.diffSignature,comments:r}:null}catch{return null}},P6=e=>new Map(e.map(e=>[sk(e.filePath,e.changeKey),e])),F6=(e,t)=>{e.set(t,(e.get(t)??0)+1)},I6=e=>e.find(e=>e.trim())||``,L6=({gitStatus:e,isProjectTargetRepoRoot:t,isGitHubConnected:n,effectiveDefaultBaseBranch:r})=>t&&!!e?.branch&&e?.has_upstream===!0&&(e?.ahead??0)===0&&!!r&&e?.branch!==r&&n,R6=({pullRequest:e,isLoading:t,isOpen:n,canCreate:r,disabledReason:i,isCreating:a,isSyncing:o,isGeneratingDescription:s,title:c,body:l,baseBranch:u,onOpenChange:d,onTitleChange:f,onBodyChange:p,onBaseBranchChange:m,showGenerateDescription:h,onGenerateDescription:g,onCreate:_})=>t?(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`outline`,disabled:!0,className:`gap-2`,children:u6(`loadingPullRequest`)}):o?(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,disabled:!0,className:`gap-2`,children:[(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}),u6(`checkingPullRequest`)]}):e?(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl border border-border/80 bg-background/50 px-3 py-2`,children:[(0,Y.jsx)(sN,{pullRequest:e}),(0,Y.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,className:`text-xs font-medium text-sky-300 underline underline-offset-2 hover:text-sky-200`,children:[`PR #`,e.number]})]}):(0,Y.jsxs)(ev,{open:n,onOpenChange:d,children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`default`,disabled:!r,title:i,className:`gap-2`,children:[a?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),u6(a?`creatingPullRequest`:`createPullRequest`)]})}),(0,Y.jsxs)(nv,{align:`end`,className:`z-[90] w-[36rem] max-w-[calc(100vw-2rem)] p-4`,children:[(0,Y.jsx)(rv,{children:(0,Y.jsx)(iv,{children:u6(`createPullRequestTitle`)})}),(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(_b,{label:u6(`pullRequestFieldTitle`),htmlFor:`bundle-pr-title`,children:(0,Y.jsx)(z_,{id:`bundle-pr-title`,value:c,onChange:e=>f(e.target.value),placeholder:u6(`pullRequestTitlePlaceholder`),disabled:a})}),(0,Y.jsx)(_b,{label:u6(`pullRequestFieldBaseBranch`),htmlFor:`bundle-pr-base-branch`,description:u6(`pullRequestBaseBranchDescription`),children:(0,Y.jsx)(z_,{id:`bundle-pr-base-branch`,value:u,onChange:e=>m(e.target.value),placeholder:u6(`pullRequestBaseBranchPlaceholder`),disabled:a})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsx)(`label`,{className:`text-xs font-medium uppercase tracking-[0.22em] text-muted-foreground`,htmlFor:`bundle-pr-body`,children:u6(`pullRequestFieldDescription`)}),h&&(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:`gap-2`,disabled:a||s,onClick:g,children:[s?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):null,u6(s?`generatingDescription`:`generateDescription`)]})]}),(0,Y.jsx)(B_,{id:`bundle-pr-body`,value:l,onChange:e=>p(e.target.value),placeholder:u6(`pullRequestDescriptionPlaceholder`),className:`min-h-40`,disabled:a})]}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,disabled:!c.trim()||a,onClick:_,children:u6(a?`creating`:`createPullRequest`)})})]})]})]}),z6=(e,t,n)=>{if(n)return _6(t);let r=new Set(t.map(e=>e.path));return new Set([...e].filter(e=>r.has(e)))},B6=e=>{let{projectId:t,reviewCommentsBundleId:n=null,targetKind:r,repoRootDefaultBranch:i=null,title:a,hasHelperModel:o=!1,onClose:s,onSubmitReviewPrompt:c,canSubmitReviewPrompt:l=!1,reviewSubmitDisabledReason:u,canAddReviewComments:d=!0,canModifyChanges:f=!0,changesDisabledReason:m,onViewSourceSpec:h,originSpecSessionId:g=null,originSpecSnapshotId:_=null}=e,v=e.scope??`ticket`,{isGitHubConnected:y,defaultBaseBranch:b}=cS(t),x=e.scope===`project_root`?null:e.ticketId,S=e.scope===`project_root`?void 0:e.onTicketUpdate,C=e.scope===`project_root`?void 0:e.onRequestTicketRefresh,w=v===`project_root`,T=!!(t&&n),E=r??(T?`bundle`:`repo_root`),D=w&&E===`repo_root`,O=b??i,[k,A]=(0,p.useState)(`uncommitted`),[j,M]=(0,p.useState)(null),[N,P]=(0,p.useState)(null),[F,I]=(0,p.useState)(null),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(new Set),[V,H]=(0,p.useState)(`all`),[ee,U]=(0,p.useState)(``),[te,ne]=(0,p.useState)(null),[re,ie]=(0,p.useState)(null),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)(null),[ce,le]=(0,p.useState)(!0),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(!0),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(!1),[ve,ye]=(0,p.useState)(!1),[G,be]=(0,p.useState)(null),[xe,Se]=(0,p.useState)(!1),[Ce,we]=(0,p.useState)(`unified`),[Te,Ee]=(0,p.useState)(new Map),[De,Oe]=(0,p.useState)(g6),[ke,Ae]=(0,p.useState)(O6),[je,Me]=(0,p.useState)(null),[Ne,Pe]=(0,p.useState)([]),[Fe,Ie]=(0,p.useState)(null),[Le,Re]=(0,p.useState)(null),[ze,Be]=(0,p.useState)(new Set),[Ve,K]=(0,p.useState)(new Set),[He,Ue]=(0,p.useState)(!1),[We,Ge]=(0,p.useState)(null),[Ke,qe]=(0,p.useState)(null),[Je,q]=(0,p.useState)(!1),[Ye,Xe]=(0,p.useState)(!1),[Ze,J]=(0,p.useState)(``),[Qe,$e]=(0,p.useState)(``),[et,tt]=(0,p.useState)(``),[nt,rt]=(0,p.useState)([]),[it,ot]=(0,p.useState)(!1),[ut,dt]=(0,p.useState)(!1),[ft,pt]=(0,p.useState)(!1),_t=(0,p.useRef)(null),vt=(0,p.useRef)(!1),yt=(0,p.useRef)(null),bt=(0,p.useRef)(null),xt=(0,p.useRef)(0),St=(0,p.useRef)(0),Ct=(0,p.useRef)(!1),wt=(0,p.useRef)(k6(()=>null)),Tt=(0,p.useRef)(A6()),Et=(0,p.useRef)(`idle`),Dt=(0,p.useRef)(0),Ot=(0,p.useRef)(null),kt=(0,p.useMemo)(()=>K4({scope:v,projectId:t,ticketId:x,projectTargetBundleId:w?n:null}),[t,n,v,x,w]),At=(0,p.useCallback)(()=>{if(!x)throw Error(`Ticket changes require a ticket id.`);return x},[x]),Rt=(0,p.useCallback)(e=>{yt.current=e,M(e),ne(null)},[]),zt=(0,p.useCallback)((e,t)=>{J4({cacheKey:kt,diffResponse:e,gitStatus:t})},[kt]),Bt=(0,p.useCallback)(e=>{yt.current&&J4({cacheKey:kt,diffResponse:yt.current,gitStatus:e})},[kt]),Vt=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await yn(t)}return await jt(At(),t)},[t,At,v]),Ht=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await xn(t)}return await Mt(At(),t,{refreshRemote:!1})},[t,At,v]),Ut=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await Sn(t)}return await It(At(),t)},[t,At,v]),Wt=(0,p.useCallback)(async e=>!n||!t?null:await mt(t,n,e),[t,n]),Gt=(0,p.useCallback)(async e=>!n||!t?null:await at(t,n,e),[t,n]),Kt=(0,p.useCallback)(async e=>!n||!t?null:await ht(t,n,e),[t,n]),qt=(0,p.useCallback)(async e=>!n||!t?null:await gt(t,n,e),[t,n]),Jt=(0,p.useCallback)(function e({silent:r}){if(!n||!t||!We?.bundle.pull_request||!y||Et.current===`loaded`)return Promise.resolve();if(Et.current===`loading`){let t=Ot.current;return t?t.then(()=>{if(!r&&Et.current===`idle`)return e({silent:!1})}):Promise.resolve()}r||Re(null),Et.current=`loading`;let i=Dt.current,a=qt().then(e=>{if(i===Dt.current){if(!e){Et.current=`idle`;return}if(e.error){r||(Pe(e.comments),Re(e.error),K(t=>{let n=new Set(e.comments.map(e=>e.id));return new Set([...t].filter(e=>n.has(e)))})),Et.current=`idle`;return}Pe(e.comments),Re(null),K(t=>{let n=new Set(e.comments.map(e=>e.id));return new Set([...t].filter(e=>n.has(e)))}),Et.current=`loaded`}}).catch(e=>{i===Dt.current&&(Et.current=`idle`,!r&&(Pe([]),Re(T6(e,`Unable to load GitHub review comments right now.`)),K(new Set)))}).finally(()=>{i===Dt.current&&Ot.current===a&&(Ot.current=null)});return Ot.current=a,a},[We?.bundle.pull_request,y,t,qt,n]),Yt=(0,p.useCallback)((e,t)=>{Ae(n=>({...n,[e]:t(n[e])}))},[]),Xt=(0,p.useCallback)(async e=>{if(T&&n&&t)return await ct(t,n,e);if(w){if(!t)throw Error(`Project changes require a project id.`);return await Dn(t,e)}throw Error(`Pull request description generation requires a supported target context.`)},[T,t,n,w]),Zt=(0,p.useCallback)(async e=>{if(!t)throw Error(`Project changes require a project id.`);return await En(t,e)},[t]),Qt=(0,p.useCallback)(async e=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await Cn(t,e)}return await Nt(At(),t,e)},[t,At,v]),$t=(0,p.useCallback)(async e=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await wn(t,e)}return await Pt(At(),t,e)},[t,At,v]),en=(0,p.useCallback)(async(e={})=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await Tn(t,e)}return await Ft(At(),t,e)},[t,At,v]),tn=(0,p.useCallback)(async()=>{if(v===`project_root`){if(!t)throw Error(`Project changes require a project id.`);return await On(t)}return await Lt(At(),t)},[t,At,v]),nn=(0,p.useCallback)(async(e,t={})=>{let n=t.preserveContent??!1,r=xt.current+1;xt.current=r,he(!0),n||se(null);try{let t=await Ut();if(!e()||xt.current!==r)return;R(t.commits),se(null)}catch(t){if(!e()||xt.current!==r)return;se(T6(t,`Unable to load local commits right now.`)),n||R([])}finally{e()&&xt.current===r&&he(!1)}},[Ut]),rn=(0,p.useCallback)(()=>{xt.current+=1,R([]),se(null),he(!1)},[]),an=(0,p.useCallback)((e,t={})=>{let n=t.resetSelection??!1;bt.current=e,I(e),oe(null),B(t=>{let r=z6(t,e.files,n||!vt.current);return vt.current=!0,r})},[]),on=(0,p.useCallback)(async(e={})=>{let t=e.preserveContent??!1,n=e.gitStatusForCache??null;t||ne(null),le(!0);try{let e=await Vt();Rt(e),n&&zt(e,n)}catch(e){n&&Y4(kt),(!t||!yt.current)&&ne(T6(e,`Unable to load the diff right now.`))}finally{le(!1)}},[Rt,kt,Vt,zt]),sn=(0,p.useCallback)(async(e={})=>{let t=e.preserveContent??!1;if(!T){P(null),ie(null),de(!1);return}t||ie(null),de(!0);try{P(await Kt()),ie(null)}catch(e){(!t||!N)&&ie(T6(e,`Unable to load the branch diff right now.`))}finally{de(!1)}},[N,T,Kt]),cn=(0,p.useCallback)(async(e,t={})=>{let n=t.preserveContent??!1,r=t.resetSelection??!1,i=t.allowCache??!0?q4(kt):null;if(n||(ne(null),oe(null)),pe(!0),i){Rt(i.diffResponse),an(i.gitStatus,{resetSelection:r}),le(!1);try{let t=await Ht();if(!e())return;an(t,{resetSelection:r}),pe(!1),(t.ahead??0)>0?nn(e,{preserveContent:!0}):rn();let n=t.workspace_signature??null;if(n&&n===i.workspaceSignature){zt(i.diffResponse,t);return}Y4(kt),await on({preserveContent:!0,gitStatusForCache:t});return}catch(t){if(!e())return;oe(T6(t,`Unable to load git status right now.`)),I(null),pe(!1),rn();return}}le(!0),Vt().then(t=>{e()&&(Rt(t),bt.current&&zt(t,bt.current))}).catch(t=>{e()&&(!n||!yt.current)&&ne(T6(t,`Unable to load the diff right now.`))}).finally(()=>{e()&&le(!1)});try{let t=await Ht();if(!e())return;an(t,{resetSelection:r}),pe(!1),yt.current&&zt(yt.current,t),(t.ahead??0)>0?nn(e,{preserveContent:n}):rn()}catch(t){if(!e())return;oe(T6(t,`Unable to load git status right now.`)),n||I(null),pe(!1),rn()}},[Rt,an,kt,rn,nn,on,Vt,Ht,zt]),ln=(0,p.useCallback)(async()=>{if(!t)return;let e=St.current+1;St.current=e,pe(!0);try{let t=await Ht();if(St.current!==e)return;let n=bt.current?.workspace_signature??null,r=t.workspace_signature??null,i=!yt.current||n!==r;if(an(t),(t.ahead??0)>0?nn(()=>St.current===e,{preserveContent:!0}):rn(),!i){Bt(t);return}await on({preserveContent:!0,gitStatusForCache:t})}catch{return}finally{St.current===e&&pe(!1)}},[an,rn,nn,on,t,Ht,Bt]);(0,p.useEffect)(()=>{yt.current=j},[j]),(0,p.useEffect)(()=>{bt.current=F},[F]),(0,p.useEffect)(()=>{let e=!0;return cn(()=>e,{resetSelection:!0}),()=>{e=!1}},[cn]),(0,p.useEffect)(()=>{if(t)return e3(e=>{if(e===t){if(Ct.current){Ct.current=!1;return}ln()}})},[t,ln]),(0,p.useEffect)(()=>{if(!t)return;let e=n3(()=>{document.visibilityState===`visible`&&ln()});return()=>{e()}},[t,ln]),(0,p.useEffect)(()=>{if(!T){Me(null),Ie(null),Be(new Set);return}if(!j?.diff?.trim()){Me(null),Ie(null),Be(new Set);return}let e=new AbortController,t=!0;return Ie(null),Wt(e.signal).then(e=>{t&&(Me(e),Be(t=>{let n=new Set((e?.findings??[]).map(e=>e.id));return new Set([...t].filter(e=>n.has(e)))}))}).catch(n=>{!t||e.signal.aborted||(Ie(T6(n,`Unable to load review findings right now.`)),Me(null),Be(new Set))}),()=>{t=!1,e.abort()}},[j?.diff,T,Wt]),(0,p.useEffect)(()=>{A(`uncommitted`),wt.current=k6(()=>null),Tt.current=A6(),Ae(O6()),P(null),ie(null),de(!1),Dt.current+=1,Et.current=`idle`,Ot.current=null,Pe([]),Re(null),K(new Set),Ge(null),qe(null),q(!1),Xe(!1),J(``),$e(``),tt(``),rt([]),ot(!1),dt(!1),pt(!1)},[n,E]),(0,p.useEffect)(()=>{if(!T){Ge(null),q(!1);return}if(j===null&&!te){q(!1);return}let e=new AbortController,t=!0;return q(!0),Gt(e.signal).then(e=>{t&&(Ge(e),J(t=>t.trim()?t:e?.bundle?my(e.bundle):a),$e(t=>t.trim()?t:I6(e?.recent_commit_subjects??nt)),tt(t=>t.trim()?t:e?.bundle.pull_request?.base_branch??``))}).catch(()=>{!t||e.signal.aborted||Ge(null)}).finally(()=>{t&&q(!1)}),()=>{t=!1,e.abort()}},[te,j,nt,t,Gt,T,a]),(0,p.useEffect)(()=>{D&&(J(e=>e.trim()&&e!==a?e:F?.branch??a),$e(e=>e.trim()?e:I6(nt)))},[F?.branch,D,nt,a]),(0,p.useEffect)(()=>{if(!T){P(null),ie(null),de(!1);return}if(k!==`bundle_diff`){de(!1);return}let e=new AbortController,t=!0;return de(!0),ie(null),Kt(e.signal).then(e=>{t&&(P(e),ie(null))}).catch(n=>{!t||e.signal.aborted||(ie(T6(n,`Unable to load the branch diff right now.`)),P(null))}).finally(()=>{t&&de(!1)}),()=>{t=!1,e.abort()}},[k,T,Kt]),(0,p.useEffect)(()=>{let e=We?.bundle.pull_request??null;if(!T||!e){Dt.current+=1,Et.current=`idle`,Ot.current=null,Pe([]),Re(null),K(new Set);return}if(!y){Dt.current+=1,Et.current=`idle`,Ot.current=null,Pe([]),Re(null),K(new Set);return}Jt({silent:!0})},[We?.bundle.pull_request,Jt,y,T]),(0,p.useEffect)(()=>{k===`bundle_diff`&&Jt({silent:!1})},[k,We?.bundle.pull_request,Jt,y]),(0,p.useEffect)(()=>{fe&&F===null||_t.current?.focus()},[F,fe]);let un=(0,p.useMemo)(()=>{let e=typeof j?.diff==`string`?j.diff:``;return e.trim()?Pw(e).map(e=>({...e,pathCandidates:b6(e)})):[]},[j]),dn=(0,p.useMemo)(()=>{let e=typeof N?.diff==`string`?N.diff:``;return e.trim()?Pw(e).map(e=>({...e,pathCandidates:b6(e)})):[]},[N]),fn=(0,p.useMemo)(()=>{let e=j?.diff??``;return e?j6(e):null},[j?.diff]),pn=(0,p.useMemo)(()=>{let e=N?.diff??``;return e?j6(e):null},[N?.diff]),mn=k===`bundle_diff`?N:j,hn=k===`bundle_diff`?dn:un,gn=(0,p.useMemo)(()=>n?{uncommitted:E6(n,`uncommitted`),bundle_diff:E6(n,`bundle_diff`)}:{uncommitted:null,bundle_diff:null},[n]),_n=(0,p.useMemo)(()=>({uncommitted:fn,bundle_diff:pn}),[pn,fn]),vn=(0,p.useMemo)(()=>{let e=new Map;for(let t of mn?.files??[])e.set(t.path,t);return e},[mn]),bn=(0,p.useMemo)(()=>{let e=new Map;for(let t of hn)for(let n of t.pathCandidates)e.has(n)||e.set(n,t);return e},[hn]),kn=(0,p.useCallback)(e=>{Oe(t=>t.length===e.length&&t.every((t,n)=>t===e[n])?t:e)},[]),An=(0,p.useMemo)(()=>k===`bundle_diff`?(N?.files??[]).map(e=>({path:e.path,originalPath:null,status:null,staged:!1,unstaged:!1,conflicted:!1,additions:e.additions,deletions:e.deletions})):F?(F.files??[]).map(e=>{let t=vn.get(e.path)??(e.original_path?vn.get(e.original_path):void 0);return{path:e.path,originalPath:e.original_path,status:e.status,staged:e.staged,unstaged:e.unstaged,conflicted:e.conflicted,additions:t?.additions??0,deletions:t?.deletions??0}}):(j?.files??[]).map(e=>({path:e.path,originalPath:null,status:null,staged:!1,unstaged:!1,conflicted:!1,additions:e.additions,deletions:e.deletions})),[k,N?.files,vn,j?.files,F]);(0,p.useEffect)(()=>{V!==`all`&&(An.some(e=>e.path===V)||H(`all`))},[V,An]);let jn=k===`bundle_diff`?0:z.size,Mn=G!==null,Nn=G===`force`,Pn=k===`bundle_diff`?An.length:F?.files?.length??An.length,Fn=Pn>0&&jn===Pn,In=(0,p.useMemo)(()=>k===`bundle_diff`?null:v6(F,z),[k,F,z]),Ln=k===`uncommitted`&&!fe&&!ge&&f&&!!F&&jn>0&&ee.trim().length>0&&In===null,Rn=k===`uncommitted`&&!fe&&!ce&&!ve&&!ge&&!Mn&&f&&!He&&!!F&&jn>0,zn=!fe&&(Mn||!!F?.can_push&&(F?.ahead??0)>0),Bn=zn&&!!F?.can_force_push_with_lease,Vn=zn&&f&&!Mn&&!ge,Hn=Bn&&f&&!Mn&&!ge,Un=f&&!me&&!xe&&!ge&&!Mn&&(L?.length??0)>0,Wn=(F?.ahead??0)>0?`${F?.ahead??0} to push`:`Up to date`,Gn=(F?.behind??0)>0?`${F?.behind??0} behind`:`In sync`,Kn=F?.branch??null,qn=V===`all`?null:bn.get(V)??null,Jn=(0,p.useMemo)(()=>V===`all`?hn:qn?[qn]:[],[hn,V,qn]);(0,p.useEffect)(()=>{Ee(new Map),Oe(g6)},[k,hn]),(0,p.useEffect)(()=>{let e={uncommitted:gn.uncommitted&&_n.uncommitted?`${gn.uncommitted}:${_n.uncommitted}`:null,bundle_diff:gn.bundle_diff&&_n.bundle_diff?`${gn.bundle_diff}:${_n.bundle_diff}`:null},t=wt.current;t.uncommitted===e.uncommitted&&t.bundle_diff===e.bundle_diff||(wt.current=e,Ae(n=>{let r={...n};return[`uncommitted`,`bundle_diff`].forEach(i=>{if(t[i]===e[i])return;let a=_n[i],o=gn[i],s=n[i];if(t[i]===null&&a&&(s.activeTarget||s.editingCommentKey||s.draftInput.trim()||s.comments.size>0)){r[i]={...s,signature:a};return}if(!a){Tt.current[i]=new Map,r[i]=D6();return}let c=new Map;if(o){let e=window.localStorage.getItem(o),t=e?N6(e):null;t?.diffSignature===a?c=P6(t.comments.map(e=>({...e,scope:i}))):e!==null&&window.localStorage.removeItem(o)}Tt.current[i]=new Map,r[i]={activeTarget:null,editingCommentKey:null,draftInput:``,comments:c,signature:a}}),r}))},[_n,gn]),(0,p.useEffect)(()=>{[`uncommitted`,`bundle_diff`].forEach(e=>{let t=gn[e],n=_n[e],r=ke[e];if(!t||!n||r.signature!==n)return;if(r.comments.size===0){window.localStorage.removeItem(t);return}let i={diffSignature:n,comments:[...r.comments.values()]};window.localStorage.setItem(t,JSON.stringify(i))})},[_n,gn,ke]),(0,p.useEffect)(()=>{if(hn.length===0)return;let e=!1,t=null,n=(()=>{if(!qn){let e=[],t=new Set;for(let n of De){let r=bn.get(n);if(!r)continue;let i=x6(r);t.has(i)||(t.add(i),e.push(r))}return e.length>0?e:hn.slice(0,d6)}return[qn]})(),r=0,i=()=>{if(e)return;let a=n.slice(r,r+d6);a.length!==0&&(Ee(e=>{let t=new Map(e);for(let e of a){let n=x6(e);t.has(n)||t.set(n,w6(e))}return t}),r+=d6,r<n.length&&(t=window.setTimeout(i,0)))};return n.length<=d6?i():t=window.setTimeout(i,0),()=>{e=!0,t!==null&&window.clearTimeout(t)}},[hn,bn,qn,De]);let Yn=(0,p.useMemo)(()=>Jn.map(e=>({...e,tokens:Te.get(x6(e))??null})),[Te,Jn]),Xn=(0,p.useMemo)(()=>hn.map(e=>({...e,tokens:null})),[hn]),Zn=(0,p.useMemo)(()=>{let e=new Map;for(let t of hn){let n=x6(t);e.set(n,n);for(let r of b6(t))e.set(r,n)}return e},[hn]),Qn=(0,p.useMemo)(()=>[...ke.uncommitted.comments.values()],[ke.uncommitted.comments]),$n=(0,p.useMemo)(()=>[...ke.bundle_diff.comments.values()],[ke.bundle_diff.comments]),er=ke[k],tr=er.activeTarget,nr=er.editingCommentKey,rr=tr?.commentKey??nr,ir=rr?`${k}:${rr}`:k,ar=rr?Tt.current[k].get(rr)??er.draftInput:er.draftInput,or=k===`bundle_diff`?$n:Qn,sr=(0,p.useMemo)(()=>[...Qn,...$n],[$n,Qn]),cr=(0,p.useMemo)(()=>je?.findings??[],[je]),lr=(0,p.useMemo)(()=>je?.is_current_diff?cr.filter(e=>ze.has(e.id)):[],[cr,je?.is_current_diff,ze]),ur=(0,p.useMemo)(()=>[...ze],[ze]),dr=(0,p.useMemo)(()=>Ne.filter(e=>Ve.has(e.id)),[Ne,Ve]),fr=(0,p.useMemo)(()=>[...Ve],[Ve]),pr=sr.length+lr.length+dr.length,mr=!!(je?.review_run&&cr.length>0&&!je.is_current_diff),hr=We?.bundle.pull_request??null,gr=hr??Ke,_r=(0,p.useMemo)(()=>nt.length>0?nt:We?.recent_commit_subjects??[],[We?.recent_commit_subjects,nt]),vr=We?.has_helper_model===!0||o,yr=T,br=k===`bundle_diff`?re:te,xr=ce&&j===null,Sr=ue&&N===null,Cr=fe&&F===null,wr=Je&&We===null,Tr=k===`bundle_diff`?Sr:xr,Er=k===`uncommitted`?cr:m6,Dr=k===`uncommitted`?ur:g6,Or=k===`bundle_diff`?Ne:h6,kr=k===`bundle_diff`?fr:g6,Ar=k===`bundle_diff`?`bundle_diff`:`uncommitted`,jr=(0,p.useMemo)(()=>{let e=new Map,t=e=>e?Zn.get(e)??e:null;for(let n of or){let r=t(n.filePath);r&&F6(e,r)}if(k===`uncommitted`){if(mr)return e;for(let n of cr){let r=t(n.file_path);r&&F6(e,r)}return e}for(let n of Ne){let r=t(n.file_path);r&&F6(e,r)}return e},[k,Zn,or,Ne,mr,cr]),Mr=(mr?0:cr.length)+Qn.length,Nr=Ne.length+$n.length,Pr=k===`bundle_diff`?`No branch diff to show.`:`No uncommitted changes to show.`,Fr=k===`uncommitted`&&yr?`Switch to Branch diff to review the full branch diff.`:null,Ir=yr&&!wr&&!!We&&We?.bundle.kind!==`project_root`&&F?.has_upstream===!0&&y,Lr=L6({gitStatus:F,isProjectTargetRepoRoot:D,isGitHubConnected:y,effectiveDefaultBaseBranch:O}),Rr=Ir||Lr,zr=Rr&&!hr&&!Ke&&!it&&!ut&&!ft&&!He&&!Mn&&!ge&&!xe&&(F?.ahead??0)===0&&!!F?.branch,Br=(0,p.useCallback)(e=>{if(!e){Xe(!1);return}if(!T){Xe(e);return}if(!t||!n||!Ir||hr||ut){Xe(e);return}dt(!0),lt(t,n).then(e=>{Ge(e),tt(t=>t.trim()?t:e.bundle.pull_request?.base_branch??``),Xe(!e.bundle.pull_request)}).catch(e=>{Q.error(T6(e,`Unable to check for an existing pull request right now.`),{id:`ticket-changes-sync-pr-error`}),Xe(!0)}).finally(()=>{dt(!1)})},[hr,T,ut,t,n,Ir]),Vr=(0,p.useMemo)(()=>{if(Rr)return(F?.ahead??0)>0?`Push the branch before creating a pull request.`:F?.branch?m:u6(`branchUnavailable`)},[m,F?.ahead,F?.branch,Rr]),Hr=d&&!Tr&&(k===`bundle_diff`||!Cr)&&!ge&&!Mn&&!xe,Ur=tr?Hr||er.comments.has(tr.commentKey):Hr,Wr=!!c&&l&&pr>0&&!He,Gr=(0,p.useCallback)(e=>{Be(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Kr=(0,p.useCallback)(e=>{K(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),qr=(0,p.useCallback)(()=>{Tt.current=A6(),Ae(e=>({uncommitted:{...e.uncommitted,activeTarget:null,editingCommentKey:null,draftInput:``,comments:new Map},bundle_diff:{...e.bundle_diff,activeTarget:null,editingCommentKey:null,draftInput:``,comments:new Map}}))},[]),Jr=(0,p.useCallback)(()=>{qr(),Be(new Set),K(new Set)},[qr]),Yr=(0,p.useCallback)(async()=>{if(!(!t||!zr)){ot(!0);try{if(T&&n){let e=await st(t,n,{title:Ze.trim(),body:Qe.trim(),base_branch:et.trim()||null});Ge(e),tt(e.bundle.pull_request?.base_branch??et.trim())}else{let e=await Zt({title:Ze.trim(),body:Qe.trim(),base_branch:et.trim()||null});qe(e.pull_request),tt(e.pull_request.base_branch||et.trim())}Xe(!1),Q.success(u6(`pullRequestCreated`),{id:`ticket-changes-create-pr-success`})}catch(e){Q.error(T6(e,u6(`createPullRequestFallbackError`)),{id:`ticket-changes-create-pr-error`})}finally{ot(!1)}}},[zr,t,et,Qe,Ze,Zt,n,T]),Xr=(0,p.useCallback)(async()=>{if(!(!t||!Rr||ft)){pt(!0);try{$e((await Xt({title:Ze.trim(),commit_subjects:_r})).description)}catch(e){Q.error(T6(e,`Unable to generate the pull request description right now.`),{id:`ticket-changes-generate-pr-description-error`})}finally{pt(!1)}}},[ft,t,_r,Ze,Xt,Rr]),Zr=(0,p.useCallback)(({filePath:e,changeKey:t,commentKey:n})=>{let r=er.comments.get(n),i=Tt.current[k].get(n)??r?.comment??``;if(r){H(r.filePath),Yt(k,e=>({...e,activeTarget:null,editingCommentKey:n,draftInput:i}));return}Hr&&Yt(k,r=>({...r,activeTarget:{filePath:e,changeKey:t,commentKey:n},editingCommentKey:null,draftInput:i}))},[k,er.comments,Hr,Yt]),Qr=(0,p.useCallback)(()=>{rr&&Tt.current[k].delete(rr),Yt(k,e=>({...e,activeTarget:null,editingCommentKey:null,draftInput:``}))},[k,rr,Yt]),$r=(0,p.useCallback)(e=>{rr&&Tt.current[k].set(rr,e)},[k,rr]),ei=(0,p.useCallback)((e,t)=>{let n=er.comments.has(e.commentKey);if(!Hr&&!n)return;let r=t.trim();if(!r)return;let i=e.change.type===`insert`?null:`oldLineNumber`in e.change?e.change.oldLineNumber:e.change.lineNumber,a=e.change.type===`delete`?null:`newLineNumber`in e.change?e.change.newLineNumber:e.change.lineNumber;Yt(k,t=>{let n=new Map(t.comments);return n.set(e.commentKey,{scope:k,filePath:e.filePath,changeKey:e.changeKey,changeType:e.change.type,oldLineNumber:i,newLineNumber:a,hunkHeader:e.hunk.content,lineContent:e.change.content,diffSnippet:ck(e.hunk,e.change),comment:r}),{...t,activeTarget:null,editingCommentKey:null,draftInput:``,comments:n}}),Tt.current[k].delete(e.commentKey)},[k,er.comments,Hr,Yt]),ti=(0,p.useCallback)(e=>{let t=er.comments.get(e);if(!t)return;H(t.filePath);let n=Tt.current[k].get(e)??t.comment;Yt(k,t=>({...t,activeTarget:null,editingCommentKey:e,draftInput:n}))},[k,er.comments,Yt]),ni=(0,p.useCallback)(e=>{Tt.current[k].delete(e),Yt(k,t=>{let n=new Map(t.comments);return n.delete(e),{...t,activeTarget:t.activeTarget?.commentKey===e?null:t.activeTarget,editingCommentKey:t.editingCommentKey===e?null:t.editingCommentKey,draftInput:t.activeTarget?.commentKey===e||t.editingCommentKey===e?``:t.draftInput,comments:n}})},[k,Yt]),ri=(0,p.useCallback)(async()=>{if(!c||!Wr)return;Ue(!0);let e=pk({drafts:sr,findings:lr,githubComments:dr,uncommittedFiles:un,bundleFiles:dn});qr(),Be(new Set),K(new Set);try{await c(e),Me(e=>e&&{...e,findings:[],is_current_diff:!1}),Q.success(`Fixes submitted.`,{id:`ticket-diff-review-submit-success`}),s()}catch(e){Q.error(T6(e,`Unable to submit the review right now.`),{id:`ticket-diff-review-submit-error`})}finally{Ue(!1)}},[sr,dn,Wr,qr,s,c,dr,lr,un]),ii=(0,p.useCallback)(()=>{if(k===`bundle_diff`){sn();return}cn(()=>!0,{allowCache:!1,resetSelection:!vt.current})},[k,sn,cn]),ai=(0,p.useMemo)(()=>c?(0,Y.jsx)(V2,{reviewComments:sr,reviewFindings:lr,githubComments:dr,pendingFixCount:pr,canSendReview:Wr,isSubmittingReview:He,reviewSubmitDisabledReason:u,onClearPendingFixes:Jr,onSubmitReview:()=>{ri()}}):null,[sr,Wr,Jr,ri,He,c,pr,u,dr,lr]),oi=e=>{B(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},si=()=>{F&&B(Fn?new Set:_6(F.files))},ci=async()=>{if(Ln){_e(!0);try{let e=await Qt({message:ee.trim(),selected_paths:[...z]});e.ticket&&S?.(e.ticket),an(e.git_status,{resetSelection:!0}),U(``),t&&(Ct.current=!0,$4(t)),x&&C?.(x),await on({preserveContent:!0,gitStatusForCache:e.git_status}),await sn({preserveContent:!0}),(e.git_status.ahead??0)>0?await nn(()=>!0):rn(),Q.success(`Commit created.`,{id:`ticket-git-commit-success`})}catch(e){Q.error(T6(e,`Unable to create the commit right now.`),{id:`ticket-git-commit-error`})}finally{_e(!1)}}},li=async()=>{if(Rn){ye(!0);try{U((await $t({selected_paths:[...z]})).message),_t.current?.focus()}catch(e){Q.error(T6(e,`Unable to generate a commit message right now.`),{id:`ticket-git-commit-message-error`})}finally{ye(!1)}}},ui=async(e=`normal`)=>{if(!(e===`force`?!Hn:!Vn)){be(e);try{let r=L.map(e=>e.subject.trim()).filter(Boolean),i=await en({forceWithLease:e===`force`});if(i.ticket&&S?.(i.ticket),an(i.git_status,{resetSelection:!0}),Bt(i.git_status),rt(r),rn(),t&&(Ct.current=!0,$4(t)),x&&C?.(x),Q.success(e===`force`?i.git_status.ahead===0?u6(`branchForcePushed`):u6(`forcePushCompleted`):i.git_status.ahead===0?u6(`branchPushed`):u6(`pushCompleted`),{id:`ticket-git-push-success`}),i.git_status.ahead===0)if(T&&t&&n)try{let e=await at(t,n);Ge(e),J(t=>t.trim()?t:my(e.bundle)),$e(e=>e.trim()?e:I6(r)),tt(t=>t.trim()?t:e.bundle.pull_request?.base_branch??``)}catch{}else L6({gitStatus:i.git_status,isProjectTargetRepoRoot:D,isGitHubConnected:y,effectiveDefaultBaseBranch:O})||s()}catch(t){Q.error(T6(t,u6(e===`force`?`forcePushFallbackError`:`pushFallbackError`)),{id:`ticket-git-push-error`})}finally{be(null)}}},di=async()=>{if(Un){Se(!0);try{let e=await tn();e.ticket&&S?.(e.ticket),an(e.git_status,{resetSelection:!0}),R(e.commits),se(null),he(!1),t&&(Ct.current=!0,$4(t)),x&&C?.(x),await on({preserveContent:!0,gitStatusForCache:e.git_status}),await sn({preserveContent:!0}),Q.success(`Latest local commit undone.`,{id:`ticket-git-undo-success`})}catch(e){Q.error(T6(e,`Unable to undo the latest local commit right now.`),{id:`ticket-git-undo-error`})}finally{Se(!1)}}};return(0,Y.jsx)(tb,{onClose:s,overlayClassName:`z-[70] bg-black/30 p-[5vh]`,panelClassName:`flex h-[92vh] w-full max-w-none flex-col overflow-hidden rounded-2xl border border-border bg-card p-6 shadow-2xl`,renderContent:({closeButton:e})=>(0,Y.jsxs)(Y.Fragment,{children:[Mn&&(0,Y.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center rounded-2xl bg-black/45 backdrop-blur-sm`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl border border-border bg-card/95 px-4 py-3 text-sm text-foreground shadow-xl`,children:[(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(`span`,{children:`Pushing branch...`})]})}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-widest text-muted-foreground`,children:`Changes`}),Kn?(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,Y.jsx)(`h2`,{className:`max-w-full truncate font-mono text-lg font-semibold text-foreground`,children:Kn}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(lb,{variant:(F?.ahead??0)>0?`info`:`outline`,children:Wn}),(0,Y.jsx)(lb,{variant:(F?.behind??0)>0?`warning`:`outline`,children:Gn}),(0,Y.jsx)(lb,{variant:F?.is_dirty?`warning`:`success`,children:F?.is_dirty?`Dirty`:`Clean`})]})]}):(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`h-7 w-56 animate-pulse rounded-md bg-muted/70`,"aria-hidden":`true`}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(`div`,{className:`h-6 w-32 animate-pulse rounded-full bg-muted/60`,"aria-hidden":`true`}),(0,Y.jsx)(`div`,{className:`h-6 w-20 animate-pulse rounded-full bg-muted/60`,"aria-hidden":`true`}),(0,Y.jsx)(`div`,{className:`h-6 w-20 animate-pulse rounded-full bg-muted/60`,"aria-hidden":`true`})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 text-xs text-muted-foreground`,children:[g&&_&&h?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{g&&_&&h(g,_)},children:u6(`viewSourceSpec`)}):null,(gr||Rr)&&(0,Y.jsx)(R6,{pullRequest:gr,isLoading:wr,isOpen:Ye,canCreate:zr,disabledReason:Vr,isCreating:it,isSyncing:ut,isGeneratingDescription:ft,title:Ze,body:Qe,baseBranch:et,onOpenChange:Br,onTitleChange:J,onBodyChange:$e,onBaseBranchChange:tt,showGenerateDescription:vr,onGenerateDescription:()=>{Xr()},onCreate:()=>{Yr()}}),(0,Y.jsx)(U2,{isCommitsLoading:me,commitsError:W,unpushedCommits:L,canUndoLatestCommit:Un,isUndoing:xe,aheadCount:F?.ahead??0,onUndoLatestCommit:()=>{di()}}),zn&&(Bn?(0,Y.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`default`,onClick:()=>{ui()},disabled:!Vn,title:m,className:`gap-2 rounded-r-none`,children:[Mn?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),u6(Nn?`forcePushing`:Mn?`pushing`:`pushBranch`)]}),(0,Y.jsxs)(tN,{children:[(0,Y.jsx)(nN,{asChild:!0,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`default`,disabled:!Hn,"aria-label":u6(`morePushActions`),className:`rounded-l-none border-l border-primary-foreground/20 px-2`,children:(0,Y.jsx)(Ev,{className:`h-4 w-4`})})}),(0,Y.jsx)(rN,{align:`end`,className:`w-56`,children:(0,Y.jsx)(iN,{disabled:!Hn,onSelect:()=>{ui(`force`)},children:u6(`forcePushWithLease`)})})]})]}):(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`default`,onClick:()=>{ui()},disabled:!Vn,title:m,className:`gap-2`,children:[Mn?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Lv,{className:`h-4 w-4`}),u6(Mn?`pushing`:`pushBranch`)]})),e]})]}),(0,Y.jsxs)(`div`,{"data-testid":`ticket-changes-layout`,className:`grid min-h-0 flex-1 gap-4 lg:grid-cols-[18rem_minmax(0,1fr)] xl:grid-cols-[20rem_minmax(0,1fr)]`,children:[(0,Y.jsxs)(`aside`,{className:`flex min-h-0 flex-col`,children:[yr&&(0,Y.jsxs)(P2,{type:`single`,size:`sm`,variant:`outline`,value:k,onValueChange:e=>{(e===`uncommitted`||e===`bundle_diff`)&&A(e)},className:`mb-3 self-start`,children:[(0,Y.jsxs)(F2,{value:`uncommitted`,className:`gap-2`,children:[(0,Y.jsx)(`span`,{children:`Uncommitted`}),Mr>0&&(0,Y.jsx)(`span`,{className:`rounded-full border border-sky-400/40 bg-sky-400/12 px-1.5 py-0.5 text-[10px] font-semibold leading-none text-sky-100`,children:Mr})]}),(0,Y.jsxs)(F2,{value:`bundle_diff`,className:`gap-2`,children:[(0,Y.jsx)(`span`,{children:`Branch diff`}),Nr>0&&(0,Y.jsx)(`span`,{className:`rounded-full border border-violet-400/40 bg-violet-400/12 px-1.5 py-0.5 text-[10px] font-semibold leading-none text-violet-100`,children:Nr})]})]}),(0,Y.jsx)(z4,{selectionWarning:k===`uncommitted`?In:null,gitError:k===`uncommitted`?ae:re,sidebarFiles:An,commentCountByPath:jr,commentCountTone:Ar,isGitStatusLoading:k===`bundle_diff`?Sr:Cr&&An.length===0,selectedPaths:z,selectedDiffPath:V,allFilesSelected:Fn,diffStats:mn?.stats??null,title:k===`bundle_diff`?`Branch diff files`:`Changed files`,allChangesDescription:k===`bundle_diff`?`Review the full branch diff against the review base.`:`Review the full workspace diff.`,enableSelection:k===`uncommitted`&&!Cr,onToggleSelectAll:si,onSelectDiffPath:H,onTogglePath:oi})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3`,children:[(0,Y.jsx)(P4,{selectedDiffPath:V,sidebarFiles:An,diffResponse:mn,isDiffLoading:Tr,diffError:br,allDiffFiles:Xn,renderedFiles:Yn,viewType:Ce,onViewTypeChange:we,onRetry:ii,activeReviewTarget:tr,editingReviewCommentKey:nr,reviewDraftInstanceKey:ir,reviewDraftInput:ar,reviewComments:or,reviewFindings:Er,githubComments:Or,selectedReviewFindingIds:Dr,selectedGitHubCommentIds:kr,canSelectReviewTarget:Hr,canEditActiveReviewDraft:Ur,reviewFindingsError:k===`uncommitted`?Fe:null,gitHubCommentsError:k===`bundle_diff`?Le:null,hasStaleReviewFindings:k===`uncommitted`?mr:!1,onSelectReviewTarget:Zr,onToggleReviewFindingSelection:Gr,onToggleGitHubCommentSelection:Kr,onReviewDraftInputChange:$r,onCancelReviewDraft:Qr,onEditReviewDraft:ti,onRemoveReviewDraft:ni,onSaveReviewDraft:ei,diffThemeClassName:B4,resolveFilePath:x6,normalizeDiffPath:y6,onVisibleFilePathsChange:kn,emptyStateTitle:Pr,emptyStateDescription:Fr,reviewSummaryControl:ai,headerLayout:`inline-controls`}),k===`uncommitted`&&(0,Y.jsx)(`div`,{className:`mt-auto shrink-0`,children:(0,Y.jsx)(H2,{commitMessage:ee,onCommitMessageChange:U,commitMessageRef:_t,selectedFileCount:jn,changesDisabledReason:m,canEditCommitMessage:f&&!He,canGenerateCommitMessage:Rn,canCommit:Ln,isGeneratingCommitMessage:ve,isCommitting:ge,onGenerateCommitMessage:()=>{li()},onCommit:()=>{ci()}})})]})]})]})]})})},V6={blocked:{className:`stroke-red-400/80`,markerId:`dependency-arrowhead-blocked`},ready:{className:`stroke-emerald-400/80`,markerId:`dependency-arrowhead-ready`},preview:{className:`stroke-amber-300/80`,markerId:`dependency-arrowhead-preview`}},H6=e=>FN(e)?`ready`:`blocked`,U6=180,W6=560,G6=88,K6=12,q6=18,J6=(e,t,n)=>Math.min(Math.max(e,t),n),Y6=(e,t,n)=>n&&n.width>0&&n.height>0?n:Object.values(e).reduce((e,t)=>({width:Math.max(e.width,t.left+t.width),height:Math.max(e.height,t.top+t.height)}),{width:t.x,height:t.y}),X6=(e,t)=>{let n=J6(Math.round(e.length*7.2)+24,U6,W6),r=Math.max(U6,t-K6*2);return Math.min(n,r)},Z6=(e,t,n,r,i)=>{let a=n.get(e.blockerTicketId);if(!a)return null;let o=e.hoveredTicketId&&e.hoveredTicketId!==e.blockerTicketId?r[e.hoveredTicketId]:null,s=e.hoveredTicketId&&e.hoveredTicketId!==e.blockerTicketId?n.get(e.hoveredTicketId):null,c=s?`${a.title} is blocking ${s.title}`:`${a.title} is blocking...`,{start:l,end:u}=UN(t,o??{left:e.pointer.x,top:e.pointer.y,width:0,height:0}),d=Y6(r,e.pointer,i),f=o&&s?{x:l.x+(u.x-l.x)*.6,y:l.y+(u.y-l.y)*.6-28}:{x:u.x,y:u.y-28},p=X6(c,d.width);return{text:c,x:o&&s?J6(f.x-p/2,K6,Math.max(K6,d.width-p-K6)):(()=>{let e=f.x+q6,t=f.x-q6-p;return e+p<=d.width-K6?e:t>=K6?t:J6(e,K6,Math.max(K6,d.width-p-K6))})(),y:J6(f.y,K6,Math.max(K6,d.height-G6-K6)),width:p}},Q6=({blockerRect:e,dependentRect:t,className:n,testId:r,markerEnd:i})=>{let{start:a,end:o}=UN(e,t),{path:s}=WN(a,o);return(0,Y.jsx)(`g`,{"data-testid":r,children:(0,Y.jsx)(`path`,{d:s,className:n,fill:`none`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,markerEnd:i})})},$6=({preview:e,cardRects:t,ticketsById:n,overlaySize:r})=>{if(!e)return null;let i=t[e.blockerTicketId];if(!i)return null;let a=(e.hoveredTicketId&&e.hoveredTicketId!==e.blockerTicketId&&t[e.hoveredTicketId]?t[e.hoveredTicketId]:null)??{left:e.pointer.x,top:e.pointer.y,width:0,height:0},o=Z6(e,i,n,t,r);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Q6,{blockerRect:i,dependentRect:a,className:V6.preview.className,testId:`dependency-preview`,markerEnd:`url(#${V6.preview.markerId})`}),(e=>o?(0,Y.jsx)(`foreignObject`,{x:o.x,y:o.y,width:o.width,height:G6,"data-testid":`dependency-preview-label`,children:e}):null)((0,Y.jsx)(`div`,{className:`pointer-events-none flex h-full w-full items-start`,children:(0,Y.jsx)(`div`,{className:`max-w-full rounded-md border border-amber-300/60 bg-stone-950/85 px-3 py-1.5 text-xs font-medium leading-5 text-amber-100 shadow-lg shadow-stone-950/20 whitespace-normal break-words`,children:o?.text})}))]})},e8=({dependencies:e,cardRects:t,preview:n,ticketsById:r,overlaySize:i})=>(0,Y.jsxs)(`svg`,{className:`pointer-events-none absolute inset-0 z-10 h-full w-full overflow-visible`,children:[(0,Y.jsx)(`defs`,{children:Object.values(V6).map(e=>(0,Y.jsx)(`marker`,{id:e.markerId,markerWidth:`8`,markerHeight:`8`,refX:`7`,refY:`4`,orient:`auto`,markerUnits:`userSpaceOnUse`,children:(0,Y.jsx)(`path`,{d:`M 0 0 L 8 4 L 0 8`,className:e.className,fill:`none`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`})},e.markerId))}),e.map(e=>{let n=r.get(e.blocker_ticket_id),i=r.get(e.dependent_ticket_id),a=t[e.blocker_ticket_id],o=t[e.dependent_ticket_id];if(n?.parked_at||i?.parked_at)return null;let s=V6[H6(n)];return!a||!o?null:(0,Y.jsx)(Q6,{blockerRect:a,dependentRect:o,className:s.className,testId:`dependency-edge-${e.blocker_ticket_id}-${e.dependent_ticket_id}`,markerEnd:`url(#${s.markerId})`},`${e.blocker_ticket_id}:${e.dependent_ticket_id}`)}),(0,Y.jsx)($6,{preview:n,cardRects:t,ticketsById:r,overlaySize:i})]}),t8=({onSubmit:e,bundles:t,projectId:n=null,projectBranchState:r=null,tool:i,showModelSelector:a=!1,availableModels:o=[],availableSkills:s=[],initialModel:c=``,initialVariant:l=``,initialSkills:u=[],initialWorktreeBundleId:d=null,onCreateBundle:f,onDeleteBundle:p,onRefreshBundles:m,onClose:h})=>{let{t:g}=Ue(`common`),{jiraImportState:_,importFromJira:v}=dS(n),{gitHubImportState:y,importFromGitHub:b}=cS(n),x=[{key:`jira`,label:g(`jiraImportField.label`),placeholder:g(`jiraImportField.placeholder`),state:_,onImport:v},{key:`github`,label:g(`githubImportField.label`),placeholder:g(`githubImportField.placeholder`),state:y,onImport:b}];return(0,Y.jsx)(tb,{onClose:h,overlayClassName:`bg-black/60`,panelClassName:`h-[92vh] w-[96vw] max-w-6xl overflow-y-auto rounded-2xl border border-border bg-card p-4 shadow-2xl sm:p-5 lg:p-6`,renderContent:({closeButton:_})=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`absolute right-4 top-4 z-10 sm:right-5 sm:top-5 lg:right-6 lg:top-6`,children:_}),(0,Y.jsx)(sG,{heading:g(`newTicketModal.heading`),bundles:t,showModelSelector:a,availableModels:o,availableSkills:s,projectId:n,initialModel:c,initialVariant:l,initialSkills:u,initialWorktreeBundleId:d,projectBranchState:r,externalImportProviders:x,onCancel:h,onCreateBundle:f,onDeleteBundle:p,onRefreshBundles:m,titleInputId:`title`,descriptionInputId:`description`,bundleSelectId:`new-ticket-bundle`,modelSelectId:`new-model`,variantSelectId:`new-variant`,skillsSelectId:`new-skills`,showEmptyBundleOption:!0,planAction:i?{label:g(`newTicketModal.actions.plan`),onClick:async({title:t,description:n,model:r,variant:i,skills:a,worktree_bundle_id:o,external_source:s})=>{await e(t,n,`plan`,r,i,a,{worktree_bundle_id:o??void 0,...s?{external_source:s}:{}}),h()}}:void 0,primaryAction:{label:g(`newTicketModal.actions.createTicket`),variant:`subtle`,onClick:async({title:t,description:n,model:r,variant:i,skills:a,worktree_bundle_id:o,external_source:s})=>{await e(t,n,`create`,r,i,a,{worktree_bundle_id:o??void 0,...s?{external_source:s}:{}}),h()}},secondaryAction:{label:g(`newTicketModal.actions.createAndBuild`),variant:`brand`,showAdvanceIcon:!0,onClick:async({title:t,description:n,model:r,variant:i,skills:a,worktree_bundle_id:o,external_source:s})=>{await e(t,n,`build`,r,i,a,{worktree_bundle_id:o??void 0,...s?{external_source:s}:{}}),h()}}})]})})},n8=e=>{let t=Math.max(0,Date.now()-e),n=Math.floor(t/1e3);return n<60?`${n}s`:`${Math.floor(n/60)}m ${n%60}s`},r8=e=>e.status===`error`?`border-red-500/35 bg-red-500/10`:e.status===`done`?e.boardState===`fading`?`border-emerald-500/25 bg-emerald-500/10 opacity-0 transition-opacity duration-700`:`border-emerald-500/35 bg-emerald-500/10`:`border-violet-500/30 bg-card/60`,i8=({run:e})=>(0,Y.jsxs)(ub,{"data-testid":`planning-run-card-${e.id}`,className:`relative overflow-hidden rounded-xl border shadow-none ${r8(e)}`,children:[e.status===`running`&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:`absolute inset-x-0 top-0 h-1 animate-pulse bg-gradient-to-r from-violet-500/0 via-violet-300/80 to-violet-500/0`}),(0,Y.jsxs)(hb,{className:`space-y-3 p-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[e.status===`running`?(0,Y.jsx)(qN,{label:`Planning...`}):e.status===`done`?(0,Y.jsx)(qN,{label:`Done`,className:`bg-emerald-500/85 text-emerald-50`}):(0,Y.jsx)(qN,{label:`Planning failed`,className:`bg-red-500/85 text-red-50`}),(0,Y.jsx)(`span`,{className:`text-[11px] uppercase tracking-[0.16em] text-muted-foreground`,children:n8(e.submittedAt)})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm font-medium text-foreground`,children:e.description}),e.status===`done`&&e.summary&&(0,Y.jsxs)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:[`Created `,e.summary.ticketCount,` tickets, `,e.summary.dependencyCount,` dependencies`,e.summary.ticketsWithOpenQuestions>0?`, ${e.summary.ticketsWithOpenQuestions} open question${e.summary.ticketsWithOpenQuestions===1?``:`s`}`:``]}),e.status===`error`&&e.error&&(0,Y.jsx)(`p`,{className:`mt-2 text-xs text-red-200`,children:e.error})]})]})]}),a8={idle:`bg-secondary`,running:`bg-sky-400`,done:`bg-emerald-400`,error:`bg-red-400`},o8=e=>e.some(e=>e.status===`running`)?`running`:e.some(e=>e.status===`error`)?`error`:e.some(e=>e.status===`done`)?`done`:`idle`,s8=e=>{let t=Math.max(0,Date.now()-e),n=Math.floor(t/1e3);return n<60?`${n}s`:`${Math.floor(n/60)}m ${n%60}s`},c8=({status:e})=>{let{t}=Ue(`common`);return e===`running`?(0,Y.jsx)(qN,{label:t(`planningAgentSidebar.runStatus.planning`),className:`px-2.5 py-0.5 text-[11px]`}):e===`done`?(0,Y.jsx)(lb,{className:`bg-emerald-500/85 px-2.5 py-0.5 text-[11px] text-emerald-50`,children:t(`planningAgentSidebar.runStatus.done`)}):(0,Y.jsx)(lb,{className:`bg-red-500/85 px-2.5 py-0.5 text-[11px] text-red-50`,children:t(`planningAgentSidebar.runStatus.failed`)})},l8=({heading:e,runs:t})=>{let{t:n}=Ue(`common`);return t.length===0?null:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,Y.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:e}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-2.5`,children:t.map(e=>(0,Y.jsx)(ub,{className:`rounded-2xl border-border bg-card/70 shadow-none`,children:(0,Y.jsxs)(hb,{className:`space-y-2 p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm font-medium text-foreground`,children:e.description}),(0,Y.jsx)(c8,{status:e.status})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:s8(e.submittedAt)}),e.summary&&(0,Y.jsxs)(`span`,{children:[n(`planningAgentSidebar.runSummary.tickets`,{count:e.summary.ticketCount}),`, `,n(`planningAgentSidebar.runSummary.dependencies`,{count:e.summary.dependencyCount}),e.summary.ticketsWithOpenQuestions>0?`, ${n(`planningAgentSidebar.runSummary.openQuestions`,{count:e.summary.ticketsWithOpenQuestions})}`:``]})]}),e.error&&(0,Y.jsx)(`div`,{className:`rounded-xl border border-red-500/30 bg-destructive/15 px-3 py-2 text-xs text-red-200`,children:e.error})]})},e.id))})]})},u8=({projectId:e=null,state:t,bundles:n,showModelSelector:r,availableModels:i,availableSkills:a,onManageBundles:o,onToggle:s,onDescriptionChange:c,onModelChange:l,onVariantChange:u,onSkillsChange:d,onBundleChange:f,onGenerate:m})=>{let{t:h}=Ue(`common`),g=i.find(e=>e.id===t.composer.model)??null,{jiraImportState:_,importFromJira:v}=dS(t.isOpen?e:null),{gitHubImportState:y,importFromGitHub:b}=cS(t.isOpen?e:null),x=(0,p.useRef)(null),S=[{key:`jira`,label:h(`jiraImportField.label`),placeholder:h(`jiraImportField.placeholder`),state:_,onImport:v},{key:`github`,label:h(`githubImportField.label`),placeholder:h(`githubImportField.placeholder`),state:y,onImport:b}],C=(0,p.useRef)(t.isOpen),w=(0,p.useRef)(t.isOpen),T=o8(t.runs),E=t.runs.filter(e=>e.status===`running`),D=t.runs.filter(e=>e.status!==`running`),O=t.composer.description.trim().length>0,k=h(`planningAgentSidebar.actions.planTickets`);(0,p.useEffect)(()=>{if(t.isOpen&&!C.current&&(w.current=!0),t.isOpen||(w.current=!1),C.current=t.isOpen,!t.isOpen||!w.current)return;let e=window.requestAnimationFrame(()=>{let e=document.activeElement,t=e instanceof HTMLElement&&e.closest(`[data-testid="planning-agent-rail"]`)!==null;if(e instanceof HTMLElement&&e!==document.body&&e!==x.current&&!t){w.current=!1;return}x.current?.focus({preventScroll:!0}),w.current=!1});return()=>{window.cancelAnimationFrame(e)}},[t.isOpen]),(0,p.useEffect)(()=>{if(!t.isOpen)return;let e=e=>{e.key!==`Escape`||e.defaultPrevented||(e.preventDefault(),s())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[s,t.isOpen]);let A=(0,Y.jsxs)(Z,{type:`button`,"aria-label":t.isOpen?h(`planningAgentSidebar.actions.closeAriaLabel`):h(`planningAgentSidebar.actions.openAriaLabel`),"aria-pressed":t.isOpen,onClick:s,variant:`outline`,className:`relative flex h-14 w-11 flex-col items-center justify-center gap-1 p-0`,children:[(0,Y.jsx)(Vx,{className:`size-5`}),(0,Y.jsx)($M,{"aria-hidden":`true`,children:`A`}),(0,Y.jsx)(`span`,{className:`absolute top-1 right-1 h-2.5 w-2.5 rounded-full ring-2 ring-card ${a8[T]}`})]});return(0,Y.jsxs)(`aside`,{"aria-label":h(`planningAgentSidebar.ariaLabel`),className:`relative z-20 h-full w-16 shrink-0 overflow-visible border-r border-border bg-background`,children:[(0,Y.jsx)(`div`,{"data-testid":`planning-agent-rail`,className:`relative z-40 flex h-full w-16 shrink-0 flex-col items-center border-r border-border bg-background py-4`,children:t.isOpen?A:(0,Y.jsx)(Sv,{content:h(`planningAgentSidebar.tooltip`),children:A})}),(0,Y.jsx)(`div`,{"data-testid":`planning-agent-drawer`,"aria-hidden":!t.isOpen,inert:!t.isOpen||void 0,className:X(`absolute inset-y-0 left-16 z-30 w-[min(36rem,calc(100vw-5rem))] overflow-hidden transition-transform duration-200 ease-out motion-reduce:transition-none`,t.isOpen?`pointer-events-auto translate-x-0`:`pointer-events-none -translate-x-full`),children:(0,Y.jsxs)(`div`,{className:`flex h-full w-[min(36rem,calc(100vw-5rem))] flex-col border-r border-border bg-background`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-border px-6 py-5`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-semibold text-foreground`,children:h(`planningAgentSidebar.title`)}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:h(`planningAgentSidebar.description`)})]}),(0,Y.jsx)(Z,{type:`button`,"aria-label":h(`planningAgentSidebar.actions.closePanelAriaLabel`),onClick:s,variant:`ghost`,size:`icon-sm`,className:`shrink-0 text-muted-foreground hover:text-foreground`,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsx)(`div`,{"data-testid":`planning-agent-scroll-body`,className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsxs)(`div`,{className:`space-y-5 px-6 py-5`,children:[(0,Y.jsx)(rG,{providers:S,onImported:e=>{c(e.description)},inputId:`planning-agent-external-import`}),(0,Y.jsx)(_b,{label:h(`planningAgentSidebar.descriptionLabel`),htmlFor:`planning-agent-description`,className:`gap-2`,children:(0,Y.jsx)(`div`,{className:`relative`,children:(0,Y.jsx)(qC,{ref:x,projectId:e,suggestionAnchor:`caret`,id:`planning-agent-description`,"aria-label":h(`planningAgentSidebar.descriptionAriaLabel`),value:t.composer.description,onValueChange:c,rows:14,className:`min-h-[18rem] resize-y text-sm leading-6`,placeholder:h(`planningAgentSidebar.descriptionPlaceholder`)})})}),(0,Y.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(iG,{bundles:n,value:t.composer.worktreeBundleId,onChange:f,selectId:`planning-agent-bundle`,emptyLabel:h(`planningAgentSidebar.autoCreateBundle`),hideProjectRootBundles:!0,label:``})}),o&&(0,Y.jsx)(Z,{type:`button`,onClick:o,variant:`outline`,size:`sm`,className:`shrink-0 whitespace-nowrap border-sky-500/30 bg-sky-500/10 text-sky-200 hover:border-sky-400 hover:bg-sky-500/20 hover:text-sky-100`,children:h(`planningAgentSidebar.actions.manageBundles`)})]}),(0,Y.jsx)(`div`,{className:`space-y-3`,children:(0,Y.jsx)(ZW,{model:t.composer.model,variant:t.composer.variant,skills:t.composer.skills,showModelSelector:r,showSkillsSelector:r,availableModels:i,availableSkills:a,selectedModel:g,onModelChange:l,onVariantChange:u,onSkillsChange:d,modelSelectId:`planning-agent-model`,variantSelectId:`planning-agent-variant`,skillsSelectId:`planning-agent-skills`,layout:`stacked`})}),(0,Y.jsx)(`div`,{"data-testid":`planning-agent-runs`,className:`border-t border-border/80 px-0 pt-5`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(l8,{heading:h(`planningAgentSidebar.activeRuns`),runs:E}),(0,Y.jsx)(l8,{heading:h(`planningAgentSidebar.recentRuns`),runs:D})]})})]})}),(0,Y.jsx)(`div`,{className:`shrink-0 border-t border-border px-6 py-4`,children:(0,Y.jsx)(Z,{type:`button`,onClick:m,disabled:!O,className:`w-full`,children:k})})]})})]})},d8=({className:e=``})=>{let{setNodeRef:t,isOver:n}=BM({id:`trash`});return(0,Y.jsxs)(`div`,{ref:t,"data-testid":`delete-drop-zone`,className:`${e} flex min-w-[13rem] select-none items-center justify-between gap-4 rounded-2xl border px-4 py-3 backdrop-blur-sm transition-all duration-150 ${n?`scale-[1.02] border-red-400/70 bg-destructive/35 text-red-100 shadow-lg shadow-red-950/30`:`border-red-500/30 bg-background/82 text-red-200/85`}`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(lb,{variant:`destructive`,className:`text-[11px] uppercase tracking-[0.28em]`,children:`Delete`}),(0,Y.jsx)(`div`,{className:`mt-1 text-sm font-medium`,children:n?`Release to delete`:`Drop here to delete`})]}),(0,Y.jsx)(`div`,{className:`rounded-xl border p-2 transition-colors ${n?`border-red-400/60 bg-red-500/20`:`border-red-500/20 bg-background/60`}`,children:(0,Y.jsx)(vb,{className:`h-5 w-5 transition-colors ${n?`text-red-100`:`text-red-300/70`}`})})]})},f8=(e,t)=>J(q(`/ticket-dependencies`,e),{signal:t}),p8=(e,t)=>J(q(`/ticket-dependencies`,e),{method:`POST`,body:t,fallbackErrorMessage:`Unable to create the dependency right now.`}),m8=(e,t,n)=>Ze(q(`/ticket-dependencies/${t}/${n}`,e),{method:`DELETE`,fallbackErrorMessage:`Unable to remove the dependency right now.`}),h8=(e,t)=>{let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(!n||!i||n.left!==i.left||n.top!==i.top||n.width!==i.width||n.height!==i.height)return!1}return!0},g8=(e,t)=>e===t?!0:!e||!t?!1:e.projectId===t.projectId&&e.blockerTicketId===t.blockerTicketId&&e.hoveredTicketId===t.hoveredTicketId&&e.pointer.x===t.pointer.x&&e.pointer.y===t.pointer.y,_8=({activeProjectId:e,tickets:t,dependencies:n,setDependencies:r,activeTicket:i,activeOverlayNode:a,dragOffset:o})=>{let[s,c]=(0,p.useState)({}),[l,u]=(0,p.useState)({width:0,height:0}),[d,f]=(0,p.useState)(null),[m,h]=(0,p.useState)(null),g=(0,p.useRef)(null),_=(0,p.useRef)(null),v=(0,p.useRef)(null),y=(0,p.useRef)(new Map),b=(0,p.useRef)({}),x=(0,p.useRef)(null),S=(0,p.useRef)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(null),T=(0,p.useRef)(null),E=(0,p.useRef)(null),D=(0,p.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]);(0,p.useEffect)(()=>{w.current=m},[m]),(0,p.useLayoutEffect)(()=>{if(!i||!a||!_.current)return;let e=window.requestAnimationFrame(()=>{let e=_.current?.getBoundingClientRect(),t=a.getBoundingClientRect();e&&f({ticketId:i.id,rect:{left:t.left-e.left,top:t.top-e.top,width:t.width,height:t.height}})});return()=>{window.cancelAnimationFrame(e)}},[a,i,o.x,o.y]);let O=(0,p.useCallback)(()=>{x.current===null&&(x.current=window.requestAnimationFrame(()=>{x.current=null;let e=_.current;if(!e){v.current=null,b.current={},c({}),u({width:0,height:0});return}let t=e.getBoundingClientRect(),n={};v.current={left:t.left,top:t.top},u(e=>e.width===t.width&&e.height===t.height?e:{width:t.width,height:t.height});for(let[e,r]of y.current){let i=r.getBoundingClientRect();n[e]={left:i.left-t.left,top:i.top-t.top,width:i.width,height:i.height}}b.current=n,c(e=>h8(e,n)?e:n)}))},[]);(0,p.useEffect)(()=>{let e=g.current;if(!e)return;let t=()=>{O()};return e.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t),()=>{e.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t)}},[O]),(0,p.useEffect)(()=>{if(typeof ResizeObserver!=`function`)return;let e=new ResizeObserver(()=>{O()});S.current=e;for(let t of y.current.values())e.observe(t);return()=>{e.disconnect(),S.current===e&&(S.current=null)}},[O]),(0,p.useEffect)(()=>{let e=g.current,t=_.current;if(!e&&!t)return;let n=new ResizeObserver(()=>{O()});return e&&n.observe(e),t&&t!==e&&n.observe(t),()=>{n.disconnect()}},[O]),(0,p.useEffect)(()=>(O(),()=>{x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null)}),[n,O,t]);let k=(0,p.useCallback)((e,t)=>{let n=y.current.get(e);if(t){if(n===t)return;y.current.set(e,t),S.current?.observe(t)}else{if(!n)return;y.current.delete(e),S.current?.unobserve(n)}O()},[O]),A=(0,p.useCallback)(e=>{g8(w.current,e)||(w.current=e,h(e))},[]),j=(0,p.useCallback)(()=>{T.current!==null&&(window.cancelAnimationFrame(T.current),T.current=null),E.current=null},[]),M=(0,p.useCallback)(e=>{E.current=e,T.current===null&&(T.current=window.requestAnimationFrame(()=>{T.current=null;let e=E.current;E.current=null,A(e)}))},[A]),N=(0,p.useCallback)((e,t)=>{let n=v.current;if(!n&&_.current){let e=_.current.getBoundingClientRect();n={left:e.left,top:e.top},v.current=n}return n?{x:e-n.left,y:t-n.top}:{x:e,y:t}},[]),P=(0,p.useCallback)((e,t,n)=>{for(let[r,i]of Object.entries(b.current))if(r!==n&&e>=i.left&&e<=i.left+i.width&&t>=i.top&&t<=i.top+i.height)return r;return null},[]),F=(0,p.useCallback)(async t=>{if(e)try{await m8(e,t.blocker_ticket_id,t.dependent_ticket_id),r(e=>jN(e,t.blocker_ticket_id,t.dependent_ticket_id))}catch(e){Q.error(e instanceof Ke?e.message:`Unable to remove the dependency right now.`,{id:`board-dependency-error`})}},[e,r]),I=(0,p.useCallback)((t,i)=>{if(!e)return;i.preventDefault(),C.current?.();let a=(n,r,i=!1)=>{let a=N(n,r),o={projectId:e,blockerTicketId:t,hoveredTicketId:P(a.x,a.y,t),pointer:a};if(i){j(),A(o);return}M(o)};a(i.clientX,i.clientY,!0);let o=e=>{a(e.clientX,e.clientY)},s=async i=>{let a=N(i.clientX,i.clientY),o=P(a.x,a.y,t),s=o?NN(n,t,o):null;if(C.current?.(),C.current=null,A(null),!(!o||!s)){if(!s.valid){Q.error(PN(s.reason),{id:`board-dependency-error`});return}try{let n=await p8(e,{blocker_ticket_id:t,dependent_ticket_id:o});r(e=>AN(e,n))}catch(e){Q.error(e instanceof Ke?e.message:`Unable to create the dependency right now.`,{id:`board-dependency-error`})}}};C.current=()=>{window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),j()},window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s,{once:!0})},[e,j,n,P,N,M,r,A]);(0,p.useEffect)(()=>{C.current?.(),C.current=null,j(),w.current=null},[e,j]),(0,p.useEffect)(()=>()=>{C.current?.(),T.current!==null&&(window.cancelAnimationFrame(T.current),T.current=null)},[]);let L=(0,p.useMemo)(()=>{let r=m?.blockerTicketId;if(!r||m.projectId!==e||!D.has(r))return null;let i=new Map;for(let e of t){if(e.id===r){i.set(e.id,`source`);continue}let t=NN(n,r,e.id);i.set(e.id,t.valid?`valid`:`idle`)}return i},[e,n,m,D,t]),R=(0,p.useCallback)(e=>{if(!L||!m)return`idle`;let t=L.get(e)??`idle`;return e===m.hoveredTicketId&&t===`idle`?`invalid`:t},[L,m]),z=(0,p.useMemo)(()=>!m||m.projectId!==e||!D.has(m.blockerTicketId)?null:{blockerTicketId:m.blockerTicketId,hoveredTicketId:m.hoveredTicketId,pointer:m.pointer},[e,m,D]);return{boardViewportRef:g,boardContentRef:_,registerTicketNode:k,measuredCardRects:(0,p.useMemo)(()=>{if(!i)return s;let e=s[i.id];return e?d?.ticketId===i.id?{...s,[i.id]:d.rect}:{...s,[i.id]:{...e,left:e.left+o.x,top:e.top+o.y}}:s},[d,i,s,o.x,o.y]),overlayPreview:z,overlaySize:l,getDependencyTargetState:R,handleDependencyStart:I,handleDeleteDependency:F}},v8=e=>{if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.id==`string`?t.id:``,r=typeof t.name==`string`?t.name:``,i=typeof t.command==`string`?t.command:``,a=typeof t.cwd==`string`?t.cwd:``,o=t.runner===`vitest`||t.runner===`jest`||t.runner===`unknown`?t.runner:`auto`;return n.trim()===``||r.trim()===``&&i.trim()===``&&a.trim()===``?[]:[{id:n,name:r,command:i,cwd:a,runner:o}]}):[]}catch{return[]}},y8=`[data-terminal-pane="true"]`,b8=e=>{if(!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase();return t===`input`||t===`textarea`||e.isContentEditable},x8=e=>e instanceof HTMLElement?e.closest(y8)!==null:!1,S8=e=>b8(e)||x8(e),C8=(e,t={})=>{let{isBlocked:n}=t;(0,p.useEffect)(()=>{let t=t=>{if(t.defaultPrevented||t.repeat)return;let r=e.find(e=>!e.disabled&&e.key.toLowerCase()===t.key.toLowerCase()&&(e.ctrlKey??!1)===t.ctrlKey&&(e.altKey??!1)===t.altKey&&(e.metaKey??!1)===t.metaKey&&(e.shiftKey===void 0||e.shiftKey===t.shiftKey));r&&(n?.(document.activeElement)||(t.preventDefault(),r.onKeyDown()))};return window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`keydown`,t)}},[e,n])},w8=e=>({...e,messages:void 0,agent_log:void 0,streaming_response:void 0}),T8=(e,t)=>e?e.state!==t.state||e.parked_at!==t.parked_at||e.worktree_bundle_id!==t.worktree_bundle_id:!0,E8=(e,t)=>{if(!e)return t;let n=t.worktree_bundle_id!==null&&e.worktree_bundle_id===t.worktree_bundle_id,r=t.bundle??(n&&e.bundle?.id===t.worktree_bundle_id?e.bundle:null),i=t.bundle_execution_position??(n?e.bundle_execution_position??null:null);return{...e,...t,bundle:r,bundle_execution_position:i}},D8=(e,t)=>{let n=e=>gN(t)?gN(e):e.state===t.state&&!gN(e),r=e.findIndex(e=>n(e));if(r===-1)return[...e,t];let i=[...e];return i.splice(r,0,t),i},O8=(e,t)=>{let n=e.find(e=>e.id===t.id);return[n&&n.pull_request!==void 0&&t.pull_request===void 0?{...n,...t,pull_request:n.pull_request}:t,...e.filter(e=>e.id!==t.id)]},k8=(e,t)=>{let n=e.find(e=>e.id===t.id);if(!n)return[...e,t];let r=E8(n,t);return e.map(e=>e.id===t.id?r:e)},A8=(e,t)=>{let n=E8(e.find(e=>e.id===t.id),t);return D8(M8(e,t.id),n)},j8=(e,t)=>{if(e.length===0)return[...t];let n=[...e];for(let e of t)n=T8(n.find(t=>t.id===e.id),e)?A8(n,e):k8(n,e);let r=new Set(t.map(e=>e.id));return n.filter(e=>r.has(e.id))},M8=(e,t)=>e.filter(e=>e.id!==t),N8=(e,t,n,r={},i={})=>{let a=e.findIndex(e=>e.id===t);if(a===-1)return e;let o={...e[a],state:n,...r},s=M8(e,t);if(i.preferredIndex!==void 0){let e=Math.max(0,Math.min(i.preferredIndex,s.length));return s.splice(e,0,o),s}return D8(s,o)},P8=async(e,t)=>{`Notification`in window&&Notification.permission!==`denied`&&(Notification.permission===`default`&&await Notification.requestPermission(),Notification.permission===`granted`&&new Notification(e,{body:t}))},F8=(0,p.createContext)(W0),I8=()=>(0,p.useContext)(F8),L8=(0,p.createContext)(null),R8=15*1e3,z8=1e3,B8=async e=>P8(`Ticket done`,e),V8=e=>w8(e),H8=(e,t)=>t===`running`&&e.agent_status===`done`?`Finished ${e.state} for "${e.title}"`:t===`running`&&e.agent_status===`error`?`Failed ${e.state} for "${e.title}"`:t!==`running`&&e.agent_status===`running`?`Running ${e.state} for "${e.title}"`:null,U8=({activeProjectId:e,refreshKey:t=0,onLoadedProjectIdChange:n,onProjectUsageChange:r,onBundlesChange:i,onBundlesLoadingChange:a,children:o})=>{let s=I8(),[c,l]=(0,p.useState)([]),[u,d]=(0,p.useState)([]),[f,m]=(0,p.useState)([]),[h,g]=(0,p.useState)(null),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(null),[x,S]=(0,p.useState)(null),[C,w]=(0,p.useState)(null),T=(0,p.useRef)(0),E=(0,p.useRef)(0),D=(0,p.useRef)(new Map),O=(0,p.useRef)(new Map),k=(0,p.useRef)([]),A=(0,p.useRef)(e),j=(0,p.useRef)(new Map),M=(0,p.useRef)(new Map),N=(0,p.useRef)(new Map),P=(0,p.useCallback)((e,t)=>{let n=M.current.get(t.id);return!n||!e||t.state===n?t:e},[]),F=(0,p.useCallback)((e,t)=>{if(e.length===0)return;let n=new Map(M.current);for(let r of e)n.set(r,t);M.current=n},[]),I=(0,p.useCallback)(e=>{if(e.length===0||M.current.size===0)return;let t=new Map(M.current);for(let n of e)t.delete(n);M.current=t},[]),L=(0,p.useCallback)((e,t)=>{if(e.length===0)return;let n=new Map(N.current);for(let r of e)n.set(r,t);N.current=n},[]),R=(0,p.useCallback)(e=>{if(e.length===0||N.current.size===0)return;let t=new Map(N.current);for(let n of e)t.delete(n);N.current=t},[]),z=(0,p.useCallback)((e,t)=>{if(j.current.has(t.id))return null;let n=P(e,t);return N.current.has(t.id)?{...n,parked_at:N.current.get(t.id)??null}:n},[P]),B=(0,p.useCallback)((e,t)=>{if(j.current.size===0&&M.current.size===0&&N.current.size===0)return t;let n=new Map(e.map(e=>[e.id,e]));return t.flatMap(e=>{let t=z(n.get(e.id),e);return t?[t]:[]})},[z]),V=(0,p.useCallback)(async(e,t)=>{let n=await wt(e,t,{detail:`board`});return Array.isArray(n)?(!t?.aborted&&A.current===e&&l(e=>j8(e,B(e,n).map(V8))),n):null},[B]),H=(0,p.useCallback)(async(e,t)=>{await V(e,t)},[V]),ee=(0,p.useCallback)(async(e,t)=>{let n=++E.current,r=await Tt(e,t);if(!Array.isArray(r)||t?.aborted||A.current!==e||E.current!==n)return;let i=new Map(r.map(e=>[e.id,e]));l(e=>e.map(e=>{let t=i.get(e.id);return t?{...e,diff_stats:t.diff_stats??null,is_stale:t.is_stale}:e}))},[]),U=(0,p.useCallback)(e=>e.some(e=>e.is_stale===void 0),[]),te=(0,p.useCallback)(async e=>{let t=A.current;if(!t)return null;try{let n=await Et(e,t);if(A.current!==t)return null;let r=O.current.get(n.id),i=z(r,n);if(!i)return null;let a=V8(i),o=T8(r,a);return l(e=>o?A8(e,a):k8(e,a)),n}catch{return null}},[z]),ne=(0,p.useCallback)(async t=>{if(!e){m([]);return}m(await rt(e,t))},[e]),re=(0,p.useMemo)(()=>new Map(c.map(e=>[e.id,e])),[c]),ie=(0,p.useMemo)(()=>{let e=c.filter(e=>e.agent_status===`running`),t=new Set(e.map(e=>e.worktree_bundle_id).filter(e=>typeof e==`string`&&e.trim().length>0));return{total_running:e.length,running_plan_count:e.filter(e=>e.state===`plan`).length,running_build_count:e.filter(e=>e.state===`build`).length,running_review_count:e.filter(e=>e.state===`review`).length,active_bundle_count:t.size,latest_message:C}},[C,c]);(0,p.useEffect)(()=>{if(O.current=re,k.current.length===0)return;let e=[],t=[];for(let n of k.current){let r=re.get(n.blocker_ticket_id),i=re.get(n.dependent_ticket_id);r&&i&&r.project_id===A.current&&i.project_id===A.current?e.push(n):t.push(n)}k.current=t,e.length>0&&d(t=>e.reduce((e,t)=>AN(e,t),t))},[re]),(0,p.useEffect)(()=>{A.current=e,j.current.clear(),k.current=[],M.current.clear(),N.current.clear(),w(null),g(null),D.current.clear()},[e]),(0,p.useEffect)(()=>{n?.(y?null:_)},[_,y,n]),(0,p.useEffect)(()=>{if(i){if(!e){i(null,[]);return}if(_!==e){i(e,[]);return}i(e,f)}},[e,f,_,i]),(0,p.useEffect)(()=>{if(a){if(!e){a(null,!1);return}a(e,x===e)}},[e,x,a]),(0,p.useEffect)(()=>{let t=new AbortController,n=++T.current,r=null,i=async()=>{try{if(!e){l([]),d([]),m([]),v(null),b(null);return}l([]),d([]),m([]),v(null),b(e),S(e);let[n,i,a]=await Promise.allSettled([V(e,t.signal),f8(e,t.signal),rt(e,t.signal)]);if(t.signal.aborted)return;n.status!==`fulfilled`&&!Ye(n.reason)&&l([]),i.status===`fulfilled`?d(i.value):Ye(i.reason)||d([]),a.status===`fulfilled`?m(a.value):Ye(a.reason)||m([]),v(n.status===`fulfilled`&&i.status===`fulfilled`&&a.status===`fulfilled`?e:null),n.status===`fulfilled`&&n.value!==null&&U(n.value)&&(r=window.setTimeout(()=>{t.signal.aborted||ee(e,t.signal)},z8))}finally{!t.signal.aborted&&T.current===n&&(b(null),S(null))}},a=t=>{t.project_id===e&&(g(t),!j.current.has(t.id)&&(t.bundle&&m(e=>O8(e,t.bundle)),l(e=>A8(e,V8(t)))))},o=t=>{if(t.project_id===e&&g(t),l(n=>{if(t.project_id!==e)return M8(n,t.id);let r=n.find(e=>e.id===t.id),i=z(r,t);if(!i)return n;let a=V8(i);return T8(r,a)?A8(n,a):k8(n,a)}),t.project_id!==e){d(e=>kN(e,t.id));return}t.bundle&&m(e=>O8(e,t.bundle))},c=({id:e})=>{j.current.delete(e),N.current.delete(e),M.current.delete(e),l(t=>M8(t,e)),d(t=>kN(t,e))},u=e=>{if(!e)return;let t=O.current.get(e.blocker_ticket_id),n=O.current.get(e.dependent_ticket_id);if(!t||!n){k.current.push(e);return}t.project_id!==A.current||n.project_id!==A.current||d(t=>AN(t,e))},f=e=>{d(t=>jN(t,e.blocker_ticket_id,e.dependent_ticket_id))};return i(),s.on(`ticket:created`,a),s.on(`ticket:updated`,o),s.on(`ticket:deleted`,c),s.on(`ticket-dependency:created`,u),s.on(`ticket-dependency:deleted`,f),()=>{t.abort(),r!==null&&window.clearTimeout(r),s.off(`ticket:created`,a),s.off(`ticket:updated`,o),s.off(`ticket:deleted`,c),s.off(`ticket-dependency:created`,u),s.off(`ticket-dependency:deleted`,f)}},[e,ee,t,U,V,z,s]),(0,p.useEffect)(()=>{if(!e)return;let t=new AbortController,n=()=>{document.visibilityState===`visible`&&Promise.allSettled([V(e,t.signal),ne(t.signal)]).then(n=>{n[0]?.status===`fulfilled`&&n[0].value!==null&&U(n[0].value)&&ee(e,t.signal)}).catch(()=>{})},r=window.setInterval(n,R8),i=n3(n);return()=>{t.abort(),window.clearInterval(r),i()}},[e,ne,ee,U,V]),(0,p.useEffect)(()=>{if(!e||!r||_!==e)return;let t=c.filter(e=>{let t=e.bundle?.branch??e.branch;return typeof t==`string`&&t.trim()!==``}).length;r({projectId:e,ticketCount:c.length,worktreeCount:t,repoPathLocked:c.length>0||t>0||f.length>0})},[e,f.length,_,r,c]),(0,p.useEffect)(()=>{for(let e of c){let t=D.current.get(e.id),n=H8(e,t);n&&w(n),t!==void 0&&t===`running`&&e.agent_status===`done`&&(e.state===`plan`||e.state===`build`||e.state===`review`)&&B8(e.title),D.current.set(e.id,e.agent_status)}},[c]);let ae=(0,p.useCallback)(()=>{g(null)},[]),oe=(0,p.useMemo)(()=>({tickets:c,setTickets:l,dependencies:u,setDependencies:d,bundles:f,setBundles:m,latestDetailedTicketUpdate:h,clearLatestDetailedTicketUpdate:ae,loadedProjectId:_,loadingProjectId:y,activeProjectIdRef:A,pendingDeletedTicketsRef:j,pendingOptimisticMovesRef:M,pendingParkedTicketsRef:N,refreshTickets:H,requestSingleTicketRefresh:te,refreshBundles:ne,resolvePendingTicket:z,resolvePendingTickets:B,markPendingOptimisticMoves:F,clearPendingOptimisticMoves:I,markPendingParkedTickets:L,clearPendingParkedTickets:R,liveActivity:ie}),[f,ae,I,R,u,ie,_,h,y,F,L,ne,H,te,z,B,c]);return(0,Y.jsx)(L8.Provider,{value:oe,children:o})},W8=()=>{let e=(0,p.useContext)(L8);if(!e)throw Error(`useProjectWorkspace must be used inside ProjectWorkspaceProvider`);return e},G8=(0,p.lazy)(()=>bU(()=>import(`./TestsDialog-DR6zI8VO.js`).then(e=>({default:e.TestsDialog})),__vite__mapDeps([19,3]))),K8=`archon.last-model-selection`,q8=`archon.last-variant-selection`,J8=`archon.last-skills-selection`,Y8=()=>{try{let e=window.localStorage.getItem(J8),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}},X8=e=>[e.title,e.description,e.bundle?.name??``,e.bundle?.branch??``,e.branch??``].map(e=>e.toLowerCase()),Z8=(e,t)=>{let n=e.bundle_execution_position??2**53-1,r=t.bundle_execution_position??2**53-1;if(n!==r)return n-r;if(e.created_at!==t.created_at)return e.created_at.localeCompare(t.created_at);let i=e.title.localeCompare(t.title,void 0,{sensitivity:`base`});return i===0?e.id.localeCompare(t.id):i},Q8=(e,t)=>t?{...e,...t,messages:t.messages===void 0?e.messages:t.messages,agent_log:t.agent_log===void 0?e.agent_log:t.agent_log,streaming_response:t.streaming_response===void 0?e.streaming_response:t.streaming_response}:e,$8=(e,t)=>{let n=e.toLowerCase().trim().split(/\s+/).filter(Boolean);if(n.length===0)return!0;let r=X8(t);return n.every(e=>r.some(t=>t.includes(e)))},e5=[`plan`,`build`,`review`],t5=`done`,n5=()=>({build:!1,stopBuild:!1,resumeBuild:!1,review:!1,undoReview:!1,run:!1,stop:!1,followUp:!1,bundleRefresh:!1}),r5=({bundleId:e,activeRunContextKey:t,isProjectRootRunActive:n})=>n?!0:t!==null&&t!==e,are=(e,t)=>{if(!e)return null;let n=t.find(t=>t.id===e.ticket_id);return n?mN(n):e.ticket_id},ore=()=>({description:``,model:window.localStorage.getItem(K8)??``,variant:window.localStorage.getItem(q8)??``,skills:Y8(),worktreeBundleId:``}),i5=()=>({isOpen:!1,composer:ore(),runs:[]}),sre=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`planning-run-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,cre=e=>({ticketCount:e.tickets.length,dependencyCount:e.dependencies.length,ticketsWithOpenQuestions:e.tickets.filter(e=>(e.planning_context?.open_questions.length??0)>0).length,ticketTitles:e.tickets.map(e=>e.title),ticketIds:e.tickets.map(e=>e.id)}),a5=(e,t,n)=>e.map(e=>e.id===t?n(e):e),o5=(e,t,n)=>{e?window.localStorage.setItem(K8,e):window.localStorage.removeItem(K8),t?window.localStorage.setItem(q8,t):window.localStorage.removeItem(q8),n.length>0?window.localStorage.setItem(J8,JSON.stringify(n)):window.localStorage.removeItem(J8)},s5=(e,t={})=>uy(e,t),lre=()=>({model:window.localStorage.getItem(K8)??``,variant:window.localStorage.getItem(q8)??``,skills:Y8()}),c5=(e,t)=>{let n=M8(e,t.ticket.id),r=Math.max(0,Math.min(t.index,n.length));return n.splice(r,0,t.ticket),n},l5=e=>e.tickets.length>0&&e.tickets.every(e=>CN(e,`trash`)),ure=e=>e.tickets.length>0&&e.tickets.every(e=>CN(e,t5)),dre=e=>e.column===t5&&e.tickets.length>0&&e.tickets.every(e=>e.state!==`plan`),u5=(e,t,n,r)=>n||t!==null&&t!==mN(e)?r:LN(e),d5=(e,t)=>t===`build`?{agent_status:null,agent_log:null,streaming_response:null,build_completed_at:null,planning_context:e.planning_context?{...e.planning_context,open_questions:[]}:null}:t===`review`?{agent_status:null,agent_log:null,streaming_response:null}:{},fre=(e,t)=>e===`plan`&&t===`build`?`build`:e===`build`&&t===`review`?`review`:e===`review`&&t===`build`?`undoReview`:null,pre=(e,t,n)=>t===`review`&&n===`build`?{}:d5(e,n),mre=({activeProjectId:e,activeProject:t=null,activeProjectBranchState:n=null,activeRun:r,activeTool:i,onPreviewReviewCapabilityChange:a,onRunStopped:o,onRunStatusChange:s,onViewSourceSpec:c,refreshKey:l=0})=>{let{t:u}=Ue(`common`),d=NA(MA(Fj,{activationConstraint:{distance:5}})),{tickets:f,setTickets:m,dependencies:h,setDependencies:g,bundles:_,setBundles:v,latestDetailedTicketUpdate:y,clearLatestDetailedTicketUpdate:b,loadedProjectId:x,loadingProjectId:S,activeProjectIdRef:C,pendingDeletedTicketsRef:w,requestSingleTicketRefresh:T,refreshBundles:E,resolvePendingTicket:D,markPendingOptimisticMoves:O,clearPendingOptimisticMoves:k,markPendingParkedTickets:A,clearPendingParkedTickets:j}=W8(),[M,N]=(0,p.useState)(null),[P,F]=(0,p.useState)(null),[I,L]=(0,p.useState)(null),[R,z]=(0,p.useState)({x:0,y:0}),[B,V]=(0,p.useState)(null),[H,ee]=(0,p.useState)(!1),[U,te]=(0,p.useState)([]),[ne,re]=(0,p.useState)([]),[ie,ae]=(0,p.useState)(!1),[oe,W]=(0,p.useState)({}),[se,ce]=(0,p.useState)(!1),[le,ue]=(0,p.useState)(!1),[de,fe]=(0,p.useState)(null),[pe,me]=(0,p.useState)(null),[he,ge]=(0,p.useState)(null),[_e,ve]=(0,p.useState)(null),[ye,G]=(0,p.useState)(null),[be,xe]=(0,p.useState)(null),[Se,Ce]=(0,p.useState)(null),[we,Te]=(0,p.useState)(null),[Ee,De]=(0,p.useState)(null),[Oe,ke]=(0,p.useState)(null),[Ae,je]=(0,p.useState)(!1),[Me,Ne]=(0,p.useState)(n5()),[Pe,Fe]=(0,p.useState)(0),[Ie,Le]=(0,p.useState)(``),[Re,ze]=(0,p.useState)(!1),Be=i===`opencode`||he?.tool===`opencode`||!!be?.tickets.some(e=>e.tool===`opencode`),Ve=i===`opencode`&&U.length>0,K=hP(he,i)===`opencode`&&U.length>0,He=!!be?.tickets.some(e=>hP(e,i)===`opencode`)&&U.length>0,We=(0,p.useRef)(e),Ge=(0,p.useRef)(null),qe=(0,p.useRef)(null),[Je,q]=(0,p.useState)(null),Xe=f.find(e=>e.is_running)??null,Ze=Xe?mN(Xe):null,J=r?.context_key??null,Qe=r?.kind===`ticket`?are(r,f)??Ze:Ze,$e=r?.kind===`project`,et=Qe??Je,tt=(0,p.useCallback)(e=>r5({bundleId:e,activeRunContextKey:et,isProjectRootRunActive:$e}),[et,$e]),nt=M!==null&&CN(M,`trash`)||P!==null&&l5(P),rt=S===e,st=(0,p.useMemo)(()=>v8(t?.test_commands??null),[t?.test_commands]),ct=(0,p.useCallback)(async e=>P8(u(`board.notifications.planningDoneTitle`),u(`board.notifications.planningDoneBody`,{count:e})),[u]),lt=st.length>0,mt=(0,p.useMemo)(()=>new Map(f.map(e=>[e.id,e])),[f]);(0,p.useEffect)(()=>{q(null)},[e]),(0,p.useEffect)(()=>{Je!==null&&($e||Qe!==null)&&q(null)},[Qe,$e,Je]),(0,p.useEffect)(()=>{if(!pe){ge(null);return}let e=mt.get(pe)??null;e&&ge(t=>!t||t.id!==pe?e:Q8(t,e))},[pe,mt]),(0,p.useEffect)(()=>{y&&(ge(e=>!e||e.id!==y.id?e:Q8(e,y)),xe(e=>{if(!e)return e;let t=y.worktree_bundle_id;if(!t||e.bundle.id!==t)return e;let n=e.tickets.some(e=>e.id===y.id)?e.tickets.map(e=>e.id===y.id?Q8(e,y):e):[...e.tickets,y];return{...e,tickets:n}}))},[y]),(0,p.useEffect)(()=>{y===null||pe!==null||_e!==null||b()},[b,y,_e,pe]);let ht=(0,p.useCallback)(async e=>{let t=await T(e);if(!t)return null;let n=mt.get(e),r=n?Q8(t,n):t;return ge(t=>t&&t.id!==e||pe&&pe!==e?t:r),r},[T,pe,mt]),gt=(0,p.useCallback)(e=>{ge(e),me(e.id),ht(e.id)},[ht]),bt=(0,p.useMemo)(()=>new Map(_.map(e=>[e.id,e])),[_]),xt=(0,p.useMemo)(()=>{if(!be)return null;let e=be.bundle.id,t=y?.worktree_bundle_id===e?y:null,n=f.filter(t=>t.worktree_bundle_id===e),r=new Map(n.map(e=>[e.id,e])),i=be.tickets.filter(e=>!w.current.has(e.id)).map(e=>t&&e.id===t.id?Q8(e,t):e);t&&!i.some(e=>e.id===t.id)&&!w.current.has(t.id)&&i.push(t);let a=i.map(e=>Q8(e,r.get(e.id)));for(let e of n)a.some(t=>t.id===e.id)||a.push(e);a.sort(Z8);let o=be.execution_order_ticket_ids??[],s=a.map(e=>e.id),c=[...o,...s].filter((e,t,n)=>s.includes(e)&&n.indexOf(e)===t),l=n.some(e=>e.can_re_review!==void 0||e.has_completed_review!==void 0||e.has_follow_up_since_last_review!==void 0),u=n.some(e=>e.agent_status===`running`),d={has_completed_review:n.some(e=>e.has_completed_review===!0),has_follow_up_since_last_review:n.some(e=>e.has_follow_up_since_last_review===!0),can_re_review:!u&&n.some(e=>e.can_re_review===!0)},p=cy(a),m=a.find(e=>e.id===be.review_owner_ticket_id&&e.state===`review`)??a.find(e=>e.state===`review`)??null,h=uy(a,{targetTicketId:be.target_ticket_id,reviewOwnerTicketId:m?.id??be.review_owner_ticket_id,latestSessionTicketId:p?.id??be.latest_session_ticket_id});return{...be,bundle:bt.get(e)??be.bundle,tickets:a,execution_order_ticket_ids:c,latest_session_ticket_id:p?.id??null,latest_session_id:p?.session_id??null,review_owner_ticket_id:m?.id??null,target_ticket_id:h?.id??null,has_completed_review:l?d.has_completed_review:be.has_completed_review,has_follow_up_since_last_review:l?d.has_follow_up_since_last_review:be.has_follow_up_since_last_review,can_re_review:l?d.can_re_review:be.can_re_review}},[bt,y,w,be,f]),St=(0,p.useMemo)(()=>f.filter(e=>Re&&vN(e)?!1:$8(Ie,e)),[Re,Ie,f]),Ct=(0,p.useMemo)(()=>St.filter(e=>gN(e)),[St]),wt=(0,p.useMemo)(()=>dy(Ct,_,t5),[_,Ct]),{boardViewportRef:Tt,boardContentRef:Et,registerTicketNode:kt,measuredCardRects:jt,overlayPreview:Mt,overlaySize:Nt,getDependencyTargetState:Pt,handleDependencyStart:Ft,handleDeleteDependency:It}=_8({activeProjectId:e,tickets:f,dependencies:h,setDependencies:g,activeTicket:M,activeOverlayNode:I,dragOffset:R}),Lt=e?oe[e]??i5():i5(),tn=Lt.composer.worktreeBundleId&&_.some(e=>e.id===Lt.composer.worktreeBundleId)?Lt.composer.worktreeBundleId:``,nn=tn===Lt.composer.worktreeBundleId?Lt:{...Lt,composer:{...Lt.composer,worktreeBundleId:tn}},rn=lre(),an=!!t?.run_ide?.trim(),on=nn.runs.filter(e=>e.boardVisible),sn=(0,p.useCallback)((e,t,n=f)=>{let r=dy(n,_,t).find(t=>t.kind===`bundle`&&t.group.bundle.id===e);return r?.kind===`bundle`?r.group:null},[_,f]),cn=(0,p.useCallback)(e=>(0,Y.jsx)(c2,{ticket:e,allTickets:f,dependencies:h,bundles:_,projectMemoryEnabled:!!t?.memory_enabled,overlay:!0,showModelSelector:hP(e,i)===`opencode`&&U.length>0,availableModels:U,runDisabled:!0,hideBundleScopedControls:!0}),[t?.memory_enabled,i,U,_,h,f]),ln=on.length>0?(0,Y.jsx)(`div`,{className:`mb-0.5 flex flex-col gap-2.5`,children:on.map(e=>(0,Y.jsx)(i8,{run:e},e.id))}):null,un=(0,p.useCallback)(t=>ly(t)?t.project_id===e?an:!!t.has_run_ide:!1,[an,e]),dn=(0,p.useCallback)(e=>!!e.project_id&&!!(e.bundle?.branch??e.branch)&&ly(e),[]),fn=(0,p.useCallback)(e=>{let t=e?.tickets.find(t=>t.id===e.target_ticket_id)??e?.tickets.find(e=>e.has_worktree)??null;return t?un(t):!1},[un]),pn=(0,p.useCallback)(e=>{let t=f.filter(t=>t.worktree_bundle_id===e).sort(Z8);return be?.bundle.id===e?s5(be.tickets.map(e=>t.find(t=>t.id===e.id)??e).sort(Z8),{targetTicketId:be.target_ticket_id,reviewOwnerTicketId:be.review_owner_ticket_id,latestSessionTicketId:be.latest_session_ticket_id}):s5(t)},[be,f]),mn=(0,p.useCallback)((e,t)=>{W(n=>({...n,[e]:t(n[e]??i5())}))},[]);(0,p.useEffect)(()=>{ce(!1),ue(!1),Ce(null),ke(null),We.current!==e&&(Ge.current=e),e||(Ge.current=null,Le(``)),We.current=e},[e,l]),(0,p.useLayoutEffect)(()=>{!e||x!==e||Ge.current===e&&(Ge.current=null,Le(``))},[e,x]),(0,p.useEffect)(()=>{if(!Be){re([]);return}let t=new AbortController;return(async()=>{try{te(await Wn(`opencode`,t.signal))}catch(e){Ye(e)||te(e=>e)}})(),(async()=>{try{re(await eN(`opencode`,t.signal,e))}catch(e){Ye(e)||re([])}})(),()=>{t.abort()}},[e,Be]);let hn=({active:e})=>{ae(!1),L(null),z({x:0,y:0});let t=fy(String(e.id));if(t){F(sn(t.bundleId,t.column)),N(null);return}F(null),N(f.find(t=>t.id===e.id)??null)},gn=()=>{ae(!1),L(null),z({x:0,y:0}),N(null),F(null)},_n=(0,p.useCallback)(e=>{m(t=>e.reduce((e,t)=>A8(e,t),t))},[m]),vn=(0,p.useCallback)((e,t)=>{if(e.length===0)return;let n=e[0]?.state;n&&m(r=>e.reduce((e,r)=>N8(e,r.id,t,pre(r,n,t)),r))},[m]),yn=(0,p.useCallback)((e,t=f)=>!e.worktree_bundle_id||!e.project_id||e.state!==`build`?[]:t.filter(t=>t.project_id===e.project_id&&t.worktree_bundle_id===e.worktree_bundle_id&&t.state===`build`&&t.parked_at===null).sort(Z8),[f]),bn=async({active:e,over:t})=>{let n=fy(String(e.id)),r=f.find(t=>t.id===e.id),i=n?sn(n.bundleId,n.column):null,a=t?.id===`trash`&&(r!==void 0&&CN(r,`trash`)||i!==null&&l5(i)),o=t?.id&&e5.includes(t.id)?t.id:null;if(ae(a),L(null),z({x:0,y:0}),N(null),F(null),t){if(n){if(t.id===`trash`){if(!i||!l5(i))return;await Mn(i);return}if(t.id===t5){if(!i||!ure(i))return;await kn(i);return}if(o){if(n.column===t5){if(!i||!dre(i))return;await An(i);return}await cr(n.bundleId,n.column,o)}return}if(t.id===`trash`){if(!r||!CN(r,`trash`))return;Fn(e.id);return}if(t.id===t5){if(!r||!CN(r,t5))return;await Dn(e.id);return}if(o){if(r&&SN(r,o)){await On(e.id);return}if(!(!r||!CN(r,o)))try{await Tn(r,o,{optimistic:!0})}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.moveTicket`),{id:`board-move-error`})}}}},xn=async(t,n,r,i,a,o,s)=>{let c=await Dt({title:t,description:n,model:i,variant:a,skills:o,project_id:e,...s});if(o5(i,a,o),m(e=>A8(e,w8(c))),c.bundle&&v(e=>O8(e,c.bundle)),r===`build`)try{await Tn(c,`build`)}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.moveTicket`),{id:`board-move-error`})}r===`plan`&&en(c.id,c.project_id)},Sn=async t=>{if(!e)throw Error(u(`board.errors.createBundleWithoutProject`));let n=await it(e,{name:t,prepare:!0});return v(e=>O8(e,n)),n},Cn=e=>{m(t=>[...e.tickets].reverse().reduce((e,t)=>A8(e,w8(t)),t)),g(t=>e.dependencies.reduce((e,t)=>AN(e,t),t));for(let t of e.tickets)t.bundle&&v(e=>O8(e,t.bundle))},wn=(0,p.useCallback)((e,t={})=>{let n=w8(e);m(e=>t.reorderInState?A8(e,n):k8(e,n)),ge(t=>!t||t.id!==e.id?t:Q8(e,n)),e.bundle&&v(t=>O8(t,e.bundle))},[v,m]),Tn=async(e,t,n={})=>{let r=f.findIndex(t=>t.id===e.id),i=t===`review`?yn(e):[],a=t===`review`&&i.length>1,o=n.optimistic?a?i.map(e=>e.id):[e.id]:[];n.optimistic&&(O(o,t),a?vn(i,t):m(n=>N8(n,e.id,t,d5(e,t))));try{if(a&&e.project_id&&e.worktree_bundle_id){let t=await dt(e.project_id,e.worktree_bundle_id);Zn(t);let n=t.tickets.find(t=>t.id===e.id);if(!n)throw Error(u(`board.errors.missingBundleReviewTicket`));return k(o),n}let n=await At(e.id,e.project_id,t);return m(r=>{let i=r.find(t=>t.id===e.id);return i?.state===t&&n.state===t&&i.agent_status!==n.agent_status&&n.agent_status===e.agent_status?r:T8(i,n)?A8(r,n):k8(r,n)}),n.bundle&&v(e=>O8(e,n.bundle)),k(o),n}catch(t){throw n.optimistic&&(a?_n(i):m(t=>N8(t,e.id,e.state,{agent_status:e.agent_status,agent_log:e.agent_log,build_completed_at:e.build_completed_at},{preferredIndex:r})),k(o)),t}},En=(e,t)=>{m(n=>n.map(n=>n.id===e?{...n,...t}:n))},Dn=async t=>{let n=f.find(e=>e.id===t);if(n)try{let r=new Date().toISOString();A([t],r),En(t,{parked_at:r}),wn(await Ht(t,n.project_id??e),{reorderInState:!0}),j([t])}catch(e){j([t]),En(t,{parked_at:n.parked_at}),Q.error(e instanceof Ke?e.message:u(`board.errors.parkTicket`),{id:`board-park-error`})}},On=async t=>{let n=f.find(e=>e.id===t);if(n)try{A([t],null),En(t,{parked_at:null}),wn(await Ut(t,n.project_id??e),{reorderInState:!0}),j([t])}catch(e){j([t]),En(t,{parked_at:n.parked_at}),Q.error(e instanceof Ke?e.message:u(`board.errors.returnTicket`),{id:`board-unpark-error`})}},kn=(0,p.useCallback)(async e=>{let t=new Set(e.tickets.map(e=>e.id)),n=e.tickets.map(e=>({id:e.id,parked_at:e.parked_at})),r=new Date().toISOString();A(e.tickets.map(e=>e.id),r),m(e=>e.map(e=>t.has(e.id)?{...e,parked_at:r}:e));let i=await Promise.allSettled(e.tickets.map(e=>Ht(e.id,e.project_id??C.current))),a=new Set;if(i.forEach((t,n)=>{if(t.status===`fulfilled`){j([t.value.id]),wn(t.value,{reorderInState:!0});return}let r=e.tickets[n];r&&a.add(r.id)}),a.size===0)return;j([...a]),m(e=>e.map(e=>{if(!a.has(e.id))return e;let t=n.find(t=>t.id===e.id);return t?{...e,parked_at:t.parked_at}:e}));let o=i.find(e=>e.status===`rejected`),s=a.size===e.tickets.length?o?.reason instanceof Ke?o.reason.message:u(`board.errors.moveBundleToDone`):u(`board.toasts.movedBundleToDonePartial`,{movedCount:e.tickets.length-a.size,totalCount:e.tickets.length});Q.error(s,{id:`board-bundle-park-error`})},[C,wn,j,A,m,u]),An=(0,p.useCallback)(async e=>{let t=new Set(e.tickets.map(e=>e.id)),n=e.tickets.map(e=>({id:e.id,parked_at:e.parked_at}));A(e.tickets.map(e=>e.id),null),m(e=>e.map(e=>t.has(e.id)?{...e,parked_at:null}:e));let r=await Promise.allSettled(e.tickets.map(e=>Ut(e.id,e.project_id??C.current))),i=new Set;if(r.forEach((t,n)=>{if(t.status===`fulfilled`){j([t.value.id]),wn(t.value,{reorderInState:!0});return}let r=e.tickets[n];r&&i.add(r.id)}),i.size===0)return;j([...i]),m(e=>e.map(e=>{if(!i.has(e.id))return e;let t=n.find(t=>t.id===e.id);return t?{...e,parked_at:t.parked_at}:e}));let a=r.find(e=>e.status===`rejected`),o=i.size===e.tickets.length?a?.reason instanceof Ke?a.reason.message:u(`board.errors.restoreBundle`):u(`board.toasts.restoredBundlePartial`,{restoredCount:e.tickets.length-i.size,totalCount:e.tickets.length});Q.error(o,{id:`board-bundle-unpark-error`})},[C,wn,j,A,m,u]),jn=async t=>{e&&(await yt(e,t),v(e=>e.filter(e=>e.id!==t)))},Mn=(0,p.useCallback)(async t=>{let n=t.tickets.map(e=>({ticket:e,index:f.findIndex(t=>t.id===e.id)})).filter(e=>e.index!==-1);if(n.length===0)return;for(let e of n)w.current.set(e.ticket.id,e);let r=new Set(n.map(e=>e.ticket.id));m(e=>e.filter(e=>!r.has(e.id))),g(e=>e.filter(e=>!r.has(e.blocker_ticket_id)&&!r.has(e.dependent_ticket_id)));let i=await Promise.allSettled(n.map(async t=>(await Bt(t.ticket.id,t.ticket.project_id??e),w.current.delete(t.ticket.id),t.ticket.id)));t.tickets.some(e=>e.project_id===C.current)&&E().catch(()=>{});let a=n.filter((e,t)=>i[t]?.status===`rejected`);if(a.length===0)return;for(let e of a)w.current.delete(e.ticket.id);a.some(e=>e.ticket.project_id===C.current)&&m(e=>[...a].sort((e,t)=>e.index-t.index).reduce((e,t)=>c5(e,t),e));let o=i.find(e=>e.status===`rejected`),s=a.length===n.length?o?.reason instanceof Ke?o.reason.message:u(`board.errors.deleteBundleTickets`):u(`board.toasts.deletedBundleTicketsPartial`,{deletedCount:n.length-a.length,totalCount:n.length});Q.error(s,{id:`board-delete-bundle-wrapper-error`})},[e,C,w,E,g,m,f,u]),Nn=e=>{let t=mt.get(e.id);wn(e,{reorderInState:t?t.state!==e.state||t.parked_at!==e.parked_at||t.worktree_bundle_id!==e.worktree_bundle_id:!1}),t?.worktree_bundle_id&&t.worktree_bundle_id!==e.worktree_bundle_id&&t.bundle?.ticket_count===1&&v(e=>e.filter(e=>e.id!==t.worktree_bundle_id)),(t?.worktree_bundle_id!==e.worktree_bundle_id||t?.bundle?.ticket_count!==e.bundle?.ticket_count)&&e.project_id===C.current&&E().catch(()=>{})},Pn=async()=>{if(!e)return;let t=e,n=Lt.composer.description.trim();if(!n)return;let r=sre(),a=Ve?Lt.composer.model.trim():``,o=Ve&&a?Lt.composer.variant.trim():``,s=Ve?Lt.composer.skills:[],c=Date.now();mn(t,e=>({...e,isOpen:!1,composer:{...e.composer,description:``,worktreeBundleId:``},runs:[{id:r,description:n,model:a,variant:o,skills:s,worktreeBundleId:tn,status:`running`,error:null,submittedAt:c,completedAt:null,boardVisible:!0,boardState:`visible`,summary:null},...e.runs]}));try{let e=await Ot({description:n,tool:i,model:a||null,variant:a&&o||null,skills:s,project_id:t,worktree_bundle_id:tn||null});o5(a||null,a&&o||null,s);let c=cre(e);mn(t,e=>({...e,runs:a5(e.runs,r,e=>({...e,status:`done`,error:null,completedAt:Date.now(),summary:c,boardVisible:!1}))})),Q.success(u(`board.toasts.planningAgentCardsCreated`,{count:c.ticketCount}),{id:`planning-agent-success-${r}`}),ct(e.tickets.length),C.current===t&&Cn(e)}catch(e){let n=e instanceof Ke?e.message:u(`board.errors.generateTickets`);mn(t,e=>({...e,runs:a5(e.runs,r,e=>({...e,status:`error`,error:n,completedAt:Date.now()}))})),Q.error(n,{id:`planning-agent-error`})}},Fn=async t=>{let n=f.find(e=>e.id===t),r=f.findIndex(e=>e.id===t);if(!(!n||r===-1)){w.current.set(t,{ticket:n,index:r}),m(e=>M8(e,t)),g(e=>kN(e,t));try{await Bt(t,n.project_id??e),n.project_id===C.current&&E().catch(()=>{}),w.current.delete(t)}catch(e){let n=w.current.get(t);w.current.delete(t),n&&n.ticket.project_id===C.current&&(m(e=>c5(e,n)),Q.error(e instanceof Ke?e.message:u(`board.errors.deleteTicket`),{id:`board-delete-error`}))}}},In=async t=>{let n=f.find(e=>e.id===t);if(!n)return;let r=n.state===`review`?`review`:`build`;try{if(fe(r),n.project_id&&n.worktree_bundle_id&&n.state===`review`){Zn(await ft(n.project_id,n.worktree_bundle_id));return}wn(await Vt(t,n.project_id??e),{reorderInState:!0})}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.undoTicket`),{id:`board-undo-error`}),e}finally{fe(e=>e===r?null:e)}},Ln=t=>{Gt(t,f.find(e=>e.id===t)?.project_id??e)},Rn=async t=>{let n=f.find(e=>e.id===t),r=n?mN(n):t;try{q(r),await Kt(t,n?.project_id??e),s?.()}catch(e){q(e=>e===r?null:e),Q.error(e instanceof Ke?e.message:u(`board.errors.startRun`),{id:`board-run-error`})}},zn=(0,p.useCallback)(async t=>{let n=f.find(e=>e.id===t);try{await qt(t,n?.project_id??e)}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.openIde`),{id:`board-open-ide-error`})}},[e,u,f]),Bn=async t=>{let n=f.find(e=>e.id===t),i=r?.kind===`ticket`&&n&&Qe===mN(n)?J:null;try{await Jt(t,n?.project_id??e),o?.(i),s?.()}catch{}},Vn=t=>{Yt(t,f.find(e=>e.id===t)?.project_id??e).then(()=>{m(e=>e.map(e=>e.id===t?{...e,agent_status:`stopped`,is_running:!1}:e))})},Hn=t=>{Xt(t,f.find(e=>e.id===t)?.project_id??e).then(()=>{m(e=>e.map(e=>e.id===t?{...e,agent_status:`running`}:e))})},Un=(0,p.useCallback)(e=>{let t=pn(e);!t||!un(t)||zn(t.id)},[un,pn,zn]),Gn=(0,p.useCallback)(e=>{let t=pn(e);t&&De({bundleId:e,ticketId:t.id,projectId:t.project_id,title:t.bundle?my(t.bundle):t.title})},[pn]),Kn=(0,p.useCallback)(e=>{if(!lt)return;let t=pn(e);!t?.project_id||!ly(t)||ke(e)},[pn,lt]),qn=(0,p.useCallback)(e=>{let t=f.find(t=>t.id===e);if(!(!t||!dn(t))){if(t.worktree_bundle_id){Gn(t.worktree_bundle_id);return}Te({ticketId:t.id,projectId:t.project_id,title:t.title})}},[dn,Gn,f]),Jn=(0,p.useCallback)(e=>{if(!lt)return;let t=f.find(t=>t.id===e);!t?.project_id||!ly(t)||Ce({ticketId:t.id,projectId:t.project_id})},[lt,f]),Yn=(0,p.useCallback)(async(t,n,r=`build`)=>{let i=f.find(e=>e.id===t);if(i)try{wn(i.state===`plan`?await $t(t,i.project_id??e,n):await Zt(t,i.project_id??e,n,r))}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.sendFollowUp`),{id:`board-follow-up-error`}),e}},[e,wn,u,f]),Xn=(0,p.useCallback)(e=>{m(t=>e.reduce((e,t)=>{let n=e.find(e=>e.id===t.id),r=D(n,t);if(!r)return e;let i=w8(n&&n.state===r.state&&n.agent_status===`running`&&r.agent_status===null?{...r,agent_status:n.agent_status,session_id:n.session_id,is_running:n.is_running}:r);return T8(n,i)?A8(e,i):k8(e,i)},t))},[D,m]),Zn=(0,p.useCallback)(e=>{xe(e),v(t=>O8(t,e.bundle)),Xn(e.tickets)},[Xn,v]),Qn=(0,p.useCallback)((e,t)=>{Array.isArray(t.tickets)&&xe(n=>!n||n.bundle.id!==e?n:{...n,tickets:t.tickets,execution_order_ticket_ids:t.execution_order_ticket_ids,latest_session_ticket_id:t.latest_session_ticket_id,latest_session_id:t.latest_session_id,review_owner_ticket_id:t.review_owner_ticket_id,target_ticket_id:t.target_ticket_id})},[]),$n=(0,p.useCallback)(async e=>{let t=C.current;if(!t)return null;let n=await at(t,e);return C.current===t?(Zn(n),n):null},[C,Zn]),er=(0,p.useCallback)(async e=>{let t=C.current;if(!t)return null;let n=await ot(t,e);return C.current===t?(Qn(e,n),n):null},[C,Qn]),tr=(0,p.useCallback)(async(e,t=null)=>{let n=C.current;if(!n)return;me(null),ge(null),ve(e),G(t),Ne(n5());let r=bt.get(e)??null,i=f.filter(t=>t.worktree_bundle_id===e);if(r&&i.length>0){let e=cy(i),t=uy(i,{reviewOwnerTicketId:i.find(e=>e.state===`review`)?.id??null,latestSessionTicketId:e?.id??null});xe({bundle:r,tickets:i,latest_session_ticket_id:e?.id??null,latest_session_id:e?.session_id??null,review_owner_ticket_id:i.find(e=>e.state===`review`)?.id??null,target_ticket_id:t?.id??null})}else xe(null);je(!0);try{await er(e)}catch{}finally{C.current===n&&je(!1)}},[C,bt,er,f]),nr=(0,p.useCallback)(async(e,t)=>{Ne(t=>({...t,[e]:!0}));try{return await t()}finally{Ne(t=>({...t,[e]:!1}))}},[]),rr=(0,p.useCallback)(async t=>{await nr(`stopBuild`,async()=>{let n=f.find(e=>e.id===t);await Yt(t,n?.project_id??e),m(e=>e.map(e=>e.id===t?{...e,agent_status:`stopped`,is_running:!1}:e)),n?.worktree_bundle_id&&await $n(n.worktree_bundle_id)})},[e,$n,nr,m,f]),ir=(0,p.useCallback)(async t=>{await nr(`resumeBuild`,async()=>{let n=f.find(e=>e.id===t);await Xt(t,n?.project_id??e),m(e=>e.map(e=>e.id===t?{...e,agent_status:`running`}:e)),n?.worktree_bundle_id&&await $n(n.worktree_bundle_id)})},[e,$n,nr,m,f]),ar=(0,p.useCallback)(async t=>{if(e)try{Zn(await nr(`build`,()=>ut(e,t))),_e===t&&G(`build`),s?.()}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.buildBundle`),{id:`board-bundle-build-error`}),e}},[e,Zn,s,nr,_e,u]),or=(0,p.useCallback)(async t=>{if(e)try{Zn(await nr(`review`,()=>dt(e,t))),_e===t&&G(`review`)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.reviewBundle`),{id:`board-bundle-review-error`}),e}},[e,Zn,nr,_e,u]),sr=(0,p.useCallback)(async t=>{if(e)try{fe(`review`),Zn(await nr(`undoReview`,()=>ft(e,t))),_e===t&&G(`build`)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.undoBundleReview`),{id:`board-bundle-undo-review-error`}),e}finally{fe(e=>e===`review`?null:e)}},[e,Zn,nr,_e,u]),cr=(0,p.useCallback)(async(e,t,n)=>{if(t===t5||n===t5)return;let r=fre(t,n);if(!r)return;let i=f.filter(n=>n.worktree_bundle_id===e&&n.state===t&&n.parked_at===null);if(i.length===0)return;let a=i.map(e=>e.id);O(a,n),vn(i,n);try{if(r===`build`){await ar(e),k(a);return}if(r===`review`){await or(e),k(a);return}await sr(e),k(a)}catch(e){_n(i),k(a),Q.error(e instanceof Ke?e.message:u(`board.errors.moveBundle`),{id:`board-bundle-move-error`})}},[k,ar,or,sr,O,vn,_n,f,u]),lr=async t=>{e&&(Zn(await nr(`run`,()=>_t(e,t))),s?.())},ur=async t=>{if(!e)return;let n=r?.kind===`ticket`&&Qe===t?J:null,i=await nr(`stop`,()=>vt(e,t));o?.(n),Zn(i),s?.()},dr=(0,p.useCallback)(async(t,n,r=`build`)=>{e&&Zn(await nr(`followUp`,()=>pt(e,t,n,r)))},[e,Zn,nr]);(0,p.useEffect)(()=>()=>{a?.(null)},[a]),(0,p.useEffect)(()=>{if(!a)return;if(!r){a(null);return}if(r.kind===`project`){a({target:null,canSelect:!1,disabledReason:u(`board.preview.disabledProjectRoot`),submitPrompt:null});return}let e=f.find(e=>e.id===r.ticket_id);if(!e){a({target:null,canSelect:!1,disabledReason:u(`board.preview.disabledBuildCapable`),submitPrompt:null});return}if(e.state===`plan`){a({target:{kind:`ticket`,id:e.id},canSelect:!1,disabledReason:u(`board.preview.disabledPlanMode`),submitPrompt:null});return}if(e.worktree_bundle_id){a({target:{kind:`bundle`,id:e.worktree_bundle_id,ticket_id:e.id},canSelect:!0,disabledReason:null,promptPlaceholder:u(`board.preview.followUpBundlePlaceholder`),submitPrompt:t=>dr(e.worktree_bundle_id,t)});return}a({target:{kind:`ticket`,id:e.id},canSelect:!0,disabledReason:null,promptPlaceholder:u(`board.preview.followUpTicketPlaceholder`),submitPrompt:t=>Yn(e.id,t)})},[r,Yn,dr,a,u,f]);let fr=async t=>{let n=f.find(e=>e.id===t),r=n?fN(n.state):null;if(n)try{if(n.state===`review`&&n.can_re_review&&n.agent_status!==`running`){let t=await Qt(n.id,n.project_id??e);wn(t),t.worktree_bundle_id&&await $n(t.worktree_bundle_id);return}if(!r)return;if(n.worktree_bundle_id&&r===`review`){await or(n.worktree_bundle_id);return}await Tn(n,r)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.moveTicket`),{id:`board-move-error`}),e}},pr=async t=>{let n=f.find(e=>e.id===t);try{wn(await Rt(t,n?.project_id??e))}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.startBuildChain`),{id:`board-build-chain-error`}),e}},mr=async t=>{let n=f.find(e=>e.id===t);try{await zt(t,n?.project_id??e)}catch(e){throw Q.error(e instanceof Ke?e.message:u(`board.errors.stopBuildChain`),{id:`board-stop-build-chain-error`}),e}},hr=async()=>{if(!(!e||le)){ue(!0);try{let t=await Wt(e);m(e=>e.filter(e=>!t.deleted_ticket_ids.includes(e.id))),g(e=>t.deleted_ticket_ids.reduce(kN,e)),await E(),ce(!1),t.failed_count>0?Q.error(u(`board.toasts.deleteDonePartial`,{count:t.deleted_count,deletedCount:t.deleted_count,failedCount:t.failed_count}),{id:`board-delete-parked-error`}):Q.success(u(`board.toasts.deleteDoneSuccess`,{count:t.deleted_count}),{id:`board-delete-parked-success`})}catch(e){Q.error(e instanceof Ke?e.message:u(`board.errors.emptyDone`),{id:`board-delete-parked-error`})}finally{ue(!1)}}},gr=({delta:e})=>{z(e)},_r=(0,p.useCallback)((t=null)=>{e&&V({initialWorktreeBundleId:t})},[e]),vr=(0,p.useCallback)(()=>{e&&mn(e,e=>e.isOpen?e:{...e,isOpen:!0})},[e,mn]),yr=(0,p.useCallback)(()=>{qe.current?.focus({preventScroll:!0})},[]);return C8([{key:`n`,onKeyDown:_r,disabled:!e},{key:`a`,onKeyDown:vr,disabled:!e},{key:`k`,ctrlKey:!0,onKeyDown:yr}],{isBlocked:S8}),(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(MM,{sensors:d,collisionDetection:WA,onDragStart:hn,onDragMove:gr,onDragCancel:gn,onDragEnd:bn,children:[(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 overflow-hidden`,children:[(0,Y.jsx)(u8,{projectId:e,state:nn,bundles:_,projectBranchState:n,showModelSelector:Ve,availableModels:U,availableSkills:ne,onManageBundles:e?()=>{(async()=>{try{await E()}catch{}ee(!0)})()}:void 0,onToggle:()=>{e&&mn(e,e=>({...e,isOpen:!e.isOpen}))},onDescriptionChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,description:t}}))},onModelChange:t=>{if(!e)return;let n=U.find(e=>e.id===t)??null;mn(e,e=>({...e,composer:{...e.composer,model:t,variant:n?.variants.includes(e.composer.variant)?e.composer.variant:``}}))},onSkillsChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,skills:t}}))},onVariantChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,variant:t}}))},onBundleChange:t=>{e&&mn(e,e=>({...e,composer:{...e.composer,worktreeBundleId:t}}))},onGenerate:()=>{Pn()}}),(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:X(`absolute inset-y-0 left-16 right-0 z-10 bg-black/60 transition-opacity duration-200 ease-out motion-reduce:transition-none`,nn.isOpen?`opacity-100`:`pointer-events-none opacity-0`)}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-4 overflow-hidden p-6`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col items-start gap-3 sm:flex-row sm:items-center`,children:[(0,Y.jsxs)(`div`,{className:`relative w-full max-w-sm`,children:[(0,Y.jsx)(z_,{id:`board-ticket-search`,ref:qe,type:`search`,value:Ie,onChange:e=>Le(e.target.value),placeholder:u(`board.search.placeholder`),"aria-label":u(`board.search.ariaLabel`),className:`pr-32`}),Ie.length>0?(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":u(`board.search.clearAriaLabel`),className:`absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>{Le(``),qe.current?.focus()},children:(0,Y.jsx)(Jy,{className:`size-4`})}):(0,Y.jsxs)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5 text-[10px] leading-none`,children:[(0,Y.jsx)($M,{children:`CTRL`}),(0,Y.jsx)(`span`,{children:`+`}),(0,Y.jsx)($M,{children:`K`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Bx,{id:`board-hide-stale-tickets`,checked:Re,onCheckedChange:ze,"aria-label":u(`board.search.hideStaleAriaLabel`)}),(0,Y.jsx)($_,{htmlFor:`board-hide-stale-tickets`,className:`text-sm text-muted-foreground`,children:u(`board.search.hideStaleLabel`)})]})]}),(0,Y.jsx)(`div`,{ref:Tt,className:`flex min-h-0 flex-1 overflow-x-auto overflow-y-hidden`,children:(0,Y.jsxs)(`div`,{ref:Et,className:`relative flex min-h-0 w-max min-w-full gap-4`,children:[(0,Y.jsx)(e8,{dependencies:h,cardRects:jt,preview:Mt,ticketsById:mt,overlaySize:Nt}),e5.map(t=>{let n=f.filter(e=>e.state===t&&!gN(e)),r=St.filter(e=>e.state===t&&!gN(e)),i=dy(r,_,t),a=rt&&n.length===0?t===`plan`?1:t===`build`?2:0:0;return(0,Y.jsx)(u2,{id:t,title:u(`card.columnLabels.${t}`),pinnedContent:t===`plan`?ln:null,items:i,ticketCount:r.length,allTickets:f,dependencies:h,showModelSelector:Ve,availableModels:U,bundles:_,activeRunContextKey:et,isProjectRootRunActive:$e,isBundleRunDisabled:tt,getDependencyTargetState:Pt,onDependencyStart:Ft,onDeleteDependency:It,onRegisterTicketNode:kt,onAddTicket:t===`plan`&&e?_r:void 0,onCreateBundle:t===`plan`&&e?Sn:void 0,onDeleteBundle:t===`plan`&&e?jn:void 0,onDeleteBundleWrapper:Mn,onRefreshBundles:t===`plan`&&e?E:void 0,onUpdateTicket:Nn,onDeleteTicket:Fn,onUndoTicket:In,undoingColumn:de,onRetryTicket:Ln,onAdvanceTicket:fr,onParkTicket:Dn,onUnparkTicket:On,onBuildChainTicket:pr,onRunTicket:Rn,onOpenTestsTicket:lt?Jn:void 0,canOpenChangesForTicket:dn,onOpenChangesTicket:qn,canOpenIdeForTicket:un,onOpenIdeTicket:zn,onStopTicket:Bn,onStopBuildTicket:Vn,onStopBuildChainTicket:mr,onResumeBuildTicket:Hn,onOpenBundleChanges:Gn,onOpenBundleTests:lt?Kn:void 0,onOpenBundleIde:Un,onAddTicketToBundle:_r,onFollowUpTicket:Yn,bundleActionState:Me,onBuildBundle:ar,onReviewBundle:or,onUndoBundleReview:sr,onRunBundle:lr,onStopBundle:ur,onParkBundleWrapper:kn,onUnparkBundleWrapper:An,onOpenTicketDetails:gt,onOpenBundleDetails:(e,t)=>{tr(e,t)},onRequestBundleRefresh:e=>{nr(`bundleRefresh`,()=>$n(e))},onRequestTicketRefresh:T,loadingSkeletonCount:a},t)}),(0,Y.jsx)(u2,{id:t5,title:u(`card.columnLabels.done`),items:wt,ticketCount:Ct.length,allTickets:f,dependencies:h,showModelSelector:Ve,availableModels:U,bundles:_,activeRunContextKey:et,isProjectRootRunActive:$e,isBundleRunDisabled:tt,getDependencyTargetState:Pt,onDependencyStart:Ft,onDeleteDependency:It,onRegisterTicketNode:kt,onUpdateTicket:Nn,onDeleteTicket:Fn,onUndoTicket:In,undoingColumn:de,onRetryTicket:Ln,onAdvanceTicket:fr,onParkTicket:Dn,onUnparkTicket:On,onBuildChainTicket:pr,onRunTicket:Rn,onOpenTestsTicket:lt?Jn:void 0,canOpenChangesForTicket:dn,onOpenChangesTicket:qn,canOpenIdeForTicket:un,onOpenIdeTicket:zn,onStopTicket:Bn,onStopBuildTicket:Vn,onStopBuildChainTicket:mr,onResumeBuildTicket:Hn,onOpenBundleChanges:Gn,onOpenBundleTests:lt?Kn:void 0,onOpenBundleIde:Un,onAddTicketToBundle:_r,onFollowUpTicket:Yn,bundleActionState:Me,onBuildBundle:ar,onReviewBundle:or,onUndoBundleReview:sr,onRunBundle:lr,onStopBundle:ur,onParkBundleWrapper:kn,onUnparkBundleWrapper:An,onOpenTicketDetails:gt,onOpenBundleDetails:(e,t)=>{tr(e,t)},onRequestBundleRefresh:e=>{nr(`bundleRefresh`,()=>$n(e))},onRequestTicketRefresh:T,className:`min-w-[272px] max-w-[272px] flex-[0.98] bg-card/65`,headerAccessory:(0,Y.jsxs)(Z,{type:`button`,variant:`destructive`,size:`xs`,className:`gap-1.5`,disabled:Ct.length===0||le,onClick:()=>ce(!0),children:[(0,Y.jsx)(vb,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:u(`board.doneColumn.emptyAction`)})]})})]})})]})]}),(0,Y.jsxs)(QM,{zIndex:5,dropAnimation:ie?null:void 0,children:[M&&(0,Y.jsx)(c2,{ticket:M,allTickets:f,dependencies:h,bundles:_,projectMemoryEnabled:!!t?.memory_enabled,overlay:!0,showModelSelector:hP(M,i)===`opencode`&&U.length>0,availableModels:U,runDisabled:u5(M,et,$e,u(`board.errors.runBlockedByActive`))!==void 0,runDisabledReason:u5(M,et,$e,u(`board.errors.runBlockedByActive`)),onDependencyStart:Ft,onDeleteDependency:It,onRegisterOverlayNode:L,onCreateBundle:Sn,onDeleteBundle:jn,onRefreshBundles:E,onUpdate:Nn,onDelete:()=>Fn(M.id),onUndo:()=>In(M.id),undoInProgress:de===M.state&&(M.state===`build`||M.state===`review`),onRetry:()=>Ln(M.id),onAdvance:()=>fr(M.id),onPark:()=>Dn(M.id),onUnpark:()=>On(M.id),onBuildChain:()=>pr(M.id),onRun:M.worktree_bundle_id===null&&ly(M)&&M.has_run_config?()=>Rn(M.id):void 0,onOpenIde:M.worktree_bundle_id===null&&un(M)?()=>zn(M.id):void 0,onStop:M.worktree_bundle_id===null?()=>Bn(M.id):void 0,onStopBuild:()=>Vn(M.id),onStopBuildChain:()=>mr(M.id),onResumeBuild:()=>Hn(M.id),onFollowUp:e=>Yn(M.id,e),onRequestTicketRefresh:T}),!M&&P&&(0,Y.jsx)(iP,{group:P,overlay:!0,renderTicket:cn})]}),nt&&(0,Y.jsx)(d8,{className:`pointer-events-auto fixed left-1/2 top-4 z-20 w-[min(14rem,calc(100vw-2rem))] -translate-x-1/2`})]}),B&&(0,Y.jsx)(t8,{onSubmit:xn,bundles:_,projectId:e,projectBranchState:n,tool:i,showModelSelector:Ve,availableModels:U,availableSkills:ne,initialModel:Ve?rn.model:``,initialVariant:Ve&&rn.model?rn.variant:``,initialSkills:Ve?rn.skills:[],initialWorktreeBundleId:B.initialWorktreeBundleId,onCreateBundle:Sn,onDeleteBundle:jn,onRefreshBundles:E,onClose:()=>V(null)}),H&&e&&(0,Y.jsx)(bb,{bundles:_,selectedBundleId:nn.composer.worktreeBundleId||null,onSelectBundle:t=>{mn(e,e=>({...e,composer:{...e.composer,worktreeBundleId:t??``}}))},onCreateBundle:Sn,onDeleteBundle:jn,onClose:()=>ee(!1)}),se&&(0,Y.jsx)(d2,{ticketCount:Ct.length,isDeleting:le,onCancel:()=>ce(!1),onConfirm:()=>{hr()}}),he&&(0,Y.jsx)(s2,{ticket:he,allTickets:f,dependencies:h,bundles:_,projectMemoryEnabled:!!t?.memory_enabled,projectBranchState:n,onClose:()=>{let e=he.id;me(null),ge(null),m(t=>t.map(t=>t.id===e?w8(t):t))},showModelSelector:K,activeTool:i,availableModels:U,availableSkills:ne,runDisabled:u5(he,et,$e,u(`board.errors.runBlockedByActive`))!==void 0,runDisabledReason:u5(he,et,$e,u(`board.errors.runBlockedByActive`)),onDeleteDependency:It,onCreateBundle:Sn,onDeleteBundle:jn,onRefreshBundles:E,onUpdate:Nn,onAdvance:()=>fr(he.id),onBuildChain:()=>pr(he.id),onRun:ly(he)&&he.has_run_config?()=>Rn(he.id):void 0,onOpenIde:un(he)?()=>zn(he.id):void 0,onStop:()=>Bn(he.id),onStopBuild:()=>Vn(he.id),onStopBuildChain:()=>mr(he.id),onResumeBuild:()=>Hn(he.id),onFollowUp:e=>Yn(he.id,e),onProjectMemorySuggestionsChanged:()=>{Fe(e=>e+1)},onRequestTicketRefresh:e=>{ht(e)},onViewSourceSpec:c}),Se&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(G8,{scope:`ticket`,ticketId:Se.ticketId,projectId:Se.projectId,testCommands:st,onClose:()=>Ce(null)})}),Ee&&(0,Y.jsx)(B6,{ticketId:Ee.ticketId,projectId:Ee.projectId,reviewCommentsBundleId:Ee.bundleId,title:Ee.title,onSubmitReviewPrompt:e=>dr(Ee.bundleId,e),canSubmitReviewPrompt:!f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`),reviewSubmitDisabledReason:f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`)?u(`board.changes.reviewPromptDisabledReason`):void 0,canAddReviewComments:!f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`),canModifyChanges:!f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`),changesDisabledReason:f.some(e=>e.worktree_bundle_id===Ee.bundleId&&e.agent_status===`running`)?u(`board.changes.modifyChangesDisabledReason`):void 0,onClose:()=>{let{bundleId:e}=Ee;De(null),$n(e)},onTicketUpdate:Nn,onRequestTicketRefresh:T,onViewSourceSpec:c,originSpecSessionId:f.find(e=>e.id===Ee.ticketId)?.origin_spec_session_id??null,originSpecSnapshotId:f.find(e=>e.id===Ee.ticketId)?.origin_spec_snapshot_id??null}),we&&(0,Y.jsx)(B6,{ticketId:we.ticketId,projectId:we.projectId,title:we.title,onClose:()=>{let{ticketId:e}=we;Te(null),ht(e)},onTicketUpdate:Nn,onRequestTicketRefresh:e=>{ht(e)},onViewSourceSpec:c,originSpecSessionId:f.find(e=>e.id===we.ticketId)?.origin_spec_session_id??null,originSpecSnapshotId:f.find(e=>e.id===we.ticketId)?.origin_spec_snapshot_id??null}),Oe&&e&&t&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(G8,{scope:`project`,projectId:e,targetKind:`bundle`,targetBundleId:Oe,testCommands:st,onClose:()=>ke(null)})}),_e&&xt&&(0,Y.jsx)(j2,{details:xt,activeColumn:ye,isLoading:Ae||Me.bundleRefresh,actionState:Me,canOpenIde:fn(xt),projectMemoryEnabled:!!t?.memory_enabled,memorySuggestionsRefreshKey:Pe,runDisabled:tt(xt.bundle.id),showModelSelector:He,availableModels:U,availableSkills:ne,onClose:()=>{let e=xt.bundle.id;ve(null),G(null),xe(null),je(!1),Ne(n5()),m(t=>t.map(t=>t.worktree_bundle_id===e&&t.id!==pe?w8(t):t))},onOpenTicketDetails:gt,onUpdateTicket:Nn,onOpenIde:()=>{let e=xt.tickets.find(e=>e.id===xt.target_ticket_id)??xt.tickets.find(e=>e.has_worktree);e&&zn(e.id)},onOpenTests:lt?()=>{Kn(xt.bundle.id)}:void 0,onRefresh:e=>{nr(`bundleRefresh`,()=>$n(e))},onBuildBundle:ar,onStopBuildTicket:rr,onResumeBuildTicket:ir,onReviewBundle:or,onUndoBundleReview:sr,onRunBundle:lr,onStopBundle:ur,onFollowUpBundle:dr})]})},f5=({count:e,title:t,isDeleting:n,onConfirm:r,onCancel:i,labels:a})=>{let o=e>1;return(0,Y.jsxs)(tb,{onClose:i,overlayClassName:`bg-black/60`,panelClassName:`max-w-sm rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,Y.jsx)(`h2`,{className:`mb-3 text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:o?a.bulkTitle:a.title}),t?(0,Y.jsx)(`p`,{className:`mb-1 text-sm text-foreground`,children:t}):null,(0,Y.jsx)(`p`,{className:`mb-6 text-xs text-muted-foreground`,children:o?a.bulkDescription(e):a.description}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,onClick:i,disabled:n,children:a.cancel}),(0,Y.jsx)(Z,{type:`button`,variant:`destructive`,onClick:r,disabled:n,children:n?a.deleting:a.delete})]})]})},p5=({label:e})=>(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 text-sm text-muted-foreground`,children:e}),m5=({label:e})=>(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 text-sm text-muted-foreground`,children:e}),h5=({title:e,description:t,startNewSessionLabel:n,onStartNewSession:r,canStartNewSession:i})=>(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6`,children:(0,Y.jsxs)(ub,{className:`w-full max-w-lg border-dashed border-border/70 bg-card/40`,children:[(0,Y.jsxs)(db,{children:[(0,Y.jsx)(fb,{children:e}),(0,Y.jsx)(pb,{children:t})]}),(0,Y.jsx)(hb,{children:(0,Y.jsx)(Z,{type:`button`,onClick:r,disabled:!i,children:n})})]})}),hre=({className:e})=>(0,Y.jsx)(Mg,{"aria-hidden":`true`,className:e}),gre=({className:e})=>(0,Y.jsx)(Cg,{"aria-hidden":`true`,className:e}),_re=({className:e})=>(0,Y.jsx)(wg,{"aria-hidden":`true`,className:e}),g5=({sessions:e,sessionGroups:t,activeSessionId:n,isDraftOpen:r,isLoadingSessions:i,isOpen:a,onToggleOpen:o,testId:s,railTestId:c,onDraftOpen:l,isCreatingSession:u,isSendingPrompt:d,newSessionShortcutHint:f,newSessionTooltip:m,isSelectionMode:h,selectedSessionIds:g,selectedSessionCount:_,hasDeletableSessions:v,deletingSessionIds:y,onEnterSelectionMode:b,onExitSelectionMode:x,onToggleSessionSelection:S,onSetSessionSelection:C,onConfirmDeleteSelectedSessions:w,onSessionSelect:T,onConfirmDeleteSession:E,getSessionId:D,getSessionTitle:O,getDeleteDisabledReason:k,getActivityState:A,getRowAriaLabel:j,renderRowContent:M,labels:N})=>{let P=(0,p.useMemo)(()=>new Set(e.filter(e=>!k(e)&&!y.has(D(e))).map(e=>D(e))),[y,k,D,e]),F=(0,p.useRef)(null),I=(0,p.useRef)(!1),L=(0,p.useRef)(null),R=(0,p.useCallback)(()=>{L.current!==null&&(window.clearTimeout(L.current),L.current=null)},[]),z=(0,p.useCallback)(()=>{R(),L.current=window.setTimeout(()=>{I.current=!1,L.current=null},0)},[R]),B=(0,p.useCallback)(()=>{F.current&&(F.current=null,z())},[z]),V=(0,p.useCallback)(e=>{let t=F.current;!t||t.visitedSessionIds.has(e)||!P.has(e)||(t.visitedSessionIds.add(e),C(e,t.mode===`select`))},[C,P]),H=(0,p.useCallback)(e=>{let t=F.current;!t||e.pointerId!==t.pointerId||B()},[B]);return(0,p.useEffect)(()=>{if(!h){B();return}return window.addEventListener(`pointerup`,H),window.addEventListener(`pointercancel`,H),()=>{window.removeEventListener(`pointerup`,H),window.removeEventListener(`pointercancel`,H),B(),R()}},[R,H,h,B]),(0,Y.jsx)(`aside`,{"data-testid":s,"data-state":a?`expanded`:`collapsed`,"aria-label":N.ariaLabel,className:X(`relative z-20 flex h-full shrink-0 flex-col overflow-hidden border-r border-border/70 bg-background/40 transition-[width] duration-200 ease-out motion-reduce:transition-none`,a?`w-72`:`w-16`),children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-start gap-2 border-b border-border/70 px-4 py-3.5`,children:[(0,Y.jsxs)(Z,{type:`button`,size:`sm`,className:`gap-2`,onClick:l,disabled:u||d,children:[(0,Y.jsx)(Ey,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:N.newSession}),f]}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":N.collapseAriaLabel,"aria-expanded":a,className:`ml-auto`,onClick:o,children:(0,Y.jsx)(gre,{className:`h-4 w-4`})})]}),e.length>0?(0,Y.jsx)(`div`,{className:`px-4 py-2.5`,children:h?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`ghost`,className:`h-7 px-2 text-xs`,onClick:x,disabled:y.size>0,children:N.cancelSelection}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`destructive`,className:`h-7 px-2 text-xs`,onClick:w,disabled:_===0||y.size>0,children:N.deleteSelected})]}),(0,Y.jsx)(`div`,{className:`flex justify-end text-xs font-medium text-muted-foreground`,children:N.selectedCount(_)})]}):v?(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`ghost`,className:`h-7 gap-1.5 px-2 text-xs`,onClick:b,children:[(0,Y.jsx)(hre,{className:`h-3.5 w-3.5`}),N.select]}):null}):null,(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-2`,children:i&&e.length===0?(0,Y.jsx)(`div`,{className:`px-2 py-4 text-sm text-muted-foreground`,children:N.loadingSessions}):e.length===0?(0,Y.jsx)(`div`,{className:`rounded-lg border border-dashed border-border/70 px-3 py-4 text-sm text-muted-foreground`,children:N.noSessions}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-3`,children:t.map(e=>(0,Y.jsxs)(`section`,{"aria-label":e.label,className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`px-2 text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground/80`,children:e.label}),e.sessions.map(e=>{let t=D(e),i=!r&&t===n,a=k(e),o=y.has(t),s=!!a||o,c=g.has(t),l=A(e,i);return(0,Y.jsxs)(`div`,{"data-session-id":t,"data-session-selectable":s?`false`:`true`,className:X(`group relative rounded-xl border transition-colors`,i?`border-sky-400/40 bg-sky-500/10 text-foreground ring-1 ring-sky-400/40`:`border-border/50 bg-card/35 text-muted-foreground hover:border-border/80 hover:bg-card/60 hover:text-foreground`),onPointerDownCapture:e=>{!h||s||e.pointerType&&e.pointerType!==`mouse`||typeof e.button==`number`&&e.button!==0||(e.preventDefault(),R(),I.current=!0,F.current={pointerId:e.pointerId,mode:c?`deselect`:`select`,visitedSessionIds:new Set},V(t))},onPointerMove:e=>{let n=F.current;!n||n.pointerId!==e.pointerId||V(t)},children:[(0,Y.jsx)(`button`,{type:`button`,"aria-label":j(e,l),className:`flex w-full min-w-0 cursor-pointer items-start gap-2 rounded-xl px-3 py-2 pr-11 text-left transition-colors focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:outline-none`,onClick:()=>{if(h){if(I.current){I.current=!1;return}if(s)return;S(t);return}T(e)},children:M({session:e,isActive:i,activityState:l,isSelectionMode:h})}),h?(0,Y.jsx)(`div`,{className:`absolute top-2 right-2 flex h-7 w-7 items-center justify-center`,title:a??N.selectSessionTitle(O(e)),children:(0,Y.jsx)(`input`,{type:`checkbox`,"aria-label":N.selectSessionAriaLabel(O(e)),checked:c,disabled:s,onClick:e=>{e.stopPropagation()},onChange:()=>{I.current||S(t)},className:`h-4 w-4 rounded border-border bg-background text-primary`})}):(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":N.deleteSessionAriaLabel,className:X(`absolute top-2 right-2 h-7 w-7 shrink-0 rounded-md border border-transparent text-muted-foreground transition-all duration-150 hover:border-border/70 hover:bg-card/80 hover:text-foreground focus-visible:border-border/70 focus-visible:bg-card/80 focus-visible:text-foreground`,`opacity-100 sm:opacity-0 sm:pointer-events-none sm:group-hover:pointer-events-auto sm:group-focus-within:pointer-events-auto sm:group-hover:opacity-100 sm:group-focus-within:opacity-100`,s&&`sm:disabled:opacity-0 sm:group-hover:disabled:opacity-50 sm:group-focus-within:disabled:opacity-50`,(i||o)&&`sm:pointer-events-auto sm:opacity-100 sm:disabled:opacity-50`,a&&`cursor-not-allowed text-muted-foreground/50 hover:border-transparent hover:bg-transparent hover:text-muted-foreground/50 focus-visible:border-transparent focus-visible:bg-transparent focus-visible:text-muted-foreground/50`),title:a??N.deleteSessionTitle(O(e)),disabled:s,onClick:e=>{e.stopPropagation(),E(t)},children:(0,Y.jsx)(vb,{className:`h-4 w-4`})})]},t)})]},e.key))})})]}):(0,Y.jsxs)(`div`,{"data-testid":c,className:`flex h-full w-full flex-col items-center gap-2 bg-background/80 py-3`,children:[m?(0,Y.jsx)(Sv,{content:m,side:`right`,children:(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,"aria-label":N.newSession,className:`h-9 w-9`,onClick:l,disabled:u||d,children:(0,Y.jsx)(Ey,{className:`h-4 w-4`})})}):(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,"aria-label":N.newSession,className:`h-9 w-9`,onClick:l,disabled:u||d,children:(0,Y.jsx)(Ey,{className:`h-4 w-4`})}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":N.openAriaLabel,"aria-expanded":a,className:`h-9 w-9`,onClick:o,children:(0,Y.jsx)(_re,{className:`h-4 w-4`})})]})})},_5=({isInterrupting:e,onStop:t,interruptLabel:n,interruptingLabel:r})=>(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:`gap-2`,disabled:e,onClick:t,children:[e?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Rv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:e?r:n})]}),v5=4,vre=5e3,y5=(e,t)=>sb.t(`common:chatChangesPanel.${e}`,t),b5=e=>e.replace(/^[ab]\//,``),x5=e=>{let t=`oldPath`in e&&typeof e.oldPath==`string`?b5(e.oldPath):``,n=`newPath`in e&&typeof e.newPath==`string`?b5(e.newPath):``;return[...new Set([n,t].filter(e=>e&&e!==`/dev/null`))]},S5=e=>{let[t,n]=x5(e);return!t&&!n?y5(`unknownFile`):t&&n&&t!==n?`${n} -> ${t}`:t??n??y5(`unknownFile`)},C5=e=>{let t=Z4((()=>{let[t,n]=x5(e);return t??n??null})());if(!t)return null;try{return qO(e.hunks,{highlight:!0,refractor:Z3.default,language:t,enhancers:[GO(e.hunks)]})}catch{return null}},w5=(e,t)=>e instanceof Error?e.message:t,yre=(e,t)=>{if(!t)return e;let n=S5(t);return[t,...e.filter(e=>S5(e)!==n)]},bre=e=>[...e].sort((e,t)=>{if(e.filePath!==t.filePath)return e.filePath.localeCompare(t.filePath);let n=e.newLineNumber??e.oldLineNumber??2**53-1,r=t.newLineNumber??t.oldLineNumber??2**53-1;return n===r?e.changeKey.localeCompare(t.changeKey):n-r}),xre=({diffResponse:e,gitStatus:t})=>{let n=new Map;for(let t of e?.files??[])n.set(t.path,t);return t?t.files.map(e=>{let t=n.get(e.path)??(e.original_path?n.get(e.original_path):void 0);return{path:e.path,originalPath:e.original_path,status:e.status,staged:e.staged,unstaged:e.unstaged,conflicted:e.conflicted,additions:t?.additions??0,deletions:t?.deletions??0}}):(e?.files??[]).map(e=>({path:e.path,originalPath:null,status:null,staged:!1,unstaged:!1,conflicted:!1,additions:e.additions,deletions:e.deletions}))},T5=e=>{let t=e.split(/[\\/]/);return t[t.length-1]||e},Sre={modified:`border-amber-500/40 bg-amber-500/10 text-amber-200`,added:`border-emerald-500/40 bg-emerald-500/10 text-emerald-200`,deleted:`border-rose-500/40 bg-rose-500/10 text-rose-200`,renamed:`border-sky-500/40 bg-sky-500/10 text-sky-200`,untracked:`border-violet-500/40 bg-violet-500/10 text-violet-200`,typechanged:`border-slate-500/40 bg-slate-500/10 text-slate-200`},Cre=e=>y5(`fileStatus.${e}`),wre=({selectedDiffPath:e,sidebarFiles:t,diffStats:n,triggerMode:r=`full`,onSelectDiffPath:i})=>{let[a,o]=(0,p.useState)(!1),s=t.find(t=>t.path===e)??null,c=r===`compact`?e===`all`?y5(`picker.diff`):s?T5(s.path):y5(`picker.file`):e===`all`?y5(`picker.allChanges`):s?T5(s.path):e;return(0,Y.jsxs)(ev,{open:a,onOpenChange:o,children:[(0,Y.jsx)(tv,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:X(`max-w-full gap-2`,r===`full`?`min-w-0 max-w-[18rem]`:`min-w-0 px-2.5`),"aria-label":y5(`picker.openChangedFilesAriaLabel`),title:e===`all`?void 0:s?.path??e,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:c}),r===`full`&&(0,Y.jsx)(lb,{variant:`outline`,className:`shrink-0 text-[10px] uppercase tracking-wide`,children:y5(`picker.fileCount`,{count:t.length})}),(0,Y.jsx)(Ev,{className:`h-4 w-4 shrink-0 text-muted-foreground`})]})}),(0,Y.jsxs)(nv,{align:`start`,className:`z-[90] w-[28rem] max-w-[calc(100vw-2rem)] p-0`,children:[(0,Y.jsx)(`div`,{className:`border-b border-border/80 px-4 py-3`,children:(0,Y.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:y5(`picker.title`)})}),(0,Y.jsx)(`div`,{className:`max-h-[min(28rem,calc(100vh-10rem))] overflow-y-auto p-3`,children:(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{i(`all`),o(!1)},className:X(`flex w-full cursor-pointer items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors`,F4(e===`all`),`justify-between`),children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:y5(`picker.allChanges`)}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground transition-colors group-hover:text-foreground/70`,children:y5(`picker.allChangesDescription`)})]}),n&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 text-[11px]`,children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground transition-colors group-hover:text-foreground/70`,children:y5(`picker.fileCount`,{count:n.files_changed})}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,n.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,n.deletions]})]})]}),t.map(t=>(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{i(t.path),o(!1)},className:X(`flex w-full cursor-pointer items-start gap-3 rounded-xl border px-3 py-2.5 text-left transition-colors`,F4(e===t.path)),children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:T5(t.path)}),(0,Y.jsx)(`div`,{className:`mt-0.5 break-all font-mono text-[11px] text-muted-foreground transition-colors group-hover:text-foreground/70`,children:t.path})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 text-[11px]`,children:[(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-emerald-400`,children:[`+`,t.additions]}),(0,Y.jsxs)(`span`,{className:`font-mono tabular-nums text-rose-400`,children:[`-`,t.deletions]})]})]}),(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px]`,children:[t.status&&(0,Y.jsx)(lb,{variant:`outline`,className:Sre[t.status],children:Cre(t.status)}),t.staged&&(0,Y.jsx)(lb,{variant:`outline`,children:y5(`fileStatus.staged`)}),t.unstaged&&(0,Y.jsx)(lb,{variant:`outline`,children:y5(`fileStatus.unstaged`)}),t.conflicted&&(0,Y.jsx)(lb,{variant:`destructive`,children:y5(`fileStatus.conflicted`)}),t.originalPath&&(0,Y.jsx)(`span`,{className:`break-all font-mono text-[11px] text-muted-foreground transition-colors group-hover:text-foreground/70`,children:t.status===`renamed`?y5(`fileStatus.renamedFrom`,{path:t.originalPath}):t.originalPath})]})]})},`${t.path}:${t.originalPath??``}`))]})})]})]})},E5=(0,p.memo)(({projectId:e,chatSessionId:t=null,canSubmitReviewPrompt:n,reviewSubmitDisabledReason:r,onSubmitReviewPrompt:i,state:a,onStateChange:o,isResizing:s=!1,onClose:c,desktopWidth:l,panelElementRef:u})=>{let[d,f]=(0,p.useState)(null),[m,h]=(0,p.useState)(null),[g,_]=(0,p.useState)(null),[v,y]=(0,p.useState)(!1),[,b]=(0,p.useState)(!1),[x,S]=(0,p.useState)(new Map),[C,w]=(0,p.useState)(!1),T=(0,p.useRef)(0),E=(0,p.useRef)(0),D=(0,p.useRef)(null),O=(0,p.useRef)(null),k=a.selectedDiffPath,A=a.activeReviewTarget,j=a.editingReviewCommentKey,M=A?.commentKey??j??`chat`,N=a.reviewDraftInput,P=(0,p.useMemo)(()=>new Map(a.reviewComments.map(e=>[sk(e.filePath,e.changeKey),e])),[a.reviewComments]),F=(0,p.useCallback)(async()=>{if(!e)throw Error(`Project id is required`);return t?await Wk(e,t):await yn(e)},[t,e]),I=(0,p.useCallback)(async()=>{if(!e)throw Error(`Project id is required`);return t?await Gk(e,t):await xn(e)},[t,e]);(0,p.useEffect)(()=>{D.current=d},[d]),(0,p.useEffect)(()=>{O.current=m},[m]);let L=(0,p.useCallback)(async()=>{if(!e){E.current+=1,f(null),h(null),_(null),y(!1),b(!1);return}let t=T.current+1,n=E.current+1;T.current=t,E.current=n,y(!0),b(!0);let[r,i]=await Promise.allSettled([F(),I()]);T.current===t&&(r.status===`fulfilled`?(D.current=r.value,f(r.value),_(null)):_(w5(r.reason,y5(`errors.loadDiff`))),i.status===`fulfilled`&&(O.current=i.value,h(i.value)),E.current===n&&y(!1),b(!1))},[F,I,e]),R=(0,p.useCallback)(async(t={})=>{if(!e)return;let{broadcastOnSignatureChange:n=!1}=t,r=T.current+1;T.current=r,b(!0);try{let t=await I();if(T.current!==r)return;let i=O.current?.workspace_signature??null,a=t.workspace_signature??null,o=!D.current||i!==a;if(O.current=t,h(t),!o){E.current+=1,y(!1);return}let s=!D.current,c=E.current+1;E.current=c,s&&y(!0);try{let t=await F();if(T.current!==r)return;D.current=t,f(t),_(null),n&&i!==a&&$4(e)}catch(e){if(T.current!==r)return;D.current||_(w5(e,y5(`errors.loadDiff`)))}finally{s&&E.current===c&&y(!1)}}catch{D.current||(E.current+=1,y(!1));return}finally{T.current===r&&b(!1)}},[F,I,e]);(0,p.useEffect)(()=>{L()},[L]),(0,p.useEffect)(()=>{if(e)return e3(t=>{t===e&&R()})},[e,R]),(0,p.useEffect)(()=>{if(!e)return;let t=n3(()=>{document.visibilityState===`visible`&&R({broadcastOnSignatureChange:!0})});return()=>{t()}},[e,R]),(0,p.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>{document.visibilityState===`visible`&&R({broadcastOnSignatureChange:!0})},vre);return()=>{window.clearInterval(t)}},[e,R]);let z=(0,p.useMemo)(()=>{let e=typeof d?.diff==`string`?d.diff:``;return e.trim()?Pw(e,{nearbySequences:`zip`}).map(e=>({...e,pathCandidates:x5(e)})):[]},[d]),B=(0,p.useMemo)(()=>{let e=new Map;for(let t of z)for(let n of t.pathCandidates)e.has(n)||e.set(n,t);return e},[z]),V=(0,p.useMemo)(()=>xre({diffResponse:d,gitStatus:m}),[d,m]);(0,p.useEffect)(()=>{if(k!==`all`&&!(!d&&!m)){if(V.length===0){o(e=>({...e,selectedDiffPath:`all`}));return}V.some(e=>e.path===k)||o(e=>({...e,selectedDiffPath:`all`}))}},[d,m,o,k,V]);let H=k===`all`?null:B.get(k)??null,ee=(0,p.useMemo)(()=>yre(z,H),[z,H]),U=(0,p.useMemo)(()=>k===`all`?z:H?[H]:[],[z,k,H]);(0,p.useEffect)(()=>{S(new Map)},[z]),(0,p.useEffect)(()=>{if(ee.length===0)return;let e=!1,t=null,n=0,r=()=>{if(e)return;let i=ee.slice(n,n+v5);i.length!==0&&(S(e=>{let t=new Map(e);for(let e of i){let n=S5(e);t.has(n)||t.set(n,C5(e))}return t}),n+=v5,n<ee.length&&(t=window.setTimeout(r,0)))};return t=window.setTimeout(r,0),()=>{e=!0,t!==null&&window.clearTimeout(t)}},[ee]);let te=(0,p.useMemo)(()=>{let e=new Map;for(let t of ee.slice(0,v5))e.set(S5(t),C5(t));return e},[ee]),ne=(0,p.useMemo)(()=>U.map(e=>({...e,tokens:x.get(S5(e))??te.get(S5(e))??null})),[te,x,U]),re=(0,p.useMemo)(()=>z.map(e=>({...e,tokens:null})),[z]),ie=(0,p.useMemo)(()=>bre(a.reviewComments),[a.reviewComments]),ae=ie.length,oe=n&&!C&&ae>0,W=(0,p.useCallback)(()=>{o(e=>({...e,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``,reviewComments:[]}))},[o]),se=(0,p.useCallback)(({filePath:e,changeKey:t,commentKey:r})=>{let i=P.get(r);if(i){o(e=>({...e,selectedDiffPath:i.filePath,activeReviewTarget:null,editingReviewCommentKey:r,reviewDraftInput:i.comment}));return}n&&o(n=>({...n,activeReviewTarget:{filePath:e,changeKey:t,commentKey:r},editingReviewCommentKey:null,reviewDraftInput:``}))},[n,o,P]),ce=(0,p.useCallback)(()=>{o(e=>({...e,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``}))},[o]),le=(0,p.useCallback)(e=>{let t=P.has(e.commentKey);if(!n&&!t)return;let r=N.trim();if(!r)return;let i=e.change.type===`insert`?null:`oldLineNumber`in e.change?e.change.oldLineNumber:e.change.lineNumber,a=e.change.type===`delete`?null:`newLineNumber`in e.change?e.change.newLineNumber:e.change.lineNumber;o(t=>{let n=new Map(t.reviewComments.map(e=>[sk(e.filePath,e.changeKey),e]));return n.set(e.commentKey,{scope:`uncommitted`,filePath:e.filePath,changeKey:e.changeKey,changeType:e.change.type,oldLineNumber:i,newLineNumber:a,hunkHeader:e.hunk.content,lineContent:e.change.content,diffSnippet:ck(e.hunk,e.change),comment:r}),{...t,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``,reviewComments:[...n.values()]}})},[n,o,P,N]),ue=(0,p.useCallback)(e=>{let t=P.get(e);t&&o(n=>({...n,selectedDiffPath:t.filePath,activeReviewTarget:null,editingReviewCommentKey:e,reviewDraftInput:t.comment}))},[o,P]),de=(0,p.useCallback)(e=>{o(t=>({...t,activeReviewTarget:t.activeReviewTarget?.commentKey===e?null:t.activeReviewTarget,editingReviewCommentKey:t.editingReviewCommentKey===e?null:t.editingReviewCommentKey,reviewDraftInput:t.activeReviewTarget?.commentKey===e||t.editingReviewCommentKey===e?``:t.reviewDraftInput,reviewComments:t.reviewComments.filter(t=>sk(t.filePath,t.changeKey)!==e)}))},[o]),fe=(0,p.useCallback)(async()=>{if(!oe)return;w(!0);let e=pk({drafts:ie,findings:[],githubComments:[],uncommittedFiles:z});try{await i(e),W(),Q.success(y5(`toasts.sendChangesSuccess`),{id:`chat-diff-review-submit-success`})}catch(e){Q.error(w5(e,y5(`errors.sendChanges`)),{id:`chat-diff-review-submit-error`})}finally{w(!1)}},[oe,W,i,z,ie]),pe=(0,p.useCallback)(e=>(0,Y.jsx)(V2,{reviewComments:ie,pendingFixCount:ae,triggerMode:e===`wide`?`full`:`compact`,canSendReview:oe,isSubmittingReview:C,reviewSubmitDisabledReason:r??void 0,onClearPendingFixes:W,onSubmitReview:()=>{fe()}}),[oe,W,fe,C,ae,ie,r]),me=c?(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,"aria-label":y5(`closeAriaLabel`),className:`text-muted-foreground hover:text-foreground`,onClick:c,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})}):null,he=l?{"--chat-changes-panel-width":`${l}px`}:void 0;return(0,Y.jsx)(`aside`,{"data-testid":`chat-changes-panel`,"data-desktop-width":l?String(l):void 0,ref:u,style:he,className:X(`flex h-[26rem] min-h-0 w-full shrink-0 flex-col overflow-hidden border-t border-border/70 bg-background/20 xl:h-full xl:border-l xl:border-t-0`,l?`xl:w-[var(--chat-changes-panel-width)]`:`xl:w-[32rem]`),children:(0,Y.jsx)(P4,{selectedDiffPath:k,sidebarFiles:V,diffResponse:d,isDiffLoading:v,diffError:g,allDiffFiles:re,renderedFiles:ne,viewType:`unified`,onViewTypeChange:()=>{},onRetry:()=>{L()},activeReviewTarget:A,editingReviewCommentKey:j,reviewDraftInstanceKey:M,reviewDraftInput:N,reviewComments:ie,reviewFindings:[],githubComments:[],selectedReviewFindingIds:[],selectedGitHubCommentIds:[],canSelectReviewTarget:n,canEditActiveReviewDraft:n,reviewFindingsError:null,gitHubCommentsError:null,hasStaleReviewFindings:!1,onSelectReviewTarget:se,onToggleReviewFindingSelection:()=>{},onToggleGitHubCommentSelection:()=>{},onReviewDraftInputChange:e=>{o(t=>({...t,reviewDraftInput:e}))},onCancelReviewDraft:ce,onEditReviewDraft:ue,onRemoveReviewDraft:de,onSaveReviewDraft:le,diffThemeClassName:B4,resolveFilePath:S5,normalizeDiffPath:b5,emptyStateTitle:y5(`emptyStateTitle`),emptyStateDescription:y5(`emptyStateDescription`),filePickerControl:e=>(0,Y.jsx)(wre,{selectedDiffPath:k,sidebarFiles:V,diffStats:d?.stats??null,triggerMode:e===`wide`?`full`:`compact`,onSelectDiffPath:e=>{o(t=>({...t,selectedDiffPath:e}))}}),reviewSummaryControl:pe,extraHeaderControl:me,surfaceVariant:`flat`,showViewTypeToggle:!1,gutterVariant:`compact`,isResizing:s,resizePlaceholderLineThreshold:200})})});E5.displayName=`ChatChangesPanel`;var D5=({projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r=null,previousThinkingLog:i=null,previousThinkingMessageId:a=null,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l=!1,canShowComposer:u,cardClassName:d,isExternallyResizing:f=!1,pendingAgentRevealKey:p=null,pendingAgentRevealDelayMs:m=0,composerFocusNonce:h=0,blurComposerOnSendStart:g=!1,hidePendingAgentTitle:_=!1,forceScrollToBottomKey:v,header:y,composerControls:b,composerInlineControls:x,composerTheme:S=`default`,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E=[],followUpPlaceholder:D,emptyStateText:O=null,renderMessageFooter:k,isSendingFollowUp:A,isUploadingAttachments:j=!1,canAttachImages:M=!1,followUpDisabledReason:N,onFollowUpPromptChange:P,onFollowUpKeyDown:F,onFollowUpPaste:I,onUploadAttachments:L,onRemoveAttachment:R,onFollowUpSubmit:z})=>(0,Y.jsx)(HW,{projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r,previousThinkingLog:i,previousThinkingMessageId:a,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l,autoScrollBehavior:`sticky`,surfaceVariant:`chat`,canShowComposer:u,cardClassName:d,header:y,composerControls:b,composerInlineControls:x,composerTheme:S,composerSize:`compact-on-laptop`,showThinkingPlacement:`header`,pinComposerToBottom:!0,isExternallyResizing:f,pendingAgentRevealKey:p,pendingAgentRevealDelayMs:m,composerFocusNonce:h,blurComposerOnSendStart:g,forceScrollToBottomKey:v,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E,followUpPlaceholder:D,emptyStateText:O,autoFocusComposer:!0,renderMessageFooter:k,isSendingFollowUp:A,isUploadingAttachments:j,canAttachImages:M,followUpDisabledReason:N,hidePendingAgentTitle:_,onFollowUpPromptChange:P,onFollowUpKeyDown:F,onFollowUpPaste:I,onUploadAttachments:L,onRemoveAttachment:R,onFollowUpSubmit:z}),Tre={default:`h-5 rounded-md border-amber-500/40 bg-amber-500/10 px-1.5 text-[10px] uppercase tracking-[0.16em] text-amber-200`,muted:`h-5 rounded-md border-amber-500/40 bg-amber-500/10 px-1.5 text-[10px] uppercase tracking-[0.16em] text-amber-100`},O5=({tone:e=`default`,className:t,children:n,...r})=>(0,Y.jsx)(lb,{variant:`outline`,className:X(Tre[e],t),...r,children:n}),Ere=`mt-1 flex min-h-5 flex-wrap items-center gap-2 text-xs text-muted-foreground`,Dre=({label:e})=>(0,Y.jsx)(`div`,{className:`inline-flex items-center rounded-full border border-amber-500/30 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-100`,children:e}),k5=({title:e,tool:t=null,modelLabel:n=null,interrupted:r=!1,interruptedLabel:i,usage:a=null,metadataExtra:o=null,actions:s=null,warnings:c=null})=>(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`h3`,{className:`truncate text-sm font-semibold text-foreground`,children:e}),(0,Y.jsxs)(`div`,{className:Ere,children:[(0,Y.jsx)(gP,{tool:t,className:`text-[11px]`}),n?(0,Y.jsx)(`p`,{children:n}):null,r?(0,Y.jsx)(Dre,{label:i}):null,a?(0,Y.jsx)(bP,{totalTokens:a.totalTokens,contextWindow:a.contextWindow,cost:a.cost,tool:a.tool,model:a.model,availableModels:a.availableModels}):null,o]})]}),s]}),c]}),A5=(e,t)=>sb.t(`projects:memory.${e}`,t),Ore=e=>A5(`stageLabels.${e}`),kre=e=>A5(`priorityLabels.${e}`),j5=()=>({kind:`decision`,title:``,scope:``,content:``,rationale:``,implications:``,stages:``,priority:`normal`}),M5=e=>e.kind===`convention`?{kind:`convention`,title:e.title,scope:e.scope??``,content:e.instruction,rationale:e.rationale??``,implications:``,stages:e.stages.join(`
|
|
257
257
|
`),priority:e.priority}:{kind:`decision`,title:e.title,scope:e.scope??``,content:e.decision,rationale:e.rationale??``,implications:e.implications.join(`
|
|
258
258
|
`),stages:``,priority:`normal`},Are=e=>e.split(`
|
|
259
|
-
`).map(e=>e.trim()).filter(Boolean).filter((e,t,n)=>n.indexOf(e)===t),jre=e=>{let t=[`plan`,`build`,`review`,`follow_up`,`plan_follow_up`,`chat`];return e.split(/\n|,/).map(e=>e.trim()).filter(e=>t.includes(e)).filter((e,t,n)=>n.indexOf(e)===t)},Mre=({suggestion:e,isPending:t,onReview:n,onAccept:r,onDismiss:i})=>{let a=e.kind===`decision`?e.duplicate_match?.decision??null:null,o=A5(a?`suggested.saveAsNewDecision`:`suggested.accept`),s=e.kind===`decision`?e.decision:e.instruction;return(0,Y.jsx)(`li`,{className:`rounded-xl border border-border/60 bg-background/40`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,Y.jsx)(`div`,{className:`flex items-start justify-between gap-3`,children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate text-sm font-semibold text-foreground`,children:e.title}),(0,Y.jsx)(O5,{children:A5(`suggested.badge`,{kind:e.kind})}),a?(0,Y.jsx)(O5,{tone:`muted`,children:A5(`suggested.duplicateBadge`)}):null]}),(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm text-muted-foreground`,children:s})]})}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`outline`,disabled:t,onClick:()=>n(e),children:A5(`suggested.review`)}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,disabled:t,onClick:()=>void r(e),children:o}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`ghost`,disabled:t,onClick:()=>void i(e),children:A5(`suggested.dismiss`)})]})]})})},Nre=({suggestion:e,isOpen:t,isEditing:n,isPending:r,draft:i,onOpenChange:a,onStartEdit:o,onDraftChange:s,onCancelEdit:c,onAccept:l,onDismiss:u})=>{if(!e)return null;let d=e.kind===`decision`?e.duplicate_match?.decision??null:null,f=d?A5(`suggested.saveAsNewDecision`):A5(`suggested.acceptAs`,{kind:e.kind});return(0,Y.jsx)(A_,{open:t,onOpenChange:a,children:(0,Y.jsxs)(P_,{className:`max-h-[85vh] overflow-y-auto sm:max-w-2xl`,children:[(0,Y.jsxs)(F_,{children:[(0,Y.jsx)(L_,{children:e.title}),(0,Y.jsx)(R_,{children:A5(`suggested.reviewDescription`,{kind:e.kind})})]}),(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[d?(0,Y.jsxs)(`div`,{className:`rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs leading-5 text-amber-100`,children:[(0,Y.jsx)(`p`,{className:`font-medium text-amber-50`,children:A5(`suggested.duplicateTitle`)}),(0,Y.jsxs)(`p`,{children:[(0,Y.jsxs)(`span`,{className:`font-medium`,children:[d.title,`:`]}),` `,d.decision]})]}):null,n?(0,Y.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.titleLabel`)}),(0,Y.jsx)(`input`,{"aria-label":A5(`editor.titleAriaLabel`),value:i.title,onChange:e=>s({...i,title:e.target.value}),className:`h-10 rounded-lg border border-border bg-background px-3 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.scopeLabel`)}),(0,Y.jsx)(`input`,{"aria-label":A5(`editor.scopeAriaLabel`),value:i.scope,onChange:e=>s({...i,scope:e.target.value}),className:`h-10 rounded-lg border border-border bg-background px-3 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:i.kind===`decision`?A5(`suggested.decision`):A5(`suggested.instruction`)}),(0,Y.jsx)(`textarea`,{"aria-label":i.kind===`decision`?A5(`suggested.decision`):A5(`suggested.instruction`),value:i.content,onChange:e=>s({...i,content:e.target.value}),rows:5,className:`min-h-32 rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.rationaleLabel`)}),(0,Y.jsx)(`textarea`,{"aria-label":A5(`editor.rationaleAriaLabel`),value:i.rationale,onChange:e=>s({...i,rationale:e.target.value}),rows:3,className:`rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),i.kind===`decision`?(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`suggested.implicationsMultiline`)}),(0,Y.jsx)(`textarea`,{"aria-label":A5(`editor.implicationsAriaLabel`),value:i.implications,onChange:e=>s({...i,implications:e.target.value}),rows:3,className:`rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:A5(`suggested.stagesMultiline`)}),(0,Y.jsx)(`textarea`,{"aria-label":A5(`editor.stagesLabel`),value:i.stages,onChange:e=>s({...i,stages:e.target.value}),rows:3,className:`rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.priorityLabel`)}),(0,Y.jsxs)(`select`,{"aria-label":A5(`editor.priorityAriaLabel`),value:i.priority,onChange:e=>s({...i,priority:e.target.value}),className:`h-10 rounded-lg border border-border bg-background px-3 text-sm text-foreground outline-none transition focus:border-primary/60`,children:[(0,Y.jsx)(`option`,{value:`low`,children:A5(`priorityLabels.low`)}),(0,Y.jsx)(`option`,{value:`normal`,children:A5(`priorityLabels.normal`)}),(0,Y.jsx)(`option`,{value:`high`,children:A5(`priorityLabels.high`)})]})]})]})]}):(0,Y.jsxs)(`div`,{className:`space-y-4 text-sm`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:e.kind===`decision`?A5(`suggested.decision`):A5(`suggested.instruction`)}),(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap text-foreground`,children:e.kind===`decision`?e.decision:e.instruction})]}),e.rationale?(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.rationaleLabel`)}),(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap text-muted-foreground`,children:e.rationale})]}):null,e.kind===`decision`&&e.implications.length>0?(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.implicationsLabel`)}),(0,Y.jsx)(`ul`,{className:`list-disc space-y-1 pl-5 text-muted-foreground`,children:e.implications.map(e=>(0,Y.jsx)(`li`,{children:e},e))})]}):null,e.kind===`convention`?(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.stagesLabel`)}),(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:e.stages.map(e=>Ore(e)).join(`, `)||A5(`suggested.noneSpecified`)})]}),(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.priorityLabel`)}),(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:kre(e.priority)})]})]}):null]})]}),(0,Y.jsxs)(I_,{className:`flex flex-wrap gap-2 sm:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n?(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,disabled:r,onClick:c,children:A5(`suggested.cancelEdits`)}):(0,Y.jsx)(Z,{type:`button`,variant:`outline`,disabled:r,onClick:()=>o(e),children:A5(`suggested.edit`)}),(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,disabled:r,onClick:()=>void u(e),children:A5(`suggested.dismiss`)})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[d?(0,Y.jsx)(Z,{type:`button`,variant:`outline`,disabled:r,onClick:()=>void l(e,!0),children:A5(`suggested.updateExistingDecision`)}):null,(0,Y.jsx)(Z,{type:`button`,disabled:r,onClick:()=>void l(e,!1),children:f})]})]})]})})},Pre=({projectId:e,suggestions:t,title:n,description:r,emptyState:i=null,onSuggestionsChanged:a})=>{let[o,s]=(0,p.useState)(null),[c,l]=(0,p.useState)(null),[u,d]=(0,p.useState)(j5),[f,m]=(0,p.useState)(null);(0,p.useEffect)(()=>{l(e=>e&&!t.some(t=>t.id===e)?null:e),s(e=>e&&!t.some(t=>t.id===e)?null:e)},[t]);let h=o?t.find(e=>e.id===o)??null:null,g=()=>{l(null),d(j5())},_=e=>{s(e.id),l(e.id),d(M5(e))},v=e=>{c&&c!==e.id&&g(),s(e.id)},y=e=>{e||(s(null),c&&g())},b=async(t,n)=>{let r=c===t.id?u:M5(t),i=r.kind===`decision`?{title:r.title.trim(),scope:r.scope.trim()||null,decision:r.content.trim(),rationale:r.rationale.trim()||null,implications:Are(r.implications)}:{title:r.title.trim(),scope:r.scope.trim()||null,instruction:r.content.trim(),rationale:r.rationale.trim()||null,stages:jre(r.stages),priority:r.priority};m(t.id);try{if(n){if(t.kind!==`decision`)throw Error(A5(`messages.onlyDecisionSuggestionsCanUpdate`));let n=t.duplicate_match?.decision;if(!n)throw Error(A5(`messages.noExistingDecision`));await Vn(e,t.id,n.id,i)}else await zn(e,t.id,i);g(),s(null),a?.()}catch(e){Q.error(e instanceof Error?e.message:A5(`messages.saveSuggestionError`),{id:`project-memory-suggestion-error`})}finally{m(null)}},x=async t=>{m(t.id);try{await Bn(e,t.id),c===t.id&&g(),o===t.id&&s(null),a?.()}catch(e){Q.error(e instanceof Error?e.message:A5(`messages.dismissSuggestionError`),{id:`project-memory-suggestion-error`})}finally{m(null)}};return(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[n||r?(0,Y.jsx)(`div`,{className:`flex items-center justify-between gap-3`,children:(0,Y.jsxs)(`div`,{children:[n?(0,Y.jsx)(`h4`,{className:`text-xs font-semibold uppercase tracking-[0.2em] text-muted-foreground`,children:n}):null,r?(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r}):null]})}):null,t.length>0?(0,Y.jsx)(`ul`,{className:`space-y-2`,children:t.map(e=>(0,Y.jsx)(Mre,{suggestion:e,isPending:f===e.id,onReview:v,onAccept:e=>b(e,!1),onDismiss:x},e.id))}):i?(0,Y.jsx)(`div`,{className:`rounded-lg border border-dashed border-border/70 px-3 py-4 text-sm text-muted-foreground`,children:i}):null,(0,Y.jsx)(Nre,{suggestion:h,isOpen:!!h,isEditing:c===h?.id,isPending:f===h?.id,draft:c===h?.id?u:h?M5(h):u,onOpenChange:y,onStartEdit:_,onDraftChange:d,onCancelEdit:g,onAccept:b,onDismiss:x})]})},N5=()=>({selectedDiffPath:`all`,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``,reviewComments:[]}),Fre=[{key:`today`,label:`Today`},{key:`yesterday`,label:`Yesterday`},{key:`last_7_days`,label:`Last 7 Days`},{key:`older`,label:`Older`}],Ire=e=>{if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t},P5=e=>e.activity_at??e.last_user_message_at??e.created_at,Lre=(e,t)=>{let n=P5(e),r=P5(t);return n===r?e.created_at===t.created_at?t.id.localeCompare(e.id):t.created_at.localeCompare(e.created_at):r.localeCompare(n)},F5=e=>[...e].sort(Lre),Rre=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),zre=(e,t=new Date)=>{let n=Ire(P5(e));if(!n)return`older`;let r=Rre(t),i=new Date(r);i.setDate(i.getDate()-1);let a=new Date(r);return a.setDate(a.getDate()-6),n>=r?`today`:n>=i?`yesterday`:n>=a?`last_7_days`:`older`},I5=(e,t=new Date)=>{let n=new Map;for(let r of F5(e)){let e=zre(r,t);n.set(e,[...n.get(e)??[],r])}return Fre.flatMap(e=>{let t=n.get(e.key)??[];return t.length===0?[]:[{key:e.key,label:e.label,sessions:t}]})},L5=e=>{let t={...e};return delete t.messages,t.agent_log=null,t.agent_message_id=null,t.previous_agent_log=null,t.previous_agent_message_id=null,t.streaming_response=null,t},R5=e=>e===`claude`?sb.t(`chatView.tool.claude`):sb.t(`chatView.tool.opencode`),z5=e=>new Map(e.map(e=>[e.id,e.label])),B5=({availableModelsById:e,model:t})=>t?e.get(t)??t:null,V5=({modelLabel:e,tool:t})=>e??R5(t),H5=()=>sb.t(`chatView.user.you`),U5=`archon.chat-draft`,W5=({projectId:e,tool:t,chatSessionId:n})=>n?`${U5}:${e}:session:${n}`:`${U5}:${e}:draft:${t}`,G5=e=>{if(!e)return``;try{return window.localStorage.getItem(e)??``}catch{return``}},K5=({storageKey:e,value:t})=>{if(e)try{if(t){window.localStorage.setItem(e,t);return}window.localStorage.removeItem(e)}catch{}},q5=(e,t)=>sb.t(`chatView.${e}`,t),Bre=1500,Vre=`archon.chat-run-config`,Hre=`archon.chat-changes-panel-layout`,Ure=`archon.chat-session-list-layout`,J5=512,Y5=360,Wre=.6,Gre=6,X5=`/`,Kre=`Slash`,qre=`NumpadDivide`,Jre=600,Z5=4,Q5=(e,t)=>{let n=Number.isFinite(e)?Math.round(e):J5;if(!Number.isFinite(t))return Math.max(Y5,n);let r=Math.max(Y5,Math.round(t*Wre));return Math.max(Y5,Math.min(r,n))},Yre=e=>q5(e===`plan`?`mode.plan`:`mode.build`),$5=e=>q5(e===`plan`?`placeholders.plan`:`placeholders.build`),e7=e=>q5(`pendingMemorySuggestions`,{count:e}),Xre=e=>!e.defaultPrevented&&!e.altKey&&!e.repeat&&(e.ctrlKey||e.metaKey)&&(e.key===X5||e.code===Kre||e.code===qre),t7=({modifierLabel:e,keys:t,ariaHidden:n=!1})=>(0,Y.jsxs)(`span`,{"aria-hidden":n,className:`flex items-center gap-0.5 text-[10px] leading-none`,children:[(0,Y.jsx)($M,{"aria-hidden":n,children:e}),t.map(e=>(0,Y.jsxs)(`span`,{className:`contents`,children:[(0,Y.jsx)(`span`,{children:`+`}),(0,Y.jsx)($M,{"aria-hidden":n,children:e})]},e))]}),Zre=({label:e,modifierLabel:t,keys:n})=>(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{children:e}),(0,Y.jsx)(t7,{modifierLabel:t,keys:n,ariaHidden:!0})]}),n7=({projectId:e,tool:t})=>`${Vre}:${e}:${t}`,r7=e=>`${Hre}:${e}`,i7=e=>`${Ure}:${e}`,a7=e=>{if(!e)return{isOpen:!0,width:J5};try{let t=window.localStorage.getItem(r7(e));if(!t)return{isOpen:!0,width:J5};let n=JSON.parse(t),r=typeof n.width==`number`&&Number.isFinite(n.width)?Math.max(Y5,Math.round(n.width)):J5;return{isOpen:n.isOpen!==!1,width:r}}catch{return{isOpen:!0,width:J5}}},o7=e=>{if(!e)return{isOpen:!0};try{let t=window.localStorage.getItem(i7(e));return t?{isOpen:JSON.parse(t).isOpen!==!1}:{isOpen:!0}}catch{return{isOpen:!0}}},Qre=({projectId:e,isOpen:t,width:n})=>{if(e)try{window.localStorage.setItem(r7(e),JSON.stringify({isOpen:t,width:n}))}catch{}},$re=({projectId:e,isOpen:t})=>{if(e)try{window.localStorage.setItem(i7(e),JSON.stringify({isOpen:t}))}catch{}},s7=({projectId:e,tool:t})=>{if(!e||t!==`opencode`)return null;try{let n=window.localStorage.getItem(n7({projectId:e,tool:t}));if(!n)return null;let r=JSON.parse(n),i=(typeof r.model==`string`?r.model.trim():``)||null,a=r.mode===`plan`||r.mode===`build`?r.mode:null;return!i&&!a?null:{model:i,variant:i&&typeof r.variant==`string`&&r.variant.trim()||null,mode:a}}catch{return null}},c7=({projectId:e,tool:t,model:n,variant:r,mode:i})=>{if(!(!e||t!==`opencode`||!n&&!i))try{window.localStorage.setItem(n7({projectId:e,tool:t}),JSON.stringify({model:n,variant:n?r:null,mode:i}))}catch{}},l7=({projectId:e,tool:t})=>s7({projectId:e,tool:t})?.mode??`plan`,u7=({activeProjectId:e,helperModel:t,helperVariant:n,activeTool:r,availableModels:i})=>{let a=s7({projectId:e,tool:r}),o=new Set(i.map(e=>e.id)),s=e=>e?o.size===0?!0:o.has(e):!1,c=t??``,l=a?.model??``,u=s(l)?l:s(c)?c:``,d=u===l?a?.variant??null:u&&u===c?n??null:null,f=i.find(e=>e.id===u)??null;return{model:u,variant:f?f.variants.includes(d??``)?d??``:``:u?d??``:``,mode:a?.mode??`plan`}},d7=e=>e&&e.replace(/\s+/g,` `).trim()||null,eie=e=>{let t=d7(e.first_user_message_preview);if(t)return t;let n=e.messages?.find(e=>e.role===`user`)?.content;return d7(n)},tie=({chatSessionId:e,instruction:t,attachments:n,createdAt:r})=>({id:`optimistic:${e}:${r}`,chat_session_id:e,role:`user`,kind:`prompt`,content:t,attachments:n,created_at:r}),nie=({session:e,instruction:t,attachments:n,createdAt:r})=>({...e,messages:[...e.messages??[],tie({chatSessionId:e.id,instruction:t,attachments:n,createdAt:r})],activity_at:r,last_user_message_at:r,updated_at:r}),rie=e=>!!(e.first_user_message_preview||e.last_user_message_at||e.messages?.some(e=>e.role===`user`)),f7=({activeProject:e,activeProjectBranchState:t,session:n})=>!e||n.target_available===!1?!1:n.target_kind===`bundle`?e.active_target_kind===`bundle`&&!!n.target_bundle_id&&e.active_target_bundle_id===n.target_bundle_id:e.active_target_kind===`bundle`?!1:!t||!n.target_branch_snapshot?!0:t?.status!==`ready`||!t.branch?!1:t.branch===n.target_branch_snapshot,iie=({session:e,activeProject:t,activeProjectBranchState:n})=>e.target_kind===`bundle`?e.target_label_snapshot||q5(`targets.bundleFallback`):!t||t.active_target_kind===`bundle`||n?.status!==`ready`||!n.branch||!e.target_branch_snapshot||n.branch===e.target_branch_snapshot?null:q5(`targets.repoRootWithBranch`,{branch:e.target_branch_snapshot}),aie=e=>e.target_kind===`bundle`?e.target_label_snapshot||q5(`targets.bundleFallback`):e.target_branch_snapshot?q5(`targets.repoRootWithBranch`,{branch:e.target_branch_snapshot}):q5(`targets.repoRoot`),oie=({activeProject:e,activeProjectBranchState:t})=>e?e.active_target_kind===`bundle`?q5(`targets.selectedBundleTarget`):t?.branch?q5(`targets.repoRootWithBranch`,{branch:t.branch}):q5(`targets.repoRoot`):q5(`targets.currentTarget`),p7=e=>e.agent_status===`running`?q5(`sidebar.deleteDisabledReason`):null,sie=({proposals:e,isApplying:t,onApply:n})=>e.status===`applied`?(0,Y.jsxs)(`div`,{className:`w-full rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-3 text-sm`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-foreground`,children:q5(`ticketProposal.createdTitle`)}),(0,Y.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:q5(`ticketProposal.createdDescription`,{count:e.created_tickets.length})}),e.created_tickets.length>0?(0,Y.jsx)(`ul`,{className:`mt-3 space-y-1 text-foreground`,children:e.created_tickets.map(e=>(0,Y.jsx)(`li`,{children:e.title},e.ticket_id))}):null]}):(0,Y.jsxs)(`div`,{className:`w-full rounded-md border border-sky-500/30 bg-sky-500/10 px-3 py-3 text-sm`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-foreground`,children:q5(`ticketProposal.proposedTitle`)}),(0,Y.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:q5(`ticketProposal.proposedDescription`)}),(0,Y.jsx)(`ul`,{className:`mt-3 space-y-3`,children:e.tickets.map(e=>(0,Y.jsxs)(`li`,{className:`rounded border border-border/60 bg-background/80 px-3 py-2`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-foreground`,children:e.title}),(0,Y.jsx)(`div`,{className:`mt-1 whitespace-pre-wrap text-muted-foreground`,children:e.description})]},e.key))}),e.dependencies.length>0?(0,Y.jsx)(`div`,{className:`mt-3 text-muted-foreground`,children:q5(`ticketProposal.dependenciesLabel`,{value:e.dependencies.map(e=>`${e.blocker_key} -> ${e.dependent_key}`).join(`, `)})}):null,(0,Y.jsx)(`div`,{className:`mt-3`,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,onClick:n,disabled:t,children:q5(t?`ticketProposal.creating`:`ticketProposal.create`)})})]}),cie=({activeProjectId:e,activeProject:t,activeProjectBranchState:n=null,activeTool:r,initialChatSessionId:i=null,onInitialChatNavigationConsumed:a,initialSpecDraft:o=null,onInitialSpecDraftConsumed:s,onViewSourceSpec:c,onRestoreSessionTarget:l,onReviewCapabilityChange:u,isExternallyResizing:d=!1,showChangesPanel:f=!0})=>{let m=I8(),[h,g]=(0,p.useState)([]),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(null),[x,S]=(0,p.useState)(null),[C,w]=(0,p.useState)(!1),[T,E]=(0,p.useState)(null),[D,O]=(0,p.useState)(()=>l7({projectId:e,tool:r})),[k,A]=(0,p.useState)({}),[j,M]=(0,p.useState)({}),[N,P]=(0,p.useState)({}),[F,I]=(0,p.useState)([]),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(``),[V,H]=(0,p.useState)(``),[ee,U]=(0,p.useState)([]),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(!1),[ae,oe]=(0,p.useState)(!1),[W,se]=(0,p.useState)(!1),[ce,le]=(0,p.useState)(!1),[ue,de]=(0,p.useState)(null),[fe,pe]=(0,p.useState)([]),[me,he]=(0,p.useState)(()=>new Set),[ge,_e]=(0,p.useState)(!1),[ve,ye]=(0,p.useState)(()=>new Set),[G,be]=(0,p.useState)(!1),[xe,Se]=(0,p.useState)(!1),[Ce,we]=(0,p.useState)(null),[Te,Ee]=(0,p.useState)([]),[De,Oe]=(0,p.useState)(!1),[ke,Ae]=(0,p.useState)(!1),[je,Me]=(0,p.useState)(0),[Ne,Pe]=(0,p.useState)(N5),[Fe,Ie]=(0,p.useState)(()=>o7(e).isOpen),[Le,Re]=(0,p.useState)(()=>a7(e).isOpen),[ze,Be]=(0,p.useState)(!1),[Ve,K]=(0,p.useState)(!1),[He,Ue]=(0,p.useState)(()=>a7(e).width),[We,Ge]=(0,p.useState)(0),[Ke,qe]=(0,p.useState)(null),[Je,q]=(0,p.useState)(()=>new Set),Xe=(0,p.useRef)({model:``,variant:``,skills:[],showModelSelector:!1}),Ze=(0,p.useRef)(!1),J=(0,p.useRef)(T),Qe=(0,p.useRef)(null),$e=(0,p.useRef)(null),et=(0,p.useRef)(0),tt=(0,p.useRef)(0),nt=(0,p.useRef)(null),rt=(0,p.useRef)(null),it=(0,p.useRef)(null),at=(0,p.useRef)(null),ot=(0,p.useRef)(null),st=(0,p.useRef)(null),ct=(0,p.useRef)(!1),lt=(0,p.useRef)(!1),ut=(0,p.useRef)(0),dt=(0,p.useRef)(J5),ft=(0,p.useRef)(J5),pt=(0,p.useRef)(!1),mt=(0,p.useRef)(0),ht=(0,p.useRef)({id:null,status:null}),gt=(0,p.useRef)(new Map),_t=(0,p.useRef)({}),vt=(0,p.useRef)({}),yt=(0,p.useRef)(new Set),bt=(0,p.useRef)(!1),xt=e?W5({projectId:e,tool:C?r:y?.tool??r,chatSessionId:C?null:_}):null,St=xt?k[xt]??``:``,Ct=C?r:y?.tool??r,wt=y?j[y.id]??[]:[],Tt=(y?N[y.id]??0:0)>0;(0,p.useEffect)(()=>{Ze.current=C},[C]),(0,p.useEffect)(()=>{_t.current=k},[k]),(0,p.useEffect)(()=>{vt.current=j},[j]),(0,p.useEffect)(()=>{if(!(!i||h.length===0)&&h.some(e=>e.id===i)){if(_===i){a?.();return}S(null),de(null),v(i),w(!1),pt.current=!0,a?.()}},[i,h,_,a]),(0,p.useEffect)(()=>{if(!xt||yt.current.has(xt))return;yt.current.add(xt);let e=G5(xt);e&&A(t=>Object.prototype.hasOwnProperty.call(t,xt)?t:{...t,[xt]:e})},[xt]),(0,p.useEffect)(()=>{!xt||!Object.prototype.hasOwnProperty.call(k,xt)||K5({storageKey:xt,value:k[xt]??``})},[xt,k]),(0,p.useEffect)(()=>{if(!C){Qe.current=null;return}let e=Qe.current;!e||!xt||St||A(t=>t[xt]?t:{...t,[xt]:e})},[C,xt,St]),(0,p.useEffect)(()=>{$e.current=_},[_]),(0,p.useEffect)(()=>{J.current=T},[T]);let Et=(0,p.useCallback)(()=>{tt.current+=1},[]),Dt=(0,p.useCallback)(e=>{Et(),b(e)},[Et]);(0,p.useEffect)(()=>{if(!bt.current){bt.current=!0;return}let t=a7(e),n=o7(e);Ze.current=!1,pt.current=!1,yt.current=new Set,v(null),Dt(null),w(!1),A({}),M({}),P({}),de(null),pe([]),he(new Set),_e(!1),ye(new Set),qe(null),Ee([]),Ae(!1),ie(!1),Pe(N5()),q(new Set),gt.current=new Map,ft.current=t.width,Ie(n.isOpen),Ue(t.width),Re(t.isOpen)},[e,Dt]),(0,p.useEffect)(()=>{ze||(ft.current=He,it.current&&(it.current.style.setProperty(`--chat-changes-panel-width`,`${He}px`),it.current.setAttribute(`data-desktop-width`,String(He))))},[He,ze]),(0,p.useEffect)(()=>{if(!f||!nt.current)return;let e=nt.current.getBoundingClientRect().width;if(e<=0)return;let t=Q5(He,e);t!==He&&(ft.current=t,Ue(t))},[He,f]),(0,p.useEffect)(()=>{$re({projectId:e,isOpen:Fe})},[e,Fe]),(0,p.useEffect)(()=>{f&&Qre({projectId:e,isOpen:Le,width:He})},[e,He,Le,f]),(0,p.useEffect)(()=>{Ae(!1)},[_,C]);let Ot=(0,p.useCallback)(e=>{let t=L5(e);g(e=>{let n=e.findIndex(e=>e.id===t.id);if(n===-1)return F5([...e,t]);let r=[...e];return r[n]=t,F5(r)})},[]),kt=(0,p.useCallback)(t=>{let n=Array.from(new Set(t));if(n.length===0)return;let i=new Set(n),a=$e.current,o=e?n.map(t=>W5({projectId:e,tool:r,chatSessionId:t})):[];A(e=>{let t=o.filter(t=>Object.prototype.hasOwnProperty.call(e,t));if(t.length===0)return e;let n={...e};for(let e of t)delete n[e];return n}),M(e=>{let t={...e},r=!1;for(let e of n)Object.prototype.hasOwnProperty.call(t,e)&&(delete t[e],r=!0);return r?t:e}),P(e=>{let t={...e},r=!1;for(let e of n)Object.prototype.hasOwnProperty.call(t,e)&&(delete t[e],r=!0);return r?t:e});for(let e of o)K5({storageKey:e,value:``});g(e=>{let t=e.filter(e=>!i.has(e.id));if(a&&i.has(a)){let e=t[0]??null;v(e?.id??null),Dt(null),w(e===null),Ee([]),Oe(!1),Ae(!1)}return t}),q(e=>{let t=new Set(e),r=!1;for(let e of n)t.delete(e)&&(r=!0);return r?t:e}),qe(e=>e?.sessionId&&i.has(e.sessionId)?null:e),de(e=>e&&i.has(e)?null:e),pe(e=>e.filter(e=>!i.has(e))),he(e=>{let t=new Set(e),r=!1;for(let e of n)t.delete(e)&&(r=!0);return r?t:e}),ye(e=>{let t=new Set(e),r=!1;for(let e of n)t.delete(e)&&(r=!0);return r?t:e})},[e,r,Dt]),At=(0,p.useCallback)(e=>{kt([e])},[kt]),jt=(0,p.useCallback)((e,t)=>{e&&A(n=>n[e]===t?n:{...n,[e]:t})},[]),Mt=(0,p.useCallback)(e=>{e&&(A(t=>t[e]===``?t:{...t,[e]:``}),K5({storageKey:e,value:``}))},[]),Nt=(0,p.useCallback)((e,t)=>{M(n=>{if(t.length===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:t}})},[]),Pt=(0,p.useCallback)(e=>{M(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n}),P(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n})},[]),Ft=(0,p.useCallback)((e,t)=>{P(n=>{let r=Math.max(0,(n[e]??0)+t);if(r===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:r}})},[]),It=(0,p.useCallback)(({fromStorageKey:e,toStorageKey:t})=>{if(!e||!t||e===t)return;let n=Object.prototype.hasOwnProperty.call(_t.current,e)?_t.current[e]??``:G5(e);A(r=>{let i={...r,[t]:n};return delete i[e],i}),K5({storageKey:t,value:n}),K5({storageKey:e,value:``})},[]),Lt=(0,p.useCallback)((e,t)=>{g(n=>{let r=n.findIndex(t=>t.id===e);if(r===-1)return n;let i=n[r];if(i.pending_memory_suggestion_count===t)return n;let a=[...n];return a[r]={...i,pending_memory_suggestion_count:t},a}),b(n=>!n||n.id!==e||n.pending_memory_suggestion_count===t?n:(tt.current+=1,{...n,pending_memory_suggestion_count:t}))},[]),Rt=(0,p.useCallback)(async r=>{if(!e){g([]),v(null),Dt(null),w(!1),ie(!1);return}ne(!0);try{let i=await Fk(e,r);if(r?.aborted)return;let a=F5(i.map(L5)),o=a[0]??null,s=t?.active_target_kind===`bundle`||n?.status!==`loading`;g(a),v(e=>Ze.current?null:e&&a.some(t=>t.id===e)?e:e?a[0]?.id??null:pt.current?null:o?s?(pt.current=!0,f7({activeProject:t,activeProjectBranchState:n,session:o})?o.id:null):null:(pt.current=!0,null)),a.length===0&&w(!0)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:q5(`errors.loadSessions`))}finally{r?.aborted||(ne(!1),ie(!0))}},[t,n,e,Dt]),zt=(0,p.useCallback)(async(t,n)=>{if(!e){Dt(null);return}oe(!0);let r=et.current+1;et.current=r;let i=tt.current;try{let a=await Lk(e,t,n);if(n?.aborted)return;let o=tt.current!==i,s=et.current===r,c=$e.current===t&&!Ze.current;if(!s||o||!c)return;Dt(a),Ot(a)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:q5(`errors.loadSession`))}finally{n?.aborted||oe(!1)}},[e,Dt,Ot]),Bt=(0,p.useCallback)(async(n,r)=>{if(!e||!t?.memory_enabled){Ee([]),Oe(!1);return}Oe(!0);try{let t=await Rn(e,null,r,n);if(r?.aborted)return;Ee(t.suggestions),Lt(n,t.suggestions.length)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:q5(`errors.loadMemorySuggestions`))}finally{r?.aborted||Oe(!1)}},[t?.memory_enabled,e,Lt]),Vt=(0,p.useCallback)(()=>{Ee(e=>{let t=e.length>0?e.slice(0,-1):e;return _&&Lt(_,t.length),t}),Me(e=>e+1),Rt(),_&&zt(_)},[_,zt,Rt,Lt]);(0,p.useEffect)(()=>{let e=new AbortController;return Rt(e.signal),()=>{e.abort()}},[Rt]),(0,p.useEffect)(()=>{if(Ze.current||C||_||pt.current||h.length===0||t?.active_target_kind!==`bundle`&&n?.status===`loading`)return;pt.current=!0;let e=h[0]??null;e&&f7({activeProject:t,activeProjectBranchState:n,session:e})&&v(e.id)},[t,n,_,C,h]),(0,p.useEffect)(()=>{if(Ct!==`opencode`){I([]),R([]),Se(!1);return}let t=new AbortController;return(async()=>{Se(!0);try{let[n,r]=await Promise.all([Wn(Ct,t.signal),eN(Ct,t.signal,e)]);I(n),R(r)}catch(e){Ye(e)||(I(e=>e),R(e=>e))}finally{t.signal.aborted||Se(!1)}})(),()=>{t.abort()}},[e,Ct]),(0,p.useEffect)(()=>{if(C||!_){Dt(null);return}if(y?.id===_)return;Dt(null);let e=new AbortController;return zt(_,e.signal),()=>{e.abort()}},[y,_,C,zt,Dt]),(0,p.useEffect)(()=>{if(!t?.memory_enabled||C||!_){Ee([]),Oe(!1);return}let e=new AbortController;return Bt(_,e.signal),()=>{e.abort()}},[t?.memory_enabled,_,C,Bt,je]),(0,p.useEffect)(()=>{!ke||De||Te.length>0||Ae(!1)},[De,ke,Te.length]),(0,p.useEffect)(()=>{if(!_||y?.agent_status!==`running`)return;let e=new AbortController,t=window.setInterval(()=>{Promise.all([Rt(e.signal),zt(_,e.signal)])},Bre);return()=>{e.abort(),window.clearInterval(t)}},[y?.agent_status,_,zt,Rt]),(0,p.useEffect)(()=>{if(!e)return;let t=t=>{!t||t.project_id!==e||(t.id===_&&Dt(t),rie(t)&&Ot(t))},n=t=>{!t||t.project_id!==e||At(t.id)};return m.on(`chat-session:created`,t),m.on(`chat-session:updated`,t),m.on(`chat-session:deleted`,n),()=>{m.off(`chat-session:created`,t),m.off(`chat-session:updated`,t),m.off(`chat-session:deleted`,n)}},[e,_,At,Dt,m,Ot]),(0,p.useEffect)(()=>{C&&(J.current||O(l7({projectId:e,tool:r})))},[e,r,C]),(0,p.useEffect)(()=>{if(Ct!==`opencode`){B(``),H(``),U([]);return}if(C){let n=u7({activeProjectId:e,helperModel:t?.helper_model??null,helperVariant:t?.helper_variant??null,activeTool:Ct,availableModels:F});B(n.model),H(n.variant),U([]);return}B(y?.model??t?.helper_model??``),H(y?.variant??t?.helper_variant??``),U(y?.skills??[])},[e,t?.helper_model,t?.helper_variant,y?.id,y?.model,y?.skills,y?.variant,F,Ct,C]),(0,p.useEffect)(()=>{let e=F.find(e=>e.id===z)??null;H(t=>e?e.variants.includes(t)?t:``:t)},[F,z]),(0,p.useEffect)(()=>{if(Ct!==`opencode`||!C||!z||V)return;let n=u7({activeProjectId:e,helperModel:t?.helper_model??null,helperVariant:t?.helper_variant??null,activeTool:Ct,availableModels:F});n.model===z&&n.variant&&H(n.variant)},[e,t?.helper_model,t?.helper_variant,Ct,F,C,z,V]),(0,p.useEffect)(()=>{if(!ue)return;let e=y?.id===ue?y:h.find(e=>e.id===ue)??null;(!e||e.agent_status!==`running`)&&de(null)},[y,ue,h]),(0,p.useEffect)(()=>{let e=ht.current,n=y?.id??null,r=y?.agent_status??null;e.id===n&&e.status===`running`&&r===`done`&&t?.memory_enabled&&n&&Me(e=>e+1),ht.current={id:n,status:r}},[t?.memory_enabled,e,y?.agent_status,y?.id,y?.title]),(0,p.useEffect)(()=>{_&&q(e=>{if(!e.has(_))return e;let t=new Set(e);return t.delete(_),t})},[_]),(0,p.useEffect)(()=>{Ke&&Ke.sessionId!==_&&qe(null)},[_,Ke]),(0,p.useEffect)(()=>{let e=gt.current,t=new Map,n=[];for(let r of h){let i=e.get(r.id)??null,a=r.agent_status??null;i===`running`&&a===`done`&&r.id!==_&&n.push(r),t.set(r.id,a)}gt.current=t,q(e=>{let t=new Set(e),r=!1,i=new Set(h.map(e=>e.id));for(let e of t)i.has(e)||(t.delete(e),r=!0);for(let e of h){let i=e.agent_status??null,a=n.some(t=>t.id===e.id);if((e.id===_||i!==`done`)&&t.delete(e.id)){r=!0;continue}a&&!t.has(e.id)&&(t.add(e.id),r=!0)}return r?t:e})},[e,_,h]);let Ht=(0,p.useMemo)(()=>z5(F),[F]),Ut=(0,p.useMemo)(()=>I5(h),[h]),Wt=(0,p.useMemo)(()=>fe.length===0?[]:fe.flatMap(e=>{let t=h.find(t=>t.id===e)??(y?.id===e?y:null);return t?[t]:[]}),[y,fe,h]),Gt=Wt.length===1?Wt[0]?.title??null:null;(0,p.useEffect)(()=>{fe.length>0&&Wt.length!==fe.length&&pe(Wt.map(e=>e.id))},[fe,Wt]),(0,p.useEffect)(()=>{let e=new Set(h.filter(e=>!p7(e)&&!me.has(e.id)).map(e=>e.id));ye(t=>{let n=new Set(Array.from(t).filter(t=>e.has(t)));return n.size===t.size?t:n})},[me,h]),(0,p.useEffect)(()=>{!ge||Fe||(_e(!1),ye(new Set))},[Fe,ge]);let Kt=(0,p.useMemo)(()=>y?V5({modelLabel:B5({availableModelsById:Ht,model:y.model}),tool:y.tool}):null,[y,Ht]),qt=(0,p.useMemo)(()=>y?(y.messages??[]).map(e=>({id:e.id,role:e.role,kind:e.kind,content:e.content,attachments:e.attachments??[],ticket_proposals:e.ticket_proposals??null,created_at:e.created_at,displayTitle:e.role===`assistant`?Kt??R5(y.tool):H5()})):[],[y,Kt]),Jt=y?.id&&y.agent_status===`running`&&Ke?.sessionId===y.id?Ke.turnKey:null,Yt=Ct===`opencode`&&F.length>0,Xt=Ct===`opencode`&&!Yt&&xe;(0,p.useEffect)(()=>{Xe.current={model:z,variant:V,skills:ee,showModelSelector:Yt}},[z,ee,V,Yt]);let Zt=(0,p.useMemo)(()=>F.find(e=>e.id===z)??null,[F,z]),Qt=C?D:y?.mode??`build`,$t=C?q5(`composer.newChatTitle`):y?.title??q5(`composer.chatTitle`),en=C?r:y?.tool??r,tn=(0,p.useMemo)(()=>SG(),[]),nn=Yt?z||null:y?.model??null,rn=en===`opencode`,an=B5({availableModelsById:Ht,model:nn}),on=C?`draft:${e??`none`}:${r}`:y?.id,sn=(0,p.useCallback)(()=>{Ze.current=!0,w(!0),O(l7({projectId:e,tool:r})),S(null),v(null),Dt(null),de(null),_e(!1),ye(new Set),qe(null),E(null),Qe.current=null},[e,r,Dt]);(0,p.useEffect)(()=>{o&&(sn(),O(`build`),E({specSessionId:o.specSessionId,specSnapshotId:o.specSnapshotId}),Qe.current=o.text,s?.())},[o,sn,s]);let cn=(0,p.useCallback)((e,t=null)=>{Ze.current=!1,w(!1),S(null),v(e),Dt(t),E(null)},[Dt]),ln=(0,p.useCallback)(async()=>{if(!(!y||!l)){S(y.id);try{await l(y)}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.restoreTarget`))}finally{S(e=>e===y.id?null:e)}}},[y,l]),un=!!(y&&y.target_available!==!1&&!C&&!f7({activeProject:t,activeProjectBranchState:n,session:y})),dn=un&&y?q5(`review.mismatchReason`,{sessionTarget:aie(y),currentTarget:oie({activeProject:t,activeProjectBranchState:n})}):null,fn=un&&x===null,pn=(0,p.useCallback)(async r=>{S(r.id);let i=r;if(e)try{let t=await Lk(e,r.id);i=t,Ot(t)}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.loadSession`)),S(e=>e===r.id?null:e);return}if(i.target_available===!1){cn(i.id,i);return}if(!f7({activeProject:t,activeProjectBranchState:n,session:i})&&l)try{if(!await l(i)){S(e=>e===i.id?null:e);return}}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.restoreTarget`)),S(e=>e===i.id?null:e);return}cn(i.id,i)},[t,n,e,l,cn,Ot]),mn=(0,p.useCallback)(()=>{Ge(e=>e+1)},[]),hn=(0,p.useCallback)(async t=>{if(C){let n=Xe.current;O(t),c7({projectId:e,tool:r,model:n.showModelSelector&&n.model||null,variant:n.showModelSelector&&n.model&&n.variant||null,mode:t}),mn();return}if(!(!e||!y||y.mode===t||G)){be(!0);try{let n=await Rk(e,y.id,{mode:t});c7({projectId:e,tool:n.tool,model:n.model,variant:n.variant,mode:n.mode}),Dt(n),Ot(n),mn()}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.updateMode`))}finally{be(!1)}}},[e,y,r,mn,C,G,Dt,Ot]),gn=(0,p.useCallback)(async({instruction:t,attachments:n,targetSession:r})=>{if(!e)return null;let i=Xe.current;mt.current+=1;let a={sessionId:r.id,turnKey:`${r.id}:${mt.current}`};qe(a);try{let a=await zk(e,r.id,{instruction:t,...n.length>0?{attachment_ids:n.map(e=>e.id)}:{},tool:r.tool,model:i.showModelSelector&&i.model||null,variant:i.showModelSelector&&i.model&&i.variant||null,skills:i.showModelSelector?i.skills:[]});return c7({projectId:e,tool:a.tool,model:a.model,variant:a.variant,mode:a.mode}),Ze.current=!1,Dt(a),v(a.id),w(!1),Ot(a),a}catch(e){throw qe(e=>e?.turnKey===a.turnKey?null:e),e}},[e,Dt,Ot]),_n=(0,p.useCallback)(async({fromStorageKey:t})=>{if(!e)return null;let n=Xe.current,i=J.current,a=await Ik(e,{mode:Qt,tool:r,model:n.showModelSelector&&n.model||null,variant:n.showModelSelector&&n.model&&n.variant||null,skills:n.showModelSelector?n.skills:[],originSpecSessionId:i?.specSessionId??null,originSpecSnapshotId:i?.specSnapshotId??null});Ze.current=!1,w(!1),v(a.id),Dt(a),E(null);let o=W5({projectId:e,tool:a.tool,chatSessionId:a.id});return It({fromStorageKey:t,toStorageKey:o}),{session:a,storageKey:o}},[e,r,Qt,It,Dt]),vn=(0,p.useCallback)(async t=>{if(!e||ce||W||Tt||y?.agent_status===`running`||y?.target_available===!1||fn)return!1;let n=t.trim(),r=y?vt.current[y.id]??[]:[];if(!n&&r.length===0)return!1;le(!0);let i=null,a=y,o=e&&y?W5({projectId:e,tool:y.tool,chatSessionId:y.id}):null,s=r;try{let t=y;if(!t){se(!0);let e=await _n({fromStorageKey:xt});i=e?.session??null,t=i,o=e?.storageKey??null,s=i?vt.current[i.id]??[]:[]}if(!t)return!1;Mt(o??xt);let r=nie({session:t,instruction:n,attachments:s,createdAt:new Date().toISOString()});Dt(r),v(r.id),Ot(r);let a=await gn({instruction:n,attachments:s,targetSession:t});return Mt(a&&e?W5({projectId:e,tool:a.tool,chatSessionId:a.id}):o),a&&Pt(a.id),!0}catch(e){throw jt(o??xt,n),i?(Dt(i),v(i.id),w(!1),Ot(i)):a&&(Dt(a),Ot(a)),e}finally{se(!1),le(!1)}},[e,y,Pt,Mt,_n,xt,W,ce,Tt,Dt,gn,jt,fn,Ot]),yn=(0,p.useCallback)(e=>{Ze.current=!0,w(!0),O(e),S(null),v(null),Dt(null),de(null),qe(null)},[Dt]),bn=(0,p.useCallback)(async t=>{if(!e||t.length===0||Ct!==`opencode`)return;let n=t.slice(0,Z5);if(n.length===0)return;let r=null,i=y;try{if(i||=(se(!0),r=await _n({fromStorageKey:xt}),r?.session??null),!i)return;if((vt.current[i.id]??[]).length+n.length>Z5){Q.error(`You can attach up to 4 images per turn.`);return}Ft(i.id,1);let t=await Bk(e,i.id,n),a=vt.current[i.id]??[];Nt(i.id,[...a,...t.attachments])}catch(t){if(r&&!St.trim())try{await Uk(e,r.session.id),At(r.session.id),yn(r.session.mode)}catch{}Q.error(t instanceof Error?t.message:q5(`errors.uploadAttachments`))}finally{i&&Ft(i.id,-1),se(!1)}},[e,y,_n,St,xt,Ft,yn,At,Nt,Ct]),xn=(0,p.useCallback)(async t=>{if(!e||!y)return;let n=(vt.current[y.id]??[]).filter(e=>e.id!==t);try{await Vk(e,y.id,t),Nt(y.id,n),n.length===0&&!St.trim()&&(y.messages?.length??0)===0&&(await Uk(e,y.id),At(y.id),yn(y.mode))}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.removeAttachment`))}},[e,y,St,yn,At,Nt]),Sn=(0,p.useCallback)(e=>{if(Ct!==`opencode`)return;let t=Array.from(e.clipboardData.items).filter(e=>e.kind===`file`&&e.type.startsWith(`image/`)).map(e=>e.getAsFile()).filter(e=>e!==null);t.length!==0&&(e.preventDefault(),bn(t))},[Ct,bn]),Cn=(0,p.useCallback)(async e=>{await vn(e)},[vn]),wn=!!(e&&(C||y&&y.target_available!==!1&&!fn)),Tn=y?.agent_status===`running`,En=y?.agent_status===`stopped`,Dn=Tn&&ue===y?.id,On=wn&&!Tn&&!ce&&!W&&!Tt,kn=wn?y?.target_available===!1?y.target_unavailable_reason??q5(`review.unavailableTarget`):fn?dn??q5(`review.restoreTargetFallback`):Tn?q5(`review.waitTurn`):Tt?q5(`review.waitUpload`):W||ce?q5(`review.waitPrompt`):null:q5(`review.missingTarget`),An=(0,p.useCallback)(async()=>{if(!(!e||!y||y.agent_status!==`running`||Dn)){de(y.id);try{await Hk(e,y.id)}catch(e){de(e=>e===y.id?null:e),Q.error(e instanceof Error?e.message:q5(`errors.interruptResponse`))}}},[e,y,Dn]),jn=(0,p.useCallback)(async()=>{if(!e||fe.length===0||me.size>0)return;let t=Array.from(new Set(fe)),n=ge||t.length>1;he(new Set(t));let r=await Promise.allSettled(t.map(async t=>(await Uk(e,t),t))),i=[],a=[];for(let[e,n]of r.entries()){if(n.status===`fulfilled`){i.push(n.value);continue}a.push({sessionId:t[e]??``,message:n.reason instanceof Error?n.reason.message:null})}if(i.length>0&&kt(i),he(new Set),a.length===0){pe([]),n&&(_e(!1),ye(new Set),Q.success(q5(`toasts.deleteSelectedSuccess`,{count:i.length})));return}let o=a.map(e=>e.sessionId);if(pe(o),n&&ye(new Set(o)),i.length>0){Q.error(q5(`toasts.deleteSelectedPartial`,{count:i.length,deletedCount:i.length,failedCount:a.length}));return}Q.error(a[0]?.message??q5(`errors.deleteSession`))},[e,fe,me,ge,kt]),Mn=(0,p.useMemo)(()=>h.some(e=>!p7(e)),[h]),Nn=(0,p.useCallback)((e,t)=>e.agent_status===`running`?`running`:e.agent_status===`stopped`?`interrupted`:!t&&Je.has(e.id)?`finished`:null,[Je]),Pn=(0,p.useCallback)((e,n)=>[e.title,Yre(e.mode),R5(e.tool),t?.memory_enabled&&e.pending_memory_suggestion_count>0?e7(e.pending_memory_suggestion_count):null,n===`running`?q5(`sidebar.running`):n===`interrupted`?q5(`sidebar.interrupted`):n===`finished`?q5(`sidebar.finished`):null].filter(Boolean).join(` `),[t]),Fn=(0,p.useCallback)(({session:e,isActive:r,activityState:i})=>{let a=eie(e),o=iie({session:e,activeProject:t,activeProjectBranchState:n}),s=i===`interrupted`?null:i;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o?(0,Y.jsx)(`div`,{className:`mb-1 truncate text-[10px] font-medium uppercase tracking-[0.12em] text-muted-foreground/75`,children:o}):null,(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-5`,children:e.title}),t?.memory_enabled&&e.pending_memory_suggestion_count>0?(0,Y.jsx)(O5,{tone:r?`default`:`muted`,className:`shrink-0`,"aria-label":e7(e.pending_memory_suggestion_count),title:e7(e.pending_memory_suggestion_count),children:e.pending_memory_suggestion_count}):null]}),a?(0,Y.jsx)(`div`,{className:X(`mt-0.5 line-clamp-1 text-xs leading-4`,r?`text-foreground/70`:`text-muted-foreground`),children:a}):null,e.target_available===!1?(0,Y.jsx)(`div`,{className:`mt-1 line-clamp-1 text-[11px] leading-4 text-amber-200/90`,children:e.target_unavailable_reason??q5(`sidebar.targetUnavailable`)}):null]}),(0,Y.jsx)(Ty,{state:s,className:`mt-1`})]})},[t,n]),In=(0,p.useMemo)(()=>({ariaLabel:q5(`sidebar.ariaLabel`),newSession:q5(`sidebar.newSession`),collapseAriaLabel:q5(`sidebar.collapseAriaLabel`),openAriaLabel:q5(`sidebar.openAriaLabel`),cancelSelection:q5(`sidebar.cancelSelection`),deleteSelected:q5(`sidebar.deleteSelected`),selectedCount:e=>q5(`sidebar.selectedCount`,{count:e}),select:q5(`sidebar.select`),loadingSessions:q5(`sidebar.loadingSessions`),noSessions:q5(`sidebar.noSessions`),deleteSessionAriaLabel:q5(`sidebar.deleteSessionAriaLabel`),selectSessionAriaLabel:e=>q5(`sidebar.selectSessionAriaLabel`,{title:e}),selectSessionTitle:e=>q5(`sidebar.selectSessionTitle`,{title:e}),deleteSessionTitle:e=>q5(`sidebar.deleteSessionTitle`,{title:e})}),[]),Ln=(0,p.useMemo)(()=>({title:q5(`deleteSessionModal.title`),bulkTitle:q5(`deleteSessionModal.bulkTitle`),description:q5(`deleteSessionModal.description`),bulkDescription:e=>q5(`deleteSessionModal.bulkDescription`,{count:e}),cancel:q5(`deleteSessionModal.cancel`),delete:q5(`deleteSessionModal.delete`),deleting:q5(`deleteSessionModal.deleting`)}),[]),zn=(0,p.useMemo)(()=>(0,Y.jsx)(t7,{modifierLabel:tn,keys:[X5],ariaHidden:!0}),[tn]),Bn=(0,p.useMemo)(()=>(0,Y.jsx)(Zre,{label:q5(`shortcuts.startNewSession`),modifierLabel:tn,keys:[X5]}),[tn]),Vn=(0,p.useCallback)((e,t)=>{ye(n=>{if(n.has(e)===t)return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),Hn=(0,p.useMemo)(()=>(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(bG,{value:Qt,planInactiveTooltip:(0,Y.jsx)(DG,{label:q5(`shortcuts.switchToPlan`)}),buildInactiveTooltip:(0,Y.jsx)(DG,{label:q5(`shortcuts.switchToBuild`)}),disabled:G,onChange:e=>{hn(e)}}),Tn?(0,Y.jsx)(_5,{isInterrupting:Dn,onStop:()=>{An()},interruptLabel:q5(`review.interrupt`),interruptingLabel:q5(`review.interrupting`)}):null]}),[Qt,An,hn,Dn,Tn,G]),Un=(0,p.useMemo)(()=>Yt?(0,Y.jsx)(NG,{model:z,variant:V,skills:ee,showModelSelector:!0,showSkillsSelector:!0,availableModels:F,availableSkills:L,selectedModel:Zt,onModelChange:e=>{let t=F.find(t=>t.id===e)??null;B(e),H(e=>t&&t.variants.includes(e)?e:``)},onVariantChange:H,onSkillsChange:U,modelSelectId:`project-chat-model-selector`,variantSelectId:`project-chat-variant-selector`,skillsSelectId:`project-chat-skills-selector`,disabled:ce||W||y?.agent_status===`running`}):Xt?(0,Y.jsx)(MG,{dataTestId:`chat-model-selector-skeleton`}):null,[y?.agent_status,F,L,W,ce,Zt,z,ee,V,Yt,Xt]);(0,p.useEffect)(()=>{if(u)return()=>{u(null)}},[u]),(0,p.useEffect)(()=>{if(u){if(!e||!wn){u(null);return}u({chatSessionId:y?.id??null,canSubmitReviewPrompt:On,reviewSubmitDisabledReason:kn,mode:Qt,onModeChange:hn,isUpdatingMode:G,promptPlaceholder:$5(Qt),promptComposerControls:Hn,promptComposerInlineControls:Un,submitPrompt:Cn})}},[e,y,On,Qt,hn,Cn,wn,G,u,Hn,Un,kn]);let Gn=async()=>{if(!(!St.trim()&&wt.length===0||Tt))try{if(!await vn(St))return}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.sendPrompt`))}},Kn=e=>{e.key!==`Enter`||e.shiftKey||y?.agent_status===`running`||W||ce||Tt||(e.preventDefault(),Gn())};(0,p.useEffect)(()=>{let t=t=>{if(Xre(t)){if(!e||W||ce)return;t.preventDefault(),sn(),mn();return}wG(t)&&(!e||!C&&!y||(t.preventDefault(),hn(CG(Qt))))};return window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`keydown`,t)}},[e,y,Qt,mn,sn,hn,W,C,ce]);let qn=(0,p.useCallback)(async t=>{if(!(!e||!y)){we(t);try{let n=await Kk(e,y.id,t);Dt(n.chatSession),Ot(n.chatSession),Q.success(q5(`ticketProposal.createdFromChat`,{count:n.created_tickets.length}))}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.createTickets`))}finally{we(e=>e===t?null:e)}}},[e,y,Dt,Ot]),Jn=(0,p.useCallback)(e=>{if(!nt.current)return;let t=nt.current.getBoundingClientRect().width,n=Q5(e,t);ft.current=n,it.current&&(it.current.style.setProperty(`--chat-changes-panel-width`,`${n}px`),it.current.setAttribute(`data-desktop-width`,String(n)))},[]),Yn=(0,p.useCallback)(()=>{st.current?.(),st.current=null},[]),Xn=(0,p.useCallback)(e=>{let t=at.current,n=ot.current,r=ct.current;if(t!==null){if(at.current=null,ot.current=null,ct.current=!1,Be(!1),K(!1),Yn(),e!==null&&typeof rt.current?.hasPointerCapture==`function`&&rt.current.hasPointerCapture(e)&&typeof rt.current.releasePointerCapture==`function`&&rt.current.releasePointerCapture(e),n===`collapsed`){if(!r)return;Ue(ft.current),Re(!0);return}Ue(ft.current)}},[Yn]),Zn=(0,p.useCallback)((e,t)=>{if(at.current!==e)return;let n=t-ut.current,r=dt.current-n;if(ot.current===`collapsed`){if(!ct.current&&r<Gre)return;ct.current||(ct.current=!0,lt.current=!0,K(!0),Be(!0))}Jn(r)},[Jn]),Qn=(0,p.useCallback)((e,t)=>{if(at.current===e){if(t!==null&&(ot.current===`inline`||ct.current)){let e=t-ut.current;Jn(dt.current-e)}Xn(e)}},[Xn,Jn]),$n=(0,p.useCallback)(e=>{if(!f)return;e.preventDefault(),at.current=e.pointerId,ot.current=Le?`inline`:`collapsed`,ct.current=!1,lt.current=!1,ut.current=e.clientX,dt.current=Le?ft.current:0,Be(Le),Yn(),typeof e.currentTarget.setPointerCapture==`function`&&e.currentTarget.setPointerCapture(e.pointerId);let t=e=>{Zn(e.pointerId,e.clientX)},n=e=>{Qn(e.pointerId,e.clientX)},r=e=>{Qn(e.pointerId,e.clientX)};window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,n),window.addEventListener(`pointercancel`,r),st.current=()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,n),window.removeEventListener(`pointercancel`,r)}},[Qn,Zn,Le,f,Yn]),er=(0,p.useCallback)(e=>{Zn(e.pointerId,e.clientX)},[Zn]),tr=(0,p.useCallback)(e=>{Qn(e.pointerId,e.clientX)},[Qn]),nr=(0,p.useCallback)(e=>{Qn(e.pointerId,e.clientX)},[Qn]),rr=(0,p.useCallback)(e=>{at.current===e.pointerId&&Xn(e.pointerId)},[Xn]),ir=(0,p.useCallback)(()=>{if(lt.current){lt.current=!1;return}Re(!0)},[]),ar=(0,p.useCallback)(()=>{Re(!1)},[]),or=(0,p.useCallback)(e=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),ir())},[ir]);(0,p.useEffect)(()=>{f||(at.current=null,ot.current=null,ct.current=!1,lt.current=!1,Be(!1),K(!1),Yn())},[f,Yn]),(0,p.useEffect)(()=>()=>{Yn()},[Yn]);let sr=!!_,cr=y?.target_available===!1,lr=cr?y?.target_unavailable_reason??q5(`review.unavailableTarget`):null,ur=C||!!(y&&y.target_available!==!1&&!fn),dr=!!(t?.memory_enabled&&y&&(Te.length>0||De)),fr=f&&(C||sr)&&!cr&&!fn,pr=fr&&!Le&&!Ve,mr=fr&&(Le||Ve),hr=`${on??`none`}:${fr?`changes-enabled`:`changes-disabled`}:${mr?`panel-visible`:`panel-hidden`}`,gr=y||C?(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(D5,{projectId:e,messages:y?qt:[],internalLog:y?.agent_log??null,currentThinkingMessageId:y?.agent_message_id??null,previousThinkingLog:y?.previous_agent_log??null,previousThinkingMessageId:y?.previous_agent_message_id??null,pendingAgentTitle:Kt,streamingResponse:y?.streaming_response??null,isRunning:y?.agent_status===`running`,isLoading:!C&&ae,canShowComposer:ur,cardClassName:`border-t-0`,isExternallyResizing:d||ze,pendingAgentRevealKey:Jt,pendingAgentRevealDelayMs:Jre,composerFocusNonce:We,header:(0,Y.jsx)(k5,{title:$t,tool:C?null:y?.tool??null,modelLabel:an,interrupted:En,interruptedLabel:q5(`sidebar.interrupted`),usage:{totalTokens:y?.usage_snapshot_total_tokens??null,contextWindow:y?.usage_snapshot_context_window??null,cost:y?.usage_snapshot_cost??null,tool:en,model:nn,availableModels:F},metadataExtra:y?.origin_spec_session_id&&y.origin_spec_snapshot_id&&c?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{c(y.origin_spec_session_id,y.origin_spec_snapshot_id)},children:sb.t(`common:specView.provenance.viewSourceSpec`)}):null,actions:dr?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`outline`,className:`gap-2`,onClick:()=>Ae(!0),children:De?q5(`composer.loadingMemory`):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{children:q5(`composer.memorySuggestions`)}),(0,Y.jsx)(O5,{children:Te.length})]})}):null,warnings:fn&&dn?(0,Y.jsx)(`div`,{className:`w-fit max-w-md rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-50`,children:(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(`div`,{children:dn}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`secondary`,onClick:()=>{ln()},children:q5(`composer.switchBack`)}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`ghost`,onClick:sn,children:q5(`composer.startNewSession`)})]})]})}):cr&&lr?(0,Y.jsx)(`div`,{className:`w-fit max-w-md rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-50`,children:lr}):null}),composerControls:Hn,composerInlineControls:Un,composerTheme:Qt,layoutKey:on,scrollLayoutKey:hr,followUpPrompt:St,draftAttachments:wt,followUpPlaceholder:$5(Qt),emptyStateText:null,renderMessageFooter:e=>e.ticket_proposals?(0,Y.jsx)(sie,{proposals:e.ticket_proposals,isApplying:Ce===e.id,onApply:()=>{qn(e.id)}}):null,isSendingFollowUp:ce||W,isUploadingAttachments:Tt,canAttachImages:rn,followUpDisabledReason:cr?lr??void 0:y?.agent_status===`running`?q5(`review.waitTurnShort`):Tt?q5(`review.waitUpload`):void 0,onFollowUpPromptChange:e=>{Qe.current=null,jt(xt,e)},onFollowUpKeyDown:Kn,onFollowUpPaste:Sn,onUploadAttachments:e=>{bn(e)},onRemoveAttachment:e=>{xn(e)},onFollowUpSubmit:()=>{Gn()}})}):sr?(0,Y.jsx)(p5,{label:q5(`composer.loadingSession`)}):!re||te?(0,Y.jsx)(m5,{label:q5(`sidebar.loadingSessions`)}):(0,Y.jsx)(h5,{title:q5(`composer.noSessionSelectedTitle`),description:q5(`composer.noSessionSelectedDescription`),startNewSessionLabel:q5(`composer.startNewSession`),onStartNewSession:sn,canStartNewSession:!!e&&!W&&!ce}),_r=fr?(0,Y.jsx)(`div`,{ref:rt,"aria-label":q5(pr?`composer.openDiff`:`composer.resizeDiffPanel`),"aria-orientation":pr?void 0:`vertical`,className:X(pr?`group flex h-8 w-full shrink-0 touch-none select-none items-center justify-center border-t border-border/70 bg-background/90 text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground xl:h-auto xl:w-7 xl:cursor-col-resize xl:border-l xl:border-t-0`:`group hidden w-5 shrink-0 cursor-col-resize touch-none select-none items-center justify-center border-l border-border/70 bg-background/80 transition-colors xl:flex`,ze&&!pr&&`bg-background`),"data-testid":pr?`collapsed-changes-rail`:void 0,onLostPointerCapture:rr,onPointerCancel:nr,onPointerDown:$n,onPointerMove:er,onPointerUp:tr,onClick:pr?ir:void 0,onKeyDown:pr?or:void 0,role:pr?`button`:`separator`,tabIndex:pr?0:void 0,children:pr?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`hidden h-full w-full items-center justify-center xl:flex`,children:(0,Y.jsxs)(`span`,{className:`relative flex h-full w-full items-center justify-center`,children:[(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-[2.65rem] items-center justify-center text-sky-400/80 transition-colors group-hover:text-sky-300`,children:(0,Y.jsx)(Nv,{className:`h-3 w-3 shrink-0`})}),(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 h-14 w-1.5 -translate-x-1/2 -translate-y-1/2 rounded-full bg-muted-foreground/70 transition-colors group-hover:bg-sky-300/90`})]})}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-xs font-medium xl:hidden`,children:[(0,Y.jsx)(Nv,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:q5(`composer.diff`)})]})]}):(0,Y.jsx)(`div`,{className:X(`h-14 w-1.5 rounded-full transition-colors`,ze?`bg-sky-300/90`:`bg-muted-foreground/70 group-hover:bg-sky-300/90`)})}):null,vr=ke&&e&&t?.memory_enabled?(0,Y.jsx)(tb,{onClose:()=>Ae(!1),overlayClassName:`bg-background/45 p-4 backdrop-blur-sm`,panelClassName:`w-full max-w-3xl`,renderContent:({closeButton:t})=>(0,Y.jsxs)(ub,{size:`sm`,className:`max-h-[calc(100vh-2rem)] w-full gap-0 overflow-hidden border-border/80 bg-card/95 shadow-2xl`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/80 pb-4`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(fb,{children:q5(`composer.memorySuggestionsTitle`)}),(0,Y.jsx)(pb,{children:q5(`composer.memorySuggestionsDescription`)})]}),(0,Y.jsx)(mb,{children:t})]}),(0,Y.jsx)(hb,{className:`min-h-0 flex-1 overflow-y-auto pt-4`,children:(0,Y.jsx)(Pre,{projectId:e,suggestions:Te,emptyState:q5(`composer.memorySuggestionsEmpty`),onSuggestionsChanged:Vt})})]}),closeButtonLabel:q5(`composer.closeMemorySuggestions`)}):null,yr=Wt.length>0?(0,Y.jsx)(f5,{count:Wt.length,title:Gt,isDeleting:me.size>0,onConfirm:()=>{jn()},onCancel:()=>{me.size>0||pe([])},labels:Ln}):null;return(0,Y.jsxs)(`div`,{"data-testid":`chat-view-shell`,className:`relative flex min-h-0 flex-1 overflow-hidden border-t border-border/70`,children:[(0,Y.jsx)(g5,{sessions:h,sessionGroups:Ut,activeSessionId:_,isDraftOpen:C,isLoadingSessions:te,isOpen:Fe,onToggleOpen:()=>{Ie(e=>!e)},testId:`chat-sessions-sidebar`,railTestId:`chat-sessions-rail`,onDraftOpen:sn,isCreatingSession:W||!e,isSendingPrompt:ce,newSessionShortcutHint:zn,newSessionTooltip:Bn,isSelectionMode:ge,selectedSessionIds:ve,selectedSessionCount:ve.size,hasDeletableSessions:Mn,deletingSessionIds:me,onEnterSelectionMode:()=>{_e(!0),ye(new Set)},onExitSelectionMode:()=>{_e(!1),ye(new Set)},onToggleSessionSelection:e=>{ye(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},onSetSessionSelection:Vn,onConfirmDeleteSelectedSessions:()=>{pe(Array.from(ve))},onSessionSelect:e=>{pn(e)},onConfirmDeleteSession:e=>{pe([e])},getSessionId:e=>e.id,getSessionTitle:e=>e.title,getDeleteDisabledReason:p7,getActivityState:Nn,getRowAriaLabel:Pn,renderRowContent:Fn,labels:In}),(0,Y.jsxs)(`div`,{ref:nt,className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden xl:flex-row`,children:[(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:gr}),fr?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Sv,{content:q5(`composer.openDiff`),disabled:!pr,side:`left`,children:_r}),mr?(0,Y.jsx)(E5,{projectId:e,chatSessionId:C?null:_,canSubmitReviewPrompt:On,reviewSubmitDisabledReason:kn,onSubmitReviewPrompt:Cn,state:Ne,onStateChange:Pe,isResizing:ze,onClose:ar,desktopWidth:He,panelElementRef:it}):null]}):null]}),vr,yr]})},lie=({className:e})=>(0,Y.jsx)(Sg,{"aria-hidden":`true`,className:e}),uie=({activeProject:e})=>e?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-6`,children:(0,Y.jsxs)(`div`,{className:`mx-auto flex w-full max-w-7xl flex-col gap-5`,children:[(0,Y.jsx)(`div`,{className:`border-b border-border/60 pb-4`,children:(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-[10px] font-semibold uppercase tracking-[0.24em] text-muted-foreground`,children:`Memory archive`}),(0,Y.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:e.name})]})}),(0,Y.jsx)(sC,{mode:`edit`,projectId:e.id,memoryEnabled:e.memory_enabled,persistedMemoryEnabled:e.memory_enabled,onMemoryEnabledChange:()=>{},showActivationControls:!1,archiveLayout:!0})]})}):(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center text-sm text-muted-foreground`,children:`Select a project to view memory.`}),die=(e,t)=>J(qe(`/projects/${e}/spec-sessions`),{signal:t,fallbackErrorMessage:`Unable to load spec sessions right now.`}),m7=(e,t)=>J(qe(`/projects/${e}/spec-sessions`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to create a spec session right now.`}),h7=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}`),{signal:n,fallbackErrorMessage:`Unable to load the spec session right now.`}),fie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}`),{method:`PATCH`,body:n,fallbackErrorMessage:`Unable to update the spec session right now.`}),g7=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/messages`),{method:`POST`,body:n,fallbackErrorMessage:`Unable to send the spec prompt right now.`}),pie=async(e,t,n)=>{let r=new FormData;for(let e of n)r.append(`files`,e);let i=await fetch(qe(`/projects/${e}/spec-sessions/${t}/attachments`),{method:`POST`,body:r});if(!i.ok)throw new Ke(await Xe(i,`Unable to upload images right now.`),i.status);return await i.json()},mie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/attachments/${n}`),{method:`DELETE`,fallbackErrorMessage:`Unable to remove the image right now.`}),hie=(e,t)=>J(qe(`/projects/${e}/spec-sessions/${t}/stop`),{method:`POST`,fallbackErrorMessage:`Unable to interrupt the spec response right now.`}),gie=(e,t)=>J(qe(`/projects/${e}/spec-sessions/${t}`),{method:`DELETE`,fallbackErrorMessage:`Unable to delete the spec session right now.`}),_ie=(e,t,n,r)=>J(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}`),{signal:r,fallbackErrorMessage:`Unable to load the spec snapshot right now.`}),_7=class extends Error{conflictingPath;constructor(e,t){super(e),this.name=`SpecExportConflictError`,this.conflictingPath=t}},vie=async(e,t,n)=>{let r=await fetch(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}/export`),{method:`POST`});if(r.status===409){let e=await r.json().catch(()=>({}));throw new _7(e.error||`A spec with this title has already been exported.`,e.conflicting_path||``)}if(!r.ok)throw new Ke(await Xe(r,`Unable to export the spec snapshot right now.`),r.status);return await r.json()},yie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}/create-tickets`),{method:`POST`,fallbackErrorMessage:`Unable to create tickets from the spec snapshot right now.`}),bie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}/implement-in-chat`),{method:`POST`,fallbackErrorMessage:`Unable to start the implementation chat right now.`}),xie=(e,t)=>!!t&&e===t,Sie=({suggestion:e,isRecommended:t,recommendedLabel:n,onPick:r})=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{r(e.value)},className:X(`inline-flex min-w-0 items-center gap-1.5 rounded-full border px-3 py-1.5 text-left text-xs font-medium transition-colors`,t?`border-amber-500/40 bg-amber-500/15 text-amber-200 hover:bg-amber-500/25 hover:text-amber-100`:`border-border/70 bg-background/70 text-foreground hover:border-border hover:bg-background`),children:[(0,Y.jsx)(`span`,{className:`truncate`,children:e.label}),t?(0,Y.jsx)(`span`,{className:`shrink-0 rounded-full bg-amber-500/30 px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-amber-100`,children:n}):null]}),Cie=({question:e,historicalAnswer:t,labels:n})=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-sm font-medium leading-relaxed text-foreground`,children:e.question}),e.rationale?(0,Y.jsxs)(`p`,{className:`whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{className:`font-semibold`,children:[n.rationaleLabel,`: `]}),e.rationale]}):null,(0,Y.jsxs)(`div`,{className:`mt-1 rounded-lg border border-border/60 bg-background/50 px-3 py-2`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:n.historicalAnswerLabel}),t&&t.trim()?(0,Y.jsx)(`p`,{className:`mt-1 whitespace-pre-wrap break-words text-sm leading-relaxed text-foreground`,children:t}):(0,Y.jsx)(`p`,{className:`mt-1 text-xs italic text-muted-foreground`,children:n.noAnswerLabel})]})]}),wie=({question:e,isActive:t,historicalAnswer:n,isDisabled:r=!1,onSubmitAnswer:i,labels:a})=>{let[o,s]=(0,p.useState)(``),c=(0,p.useRef)(null);if((0,p.useEffect)(()=>{t&&s(``)},[e.question,t]),(0,p.useEffect)(()=>{c.current&&cw(c.current)},[o]),!t)return(0,Y.jsx)(Cie,{question:e,historicalAnswer:n,labels:a});let l=o.trim().length>0&&!r,u=e.suggestions.find(e=>e.recommended)?.id,d=e=>{s(e),requestAnimationFrame(()=>{c.current?.focus();let e=c.current;e&&e.setSelectionRange(e.value.length,e.value.length)})},f=()=>{let e=o.trim();!e||r||(i(e),s(``))};return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(Vx,{className:`mt-0.5 h-4 w-4 flex-shrink-0 text-amber-300`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-sm font-medium leading-relaxed text-foreground`,children:e.question}),e.rationale?(0,Y.jsxs)(`p`,{className:`mt-1 whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{className:`font-semibold`,children:[a.rationaleLabel,`: `]}),e.rationale]}):null]})]}),e.suggestions.length>0?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:a.suggestionsLabel}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.suggestions.map(e=>(0,Y.jsx)(Sie,{suggestion:e,isRecommended:xie(e.id,u),recommendedLabel:a.recommendedSuggestionLabel,onPick:d},e.id))})]}):null,(0,Y.jsx)(B_,{ref:c,value:o,placeholder:a.answerPlaceholder,disabled:r,onChange:e=>{s(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),f())}}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`secondary`,disabled:!l,onClick:f,children:r?a.submittingLabel:a.submitLabel})})]})},Tie=({className:e})=>(0,Y.jsx)(oee,{"aria-hidden":`true`,className:e}),Eie=[`h-10 w-10 px-0`,`border-amber-400/60 bg-amber-500/30 text-amber-100 shadow-[0_8px_24px_rgba(245,158,11,0.24)]`,`hover:bg-amber-500/45 hover:text-white hover:border-amber-300`,`focus-visible:border-ring/70 focus-visible:ring-2 focus-visible:ring-ring/20`].join(` `),Die=[`h-10 w-10 px-0 shadow-none`,`border-border/70 bg-transparent text-muted-foreground`,`hover:border-border hover:bg-background/60 hover:text-foreground`,`focus-visible:border-ring/70 focus-visible:ring-2 focus-visible:ring-ring/20`,`disabled:border-border/40 disabled:bg-transparent disabled:text-muted-foreground/50`].join(` `),Oie=({on:e,disabled:t=!1,onToggle:n,tooltipContent:r,ariaLabelOn:i,ariaLabelOff:a,className:o})=>(0,Y.jsx)(Sv,{content:r,children:(0,Y.jsx)(`span`,{className:`inline-flex`,children:(0,Y.jsx)(Z,{type:`button`,size:`icon`,variant:e?`warning`:`ghost`,"aria-pressed":e,"aria-label":e?i:a,disabled:t,className:X(e?Eie:Die,o),onClick:()=>{t||n(!e)},children:(0,Y.jsx)(Tie,{className:`h-5 w-5`})})})}),kie=({projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r=null,previousThinkingLog:i=null,previousThinkingMessageId:a=null,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l=!1,canShowComposer:u,cardClassName:d,isExternallyResizing:f=!1,pendingAgentRevealKey:p=null,pendingAgentRevealDelayMs:m=0,composerFocusNonce:h=0,blurComposerOnSendStart:g=!1,hidePendingAgentTitle:_=!1,forceScrollToBottomKey:v,header:y,composerControls:b,composerInlineControls:x,composerTheme:S=`default`,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E=[],followUpPlaceholder:D,emptyStateText:O=null,renderMessageFooter:k,renderMessageBody:A,isSendingFollowUp:j,isUploadingAttachments:M=!1,canAttachImages:N=!1,followUpDisabledReason:P,onFollowUpPromptChange:F,onFollowUpKeyDown:I,onFollowUpPaste:L,onUploadAttachments:R,onRemoveAttachment:z,onFollowUpSubmit:B})=>(0,Y.jsx)(HW,{projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r,previousThinkingLog:i,previousThinkingMessageId:a,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l,autoScrollBehavior:`sticky`,surfaceVariant:`chat`,canShowComposer:u,cardClassName:d,header:y,composerControls:b,composerInlineControls:x,composerTheme:S,composerSize:`compact-on-laptop`,showThinkingPlacement:`header`,pinComposerToBottom:!0,isExternallyResizing:f,pendingAgentRevealKey:p,pendingAgentRevealDelayMs:m,composerFocusNonce:h,blurComposerOnSendStart:g,forceScrollToBottomKey:v,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E,followUpPlaceholder:D,emptyStateText:O,autoFocusComposer:!0,renderMessageFooter:k,renderMessageBody:A,isSendingFollowUp:j,isUploadingAttachments:M,canAttachImages:N,followUpDisabledReason:P,hidePendingAgentTitle:_,onFollowUpPromptChange:F,onFollowUpKeyDown:I,onFollowUpPaste:L,onUploadAttachments:R,onRemoveAttachment:z,onFollowUpSubmit:B}),v7=e=>{let t={...e};return delete t.messages,t.agent_log=null,t.agent_message_id=null,t.previous_agent_log=null,t.previous_agent_message_id=null,t.streaming_response=null,t},y7=({className:e})=>(0,Y.jsx)(jg,{"aria-hidden":`true`,className:e}),Aie=({className:e})=>(0,Y.jsx)(gg,{"aria-hidden":`true`,className:e}),jie=({className:e})=>(0,Y.jsx)(aee,{"aria-hidden":`true`,className:e}),Mie=({className:e})=>(0,Y.jsx)(cg,{"aria-hidden":`true`,className:e}),b7=({heading:e,open:t,onOpenChange:n,children:r})=>(0,Y.jsxs)(Yb,{open:t,onOpenChange:n,children:[(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground hover:text-foreground transition-colors mb-2`,children:[(0,Y.jsx)(Ev,{className:`h-3 w-3 shrink-0 transition-transform ${t?``:`-rotate-90`}`}),e]})}),(0,Y.jsx)(Zb,{children:r})]}),Nie=({actions:e})=>{let{t}=Ue(`common`);return e.hasExistingTicketsFromSnapshot?(0,Y.jsxs)(`p`,{className:`flex w-full items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground`,children:[(0,Y.jsx)(Aie,{className:`h-3.5 w-3.5 text-emerald-400`}),t(`specView.actions.ticketsCreated`)]}):(0,Y.jsxs)(Z,{type:`button`,size:`sm`,onClick:e.onCreateTickets,disabled:e.isCreatingTickets||e.isImplementingInChat||e.isExporting,className:`w-full justify-center gap-1.5 border-violet-300/70 bg-violet-500/15 text-violet-100 hover:bg-violet-500/25`,children:[(0,Y.jsx)(y7,{className:`h-3.5 w-3.5`}),e.isCreatingTickets?t(`specView.actions.creatingTickets`):t(`specView.actions.createTickets`)]})},Pie=(0,p.memo)((0,p.forwardRef)(({snapshot:e,isLoading:t,desktopWidth:n,onClose:r,actions:i,className:a},o)=>{let{t:s}=Ue(`common`),[c,l]=(0,p.useState)(!1),[u,d]=(0,p.useState)(!1),[f,m]=(0,p.useState)(!0),[h,g]=(0,p.useState)(!0),[_,v]=(0,p.useState)(!0),[y,b]=(0,p.useState)(!0),[x,S]=(0,p.useState)(!0),[C,w]=(0,p.useState)(!0),[T,E]=(0,p.useState)(!0),[D,O]=(0,p.useState)(!0),k=(0,p.useCallback)(()=>{l(!0)},[]),A=(0,p.useCallback)(()=>{d(!0)},[]),j=`flex shrink-0 flex-col border-l border-border/70 bg-surface ${a??``}`;if(t)return(0,Y.jsxs)(`aside`,{ref:o,style:n?{"--spec-artifact-panel-width":`${n}px`}:void 0,className:n?`xl:w-[var(--spec-artifact-panel-width)] ${j}`:j,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-medium text-foreground`,children:s(`specView.artifactPanel.title`)}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground`,"aria-label":s(`specView.artifactPanel.close`),onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Y.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-violet-400 border-t-transparent`})})]});if(!e)return(0,Y.jsxs)(`aside`,{ref:o,style:n?{"--spec-artifact-panel-width":`${n}px`}:void 0,className:n?`xl:w-[var(--spec-artifact-panel-width)] ${j}`:j,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-medium text-foreground`,children:s(`specView.artifactPanel.title`)}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground`,"aria-label":s(`specView.artifactPanel.close`),onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4`,children:(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`specView.artifactPanel.noSnapshot`)})})]});let M=e.likely_files.length>0,N=e.tickets.length>0,P=e.dependencies.length>0,F=e.open_questions.length>0,I=e.assumptions.length>0;return(0,Y.jsxs)(`aside`,{ref:o,style:n?{"--spec-artifact-panel-width":`${n}px`}:void 0,className:n?`xl:w-[var(--spec-artifact-panel-width)] ${j}`:j,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-medium text-foreground`,children:s(`specView.artifactPanel.title`)}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground`,"aria-label":s(`specView.artifactPanel.close`),onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-4 py-4`,children:[(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.summary`),open:f,onOpenChange:m,children:(0,Y.jsx)(`section`,{className:`rounded-md border border-border/50 bg-surface-hover px-3 py-2`,children:(0,Y.jsx)(`p`,{className:`text-sm leading-relaxed text-foreground whitespace-pre-wrap`,children:e.summary})})}),e.mermaid&&(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.visualization`),open:h,onOpenChange:g,children:(0,Y.jsx)(`section`,{className:`overflow-auto rounded-md border border-border/50 bg-surface-hover p-3`,children:(0,Y.jsx)(SU,{mermaid:e.mermaid,onClick:k})})}),e.mockup&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(Mie,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.uiMockup`)]}),open:_,onOpenChange:v,children:(0,Y.jsx)(`section`,{className:`rounded-md border border-border/50 bg-surface-hover p-3`,children:(0,Y.jsx)(DU,{html:e.mockup,onClick:A})})}),M&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(nS,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.likelyFiles`)]}),open:y,onOpenChange:b,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.likely_files.map((e,t)=>(0,Y.jsxs)(`li`,{className:`rounded-md border border-border/50 bg-surface-hover px-3 py-2`,children:[(0,Y.jsx)(`code`,{className:`text-xs text-foreground`,children:e.path}),e.reason&&(0,Y.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:e.reason})]},t))})})}),N&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(y7,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.proposedTickets`)]}),open:x,onOpenChange:S,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.tickets.map((e,t)=>(0,Y.jsxs)(`li`,{className:`rounded-md border border-border/50 bg-surface-hover px-3 py-2`,children:[(0,Y.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:e.title}),e.key&&(0,Y.jsx)(`div`,{className:`mt-0.5 text-xs text-violet-400`,children:e.key})]},t))})})}),P&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(Ux,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.dependencies`)]}),open:C,onOpenChange:w,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1`,children:e.dependencies.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-violet-400`,children:e.blocker_key}),(0,Y.jsx)(`span`,{children:`→`}),(0,Y.jsx)(`span`,{className:`font-mono text-violet-400`,children:e.dependent_key})]},t))})})}),F&&(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.openQuestions`),open:T,onOpenChange:E,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.open_questions.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex gap-2 text-sm text-amber-300`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 shrink-0 text-amber-500`,children:`?`}),(0,Y.jsx)(`span`,{children:e})]},t))})})}),I&&(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.assumptions`),open:D,onOpenChange:O,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.assumptions.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex gap-2 text-sm text-muted-foreground`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 shrink-0 text-violet-500`,children:`•`}),(0,Y.jsx)(`span`,{children:e})]},t))})})})]}),i&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 border-t border-border/50 bg-surface/95 px-4 py-3 backdrop-blur`,children:[e.tickets.length>0&&(0,Y.jsx)(Nie,{actions:i}),(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,onClick:i.onImplementInChat,disabled:i.isCreatingTickets||i.isImplementingInChat||i.isExporting,className:`w-full justify-center gap-1.5`,children:[(0,Y.jsx)(XC,{className:`h-3.5 w-3.5`}),i.isImplementingInChat?s(`specView.actions.startingImplementation`):s(`specView.actions.implementInChat`)]}),(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,onClick:i.onExport,disabled:i.isCreatingTickets||i.isImplementingInChat||i.isExporting,className:`w-full justify-center gap-1.5`,children:[(0,Y.jsx)(jie,{className:`h-3.5 w-3.5`}),i.isExporting?s(`specView.actions.exportingSpec`):s(`specView.actions.exportSpec`)]})]}),e.mermaid&&(0,Y.jsx)(wU,{mermaid:e.mermaid,open:c,onClose:()=>{l(!1)}}),e.mockup&&(0,Y.jsx)(OU,{html:e.mockup,open:u,onClose:()=>{d(!1)}})]})})),x7=(e,t)=>sb.t(`specView.${e}`,t),Fie=e=>{let t=`${e.external_source.external_key}: ${e.title}`.trim(),n=e.description.trim();return n?`${t}\n\n${n}`:t},Iie=1500,S7=`archon.spec-draft`,Lie=`archon.spec-run-config`,C7=`archon.spec-session-list-layout`,w7=`archon.spec-artifact-panel-layout`,T7=420,E7=320,D7=.5,Rie=6,zie=({projectId:e,tool:t})=>e?`${S7}/${e}/${t}`:null,O7=({projectId:e,tool:t})=>{if(e)try{localStorage.setItem(`${S7}/${e}/tool`,t)}catch{}},k7=e=>{if(!e)return{isOpen:!0};try{let t=localStorage.getItem(`${C7}/${e}`);return{isOpen:(t?JSON.parse(t):null)?.isOpen??!0}}catch{return{isOpen:!0}}},Bie=({projectId:e,isOpen:t})=>{if(e)try{localStorage.setItem(`${C7}/${e}`,JSON.stringify({isOpen:t}))}catch{}},Vie=(e,t)=>{let n=Number.isFinite(e)?Math.round(e):T7;if(!Number.isFinite(t))return Math.max(E7,n);let r=Math.max(E7,Math.round(t*D7));return Math.max(E7,Math.min(r,n))},A7=e=>{if(!e)return{isOpen:!1,width:T7};try{let t=localStorage.getItem(`${w7}/${e}`);if(!t)return{isOpen:!1,width:T7};let n=JSON.parse(t),r=typeof n.width==`number`&&Number.isFinite(n.width)?Math.max(E7,Math.round(n.width)):T7;return{isOpen:n.isOpen===!0,width:r}}catch{return{isOpen:!1,width:T7}}},Hie=({projectId:e,isOpen:t,width:n})=>{if(e)try{localStorage.setItem(`${w7}/${e}`,JSON.stringify({isOpen:t,width:n}))}catch{}},Uie=e=>{if(!e)return null;try{return localStorage.getItem(e)}catch{return null}},j7=({storageKey:e,value:t})=>{if(e)try{if(!t){localStorage.removeItem(e);return}localStorage.setItem(e,t)}catch{}},M7=({projectId:e,tool:t})=>`${Lie}:${e}:${t}`,Wie=({projectId:e,tool:t})=>{if(!e||t!==`opencode`)return null;try{let n=window.localStorage.getItem(M7({projectId:e,tool:t}));if(!n)return null;let r=JSON.parse(n),i=(typeof r.model==`string`?r.model.trim():``)||null;return i?{model:i,variant:i&&typeof r.variant==`string`&&r.variant.trim()||null}:null}catch{return null}},Gie=({projectId:e,tool:t,model:n,variant:r})=>{if(!(!e||t!==`opencode`||!n))try{window.localStorage.setItem(M7({projectId:e,tool:t}),JSON.stringify({model:n,variant:n?r:null}))}catch{}},Kie=`archon.spec-draft-grill`,N7=e=>e?`${Kie}/${e}`:null,P7=e=>{let t=N7(e);if(!t)return!1;try{return window.localStorage.getItem(t)===`true`}catch{return!1}},F7=({projectId:e,grillOn:t})=>{let n=N7(e);if(n)try{t?window.localStorage.setItem(n,`true`):window.localStorage.removeItem(n)}catch{}},qie=({activeProjectId:e,activeTool:t,initialSpecSessionId:n=null,initialSpecSnapshotId:r=null,onInitialSpecNavigationConsumed:i,onImplementInChat:a})=>{let o=I8(),{t:s}=Ue(`common`),{jiraImportState:c,importFromJira:l}=dS(e),{gitHubImportState:u,importFromGitHub:d}=cS(e),[f,m]=(0,p.useState)([]),[h,g]=(0,p.useState)(null),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(!1),[x,S]=(0,p.useState)(null),[C,w]=(0,p.useState)({}),[T,E]=(0,p.useState)({}),[D,O]=(0,p.useState)({}),[k,A]=(0,p.useState)([]),[j,M]=(0,p.useState)([]),[N,P]=(0,p.useState)(``),[F,I]=(0,p.useState)(``),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(!1),[V,H]=(0,p.useState)(!1),[ee,U]=(0,p.useState)(!1),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(!1),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)([]),[ce,le]=(0,p.useState)(()=>new Set),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(()=>new Set),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(()=>k7(e).isOpen),[ve,ye]=(0,p.useState)(0),[G,be]=(0,p.useState)(null),[xe,Se]=(0,p.useState)(()=>new Set),[Ce,we]=(0,p.useState)(null),[Te,Ee]=(0,p.useState)(null),[De,Oe]=(0,p.useState)(!1),[ke,Ae]=(0,p.useState)(()=>A7(e).isOpen),[je,Me]=(0,p.useState)(()=>A7(e).width),[Ne,Pe]=(0,p.useState)(!1),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)(!1),[ze,Be]=(0,p.useState)(!1),[Ve,K]=(0,p.useState)(!1),[He,We]=(0,p.useState)(!1),[Ge,Ke]=(0,p.useState)(null),[qe,Je]=(0,p.useState)(()=>P7(e)),[q,Xe]=(0,p.useState)(!1),Ze=(0,p.useRef)(null),J=(0,p.useRef)(null),Qe=(0,p.useRef)(null),$e=(0,p.useRef)(null),et=(0,p.useRef)(null),tt=(0,p.useRef)(null),nt=(0,p.useRef)(!1),rt=(0,p.useRef)(!1),it=(0,p.useRef)(0),at=(0,p.useRef)(T7),ot=(0,p.useRef)(T7),st=(0,p.useRef)(null),ct=(0,p.useRef)(!1),lt=(0,p.useRef)(!1),ut=(0,p.useRef)(!1),dt=(0,p.useRef)({}),ft=(0,p.useRef)({}),pt=(0,p.useRef)(new Set),mt=(0,p.useRef)(0),ht=(0,p.useRef)(new Map),gt=e?zie({projectId:e,tool:y?t:_?.tool??t}):null,_t=gt?C[gt]??``:``,vt=y?t:_?.tool??t,yt=(0,p.useMemo)(()=>_?T[_.id]??[]:[],[_,T]),bt=(0,p.useMemo)(()=>_?D[_.id]??0:0,[_,D])>0;(0,p.useEffect)(()=>{ct.current=y},[y]),(0,p.useEffect)(()=>{dt.current=C},[C]),(0,p.useEffect)(()=>{ft.current=T},[T]),(0,p.useEffect)(()=>{if(!gt||pt.current.has(gt))return;pt.current.add(gt);let e=Uie(gt);e&&w(t=>Object.prototype.hasOwnProperty.call(t,gt)?t:{...t,[gt]:e})},[gt]),(0,p.useEffect)(()=>{!gt||!Object.prototype.hasOwnProperty.call(C,gt)||j7({storageKey:gt,value:C[gt]??``})},[gt,C]),(0,p.useEffect)(()=>{st.current=h},[h]),(0,p.useEffect)(()=>{let t=Te??_?.latest_snapshot_id;if(!_||!t||!e){we(null),We(!1),Ae(!1);return}let n=!1;return Oe(!0),_ie(e,_.id,t).then(e=>{n||(we(e),We((e.created_ticket_ids?.length??0)>0),Ae(!0))}).catch(()=>{n||(we(null),We(!1))}).finally(()=>{n||Oe(!1)}),()=>{n=!0}},[_?.latest_snapshot_id,_?.id,e,Te]),(0,p.useEffect)(()=>{Hie({projectId:e,isOpen:ke,width:je})},[e,ke,je]),(0,p.useEffect)(()=>{if(!(!n||f.length===0)){if(!f.some(e=>e.id===n)){Q.error(x7(`errors.initialSessionMissing`)),lt.current=!0,i?.();return}if(h===n){Ee(r??null),i?.();return}oe(null),g(n),Ee(r??null),b(!1),lt.current=!0,i?.()}},[n,r,f,h,i]),(0,p.useEffect)(()=>{Ne||(ot.current=je,Qe.current&&(Qe.current.style.setProperty(`--spec-artifact-panel-width`,`${je}px`),Qe.current.setAttribute(`data-desktop-width`,String(je))))},[je,Ne]);let xt=(0,p.useCallback)(async t=>{if(!e){m([]),B(!1);return}B(!V);try{let n=await die(e,t);if(t?.aborted)return;m(F5(n)),H(!0);let r=new Set(n.map(e=>e.id));Se(e=>{let t=new Set([...e].filter(e=>r.has(e)));return t.size===e.size?e:t})}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.loadSessions`))}finally{t?.aborted||B(!1)}},[e,V]),St=(0,p.useCallback)(async(t,n)=>{if(e){U(!0);try{let r=await h7(e,t,n);if(n?.aborted)return;v(r)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.loadSession`))}finally{n?.aborted||U(!1)}}},[e]),Ct=(0,p.useCallback)(e=>{m(t=>{let n=t.findIndex(t=>t.id===e.id);if(n===-1)return F5([...t,v7(e)]);let r=t.slice();return r[n]=v7(e),F5(r)})},[]),wt=(0,p.useCallback)(t=>t.project_id===e,[e]),Tt=(0,p.useMemo)(()=>[{key:`jira`,label:s(`jiraImportField.label`),placeholder:s(`jiraImportField.placeholder`),state:c,onImport:l},{key:`github`,label:s(`githubImportField.label`),placeholder:s(`githubImportField.placeholder`),state:u,onImport:d}],[s,c,l,u,d]),Et=Tt.some(e=>e.state===`enabled`),Dt=(0,p.useCallback)(()=>{te||re||(b(!0),g(null),Ee(null),v(null))},[te,re]),Ot=(0,p.useCallback)(e=>{re||(oe(null),g(e.id),Ee(null),b(!1),S(null),mt.current+=1)},[re]),kt=(0,p.useCallback)(async t=>{if(e){oe(t);try{await hie(e,t)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.stopSession`))}}},[e]),At=(0,p.useCallback)(async()=>{if(!(!e||!_||!Ce)){Re(!0);try{let t=await yie(e,_.id,Ce.id);We(!0),Q.success(x7(`actions.createTicketsSuccess`,{count:t.tickets.length})),xt()}catch(e){if(Ye(e))return;if(e.status===409){We(!0);return}Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{Re(!1)}}},[e,_,Ce,xt]),jt=(0,p.useCallback)(()=>{At()},[At]),Mt=(0,p.useCallback)(async()=>{if(!(!e||!_||!Ce)&&a){Be(!0);try{let t=await bie(e,_.id,Ce.id);a(t.draft_text,t.spec_session_id,t.spec_snapshot_id)}catch(e){if(Ye(e))return;Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{Be(!1)}}},[e,_,Ce,a]),Nt=(0,p.useCallback)(async()=>{if(!(!e||!_||!Ce)){K(!0);try{await vie(e,_.id,Ce.id),Q.success(x7(`actions.exportSuccess`))}catch(e){if(Ye(e))return;if(e instanceof _7){Ke(e.conflictingPath);return}Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{K(!1)}}},[e,_,Ce]),Pt=(0,p.useCallback)(()=>{tt.current?.(),tt.current=null},[]),Ft=(0,p.useCallback)(e=>{if(!Ze.current)return;let t=Ze.current.getBoundingClientRect().width,n=Vie(e,t);ot.current=n,Qe.current&&(Qe.current.style.setProperty(`--spec-artifact-panel-width`,`${n}px`),Qe.current.setAttribute(`data-desktop-width`,String(n)))},[]),It=(0,p.useCallback)(e=>{let t=$e.current,n=et.current,r=nt.current;if(t!==null){if($e.current=null,et.current=null,nt.current=!1,Pe(!1),Ie(!1),Pt(),e!==null&&typeof J.current?.hasPointerCapture==`function`&&J.current.hasPointerCapture(e)&&typeof J.current.releasePointerCapture==`function`&&J.current.releasePointerCapture(e),n===`collapsed`){if(!r)return;Me(ot.current),Ae(!0);return}Me(ot.current)}},[Pt]),Lt=(0,p.useCallback)((e,t)=>{if($e.current!==e)return;let n=t-it.current,r=at.current-n;if(et.current===`collapsed`){if(!nt.current&&r<Rie)return;nt.current||(nt.current=!0,rt.current=!0,Ie(!0),Pe(!0))}Ft(r)},[Ft]),Rt=(0,p.useCallback)((e,t)=>{if($e.current===e){if(t!==null&&(et.current===`inline`||nt.current)){let e=t-it.current;Ft(at.current-e)}It(e)}},[It,Ft]),zt=(0,p.useCallback)(e=>{e.preventDefault(),$e.current=e.pointerId,et.current=ke?`inline`:`collapsed`,nt.current=!1,rt.current=!1,it.current=e.clientX,at.current=ke?ot.current:0,Pe(ke),Pt(),typeof e.currentTarget.setPointerCapture==`function`&&e.currentTarget.setPointerCapture(e.pointerId);let t=e=>{Lt(e.pointerId,e.clientX)},n=e=>{Rt(e.pointerId,e.clientX)},r=e=>{Rt(e.pointerId,e.clientX)};window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,n),window.addEventListener(`pointercancel`,r),tt.current=()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,n),window.removeEventListener(`pointercancel`,r)}},[Rt,Lt,ke,Pt]),Bt=(0,p.useCallback)(e=>{Lt(e.pointerId,e.clientX)},[Lt]),Vt=(0,p.useCallback)(e=>{Rt(e.pointerId,e.clientX)},[Rt]),Ht=(0,p.useCallback)(e=>{Rt(e.pointerId,e.clientX)},[Rt]),Ut=(0,p.useCallback)(e=>{$e.current===e.pointerId&&It(e.pointerId)},[It]),Wt=(0,p.useCallback)(()=>{Ae(!1)},[]),Gt=(0,p.useCallback)(async()=>{if(!e||W.length===0)return;let t=W;le(e=>{let n=new Set(e);for(let e of t)n.add(e);return n});let n=[];for(let r of t)try{await gie(e,r)}catch(e){Ye(e)||n.push(e instanceof Error?e.message:x7(`errors.deleteSession`))}if(le(e=>{let n=new Set(e);for(let e of t)n.delete(e);return n}),se([]),n.length>0){Q.error(n.join(`
|
|
260
|
-
`));return}ue&&(de(!1),pe(new Set),Q.success(x7(`specView.toasts.deleteSelectedSuccess`,{count:t.length})))},[e,W,ue]),Kt=(0,p.useCallback)(e=>{let t=new Set(e),n=st.current;for(let e of Object.keys(dt.current))j7({storageKey:e,value:``});E(e=>{let n={...e},r=!1;for(let e of t)Object.prototype.hasOwnProperty.call(n,e)&&(delete n[e],r=!0);return r?n:e}),m(e=>{let r=e.filter(e=>!t.has(e.id));if(n&&t.has(n)){let e=r[0]??null;g(e?.id??null),v(null),b(e===null)}return r}),Se(e=>{let n=new Set(e),r=!1;for(let e of t)n.delete(e)&&(r=!0);return r?n:e}),be(e=>e?.sessionId&&t.has(e.sessionId)?null:e),oe(e=>e&&t.has(e)?null:e),se(e=>e.filter(e=>!t.has(e))),le(e=>{let n=new Set(e),r=!1;for(let e of t)n.delete(e)&&(r=!0);return r?n:e}),pe(e=>{let n=new Set(e),r=!1;for(let e of t)n.delete(e)&&(r=!0);return r?n:e})},[]),qt=(0,p.useCallback)(e=>{Kt([e])},[Kt]),Jt=(0,p.useCallback)((e,t)=>{e&&w(n=>n[e]===t?n:{...n,[e]:t})},[]),Yt=(0,p.useCallback)(e=>{S(e.external_source),Jt(gt,Fie(e))},[gt,Jt]),Xt=(0,p.useCallback)(e=>{e&&(w(t=>t[e]===``?t:{...t,[e]:``}),j7({storageKey:e,value:``}))},[]),Zt=(0,p.useCallback)((e,t)=>{E(n=>{if(t.length===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:t}})},[]),Qt=(0,p.useCallback)(e=>{E(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n}),O(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n})},[]),$t=(0,p.useCallback)((e,t)=>{O(n=>{let r=Math.max(0,(n[e]??0)+t);if(r===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:r}})},[]),en=(0,p.useCallback)(async t=>{if(!(!e||q)&&!(_&&_.agent_status===`running`)){if(!h||!_){Je(t),F7({projectId:e,grillOn:t});return}if(_.mode===(t?`grill`:`standard`)){Je(t);return}Xe(!0);try{let n=await fie(e,_.id,{mode:t?`grill`:`standard`});v(n),Ct(n),Je(t),t||(n.messages??[]).some(e=>e.kind===`grill-question`)&&await g7(e,n.id,{instruction:x7(`grill.finalizePrompt`),tool:n.tool,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[]})}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`grill.updateModeError`))}finally{Xe(!1)}}},[e,_,h,q,Ct,k,N,F,j,L]),tn=(0,p.useCallback)(async()=>{if(!e||te||re)return;let n=_t.trim();if(!n&&yt.length===0)return;ie(!0);let r=gt;try{let i=h,a=!i;!a&&!_&&(await h7(e,i)||(a=!0,i=null)),a&&(ne(!0),i=(await m7(e,{tool:t,mode:qe?`grill`:`standard`,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[],external_source:x??null})).id,g(i),b(!1),S(null),Je(!1),F7({projectId:e,grillOn:!1}),O7({projectId:e,tool:t}),ne(!1));let o=yt.map(e=>e.id),s=await g7(e,i,{instruction:n,tool:t,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[],attachment_ids:o.length>0?o:void 0});v(s),Gie({projectId:e,tool:s.tool,model:s.model,variant:s.variant}),ye(e=>e+1),Qt(i),Xt(r)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{ie(!1),ne(!1)}},[e,te,re,_t,yt,gt,h,_,t,qe,k,N,F,j,L,x,Qt,Xt]),nn=(0,p.useCallback)(async n=>{if(!e)return;let r=h;if(!r&&n.length>0)try{ne(!0),r=(await m7(e,{tool:t,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[]})).id,g(r),b(!1),O7({projectId:e,tool:t})}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.upload`));return}finally{ne(!1)}if(r){$t(r,n.length);try{let t=await pie(e,r,n),i=[...ft.current[r]??[],...t.attachments];Zt(r,i)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.upload`))}finally{$t(r,-n.length)}}},[e,h,t,k,N,F,j,L,$t,Zt]),rn=(0,p.useCallback)(async t=>{if(!(!e||!h))try{await mie(e,h,t),Zt(h,(ft.current[h]??[]).filter(e=>e.id!==t))}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.removeAttachment`))}},[e,h,Zt]);(0,p.useEffect)(()=>{if(!ut.current){ut.current=!0;return}let t=k7(e),n=A7(e);ct.current=!1,lt.current=!1,pt.current=new Set,g(null),v(null),b(!1),S(null),w({}),E({}),O({}),oe(null),se([]),le(new Set),de(!1),pe(new Set),be(null),H(!1),Se(new Set),ht.current=new Map,ot.current=n.width,_e(t.isOpen),Me(n.width),Ae(n.isOpen),Je(P7(e)),Xe(!1)},[e]);let an=(0,p.useCallback)((e,t)=>{pe(n=>{if(n.has(e)===t)return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]);(0,p.useEffect)(()=>{let e=new AbortController;return xt(e.signal),()=>{e.abort()}},[xt]),(0,p.useEffect)(()=>{if(ct.current||y||h||lt.current||f.length===0)return;lt.current=!0;let e=f[0]??null;e&&g(e.id)},[h,y,f]),(0,p.useEffect)(()=>{if(vt!==`opencode`){A([]),M([]),he(!1);return}let t=new AbortController;return(async()=>{he(!0);try{let[n,r]=await Promise.all([Wn(vt,t.signal),eN(vt,t.signal,e)]);A(n),M(r)}catch(e){Ye(e)||(A(e=>e),M(e=>e))}finally{t.signal.aborted||he(!1)}})(),()=>{t.abort()}},[e,vt]),(0,p.useEffect)(()=>{if(vt!==`opencode`){P(``),I(``),R([]);return}if(y){let t=Wie({projectId:e,tool:vt}),n=new Set(k.map(e=>e.id)),r=t?.model??``,i=r&&(n.size===0||n.has(r));P(i?r:``),I(e=>i?t?.variant??e:``),R([]);return}P(_?.model??``),I(_?.variant??``),R(_?.skills??[])},[e,_?.id,_?.model,_?.skills,_?.variant,k,vt,y]),(0,p.useEffect)(()=>{if(y||!h){v(null);return}if(_?.id===h)return;v(null);let e=new AbortController;return St(h,e.signal),()=>{e.abort()}},[_,h,y,St]),(0,p.useEffect)(()=>{if(!h||_?.agent_status!==`running`)return;let e=new AbortController,t=window.setInterval(()=>{Promise.all([xt(e.signal),St(h,e.signal)])},Iie);return()=>{e.abort(),window.clearInterval(t)}},[_?.agent_status,h,St,xt]),(0,p.useEffect)(()=>{if(!e)return;let t=t=>{!t||t.project_id!==e||(t.id===st.current&&v(t),wt(t)&&Ct(t))},n=t=>{!t||t.project_id!==e||qt(t.id)};return o.on(`spec-session:created`,t),o.on(`spec-session:updated`,t),o.on(`spec-session:deleted`,n),()=>{o.off(`spec-session:created`,t),o.off(`spec-session:updated`,t),o.off(`spec-session:deleted`,n)}},[e,wt,Ct,qt,o]);let on=(0,p.useMemo)(()=>I5(f),[f]),sn=(0,p.useCallback)(e=>{e.key!==`Enter`||e.shiftKey||_?.agent_status===`running`||te||re||bt||(e.preventDefault(),tn())},[tn,_?.agent_status,te,re,bt]),cn=(0,p.useCallback)(t=>{if(!e)return;let n=Array.from(t.clipboardData.files).filter(e=>e.type.startsWith(`image/`));n.length!==0&&(t.preventDefault(),nn(n))},[e,nn]),ln=(0,p.useMemo)(()=>z5(k),[k]),un=(0,p.useMemo)(()=>_?V5({modelLabel:B5({availableModelsById:ln,model:_.model}),tool:_.tool}):null,[_,ln]),dn=(0,p.useMemo)(()=>_?.messages?_.messages.map(e=>({id:e.id,role:e.role,kind:e.kind,content:e.content,attachments:e.attachments??[],metadata:e.metadata,created_at:e.created_at,displayTitle:e.role===`assistant`?un??R5(_.tool):H5()})):[],[_,un]),fn=h!==null||y,pn=y?null:_,mn=pn?.streaming_response??null,hn=pn?.agent_status===`running`,gn=hn?un:null,_n=ae!==null,vn=!!e&&!te&&(y||h!==null),yn=vt===`opencode`&&(y||h!==null)&&pn?.agent_status!==`running`,bn=(0,p.useMemo)(()=>{if(!_?.messages)return null;for(let e=_.messages.length-1;e>=0;--e){let t=_.messages[e];if(t.kind===`grill-question`)return t.id}return null},[_]),xn=(0,p.useCallback)(async t=>{if(!(!e||!h||!_)){ie(!0);try{v(await g7(e,h,{instruction:t,tool:_.tool,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[]})),ye(e=>e+1)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{ie(!1)}}},[e,h,_,k,N,F,j,L]),Sn=(0,p.useCallback)(e=>{if(e.role!==`assistant`||e.kind!==`grill-question`)return;let t=e.metadata?.grill_question;if(!t)return;let n=_?.messages??[],r=n.findIndex(t=>t.id===e.id),i;if(r>=0)for(let e=r+1;e<n.length;e+=1){let t=n[e];if(t.role===`user`){i=t.content;break}}return(0,Y.jsx)(wie,{question:t,isActive:hn?!1:e.id===bn&&_?.agent_status!==`running`&&_?.mode===`grill`,historicalAnswer:i,isDisabled:re||te||q,labels:{rationaleLabel:x7(`grill.rationaleLabel`),suggestionsLabel:x7(`grill.suggestionsLabel`),recommendedSuggestionLabel:x7(`grill.recommendedSuggestionLabel`),answerPlaceholder:x7(`grill.answerPlaceholder`),submitLabel:x7(`grill.submitLabel`),submittingLabel:x7(`grill.submittingLabel`),historicalAnswerLabel:x7(`grill.historicalAnswerLabel`),noAnswerLabel:x7(`grill.noAnswerLabel`)},onSubmitAnswer:e=>{xn(e)}})},[_,hn,re,te,q,bn,xn]),Cn=vt===`opencode`&&k.length>0,wn=vt,Tn=y?x7(`composer.newSpecTitle`):_?.title??x7(`composer.specTitle`),En=Cn?N||null:_?.model??null,Dn=B5({availableModelsById:ln,model:En}),On=_?.agent_status===`stopped`,kn=x7(`composer.placeholderSpec`),An=f.some(e=>e.agent_status!==`running`),jn=(0,p.useMemo)(()=>({ariaLabel:x7(`sidebar.ariaLabel`),newSession:x7(`sidebar.newSession`),collapseAriaLabel:x7(`sidebar.collapseAriaLabel`),openAriaLabel:x7(`sidebar.openAriaLabel`),cancelSelection:x7(`sidebar.cancelSelection`),deleteSelected:x7(`sidebar.deleteSelected`),selectedCount:e=>`${e} selected`,select:x7(`sidebar.select`),loadingSessions:x7(`sidebar.loadingSessions`),noSessions:x7(`sidebar.noSessions`),deleteSessionAriaLabel:x7(`sidebar.deleteSessionAriaLabel`),selectSessionAriaLabel:e=>x7(`sidebar.selectSessionAriaLabel`,{title:e}),selectSessionTitle:e=>x7(`sidebar.selectSessionTitle`,{title:e}),deleteSessionTitle:e=>x7(`sidebar.deleteSessionTitle`,{title:e})}),[]),Mn=(0,p.useMemo)(()=>({title:x7(`deleteModal.title`),bulkTitle:x7(`deleteModal.bulkTitle`),description:x7(`deleteModal.description`),bulkDescription:e=>x7(`deleteModal.bulkDescription`,{count:e}),cancel:x7(`deleteModal.cancel`),delete:x7(`deleteModal.delete`),deleting:x7(`deleteModal.deleting`)}),[]),Nn=(0,p.useCallback)(e=>e.agent_status===`running`?`running`:e.agent_status===`error`||e.agent_status===`done`&&ht.current.get(e.id)===`running`?`finished`:null,[]);(0,p.useEffect)(()=>{let e=new Map;for(let t of f){let n=ht.current.get(t.id)??null,r=t.agent_status??null;n===null&&r===null||n!==r&&e.set(t.id,r)}ht.current=e},[f]);let Pn=(0,p.useCallback)(e=>e.agent_status===`running`?x7(`sidebar.cannotDeleteRunning`):null,[]),Fn=(0,p.useCallback)(e=>{let t=(e.linked_ticket_count??0)+(e.linked_chat_count??0);return t>0?`${e.title} — ${x7(`sidebar.linkedImplementationsAriaLabel`,{itemCount:t})}`:e.title},[]),In=e=>{let t=e.first_user_message_preview??e.messages?.find(e=>e.role===`user`)?.content;return t&&t.replace(/\s+/g,` `).trim()||null},Ln=(0,p.useCallback)(({session:e,activityState:t})=>{let n=In(e),r=e.linked_ticket_count??0,i=e.linked_chat_count??0,a=r+i;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 truncate text-[13px] font-medium leading-5`,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:e.title}),a>0&&(0,Y.jsx)(Sv,{content:x7(`sidebar.linkedImplementationsTooltip`,{ticketCount:r,chatCount:i}),children:(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-0.5 text-[11px] text-indigo-500 dark:text-indigo-400`,children:[(0,Y.jsx)(aP,{className:`size-3`}),(0,Y.jsx)(`span`,{children:a})]})})]}),n?(0,Y.jsx)(`div`,{className:`mt-0.5 line-clamp-1 text-xs leading-4 text-muted-foreground`,children:n}):null]}),(0,Y.jsx)(Ty,{state:t,className:`mt-1`})]})},[]),Rn=hn?(0,Y.jsx)(_5,{isInterrupting:_n,onStop:()=>{h&&kt(h)},interruptLabel:x7(`composer.interrupt`),interruptingLabel:x7(`composer.interrupting`)}):null,zn=(0,p.useMemo)(()=>k.find(e=>e.id===N)??null,[k,N]),Bn=vt===`opencode`?me?(0,Y.jsx)(MG,{}):k.length>0?(0,Y.jsx)(NG,{model:N,variant:F,skills:L,showModelSelector:!0,showSkillsSelector:!0,availableModels:k,availableSkills:j,selectedModel:zn,onModelChange:e=>{let t=k.find(t=>t.id===e)??null;P(e),I(e=>t&&t.variants.includes(e)?e:``)},onVariantChange:I,onSkillsChange:R,modelSelectId:`spec-model-select`,variantSelectId:`spec-variant-select`,skillsSelectId:`spec-skills-select`}):null:null,Vn=(0,p.useMemo)(()=>W.length===1?f.find(e=>e.id===W[0])?.title??``:``,[W,f]),Hn=(0,p.useMemo)(()=>f.filter(e=>W.includes(e.id)),[f,W]),Un=fn&&_!==null,Gn=Un&&!ke&&!Fe,Kn=Un&&(ke||Fe);(0,p.useEffect)(()=>{Un||($e.current=null,et.current=null,nt.current=!1,rt.current=!1,Pe(!1),Ie(!1),Pt())},[Un,Pt]),(0,p.useEffect)(()=>()=>{Pt()},[Pt]);let qn=(0,Y.jsx)(Sv,{content:x7(`artifactPanel.open`),disabled:!Gn,side:`left`,children:(0,Y.jsx)(`div`,{ref:J,className:X(Gn?`group flex shrink-0 touch-none select-none items-center justify-center border-l border-border/70 bg-background/90 text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground xl:w-7 xl:cursor-col-resize`:`group hidden w-5 shrink-0 cursor-col-resize touch-none select-none items-center justify-center border-l border-border/70 bg-background/80 transition-colors xl:flex`,Ne&&!Gn&&`bg-background`),role:Gn?`button`:`separator`,tabIndex:Gn?0:void 0,"aria-label":x7(Gn?`artifactPanel.open`:`artifactPanel.resize`),"aria-valuemin":Gn?void 0:E7,"aria-valuemax":Gn?void 0:Ze.current?Math.round(Ze.current.clientWidth*D7):800,"aria-valuenow":Gn?void 0:je,onClick:Gn?()=>{if(rt.current){rt.current=!1;return}Ae(!0)}:void 0,onPointerDown:zt,onPointerMove:Bt,onPointerUp:Vt,onPointerCancel:Ht,onLostPointerCapture:Ut,children:Gn?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`hidden h-full w-full items-center justify-center xl:flex`,children:(0,Y.jsxs)(`span`,{className:`relative flex h-full w-full items-center justify-center`,children:[(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-[2.65rem] items-center justify-center text-sky-400/80 transition-colors group-hover:text-sky-300`,children:(0,Y.jsx)(Mv,{className:`h-3 w-3 shrink-0`})}),(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 h-14 w-1.5 -translate-x-1/2 -translate-y-1/2 rounded-full bg-muted-foreground/70 transition-colors group-hover:bg-sky-300/90`})]})}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-xs font-medium xl:hidden`,children:[(0,Y.jsx)(Mv,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:x7(`artifactPanel.title`)})]})]}):(0,Y.jsx)(`div`,{className:X(`h-14 w-1.5 rounded-full transition-colors`,Ne?`bg-sky-300/90`:`bg-muted-foreground/70 group-hover:bg-sky-300/90`)})})}),Jn=y&&Et?(0,Y.jsx)(rG,{providers:Tt,onImported:Yt,inputId:`spec-draft-external-import`,className:`max-w-md`}):null,Yn=(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-end gap-2`,children:[(0,Y.jsx)(Oie,{on:_?_.mode===`grill`:qe,disabled:q||hn||te||re,tooltipContent:x7(`grill.toggleTooltip`),ariaLabelOn:x7(`grill.toggleAriaLabelOn`),ariaLabelOff:x7(`grill.toggleAriaLabelOff`),onToggle:e=>{en(e)}}),Jn,Rn]}),Xn=Bn,Zn=(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,Y.jsx)(kie,{projectId:e,messages:dn,internalLog:pn?.agent_log??null,currentThinkingMessageId:pn?.agent_message_id??null,previousThinkingLog:pn?.previous_agent_log??null,previousThinkingMessageId:pn?.previous_agent_message_id??null,pendingAgentTitle:gn,streamingResponse:mn,isRunning:hn,isLoading:ee,canShowComposer:vn,isExternallyResizing:Ne,scrollLayoutKey:Un?Kn?`artifact-visible`:`artifact-hidden`:`artifact-disabled`,header:(0,Y.jsx)(k5,{title:Tn,tool:y?null:_?.tool??null,modelLabel:Dn,interrupted:On,interruptedLabel:x7(`sidebar.interrupted`),usage:{totalTokens:_?.usage_snapshot_total_tokens??null,contextWindow:_?.usage_snapshot_context_window??null,cost:_?.usage_snapshot_cost??null,tool:wn,model:En,availableModels:k}}),composerControls:Yn,composerInlineControls:Xn,composerTheme:`default`,composerFocusNonce:ve,pendingAgentRevealKey:hn&&G?.sessionId===_?.id?G.turnKey:null,pendingAgentRevealDelayMs:hn&&G?.sessionId===_?.id?400:0,followUpPrompt:_t,draftAttachments:yt,followUpPlaceholder:kn,emptyStateText:y?x7(`composer.describeFeature`):null,isSendingFollowUp:re||te,isUploadingAttachments:bt,canAttachImages:yn,followUpDisabledReason:pn?.agent_status===`running`?x7(`composer.waitTurn`):bt?x7(`composer.waitUpload`):void 0,renderMessageBody:Sn,onFollowUpPromptChange:e=>{Jt(gt,e)},onFollowUpKeyDown:sn,onFollowUpPaste:cn,onUploadAttachments:e=>{nn(e)},onRemoveAttachment:e=>{rn(e)},onFollowUpSubmit:()=>{tn()}})}),Qn=!fn&&V&&!z?(0,Y.jsx)(h5,{title:x7(`composer.noSessionSelectedTitle`),description:x7(`composer.noSessionSelectedDescription`),startNewSessionLabel:x7(`composer.startNewSession`),onStartNewSession:Dt,canStartNewSession:!!e&&!te&&!re}):fn&&!y&&!ee&&!_?(0,Y.jsx)(p5,{label:x7(`composer.loadingSession`)}):!V||z?(0,Y.jsx)(m5,{label:x7(`sidebar.loadingSessions`)}):Zn,$n=Hn.length>0?(0,Y.jsx)(f5,{count:Hn.length,title:Vn,isDeleting:ce.size>0,onConfirm:()=>{Gt()},onCancel:()=>{ce.size>0||se([])},labels:Mn}):null,er=Ge===null?null:(0,Y.jsx)(nb,{title:x7(`actions.exportConflictTitle`),description:x7(`actions.exportConflictDescription`,{path:Ge}),confirmLabel:x7(`actions.exportConflictDismiss`),cancelLabel:``,onConfirm:()=>{Ke(null)},onCancel:()=>{Ke(null)}});return(0,Y.jsxs)(`div`,{"data-testid":`spec-view-shell`,className:`relative flex min-h-0 flex-1 overflow-hidden border-t border-border/70`,children:[(0,Y.jsx)(g5,{sessions:f,sessionGroups:on,activeSessionId:h,isDraftOpen:y,isLoadingSessions:z,isOpen:ge,onToggleOpen:()=>{_e(t=>{let n=!t;return Bie({projectId:e,isOpen:n}),n})},testId:`spec-sessions-sidebar`,railTestId:`spec-sessions-rail`,onDraftOpen:Dt,isCreatingSession:te||!e,isSendingPrompt:re,newSessionShortcutHint:(0,Y.jsx)($M,{children:`/`}),newSessionTooltip:x7(`sidebar.newSessionTooltip`),isSelectionMode:ue,selectedSessionIds:fe,selectedSessionCount:fe.size,hasDeletableSessions:An,deletingSessionIds:ce,onEnterSelectionMode:()=>{de(!0),pe(new Set)},onExitSelectionMode:()=>{de(!1),pe(new Set)},onToggleSessionSelection:e=>{pe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},onSetSessionSelection:an,onConfirmDeleteSelectedSessions:()=>{se(Array.from(fe))},onSessionSelect:e=>{Ot(e)},onConfirmDeleteSession:e=>{se([e])},getSessionId:e=>e.id,getSessionTitle:e=>e.title,getDeleteDisabledReason:Pn,getActivityState:Nn,getRowAriaLabel:Fn,renderRowContent:Ln,labels:jn}),(0,Y.jsxs)(`div`,{ref:Ze,className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden xl:flex-row`,children:[(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:Qn}),Un?(0,Y.jsxs)(Y.Fragment,{children:[qn,Kn?(0,Y.jsx)(Pie,{snapshot:Ce,isLoading:De,desktopWidth:je,onClose:Wt,ref:Qe,actions:Ce?{onCreateTickets:jt,onImplementInChat:()=>{Mt()},onExport:()=>{Nt()},isCreatingTickets:Le,isImplementingInChat:ze,isExporting:Ve,hasExistingTicketsFromSnapshot:He}:void 0}):null]}):null]}),$n,er]})},I7=()=>({hasRunning:!1,hasFinishedUnseen:!1,hasErrorUnseen:!1}),L7=()=>({board:I7(),chat:I7(),spec:I7(),memory:I7()}),R7=(e,t)=>{let n=e[t];return!n.hasFinishedUnseen&&!n.hasErrorUnseen?e:{...e,[t]:{...n,hasFinishedUnseen:!1,hasErrorUnseen:!1}}},Jie=e=>({hasRunning:e.board.hasRunning||e.chat.hasRunning||e.spec.hasRunning,hasFinishedUnseen:e.board.hasFinishedUnseen||e.chat.hasFinishedUnseen||e.spec.hasFinishedUnseen,hasErrorUnseen:e.board.hasErrorUnseen||e.chat.hasErrorUnseen||e.spec.hasErrorUnseen}),z7=e=>e.hasErrorUnseen?`error`:e.hasRunning?`running`:e.hasFinishedUnseen?`finished`:null,Yie=(e,t)=>t?null:z7(e),B7=320,Xie=.7,Zie=28,Qie=6,$ie=(e,t)=>{let n=Math.max(B7,Math.round(t*Xie));return Math.max(B7,Math.min(n,Math.round(e)))},eae=(e,t)=>{let n=e.findIndex(e=>e.id===t.id);if(n===-1)return[...e,t];let r=e.slice();return r[n]=t,r},tae=(e,t)=>{if(t.type===`reset`)return L7();if(t.type===`mark-workspace-visible`)return R7(e,t.workspace);let n=e[t.workspace],r={...n,hasRunning:t.activity.hasRunning,hasFinishedUnseen:t.visibleWorkspace===t.workspace?!1:n.hasFinishedUnseen||t.activity.didFinish,hasErrorUnseen:t.visibleWorkspace===t.workspace?!1:n.hasErrorUnseen||t.activity.didError};return n.hasRunning===r.hasRunning&&n.hasFinishedUnseen===r.hasFinishedUnseen&&n.hasErrorUnseen===r.hasErrorUnseen?e:{...e,[t.workspace]:r}},nae=({activeProjectId:e,onActivity:t})=>{let{tickets:n}=W8(),r=(0,p.useRef)(new Map);return(0,p.useEffect)(()=>{r.current=new Map},[e]),(0,p.useEffect)(()=>{let e=r.current,i=new Map,a=!1,o=!1;for(let t of n){let n=e.get(t.id)??null,r=t.agent_status??null;n===`running`&&r===`done`&&(a=!0),n===`running`&&r===`error`&&(o=!0),i.set(t.id,r)}r.current=i,t({hasRunning:n.some(e=>e.agent_status===`running`),didFinish:a,didError:o})},[t,n]),null},rae=({activeProjectId:e,onActivity:t})=>{let n=I8(),[r,i]=(0,p.useState)([]),a=(0,p.useRef)(new Map);return(0,p.useEffect)(()=>{if(!e)return;let t=new AbortController;return(async()=>{try{let n=await Fk(e,t.signal);if(t.signal.aborted)return;i(n)}catch(e){Ye(e)}})(),()=>{t.abort()}},[e,n]),(0,p.useEffect)(()=>{if(!e)return;let t=new AbortController,n=n3(()=>{document.visibilityState===`visible`&&Fk(e,t.signal).then(e=>{t.signal.aborted||i(e)}).catch(e=>{Ye(e)})});return()=>{t.abort(),n()}},[e,n]),(0,p.useEffect)(()=>{if(!e)return;let t=t=>{!t||t.project_id!==e||i(e=>eae(e,t))},r=t=>{!t||t.project_id!==e||i(e=>e.filter(e=>e.id!==t.id))};return n.on(`chat-session:created`,t),n.on(`chat-session:updated`,t),n.on(`chat-session:deleted`,r),()=>{n.off(`chat-session:created`,t),n.off(`chat-session:updated`,t),n.off(`chat-session:deleted`,r)}},[e,n]),(0,p.useEffect)(()=>{let n=a.current,i=new Map,o=[],s=!1;for(let e of r){let t=n.get(e.id)??null,r=e.agent_status??null;t===`running`&&r===`done`&&o.push(e),t===`running`&&r===`error`&&(s=!0),i.set(e.id,r)}a.current=i;for(let e of o)e.title&&P8(`Chat response ready`,e.title);o.length>0&&e&&$4(e),t({hasRunning:r.some(e=>e.agent_status===`running`),didFinish:o.length>0,didError:s})},[e,t,r]),null},iae=({activeProjectId:e,onActivity:t})=>{let n=I8();return(0,p.useEffect)(()=>{if(!e)return;let r=n=>{!n||n.project_id!==e||t({hasRunning:n.agent_status===`running`,didFinish:n.agent_status===`done`,didError:n.agent_status===`error`})},i=e=>{!e||e.project_id};return n.on(`spec-session:created`,r),n.on(`spec-session:updated`,r),n.on(`spec-session:deleted`,i),()=>{n.off(`spec-session:created`,r),n.off(`spec-session:updated`,r),n.off(`spec-session:deleted`,i)}},[e,t,n]),null},aae=({activeProjectId:e,activeProject:t=null,activeProjectBranchState:n=null,activeRun:r,activeTool:i,onRestoreChatSessionTarget:a,onChatReviewCapabilityChange:o,onPreviewReviewCapabilityChange:s,previewDisplayMode:c=`hidden`,previewPane:l=null,previewPaneWidth:u=480,isPreviewButtonDisabled:d=!1,previewButtonTitle:f,visibleWorkspace:m,onProjectUsageChange:h,onBundlesChange:g,onBundlesLoadingChange:_,onBoardLoadedProjectIdChange:v,onPreviewToggle:y,onPreviewPaneWidthChange:b,onRunStopped:x,onRunStatusChange:S,onWorkspaceActivityChange:C,onWorkspaceActivityEvent:w,pendingWorkspaceNavigation:T=null,onPendingWorkspaceNavigationConsumed:E,onSpecImplementationChatReady:D,onViewSourceSpec:O,refreshKey:k=0})=>{let A=(0,p.useRef)(null),j=(0,p.useRef)(null),M=(0,p.useRef)(null),N=(0,p.useRef)(null),P=(0,p.useRef)(!1),F=(0,p.useRef)(!1),I=(0,p.useRef)(0),L=(0,p.useRef)(u),R=(0,p.useRef)(u),z=m===`board`||m===`chat`,B=l!==null,[V,H]=(0,p.useState)(!1),[ee,U]=(0,p.useState)(!1),[te,ne]=(0,p.useState)(u),[re,ie]=(0,p.useReducer)(tae,void 0,L7),ae=z&&B&&c===`expanded`,oe=z&&B&&c===`inline`,W=z&&B&&c===`hidden`&&!ee,se=(oe||ee)&&!ae,ce=ae||se,le=z&&B&&!ae,ue=V?te:u,de=m!==`chat`||!se,fe=e=>{let t=M.current,n=N.current,r=P.current;if(t!==null){if(M.current=null,N.current=null,P.current=!1,H(!1),U(!1),e!==null&&j.current?.hasPointerCapture(e)&&j.current.releasePointerCapture(e),n===`collapsed`){if(!r)return;b?.(R.current),y?.();return}b?.(R.current)}},pe=e=>{if(!A.current)return;let t=A.current.getBoundingClientRect().width,n=$ie(e,t);R.current=n,ne(n)},me=e=>{b&&(W&&d||(e.preventDefault(),M.current=e.pointerId,N.current=W?`collapsed`:`inline`,P.current=!1,F.current=!1,I.current=e.clientX,L.current=W?0:R.current,H(!W),e.currentTarget.setPointerCapture(e.pointerId)))},he=e=>{if(M.current!==e.pointerId)return;let t=e.clientX-I.current,n=L.current-t;if(N.current===`collapsed`){if(!P.current&&n<Qie)return;P.current||(P.current=!0,F.current=!0,U(!0),H(!0))}pe(n)},ge=e=>{if(M.current===e.pointerId){if(N.current===`inline`||P.current){let t=e.clientX-I.current;pe(L.current-t)}fe(e.pointerId)}},_e=e=>{M.current===e.pointerId&&fe(e.pointerId)},ve=(0,p.useCallback)((e,t)=>{w?.(e,t),ie({type:`update-workspace`,workspace:e,activity:t,visibleWorkspace:m})},[w,m]);(0,p.useEffect)(()=>{ie({type:`reset`})},[e]),(0,p.useEffect)(()=>{m!==`memory`&&ie({type:`mark-workspace-visible`,workspace:m})},[m]),(0,p.useEffect)(()=>{C?.(re)},[C,re]),(0,p.useEffect)(()=>{V||(R.current=u),!B&&(M.current=null,N.current=null,P.current=!1,F.current=!1,R.current=u)},[B,V,u]);let ye=()=>{if(F.current){F.current=!1;return}d||y?.()};return(0,Y.jsx)(U8,{activeProjectId:e,refreshKey:k,onLoadedProjectIdChange:v,onProjectUsageChange:h,onBundlesChange:g,onBundlesLoadingChange:_,children:(0,Y.jsxs)(`div`,{ref:A,className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsx)(nae,{activeProjectId:e,onActivity:e=>{ve(`board`,e)}}),(0,Y.jsx)(rae,{activeProjectId:e,onActivity:e=>{ve(`chat`,e)}}),(0,Y.jsx)(iae,{activeProjectId:e,onActivity:e=>{ve(`spec`,e)}}),m===`spec`?(0,Y.jsx)(`div`,{id:`project-workspace-panel-spec`,role:`tabpanel`,"aria-labelledby":`project-workspace-tab-spec`,className:`flex min-h-0 flex-1 flex-col`,children:(0,Y.jsx)(qie,{activeProjectId:e,activeTool:i,initialSpecSessionId:T?.workspace===`spec`?T.specSessionId:null,initialSpecSnapshotId:T?.workspace===`spec`?T.specSnapshotId??null:null,onInitialSpecNavigationConsumed:E,onImplementInChat:D})}):m===`memory`?(0,Y.jsx)(`div`,{id:`project-workspace-panel-memory`,role:`tabpanel`,"aria-labelledby":`project-workspace-tab-memory`,className:`flex min-h-0 flex-1 flex-col`,children:(0,Y.jsx)(uie,{activeProject:t})}):(0,Y.jsxs)(`div`,{id:m===`chat`?`project-workspace-panel-chat`:`project-workspace-panel-board`,role:`tabpanel`,"aria-labelledby":m===`chat`?`project-workspace-tab-chat`:`project-workspace-tab-board`,className:`flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:m===`chat`?(0,Y.jsx)(cie,{activeProjectId:e,activeProject:t,activeProjectBranchState:n,activeTool:i,initialChatSessionId:T?.workspace===`chat`&&`chatSessionId`in T?T.chatSessionId:null,initialSpecDraft:T?.workspace===`chat`&&`draft`in T?{text:T.draftText,specSessionId:T.specSessionId,specSnapshotId:T.specSnapshotId}:null,onInitialSpecDraftConsumed:E,onInitialChatNavigationConsumed:E,onViewSourceSpec:O,isExternallyResizing:V,onRestoreSessionTarget:a,onReviewCapabilityChange:o,showChangesPanel:de}):(0,Y.jsx)(mre,{activeProjectId:e,activeProject:t,activeProjectBranchState:n,activeRun:r,activeTool:i,onPreviewReviewCapabilityChange:s,onRunStopped:x,onRunStatusChange:S,onViewSourceSpec:O,refreshKey:k})}),[le?(0,Y.jsx)(Sv,{content:d?f??`Preview unavailable`:`Open preview`,disabled:!W,side:`left`,children:(0,Y.jsx)(`div`,{"aria-label":W?f??`Show preview`:`Resize preview pane`,"aria-orientation":W?void 0:`vertical`,className:W?`group flex shrink-0 touch-none select-none items-center justify-center border-l border-border/70 bg-background/90 transition-colors ${d?`cursor-not-allowed text-muted-foreground/60`:`cursor-col-resize text-muted-foreground hover:bg-muted/50 hover:text-foreground`}`:`group flex w-5 shrink-0 cursor-col-resize touch-none select-none items-center justify-center border-l border-border/70 bg-background/80 ${V?`bg-background`:``}`,"data-preview-divider":`true`,"data-testid":W?`collapsed-preview-rail`:void 0,onLostPointerCapture:_e,onPointerCancel:ge,onPointerDown:me,onPointerMove:he,onPointerUp:ge,onClick:W?ye:void 0,onKeyDown:W?e=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),ye())}:void 0,ref:j,role:W?`button`:`separator`,style:W?{width:`${Zie}px`}:void 0,tabIndex:W?d?-1:0:void 0,children:W?(0,Y.jsxs)(`span`,{className:`relative flex h-full w-full items-center justify-center`,children:[(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-[2.65rem] items-center justify-center text-sky-400/80 transition-colors group-hover:text-sky-300`,children:(0,Y.jsx)(lie,{className:`h-3 w-3 shrink-0`})}),(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 h-14 w-1.5 -translate-x-1/2 -translate-y-1/2 rounded-full bg-muted-foreground/70 transition-colors group-hover:bg-sky-300/90`})]}):(0,Y.jsx)(`div`,{className:`h-14 w-1.5 rounded-full transition-colors ${V?`bg-sky-300/90`:`bg-muted-foreground/70 group-hover:bg-sky-300/90`}`})})},`preview-divider`):null,ce?(0,Y.jsx)(`div`,{className:ae?`fixed inset-0 z-50 bg-black/70 p-4 sm:p-6`:`min-h-0 shrink-0 border-l border-border/70 bg-[#11131a]`,style:ae?void 0:{width:`${ue}px`},children:(0,Y.jsx)(`div`,{className:`h-full w-full`,children:l})},`preview-container`):null]]})]})})},oae=({isExpanded:e,isVisible:t,project:n,onClose:r,onToggleExpanded:i})=>(0,Y.jsx)(`div`,{className:[`fixed inset-x-4 bottom-24 z-40`,e?`top-20`:`h-[min(28rem,calc(100vh-8rem))]`,t?`block`:`hidden`].join(` `),children:(0,Y.jsx)(q0,{createSession:()=>dP(n.id),isExpanded:e,isVisible:t,ariaLabel:`Project terminal for ${n.name}`,title:n.name,closeLabel:`Close terminal`,className:e?`h-full w-full rounded-2xl shadow-2xl`:`mx-auto h-full max-w-6xl shadow-2xl`,onClose:r,onToggleExpanded:i})}),sae=({activeWorkspace:e,activityByWorkspace:t,memoryEnabled:n=!1,onWorkspaceChange:r})=>(0,Y.jsx)(`div`,{role:`tablist`,"aria-label":`Project workspace`,className:`inline-flex items-end gap-1 border-b border-border/70`,children:(n?[`board`,`chat`,`spec`,`memory`]:[`board`,`chat`,`spec`]).map(n=>{let i=e===n,a=Yie(t[n],i),o=n===`board`?`border-sky-300/70 bg-sky-500/8 text-sky-200`:n===`spec`?`border-violet-300/70 bg-violet-500/8 text-violet-200`:n===`memory`?`border-amber-300/70 bg-amber-500/8 text-amber-200`:`border-emerald-300/70 bg-emerald-500/8 text-emerald-200`;return(0,Y.jsx)(`button`,{id:`project-workspace-tab-${n}`,type:`button`,role:`tab`,"aria-selected":i,"aria-controls":`project-workspace-panel-${n}`,tabIndex:i?0:-1,className:X(`cursor-pointer rounded-t-lg border-b-2 px-4 py-2.5 text-[15px] font-medium transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60`,i?o:`border-transparent text-muted-foreground hover:border-border hover:bg-background/35 hover:text-foreground`),onClick:()=>r(n),children:(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{children:n===`board`?`Board`:n===`chat`?`Chat`:n===`spec`?`Spec`:`Memory`}),(0,Y.jsx)(Ty,{state:a,className:`mt-0`})]})},n)})}),V7=32,cae=5.5,lae=2,uae=24,dae=8,H7=new Map,fae={running:{fill:`#fcd34d`,stroke:`#f59e0b`},finished:{fill:`#34d399`,stroke:`#059669`},error:{fill:`#fb7185`,stroke:`#e11d48`}},U7=e=>e.replaceAll(`&`,`&`).replaceAll(`"`,`"`).replaceAll(`<`,`<`).replaceAll(`>`,`>`),W7=e=>{if(!e)return null;let t=e.trim().match(/^([0-9]+(?:\.[0-9]+)?)/);return t?Number(t[1]):null},G7=e=>{let t=new DOMParser().parseFromString(e,`image/svg+xml`);if(t.querySelector(`parsererror`))return null;let n=t.documentElement;if(n.nodeName.toLowerCase()!==`svg`)return null;let r=n.getAttribute(`viewBox`)?.trim(),i=W7(n.getAttribute(`width`)),a=W7(n.getAttribute(`height`)),o=r??(i&&a?`0 0 ${i} ${a}`:`0 0 ${V7} ${V7}`);return`<svg ${[Array.from(n.attributes).filter(e=>![`width`,`height`,`viewBox`,`x`,`y`,`preserveAspectRatio`].includes(e.name)).map(e=>`${e.name}="${U7(e.value)}"`).join(` `),`x="0"`,`y="0"`,`width="${V7}"`,`height="${V7}"`,`viewBox="${U7(o)}"`,`preserveAspectRatio="xMidYMid meet"`].filter(e=>e.length>0).join(` `)}>${n.innerHTML}</svg>`},pae=async e=>{if(!e)return null;let t=H7.get(e);if(t)return t;let n=(async()=>{try{if(e.startsWith(`data:image/svg+xml,`))return G7(decodeURIComponent(e.slice(19)));if(e.startsWith(`data:image/svg+xml;base64,`))return G7(atob(e.slice(26)));let t=await fetch(e);return t.ok?G7(await t.text()):null}catch{return null}})();return H7.set(e,n),n},mae=async(e,t)=>{let{fill:n,stroke:r}=fae[e],i=await pae(t);return i?[`<svg xmlns="http://www.w3.org/2000/svg" width="${V7}" height="${V7}" viewBox="0 0 ${V7} ${V7}">`,i,`<circle cx="${uae}" cy="${dae}" r="${cae}" fill="${n}" stroke="${r}" stroke-width="${lae}"/>`,`</svg>`].join(``):null},hae=async(e,t)=>{if(!e)return t;let n=await mae(e,t);return n?`data:image/svg+xml,${encodeURIComponent(n)}`:t},gae=()=>{let e=document.querySelector(`link[rel="icon"]`);if(e)return e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.appendChild(t),t},K7=({defaultHref:e,state:t})=>{let n=gae(),r=Number(n.dataset.browserTabActivityRequestId??`0`)+1;if(n.dataset.browserTabActivityState=t??`default`,n.dataset.browserTabActivityRequestId=String(r),!t){if(e){n.href=e;return}n.removeAttribute(`href`);return}hae(t,e).then(e=>{if(n.dataset.browserTabActivityRequestId===String(r)){if(e){n.href=e;return}n.removeAttribute(`href`)}})},q7=(e,t)=>sb.t(`common:projectFooter.${e}`,t),_ae=1e3,J7=`archon.active-project-id`,Y7=`archon.workspace-by-project`,X7=`archon.preview-mode-by-project`,Z7=`archon.dismissed-preview-run-context-by-project`,Q7=5e3,$7=`archon.preview-pane-width`,e9=`archon.preview-viewport-preset`,t9=`archon.preview-zoom`,vae=480,yae=`responsive`,bae=1,n9={hasMounted:!1,isOpen:!1,isExpanded:!1},r9=`hidden`,xae=(0,p.lazy)(()=>bU(()=>Promise.resolve().then(()=>l6).then(e=>({default:e.TicketChangesModal})),void 0)),Sae=(0,p.lazy)(()=>bU(()=>import(`./TestsDialog-DelI4dOJ.js`).then(e=>({default:e.TestsDialog})),__vite__mapDeps([19,3]))),i9=e=>{if(!e)return null;try{return JSON.parse(e)}catch{return null}},a9=e=>{let t=i9(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>0):[]},o9=e=>{let t=i9(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.name==`string`?t.name:``,r=typeof t.cmd==`string`?t.cmd:``,i=typeof t.cwd==`string`?t.cwd:``;return n.trim()===``&&r.trim()===``&&i.trim()===``?[]:[{name:n,cmd:r,cwd:i}]}):[]},Cae=e=>{let t=i9(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.source==`string`?t.source:``,r=typeof t.target==`string`?t.target:``,i=t.mode===`copy`||t.mode===`symlink`?t.mode:`copy`;return n.trim()===``&&r.trim()===``?[]:[{source:n,target:r,mode:i}]}):[]},wae=e=>({name:e.name,repoPath:e.repo_path,linkedProjectIds:e.linked_project_ids,runSetup:a9(e.run_setup),runServices:o9(e.run_services),testCommands:v8(e.test_commands),runIde:e.run_ide??``,previewServiceName:e.preview_service_name??``,previewPath:e.preview_path??``,previewCapabilityMode:e.preview_capability_mode??`auto`,helperModel:e.helper_model??``,helperVariant:e.helper_variant??``,commitMessageRules:e.commit_message_rules??``,autoParkStaleTickets:e.auto_park_stale_tickets,memoryEnabled:e.memory_enabled,worktreeSync:Cae(e.worktree_sync)}),s9=e=>{let t=e.testCommands??[],n=e.previewServiceName?.trim()||null,r=e.previewPath?.trim()||``,i=r===``||r===`/`?null:r,a=n||i||e.previewCapabilityMode===`force_web`||e.previewCapabilityMode===`force_disabled`?e.previewCapabilityMode??`auto`:null;return{name:e.name,repo_path:e.repoPath,linked_project_ids:e.linkedProjectIds,run_setup:e.runSetup.length>0?e.runSetup:null,run_services:e.runServices.length>0?e.runServices.map(e=>({...e.name?{name:e.name}:{},cmd:e.cmd,...e.cwd?{cwd:e.cwd}:{}})):null,...t.length>0?{test_commands:t.map(e=>({id:e.id,name:e.name,command:e.command,runner:e.runner,...e.cwd?{cwd:e.cwd}:{}}))}:{},run_ide:e.runIde||null,preview_service_name:n,preview_path:i,preview_capability_mode:a,helper_model:e.helperModel||null,helper_variant:e.helperModel&&e.helperVariant||null,commit_message_rules:e.commitMessageRules||null,auto_park_stale_tickets:e.autoParkStaleTickets,memory_enabled:e.memoryEnabled,worktree_sync:e.worktreeSync.length>0?e.worktreeSync.map(e=>({source:e.source,...e.target?{target:e.target}:{},mode:e.mode})):null}},Tae=e=>e?a9(e.run_setup).length>0||o9(e.run_services).length>0||(e.run_ide?.trim().length??0)>0:!1,c9=(e,t,n)=>`${e} ${e===1?t:n}`,Eae=e=>{if(!e.repo_path_locked)return null;let t=[];return e.ticket_count>0&&t.push(c9(e.ticket_count,`ticket is attached`,`tickets are attached`)),e.worktree_count>0&&t.push(c9(e.worktree_count,`worktree exists`,`worktrees exist`)),t.length===0?`Repository path is locked for this project.`:`Repository path is locked because ${t.join(` and `)}.`},Dae=(e,t)=>{if(t.length<=1)return`Keep at least one project in Archon.`;let n=[];e.ticket_count>0&&n.push(c9(e.ticket_count,`ticket is attached`,`tickets are attached`)),e.worktree_count>0&&n.push(c9(e.worktree_count,`worktree exists`,`worktrees exist`));let r=t.filter(t=>t.linked_project_ids.includes(e.id)).length;return r>0&&n.push(c9(r,`project links to it`,`projects link to it`)),n.length===0?null:`This project can't be deleted while ${n.join(` and `)}.`},Oae=(e,t)=>e.id!==t.projectId||e.ticket_count===t.ticketCount&&e.worktree_count===t.worktreeCount&&e.repo_path_locked===t.repoPathLocked?e:{...e,ticket_count:t.ticketCount,worktree_count:t.worktreeCount,repo_path_locked:t.repoPathLocked},kae=(e,t)=>({projectId:e,branch:t.branch,status:t.status,ahead:t.ahead??0,behind:t.behind??0,hasUpstream:t.has_upstream??!1,canPull:t.can_pull??!1,diffStats:t.diff_stats??null}),l9=e=>({projectId:e,branch:null,status:`loading`,ahead:0,behind:0,hasUpstream:!1,canPull:!1,diffStats:null}),u9=(e,t)=>t?e[t]??n9:n9,d9=(e,t)=>t?e[t]??r9:r9,Aae=()=>{let e=window.localStorage.getItem($7),t=Number(e);return Number.isFinite(t)&&t>=320?t:vae},jae=()=>{let e=window.localStorage.getItem(e9);return e===`phone`||e===`tablet`||e===`laptop`||e===`responsive`?e:yae},Mae=()=>{let e=Number(window.localStorage.getItem(t9));return Number.isFinite(e)&&e>0?e:bae},Nae=()=>{let e=i9(window.localStorage.getItem(Y7));return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,e])=>e===`board`||e===`chat`||e===`memory`))},Pae=()=>{let e=i9(window.localStorage.getItem(X7));return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,e])=>e===`hidden`||e===`inline`||e===`expanded`))},Fae=()=>{let e=i9(window.localStorage.getItem(Z7));return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,e])=>typeof e==`string`||e===null))},f9=e=>!!e?.preview_service_name?.trim()&&e?.preview_capability_mode!==`force_disabled`,Iae=({activeRun:e,project:t})=>{if(!e||e.kind!==`project`||!t)return!1;let n=t.active_target_kind??`repo_root`,r=t.active_target_bundle_id??null;return e.project_id===t.id&&(e.target_kind??`repo_root`)===n&&((e.target_kind??`repo_root`)!==`bundle`||e.target_bundle_id===r)},Lae=({activeRun:e,project:t,projectId:n})=>!e||!n?null:e.kind===`ticket`?e.project_id===n?e:null:Iae({activeRun:e,project:t})?e:null,p9=`Project root has uncommitted changes. Confirm branch switch to continue.`,Rae=({activeProject:e,activeProjectBranchState:t,nextTarget:n})=>e?n.kind===`bundle`?e.active_target_kind!==`bundle`||e.active_target_bundle_id!==n.bundleId:e.active_target_kind===`bundle`?!0:n.branch?t?.branch!==n.branch:!1:!1,zae=()=>{let[e,t]=(0,p.useState)(`opencode`),[n,r]=(0,p.useState)(!1),[i,a]=(0,p.useState)([]),[o,s]=(0,p.useState)(()=>window.localStorage.getItem(J7)),[c,l]=(0,p.useState)(null),[u,d]=(0,p.useState)(null),[f,m]=(0,p.useState)(null),[h,g]=(0,p.useState)({}),[_,v]=(0,p.useState)({}),[y,b]=(0,p.useState)({}),[x,S]=(0,p.useState)({}),[C,w]=(0,p.useState)({}),[T,E]=(0,p.useState)(Pae),[D,O]=(0,p.useState)(Fae),[k,A]=(0,p.useState)(Aae),[j,M]=(0,p.useState)(jae),[N,P]=(0,p.useState)(Mae),[F,I]=(0,p.useState)(null),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(!1),[V,H]=(0,p.useState)(``),[ee,U]=(0,p.useState)(``),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(null),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)(null),[ce,le]=(0,p.useState)(!1),[ue,de]=(0,p.useState)({}),[fe,pe]=(0,p.useState)(Nae),[me,he]=(0,p.useState)(null),[ge,_e]=(0,p.useState)(()=>L7()),[ve,ye]=(0,p.useState)(()=>I7()),[G,be]=(0,p.useState)(0),[xe,Se]=(0,p.useState)(null),[Ce,we]=(0,p.useState)(null),[Te,Ee]=(0,p.useState)({}),[De,Oe]=(0,p.useState)({}),[ke,Ae]=(0,p.useState)({}),[je,Me]=(0,p.useState)({}),[Ne,Pe]=(0,p.useState)(!1),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)(null),ze=(0,p.useRef)(null),Be=(0,p.useRef)(null),Ve=(0,p.useRef)(null),K=i.find(e=>e.id===o)??null,He=!!K?.memory_enabled,Ue=o?fe[o]??`board`:`board`,We=Ue===`memory`?He?`memory`:`board`:Ue,Ge=(0,p.useCallback)(e=>{o&&(pe(t=>({...t,[o]:e.workspace})),_e(t=>R7(t,e.workspace)),he(e))},[o]),qe=(0,p.useCallback)((e,t,n)=>{o&&Ge({workspace:`chat`,draft:!0,draftText:e,specSessionId:t,specSnapshotId:n})},[o,Ge]),Je=(0,p.useCallback)((e,t)=>{Ge({workspace:`spec`,specSessionId:e,specSnapshotId:t})},[Ge]),q=(0,p.useCallback)(()=>{he(null)},[]),Xe=K!==null,Ze=Tae(K),J=!!K?.run_ide?.trim(),Qe=o!==null&&u===o,$e=o!==null&&(!Ze||f===o),et=o?h[o]??l9(o):null,tt=o?_[o]??null:null,nt=o?!!y[o]:!1,rt=o?x[o]??null:null,at=o?Te[o]??[]:[],ot=o?!!De[o]:!1,st=o?ke[o]??{current_branch:null,default_branch:null,previous_branch:null}:{current_branch:null,default_branch:null,previous_branch:null},ct=o?!!je[o]:!1,lt=o?C[o]??null:null,ut=d9(T,o),dt=ut!==`hidden`,ft=Lae({activeRun:c,project:K,projectId:o}),pt=ft?.context_key??null,mt=o?D[o]??null:null,ht=f9(K),gt=pt===F,_t=(0,p.useMemo)(()=>Jie(ge),[ge]),vt=(0,p.useMemo)(()=>z7({hasRunning:_t.hasRunning,hasFinishedUnseen:ve.hasFinishedUnseen,hasErrorUnseen:ve.hasErrorUnseen}),[_t.hasRunning,ve.hasErrorUnseen,ve.hasFinishedUnseen]);(0,p.useEffect)(()=>{Se(null),we(null),Be.current=null},[o]),(0,p.useEffect)(()=>{we(null)},[We]),(0,p.useEffect)(()=>{dt||(Be.current=null)},[dt]),(0,p.useEffect)(()=>{let e=xe?.target?.kind??null;if(e===`ticket`||e===`bundle`){Be.current=xe;return}(We===`board`||!dt)&&(Be.current=xe)},[dt,xe,We]),(0,p.useEffect)(()=>{_e(L7())},[o]),(0,p.useEffect)(()=>{ye(I7())},[o]);let wt=(0,p.useCallback)((e,t)=>{document.visibilityState!==`visible`&&(!t.didFinish&&!t.didError||ye(e=>{let n={...e,hasFinishedUnseen:e.hasFinishedUnseen||t.didFinish,hasErrorUnseen:e.hasErrorUnseen||t.didError};return e.hasFinishedUnseen===n.hasFinishedUnseen&&e.hasErrorUnseen===n.hasErrorUnseen?e:n}))},[]);(0,p.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&ye(e=>!e.hasFinishedUnseen&&!e.hasErrorUnseen?e:{...e,hasFinishedUnseen:!1,hasErrorUnseen:!1})};return window.addEventListener(`focus`,e),document.addEventListener(`visibilitychange`,e),()=>{window.removeEventListener(`focus`,e),document.removeEventListener(`visibilitychange`,e)}},[]),(0,p.useEffect)(()=>(ze.current===null&&(ze.current=document.querySelector(`link[rel="icon"]`)?.getAttribute(`href`)??`/favicon.svg`),K7({defaultHref:ze.current,state:vt}),()=>{K7({defaultHref:ze.current,state:null})}),[vt]);let Tt=(0,p.useCallback)(async(e,t={})=>{let{refreshRemote:n=!1,signal:r}=t;try{let t=await hn(e,r,{refreshRemote:n});if(r?.aborted)return;g(n=>({...n,[e]:kae(e,t)}))}catch(t){if(Ye(t))return;if(t instanceof Ke&&t.status===404){g(t=>({...t,[e]:{...l9(e),status:`unknown`}}));return}g(t=>({...t,[e]:{projectId:e,branch:t[e]?.branch??null,status:`unknown`,ahead:t[e]?.ahead??0,behind:t[e]?.behind??0,hasUpstream:t[e]?.hasUpstream??!1,canPull:t[e]?.canPull??!1,diffStats:t[e]?.diffStats??null}}))}},[]),Et=(0,p.useCallback)(async(e,t={})=>{let{refreshRemote:n=!1,signal:r,suppressLoading:i=!1}=t;i||b(t=>({...t,[e]:!0}));try{let t=await xn(e,{refreshRemote:n,signal:r});if(r?.aborted)return;v(n=>({...n,[e]:t}))}catch(t){if(Ye(t))return;t instanceof Ke&&t.status===404&&v(t=>({...t,[e]:null}))}finally{!r?.aborted&&!i&&b(t=>({...t,[e]:!1}))}},[]),Dt=(0,p.useCallback)((e,t)=>{S(n=>({...n,[e]:t}))},[]),Ot=(0,p.useCallback)(async(e,t)=>{v(n=>({...n,[e.id]:t})),e.active_target_kind!==`bundle`&&await Tt(e.id),$4(e.id)},[Tt]);(0,p.useEffect)(()=>{let e=new AbortController;return(async()=>{try{let{tool:n}=await Gn(e.signal);t(n)}catch(e){Ye(e)}finally{e.signal.aborted||r(!0)}})(),()=>{e.abort()}},[]),(0,p.useEffect)(()=>{if(!te||i.length>0&&re===null||z)return;let e=new AbortController;return(async()=>{try{R(await Wn(`opencode`,e.signal))}catch(e){Ye(e)||R(e=>e)}finally{e.signal.aborted||B(!0)}})(),()=>{e.abort()}},[z,re,i.length,te]),(0,p.useEffect)(()=>{let e=new AbortController,t=window.localStorage.getItem(J7);return(async()=>{try{let n=await nn(e.signal);if(e.signal.aborted)return;a(n);let r=n[0]?.id??null;s(n.some(e=>e.id===t)?t:r)}catch(e){Ye(e)||a([])}finally{e.signal.aborted||ne(!0)}})(),()=>{e.abort()}},[]),(0,p.useEffect)(()=>{if(te){if(o){window.localStorage.setItem(J7,o);return}window.localStorage.removeItem(J7)}},[o,te]),(0,p.useEffect)(()=>{window.localStorage.setItem(Y7,JSON.stringify(fe))},[fe]),(0,p.useEffect)(()=>{window.localStorage.setItem(X7,JSON.stringify(T))},[T]),(0,p.useEffect)(()=>{window.localStorage.setItem(Z7,JSON.stringify(D))},[D]),(0,p.useEffect)(()=>{g(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),v(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),b(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)})},[i]),(0,p.useEffect)(()=>{de(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)})},[i]),(0,p.useEffect)(()=>{let e=new Set(i.map(e=>e.id));Ee(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t)))),Oe(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t)))),Ae(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t)))),Me(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t))))},[i]),(0,p.useEffect)(()=>{te&&(w(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),E(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),O(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}))},[i,te]),(0,p.useEffect)(()=>{te&&pe(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)})},[i,te]),(0,p.useEffect)(()=>{if(!te||!o||!Xe)return;let e=!1,t=null,n=null;g(e=>e[o]?e:{...e,[o]:l9(o)});let r=async(r=!1)=>{let i=r?`remote`:`local`;if(t){if(n===`remote`||n===i)return;t.abort()}let a=new AbortController;t=a,n=i;try{await Promise.all([Tt(o,{refreshRemote:r,signal:a.signal}),Et(o,{refreshRemote:r,signal:a.signal})])}catch{if(e||a.signal.aborted)return}finally{t===a&&(t=null,n=null)}};r(!1);let i=n3(()=>{document.visibilityState===`visible`&&r(!1)});return()=>{e=!0,t?.abort(),i()}},[o,Xe,te,Tt,Et]),(0,p.useEffect)(()=>{if(o)return e3(e=>{e===o&&(Tt(e),Et(e))})},[o,Tt,Et]),(0,p.useEffect)(()=>{if(!o||!Xe)return;let e=tt?.operation_state??`idle`;if(!(rt===`rebase`||e!==`idle`))return;let t=!1,n=null,r=null,i=async()=>{r?.abort(),r=new AbortController;try{await Et(o,{signal:r.signal,suppressLoading:!0})}catch{}finally{t||(n=window.setTimeout(()=>{i()},_ae))}};return i(),()=>{t=!0,r?.abort(),n!==null&&window.clearTimeout(n)}},[rt,o,tt?.operation_state,Xe,Et]);let kt=(0,p.useCallback)(async e=>{let t=o;if(!t){l(null),m(null);return}try{let n=await xt(t,e);e?.aborted||(l(n.active_run),m(t))}catch(e){Ye(e)}},[o]),At=(0,p.useCallback)(async e=>{let t=o;if(t)try{let n=await bt(t,e);e?.aborted||w(e=>({...e,[t]:n}))}catch(e){Ye(e)}},[o]);(0,p.useEffect)(()=>{if(!te)return;if(!Ze){l(null),m(null);return}if(!Qe)return;let e=new AbortController;m(null),kt(e.signal);let t=window.setInterval(()=>{kt(e.signal)},Q7),n=n3(()=>{document.visibilityState===`visible`&&kt(e.signal)});return()=>{e.abort(),window.clearInterval(t),n()}},[Qe,Ze,te,kt]),(0,p.useEffect)(()=>{if(!te||!o||!Qe||!ht)return;let e=new AbortController;At(e.signal);let t=window.setInterval(()=>{At(e.signal)},Q7),n=n3(()=>{document.visibilityState===`visible`&&At(e.signal)});return()=>{e.abort(),window.clearInterval(t),n()}},[o,Qe,ht,te,At]),(0,p.useEffect)(()=>{window.localStorage.setItem($7,String(k))},[k]),(0,p.useEffect)(()=>{window.localStorage.setItem(e9,j)},[j]),(0,p.useEffect)(()=>{window.localStorage.setItem(t9,String(N))},[N]),(0,p.useEffect)(()=>{o&&pt&&O(e=>{let t=e[o]??null;return!t||t===pt?e:{...e,[o]:null}})},[o,pt]),(0,p.useEffect)(()=>{!o||!ft||!f9(K)||mt!==ft.context_key&&E(e=>d9(e,o)===`hidden`?{...e,[o]:`inline`}:e)},[K,o,mt,ft]);let jt=async e=>{try{t((await Kn(e)).tool)}catch{}},Mt=(0,p.useCallback)(e=>{a(t=>t.map(t=>t.id===e.id?e:t))},[]),Nt=(0,p.useCallback)((e,t)=>{Ee(n=>{let r=[t,...(n[e]??[]).filter(e=>e.id!==t.id)];return{...n,[e]:r}})},[]),Pt=(0,p.useCallback)(async e=>{Me(t=>({...t,[e]:!0}));try{let t=await ln(e);Ae(n=>({...n,[e]:t}))}catch(e){Q.error(e instanceof Ke?e.message:`Unable to load the project target options right now.`,{id:`project-target-selector-load-error`})}finally{Me(t=>({...t,[e]:!1}))}},[]),Ft=async e=>{try{let t=await rn(s9(e));return a(e=>[...e,t]),s(t.id),ie(null),null}catch(e){return e instanceof Ke?e.message:`Unable to create the project right now.`}},It=async e=>{if(!K)return`Select a project before editing settings.`;try{let t=await an(K.id,s9(e));return a(e=>e.map(e=>e.id===t.id?t:e)),be(e=>e+1),ie(null),null}catch(e){return e instanceof Ke?e.message:`Unable to update the project right now.`}},Lt=async()=>{if(!K)return`Select a project before deleting it.`;try{await sn(K.id);let e=i.filter(e=>e.id!==K.id);return a(e),s(e[0]?.id??null),ie(null),null}catch(e){return e instanceof Ke?e.message:`Unable to delete the project right now.`}},Rt=(0,p.useCallback)(e=>{a(t=>t.map(t=>Oae(t,e)))},[]),zt=(0,p.useCallback)((e,t)=>{e&&Ee(n=>({...n,[e]:t}))},[]),Bt=(0,p.useCallback)((e,t)=>{e&&Oe(n=>({...n,[e]:t}))},[]),Vt=async(e,t,n)=>await dn({repo_path:e,helper_model:t||null,helper_variant:t&&n||null}),Ht=async()=>(await fn()).repo_path,Ut=(0,p.useCallback)(async e=>{let t=await pn({repo_path:e});return{valid:t.valid,repoRoot:t.repo_root,error:t.error,willInitialize:t.will_initialize,hasInitialCommit:t.has_initial_commit}},[]),Wt=(0,p.useCallback)(async()=>{if(!(!K||ce)){le(!0);try{let e=await on(K.id);a(t=>t.map(t=>t.id===e.id?e:t)),Q.success(`Initial commit created.`,{id:`project-initial-commit-success`}),Tt(e.id),Et(e.id)}catch(e){Q.error(e instanceof Ke?e.message:`Unable to create the initial commit right now.`,{id:`project-initial-commit-error`})}finally{le(!1)}}},[K,ce,Tt,Et]),Gt=(0,p.useCallback)((e,t)=>{E(t=>({...t,[e]:`hidden`})),t&&O(n=>({...n,[e]:t}))},[]),Kt=(0,p.useCallback)(()=>{o&&Gt(o,pt)},[o,Gt,pt]),qt=(0,p.useCallback)(e=>{o&&(E(e=>({...e,[o]:`hidden`})),e&&l(t=>t?.context_key===e?null:t))},[o]),Yt=(0,p.useCallback)(async()=>{if(!ft||F===ft.context_key)return;let{context_key:e}=ft;I(e);try{ft.kind===`ticket`?await Jt(ft.ticket_id,ft.project_id):l((await Ct(ft.project_id)).active_run),qt(e),await Promise.all([kt(),At()])}catch(e){Q.error(e instanceof Ke?e.message:`Unable to stop the preview run right now.`,{id:`app-preview-run-stop-error`})}finally{I(t=>t===e?null:t)}},[qt,ft,At,kt,F]),Xt=(0,p.useCallback)(e=>{!e||!o||Pt(o)},[o,Pt]),Zt=(0,p.useCallback)(e=>new Promise(t=>{Ve.current=t,Re(e)}),[]),Qt=(0,p.useCallback)(e=>{let t=Ve.current;Ve.current=null,Re(null),t?.(e)},[]),$t=(0,p.useCallback)(async e=>{if(!K||!o)throw Error(`Select a project first.`);if(!Rae({activeProject:K,activeProjectBranchState:et,nextTarget:e})||!c||c.kind!==`project`||c.project_id!==K.id)return!0;if(!await Zt({title:`Stop current run and switch target?`,description:`Switching targets will stop the current run and close its preview.`,confirmLabel:`Stop and switch`,cancelLabel:`Keep current target`,confirmVariant:`destructive`}))return!1;try{let e=c.context_key,t=await Ct(K.id);return qt(e),l(t.active_run),await At(),!0}catch(e){return Q.error(e instanceof Ke?e.message:`Unable to stop the project run right now.`,{id:`project-target-switch-stop-run-error`}),!1}},[K,et,o,c,qt,At,Zt]),en=(0,p.useCallback)(async e=>{if(!o)throw Error(`Select a project first.`);return await $t({kind:`bundle`,bundleId:e})?(Mt(await un(o,{kind:`bundle`,bundle_id:e})),v(e=>({...e,[o]:null})),await Promise.all([Tt(o),Et(o)]),!0):!1},[o,$t,Tt,Et,Mt]),tn=(0,p.useCallback)(async(e,t={})=>{if(!o)throw Error(`Select a project first.`);if(!await $t({kind:`repo_root`,branch:e}))return!1;let n=n=>un(o,{kind:`repo_root`,...e?{branch:e}:{},...t.createBranch===!1?{create_branch:!1}:{},...n?{confirm_dirty_switch:!0}:{}}),r;try{r=await n(t.confirmDirtySwitch===!0)}catch(e){if(!t.confirmDirtySwitch&&e instanceof Ke&&e.status===409&&e.message===p9){if(!await Zt({title:`Switch repo root branch?`,description:`${p9}\n\nSwitch anyway?`,confirmLabel:`Switch anyway`,cancelLabel:`Keep current branch`}))return!1;r=await n(!0)}else throw e}return Mt(r),v(e=>({...e,[o]:null})),await Promise.all([Tt(o),Et(o),Pt(o)]),!0},[o,$t,Pt,Tt,Et,Mt,Zt]),mn=(0,p.useCallback)(async e=>!e.target_kind||e.target_available===!1?!0:e.target_kind===`bundle`?e.target_bundle_id?await en(e.target_bundle_id):!1:await tn(e.target_branch_snapshot??null,{createBranch:!1}),[en,tn]),yn=(0,p.useCallback)(()=>{Pe(!0)},[]),bn=(0,p.useCallback)(()=>{Pe(!1)},[]),Sn=(0,p.useCallback)(e=>{if(e){en(e);return}tn(null)},[en,tn]),Cn=(0,p.useCallback)(async e=>{if(!o)throw Error(`Select a project first.`);let t=await it(o,{name:e,prepare:!0});return Nt(o,t),be(e=>e+1),t},[o,Nt]),wn=(0,p.useCallback)(async e=>{if(!o)throw Error(`Select a project first.`);await yt(o,e),Ee(t=>({...t,[o]:(t[o]??[]).filter(t=>t.id!==e)})),be(e=>e+1)},[o]),Tn=(0,p.useCallback)(async()=>{if(!K)return;let e=K.active_target_kind??`repo_root`,t=K.active_target_bundle_id??null,n=c?.kind===`project`&&c.project_id===K.id&&(c.target_kind??`repo_root`)===e&&((c.target_kind??`repo_root`)!==`bundle`||c.target_bundle_id===t),r=n?c?.context_key??null:null,i=!n&&f9(K)&&ut===`hidden`;i&&(E(e=>({...e,[K.id]:`inline`})),O(e=>({...e,[K.id]:null})));try{let e=n?await Ct(K.id):await St(K.id);n&&qt(r),l(e.active_run),At()}catch(e){i&&E(e=>({...e,[K.id]:`hidden`})),Q.error(e instanceof Ke?e.message:`Unable to update the project run right now.`,{id:`app-project-run-error`})}},[ut,K,c,qt,At]),En=(0,p.useCallback)(async()=>{if(!(!K||!J))try{await cn(K.id)}catch(e){Q.error(e instanceof Error?e.message:`Unable to open the IDE right now.`,{id:`app-project-open-ide-error`})}},[K,J]),Dn=(0,p.useCallback)(async()=>{if(K){Dt(K.id,`pull`);try{let e=await gn(K.id);await Ot(K,e),Q.success(e.behind===0?q7(`branchSynced`):q7(`branchUpdated`),{id:`app-project-pull-success`})}catch(e){Q.error(e instanceof Ke?e.message:q7(`syncFallbackError`),{id:`app-project-pull-error`})}finally{Dt(K.id,null)}}},[K,Ot,Dt]),On=(0,p.useCallback)(async()=>{if(!K)return;let e=tt?.base_branch??null;Dt(K.id,`rebase`);try{let t=await _n(K.id);await Ot(K,t);let n=t.base_branch??e;Q.success(n?q7(`branchRebasedOnto`,{branch:n}):q7(`branchRebased`),{id:`app-project-rebase-success`})}catch(e){await Promise.allSettled([Tt(K.id),Et(K.id,{suppressLoading:!0})]),Q.error(e instanceof Ke?e.message:q7(`rebaseFallbackError`),{id:`app-project-rebase-error`})}finally{Dt(K.id,null)}},[K,tt?.base_branch,Ot,Tt,Et,Dt]),kn=(0,p.useCallback)(async()=>{if(K){Dt(K.id,`abort`);try{await Ot(K,await vn(K.id)),Q.success(q7(`gitOperationAborted`),{id:`app-project-abort-success`})}catch(e){Q.error(e instanceof Ke?e.message:q7(`abortFallbackError`),{id:`app-project-abort-error`})}finally{Dt(K.id,null)}}},[K,Ot,Dt]),An=(0,p.useCallback)(()=>{K&&oe({projectId:K.id,title:K.name,targetKind:K.active_target_kind??`repo_root`,targetBundleId:K.active_target_bundle_id??null,hasHelperModel:!!K.helper_model,repoRootDefaultBranch:st.default_branch})},[K,st.default_branch]),jn=(0,p.useCallback)(()=>{if(!ae)return;let{projectId:e}=ae;oe(null),Tt(e),Et(e)},[Tt,Et,ae]),Mn=(0,p.useCallback)(()=>{K&&se({projectId:K.id,targetKind:K.active_target_kind??`repo_root`,targetBundleId:K.active_target_bundle_id??null})},[K]),Nn=(0,p.useCallback)(()=>{se(null)},[]),Pn=u9(ue,o),Fn=K?v8(K.test_commands).length>0:!1,In=We===`chat`?Ce:null,Ln=Be.current,Rn=Ln?.target?.kind??null,zn=We===`chat`?Rn===`ticket`||Rn===`bundle`?{target:Ln?.target??null,canSelect:!1,disabledReason:`This preview belongs to a ticket run. Return to Board to send preview comments.`,promptMode:Ln?.promptMode??null,onPromptModeChange:Ln?.onPromptModeChange??null,isUpdatingPromptMode:Ln?.isUpdatingPromptMode??!1,promptPlaceholder:Ln?.promptPlaceholder??null,promptComposerControls:Ln?.promptComposerControls,promptComposerInlineControls:Ln?.promptComposerInlineControls,submitPrompt:null}:In?{target:{kind:`chat_session`,id:In.chatSessionId??`draft:${o}`},canSelect:In.canSubmitReviewPrompt,disabledReason:In.canSubmitReviewPrompt?null:In.reviewSubmitDisabledReason??`Wait for the current chat turn to finish before sending preview comments.`,promptMode:In.mode,onPromptModeChange:In.onModeChange,isUpdatingPromptMode:In.isUpdatingMode,promptPlaceholder:In.promptPlaceholder,promptComposerControls:In.promptComposerControls,promptComposerInlineControls:In.promptComposerInlineControls,submitPrompt:In.canSubmitReviewPrompt?In.submitPrompt:null}:{target:null,canSelect:!1,disabledReason:`Select a chat session to send preview comments.`,submitPrompt:null}:xe,Bn=In?.canSubmitReviewPrompt??!1,Vn=We===`chat`?In?In.reviewSubmitDisabledReason:`Select a chat session to send review comments.`:void 0,Hn=(0,p.useCallback)(()=>{o&&de(e=>{let t=e[o]??n9;return{...e,[o]:{hasMounted:!0,isOpen:!t.isOpen,isExpanded:t.isExpanded}}})},[o]),Un=(0,p.useCallback)(e=>{de(t=>{let n=t[e]??n9;return!n.hasMounted||!n.isOpen?t:{...t,[e]:n9}})},[]),qn=(0,p.useCallback)(e=>{de(t=>{let n=t[e]??n9;return{...t,[e]:{hasMounted:!0,isOpen:n.isOpen,isExpanded:!n.isExpanded}}})},[]),Jn=(0,p.useCallback)(()=>{ie(`create`)},[]),Yn=(0,p.useCallback)(()=>{if(o){if(dt){Kt();return}E(e=>({...e,[o]:`inline`})),O(e=>({...e,[o]:null}))}},[o,Kt,dt]),Xn=(0,p.useCallback)(()=>{o&&E(e=>{let t=d9(e,o);return{...e,[o]:t===`expanded`?`inline`:`expanded`}})},[o]),Zn=K?K.preview_service_name?.trim()?K.preview_capability_mode===`force_disabled`?`Preview is disabled for this project.`:lt?.state===`unsupported`?lt.message??`Preview is unavailable for this project.`:dt?`Hide preview`:`Show preview`:`Choose a named preview service in project settings first.`:`Select a project first.`,Qn=!K||!K.preview_service_name?.trim()||K.preview_capability_mode===`force_disabled`||lt?.state===`unsupported`,$n=K&&K.preview_service_name?.trim()?(0,Y.jsx)(Pk,{project:K,mode:ut===`expanded`?`expanded`:`inline`,status:lt,viewportPreset:j,zoom:N,activeRun:ft,reviewCapability:zn,isStoppingActiveRun:gt,onHide:Kt,onStopActiveRun:()=>{Yt()},onToggleExpanded:Xn,onViewportPresetChange:M,onZoomChange:P}):null;return(0,Y.jsxs)(`div`,{className:`flex h-screen flex-col overflow-hidden bg-[linear-gradient(180deg,_rgba(15,16,21,1),_rgba(9,10,14,1))] text-foreground`,children:[(0,Y.jsx)(qy,{}),i.length>0&&(0,Y.jsx)(`header`,{className:`border-b border-border bg-background/95 px-6 py-3 backdrop-blur`,children:(0,Y.jsxs)(`div`,{className:`grid gap-2 lg:grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] lg:items-center`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 lg:justify-self-start`,children:(0,Y.jsx)(`div`,{className:`min-w-0 w-full sm:min-w-[20rem] sm:max-w-[30rem]`,children:(0,Y.jsx)(Ov,{activeProjectId:o,projects:i,onEditProject:()=>ie(`edit`),onProjectChange:s})})}),o&&(0,Y.jsx)(`div`,{className:`flex justify-start lg:col-start-2 lg:row-start-1 lg:justify-center`,children:(0,Y.jsx)(sae,{activeWorkspace:We,activityByWorkspace:ge,memoryEnabled:He,onWorkspaceChange:e=>{o&&(pe(t=>({...t,[o]:e})),_e(t=>R7(t,e)))}})}),(0,Y.jsx)(`div`,{className:`w-full lg:col-start-3 lg:row-start-1 lg:w-auto lg:justify-self-end`,children:(0,Y.jsx)(Ky,{activeTool:e,onCreateProject:Jn,onMobileAccessOpen:()=>Ie(!0),onToolChange:jt})})]})}),te?i.length===0?(0,Y.jsx)(Tv,{activeTool:e,availableHelperModels:L,helperModel:V,helperVariant:ee,isHelperModelsLoaded:z,isToolLoaded:n,onCreateProject:Jn,onHelperModelChange:e=>{H(e),U(``)},onHelperVariantChange:U,onToolChange:jt}):(0,Y.jsxs)(Y.Fragment,{children:[K?.has_initial_commit===!1&&(0,Y.jsx)(rb,{isSubmitting:ce,onCreateInitialCommit:()=>{Wt()}}),(0,Y.jsx)(aae,{activeProjectId:o,activeProject:K,activeProjectBranchState:et,activeRun:c,activeTool:e,onRestoreChatSessionTarget:mn,onChatReviewCapabilityChange:we,isPreviewButtonDisabled:Qn,onPreviewReviewCapabilityChange:Se,onPreviewToggle:Yn,onRunStopped:qt,onWorkspaceActivityChange:_e,onWorkspaceActivityEvent:wt,pendingWorkspaceNavigation:me,onPendingWorkspaceNavigationConsumed:q,onSpecImplementationChatReady:qe,onViewSourceSpec:Je,previewDisplayMode:ut,previewPane:$n,previewPaneWidth:k,previewButtonTitle:Zn,visibleWorkspace:We,refreshKey:G,onBoardLoadedProjectIdChange:d,onBundlesChange:zt,onBundlesLoadingChange:Bt,onPreviewPaneWidthChange:A,onProjectUsageChange:Rt,onRunStatusChange:()=>{kt(),At()}},o??`no-project`)]}):(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:`Loading projects...`}),i.length>0&&(0,Y.jsx)(wy,{activeProject:K,activeRun:c,branchState:et,targetGitStatus:tt,isBoardLoadedForActiveProject:Qe,activeProjectBranchAction:rt,isProjectIdeAvailable:J,isProjectRunAvailable:Ze,isRunStatusLoadedForActiveProject:$e,isTerminalOpen:Pn.isOpen,targetBundles:at,targetBranchSuggestions:st,isTargetBundleLoading:ot,isTargetSelectorLoading:ct,isTargetGitStatusLoading:nt,hasConfiguredTests:Fn,onProjectIdeOpen:()=>{En()},onProjectPull:()=>{Dn()},onProjectRebase:On,onProjectAbortGitOperation:kn,onProjectRunToggle:()=>{Tn()},onProjectChangesOpen:An,onProjectTestsOpen:Mn,onTerminalToggle:Hn,onTargetSelectorOpenChange:Xt,onSelectBundleTarget:en,onSelectRepoRootTarget:tn,onManageBundles:yn}),(0,Y.jsx)(Ox,{activeProjectId:o,open:Fe,onOpenChange:Ie}),Ne&&K&&(0,Y.jsx)(bb,{bundles:at,selectedBundleId:K.active_target_kind===`bundle`?K.active_target_bundle_id??null:null,activeTargetBundleId:K.active_target_kind===`bundle`?K.active_target_bundle_id??null:null,onSelectBundle:Sn,onCreateBundle:Cn,onDeleteBundle:wn,onClose:bn}),Le&&(0,Y.jsx)(nb,{title:Le.title,description:Le.description,confirmLabel:Le.confirmLabel,cancelLabel:Le.cancelLabel,confirmVariant:Le.confirmVariant,onConfirm:()=>Qt(!0),onCancel:()=>Qt(!1)}),i.map(e=>{let t=u9(ue,e.id);return t.hasMounted?(0,Y.jsx)(oae,{project:e,isExpanded:t.isExpanded,isVisible:e.id===o&&t.isOpen,onClose:()=>Un(e.id),onToggleExpanded:()=>qn(e.id)},e.id):null}),re&&(0,Y.jsx)(MC,{mode:re,projectId:re===`edit`&&K?K.id:null,availableHelperModels:L,isLoadingHelperModels:!z,isAutoConfigReady:n,initialValues:re===`edit`&&K?wae(K):i.length===0?{name:``,repoPath:``,linkedProjectIds:[],runSetup:[],runServices:[],testCommands:[],runIde:``,previewServiceName:``,previewPath:``,previewCapabilityMode:`auto`,helperModel:V,helperVariant:ee,commitMessageRules:``,autoParkStaleTickets:!1,memoryEnabled:!1,worktreeSync:[]}:void 0,linkedProjectOptions:i.filter(e=>e.id!==K?.id).map(e=>({id:e.id,name:e.name})),repoPathLocked:re===`edit`&&K?K.repo_path_locked:!1,repoPathLockedMessage:re===`edit`&&K?Eae(K):null,deleteBlockedMessage:re===`edit`&&K?Dae(K,i):null,onDelete:re===`edit`?Lt:void 0,onAutoConfig:Vt,onBrowseRepoPath:Ht,onValidateRepoPath:Ut,onClose:()=>ie(null),onSubmit:re===`edit`?It:Ft}),ae&&ae.projectId===o&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(xae,{scope:`project_root`,projectId:ae.projectId,targetKind:ae.targetKind,reviewCommentsBundleId:ae.targetKind===`bundle`?ae.targetBundleId:null,title:ae.title,hasHelperModel:ae.hasHelperModel,repoRootDefaultBranch:ae.repoRootDefaultBranch,onSubmitReviewPrompt:In?.submitPrompt,canSubmitReviewPrompt:Bn,reviewSubmitDisabledReason:Vn??void 0,canAddReviewComments:Bn,canModifyChanges:!0,onClose:jn})}),W&&W.projectId===o&&K&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(Sae,{scope:`project`,projectId:W.projectId,targetKind:W.targetKind,targetBundleId:W.targetBundleId,testCommands:v8(K.test_commands),onClose:Nn})})]})},Bae=({className:e})=>(0,Y.jsx)(uee,{"aria-hidden":`true`,className:e}),Vae=({className:e})=>(0,Y.jsx)(mee,{"aria-hidden":`true`,className:e}),m9=`X-Archon-Mobile-CSRF`,Hae=async(e,t={})=>{let n=await fetch(e,{credentials:`include`,...t});if(!n.ok)throw new Ke(await Xe(n,`Mobile request failed.`),n.status);return n},h9=async(e,t={})=>await(await Hae(e,t)).json(),Uae=e=>h9(`/mobile/projects`,{signal:e}),Wae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/summary`,{signal:t}),Gae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/target-options`,{signal:t}),Kae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions`,{signal:t}),qae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}`,{signal:n}),Jae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets`,{signal:t}),Yae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}`,{signal:n}),Xae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}`,{signal:n}),Zae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}/build`,g9(n)),Qae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}/review`,g9(n)),g9=(e,t,n=`POST`)=>({method:n,headers:{"Content-Type":`application/json`,[m9]:e},body:t===void 0?void 0:JSON.stringify(t)}),$ae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions`,g9(t,n)),eoe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}/messages`,g9(n,r)),toe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}`,g9(n,r,`PATCH`)),noe=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}/stop`,g9(n)),_9=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/state`,g9(n,{state:r},`PATCH`)),roe=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/run`,g9(n)),ioe=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/stop`,g9(n)),v9=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/stop-build`,g9(n)),y9=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/resume-build`,g9(n)),aoe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}`,g9(n,r,`PATCH`)),ooe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/plan-follow-up`,g9(n,{instruction:r})),soe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/follow-up`,g9(n,{instruction:r})),coe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}/follow-up`,g9(n,{instruction:r})),b9=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/target`,g9(t,n)),loe=(e,t)=>h9(`/mobile/models?tool=${encodeURIComponent(e)}`,{signal:t}),uoe=(e,t,n)=>{let r=new URLSearchParams({tool:e});return t&&r.set(`project_id`,t),h9(`/mobile/skills?${r.toString()}`,{signal:n})},doe=e=>h9(`/mobile-auth/status`,{signal:e}),foe=(e,t)=>h9(`/mobile-auth/pair/preview`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t}),poe=e=>h9(`/mobile-auth/pair`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),moe=e=>h9(`/mobile-auth/logout`,{method:`POST`,headers:{[m9]:e}}),hoe=()=>U0(window.location.origin,{withCredentials:!0}),x9=e=>sb.t(`common:mobileApp.${e}`),goe={key:`overview`,label:x9(`navigation.overview`),Icon:Bae},S9={key:`tickets`,label:x9(`navigation.tickets`),Icon:y7,ctaAriaLabel:x9(`overviewActions.ticketsAriaLabel`)},C9={key:`chats`,label:x9(`navigation.chats`),Icon:XC,ctaAriaLabel:x9(`overviewActions.chatsAriaLabel`)},_oe=[goe,S9,C9],w9=`Project root has uncommitted changes. Confirm branch switch to continue.`,voe=e=>e?`Repo root (${e})`:`Repo root`,yoe=e=>{if(!e)return`Repo root`;if(e.length<=20)return e;let t=e.split(`/`).filter(Boolean),n=t[t.length-1]??e;return n.length<=17?`.../${n}`:`${n.slice(0,16)}...`},T9=(e,t)=>{if(!e)return`Target`;if(e.active_target_kind===`bundle`&&e.active_target_bundle_id){let n=t?.bundles.find(t=>t.id===e.active_target_bundle_id)??null;return n?my(n):`Selected bundle`}return yoe(t?.current_branch??null)},boe=({children:e})=>(0,Y.jsx)(`main`,{className:`min-h-screen bg-background text-foreground`,children:(0,Y.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-lg items-center px-4 py-8`,children:(0,Y.jsx)(`div`,{className:`w-full`,children:e})})}),E9=({title:e,description:t,children:n})=>(0,Y.jsx)(boe,{children:(0,Y.jsxs)(ub,{className:`w-full border-border/80 bg-card/90 shadow-2xl shadow-black/20`,children:[(0,Y.jsxs)(db,{children:[(0,Y.jsx)(fb,{children:e}),(0,Y.jsx)(pb,{children:t})]}),n?(0,Y.jsx)(hb,{className:`space-y-4`,children:n}):null]})}),xoe=e=>e===`connected`?{label:`Connected`,variant:`success`,indicatorState:`finished`}:e===`reconnecting`?{label:`Reconnecting`,variant:`warning`,indicatorState:`running`}:e===`unavailable`?{label:`Offline`,variant:`destructive`,indicatorState:`error`}:{label:`Connecting`,variant:`outline`,indicatorState:`running`},Soe=({status:e})=>{let t=xoe(e);return(0,Y.jsxs)(lb,{variant:t.variant,className:`gap-1.5 px-2.5 py-1 text-[11px] uppercase tracking-[0.14em]`,children:[(0,Y.jsx)(Ty,{state:t.indicatorState,className:`mt-0`}),t.label]})},Coe=()=>{let[e,t]=(0,p.useState)(()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(min-width: 1024px)`).matches);return(0,p.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(min-width: 1024px)`),n=n=>{t(n?.matches??e.matches)};return n(),typeof e.addEventListener==`function`?(e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)):(e.addListener(n),()=>e.removeListener(n))},[]),e},woe=({status:e,onRetry:t})=>e===`connected`?null:e===`unavailable`?(0,Y.jsx)(ub,{className:`border-red-500/25 bg-destructive/10 shadow-none`,children:(0,Y.jsxs)(hb,{className:`flex flex-col gap-3 pt-5`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-red-100`,children:`Desktop Archon is currently unreachable.`}),(0,Y.jsx)(`p`,{className:`text-sm text-red-200/85`,children:`Mobile access may have been disabled, the backend may have restarted, or this phone lost network access.`})]}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(Z,{variant:`warning`,onClick:t,children:`Retry connection`})})]})}):(0,Y.jsx)(ub,{className:`border-amber-500/25 bg-amber-500/10 shadow-none`,children:(0,Y.jsx)(hb,{className:`pt-5 text-sm text-amber-100`,children:e===`connecting`?`Connecting to live updates from desktop Archon...`:`Reconnecting to desktop Archon. Existing content stays visible while this phone reconnects.`})}),D9=({title:e,description:t,children:n})=>(0,Y.jsxs)(`div`,{className:`flex max-h-[80vh] flex-col overflow-hidden`,children:[(0,Y.jsxs)(F_,{className:`border-b border-border/70 px-4 py-4`,children:[(0,Y.jsx)(L_,{children:e}),t?(0,Y.jsx)(R_,{children:t}):null]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:n})]}),Toe=({projects:e,selectedProjectId:t,error:n,onSelectProject:r,onRetry:i})=>n?(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-red-200`,children:n}),(0,Y.jsx)(Z,{variant:`warning`,onClick:i,children:`Retry projects`})]}):e?e.length===0?(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No projects are available on the desktop instance yet.`}):(0,Y.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>{let n=e.id===t;return(0,Y.jsxs)(`button`,{type:`button`,className:X(`w-full rounded-2xl border px-4 py-3 text-left transition-colors`,n?`border-primary/50 bg-primary/10`:`border-border/80 bg-card/60 hover:border-primary/30 hover:bg-accent/60`),onClick:()=>r(e.id),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e.name}),(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.repo_path})]}),n&&(0,Y.jsx)(lb,{variant:`info`,children:`Current`})]}),(0,Y.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2 text-[11px] uppercase tracking-[0.14em] text-muted-foreground`,children:(0,Y.jsxs)(`span`,{children:[e.ticket_count,` tickets`]})})]},e.id)})}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading projects...`}),Eoe=({open:e,projects:t,selectedProjectId:n,error:r,onOpenChange:i,onSelectProject:a,onRetry:o})=>(0,Y.jsx)(A_,{open:e,onOpenChange:i,children:(0,Y.jsx)(P_,{showCloseButton:!1,"aria-describedby":void 0,className:`top-auto right-0 bottom-0 left-0 max-w-none translate-x-0 translate-y-0 overflow-hidden rounded-t-3xl rounded-b-none border-x-0 border-b-0 p-0 sm:top-1/2 sm:right-auto sm:bottom-auto sm:left-1/2 sm:max-w-md sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-2xl sm:border sm:p-0`,children:(0,Y.jsx)(D9,{title:`Projects`,children:(0,Y.jsx)(Toe,{projects:t,selectedProjectId:n,error:r,onSelectProject:e=>{a(e),i(!1)},onRetry:o})})})}),Doe=({open:e,project:t,targetOptions:n,error:r,isLoading:i,isSubmitting:a,onOpenChange:o,onRetry:s,onSelectBundle:c,onSelectRepoRoot:l})=>{let[u,d]=(0,p.useState)(``);(0,p.useEffect)(()=>{e&&d(n?.current_branch??``)},[e,n?.current_branch]);let f=t?.active_target_kind!==`bundle`,m=sy(n?.bundles??[]),h=[{key:`default`,label:`Default branch`,branch:n?.default_branch??null},{key:`previous`,label:`Previous branch`,branch:n?.previous_branch??null}].filter(e=>e.branch&&e.branch!==n?.current_branch).filter((e,t,n)=>n.findIndex(t=>t.branch===e.branch)===t),g=t?r?(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-red-200`,children:r}),(0,Y.jsx)(Z,{variant:`warning`,onClick:s,children:`Retry target options`})]}):n?(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-sm font-semibold text-foreground`,children:`Project target`}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Choose the repo root or a prepared bundle for new chats and desktop work launched from this phone.`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Target`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:f?`secondary`:`ghost`,className:`w-full justify-start`,disabled:a,onClick:()=>l(null),children:voe(n.current_branch)}),(0,Y.jsxs)(`div`,{className:`relative min-h-10`,"data-testid":`mobile-target-options`,children:[i&&(0,Y.jsx)(`div`,{className:`pointer-events-none absolute right-2 top-2 z-10 text-muted-foreground`,"data-testid":`mobile-target-options-spinner`,children:(0,Y.jsx)(Fv,{className:`h-3.5 w-3.5 animate-spin`})}),(0,Y.jsx)(`div`,{className:`max-h-40 overflow-y-auto pr-7`,children:m.length===0&&!i?(0,Y.jsx)(`p`,{className:`px-2 py-2 text-xs text-muted-foreground`,children:`No prepared bundles are available yet.`}):m.map(e=>(0,Y.jsx)(Z,{type:`button`,variant:t.active_target_kind===`bundle`&&t.active_target_bundle_id===e.id?`secondary`:`ghost`,className:`w-full justify-start`,disabled:a,onClick:()=>c(e.id),children:(0,Y.jsx)(`span`,{className:`truncate`,children:my(e)})},e.id))})]})]})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Repo root branch`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-3`,children:[(0,Y.jsx)(`div`,{className:`space-y-2`,children:h.length>0?h.map(({key:e,label:t,branch:n})=>(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,className:`w-full justify-between gap-3`,disabled:!f||a||!n,onClick:()=>l(n),children:[(0,Y.jsx)(`span`,{children:t}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-muted-foreground`,children:n})]},e)):(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i?`Loading branch suggestions...`:`No suggested branches available.`})}),(0,Y.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsx)($_,{htmlFor:`mobile-project-target-branch-input`,className:`text-xs text-muted-foreground`,children:`Switch or create branch`}),(0,Y.jsx)(z_,{id:`mobile-project-target-branch-input`,value:u,disabled:!f||a,onChange:e=>d(e.target.value),placeholder:`feature/quick-fix`})]}),(0,Y.jsx)(Z,{type:`button`,disabled:!f||!u.trim()||a,onClick:()=>l(u.trim()),children:`Switch`})]}),f?null:(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Switch to repo root to choose a branch.`})]})]})]}):(0,Y.jsx)(A9,{text:`Loading target options...`}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Select a project before choosing a target.`});return(0,Y.jsx)(A_,{open:e,onOpenChange:o,children:(0,Y.jsx)(P_,{showCloseButton:!1,"aria-describedby":void 0,className:`top-auto right-0 bottom-0 left-0 max-w-none translate-x-0 translate-y-0 overflow-hidden rounded-t-3xl rounded-b-none border-x-0 border-b-0 p-0 sm:top-1/2 sm:right-auto sm:bottom-auto sm:left-1/2 sm:max-w-md sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-2xl sm:border sm:p-0`,children:(0,Y.jsx)(D9,{title:`Target`,description:t?T9(t,n):void 0,children:g})})})},Ooe=({selectedProject:e,targetLabel:t,isTargetLoading:n,isTargetDisabled:r,connectionState:i,onOpenProjects:a,onOpenTargetSelector:o})=>(0,Y.jsx)(`header`,{className:`sticky top-0 z-20 border-b border-border/70 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/85`,children:(0,Y.jsxs)(`div`,{className:`mx-auto flex w-full max-w-6xl items-center justify-between gap-3 px-3 pb-3 pt-4 sm:px-4`,children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-label":`Choose project`,className:`min-w-0 flex-1 text-left`,onClick:a,children:[(0,Y.jsx)(`div`,{className:`truncate text-base font-medium text-foreground`,children:e?.name??`Choose a project`}),(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e?.repo_path??`Select a desktop project to continue`})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(Soe,{status:i}),(0,Y.jsxs)(Z,{variant:`outline`,size:`sm`,"aria-label":`Choose target`,"data-testid":`mobile-target-trigger`,className:`h-8 max-w-32 gap-2 px-2.5 sm:max-w-40`,disabled:r,onClick:o,children:[(0,Y.jsx)(gy,{className:`h-3.5 w-3.5 shrink-0`}),n?(0,Y.jsx)(Av,{className:`h-3.5 w-16`}):(0,Y.jsx)(`span`,{className:`truncate text-xs sm:text-sm`,children:t})]}),(0,Y.jsx)(Z,{variant:`outline`,size:`icon-sm`,"aria-label":`Choose project`,onClick:a,children:(0,Y.jsx)(nS,{className:`h-4 w-4`})})]})]})}),koe=({activeSection:e,onChange:t})=>(0,Y.jsx)(`nav`,{className:`fixed inset-x-0 bottom-0 z-20 border-t border-border/70 bg-background/95 px-3 pb-[calc(env(safe-area-inset-bottom)+0.75rem)] pt-2 backdrop-blur supports-[backdrop-filter]:bg-background/85 sm:px-4 lg:hidden`,children:(0,Y.jsx)(`div`,{className:`mx-auto flex max-w-6xl gap-2`,children:_oe.map(n=>{let r=n.key===e,i=n.Icon;return(0,Y.jsxs)(Z,{type:`button`,variant:r?`secondary`:`ghost`,className:`h-11 flex-1 gap-2`,"aria-current":r?`page`:void 0,onClick:()=>t(n.key),children:[(0,Y.jsx)(i,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:n.label})]},n.key)})})}),O9=({title:e,description:t,action:n})=>(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsxs)(db,{children:[(0,Y.jsx)(fb,{children:e}),(0,Y.jsx)(pb,{children:t})]}),n?(0,Y.jsx)(hb,{children:n}):null]}),k9=({label:e,value:t,accentClassName:n})=>(0,Y.jsxs)(`div`,{className:`rounded-2xl border border-border/70 bg-card/70 p-3`,children:[(0,Y.jsx)(`div`,{className:X(`text-xl font-semibold text-foreground`,n),children:t}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs uppercase tracking-[0.14em] text-muted-foreground`,children:e})]}),A9=({text:e})=>(0,Y.jsxs)(`div`,{"aria-live":`polite`,className:`flex items-center gap-2 px-1 py-3 text-sm text-muted-foreground`,role:`status`,children:[(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(`span`,{children:e})]}),Aoe=()=>(0,Y.jsxs)(`div`,{className:`space-y-3`,"data-testid":`mobile-overview-skeleton`,children:[(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsx)(db,{className:`border-b border-border/70 pb-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(Av,{className:`h-6 w-28`}),(0,Y.jsx)(Av,{className:`h-6 w-28 rounded-full`})]})}),(0,Y.jsxs)(hb,{className:`space-y-4 pt-5`,children:[(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3`,children:Array.from({length:6},(e,t)=>(0,Y.jsxs)(`div`,{className:`rounded-2xl border border-border/70 bg-card/70 p-3`,children:[(0,Y.jsx)(Av,{className:`h-6 w-10`}),(0,Y.jsx)(Av,{className:`mt-2 h-3 w-16`})]},t))}),(0,Y.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,Y.jsx)(Av,{className:`h-10 w-full rounded-xl`}),(0,Y.jsx)(Av,{className:`h-10 w-full rounded-xl`})]})]})]}),(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsx)(db,{children:(0,Y.jsx)(Av,{className:`h-6 w-20`})}),(0,Y.jsx)(hb,{children:(0,Y.jsx)(Av,{className:`h-10 w-40 rounded-xl`})})]})]}),joe=({isLoggingOut:e,onLogout:t})=>(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsx)(db,{children:(0,Y.jsx)(fb,{children:`Session`})}),(0,Y.jsx)(hb,{children:(0,Y.jsxs)(Z,{variant:`destructive`,className:`gap-2`,disabled:e,onClick:t,children:[(0,Y.jsx)(Vae,{className:`h-4 w-4`}),e?`Logging out...`:`Log out this phone`]})})]}),Moe=({activeRun:e,tickets:t,chatSessions:n,chatSessionDetail:r})=>{let i=r?.agent_status===`running`||!!n?.some(e=>e.agent_status===`running`);if(e?.kind===`ticket`)return{label:`Ticket run active`,variant:`success`};if(i)return{label:`Chat active`,variant:`success`};if(e)return{label:`Project run active`,variant:`success`};let a=t?.filter(e=>e.agent_status===`running`&&e.parked_at===null)??[];return a.some(e=>e.state===`review`)?{label:`Reviewing`,variant:`warning`}:a.some(e=>e.state===`build`)?{label:`Building`,variant:`success`}:a.some(e=>e.state===`plan`)?{label:`Planning`,variant:`info`}:{label:`Idle`,variant:`outline`}},Noe=({activeRun:e,tickets:t,chatSessions:n,chatSessionDetail:r})=>{let i=Moe({activeRun:e,tickets:t,chatSessions:n,chatSessionDetail:r});return(0,Y.jsx)(lb,{variant:i.variant,children:i.label})},Poe=({selectedProjectId:e,summary:t,tickets:n,error:r,chatSessions:i,chatSessionDetail:a,onRetry:o,onOpenTickets:s,onOpenChats:c})=>{let l=S9.Icon,u=C9.Icon;return r?(0,Y.jsx)(O9,{title:`Project summary unavailable`,description:r,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:o,children:`Retry summary`})}):e?!t||t.project.id!==e?(0,Y.jsx)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:(0,Y.jsx)(hb,{className:`pt-5 text-sm text-muted-foreground`,children:`Loading project summary...`})}):(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/70 pb-4`,children:[(0,Y.jsx)(fb,{children:`Overview`}),(0,Y.jsx)(mb,{children:(0,Y.jsx)(Noe,{activeRun:t.active_run,tickets:n,chatSessions:i,chatSessionDetail:a})})]}),(0,Y.jsxs)(hb,{className:`space-y-4 pt-5`,children:[(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3`,children:[(0,Y.jsx)(k9,{label:`Tickets`,value:t.tickets.total}),(0,Y.jsx)(k9,{label:`Plan`,value:t.tickets.plan,accentClassName:`text-sky-200`}),(0,Y.jsx)(k9,{label:`Build`,value:t.tickets.build,accentClassName:`text-emerald-200`}),(0,Y.jsx)(k9,{label:`Review`,value:t.tickets.review,accentClassName:`text-amber-200`}),(0,Y.jsx)(k9,{label:`Done`,value:t.tickets.parked}),(0,Y.jsx)(k9,{label:`Bundles`,value:t.project.bundle_count??0})]}),(0,Y.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,Y.jsxs)(Z,{variant:`outline`,className:`gap-2`,"aria-label":S9.ctaAriaLabel,onClick:s,children:[(0,Y.jsx)(l,{className:`h-4 w-4`}),S9.label]}),(0,Y.jsxs)(Z,{variant:`outline`,className:`gap-2`,"aria-label":C9.ctaAriaLabel,onClick:c,children:[(0,Y.jsx)(u,{className:`h-4 w-4`}),C9.label]})]})]})]}):(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a desktop project before opening tickets or chats from this phone.`})},j9=e=>e.parked_at?`parked`:e.state,M9=e=>{let t=j9(e);return t===`parked`?`Done`:`${t.slice(0,1).toUpperCase()}${t.slice(1)}`},N9=e=>e===`plan`?`info`:e===`build`?`success`:e===`review`?`warning`:`outline`,P9=({ticket:e,isSelected:t,onSelectTicket:n,className:r})=>(0,Y.jsxs)(`button`,{type:`button`,className:X(`w-full rounded-2xl border px-4 py-3 text-left transition-colors`,t?`border-primary/50 bg-primary/10`:`border-border/70 bg-card/40 hover:border-primary/30 hover:bg-accent/50`,r),onClick:()=>n(e.id),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:e.title})}),(0,Y.jsx)(lb,{variant:N9(j9(e)),children:M9(e)})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 text-[11px] uppercase tracking-[0.14em] text-muted-foreground`,children:[e.agent_status?(0,Y.jsx)(`span`,{children:e.agent_status}):null,e.branch?(0,Y.jsx)(`span`,{children:e.branch}):null,e.bundle?.name?(0,Y.jsx)(`span`,{children:e.bundle.name}):null]})]}),Foe=({group:e,selectedBundleId:t,selectedTicketId:n,onSelectBundle:r,onSelectTicket:i})=>{let a=e.bundle.id===t,o=e.tickets.some(e=>e.id===n),[s,c]=(0,p.useState)(o),l=my(e.bundle)||e.bundle.branch||e.bundle.name||`Bundle`,u=e.tickets.filter(e=>e.agent_status===`running`).length,d=a||o;return(0,p.useEffect)(()=>{o&&c(!0)},[o]),(0,Y.jsxs)(Yb,{open:s,onOpenChange:c,children:[(0,Y.jsxs)(`div`,{className:X(`flex items-start gap-2 rounded-2xl border px-4 py-3 transition-colors`,d?`border-primary/50 bg-primary/10`:`border-border/70 bg-card/40 hover:border-primary/30 hover:bg-accent/50`),children:[(0,Y.jsx)(`button`,{type:`button`,className:`min-w-0 flex-1 text-left`,"aria-label":`Open bundle ${l}`,onClick:()=>r(e.bundle.id),children:(0,Y.jsx)(`div`,{className:`flex items-start justify-between gap-3`,children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(lb,{variant:`outline`,children:`Bundle`}),(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:l})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-[11px] uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{children:[e.tickets.length,` ticket`,e.tickets.length===1?``:`s`]}),u>0?(0,Y.jsxs)(`span`,{children:[u,` running`]}):null,e.bundle.branch?(0,Y.jsx)(`span`,{children:e.bundle.branch}):null]})]})})}),(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`mt-0.5 shrink-0`,"aria-label":`Toggle bundle tickets for ${l}`,children:(0,Y.jsx)(Ev,{className:X(`h-4 w-4 transition-transform`,s&&`rotate-180`)})})})]}),(0,Y.jsx)(Zb,{className:`pt-2`,children:(0,Y.jsx)(`div`,{className:`space-y-2 pl-3`,children:e.tickets.map(t=>(0,Y.jsx)(P9,{ticket:t,isSelected:t.id===n,onSelectTicket:t=>i(t,e.bundle.id),className:`rounded-xl`},t.id))})})]})},F9=(e,t)=>dy(e,[],t),Ioe=e=>[{key:`plan`,label:`Plan`,tickets:e.filter(e=>!e.parked_at&&e.state===`plan`),items:F9(e.filter(e=>!e.parked_at&&e.state===`plan`),`plan`)},{key:`build`,label:`Build`,tickets:e.filter(e=>!e.parked_at&&e.state===`build`),items:F9(e.filter(e=>!e.parked_at&&e.state===`build`),`build`)},{key:`review`,label:`Review`,tickets:e.filter(e=>!e.parked_at&&e.state===`review`),items:F9(e.filter(e=>!e.parked_at&&e.state===`review`),`review`)},{key:`parked`,label:`Done`,tickets:e.filter(e=>e.parked_at),items:F9(e.filter(e=>e.parked_at),`done`)}].filter(e=>e.tickets.length>0),I9=(e,t)=>{if(!e)return e;let n=new Map(t.tickets.map(e=>[e.id,e]));return e.map(e=>n.get(e.id)??e)},L9=({selectedProjectId:e,tickets:t,selectedBundleId:n,selectedTicketId:r,error:i,onRetry:a,onSelectBundle:o,onSelectTicket:s})=>{if(!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before browsing tickets from this phone.`});if(i)return(0,Y.jsx)(O9,{title:`Tickets unavailable`,description:i,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:a,children:`Retry tickets`})});if(!t)return(0,Y.jsx)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:(0,Y.jsx)(hb,{className:`pt-5 text-sm text-muted-foreground`,children:`Loading tickets...`})});if(t.length===0)return(0,Y.jsx)(O9,{title:`No tickets`,description:`This project does not have any tickets yet.`});let c=Ioe(t);return(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none lg:flex lg:min-h-0 lg:flex-col`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/70 pb-4`,children:[(0,Y.jsx)(fb,{children:`Tickets`}),(0,Y.jsxs)(pb,{children:[t.length,` total`]})]}),(0,Y.jsx)(hb,{className:`space-y-4 pt-5 lg:min-h-0 lg:flex-1 lg:overflow-y-auto`,children:c.map(e=>(0,Y.jsxs)(`section`,{className:`space-y-2`,"aria-label":`${e.label} tickets`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:e.label}),(0,Y.jsx)(`span`,{children:e.tickets.length})]}),(0,Y.jsx)(`div`,{className:`space-y-2`,children:e.items.map(e=>e.kind===`bundle`?(0,Y.jsx)(Foe,{group:e.group,selectedBundleId:n,selectedTicketId:r,onSelectBundle:o,onSelectTicket:s},e.group.id):(0,Y.jsx)(P9,{ticket:e.ticket,isSelected:e.ticket.id===r,onSelectTicket:e=>s(e,null)},e.ticket.id))})]},e.key))})]})},R9=({selectedProjectId:e,chatSessions:t,selectedChatSessionId:n,error:r,onRetry:i,onOpenNewChat:a,onSelectChat:o})=>e?r?(0,Y.jsx)(O9,{title:`Chats unavailable`,description:r,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:i,children:`Retry chats`})}):(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none lg:flex lg:min-h-0 lg:flex-col`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/70 pb-4`,children:[(0,Y.jsx)(fb,{children:`Chats`}),(0,Y.jsx)(pb,{children:t?`${t.length} recent`:`Loading chats...`}),(0,Y.jsx)(mb,{children:(0,Y.jsx)(Z,{variant:`outline`,size:`sm`,onClick:a,children:`New chat`})})]}),(0,Y.jsx)(hb,{className:`space-y-2 pt-5 lg:min-h-0 lg:flex-1 lg:overflow-y-auto`,children:t?t.length===0?(0,Y.jsx)(O9,{title:`No chats`,description:`Start a new chat to plan or build from this project.`,action:(0,Y.jsx)(Z,{onClick:a,children:`Start a chat`})}):t.map(e=>(0,Y.jsx)(`button`,{type:`button`,className:X(`w-full rounded-xl border px-3 py-2.5 text-left transition-colors`,e.id===n?`border-primary/50 bg-primary/10`:`border-border/70 bg-card/40 hover:border-primary/30 hover:bg-accent/50`),onClick:()=>o(e.id),children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 pr-2 text-sm font-medium text-foreground line-clamp-2 break-words`,children:e.title}),(0,Y.jsx)(lb,{variant:e.agent_status===`running`?`warning`:e.mode===`plan`?`info`:`success`,children:e.agent_status??e.mode})]})},e.id)):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading chats...`})})]}):(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before browsing chats from this phone.`}),z9=({label:e,disabled:t,onClick:n})=>(0,Y.jsx)(Z,{type:`button`,variant:`outline`,disabled:t,onClick:n,children:e}),B9=e=>{let t=e.tickets.filter(e=>!e.parked_at),n=t.filter(e=>e.state===`plan`),r=t.filter(e=>e.state===`build`),i=t.filter(e=>e.state===`review`),a=t.some(e=>e.agent_status===`running`),o=t.find(e=>hN(e)&&e.agent_status===`running`&&!!e.session_id)??null,s=t.find(e=>hN(e)&&e.agent_status===`stopped`&&!!e.session_id)??null,c=[];n.length>0&&c.push({id:`build`,label:`Build Bundle`,pendingLabel:`Building Bundle...`,ariaLabel:`Build Bundle`,disabled:!1,disabledReason:null});let l=r.length>0&&r.every(e=>e.agent_status===`done`),u=r.length===0&&i.length>0&&e.can_re_review===!0&&!a;return(l||u)&&c.push({id:`review`,label:u?`Re-run review`:`Review Bundle`,pendingLabel:`Reviewing Bundle...`,ariaLabel:u?`Re-run review`:`Review Bundle`,disabled:!1,disabledReason:null}),o&&c.push({id:`pause-build`,label:`Pause Build`,pendingLabel:`Pausing Build...`,ariaLabel:`Pause Build`,title:`Pause the build session. You can resume it later.`,disabled:!1,disabledReason:null}),!o&&s&&c.push({id:`resume-build`,label:`Resume`,pendingLabel:`Resuming...`,ariaLabel:`Resume`,disabled:!1,disabledReason:null}),{actions:c,runningBuildTicketId:o?.id??null,resumableBuildTicketId:s?.id??null}},Loe=({ticket:e,actionState:t,actionError:n,onAction:r})=>{let i=X0(e,{reviewLabel:e.worktree_bundle_id===null?`Review`:`Review Bundle`}),a=e.worktree_bundle_id===null&&e.state===`review`&&e.can_re_review===!0&&e.agent_status!==`running`&&!e.parked_at?[{id:`review`,label:`Re-run review`,pendingLabel:`Re-running review...`,ariaLabel:`Re-run review`,disabled:!1,disabledReason:null},...i]:i;return a.length===0?null:(0,Y.jsx)(J0,{actions:a,activeAction:t,disableWhenActive:!0,className:`space-y-3`,heading:`Actions`,headingClassName:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,actionsClassName:`flex flex-wrap gap-2`,showDisabledReason:!0,disabledReasonClassName:`text-sm text-amber-200`,error:n,errorClassName:`text-sm text-red-200`,renderAction:({action:e,label:t,disabled:n})=>(0,Y.jsx)(z9,{label:t,disabled:n,onClick:()=>r(e.id)},e.id)})},Roe=({bundleDetail:e,actionState:t,actionError:n,onAction:r})=>{let{actions:i}=B9(e);return i.length===0?null:(0,Y.jsx)(J0,{actions:i,activeAction:t,disableWhenActive:!0,className:`space-y-3`,heading:`Actions`,headingClassName:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,actionsClassName:`flex flex-wrap gap-2`,error:n,errorClassName:`text-sm text-red-200`,renderAction:({action:e,label:t,disabled:n})=>(0,Y.jsx)(z9,{label:t,disabled:n,onClick:()=>r(e.id)},e.id)})},V9=(e,t)=>(e??[]).map(e=>({id:e.id,role:e.role,kind:e.kind,content:e.content,created_at:e.created_at,ticket_id:t??null,ticket_proposals:`ticket_proposals`in e?e.ticket_proposals??null:null})),H9=({title:e,subtitle:t,badges:n,backLabel:r,onBack:i,action:a})=>(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2`,children:[i?(0,Y.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-8 px-2.5 lg:hidden`,"aria-label":r,onClick:i,children:[(0,Y.jsx)(KN,{className:`h-4 w-4`}),`Back`]}):null,(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e}),t?(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:t}):null]})]}),a?(0,Y.jsx)(`div`,{className:`shrink-0`,children:a}):null]}),n?(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n}):null]}),zoe=({title:e,backLabel:t,onBack:n,action:r})=>(0,Y.jsxs)(`div`,{className:`-mx-3 flex shrink-0 items-center justify-between gap-3 border-b border-border/80 bg-background/95 px-3 py-2.5 backdrop-blur supports-[backdrop-filter]:bg-background/85 sm:-mx-4 sm:px-4 lg:hidden`,children:[(0,Y.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-8 px-2.5`,"aria-label":t,onClick:n,children:[(0,Y.jsx)(KN,{className:`h-4 w-4`}),`Back`]}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-sm font-medium text-foreground`,children:e}),(0,Y.jsx)(`div`,{className:`shrink-0`,children:r})]}),U9=({title:e,backLabel:t,onBack:n,action:r,subheader:i,children:a})=>(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)(zoe,{title:e,backLabel:t,onBack:n,action:r}),i?(0,Y.jsx)(`div`,{className:`shrink-0 border-b border-border/70 py-2 lg:hidden`,children:i}):null,(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:a})]}),W9=({value:e,onTranscript:t,onDetails:n})=>(0,Y.jsxs)(`div`,{className:`flex gap-2 px-3 sm:px-0`,children:[(0,Y.jsx)(Z,{type:`button`,variant:e===`transcript`?`secondary`:`ghost`,className:`h-9 flex-1`,"aria-pressed":e===`transcript`,onClick:t,children:`Transcript`}),(0,Y.jsx)(Z,{type:`button`,variant:e===`details`?`secondary`:`ghost`,className:`h-9 flex-1`,"aria-pressed":e===`details`,onClick:n,children:`Details`})]}),G9=({controls:e})=>{let[t,n]=(0,p.useState)(!1);return(0,Y.jsxs)(Yb,{open:t,onOpenChange:n,children:[(0,Y.jsx)(`div`,{className:`px-1 pb-1`,children:(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`ghost`,className:`h-7 gap-1.5 px-2 text-xs text-muted-foreground`,children:[`Options`,(0,Y.jsx)(Ev,{className:X(`h-3.5 w-3.5 transition-transform`,t&&`rotate-180`)})]})})}),(0,Y.jsx)(Zb,{className:`px-1 pb-1`,children:(0,Y.jsx)(`div`,{className:`rounded-lg border border-border/70 bg-background/35 p-2`,children:e})})]})},Boe=({ticket:e})=>{let t=[{label:`State`,value:M9(e)},{label:`Tool`,value:hP(e,`opencode`)},{label:`Agent`,value:e.agent_status},{label:`Branch`,value:e.branch},{label:`Bundle`,value:e.bundle?.name??null},{label:`Model`,value:e.tool===`opencode`?e.model:null},{label:`Variant`,value:e.tool===`opencode`?e.variant:null}].filter(e=>!!e.value);return t.length===0?null:(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-2 rounded-xl border border-border/70 bg-background/40 px-3 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:`Details`}),(0,Y.jsx)(`dl`,{className:`grid gap-2 text-sm sm:grid-cols-2`,children:t.map(e=>(0,Y.jsxs)(`div`,{className:`space-y-1 rounded-lg border border-border/60 bg-background/50 px-3 py-2`,children:[(0,Y.jsx)(`dt`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:e.label}),(0,Y.jsx)(`dd`,{className:`break-words text-foreground`,children:e.value})]},e.label))})]})},K9=({ticket:e,badges:t,actionState:n,actionError:r,onAction:i,className:a})=>(0,Y.jsxs)(ub,{className:X(`flex min-h-0 min-w-0 flex-col border-border/80 bg-card/70 shadow-none`,a),children:[(0,Y.jsx)(db,{className:`min-w-0 pb-3`,children:(0,Y.jsx)(H9,{title:e.title,badges:t})}),(0,Y.jsxs)(hb,{className:`min-h-0 min-w-0 flex-1 space-y-3 overflow-y-auto pt-0`,children:[(0,Y.jsx)(Loe,{ticket:e,actionState:n,actionError:r,onAction:i}),e.description?(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-2 rounded-xl border border-border/70 bg-background/40 px-3 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:`Description`}),(0,Y.jsx)(VU,{content:e.description,className:`min-w-0 text-foreground`})]}):null,(0,Y.jsx)(Boe,{ticket:e})]})]}),q9=({bundleDetail:e,title:t,subtitle:n,badges:r,actionState:i,actionError:a,onAction:o,orderedTickets:s,highlightedTicketId:c,isTicketListOpen:l,onTicketListOpenChange:u,onSelectTicket:d,className:f,availableModels:p})=>(0,Y.jsxs)(ub,{className:X(`flex min-h-0 min-w-0 flex-col border-border/80 bg-card/70 shadow-none`,f),children:[(0,Y.jsx)(db,{className:`min-w-0 pb-3`,children:(0,Y.jsx)(H9,{title:t,subtitle:n,badges:r})}),(0,Y.jsxs)(hb,{className:`min-h-0 min-w-0 flex-1 space-y-3 overflow-y-auto pt-0`,children:[(0,Y.jsx)(Roe,{bundleDetail:e,actionState:i,actionError:a,onAction:o}),(0,Y.jsxs)(Yb,{open:l,onOpenChange:u,children:[(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,variant:`ghost`,className:`h-8 gap-1.5 px-2 text-xs text-muted-foreground`,children:[`Tickets`,(0,Y.jsx)(Ev,{className:X(`h-3.5 w-3.5 transition-transform`,l&&`rotate-180`)})]})}),(0,Y.jsx)(Zb,{className:`pt-2`,children:(0,Y.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-background/35 p-3`,children:(0,Y.jsx)(h2,{tickets:s,highlightedTicketId:c,onOpenTicketDetails:e=>d(e.id,e.worktree_bundle_id),availableModels:p})})})]})]})]}),J9=({selectedProjectId:e,bundleId:t,bundleDetail:n,openNonce:r,mobileDetailView:i,error:a,actionState:o,actionError:s,followUpPrompt:c,isSendingFollowUp:l,followUpError:u,availableModels:d,onBack:f,onRetry:m,onAction:h,onDetailViewChange:g,onSelectTicket:_,onFollowUpPromptChange:v,onFollowUpKeyDown:y,onFollowUpSubmit:b,isLargeScreen:x})=>{let[S,C]=(0,p.useState)(!0);if((0,p.useEffect)(()=>{C(!0)},[t,r]),!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before opening bundle details from this phone.`});if(!t)return(0,Y.jsx)(O9,{title:`Choose a bundle`,description:`Open a bundle to review its transcript and grouped ticket progress.`});if(a)return(0,Y.jsx)(U9,{title:`Bundle unavailable`,backLabel:`Back to tickets`,onBack:f,children:(0,Y.jsx)(O9,{title:`Bundle unavailable`,description:a,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:m,children:`Retry bundle`})})});if(!n||n.bundle.id!==t)return(0,Y.jsx)(U9,{title:`Loading bundle`,backLabel:`Back to tickets`,onBack:f,children:(0,Y.jsx)(A9,{text:`Loading bundle details...`})});let w=my(n.bundle)||n.bundle.branch||n.bundle.name||`Bundle`,T=new Map(d.map(e=>[e.id,e.label])),E=b2(n.tickets,T),D=C2(n),O=x2(n.tickets,n.execution_order_ticket_ids),k=S2(n.tickets,T,E,n.execution_order_ticket_ids),A=$N(n.tickets,D?.state??null),j=n.tickets.find(e=>e.agent_status===`running`)??D,M=j??D??n.tickets[0]??null,N=j?.agent_status===`running`?E[j.id]??j.model??`Agent`:null,P=!!(D&&D.state!==`plan`&&ly(D)),F=n.tickets.some(e=>e.agent_status===`running`)?`Wait for all bundle tickets to finish building before sending a follow-up prompt.`:void 0,I=`mobile-bundle:${n.bundle.id}:${r}`,L=`${n.tickets.length} ticket${n.tickets.length===1?``:`s`}`,R=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(JN,{status:A}),(0,Y.jsx)(lb,{variant:`outline`,children:L}),M?(0,Y.jsxs)(lb,{variant:`outline`,children:[`Target: `,M.title]}):null]});return(0,Y.jsx)(U9,{title:w,backLabel:`Back to tickets`,onBack:f,subheader:x?void 0:(0,Y.jsx)(W9,{value:i,onTranscript:()=>g(`transcript`),onDetails:()=>g(`details`)}),children:x?(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col gap-3 overflow-hidden pt-3`,children:[(0,Y.jsx)(q9,{bundleDetail:n,title:w,subtitle:n.bundle.branch,badges:R,actionState:o,actionError:s,onAction:h,orderedTickets:O,highlightedTicketId:n.target_ticket_id,isTicketListOpen:S,onTicketListOpenChange:C,onSelectTicket:_,className:`shrink-0`,availableModels:d}),(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(f2,{projectId:e,followUpTicketId:n.target_ticket_id,messages:k,internalLog:j?.agent_log??null,currentThinkingMessageId:j?.agent_message_id??D?.agent_message_id??null,legacyThinkingTicketId:j?.id??D?.id??null,previousThinkingLog:j?.previous_agent_log??D?.previous_agent_log??null,previousThinkingMessageId:j?.previous_agent_message_id??D?.previous_agent_message_id??null,pendingAgentTitle:N,streamingResponse:j?.streaming_response??null,isRunning:n.tickets.some(e=>e.agent_status===`running`),canShowComposer:P,composerTheme:pN(D?.state??null),layoutKey:I,scrollLayoutKey:I,followUpPrompt:c,followUpPlaceholder:M?`Follow up on: ${M.title}`:`Follow up on this bundle`,isSendingFollowUp:l,followUpDisabledReason:F,onFollowUpPromptChange:v,onFollowUpKeyDown:y,onFollowUpSubmit:b},I)}),u?(0,Y.jsx)(`p`,{className:`shrink-0 text-sm text-red-200`,children:u}):null]}):i===`details`?(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(q9,{bundleDetail:n,title:w,subtitle:n.bundle.branch,badges:R,actionState:o,actionError:s,onAction:h,orderedTickets:O,highlightedTicketId:n.target_ticket_id,isTicketListOpen:S,onTicketListOpenChange:C,onSelectTicket:_,className:`h-full`,availableModels:d})}):(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)(f2,{projectId:e,followUpTicketId:n.target_ticket_id,messages:k,internalLog:j?.agent_log??null,currentThinkingMessageId:j?.agent_message_id??D?.agent_message_id??null,legacyThinkingTicketId:j?.id??D?.id??null,previousThinkingLog:j?.previous_agent_log??D?.previous_agent_log??null,previousThinkingMessageId:j?.previous_agent_message_id??D?.previous_agent_message_id??null,pendingAgentTitle:N,streamingResponse:j?.streaming_response??null,isRunning:n.tickets.some(e=>e.agent_status===`running`),canShowComposer:P,composerTheme:pN(D?.state??null),layoutKey:I,scrollLayoutKey:I,followUpPrompt:c,followUpPlaceholder:M?`Follow up on: ${M.title}`:`Follow up on this bundle`,isSendingFollowUp:l,followUpDisabledReason:F,onFollowUpPromptChange:v,onFollowUpKeyDown:y,onFollowUpSubmit:b},I),u?(0,Y.jsx)(`p`,{className:`shrink-0 px-1 pt-2 text-sm text-red-200`,children:u}):null]})})},Y9=({selectedProjectId:e,chatSession:t,chatSessionId:n,openNonce:r,error:i,isStopping:a,composerMode:o,composerTool:s,prompt:c,selectedModel:l,selectedVariant:u,selectedSkills:d,availableModels:f,availableSkills:p,isLoadingAgentSettings:m,isSending:h,isUpdatingMode:g,composerDisabledReason:_,onBack:v,onRetry:y,onStop:b,onModeChange:x,onPromptChange:S,onModelChange:C,onVariantChange:w,onSkillsChange:T,onPromptKeyDown:E,onSubmit:D,isLargeScreen:O})=>{if(!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before opening the chat workspace.`});if(n&&i)return(0,Y.jsx)(O9,{title:`Chat unavailable`,description:i,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:y,children:`Retry chat`})});if(n&&(!t||t.id!==n))return(0,Y.jsx)(U9,{title:`Loading chat`,backLabel:`Back to chats`,onBack:v,children:(0,Y.jsx)(A9,{text:`Loading chat transcript...`})});let k=t?.mode??o,A=s===`opencode`&&f.length>0,j=f.find(e=>e.id===l)??null,M=V9(t?.messages),N=t?.agent_status===`running`?(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:`gap-2`,disabled:a,onClick:b,children:[a?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Rv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:a?`Interrupting...`:`Interrupt`})]}):null,P=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(lb,{variant:k===`plan`?`info`:`success`,children:k}),(0,Y.jsx)(lb,{variant:`outline`,children:t?.tool??s}),t?.agent_status?(0,Y.jsx)(lb,{variant:`outline`,children:t.agent_status}):null]}),F=A?(0,Y.jsx)(NG,{model:l,variant:u,skills:d,showModelSelector:!0,showSkillsSelector:!0,availableModels:f,availableSkills:p,selectedModel:j,onModelChange:C,onVariantChange:w,onSkillsChange:T,modelSelectId:`mobile-chat-model-selector`,variantSelectId:`mobile-chat-variant-selector`,skillsSelectId:`mobile-chat-skills-selector`,disabled:!!_||h}):s===`opencode`&&m?(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading model controls...`}):null,I=!O&&F?(0,Y.jsx)(G9,{controls:F}):F,L=(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:(0,Y.jsx)(bG,{value:k,disabled:!!_||h||g,onChange:x})}),R=O?void 0:({showThinkingControl:e})=>(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 py-1`,children:[L,(0,Y.jsx)(`div`,{className:`ml-auto`,children:e})]}),z=`mobile-chat:${n??`new`}:${r}`;return(0,Y.jsx)(U9,{title:t?.title??`New chat`,backLabel:`Back to chats`,onBack:v,action:N,children:(0,Y.jsx)(D5,{projectId:e,messages:M,internalLog:t?.agent_log??null,currentThinkingMessageId:t?.agent_message_id??null,previousThinkingLog:t?.previous_agent_log??null,previousThinkingMessageId:t?.previous_agent_message_id??null,pendingAgentTitle:t?.title??`Archon`,streamingResponse:t?.streaming_response??null,isRunning:t?.agent_status===`running`,canShowComposer:!0,header:O?(0,Y.jsx)(H9,{title:t?.title??`New chat`,subtitle:t?.target_label_snapshot??`Project root`,badges:P}):R,composerControls:O?L:void 0,composerInlineControls:I,composerTheme:k,forceScrollToBottomKey:z,layoutKey:z,scrollLayoutKey:z,composerFocusNonce:r,blurComposerOnSendStart:!O,followUpPrompt:c,followUpPlaceholder:n?`Continue this chat`:k===`plan`?`Ask Archon to scope or reason through project work`:`Ask Archon to build or verify something in this project`,emptyStateText:n?`No messages yet.`:`Start a new project chat from this phone.`,isSendingFollowUp:h,followUpDisabledReason:_??void 0,hidePendingAgentTitle:!O,onFollowUpPromptChange:S,onFollowUpKeyDown:E,onFollowUpSubmit:D},z)})},X9=({selectedProjectId:e,ticketId:t,ticket:n,openNonce:r,error:i,actionState:a,actionError:o,followUpPrompt:s,followUpSelectedModel:c,followUpSelectedVariant:l,followUpSelectedSkills:u,availableModels:d,availableSkills:f,isLoadingAgentSettings:m,isSendingFollowUp:h,followUpError:g,onBack:_,onRetry:v,onAction:y,onFollowUpPromptChange:b,onFollowUpModelChange:x,onFollowUpVariantChange:S,onFollowUpSkillsChange:C,onFollowUpKeyDown:w,onFollowUpSubmit:T,isLargeScreen:E})=>{let[D,O]=(0,p.useState)(`transcript`);if((0,p.useEffect)(()=>{O(`transcript`)},[r,t]),!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before opening ticket details from this phone.`});if(!t)return(0,Y.jsx)(O9,{title:`Choose a ticket`,description:`Open a ticket to review its transcript and continue the workflow.`});if(i)return(0,Y.jsx)(O9,{title:`Ticket unavailable`,description:i,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:v,children:`Retry ticket`})});if(!n||n.id!==t)return(0,Y.jsx)(U9,{title:`Loading ticket`,backLabel:`Back to tickets`,onBack:_,children:(0,Y.jsx)(A9,{text:`Loading ticket details...`})});let k=Z0(n,{requireWorktree:!0}),A=V9(n.messages,n.id),j=d.find(e=>e.id===c)??null,M=hP(n,`opencode`)===`opencode`&&d.length>0?(0,Y.jsx)(NG,{model:c,variant:l,skills:u,showModelSelector:!0,showSkillsSelector:!0,availableModels:d,availableSkills:f,selectedModel:j,onModelChange:x,onVariantChange:S,onSkillsChange:C,modelSelectId:`mobile-ticket-follow-up-model-selector`,variantSelectId:`mobile-ticket-follow-up-variant-selector`,skillsSelectId:`mobile-ticket-follow-up-skills-selector`,disabled:!!k.disabledReason||h}):hP(n,`opencode`)===`opencode`&&m?(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading model controls...`}):null,N=!E&&M?(0,Y.jsx)(G9,{controls:M}):M,P=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(lb,{variant:N9(j9(n)),children:M9(n)}),n.tool?(0,Y.jsx)(lb,{variant:`outline`,children:n.tool}):null,n.agent_status?(0,Y.jsx)(lb,{variant:`outline`,children:n.agent_status}):null,n.branch?(0,Y.jsx)(lb,{variant:`outline`,children:n.branch}):null,n.bundle?.name?(0,Y.jsx)(lb,{variant:`outline`,children:n.bundle.name}):null]}),F=`mobile-ticket:${n.id}:${r}`,I=(0,Y.jsx)(W9,{value:D,onTranscript:()=>O(`transcript`),onDetails:()=>O(`details`)});return(0,Y.jsx)(U9,{title:n.title,backLabel:`Back to tickets`,onBack:_,subheader:E?void 0:I,children:E?(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col gap-3 overflow-hidden pt-3`,children:[(0,Y.jsx)(K9,{ticket:n,badges:P,actionState:a,actionError:o,onAction:y,className:`shrink-0`}),(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(UW,{projectId:e,followUpTicketId:n.id,messages:A,internalLog:n.agent_log??null,currentThinkingMessageId:n.agent_message_id??null,previousThinkingLog:n.previous_agent_log??null,previousThinkingMessageId:n.previous_agent_message_id??null,pendingAgentTitle:n.title,streamingResponse:n.streaming_response??null,isRunning:n.agent_status===`running`,canShowComposer:!0,followUpComposerControls:M,composerTheme:n.state,forceScrollToBottomKey:F,layoutKey:F,scrollLayoutKey:F,followUpPrompt:s,followUpPlaceholder:k.placeholder,emptyStateText:`No follow-up messages yet.`,isSendingFollowUp:h,followUpDisabledReason:k.disabledReason??void 0,onFollowUpPromptChange:b,onFollowUpKeyDown:w,onFollowUpSubmit:T},F)}),g?(0,Y.jsx)(`p`,{className:`shrink-0 text-sm text-red-200`,children:g}):null]}):D===`details`?(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(K9,{ticket:n,badges:P,actionState:a,actionError:o,onAction:y,className:`h-full`})}):(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)(UW,{projectId:e,followUpTicketId:n.id,messages:A,internalLog:n.agent_log??null,currentThinkingMessageId:n.agent_message_id??null,previousThinkingLog:n.previous_agent_log??null,previousThinkingMessageId:n.previous_agent_message_id??null,pendingAgentTitle:n.title,streamingResponse:n.streaming_response??null,isRunning:n.agent_status===`running`,canShowComposer:!0,followUpComposerControls:N,composerTheme:n.state,surfaceVariant:`chat`,composerSize:`compact-on-laptop`,forceScrollToBottomKey:F,layoutKey:F,scrollLayoutKey:F,followUpPrompt:s,followUpPlaceholder:k.placeholder,emptyStateText:`No follow-up messages yet.`,isSendingFollowUp:h,followUpDisabledReason:k.disabledReason??void 0,onFollowUpPromptChange:b,onFollowUpKeyDown:w,onFollowUpSubmit:T},F),g?(0,Y.jsx)(`p`,{className:`shrink-0 px-1 pt-2 text-sm text-red-200`,children:g}):null]})})},Voe=()=>{let e=new URLSearchParams(window.location.search),t=new URLSearchParams(window.location.hash.slice(1)),n=e.get(`mobileAccessId`)??``,r=e.get(`pairingId`)??``,i=t.get(`pairingSecret`)??``;return!n||!r||!i?null:{mobileAccessId:n,pairingId:r,pairingSecret:i}},Hoe=()=>{window.history.replaceState({},``,`/mobile`)},Uoe=e=>{let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},Z9=(e,t)=>e instanceof Ke&&e.message?e.message:t,Q9=e=>({status:`authenticated`,csrfToken:e,projects:null,selectedProjectId:null,projectError:null,projectSummary:null,projectSummaryError:null,chatSessions:null,chatSessionsError:null,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null,tickets:null,ticketsError:null,selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),$9=(e=`pairing_required`)=>({status:`unauthenticated`,reason:e}),Woe=e=>e instanceof Ke&&(e.status===401||e.status===403),Goe=()=>{let[e,t]=(0,p.useState)({status:`checking`}),[n,r]=(0,p.useState)(`connecting`),[i,a]=(0,p.useState)(`overview`),[o,s]=(0,p.useState)(!1),[c,l]=(0,p.useState)(!1),[u,d]=(0,p.useState)(!1),[f,m]=(0,p.useState)(!1),[h,g]=(0,p.useState)(!1),[_,v]=(0,p.useState)(!1),[y,b]=(0,p.useState)(``),[x,S]=(0,p.useState)(`build`),[C,w]=(0,p.useState)(``),[T,E]=(0,p.useState)(``),[D,O]=(0,p.useState)([]),[k,A]=(0,p.useState)([]),[j,M]=(0,p.useState)([]),[N,P]=(0,p.useState)(!1),[F,I]=(0,p.useState)(!1),[L,R]=(0,p.useState)(!1),[z,B]=(0,p.useState)(null),[V,H]=(0,p.useState)(null),[ee,U]=(0,p.useState)(null),[te,ne]=(0,p.useState)(null),[re,ie]=(0,p.useState)(null),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)(``),[ce,le]=(0,p.useState)(``),[ue,de]=(0,p.useState)(``),[fe,pe]=(0,p.useState)([]),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(null),[ve,ye]=(0,p.useState)(``),[G,be]=(0,p.useState)(!1),[xe,Se]=(0,p.useState)(null),[Ce,we]=(0,p.useState)(0),[Te,Ee]=(0,p.useState)(0),[De,Oe]=(0,p.useState)(0),[ke,Ae]=(0,p.useState)(`transcript`),[je,Me]=(0,p.useState)(null),[Ne,Pe]=(0,p.useState)(null),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)(!1),[ze,Be]=(0,p.useState)(!1),[Ve,K]=(0,p.useState)(null),[He,Ue]=(0,p.useState)(null),We=(0,p.useRef)(null),Ge=(0,p.useRef)(null),qe=(0,p.useRef)(null),Je=(0,p.useRef)(null),q=(0,p.useCallback)(e=>Woe(e)?(t($9(`session_revoked`)),r(`unavailable`),s(!1),l(!1),d(!1),m(!1),!0):!1,[]),Xe=(0,p.useCallback)(async(e,n,r,i)=>{try{let a=await Yae(n,r,i);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedTicketId!==r?t:{...t,ticketDetail:a,ticketDetailError:null})}catch(i){if(!Ye(i)){if(q(i))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedTicketId!==r?t:{...t,ticketDetail:null,ticketDetailError:Z9(i,`Unable to load ticket details.`)})}}},[q]),Ze=(0,p.useCallback)(async(e,n,r,i)=>{try{let a=await Xae(n,r,i);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedBundleId!==r?t:{...t,bundleDetail:a,bundleDetailError:null,tickets:I9(t.tickets,a)})}catch(i){if(!Ye(i)){if(q(i))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedBundleId!==r?t:{...t,bundleDetail:null,bundleDetailError:Z9(i,`Unable to load bundle details.`)})}}},[q]),J=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Jae(n,r);t(t=>{if(t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n)return t;let r=t.selectedTicketId&&i.some(e=>e.id===t.selectedTicketId)?t.selectedTicketId:null,a=t.selectedBundleId&&i.some(e=>e.worktree_bundle_id===t.selectedBundleId)?t.selectedBundleId:null;return{...t,tickets:i,ticketsError:null,selectedBundleId:a,bundleDetail:a?t.bundleDetail:null,bundleDetailError:a?t.bundleDetailError:null,selectedTicketId:r,ticketDetail:r?t.ticketDetail:null,ticketDetailError:r?t.ticketDetailError:null}})}catch(r){if(!Ye(r)){if(q(r))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,tickets:null,ticketsError:Z9(r,`Unable to load project tickets.`),selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null})}}},[q]),Qe=(0,p.useCallback)(async(e,n,r,i)=>{try{let a=await qae(n,r,i);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedChatSessionId!==r?t:{...t,chatSessionDetail:a,chatSessionDetailError:null})}catch(i){if(!Ye(i)){if(q(i))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedChatSessionId!==r?t:{...t,chatSessionDetail:null,chatSessionDetailError:Z9(i,`Unable to load chat transcript.`)})}}},[q]),$e=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Kae(n,r);t(t=>{if(t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n)return t;let r=t.selectedChatSessionId&&i.some(e=>e.id===t.selectedChatSessionId)?t.selectedChatSessionId:null;return{...t,chatSessions:i,chatSessionsError:null,selectedChatSessionId:r,chatSessionDetail:r?t.chatSessionDetail:null,chatSessionDetailError:r?t.chatSessionDetailError:null}})}catch(r){if(!Ye(r)){if(q(r))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,chatSessions:null,chatSessionsError:Z9(r,`Unable to load project chats.`),selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null})}}},[q]),et=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Wae(n,r);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,projectSummary:i,projectSummaryError:null})}catch(r){if(!Ye(r)){if(q(r))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,projectSummary:null,projectSummaryError:Z9(r,`Unable to load the project summary.`)})}}},[q]),tt=(0,p.useCallback)(async(e,t,n)=>{Re(!0);try{let e=await Gae(t,n),r=We.current;if(r&&r!==t)return;Me(e),Pe(null),K(null)}catch(e){if(!Ye(e)){if(q(e))return;let n=We.current;if(n&&n!==t)return;Me(null),Pe(Z9(e,`Unable to load project target options.`))}}finally{n?.aborted||Re(!1)}},[q]),nt=(0,p.useCallback)(e=>{t(t=>t.status===`authenticated`?{...t,projects:t.projects?.map(t=>t.id===e.id?e:t)??t.projects,projectSummary:t.projectSummary?.project.id===e.id?{...t.projectSummary,project:e}:t.projectSummary}:t)},[]),rt=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Uae(n),a=r&&i.some(e=>e.id===r)?r:i[0]?.id??null;t(t=>{if(t.status!==`authenticated`||t.csrfToken!==e)return t;let n=!!(t.selectedProjectId&&a&&t.selectedProjectId===a);return{...t,projects:i,selectedProjectId:a,projectError:null,projectSummary:n?t.projectSummary:null,projectSummaryError:n?t.projectSummaryError:null,chatSessions:n?t.chatSessions:null,chatSessionsError:n?t.chatSessionsError:null,selectedChatSessionId:n?t.selectedChatSessionId:null,chatSessionDetail:n?t.chatSessionDetail:null,chatSessionDetailError:n?t.chatSessionDetailError:null,tickets:n?t.tickets:null,ticketsError:n?t.ticketsError:null,selectedBundleId:n?t.selectedBundleId:null,bundleDetail:n?t.bundleDetail:null,bundleDetailError:n?t.bundleDetailError:null,selectedTicketId:n?t.selectedTicketId:null,ticketDetail:n?t.ticketDetail:null,ticketDetailError:n?t.ticketDetailError:null}});let o=a?i.find(e=>e.id===a)??null:null;a&&(et(e,a,n),o?.active_target_kind===`bundle`&&tt(e,a,n),$e(e,a,n),J(e,a,n))}catch(n){if(!Ye(n)){if(q(n))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e?t:{...t,projects:t.projects??[],projectError:Z9(n,`Unable to load projects from desktop Archon.`)})}}},[q,$e,et,tt,J]),it=(0,p.useCallback)(async e=>{t({status:`checking`}),r(`connecting`);try{let n=await doe(e);if(n.authenticated&&n.csrf_token){r(`connecting`),t(Q9(n.csrf_token)),rt(n.csrf_token,e,n.preferred_project_id);return}t($9())}catch(e){Ye(e)||t({status:`error`,message:Z9(e,`Mobile access is unavailable. Make sure it is still enabled on desktop Archon.`)})}},[rt]),at=(0,p.useCallback)((e,n,i)=>{r(`connecting`),t(Q9(e)),rt(e,i,n)},[rt]);(0,p.useEffect)(()=>{let e=new AbortController;if(window.location.pathname===`/mobile/pair`){let n=Voe();return Hoe(),n?(t({status:`pairing`}),foe(n,e.signal).then(e=>{t({status:`pairing_confirmation`,payload:n,displayCode:e.display_code,expiresAt:e.expires_at,error:null})}).catch(e=>{t({status:`error`,message:Z9(e,`Pairing failed. Regenerate the pairing link from desktop Archon and try again.`)})}),()=>e.abort()):(t({status:`error`,message:`Pairing link is missing required pairing details.`}),()=>e.abort())}return it(e.signal),()=>e.abort()},[at,it]);let ot=e.status===`authenticated`?e.csrfToken:null,st=e.status===`authenticated`?e.selectedProjectId:null,ct=e.status===`authenticated`?e.selectedChatSessionId:null,lt=e.status===`authenticated`?e.selectedBundleId:null,ut=e.status===`authenticated`?e.selectedTicketId:null,dt=e.status===`authenticated`?e.projects?.find(t=>t.id===e.selectedProjectId)??null:null,ft=e.status===`authenticated`?e.chatSessionDetail:null,pt=e.status===`authenticated`?e.bundleDetail:null,mt=e.status===`authenticated`?e.ticketDetail:null,ht=T9(dt,je),gt=Le&&(!dt||dt.active_target_kind===`bundle`),_t=Coe(),vt=ft?.tool??`opencode`,yt=e.status!==`authenticated`||!e.selectedProjectId?`Choose a project before sending a prompt.`:L?`Wait for the chat mode change before sending another prompt.`:ft?.agent_status===`running`?`Stop or wait for the current response before sending another prompt.`:null,bt=!_t&&(i===`tickets`&&(u&&!!ut||c&&!!lt)||i===`chats`&&f);(0,p.useEffect)(()=>{We.current=st},[st]),(0,p.useEffect)(()=>{st||(Me(null),Pe(null),K(null),Ie(!1),Re(!1),Be(!1))},[st]),(0,p.useEffect)(()=>{Ge.current=ct},[ct]),(0,p.useEffect)(()=>{qe.current=lt},[lt]),(0,p.useEffect)(()=>{Je.current=ut},[ut]),(0,p.useEffect)(()=>{if(!ot||!st){A([]),M([]),P(!1);return}if(!(vt===`opencode`||mt?.tool===`opencode`)){A([]),M([]),P(!1);return}let e=new AbortController;return P(!0),Promise.all([loe(`opencode`,e.signal),uoe(`opencode`,st,e.signal)]).then(([e,t])=>{A(e),M(t)}).catch(e=>{q(e)||Ye(e)||(A([]),M([]))}).finally(()=>{e.signal.aborted||P(!1)}),()=>e.abort()},[ot,vt,q,st,mt?.tool]),(0,p.useEffect)(()=>{if(vt!==`opencode`){w(``),E(``),O([]);return}w(ft?.model??dt?.helper_model??``),E(ft?.variant??dt?.helper_variant??``),O(ft?.skills??[])},[vt,ft?.id,ft?.model,ft?.skills,ft?.variant,dt?.helper_model,dt?.helper_variant]),(0,p.useEffect)(()=>{ft?.mode&&S(ft.mode)},[ft?.id,ft?.mode]),(0,p.useEffect)(()=>{let e=k.find(e=>e.id===C)??null;E(t=>e?e.variants.includes(t)?t:``:t)},[k,C]),(0,p.useEffect)(()=>{se(``),_e(null),le(mt?.model??``),de(mt?.variant??``),pe(mt?.skills??[])},[mt?.id,mt?.model,mt?.skills,mt?.variant]),(0,p.useEffect)(()=>{ye(``),Se(null)},[pt?.bundle.id]),(0,p.useEffect)(()=>{let e=k.find(e=>e.id===ce)??null;de(t=>e?e.variants.includes(t)?t:``:t)},[k,ce]),(0,p.useEffect)(()=>{if(!ot)return;let e=hoe();r(`connecting`);let t=()=>{let e=We.current,t=Ge.current,n=qe.current,r=Je.current;rt(ot,void 0,e),e&&(et(ot,e),$e(ot,e),J(ot,e)),e&&t&&Qe(ot,e,t),e&&n&&Ze(ot,e,n),e&&r&&Xe(ot,e,r)},n=()=>{r(`connected`),t()},i=()=>{r(`reconnecting`)},a=()=>{r(`unavailable`)},o=()=>{rt(ot,void 0,We.current)},s=(e=null)=>{let t=We.current;t&&(e?.project_id&&e.project_id!==t||et(ot,t))},c=(e=null)=>{let t=We.current;t&&(e?.project_id&&e.project_id!==t||$e(ot,t))},l=(e=null)=>{let t=We.current;t&&(e?.project_id&&e.project_id!==t||J(ot,t))},u=(e=null)=>{let t=We.current,n=Ge.current;!t||!n||e?.project_id&&e.project_id!==t||e?.id&&e.id!==n||Qe(ot,t,n)},d=(e=null)=>{let t=We.current,n=Je.current;!t||!n||e?.project_id&&e.project_id!==t||e?.id&&e.id!==n||Xe(ot,t,n)},f=(e=null)=>{let t=We.current,n=qe.current;!t||!n||e?.project_id&&e.project_id!==t||Ze(ot,t,n)};return e.on(`connect`,n),e.on(`disconnect`,i),e.on(`connect_error`,a),e.on(`ticket:created`,s),e.on(`ticket:created`,l),e.on(`ticket:updated`,s),e.on(`ticket:updated`,l),e.on(`ticket:updated`,f),e.on(`ticket:updated`,d),e.on(`ticket:deleted`,o),e.on(`ticket:deleted`,l),e.on(`ticket:deleted`,f),e.on(`ticket-dependency:created`,s),e.on(`ticket-dependency:deleted`,s),e.on(`chat-session:created`,c),e.on(`chat-session:updated`,c),e.on(`chat-session:updated`,u),e.on(`chat-session:deleted`,c),()=>{e.off(`connect`,n),e.off(`disconnect`,i),e.off(`connect_error`,a),e.off(`ticket:created`,s),e.off(`ticket:created`,l),e.off(`ticket:updated`,s),e.off(`ticket:updated`,l),e.off(`ticket:updated`,f),e.off(`ticket:updated`,d),e.off(`ticket:deleted`,o),e.off(`ticket:deleted`,l),e.off(`ticket:deleted`,f),e.off(`ticket-dependency:created`,s),e.off(`ticket-dependency:deleted`,s),e.off(`chat-session:created`,c),e.off(`chat-session:updated`,c),e.off(`chat-session:updated`,u),e.off(`chat-session:deleted`,c),e.disconnect()}},[ot,Ze,Qe,$e,et,rt,Xe,J]),(0,p.useEffect)(()=>{lt||l(!1)},[lt]),(0,p.useEffect)(()=>{ut||d(!1)},[ut]);let xt=()=>{it()},St=e=>{a(e),l(!1),d(!1),m(!1),Ue(null)},Ct=()=>{s(!0)},wt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(K(null),Ie(!0),!je&&!Le&&tt(e.csrfToken,e.selectedProjectId))},Tt=()=>{e.status===`authenticated`&&(g(!0),moe(e.csrfToken).then(()=>t($9())).catch(e=>{q(e)||t({status:`error`,message:Z9(e,`Logout failed. Mobile access may have already been revoked from desktop Archon.`)})}).finally(()=>g(!1)))},Et=()=>{if(e.status!==`pairing_confirmation`||_)return;let n=e.payload;v(!0),t({...e,error:null}),poe(n).then(e=>{if(e.authenticated&&e.csrf_token){window.history.replaceState({},``,`/mobile`),at(e.csrf_token,e.preferred_project_id);return}t($9())}).catch(e=>{t(t=>t.status===`pairing_confirmation`?{...t,error:Z9(e,`Pairing failed. Regenerate the pairing link from desktop Archon and try again.`)}:t)}).finally(()=>v(!1))},Dt=()=>{window.history.replaceState({},``,`/mobile`),t($9())},Ot=()=>{e.status===`authenticated`&&(t({...e,projects:null,projectError:null}),rt(e.csrfToken))},kt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,projectSummary:null,projectSummaryError:null}),et(e.csrfToken,e.selectedProjectId))},At=()=>{e.status!==`authenticated`||!e.selectedProjectId||(Me(null),Pe(null),K(null),tt(e.csrfToken,e.selectedProjectId))},jt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,chatSessions:null,chatSessionsError:null,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null}),$e(e.csrfToken,e.selectedProjectId))},Mt=()=>{e.status!==`authenticated`||!e.selectedProjectId||!e.selectedChatSessionId||(t({...e,chatSessionDetail:null,chatSessionDetailError:null}),Qe(e.csrfToken,e.selectedProjectId,e.selectedChatSessionId))},Nt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,tickets:null,ticketsError:null,selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),J(e.csrfToken,e.selectedProjectId))},Pt=()=>{e.status!==`authenticated`||!e.selectedProjectId||!e.selectedTicketId||(t({...e,ticketDetail:null,ticketDetailError:null}),Xe(e.csrfToken,e.selectedProjectId,e.selectedTicketId))},Ft=()=>{e.status!==`authenticated`||!e.selectedProjectId||!e.selectedBundleId||(t({...e,bundleDetail:null,bundleDetailError:null}),Ze(e.csrfToken,e.selectedProjectId,e.selectedBundleId))},It=n=>{if(e.status!==`authenticated`)return;let r=e.projects?.find(e=>e.id===n)??null;We.current=n,t({...e,selectedProjectId:n,projectSummary:null,projectSummaryError:null,chatSessions:null,chatSessionsError:null,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null,tickets:null,ticketsError:null,selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),U(null),ne(null),ie(null),oe(null),H(null),oe(null),setStopRunError(null),Se(null),Me(null),Pe(null),K(null),s(!1),Ie(!1),l(!1),d(!1),m(!1),Ae(`transcript`),Ue(null),a(`overview`),et(e.csrfToken,n),r?.active_target_kind===`bundle`&&tt(e.csrfToken,n),$e(e.csrfToken,n),J(e.csrfToken,n)},Lt=async t=>{if(!(e.status!==`authenticated`||!e.selectedProjectId)){Be(!0),K(null);try{nt(await b9(e.selectedProjectId,e.csrfToken,{kind:`bundle`,bundle_id:t})),Ie(!1),et(e.csrfToken,e.selectedProjectId),tt(e.csrfToken,e.selectedProjectId)}catch(e){if(q(e))return;K(Z9(e,`Unable to update the project target right now.`))}finally{Be(!1)}}},Rt=async(t,n={})=>{if(e.status!==`authenticated`||!e.selectedProjectId)return;Be(!0),K(null);let r=r=>b9(e.selectedProjectId??``,e.csrfToken,{kind:`repo_root`,...t?{branch:t}:{},...n.createBranch===!1?{create_branch:!1}:{},...r?{confirm_dirty_switch:!0}:{}});try{let t;try{t=await r(n.confirmDirtySwitch===!0)}catch(e){if(!n.confirmDirtySwitch&&e instanceof Ke&&e.status===409&&e.message===w9){if(!window.confirm(`${w9}\n\nSwitch anyway?`))return;t=await r(!0)}else throw e}nt(t),Ie(!1),et(e.csrfToken,e.selectedProjectId),tt(e.csrfToken,e.selectedProjectId)}catch(e){if(q(e))return;K(Z9(e,`Unable to update the project target right now.`))}finally{Be(!1)}},zt=n=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedChatSessionId:n,chatSessionDetail:null,chatSessionDetailError:null}),H(null),we(e=>e+1),m(!0),a(`chats`),Qe(e.csrfToken,e.selectedProjectId,n))},Bt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null}),H(null),b(``),we(e=>e+1),m(!0),a(`chats`))},Vt=n=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedBundleId:n,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),U(null),ne(null),oe(null),Se(null),Ue(null),Ae(`transcript`),Ee(e=>e+1),l(!0),d(!1),a(`tickets`),Ze(e.csrfToken,e.selectedProjectId,n))},Ht=(n,r)=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedTicketId:n,ticketDetail:null,ticketDetailError:null}),Ue(r),Oe(e=>e+1),l(r!==null),d(!0),a(`tickets`),Xe(e.csrfToken,e.selectedProjectId,n))},Ut=()=>{m(!1)},Wt=n=>{if(e.status!==`authenticated`||!e.selectedProjectId)return;if(!e.chatSessionDetail||!e.selectedChatSessionId){S(n);return}if(e.chatSessionDetail.mode===n||L)return;let r=e.selectedProjectId,i=e.selectedChatSessionId,a=e.csrfToken;R(!0),H(null),toe(r,i,a,{mode:n}).then(e=>{S(e.mode),t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedChatSessionId!==i)return t;let n=t.chatSessions?.map(t=>t.id===e.id?e:t)??t.chatSessions;return{...t,chatSessions:n,chatSessionDetail:e,chatSessionDetailError:null}})}).catch(e=>{q(e)||H(Z9(e,`Unable to update the chat mode right now.`))}).finally(()=>R(!1))},Gt=()=>{if(e.status===`authenticated`&&He&&e.selectedBundleId===He){t({...e,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),d(!1),l(!0),Ue(null);return}Ue(null),d(!1)},Kt=()=>{l(!1)},qt=e=>{let t=k.find(t=>t.id===e)??null;w(e),E(e=>t&&t.variants.includes(e)?e:``)},Jt=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),Yt())},Yt=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||F||yt)return;let n=y.trim();if(!n)return;let r=e.selectedProjectId,i=e.csrfToken,a=vt===`opencode`&&C?C:null,o=vt===`opencode`&&C&&T?T:null,s=vt===`opencode`?D:[];H(null),I(!0);let c=e=>eoe(r,e.id,i,{instruction:n,tool:e.tool,model:a,variant:o,skills:s});(e.chatSessionDetail?c(e.chatSessionDetail):$ae(r,i,{mode:x,tool:vt,model:a,variant:o,skills:s}).then(c)).then(e=>{b(``),m(!0),t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r)return t;let n=t.chatSessions??[],i=n.some(t=>t.id===e.id)?n.map(t=>t.id===e.id?e:t):[e,...n];return{...t,chatSessions:i,selectedChatSessionId:e.id,chatSessionDetail:e,chatSessionDetailError:null}}),$e(i,r)}).catch(e=>{q(e)||H(Z9(e,`Unable to send the chat prompt.`))}).finally(()=>I(!1))},Xt=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedChatSessionId||z)return;let t=e.selectedProjectId,n=e.selectedChatSessionId;H(null),B(n),noe(t,n,e.csrfToken).then(()=>Qe(e.csrfToken,t,n)).catch(e=>{q(e)||H(Z9(e,`Unable to stop the chat response.`))}).finally(()=>B(null))},Zt=n=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedTicketId||re||(n===`stop-run`||n===`pause-build`)&&!window.confirm(`Stop this ticket action on the desktop machine?`))return;let r=e.selectedProjectId,i=e.selectedTicketId,a=e.csrfToken,o=n===`build`?_9(r,i,a,`build`):n===`review`?_9(r,i,a,`review`):n===`run`?roe(r,i,a):n===`stop-run`?ioe(r,i,a):n===`pause-build`?v9(r,i,a):y9(r,i,a);ie(n),oe(null),o.then(e=>{t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedTicketId!==i)return t;let n=t.tickets?.map(t=>t.id===e.id?e:t)??t.tickets;return{...t,tickets:n,ticketDetail:e,ticketDetailError:null}}),et(a,r),J(a,r),Xe(a,r,i)}).catch(e=>{q(e)||oe(Z9(e,`Unable to update this ticket from mobile.`))}).finally(()=>ie(null))},Qt=n=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedBundleId||!e.bundleDetail||ee)return;let r=e.selectedProjectId,i=e.selectedBundleId,a=e.csrfToken,o=e.bundleDetail,{runningBuildTicketId:s,resumableBuildTicketId:c}=B9(o);if(n===`pause-build`&&!window.confirm(`Pause this bundle build on the desktop machine?`))return;let l=e=>{t(t=>t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedBundleId!==i?t:{...t,tickets:I9(t.tickets,e),bundleDetail:e,bundleDetailError:null})},u=e=>{t(t=>t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedBundleId!==i?t:{...t,tickets:t.tickets?.map(t=>t.id===e.id?e:t)??t.tickets,bundleDetail:t.bundleDetail?{...t.bundleDetail,tickets:t.bundleDetail.tickets.map(t=>t.id===e.id?e:t)}:t.bundleDetail,bundleDetailError:null})},d=n===`build`?Zae(r,i,a):n===`review`?Qae(r,i,a):n===`pause-build`?s?v9(r,s,a):null:c?y9(r,c,a):null;d&&(U(n),ne(null),d.then(e=>{`tickets`in e?l(e):u(e),et(a,r),J(a,r),Ze(a,r,i)}).catch(e=>{q(e)||ne(Z9(e,`Unable to update this bundle from mobile.`))}).finally(()=>U(null)))},$t=e=>{let t=k.find(t=>t.id===e)??null;le(e),de(e=>t&&t.variants.includes(e)?e:``)},en=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),tn())},tn=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedTicketId||!e.ticketDetail||me)return;let n=W.trim();if(!n)return;let r=e.selectedProjectId,i=e.ticketDetail,a=e.csrfToken,o=Q0(i,{model:ce||null,variant:ue||null,skills:fe}),s=()=>i.state===`plan`?ooe(r,i.id,a,n):soe(r,i.id,a,n),c=e=>{t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedTicketId!==i.id)return t;let n=t.tickets?.map(t=>t.id===e.id?e:t)??t.tickets;return{...t,tickets:n,ticketDetail:e,ticketDetailError:null}})};he(!0),_e(null),(async()=>{o.shouldPersist&&c(await aoe(r,i.id,a,{model:o.model,variant:o.variant,skills:o.skills})),c(await s()),se(``),J(a,r),Xe(a,r,i.id)})().catch(e=>{q(e)||_e(Z9(e,`Unable to send the ticket follow-up.`))}).finally(()=>he(!1))},nn=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),rn())},rn=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedBundleId||!e.bundleDetail||G)return;let n=ve.trim();if(!n)return;let r=e.selectedProjectId,i=e.selectedBundleId,a=e.csrfToken,o=e=>{t(t=>t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedBundleId!==i?t:{...t,tickets:I9(t.tickets,e),bundleDetail:e,bundleDetailError:null})};be(!0),Se(null),coe(r,i,a,n).then(e=>{o(e),ye(``),J(a,r),Ze(a,r,i)}).catch(e=>{q(e)||Se(Z9(e,`Unable to send the bundle follow-up.`))}).finally(()=>be(!1))};return e.status===`checking`?(0,Y.jsx)(E9,{title:`Checking mobile session`,description:`Archon is validating this browser before showing project controls.`}):e.status===`pairing`?(0,Y.jsx)(E9,{title:`Checking pairing link`,description:`Keep this page open while Archon verifies the one-time pairing link.`}):e.status===`pairing_confirmation`?(0,Y.jsxs)(E9,{title:`Compare pairing code`,description:`Confirm this code matches the desktop dialog before pairing this phone.`,children:[(0,Y.jsx)(ub,{className:`border-primary/25 bg-primary/10 shadow-none`,children:(0,Y.jsxs)(hb,{className:`space-y-2 pt-5 text-center`,children:[(0,Y.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.18em] text-foreground`,children:`Verification code`}),(0,Y.jsx)(`div`,{className:`font-mono text-3xl font-semibold tracking-[0.18em] text-foreground`,children:e.displayCode}),(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[`Expires at `,Uoe(e.expiresAt)]})]})}),(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`If this code does not match the desktop dialog, cancel and regenerate the pairing link from desktop Archon.`}),e.error?(0,Y.jsx)(`p`,{className:`text-sm text-red-200`,children:e.error}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,Y.jsx)(Z,{size:`lg`,disabled:_,onClick:Et,children:_?`Pairing...`:`Pair this phone`}),(0,Y.jsx)(Z,{variant:`outline`,size:`lg`,disabled:_,onClick:Dt,children:`Cancel`})]})]}):e.status===`unauthenticated`?(0,Y.jsx)(E9,{title:e.reason===`session_revoked`?`Mobile session revoked`:`Pairing required`,description:e.reason===`session_revoked`?`This mobile session is no longer valid. Scan the QR code or open the pairing link from desktop Archon to continue.`:`This browser is not paired. Scan the QR code or open the pairing link from desktop Archon.`,children:(0,Y.jsx)(Z,{onClick:xt,children:`Retry`})}):e.status===`error`?(0,Y.jsx)(E9,{title:`Mobile access unavailable`,description:e.message,children:(0,Y.jsx)(Z,{onClick:xt,children:`Retry`})}):(0,Y.jsxs)(`main`,{className:X(`bg-background text-foreground`,bt?`flex h-[100dvh] flex-col overflow-hidden`:`min-h-screen`),children:[(0,Y.jsx)(Eoe,{open:o,projects:e.projects,selectedProjectId:e.selectedProjectId,error:e.projectError,onOpenChange:s,onSelectProject:It,onRetry:Ot}),(0,Y.jsx)(Doe,{open:Fe,project:dt,targetOptions:je,error:Ve??Ne,isLoading:Le,isSubmitting:ze,onOpenChange:Ie,onRetry:At,onSelectBundle:e=>{Lt(e)},onSelectRepoRoot:(e,t)=>{Rt(e,t)}}),(0,Y.jsx)(Ooe,{selectedProject:dt,targetLabel:ht,isTargetLoading:gt,isTargetDisabled:!st,connectionState:n,onOpenProjects:Ct,onOpenTargetSelector:wt}),bt?(0,Y.jsxs)(`div`,{className:`mx-auto flex min-h-0 w-full max-w-6xl flex-1 flex-col overflow-hidden px-3 py-3 sm:px-4`,children:[i===`tickets`?(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:u&&e.selectedTicketId?(0,Y.jsx)(X9,{selectedProjectId:e.selectedProjectId,ticketId:e.selectedTicketId,ticket:e.ticketDetail,openNonce:De,error:e.ticketDetailError,actionState:re,actionError:ae,followUpPrompt:W,followUpSelectedModel:ce,followUpSelectedVariant:ue,followUpSelectedSkills:fe,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSendingFollowUp:me,followUpError:ge,onBack:Gt,onRetry:Pt,onAction:Zt,onFollowUpPromptChange:se,onFollowUpModelChange:$t,onFollowUpVariantChange:de,onFollowUpSkillsChange:pe,onFollowUpKeyDown:en,onFollowUpSubmit:tn,isLargeScreen:!1}):(0,Y.jsx)(J9,{selectedProjectId:e.selectedProjectId,bundleId:e.selectedBundleId,bundleDetail:e.bundleDetail,openNonce:Te,mobileDetailView:ke,error:e.bundleDetailError,actionState:ee,actionError:te,followUpPrompt:ve,isSendingFollowUp:G,followUpError:xe,availableModels:k,onBack:Kt,onRetry:Ft,onAction:Qt,onDetailViewChange:Ae,onSelectTicket:Ht,onFollowUpPromptChange:ye,onFollowUpKeyDown:nn,onFollowUpSubmit:rn,isLargeScreen:!1})}):null,i===`chats`?(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(0,Y.jsx)(Y9,{selectedProjectId:e.selectedProjectId,chatSession:e.chatSessionDetail,chatSessionId:e.selectedChatSessionId,openNonce:Ce,error:e.chatSessionDetailError,isStopping:z===e.selectedChatSessionId,composerMode:e.chatSessionDetail?.mode??x,composerTool:vt,prompt:y,selectedModel:C,selectedVariant:T,selectedSkills:D,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSending:F,isUpdatingMode:L,composerDisabledReason:yt,onBack:Ut,onRetry:Mt,onStop:Xt,onModeChange:Wt,onPromptChange:b,onModelChange:qt,onVariantChange:E,onSkillsChange:O,onPromptKeyDown:Jt,onSubmit:Yt,isLargeScreen:!1}),V?(0,Y.jsx)(`p`,{className:`mt-3 text-sm text-red-200`,children:V}):null]}):null]}):(0,Y.jsx)(`div`,{className:`mx-auto w-full max-w-6xl px-3 py-3 pb-[calc(env(safe-area-inset-bottom)+5rem)] sm:px-4 lg:flex lg:min-h-[calc(100dvh-4.5rem)] lg:flex-col lg:overflow-hidden lg:pb-4`,children:(0,Y.jsxs)(`div`,{className:`space-y-3 lg:flex lg:min-h-0 lg:flex-1 lg:flex-col`,children:[(0,Y.jsx)(woe,{status:n,onRetry:xt}),i===`overview`?(0,Y.jsx)(`div`,{className:`space-y-3 lg:flex lg:min-h-0 lg:flex-1 lg:flex-col`,children:e.projectError?(0,Y.jsx)(O9,{title:`Projects unavailable`,description:e.projectError,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:Ot,children:`Retry projects`})}):e.selectedProjectId&&!e.projectSummary&&!e.projectSummaryError?(0,Y.jsx)(Aoe,{}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Poe,{selectedProjectId:e.selectedProjectId,summary:e.projectSummary,tickets:e.tickets,error:e.projectSummaryError,chatSessions:e.chatSessions,chatSessionDetail:e.chatSessionDetail,onRetry:kt,onOpenTickets:()=>St(`tickets`),onOpenChats:()=>St(`chats`)}),(0,Y.jsx)(joe,{isLoggingOut:h,onLogout:Tt})]})}):null,i===`tickets`?_t?(0,Y.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-3 overflow-hidden lg:grid-cols-[minmax(15rem,18rem)_minmax(0,1fr)]`,children:[(0,Y.jsx)(`div`,{className:`min-h-0`,children:(0,Y.jsx)(L9,{selectedProjectId:e.selectedProjectId,tickets:e.tickets,selectedBundleId:e.selectedBundleId,selectedTicketId:e.selectedTicketId,error:e.ticketsError,onRetry:Nt,onSelectBundle:Vt,onSelectTicket:Ht})}),(0,Y.jsx)(`div`,{className:`hidden min-h-0 lg:flex lg:flex-col lg:overflow-hidden`,children:u&&e.selectedTicketId?(0,Y.jsx)(X9,{selectedProjectId:e.selectedProjectId,ticketId:e.selectedTicketId,ticket:e.ticketDetail,openNonce:De,error:e.ticketDetailError,actionState:re,actionError:ae,followUpPrompt:W,followUpSelectedModel:ce,followUpSelectedVariant:ue,followUpSelectedSkills:fe,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSendingFollowUp:me,followUpError:ge,onBack:Gt,onRetry:Pt,onAction:Zt,onFollowUpPromptChange:se,onFollowUpModelChange:$t,onFollowUpVariantChange:de,onFollowUpSkillsChange:pe,onFollowUpKeyDown:en,onFollowUpSubmit:tn,isLargeScreen:!0}):(0,Y.jsx)(J9,{selectedProjectId:e.selectedProjectId,bundleId:e.selectedBundleId,bundleDetail:e.bundleDetail,openNonce:Te,mobileDetailView:ke,error:e.bundleDetailError,actionState:ee,actionError:te,followUpPrompt:ve,isSendingFollowUp:G,followUpError:xe,availableModels:k,onBack:Kt,onRetry:Ft,onAction:Qt,onDetailViewChange:Ae,onSelectTicket:Ht,onFollowUpPromptChange:ye,onFollowUpKeyDown:nn,onFollowUpSubmit:rn,isLargeScreen:!0})})]}):(0,Y.jsx)(L9,{selectedProjectId:e.selectedProjectId,tickets:e.tickets,selectedBundleId:e.selectedBundleId,selectedTicketId:e.selectedTicketId,error:e.ticketsError,onRetry:Nt,onSelectBundle:Vt,onSelectTicket:Ht}):null,i===`chats`?_t?(0,Y.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-3 overflow-hidden lg:grid-cols-[minmax(15rem,18rem)_minmax(0,1fr)]`,children:[(0,Y.jsx)(`div`,{className:`min-h-0`,children:(0,Y.jsx)(R9,{selectedProjectId:e.selectedProjectId,chatSessions:e.chatSessions,selectedChatSessionId:e.selectedChatSessionId,error:e.chatSessionsError,onRetry:jt,onOpenNewChat:Bt,onSelectChat:zt})}),(0,Y.jsxs)(`div`,{className:`hidden min-h-0 lg:flex lg:flex-col lg:overflow-hidden`,children:[(0,Y.jsx)(Y9,{selectedProjectId:e.selectedProjectId,chatSession:e.chatSessionDetail,chatSessionId:e.selectedChatSessionId,openNonce:Ce,error:e.chatSessionDetailError,isStopping:z===e.selectedChatSessionId,composerMode:e.chatSessionDetail?.mode??x,composerTool:vt,prompt:y,selectedModel:C,selectedVariant:T,selectedSkills:D,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSending:F,isUpdatingMode:L,composerDisabledReason:yt,onBack:Ut,onRetry:Mt,onStop:Xt,onModeChange:Wt,onPromptChange:b,onModelChange:qt,onVariantChange:E,onSkillsChange:O,onPromptKeyDown:Jt,onSubmit:Yt,isLargeScreen:!0}),V?(0,Y.jsx)(`p`,{className:`mt-3 text-sm text-red-200`,children:V}):null]})]}):(0,Y.jsx)(R9,{selectedProjectId:e.selectedProjectId,chatSessions:e.chatSessions,selectedChatSessionId:e.selectedChatSessionId,error:e.chatSessionsError,onRetry:jt,onOpenNewChat:Bt,onSelectChat:zt}):null]})}),bt?null:(0,Y.jsx)(koe,{activeSection:i,onChange:St})]})},Koe=({socket:e=W0,children:t})=>(0,Y.jsx)(F8.Provider,{value:e,children:t}),qoe=()=>typeof window<`u`&&window.location.pathname.startsWith(`/mobile`),Joe=()=>{let e=qoe();return Hy(e?null:W0),(0,Y.jsx)(We,{i18n:sb,children:(0,Y.jsx)(nt,{children:(0,Y.jsxs)(Koe,{children:[e&&(0,Y.jsx)(Goe,{}),!e&&(0,Y.jsx)(zae,{})]})})})};document.documentElement.classList.add(`dark`),document.documentElement.style.colorScheme=`dark`,(0,f.createRoot)(document.getElementById(`root`)).render((0,Y.jsx)(Joe,{}));export{tt as A,R_ as C,Z as D,L_ as E,c as F,qe as M,Ze as N,X as O,J as P,P_ as S,F_ as T,Mv as _,iN as a,A_ as b,Yb as c,lb as d,sb as f,Fv as g,Iv as h,rN as i,Ke as j,nn as k,Zb as l,Rv as m,bU as n,nN as o,Jy as p,tN as r,nS as s,W0 as t,Xb as u,Ev as v,I_ as w,M_ as x,z_ as y};
|
|
259
|
+
`).map(e=>e.trim()).filter(Boolean).filter((e,t,n)=>n.indexOf(e)===t),jre=e=>{let t=[`plan`,`build`,`review`,`follow_up`,`plan_follow_up`,`chat`];return e.split(/\n|,/).map(e=>e.trim()).filter(e=>t.includes(e)).filter((e,t,n)=>n.indexOf(e)===t)},Mre=({suggestion:e,isPending:t,onReview:n,onAccept:r,onDismiss:i})=>{let a=e.kind===`decision`?e.duplicate_match?.decision??null:null,o=A5(a?`suggested.saveAsNewDecision`:`suggested.accept`),s=e.kind===`decision`?e.decision:e.instruction;return(0,Y.jsx)(`li`,{className:`rounded-xl border border-border/60 bg-background/40`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,Y.jsx)(`div`,{className:`flex items-start justify-between gap-3`,children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate text-sm font-semibold text-foreground`,children:e.title}),(0,Y.jsx)(O5,{children:A5(`suggested.badge`,{kind:e.kind})}),a?(0,Y.jsx)(O5,{tone:`muted`,children:A5(`suggested.duplicateBadge`)}):null]}),(0,Y.jsx)(`p`,{className:`line-clamp-2 text-sm text-muted-foreground`,children:s})]})}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`outline`,disabled:t,onClick:()=>n(e),children:A5(`suggested.review`)}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,disabled:t,onClick:()=>void r(e),children:o}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`ghost`,disabled:t,onClick:()=>void i(e),children:A5(`suggested.dismiss`)})]})]})})},Nre=({suggestion:e,isOpen:t,isEditing:n,isPending:r,draft:i,onOpenChange:a,onStartEdit:o,onDraftChange:s,onCancelEdit:c,onAccept:l,onDismiss:u})=>{if(!e)return null;let d=e.kind===`decision`?e.duplicate_match?.decision??null:null,f=d?A5(`suggested.saveAsNewDecision`):A5(`suggested.acceptAs`,{kind:e.kind});return(0,Y.jsx)(A_,{open:t,onOpenChange:a,children:(0,Y.jsxs)(P_,{className:`max-h-[85vh] overflow-y-auto sm:max-w-2xl`,children:[(0,Y.jsxs)(F_,{children:[(0,Y.jsx)(L_,{children:e.title}),(0,Y.jsx)(R_,{children:A5(`suggested.reviewDescription`,{kind:e.kind})})]}),(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[d?(0,Y.jsxs)(`div`,{className:`rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs leading-5 text-amber-100`,children:[(0,Y.jsx)(`p`,{className:`font-medium text-amber-50`,children:A5(`suggested.duplicateTitle`)}),(0,Y.jsxs)(`p`,{children:[(0,Y.jsxs)(`span`,{className:`font-medium`,children:[d.title,`:`]}),` `,d.decision]})]}):null,n?(0,Y.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.titleLabel`)}),(0,Y.jsx)(`input`,{"aria-label":A5(`editor.titleAriaLabel`),value:i.title,onChange:e=>s({...i,title:e.target.value}),className:`h-10 rounded-lg border border-border bg-background px-3 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.scopeLabel`)}),(0,Y.jsx)(`input`,{"aria-label":A5(`editor.scopeAriaLabel`),value:i.scope,onChange:e=>s({...i,scope:e.target.value}),className:`h-10 rounded-lg border border-border bg-background px-3 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:i.kind===`decision`?A5(`suggested.decision`):A5(`suggested.instruction`)}),(0,Y.jsx)(`textarea`,{"aria-label":i.kind===`decision`?A5(`suggested.decision`):A5(`suggested.instruction`),value:i.content,onChange:e=>s({...i,content:e.target.value}),rows:5,className:`min-h-32 rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.rationaleLabel`)}),(0,Y.jsx)(`textarea`,{"aria-label":A5(`editor.rationaleAriaLabel`),value:i.rationale,onChange:e=>s({...i,rationale:e.target.value}),rows:3,className:`rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),i.kind===`decision`?(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground sm:col-span-2`,children:[(0,Y.jsx)(`span`,{children:A5(`suggested.implicationsMultiline`)}),(0,Y.jsx)(`textarea`,{"aria-label":A5(`editor.implicationsAriaLabel`),value:i.implications,onChange:e=>s({...i,implications:e.target.value}),rows:3,className:`rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:A5(`suggested.stagesMultiline`)}),(0,Y.jsx)(`textarea`,{"aria-label":A5(`editor.stagesLabel`),value:i.stages,onChange:e=>s({...i,stages:e.target.value}),rows:3,className:`rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground outline-none transition focus:border-primary/60`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs font-medium text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:A5(`editor.priorityLabel`)}),(0,Y.jsxs)(`select`,{"aria-label":A5(`editor.priorityAriaLabel`),value:i.priority,onChange:e=>s({...i,priority:e.target.value}),className:`h-10 rounded-lg border border-border bg-background px-3 text-sm text-foreground outline-none transition focus:border-primary/60`,children:[(0,Y.jsx)(`option`,{value:`low`,children:A5(`priorityLabels.low`)}),(0,Y.jsx)(`option`,{value:`normal`,children:A5(`priorityLabels.normal`)}),(0,Y.jsx)(`option`,{value:`high`,children:A5(`priorityLabels.high`)})]})]})]})]}):(0,Y.jsxs)(`div`,{className:`space-y-4 text-sm`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:e.kind===`decision`?A5(`suggested.decision`):A5(`suggested.instruction`)}),(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap text-foreground`,children:e.kind===`decision`?e.decision:e.instruction})]}),e.rationale?(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.rationaleLabel`)}),(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap text-muted-foreground`,children:e.rationale})]}):null,e.kind===`decision`&&e.implications.length>0?(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.implicationsLabel`)}),(0,Y.jsx)(`ul`,{className:`list-disc space-y-1 pl-5 text-muted-foreground`,children:e.implications.map(e=>(0,Y.jsx)(`li`,{children:e},e))})]}):null,e.kind===`convention`?(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.stagesLabel`)}),(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:e.stages.map(e=>Ore(e)).join(`, `)||A5(`suggested.noneSpecified`)})]}),(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground`,children:A5(`editor.priorityLabel`)}),(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:kre(e.priority)})]})]}):null]})]}),(0,Y.jsxs)(I_,{className:`flex flex-wrap gap-2 sm:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n?(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,disabled:r,onClick:c,children:A5(`suggested.cancelEdits`)}):(0,Y.jsx)(Z,{type:`button`,variant:`outline`,disabled:r,onClick:()=>o(e),children:A5(`suggested.edit`)}),(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,disabled:r,onClick:()=>void u(e),children:A5(`suggested.dismiss`)})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[d?(0,Y.jsx)(Z,{type:`button`,variant:`outline`,disabled:r,onClick:()=>void l(e,!0),children:A5(`suggested.updateExistingDecision`)}):null,(0,Y.jsx)(Z,{type:`button`,disabled:r,onClick:()=>void l(e,!1),children:f})]})]})]})})},Pre=({projectId:e,suggestions:t,title:n,description:r,emptyState:i=null,onSuggestionsChanged:a})=>{let[o,s]=(0,p.useState)(null),[c,l]=(0,p.useState)(null),[u,d]=(0,p.useState)(j5),[f,m]=(0,p.useState)(null);(0,p.useEffect)(()=>{l(e=>e&&!t.some(t=>t.id===e)?null:e),s(e=>e&&!t.some(t=>t.id===e)?null:e)},[t]);let h=o?t.find(e=>e.id===o)??null:null,g=()=>{l(null),d(j5())},_=e=>{s(e.id),l(e.id),d(M5(e))},v=e=>{c&&c!==e.id&&g(),s(e.id)},y=e=>{e||(s(null),c&&g())},b=async(t,n)=>{let r=c===t.id?u:M5(t),i=r.kind===`decision`?{title:r.title.trim(),scope:r.scope.trim()||null,decision:r.content.trim(),rationale:r.rationale.trim()||null,implications:Are(r.implications)}:{title:r.title.trim(),scope:r.scope.trim()||null,instruction:r.content.trim(),rationale:r.rationale.trim()||null,stages:jre(r.stages),priority:r.priority};m(t.id);try{if(n){if(t.kind!==`decision`)throw Error(A5(`messages.onlyDecisionSuggestionsCanUpdate`));let n=t.duplicate_match?.decision;if(!n)throw Error(A5(`messages.noExistingDecision`));await Vn(e,t.id,n.id,i)}else await zn(e,t.id,i);g(),s(null),a?.()}catch(e){Q.error(e instanceof Error?e.message:A5(`messages.saveSuggestionError`),{id:`project-memory-suggestion-error`})}finally{m(null)}},x=async t=>{m(t.id);try{await Bn(e,t.id),c===t.id&&g(),o===t.id&&s(null),a?.()}catch(e){Q.error(e instanceof Error?e.message:A5(`messages.dismissSuggestionError`),{id:`project-memory-suggestion-error`})}finally{m(null)}};return(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[n||r?(0,Y.jsx)(`div`,{className:`flex items-center justify-between gap-3`,children:(0,Y.jsxs)(`div`,{children:[n?(0,Y.jsx)(`h4`,{className:`text-xs font-semibold uppercase tracking-[0.2em] text-muted-foreground`,children:n}):null,r?(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r}):null]})}):null,t.length>0?(0,Y.jsx)(`ul`,{className:`space-y-2`,children:t.map(e=>(0,Y.jsx)(Mre,{suggestion:e,isPending:f===e.id,onReview:v,onAccept:e=>b(e,!1),onDismiss:x},e.id))}):i?(0,Y.jsx)(`div`,{className:`rounded-lg border border-dashed border-border/70 px-3 py-4 text-sm text-muted-foreground`,children:i}):null,(0,Y.jsx)(Nre,{suggestion:h,isOpen:!!h,isEditing:c===h?.id,isPending:f===h?.id,draft:c===h?.id?u:h?M5(h):u,onOpenChange:y,onStartEdit:_,onDraftChange:d,onCancelEdit:g,onAccept:b,onDismiss:x})]})},N5=()=>({selectedDiffPath:`all`,activeReviewTarget:null,editingReviewCommentKey:null,reviewDraftInput:``,reviewComments:[]}),Fre=[{key:`today`,label:`Today`},{key:`yesterday`,label:`Yesterday`},{key:`last_7_days`,label:`Last 7 Days`},{key:`older`,label:`Older`}],Ire=e=>{if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t},P5=e=>e.activity_at??e.last_user_message_at??e.created_at,Lre=(e,t)=>{let n=P5(e),r=P5(t);return n===r?e.created_at===t.created_at?t.id.localeCompare(e.id):t.created_at.localeCompare(e.created_at):r.localeCompare(n)},F5=e=>[...e].sort(Lre),Rre=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),zre=(e,t=new Date)=>{let n=Ire(P5(e));if(!n)return`older`;let r=Rre(t),i=new Date(r);i.setDate(i.getDate()-1);let a=new Date(r);return a.setDate(a.getDate()-6),n>=r?`today`:n>=i?`yesterday`:n>=a?`last_7_days`:`older`},I5=(e,t=new Date)=>{let n=new Map;for(let r of F5(e)){let e=zre(r,t);n.set(e,[...n.get(e)??[],r])}return Fre.flatMap(e=>{let t=n.get(e.key)??[];return t.length===0?[]:[{key:e.key,label:e.label,sessions:t}]})},L5=e=>{let t={...e};return delete t.messages,t.agent_log=null,t.agent_message_id=null,t.previous_agent_log=null,t.previous_agent_message_id=null,t.streaming_response=null,t},R5=e=>e===`claude`?sb.t(`chatView.tool.claude`):sb.t(`chatView.tool.opencode`),z5=e=>new Map(e.map(e=>[e.id,e.label])),B5=({availableModelsById:e,model:t})=>t?e.get(t)??t:null,V5=({modelLabel:e,tool:t})=>e??R5(t),H5=()=>sb.t(`chatView.user.you`),U5=`archon.chat-draft`,W5=({projectId:e,tool:t,chatSessionId:n})=>n?`${U5}:${e}:session:${n}`:`${U5}:${e}:draft:${t}`,G5=e=>{if(!e)return``;try{return window.localStorage.getItem(e)??``}catch{return``}},K5=({storageKey:e,value:t})=>{if(e)try{if(t){window.localStorage.setItem(e,t);return}window.localStorage.removeItem(e)}catch{}},q5=(e,t)=>sb.t(`chatView.${e}`,t),Bre=1500,Vre=`archon.chat-run-config`,Hre=`archon.chat-changes-panel-layout`,Ure=`archon.chat-session-list-layout`,J5=512,Y5=360,Wre=.6,Gre=6,X5=`/`,Kre=`Slash`,qre=`NumpadDivide`,Jre=600,Z5=4,Q5=(e,t)=>{let n=Number.isFinite(e)?Math.round(e):J5;if(!Number.isFinite(t))return Math.max(Y5,n);let r=Math.max(Y5,Math.round(t*Wre));return Math.max(Y5,Math.min(r,n))},Yre=e=>q5(e===`plan`?`mode.plan`:`mode.build`),$5=e=>q5(e===`plan`?`placeholders.plan`:`placeholders.build`),e7=e=>q5(`pendingMemorySuggestions`,{count:e}),Xre=e=>!e.defaultPrevented&&!e.altKey&&!e.repeat&&(e.ctrlKey||e.metaKey)&&(e.key===X5||e.code===Kre||e.code===qre),t7=({modifierLabel:e,keys:t,ariaHidden:n=!1})=>(0,Y.jsxs)(`span`,{"aria-hidden":n,className:`flex items-center gap-0.5 text-[10px] leading-none`,children:[(0,Y.jsx)($M,{"aria-hidden":n,children:e}),t.map(e=>(0,Y.jsxs)(`span`,{className:`contents`,children:[(0,Y.jsx)(`span`,{children:`+`}),(0,Y.jsx)($M,{"aria-hidden":n,children:e})]},e))]}),Zre=({label:e,modifierLabel:t,keys:n})=>(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{children:e}),(0,Y.jsx)(t7,{modifierLabel:t,keys:n,ariaHidden:!0})]}),n7=({projectId:e,tool:t})=>`${Vre}:${e}:${t}`,r7=e=>`${Hre}:${e}`,i7=e=>`${Ure}:${e}`,a7=e=>{if(!e)return{isOpen:!0,width:J5};try{let t=window.localStorage.getItem(r7(e));if(!t)return{isOpen:!0,width:J5};let n=JSON.parse(t),r=typeof n.width==`number`&&Number.isFinite(n.width)?Math.max(Y5,Math.round(n.width)):J5;return{isOpen:n.isOpen!==!1,width:r}}catch{return{isOpen:!0,width:J5}}},o7=e=>{if(!e)return{isOpen:!0};try{let t=window.localStorage.getItem(i7(e));return t?{isOpen:JSON.parse(t).isOpen!==!1}:{isOpen:!0}}catch{return{isOpen:!0}}},Qre=({projectId:e,isOpen:t,width:n})=>{if(e)try{window.localStorage.setItem(r7(e),JSON.stringify({isOpen:t,width:n}))}catch{}},$re=({projectId:e,isOpen:t})=>{if(e)try{window.localStorage.setItem(i7(e),JSON.stringify({isOpen:t}))}catch{}},s7=({projectId:e,tool:t})=>{if(!e||t!==`opencode`)return null;try{let n=window.localStorage.getItem(n7({projectId:e,tool:t}));if(!n)return null;let r=JSON.parse(n),i=(typeof r.model==`string`?r.model.trim():``)||null,a=r.mode===`plan`||r.mode===`build`?r.mode:null;return!i&&!a?null:{model:i,variant:i&&typeof r.variant==`string`&&r.variant.trim()||null,mode:a}}catch{return null}},c7=({projectId:e,tool:t,model:n,variant:r,mode:i})=>{if(!(!e||t!==`opencode`||!n&&!i))try{window.localStorage.setItem(n7({projectId:e,tool:t}),JSON.stringify({model:n,variant:n?r:null,mode:i}))}catch{}},l7=({projectId:e,tool:t})=>s7({projectId:e,tool:t})?.mode??`plan`,u7=({activeProjectId:e,helperModel:t,helperVariant:n,activeTool:r,availableModels:i})=>{let a=s7({projectId:e,tool:r}),o=new Set(i.map(e=>e.id)),s=e=>e?o.size===0?!0:o.has(e):!1,c=t??``,l=a?.model??``,u=s(l)?l:s(c)?c:``,d=u===l?a?.variant??null:u&&u===c?n??null:null,f=i.find(e=>e.id===u)??null;return{model:u,variant:f?f.variants.includes(d??``)?d??``:``:u?d??``:``,mode:a?.mode??`plan`}},d7=e=>e&&e.replace(/\s+/g,` `).trim()||null,eie=e=>{let t=d7(e.first_user_message_preview);if(t)return t;let n=e.messages?.find(e=>e.role===`user`)?.content;return d7(n)},tie=({chatSessionId:e,instruction:t,attachments:n,createdAt:r})=>({id:`optimistic:${e}:${r}`,chat_session_id:e,role:`user`,kind:`prompt`,content:t,attachments:n,created_at:r}),nie=({session:e,instruction:t,attachments:n,createdAt:r})=>({...e,messages:[...e.messages??[],tie({chatSessionId:e.id,instruction:t,attachments:n,createdAt:r})],activity_at:r,last_user_message_at:r,updated_at:r}),rie=e=>!!(e.first_user_message_preview||e.last_user_message_at||e.messages?.some(e=>e.role===`user`)),f7=({activeProject:e,activeProjectBranchState:t,session:n})=>!e||n.target_available===!1?!1:n.target_kind===`bundle`?e.active_target_kind===`bundle`&&!!n.target_bundle_id&&e.active_target_bundle_id===n.target_bundle_id:e.active_target_kind===`bundle`?!1:!t||!n.target_branch_snapshot?!0:t?.status!==`ready`||!t.branch?!1:t.branch===n.target_branch_snapshot,iie=({session:e,activeProject:t,activeProjectBranchState:n})=>e.target_kind===`bundle`?e.target_label_snapshot||q5(`targets.bundleFallback`):!t||t.active_target_kind===`bundle`||n?.status!==`ready`||!n.branch||!e.target_branch_snapshot||n.branch===e.target_branch_snapshot?null:q5(`targets.repoRootWithBranch`,{branch:e.target_branch_snapshot}),aie=e=>e.target_kind===`bundle`?e.target_label_snapshot||q5(`targets.bundleFallback`):e.target_branch_snapshot?q5(`targets.repoRootWithBranch`,{branch:e.target_branch_snapshot}):q5(`targets.repoRoot`),oie=({activeProject:e,activeProjectBranchState:t})=>e?e.active_target_kind===`bundle`?q5(`targets.selectedBundleTarget`):t?.branch?q5(`targets.repoRootWithBranch`,{branch:t.branch}):q5(`targets.repoRoot`):q5(`targets.currentTarget`),p7=e=>e.agent_status===`running`?q5(`sidebar.deleteDisabledReason`):null,sie=({proposals:e,isApplying:t,onApply:n})=>e.status===`applied`?(0,Y.jsxs)(`div`,{className:`w-full rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-3 text-sm`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-foreground`,children:q5(`ticketProposal.createdTitle`)}),(0,Y.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:q5(`ticketProposal.createdDescription`,{count:e.created_tickets.length})}),e.created_tickets.length>0?(0,Y.jsx)(`ul`,{className:`mt-3 space-y-1 text-foreground`,children:e.created_tickets.map(e=>(0,Y.jsx)(`li`,{children:e.title},e.ticket_id))}):null]}):(0,Y.jsxs)(`div`,{className:`w-full rounded-md border border-sky-500/30 bg-sky-500/10 px-3 py-3 text-sm`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-foreground`,children:q5(`ticketProposal.proposedTitle`)}),(0,Y.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:q5(`ticketProposal.proposedDescription`)}),(0,Y.jsx)(`ul`,{className:`mt-3 space-y-3`,children:e.tickets.map(e=>(0,Y.jsxs)(`li`,{className:`rounded border border-border/60 bg-background/80 px-3 py-2`,children:[(0,Y.jsx)(`div`,{className:`font-medium text-foreground`,children:e.title}),(0,Y.jsx)(`div`,{className:`mt-1 whitespace-pre-wrap text-muted-foreground`,children:e.description})]},e.key))}),e.dependencies.length>0?(0,Y.jsx)(`div`,{className:`mt-3 text-muted-foreground`,children:q5(`ticketProposal.dependenciesLabel`,{value:e.dependencies.map(e=>`${e.blocker_key} -> ${e.dependent_key}`).join(`, `)})}):null,(0,Y.jsx)(`div`,{className:`mt-3`,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,onClick:n,disabled:t,children:q5(t?`ticketProposal.creating`:`ticketProposal.create`)})})]}),cie=({activeProjectId:e,activeProject:t,activeProjectBranchState:n=null,activeTool:r,initialChatSessionId:i=null,onInitialChatNavigationConsumed:a,initialSpecDraft:o=null,onInitialSpecDraftConsumed:s,onViewSourceSpec:c,onRestoreSessionTarget:l,onReviewCapabilityChange:u,isExternallyResizing:d=!1,showChangesPanel:f=!0})=>{let m=I8(),[h,g]=(0,p.useState)([]),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(null),[x,S]=(0,p.useState)(null),[C,w]=(0,p.useState)(!1),[T,E]=(0,p.useState)(null),[D,O]=(0,p.useState)(()=>l7({projectId:e,tool:r})),[k,A]=(0,p.useState)({}),[j,M]=(0,p.useState)({}),[N,P]=(0,p.useState)({}),[F,I]=(0,p.useState)([]),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(``),[V,H]=(0,p.useState)(``),[ee,U]=(0,p.useState)([]),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(!1),[ae,oe]=(0,p.useState)(!1),[W,se]=(0,p.useState)(!1),[ce,le]=(0,p.useState)(!1),[ue,de]=(0,p.useState)(null),[fe,pe]=(0,p.useState)([]),[me,he]=(0,p.useState)(()=>new Set),[ge,_e]=(0,p.useState)(!1),[ve,ye]=(0,p.useState)(()=>new Set),[G,be]=(0,p.useState)(!1),[xe,Se]=(0,p.useState)(!1),[Ce,we]=(0,p.useState)(null),[Te,Ee]=(0,p.useState)([]),[De,Oe]=(0,p.useState)(!1),[ke,Ae]=(0,p.useState)(!1),[je,Me]=(0,p.useState)(0),[Ne,Pe]=(0,p.useState)(N5),[Fe,Ie]=(0,p.useState)(()=>o7(e).isOpen),[Le,Re]=(0,p.useState)(()=>a7(e).isOpen),[ze,Be]=(0,p.useState)(!1),[Ve,K]=(0,p.useState)(!1),[He,Ue]=(0,p.useState)(()=>a7(e).width),[We,Ge]=(0,p.useState)(0),[Ke,qe]=(0,p.useState)(null),[Je,q]=(0,p.useState)(()=>new Set),Xe=(0,p.useRef)({model:``,variant:``,skills:[],showModelSelector:!1}),Ze=(0,p.useRef)(!1),J=(0,p.useRef)(T),Qe=(0,p.useRef)(null),$e=(0,p.useRef)(null),et=(0,p.useRef)(0),tt=(0,p.useRef)(0),nt=(0,p.useRef)(null),rt=(0,p.useRef)(null),it=(0,p.useRef)(null),at=(0,p.useRef)(null),ot=(0,p.useRef)(null),st=(0,p.useRef)(null),ct=(0,p.useRef)(!1),lt=(0,p.useRef)(!1),ut=(0,p.useRef)(0),dt=(0,p.useRef)(J5),ft=(0,p.useRef)(J5),pt=(0,p.useRef)(!1),mt=(0,p.useRef)(0),ht=(0,p.useRef)({id:null,status:null}),gt=(0,p.useRef)(new Map),_t=(0,p.useRef)({}),vt=(0,p.useRef)({}),yt=(0,p.useRef)(new Set),bt=(0,p.useRef)(!1),xt=e?W5({projectId:e,tool:C?r:y?.tool??r,chatSessionId:C?null:_}):null,St=xt?k[xt]??``:``,Ct=C?r:y?.tool??r,wt=y?j[y.id]??[]:[],Tt=(y?N[y.id]??0:0)>0;(0,p.useEffect)(()=>{Ze.current=C},[C]),(0,p.useEffect)(()=>{_t.current=k},[k]),(0,p.useEffect)(()=>{vt.current=j},[j]),(0,p.useEffect)(()=>{if(!(!i||h.length===0)&&h.some(e=>e.id===i)){if(_===i){a?.();return}S(null),de(null),v(i),w(!1),pt.current=!0,a?.()}},[i,h,_,a]),(0,p.useEffect)(()=>{if(!xt||yt.current.has(xt))return;yt.current.add(xt);let e=G5(xt);e&&A(t=>Object.prototype.hasOwnProperty.call(t,xt)?t:{...t,[xt]:e})},[xt]),(0,p.useEffect)(()=>{!xt||!Object.prototype.hasOwnProperty.call(k,xt)||K5({storageKey:xt,value:k[xt]??``})},[xt,k]),(0,p.useEffect)(()=>{if(!C){Qe.current=null;return}let e=Qe.current;!e||!xt||St||A(t=>t[xt]?t:{...t,[xt]:e})},[C,xt,St]),(0,p.useEffect)(()=>{$e.current=_},[_]),(0,p.useEffect)(()=>{J.current=T},[T]);let Et=(0,p.useCallback)(()=>{tt.current+=1},[]),Dt=(0,p.useCallback)(e=>{Et(),b(e)},[Et]);(0,p.useEffect)(()=>{if(!bt.current){bt.current=!0;return}let t=a7(e),n=o7(e);Ze.current=!1,pt.current=!1,yt.current=new Set,v(null),Dt(null),w(!1),A({}),M({}),P({}),de(null),pe([]),he(new Set),_e(!1),ye(new Set),qe(null),Ee([]),Ae(!1),ie(!1),Pe(N5()),q(new Set),gt.current=new Map,ft.current=t.width,Ie(n.isOpen),Ue(t.width),Re(t.isOpen)},[e,Dt]),(0,p.useEffect)(()=>{ze||(ft.current=He,it.current&&(it.current.style.setProperty(`--chat-changes-panel-width`,`${He}px`),it.current.setAttribute(`data-desktop-width`,String(He))))},[He,ze]),(0,p.useEffect)(()=>{if(!f||!nt.current)return;let e=nt.current.getBoundingClientRect().width;if(e<=0)return;let t=Q5(He,e);t!==He&&(ft.current=t,Ue(t))},[He,f]),(0,p.useEffect)(()=>{$re({projectId:e,isOpen:Fe})},[e,Fe]),(0,p.useEffect)(()=>{f&&Qre({projectId:e,isOpen:Le,width:He})},[e,He,Le,f]),(0,p.useEffect)(()=>{Ae(!1)},[_,C]);let Ot=(0,p.useCallback)(e=>{let t=L5(e);g(e=>{let n=e.findIndex(e=>e.id===t.id);if(n===-1)return F5([...e,t]);let r=[...e];return r[n]=t,F5(r)})},[]),kt=(0,p.useCallback)(t=>{let n=Array.from(new Set(t));if(n.length===0)return;let i=new Set(n),a=$e.current,o=e?n.map(t=>W5({projectId:e,tool:r,chatSessionId:t})):[];A(e=>{let t=o.filter(t=>Object.prototype.hasOwnProperty.call(e,t));if(t.length===0)return e;let n={...e};for(let e of t)delete n[e];return n}),M(e=>{let t={...e},r=!1;for(let e of n)Object.prototype.hasOwnProperty.call(t,e)&&(delete t[e],r=!0);return r?t:e}),P(e=>{let t={...e},r=!1;for(let e of n)Object.prototype.hasOwnProperty.call(t,e)&&(delete t[e],r=!0);return r?t:e});for(let e of o)K5({storageKey:e,value:``});g(e=>{let t=e.filter(e=>!i.has(e.id));if(a&&i.has(a)){let e=t[0]??null;v(e?.id??null),Dt(null),w(e===null),Ee([]),Oe(!1),Ae(!1)}return t}),q(e=>{let t=new Set(e),r=!1;for(let e of n)t.delete(e)&&(r=!0);return r?t:e}),qe(e=>e?.sessionId&&i.has(e.sessionId)?null:e),de(e=>e&&i.has(e)?null:e),pe(e=>e.filter(e=>!i.has(e))),he(e=>{let t=new Set(e),r=!1;for(let e of n)t.delete(e)&&(r=!0);return r?t:e}),ye(e=>{let t=new Set(e),r=!1;for(let e of n)t.delete(e)&&(r=!0);return r?t:e})},[e,r,Dt]),At=(0,p.useCallback)(e=>{kt([e])},[kt]),jt=(0,p.useCallback)((e,t)=>{e&&A(n=>n[e]===t?n:{...n,[e]:t})},[]),Mt=(0,p.useCallback)(e=>{e&&(A(t=>t[e]===``?t:{...t,[e]:``}),K5({storageKey:e,value:``}))},[]),Nt=(0,p.useCallback)((e,t)=>{M(n=>{if(t.length===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:t}})},[]),Pt=(0,p.useCallback)(e=>{M(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n}),P(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n})},[]),Ft=(0,p.useCallback)((e,t)=>{P(n=>{let r=Math.max(0,(n[e]??0)+t);if(r===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:r}})},[]),It=(0,p.useCallback)(({fromStorageKey:e,toStorageKey:t})=>{if(!e||!t||e===t)return;let n=Object.prototype.hasOwnProperty.call(_t.current,e)?_t.current[e]??``:G5(e);A(r=>{let i={...r,[t]:n};return delete i[e],i}),K5({storageKey:t,value:n}),K5({storageKey:e,value:``})},[]),Lt=(0,p.useCallback)((e,t)=>{g(n=>{let r=n.findIndex(t=>t.id===e);if(r===-1)return n;let i=n[r];if(i.pending_memory_suggestion_count===t)return n;let a=[...n];return a[r]={...i,pending_memory_suggestion_count:t},a}),b(n=>!n||n.id!==e||n.pending_memory_suggestion_count===t?n:(tt.current+=1,{...n,pending_memory_suggestion_count:t}))},[]),Rt=(0,p.useCallback)(async r=>{if(!e){g([]),v(null),Dt(null),w(!1),ie(!1);return}ne(!0);try{let i=await Fk(e,r);if(r?.aborted)return;let a=F5(i.map(L5)),o=a[0]??null,s=t?.active_target_kind===`bundle`||n?.status!==`loading`;g(a),v(e=>Ze.current?null:e&&a.some(t=>t.id===e)?e:e?a[0]?.id??null:pt.current?null:o?s?(pt.current=!0,f7({activeProject:t,activeProjectBranchState:n,session:o})?o.id:null):null:(pt.current=!0,null)),a.length===0&&w(!0)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:q5(`errors.loadSessions`))}finally{r?.aborted||(ne(!1),ie(!0))}},[t,n,e,Dt]),zt=(0,p.useCallback)(async(t,n)=>{if(!e){Dt(null);return}oe(!0);let r=et.current+1;et.current=r;let i=tt.current;try{let a=await Lk(e,t,n);if(n?.aborted)return;let o=tt.current!==i,s=et.current===r,c=$e.current===t&&!Ze.current;if(!s||o||!c)return;Dt(a),Ot(a)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:q5(`errors.loadSession`))}finally{n?.aborted||oe(!1)}},[e,Dt,Ot]),Bt=(0,p.useCallback)(async(n,r)=>{if(!e||!t?.memory_enabled){Ee([]),Oe(!1);return}Oe(!0);try{let t=await Rn(e,null,r,n);if(r?.aborted)return;Ee(t.suggestions),Lt(n,t.suggestions.length)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:q5(`errors.loadMemorySuggestions`))}finally{r?.aborted||Oe(!1)}},[t?.memory_enabled,e,Lt]),Vt=(0,p.useCallback)(()=>{Ee(e=>{let t=e.length>0?e.slice(0,-1):e;return _&&Lt(_,t.length),t}),Me(e=>e+1),Rt(),_&&zt(_)},[_,zt,Rt,Lt]);(0,p.useEffect)(()=>{let e=new AbortController;return Rt(e.signal),()=>{e.abort()}},[Rt]),(0,p.useEffect)(()=>{if(Ze.current||C||_||pt.current||h.length===0||t?.active_target_kind!==`bundle`&&n?.status===`loading`)return;pt.current=!0;let e=h[0]??null;e&&f7({activeProject:t,activeProjectBranchState:n,session:e})&&v(e.id)},[t,n,_,C,h]),(0,p.useEffect)(()=>{if(Ct!==`opencode`){I([]),R([]),Se(!1);return}let t=new AbortController;return(async()=>{Se(!0);try{let[n,r]=await Promise.all([Wn(Ct,t.signal),eN(Ct,t.signal,e)]);I(n),R(r)}catch(e){Ye(e)||(I(e=>e),R(e=>e))}finally{t.signal.aborted||Se(!1)}})(),()=>{t.abort()}},[e,Ct]),(0,p.useEffect)(()=>{if(C||!_){Dt(null);return}if(y?.id===_)return;Dt(null);let e=new AbortController;return zt(_,e.signal),()=>{e.abort()}},[y,_,C,zt,Dt]),(0,p.useEffect)(()=>{if(!t?.memory_enabled||C||!_){Ee([]),Oe(!1);return}let e=new AbortController;return Bt(_,e.signal),()=>{e.abort()}},[t?.memory_enabled,_,C,Bt,je]),(0,p.useEffect)(()=>{!ke||De||Te.length>0||Ae(!1)},[De,ke,Te.length]),(0,p.useEffect)(()=>{if(!_||y?.agent_status!==`running`)return;let e=new AbortController,t=window.setInterval(()=>{Promise.all([Rt(e.signal),zt(_,e.signal)])},Bre);return()=>{e.abort(),window.clearInterval(t)}},[y?.agent_status,_,zt,Rt]),(0,p.useEffect)(()=>{if(!e)return;let t=t=>{!t||t.project_id!==e||(t.id===_&&Dt(t),rie(t)&&Ot(t))},n=t=>{!t||t.project_id!==e||At(t.id)};return m.on(`chat-session:created`,t),m.on(`chat-session:updated`,t),m.on(`chat-session:deleted`,n),()=>{m.off(`chat-session:created`,t),m.off(`chat-session:updated`,t),m.off(`chat-session:deleted`,n)}},[e,_,At,Dt,m,Ot]),(0,p.useEffect)(()=>{C&&(J.current||O(l7({projectId:e,tool:r})))},[e,r,C]),(0,p.useEffect)(()=>{if(Ct!==`opencode`){B(``),H(``),U([]);return}if(C){let n=u7({activeProjectId:e,helperModel:t?.helper_model??null,helperVariant:t?.helper_variant??null,activeTool:Ct,availableModels:F});B(n.model),H(n.variant),U([]);return}B(y?.model??t?.helper_model??``),H(y?.variant??t?.helper_variant??``)},[e,t?.helper_model,t?.helper_variant,y?.id,y?.model,y?.variant,F,Ct,C]),(0,p.useEffect)(()=>{if(Ct!==`opencode`){U([]);return}if(C){U([]);return}U(y?.skills??[])},[y?.skills,Ct,C]),(0,p.useEffect)(()=>{let e=F.find(e=>e.id===z)??null;H(t=>e?e.variants.includes(t)?t:``:t)},[F,z]),(0,p.useEffect)(()=>{if(Ct!==`opencode`||!C||!z||V)return;let n=u7({activeProjectId:e,helperModel:t?.helper_model??null,helperVariant:t?.helper_variant??null,activeTool:Ct,availableModels:F});n.model===z&&n.variant&&H(n.variant)},[e,t?.helper_model,t?.helper_variant,Ct,F,C,z,V]),(0,p.useEffect)(()=>{if(!ue)return;let e=y?.id===ue?y:h.find(e=>e.id===ue)??null;(!e||e.agent_status!==`running`)&&de(null)},[y,ue,h]),(0,p.useEffect)(()=>{let e=ht.current,n=y?.id??null,r=y?.agent_status??null;e.id===n&&e.status===`running`&&r===`done`&&t?.memory_enabled&&n&&Me(e=>e+1),ht.current={id:n,status:r}},[t?.memory_enabled,e,y?.agent_status,y?.id,y?.title]),(0,p.useEffect)(()=>{_&&q(e=>{if(!e.has(_))return e;let t=new Set(e);return t.delete(_),t})},[_]),(0,p.useEffect)(()=>{Ke&&Ke.sessionId!==_&&qe(null)},[_,Ke]),(0,p.useEffect)(()=>{let e=gt.current,t=new Map,n=[];for(let r of h){let i=e.get(r.id)??null,a=r.agent_status??null;i===`running`&&a===`done`&&r.id!==_&&n.push(r),t.set(r.id,a)}gt.current=t,q(e=>{let t=new Set(e),r=!1,i=new Set(h.map(e=>e.id));for(let e of t)i.has(e)||(t.delete(e),r=!0);for(let e of h){let i=e.agent_status??null,a=n.some(t=>t.id===e.id);if((e.id===_||i!==`done`)&&t.delete(e.id)){r=!0;continue}a&&!t.has(e.id)&&(t.add(e.id),r=!0)}return r?t:e})},[e,_,h]);let Ht=(0,p.useMemo)(()=>z5(F),[F]),Ut=(0,p.useMemo)(()=>I5(h),[h]),Wt=(0,p.useMemo)(()=>fe.length===0?[]:fe.flatMap(e=>{let t=h.find(t=>t.id===e)??(y?.id===e?y:null);return t?[t]:[]}),[y,fe,h]),Gt=Wt.length===1?Wt[0]?.title??null:null;(0,p.useEffect)(()=>{fe.length>0&&Wt.length!==fe.length&&pe(Wt.map(e=>e.id))},[fe,Wt]),(0,p.useEffect)(()=>{let e=new Set(h.filter(e=>!p7(e)&&!me.has(e.id)).map(e=>e.id));ye(t=>{let n=new Set(Array.from(t).filter(t=>e.has(t)));return n.size===t.size?t:n})},[me,h]),(0,p.useEffect)(()=>{!ge||Fe||(_e(!1),ye(new Set))},[Fe,ge]);let Kt=(0,p.useMemo)(()=>y?V5({modelLabel:B5({availableModelsById:Ht,model:y.model}),tool:y.tool}):null,[y,Ht]),qt=(0,p.useMemo)(()=>y?(y.messages??[]).map(e=>({id:e.id,role:e.role,kind:e.kind,content:e.content,attachments:e.attachments??[],ticket_proposals:e.ticket_proposals??null,created_at:e.created_at,displayTitle:e.role===`assistant`?Kt??R5(y.tool):H5()})):[],[y,Kt]),Jt=y?.id&&y.agent_status===`running`&&Ke?.sessionId===y.id?Ke.turnKey:null,Yt=Ct===`opencode`&&F.length>0,Xt=Ct===`opencode`&&!Yt&&xe;(0,p.useEffect)(()=>{Xe.current={model:z,variant:V,skills:ee,showModelSelector:Yt}},[z,ee,V,Yt]);let Zt=(0,p.useMemo)(()=>F.find(e=>e.id===z)??null,[F,z]),Qt=C?D:y?.mode??`build`,$t=C?q5(`composer.newChatTitle`):y?.title??q5(`composer.chatTitle`),en=C?r:y?.tool??r,tn=(0,p.useMemo)(()=>SG(),[]),nn=Yt?z||null:y?.model??null,rn=en===`opencode`,an=B5({availableModelsById:Ht,model:nn}),on=C?`draft:${e??`none`}:${r}`:y?.id,sn=(0,p.useCallback)(()=>{Ze.current=!0,w(!0),O(l7({projectId:e,tool:r})),S(null),v(null),Dt(null),de(null),_e(!1),ye(new Set),qe(null),E(null),Qe.current=null},[e,r,Dt]);(0,p.useEffect)(()=>{o&&(sn(),O(`build`),E({specSessionId:o.specSessionId,specSnapshotId:o.specSnapshotId}),Qe.current=o.text,s?.())},[o,sn,s]);let cn=(0,p.useCallback)((e,t=null)=>{Ze.current=!1,w(!1),S(null),v(e),Dt(t),E(null)},[Dt]),ln=(0,p.useCallback)(async()=>{if(!(!y||!l)){S(y.id);try{await l(y)}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.restoreTarget`))}finally{S(e=>e===y.id?null:e)}}},[y,l]),un=!!(y&&y.target_available!==!1&&!C&&!f7({activeProject:t,activeProjectBranchState:n,session:y})),dn=un&&y?q5(`review.mismatchReason`,{sessionTarget:aie(y),currentTarget:oie({activeProject:t,activeProjectBranchState:n})}):null,fn=un&&x===null,pn=(0,p.useCallback)(async r=>{S(r.id);let i=r;if(e)try{let t=await Lk(e,r.id);i=t,Ot(t)}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.loadSession`)),S(e=>e===r.id?null:e);return}if(i.target_available===!1){cn(i.id,i);return}if(!f7({activeProject:t,activeProjectBranchState:n,session:i})&&l)try{if(!await l(i)){S(e=>e===i.id?null:e);return}}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.restoreTarget`)),S(e=>e===i.id?null:e);return}cn(i.id,i)},[t,n,e,l,cn,Ot]),mn=(0,p.useCallback)(()=>{Ge(e=>e+1)},[]),hn=(0,p.useCallback)(async t=>{if(C){let n=Xe.current;O(t),c7({projectId:e,tool:r,model:n.showModelSelector&&n.model||null,variant:n.showModelSelector&&n.model&&n.variant||null,mode:t}),mn();return}if(!(!e||!y||y.mode===t||G)){be(!0);try{let n=await Rk(e,y.id,{mode:t});c7({projectId:e,tool:n.tool,model:n.model,variant:n.variant,mode:n.mode}),Dt(n),Ot(n),mn()}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.updateMode`))}finally{be(!1)}}},[e,y,r,mn,C,G,Dt,Ot]),gn=(0,p.useCallback)(async({instruction:t,attachments:n,targetSession:r})=>{if(!e)return null;let i=Xe.current;mt.current+=1;let a={sessionId:r.id,turnKey:`${r.id}:${mt.current}`};qe(a);try{let a=await zk(e,r.id,{instruction:t,...n.length>0?{attachment_ids:n.map(e=>e.id)}:{},tool:r.tool,model:i.showModelSelector&&i.model||null,variant:i.showModelSelector&&i.model&&i.variant||null,skills:i.showModelSelector?i.skills:[]});return c7({projectId:e,tool:a.tool,model:a.model,variant:a.variant,mode:a.mode}),Ze.current=!1,Dt(a),v(a.id),w(!1),Ot(a),a}catch(e){throw qe(e=>e?.turnKey===a.turnKey?null:e),e}},[e,Dt,Ot]),_n=(0,p.useCallback)(async({fromStorageKey:t})=>{if(!e)return null;let n=Xe.current,i=J.current,a=await Ik(e,{mode:Qt,tool:r,model:n.showModelSelector&&n.model||null,variant:n.showModelSelector&&n.model&&n.variant||null,skills:n.showModelSelector?n.skills:[],originSpecSessionId:i?.specSessionId??null,originSpecSnapshotId:i?.specSnapshotId??null});Ze.current=!1,w(!1),v(a.id),Dt(a),E(null);let o=W5({projectId:e,tool:a.tool,chatSessionId:a.id});return It({fromStorageKey:t,toStorageKey:o}),{session:a,storageKey:o}},[e,r,Qt,It,Dt]),vn=(0,p.useCallback)(async t=>{if(!e||ce||W||Tt||y?.agent_status===`running`||y?.target_available===!1||fn)return!1;let n=t.trim(),r=y?vt.current[y.id]??[]:[];if(!n&&r.length===0)return!1;le(!0);let i=null,a=y,o=e&&y?W5({projectId:e,tool:y.tool,chatSessionId:y.id}):null,s=r;try{let t=y;if(!t){se(!0);let e=await _n({fromStorageKey:xt});i=e?.session??null,t=i,o=e?.storageKey??null,s=i?vt.current[i.id]??[]:[]}if(!t)return!1;Mt(o??xt);let r=nie({session:t,instruction:n,attachments:s,createdAt:new Date().toISOString()});Dt(r),v(r.id),Ot(r);let a=await gn({instruction:n,attachments:s,targetSession:t});return Mt(a&&e?W5({projectId:e,tool:a.tool,chatSessionId:a.id}):o),a&&Pt(a.id),!0}catch(e){throw jt(o??xt,n),i?(Dt(i),v(i.id),w(!1),Ot(i)):a&&(Dt(a),Ot(a)),e}finally{se(!1),le(!1)}},[e,y,Pt,Mt,_n,xt,W,ce,Tt,Dt,gn,jt,fn,Ot]),yn=(0,p.useCallback)(e=>{Ze.current=!0,w(!0),O(e),S(null),v(null),Dt(null),de(null),qe(null)},[Dt]),bn=(0,p.useCallback)(async t=>{if(!e||t.length===0||Ct!==`opencode`)return;let n=t.slice(0,Z5);if(n.length===0)return;let r=null,i=y;try{if(i||=(se(!0),r=await _n({fromStorageKey:xt}),r?.session??null),!i)return;if((vt.current[i.id]??[]).length+n.length>Z5){Q.error(`You can attach up to 4 images per turn.`);return}Ft(i.id,1);let t=await Bk(e,i.id,n),a=vt.current[i.id]??[];Nt(i.id,[...a,...t.attachments])}catch(t){if(r&&!St.trim())try{await Uk(e,r.session.id),At(r.session.id),yn(r.session.mode)}catch{}Q.error(t instanceof Error?t.message:q5(`errors.uploadAttachments`))}finally{i&&Ft(i.id,-1),se(!1)}},[e,y,_n,St,xt,Ft,yn,At,Nt,Ct]),xn=(0,p.useCallback)(async t=>{if(!e||!y)return;let n=(vt.current[y.id]??[]).filter(e=>e.id!==t);try{await Vk(e,y.id,t),Nt(y.id,n),n.length===0&&!St.trim()&&(y.messages?.length??0)===0&&(await Uk(e,y.id),At(y.id),yn(y.mode))}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.removeAttachment`))}},[e,y,St,yn,At,Nt]),Sn=(0,p.useCallback)(e=>{if(Ct!==`opencode`)return;let t=Array.from(e.clipboardData.items).filter(e=>e.kind===`file`&&e.type.startsWith(`image/`)).map(e=>e.getAsFile()).filter(e=>e!==null);t.length!==0&&(e.preventDefault(),bn(t))},[Ct,bn]),Cn=(0,p.useCallback)(async e=>{await vn(e)},[vn]),wn=!!(e&&(C||y&&y.target_available!==!1&&!fn)),Tn=y?.agent_status===`running`,En=y?.agent_status===`stopped`,Dn=Tn&&ue===y?.id,On=wn&&!Tn&&!ce&&!W&&!Tt,kn=wn?y?.target_available===!1?y.target_unavailable_reason??q5(`review.unavailableTarget`):fn?dn??q5(`review.restoreTargetFallback`):Tn?q5(`review.waitTurn`):Tt?q5(`review.waitUpload`):W||ce?q5(`review.waitPrompt`):null:q5(`review.missingTarget`),An=(0,p.useCallback)(async()=>{if(!(!e||!y||y.agent_status!==`running`||Dn)){de(y.id);try{await Hk(e,y.id)}catch(e){de(e=>e===y.id?null:e),Q.error(e instanceof Error?e.message:q5(`errors.interruptResponse`))}}},[e,y,Dn]),jn=(0,p.useCallback)(async()=>{if(!e||fe.length===0||me.size>0)return;let t=Array.from(new Set(fe)),n=ge||t.length>1;he(new Set(t));let r=await Promise.allSettled(t.map(async t=>(await Uk(e,t),t))),i=[],a=[];for(let[e,n]of r.entries()){if(n.status===`fulfilled`){i.push(n.value);continue}a.push({sessionId:t[e]??``,message:n.reason instanceof Error?n.reason.message:null})}if(i.length>0&&kt(i),he(new Set),a.length===0){pe([]),n&&(_e(!1),ye(new Set),Q.success(q5(`toasts.deleteSelectedSuccess`,{count:i.length})));return}let o=a.map(e=>e.sessionId);if(pe(o),n&&ye(new Set(o)),i.length>0){Q.error(q5(`toasts.deleteSelectedPartial`,{count:i.length,deletedCount:i.length,failedCount:a.length}));return}Q.error(a[0]?.message??q5(`errors.deleteSession`))},[e,fe,me,ge,kt]),Mn=(0,p.useMemo)(()=>h.some(e=>!p7(e)),[h]),Nn=(0,p.useCallback)((e,t)=>e.agent_status===`running`?`running`:e.agent_status===`stopped`?`interrupted`:!t&&Je.has(e.id)?`finished`:null,[Je]),Pn=(0,p.useCallback)((e,n)=>[e.title,Yre(e.mode),R5(e.tool),t?.memory_enabled&&e.pending_memory_suggestion_count>0?e7(e.pending_memory_suggestion_count):null,n===`running`?q5(`sidebar.running`):n===`interrupted`?q5(`sidebar.interrupted`):n===`finished`?q5(`sidebar.finished`):null].filter(Boolean).join(` `),[t]),Fn=(0,p.useCallback)(({session:e,isActive:r,activityState:i})=>{let a=eie(e),o=iie({session:e,activeProject:t,activeProjectBranchState:n}),s=i===`interrupted`?null:i;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o?(0,Y.jsx)(`div`,{className:`mb-1 truncate text-[10px] font-medium uppercase tracking-[0.12em] text-muted-foreground/75`,children:o}):null,(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] font-medium leading-5`,children:e.title}),t?.memory_enabled&&e.pending_memory_suggestion_count>0?(0,Y.jsx)(O5,{tone:r?`default`:`muted`,className:`shrink-0`,"aria-label":e7(e.pending_memory_suggestion_count),title:e7(e.pending_memory_suggestion_count),children:e.pending_memory_suggestion_count}):null]}),a?(0,Y.jsx)(`div`,{className:X(`mt-0.5 line-clamp-1 text-xs leading-4`,r?`text-foreground/70`:`text-muted-foreground`),children:a}):null,e.target_available===!1?(0,Y.jsx)(`div`,{className:`mt-1 line-clamp-1 text-[11px] leading-4 text-amber-200/90`,children:e.target_unavailable_reason??q5(`sidebar.targetUnavailable`)}):null]}),(0,Y.jsx)(Ty,{state:s,className:`mt-1`})]})},[t,n]),In=(0,p.useMemo)(()=>({ariaLabel:q5(`sidebar.ariaLabel`),newSession:q5(`sidebar.newSession`),collapseAriaLabel:q5(`sidebar.collapseAriaLabel`),openAriaLabel:q5(`sidebar.openAriaLabel`),cancelSelection:q5(`sidebar.cancelSelection`),deleteSelected:q5(`sidebar.deleteSelected`),selectedCount:e=>q5(`sidebar.selectedCount`,{count:e}),select:q5(`sidebar.select`),loadingSessions:q5(`sidebar.loadingSessions`),noSessions:q5(`sidebar.noSessions`),deleteSessionAriaLabel:q5(`sidebar.deleteSessionAriaLabel`),selectSessionAriaLabel:e=>q5(`sidebar.selectSessionAriaLabel`,{title:e}),selectSessionTitle:e=>q5(`sidebar.selectSessionTitle`,{title:e}),deleteSessionTitle:e=>q5(`sidebar.deleteSessionTitle`,{title:e})}),[]),Ln=(0,p.useMemo)(()=>({title:q5(`deleteSessionModal.title`),bulkTitle:q5(`deleteSessionModal.bulkTitle`),description:q5(`deleteSessionModal.description`),bulkDescription:e=>q5(`deleteSessionModal.bulkDescription`,{count:e}),cancel:q5(`deleteSessionModal.cancel`),delete:q5(`deleteSessionModal.delete`),deleting:q5(`deleteSessionModal.deleting`)}),[]),zn=(0,p.useMemo)(()=>(0,Y.jsx)(t7,{modifierLabel:tn,keys:[X5],ariaHidden:!0}),[tn]),Bn=(0,p.useMemo)(()=>(0,Y.jsx)(Zre,{label:q5(`shortcuts.startNewSession`),modifierLabel:tn,keys:[X5]}),[tn]),Vn=(0,p.useCallback)((e,t)=>{ye(n=>{if(n.has(e)===t)return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),Hn=(0,p.useMemo)(()=>(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(bG,{value:Qt,planInactiveTooltip:(0,Y.jsx)(DG,{label:q5(`shortcuts.switchToPlan`)}),buildInactiveTooltip:(0,Y.jsx)(DG,{label:q5(`shortcuts.switchToBuild`)}),disabled:G,onChange:e=>{hn(e)}}),Tn?(0,Y.jsx)(_5,{isInterrupting:Dn,onStop:()=>{An()},interruptLabel:q5(`review.interrupt`),interruptingLabel:q5(`review.interrupting`)}):null]}),[Qt,An,hn,Dn,Tn,G]),Un=(0,p.useMemo)(()=>Yt?(0,Y.jsx)(NG,{model:z,variant:V,skills:ee,showModelSelector:!0,showSkillsSelector:!0,availableModels:F,availableSkills:L,selectedModel:Zt,onModelChange:e=>{let t=F.find(t=>t.id===e)??null;B(e),H(e=>t&&t.variants.includes(e)?e:``)},onVariantChange:H,onSkillsChange:U,modelSelectId:`project-chat-model-selector`,variantSelectId:`project-chat-variant-selector`,skillsSelectId:`project-chat-skills-selector`,disabled:ce||W||y?.agent_status===`running`}):Xt?(0,Y.jsx)(MG,{dataTestId:`chat-model-selector-skeleton`}):null,[y?.agent_status,F,L,W,ce,Zt,z,ee,V,Yt,Xt]);(0,p.useEffect)(()=>{if(u)return()=>{u(null)}},[u]),(0,p.useEffect)(()=>{if(u){if(!e||!wn){u(null);return}u({chatSessionId:y?.id??null,canSubmitReviewPrompt:On,reviewSubmitDisabledReason:kn,mode:Qt,onModeChange:hn,isUpdatingMode:G,promptPlaceholder:$5(Qt),promptComposerControls:Hn,promptComposerInlineControls:Un,submitPrompt:Cn})}},[e,y,On,Qt,hn,Cn,wn,G,u,Hn,Un,kn]);let Gn=async()=>{if(!(!St.trim()&&wt.length===0||Tt))try{if(!await vn(St))return}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.sendPrompt`))}},Kn=e=>{e.key!==`Enter`||e.shiftKey||y?.agent_status===`running`||W||ce||Tt||(e.preventDefault(),Gn())};(0,p.useEffect)(()=>{let t=t=>{if(Xre(t)){if(!e||W||ce)return;t.preventDefault(),sn(),mn();return}wG(t)&&(!e||!C&&!y||(t.preventDefault(),hn(CG(Qt))))};return window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`keydown`,t)}},[e,y,Qt,mn,sn,hn,W,C,ce]);let qn=(0,p.useCallback)(async t=>{if(!(!e||!y)){we(t);try{let n=await Kk(e,y.id,t);Dt(n.chatSession),Ot(n.chatSession),Q.success(q5(`ticketProposal.createdFromChat`,{count:n.created_tickets.length}))}catch(e){Q.error(e instanceof Error?e.message:q5(`errors.createTickets`))}finally{we(e=>e===t?null:e)}}},[e,y,Dt,Ot]),Jn=(0,p.useCallback)(e=>{if(!nt.current)return;let t=nt.current.getBoundingClientRect().width,n=Q5(e,t);ft.current=n,it.current&&(it.current.style.setProperty(`--chat-changes-panel-width`,`${n}px`),it.current.setAttribute(`data-desktop-width`,String(n)))},[]),Yn=(0,p.useCallback)(()=>{st.current?.(),st.current=null},[]),Xn=(0,p.useCallback)(e=>{let t=at.current,n=ot.current,r=ct.current;if(t!==null){if(at.current=null,ot.current=null,ct.current=!1,Be(!1),K(!1),Yn(),e!==null&&typeof rt.current?.hasPointerCapture==`function`&&rt.current.hasPointerCapture(e)&&typeof rt.current.releasePointerCapture==`function`&&rt.current.releasePointerCapture(e),n===`collapsed`){if(!r)return;Ue(ft.current),Re(!0);return}Ue(ft.current)}},[Yn]),Zn=(0,p.useCallback)((e,t)=>{if(at.current!==e)return;let n=t-ut.current,r=dt.current-n;if(ot.current===`collapsed`){if(!ct.current&&r<Gre)return;ct.current||(ct.current=!0,lt.current=!0,K(!0),Be(!0))}Jn(r)},[Jn]),Qn=(0,p.useCallback)((e,t)=>{if(at.current===e){if(t!==null&&(ot.current===`inline`||ct.current)){let e=t-ut.current;Jn(dt.current-e)}Xn(e)}},[Xn,Jn]),$n=(0,p.useCallback)(e=>{if(!f)return;e.preventDefault(),at.current=e.pointerId,ot.current=Le?`inline`:`collapsed`,ct.current=!1,lt.current=!1,ut.current=e.clientX,dt.current=Le?ft.current:0,Be(Le),Yn(),typeof e.currentTarget.setPointerCapture==`function`&&e.currentTarget.setPointerCapture(e.pointerId);let t=e=>{Zn(e.pointerId,e.clientX)},n=e=>{Qn(e.pointerId,e.clientX)},r=e=>{Qn(e.pointerId,e.clientX)};window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,n),window.addEventListener(`pointercancel`,r),st.current=()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,n),window.removeEventListener(`pointercancel`,r)}},[Qn,Zn,Le,f,Yn]),er=(0,p.useCallback)(e=>{Zn(e.pointerId,e.clientX)},[Zn]),tr=(0,p.useCallback)(e=>{Qn(e.pointerId,e.clientX)},[Qn]),nr=(0,p.useCallback)(e=>{Qn(e.pointerId,e.clientX)},[Qn]),rr=(0,p.useCallback)(e=>{at.current===e.pointerId&&Xn(e.pointerId)},[Xn]),ir=(0,p.useCallback)(()=>{if(lt.current){lt.current=!1;return}Re(!0)},[]),ar=(0,p.useCallback)(()=>{Re(!1)},[]),or=(0,p.useCallback)(e=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),ir())},[ir]);(0,p.useEffect)(()=>{f||(at.current=null,ot.current=null,ct.current=!1,lt.current=!1,Be(!1),K(!1),Yn())},[f,Yn]),(0,p.useEffect)(()=>()=>{Yn()},[Yn]);let sr=!!_,cr=y?.target_available===!1,lr=cr?y?.target_unavailable_reason??q5(`review.unavailableTarget`):null,ur=C||!!(y&&y.target_available!==!1&&!fn),dr=!!(t?.memory_enabled&&y&&(Te.length>0||De)),fr=f&&(C||sr)&&!cr&&!fn,pr=fr&&!Le&&!Ve,mr=fr&&(Le||Ve),hr=`${on??`none`}:${fr?`changes-enabled`:`changes-disabled`}:${mr?`panel-visible`:`panel-hidden`}`,gr=y||C?(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(D5,{projectId:e,messages:y?qt:[],internalLog:y?.agent_log??null,currentThinkingMessageId:y?.agent_message_id??null,previousThinkingLog:y?.previous_agent_log??null,previousThinkingMessageId:y?.previous_agent_message_id??null,pendingAgentTitle:Kt,streamingResponse:y?.streaming_response??null,isRunning:y?.agent_status===`running`,isLoading:!C&&ae,canShowComposer:ur,cardClassName:`border-t-0`,isExternallyResizing:d||ze,pendingAgentRevealKey:Jt,pendingAgentRevealDelayMs:Jre,composerFocusNonce:We,header:(0,Y.jsx)(k5,{title:$t,tool:C?null:y?.tool??null,modelLabel:an,interrupted:En,interruptedLabel:q5(`sidebar.interrupted`),usage:{totalTokens:y?.usage_snapshot_total_tokens??null,contextWindow:y?.usage_snapshot_context_window??null,cost:y?.usage_snapshot_cost??null,tool:en,model:nn,availableModels:F},metadataExtra:y?.origin_spec_session_id&&y.origin_spec_snapshot_id&&c?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`ghost`,className:`h-6 px-2 text-[11px] text-violet-200 hover:text-violet-100`,onClick:()=>{c(y.origin_spec_session_id,y.origin_spec_snapshot_id)},children:sb.t(`common:specView.provenance.viewSourceSpec`)}):null,actions:dr?(0,Y.jsx)(Z,{type:`button`,size:`xs`,variant:`outline`,className:`gap-2`,onClick:()=>Ae(!0),children:De?q5(`composer.loadingMemory`):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{children:q5(`composer.memorySuggestions`)}),(0,Y.jsx)(O5,{children:Te.length})]})}):null,warnings:fn&&dn?(0,Y.jsx)(`div`,{className:`w-fit max-w-md rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-50`,children:(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)(`div`,{children:dn}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`secondary`,onClick:()=>{ln()},children:q5(`composer.switchBack`)}),(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`ghost`,onClick:sn,children:q5(`composer.startNewSession`)})]})]})}):cr&&lr?(0,Y.jsx)(`div`,{className:`w-fit max-w-md rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-50`,children:lr}):null}),composerControls:Hn,composerInlineControls:Un,composerTheme:Qt,layoutKey:on,scrollLayoutKey:hr,followUpPrompt:St,draftAttachments:wt,followUpPlaceholder:$5(Qt),emptyStateText:null,renderMessageFooter:e=>e.ticket_proposals?(0,Y.jsx)(sie,{proposals:e.ticket_proposals,isApplying:Ce===e.id,onApply:()=>{qn(e.id)}}):null,isSendingFollowUp:ce||W,isUploadingAttachments:Tt,canAttachImages:rn,followUpDisabledReason:cr?lr??void 0:y?.agent_status===`running`?q5(`review.waitTurnShort`):Tt?q5(`review.waitUpload`):void 0,onFollowUpPromptChange:e=>{Qe.current=null,jt(xt,e)},onFollowUpKeyDown:Kn,onFollowUpPaste:Sn,onUploadAttachments:e=>{bn(e)},onRemoveAttachment:e=>{xn(e)},onFollowUpSubmit:()=>{Gn()}})}):sr?(0,Y.jsx)(p5,{label:q5(`composer.loadingSession`)}):!re||te?(0,Y.jsx)(m5,{label:q5(`sidebar.loadingSessions`)}):(0,Y.jsx)(h5,{title:q5(`composer.noSessionSelectedTitle`),description:q5(`composer.noSessionSelectedDescription`),startNewSessionLabel:q5(`composer.startNewSession`),onStartNewSession:sn,canStartNewSession:!!e&&!W&&!ce}),_r=fr?(0,Y.jsx)(`div`,{ref:rt,"aria-label":q5(pr?`composer.openDiff`:`composer.resizeDiffPanel`),"aria-orientation":pr?void 0:`vertical`,className:X(pr?`group flex h-8 w-full shrink-0 touch-none select-none items-center justify-center border-t border-border/70 bg-background/90 text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground xl:h-auto xl:w-7 xl:cursor-col-resize xl:border-l xl:border-t-0`:`group hidden w-5 shrink-0 cursor-col-resize touch-none select-none items-center justify-center border-l border-border/70 bg-background/80 transition-colors xl:flex`,ze&&!pr&&`bg-background`),"data-testid":pr?`collapsed-changes-rail`:void 0,onLostPointerCapture:rr,onPointerCancel:nr,onPointerDown:$n,onPointerMove:er,onPointerUp:tr,onClick:pr?ir:void 0,onKeyDown:pr?or:void 0,role:pr?`button`:`separator`,tabIndex:pr?0:void 0,children:pr?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`hidden h-full w-full items-center justify-center xl:flex`,children:(0,Y.jsxs)(`span`,{className:`relative flex h-full w-full items-center justify-center`,children:[(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-[2.65rem] items-center justify-center text-sky-400/80 transition-colors group-hover:text-sky-300`,children:(0,Y.jsx)(Nv,{className:`h-3 w-3 shrink-0`})}),(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 h-14 w-1.5 -translate-x-1/2 -translate-y-1/2 rounded-full bg-muted-foreground/70 transition-colors group-hover:bg-sky-300/90`})]})}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-xs font-medium xl:hidden`,children:[(0,Y.jsx)(Nv,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:q5(`composer.diff`)})]})]}):(0,Y.jsx)(`div`,{className:X(`h-14 w-1.5 rounded-full transition-colors`,ze?`bg-sky-300/90`:`bg-muted-foreground/70 group-hover:bg-sky-300/90`)})}):null,vr=ke&&e&&t?.memory_enabled?(0,Y.jsx)(tb,{onClose:()=>Ae(!1),overlayClassName:`bg-background/45 p-4 backdrop-blur-sm`,panelClassName:`w-full max-w-3xl`,renderContent:({closeButton:t})=>(0,Y.jsxs)(ub,{size:`sm`,className:`max-h-[calc(100vh-2rem)] w-full gap-0 overflow-hidden border-border/80 bg-card/95 shadow-2xl`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/80 pb-4`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(fb,{children:q5(`composer.memorySuggestionsTitle`)}),(0,Y.jsx)(pb,{children:q5(`composer.memorySuggestionsDescription`)})]}),(0,Y.jsx)(mb,{children:t})]}),(0,Y.jsx)(hb,{className:`min-h-0 flex-1 overflow-y-auto pt-4`,children:(0,Y.jsx)(Pre,{projectId:e,suggestions:Te,emptyState:q5(`composer.memorySuggestionsEmpty`),onSuggestionsChanged:Vt})})]}),closeButtonLabel:q5(`composer.closeMemorySuggestions`)}):null,yr=Wt.length>0?(0,Y.jsx)(f5,{count:Wt.length,title:Gt,isDeleting:me.size>0,onConfirm:()=>{jn()},onCancel:()=>{me.size>0||pe([])},labels:Ln}):null;return(0,Y.jsxs)(`div`,{"data-testid":`chat-view-shell`,className:`relative flex min-h-0 flex-1 overflow-hidden border-t border-border/70`,children:[(0,Y.jsx)(g5,{sessions:h,sessionGroups:Ut,activeSessionId:_,isDraftOpen:C,isLoadingSessions:te,isOpen:Fe,onToggleOpen:()=>{Ie(e=>!e)},testId:`chat-sessions-sidebar`,railTestId:`chat-sessions-rail`,onDraftOpen:sn,isCreatingSession:W||!e,isSendingPrompt:ce,newSessionShortcutHint:zn,newSessionTooltip:Bn,isSelectionMode:ge,selectedSessionIds:ve,selectedSessionCount:ve.size,hasDeletableSessions:Mn,deletingSessionIds:me,onEnterSelectionMode:()=>{_e(!0),ye(new Set)},onExitSelectionMode:()=>{_e(!1),ye(new Set)},onToggleSessionSelection:e=>{ye(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},onSetSessionSelection:Vn,onConfirmDeleteSelectedSessions:()=>{pe(Array.from(ve))},onSessionSelect:e=>{pn(e)},onConfirmDeleteSession:e=>{pe([e])},getSessionId:e=>e.id,getSessionTitle:e=>e.title,getDeleteDisabledReason:p7,getActivityState:Nn,getRowAriaLabel:Pn,renderRowContent:Fn,labels:In}),(0,Y.jsxs)(`div`,{ref:nt,className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden xl:flex-row`,children:[(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:gr}),fr?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Sv,{content:q5(`composer.openDiff`),disabled:!pr,side:`left`,children:_r}),mr?(0,Y.jsx)(E5,{projectId:e,chatSessionId:C?null:_,canSubmitReviewPrompt:On,reviewSubmitDisabledReason:kn,onSubmitReviewPrompt:Cn,state:Ne,onStateChange:Pe,isResizing:ze,onClose:ar,desktopWidth:He,panelElementRef:it}):null]}):null]}),vr,yr]})},lie=({className:e})=>(0,Y.jsx)(Sg,{"aria-hidden":`true`,className:e}),uie=({activeProject:e})=>e?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-6 py-6`,children:(0,Y.jsxs)(`div`,{className:`mx-auto flex w-full max-w-7xl flex-col gap-5`,children:[(0,Y.jsx)(`div`,{className:`border-b border-border/60 pb-4`,children:(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`p`,{className:`text-[10px] font-semibold uppercase tracking-[0.24em] text-muted-foreground`,children:`Memory archive`}),(0,Y.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:e.name})]})}),(0,Y.jsx)(sC,{mode:`edit`,projectId:e.id,memoryEnabled:e.memory_enabled,persistedMemoryEnabled:e.memory_enabled,onMemoryEnabledChange:()=>{},showActivationControls:!1,archiveLayout:!0})]})}):(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center text-sm text-muted-foreground`,children:`Select a project to view memory.`}),die=(e,t)=>J(qe(`/projects/${e}/spec-sessions`),{signal:t,fallbackErrorMessage:`Unable to load spec sessions right now.`}),m7=(e,t)=>J(qe(`/projects/${e}/spec-sessions`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to create a spec session right now.`}),h7=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}`),{signal:n,fallbackErrorMessage:`Unable to load the spec session right now.`}),fie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}`),{method:`PATCH`,body:n,fallbackErrorMessage:`Unable to update the spec session right now.`}),g7=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/messages`),{method:`POST`,body:n,fallbackErrorMessage:`Unable to send the spec prompt right now.`}),pie=async(e,t,n)=>{let r=new FormData;for(let e of n)r.append(`files`,e);let i=await fetch(qe(`/projects/${e}/spec-sessions/${t}/attachments`),{method:`POST`,body:r});if(!i.ok)throw new Ke(await Xe(i,`Unable to upload images right now.`),i.status);return await i.json()},mie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/attachments/${n}`),{method:`DELETE`,fallbackErrorMessage:`Unable to remove the image right now.`}),hie=(e,t)=>J(qe(`/projects/${e}/spec-sessions/${t}/stop`),{method:`POST`,fallbackErrorMessage:`Unable to interrupt the spec response right now.`}),gie=(e,t)=>J(qe(`/projects/${e}/spec-sessions/${t}`),{method:`DELETE`,fallbackErrorMessage:`Unable to delete the spec session right now.`}),_ie=(e,t,n,r)=>J(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}`),{signal:r,fallbackErrorMessage:`Unable to load the spec snapshot right now.`}),_7=class extends Error{conflictingPath;constructor(e,t){super(e),this.name=`SpecExportConflictError`,this.conflictingPath=t}},vie=async(e,t,n)=>{let r=await fetch(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}/export`),{method:`POST`});if(r.status===409){let e=await r.json().catch(()=>({}));throw new _7(e.error||`A spec with this title has already been exported.`,e.conflicting_path||``)}if(!r.ok)throw new Ke(await Xe(r,`Unable to export the spec snapshot right now.`),r.status);return await r.json()},yie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}/create-tickets`),{method:`POST`,fallbackErrorMessage:`Unable to create tickets from the spec snapshot right now.`}),bie=(e,t,n)=>J(qe(`/projects/${e}/spec-sessions/${t}/snapshots/${n}/implement-in-chat`),{method:`POST`,fallbackErrorMessage:`Unable to start the implementation chat right now.`}),xie=(e,t)=>!!t&&e===t,Sie=({suggestion:e,isRecommended:t,recommendedLabel:n,onPick:r})=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{r(e.value)},className:X(`inline-flex min-w-0 items-center gap-1.5 rounded-full border px-3 py-1.5 text-left text-xs font-medium transition-colors`,t?`border-amber-500/40 bg-amber-500/15 text-amber-200 hover:bg-amber-500/25 hover:text-amber-100`:`border-border/70 bg-background/70 text-foreground hover:border-border hover:bg-background`),children:[(0,Y.jsx)(`span`,{className:`truncate`,children:e.label}),t?(0,Y.jsx)(`span`,{className:`shrink-0 rounded-full bg-amber-500/30 px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-amber-100`,children:n}):null]}),Cie=({question:e,labels:t})=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-sm font-medium leading-relaxed text-foreground`,children:e.question}),e.rationale?(0,Y.jsxs)(`p`,{className:`whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{className:`font-semibold`,children:[t.rationaleLabel,`: `]}),e.rationale]}):null]}),wie=({question:e,isActive:t,isDisabled:n=!1,onSubmitAnswer:r,labels:i})=>{let[a,o]=(0,p.useState)(``),s=(0,p.useRef)(null);if((0,p.useEffect)(()=>{t&&o(``)},[e.question,t]),(0,p.useEffect)(()=>{s.current&&cw(s.current)},[a]),!t)return(0,Y.jsx)(Cie,{question:e,labels:i});let c=a.trim().length>0&&!n,l=e.suggestions.find(e=>e.recommended)?.id,u=e=>{o(e),requestAnimationFrame(()=>{s.current?.focus();let e=s.current;e&&e.setSelectionRange(e.value.length,e.value.length)})},d=()=>{let e=a.trim();!e||n||(r(e),o(``))};return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(Vx,{className:`mt-0.5 h-4 w-4 flex-shrink-0 text-amber-300`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-sm font-medium leading-relaxed text-foreground`,children:e.question}),e.rationale?(0,Y.jsxs)(`p`,{className:`mt-1 whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{className:`font-semibold`,children:[i.rationaleLabel,`: `]}),e.rationale]}):null]})]}),e.suggestions.length>0?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:i.suggestionsLabel}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.suggestions.map(e=>(0,Y.jsx)(Sie,{suggestion:e,isRecommended:xie(e.id,l),recommendedLabel:i.recommendedSuggestionLabel,onPick:u},e.id))})]}):null,(0,Y.jsx)(B_,{ref:s,value:a,placeholder:i.answerPlaceholder,disabled:n,onChange:e=>{o(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),d())}}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsx)(Z,{type:`button`,size:`sm`,variant:`secondary`,disabled:!c,onClick:d,children:n?i.submittingLabel:i.submitLabel})})]})},Tie=({className:e})=>(0,Y.jsx)(oee,{"aria-hidden":`true`,className:e}),Eie=[`h-10 w-10 px-0`,`border-amber-400/60 bg-amber-500/30 text-amber-100 shadow-[0_8px_24px_rgba(245,158,11,0.24)]`,`hover:bg-amber-500/45 hover:text-white hover:border-amber-300`,`focus-visible:border-ring/70 focus-visible:ring-2 focus-visible:ring-ring/20`].join(` `),Die=[`h-10 w-10 px-0 shadow-none`,`border-border/70 bg-transparent text-muted-foreground`,`hover:border-border hover:bg-background/60 hover:text-foreground`,`focus-visible:border-ring/70 focus-visible:ring-2 focus-visible:ring-ring/20`,`disabled:border-border/40 disabled:bg-transparent disabled:text-muted-foreground/50`].join(` `),Oie=({on:e,disabled:t=!1,onToggle:n,tooltipContent:r,ariaLabelOn:i,ariaLabelOff:a,className:o})=>(0,Y.jsx)(Sv,{content:r,children:(0,Y.jsx)(`span`,{className:`inline-flex`,children:(0,Y.jsx)(Z,{type:`button`,size:`icon`,variant:e?`warning`:`ghost`,"aria-pressed":e,"aria-label":e?i:a,disabled:t,className:X(e?Eie:Die,o),onClick:()=>{t||n(!e)},children:(0,Y.jsx)(Tie,{className:`h-5 w-5`})})})}),kie=({projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r=null,previousThinkingLog:i=null,previousThinkingMessageId:a=null,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l=!1,canShowComposer:u,cardClassName:d,isExternallyResizing:f=!1,pendingAgentRevealKey:p=null,pendingAgentRevealDelayMs:m=0,composerFocusNonce:h=0,blurComposerOnSendStart:g=!1,hidePendingAgentTitle:_=!1,forceScrollToBottomKey:v,header:y,composerControls:b,composerInlineControls:x,composerTheme:S=`default`,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E=[],followUpPlaceholder:D,emptyStateText:O=null,renderMessageFooter:k,renderMessageBody:A,isSendingFollowUp:j,isUploadingAttachments:M=!1,canAttachImages:N=!1,followUpDisabledReason:P,onFollowUpPromptChange:F,onFollowUpKeyDown:I,onFollowUpPaste:L,onUploadAttachments:R,onRemoveAttachment:z,onFollowUpSubmit:B})=>(0,Y.jsx)(HW,{projectId:e,messages:t,internalLog:n,currentThinkingMessageId:r,previousThinkingLog:i,previousThinkingMessageId:a,pendingAgentTitle:o,streamingResponse:s,isRunning:c,isLoading:l,autoScrollBehavior:`sticky`,surfaceVariant:`chat`,canShowComposer:u,cardClassName:d,header:y,composerControls:b,composerInlineControls:x,composerTheme:S,composerSize:`compact-on-laptop`,showThinkingPlacement:`header`,pinComposerToBottom:!0,isExternallyResizing:f,pendingAgentRevealKey:p,pendingAgentRevealDelayMs:m,composerFocusNonce:h,blurComposerOnSendStart:g,forceScrollToBottomKey:v,layoutKey:C,scrollLayoutKey:w,followUpPrompt:T,draftAttachments:E,followUpPlaceholder:D,emptyStateText:O,autoFocusComposer:!0,renderMessageFooter:k,renderMessageBody:A,isSendingFollowUp:j,isUploadingAttachments:M,canAttachImages:N,followUpDisabledReason:P,hidePendingAgentTitle:_,onFollowUpPromptChange:F,onFollowUpKeyDown:I,onFollowUpPaste:L,onUploadAttachments:R,onRemoveAttachment:z,onFollowUpSubmit:B}),v7=e=>{let t={...e};return delete t.messages,t.agent_log=null,t.agent_message_id=null,t.previous_agent_log=null,t.previous_agent_message_id=null,t.streaming_response=null,t},y7=({className:e})=>(0,Y.jsx)(jg,{"aria-hidden":`true`,className:e}),Aie=({className:e})=>(0,Y.jsx)(gg,{"aria-hidden":`true`,className:e}),jie=({className:e})=>(0,Y.jsx)(aee,{"aria-hidden":`true`,className:e}),Mie=({className:e})=>(0,Y.jsx)(cg,{"aria-hidden":`true`,className:e}),b7=({heading:e,open:t,onOpenChange:n,children:r})=>(0,Y.jsxs)(Yb,{open:t,onOpenChange:n,children:[(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground hover:text-foreground transition-colors mb-2`,children:[(0,Y.jsx)(Ev,{className:`h-3 w-3 shrink-0 transition-transform ${t?``:`-rotate-90`}`}),e]})}),(0,Y.jsx)(Zb,{children:r})]}),Nie=({actions:e})=>{let{t}=Ue(`common`);return e.hasExistingTicketsFromSnapshot?(0,Y.jsxs)(`p`,{className:`flex w-full items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground`,children:[(0,Y.jsx)(Aie,{className:`h-3.5 w-3.5 text-emerald-400`}),t(`specView.actions.ticketsCreated`)]}):(0,Y.jsxs)(Z,{type:`button`,size:`sm`,onClick:e.onCreateTickets,disabled:e.isCreatingTickets||e.isImplementingInChat||e.isExporting,className:`w-full justify-center gap-1.5 border-violet-300/70 bg-violet-500/15 text-violet-100 hover:bg-violet-500/25`,children:[(0,Y.jsx)(y7,{className:`h-3.5 w-3.5`}),e.isCreatingTickets?t(`specView.actions.creatingTickets`):t(`specView.actions.createTickets`)]})},Pie=(0,p.memo)((0,p.forwardRef)(({snapshot:e,isLoading:t,desktopWidth:n,onClose:r,actions:i,className:a},o)=>{let{t:s}=Ue(`common`),[c,l]=(0,p.useState)(!1),[u,d]=(0,p.useState)(!1),[f,m]=(0,p.useState)(!0),[h,g]=(0,p.useState)(!0),[_,v]=(0,p.useState)(!0),[y,b]=(0,p.useState)(!0),[x,S]=(0,p.useState)(!0),[C,w]=(0,p.useState)(!0),[T,E]=(0,p.useState)(!0),[D,O]=(0,p.useState)(!0),k=(0,p.useCallback)(()=>{l(!0)},[]),A=(0,p.useCallback)(()=>{d(!0)},[]),j=`flex shrink-0 flex-col border-l border-border/70 bg-surface ${a??``}`;if(t)return(0,Y.jsxs)(`aside`,{ref:o,style:n?{"--spec-artifact-panel-width":`${n}px`}:void 0,className:n?`xl:w-[var(--spec-artifact-panel-width)] ${j}`:j,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-medium text-foreground`,children:s(`specView.artifactPanel.title`)}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground`,"aria-label":s(`specView.artifactPanel.close`),onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Y.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-violet-400 border-t-transparent`})})]});if(!e)return(0,Y.jsxs)(`aside`,{ref:o,style:n?{"--spec-artifact-panel-width":`${n}px`}:void 0,className:n?`xl:w-[var(--spec-artifact-panel-width)] ${j}`:j,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-medium text-foreground`,children:s(`specView.artifactPanel.title`)}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground`,"aria-label":s(`specView.artifactPanel.close`),onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4`,children:(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`specView.artifactPanel.noSnapshot`)})})]});let M=e.likely_files.length>0,N=e.tickets.length>0,P=e.dependencies.length>0,F=e.open_questions.length>0,I=e.assumptions.length>0;return(0,Y.jsxs)(`aside`,{ref:o,style:n?{"--spec-artifact-panel-width":`${n}px`}:void 0,className:n?`xl:w-[var(--spec-artifact-panel-width)] ${j}`:j,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-border/50 px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-medium text-foreground`,children:s(`specView.artifactPanel.title`)}),(0,Y.jsx)(Z,{type:`button`,size:`icon-sm`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground`,"aria-label":s(`specView.artifactPanel.close`),onClick:r,children:(0,Y.jsx)(Jy,{className:`h-4 w-4`})})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-4 py-4`,children:[(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.summary`),open:f,onOpenChange:m,children:(0,Y.jsx)(`section`,{className:`rounded-md border border-border/50 bg-surface-hover px-3 py-2`,children:(0,Y.jsx)(`p`,{className:`text-sm leading-relaxed text-foreground whitespace-pre-wrap`,children:e.summary})})}),e.mermaid&&(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.visualization`),open:h,onOpenChange:g,children:(0,Y.jsx)(`section`,{className:`overflow-auto rounded-md border border-border/50 bg-surface-hover p-3`,children:(0,Y.jsx)(SU,{mermaid:e.mermaid,onClick:k})})}),e.mockup&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(Mie,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.uiMockup`)]}),open:_,onOpenChange:v,children:(0,Y.jsx)(`section`,{className:`rounded-md border border-border/50 bg-surface-hover p-3`,children:(0,Y.jsx)(DU,{html:e.mockup,onClick:A})})}),M&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(nS,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.likelyFiles`)]}),open:y,onOpenChange:b,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.likely_files.map((e,t)=>(0,Y.jsxs)(`li`,{className:`rounded-md border border-border/50 bg-surface-hover px-3 py-2`,children:[(0,Y.jsx)(`code`,{className:`text-xs text-foreground`,children:e.path}),e.reason&&(0,Y.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:e.reason})]},t))})})}),N&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(y7,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.proposedTickets`)]}),open:x,onOpenChange:S,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.tickets.map((e,t)=>(0,Y.jsxs)(`li`,{className:`rounded-md border border-border/50 bg-surface-hover px-3 py-2`,children:[(0,Y.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:e.title}),e.key&&(0,Y.jsx)(`div`,{className:`mt-0.5 text-xs text-violet-400`,children:e.key})]},t))})})}),P&&(0,Y.jsx)(b7,{heading:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(Ux,{className:`h-3.5 w-3.5`}),s(`specView.artifactPanel.dependencies`)]}),open:C,onOpenChange:w,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1`,children:e.dependencies.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-violet-400`,children:e.blocker_key}),(0,Y.jsx)(`span`,{children:`→`}),(0,Y.jsx)(`span`,{className:`font-mono text-violet-400`,children:e.dependent_key})]},t))})})}),F&&(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.openQuestions`),open:T,onOpenChange:E,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.open_questions.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex gap-2 text-sm text-amber-300`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 shrink-0 text-amber-500`,children:`?`}),(0,Y.jsx)(`span`,{children:e})]},t))})})}),I&&(0,Y.jsx)(b7,{heading:s(`specView.artifactPanel.assumptions`),open:D,onOpenChange:O,children:(0,Y.jsx)(`section`,{children:(0,Y.jsx)(`ul`,{className:`space-y-1.5`,children:e.assumptions.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex gap-2 text-sm text-muted-foreground`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 shrink-0 text-violet-500`,children:`•`}),(0,Y.jsx)(`span`,{children:e})]},t))})})})]}),i&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 border-t border-border/50 bg-surface/95 px-4 py-3 backdrop-blur`,children:[e.tickets.length>0&&(0,Y.jsx)(Nie,{actions:i}),(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,onClick:i.onImplementInChat,disabled:i.isCreatingTickets||i.isImplementingInChat||i.isExporting,className:`w-full justify-center gap-1.5`,children:[(0,Y.jsx)(XC,{className:`h-3.5 w-3.5`}),i.isImplementingInChat?s(`specView.actions.startingImplementation`):s(`specView.actions.implementInChat`)]}),(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,onClick:i.onExport,disabled:i.isCreatingTickets||i.isImplementingInChat||i.isExporting,className:`w-full justify-center gap-1.5`,children:[(0,Y.jsx)(jie,{className:`h-3.5 w-3.5`}),i.isExporting?s(`specView.actions.exportingSpec`):s(`specView.actions.exportSpec`)]})]}),e.mermaid&&(0,Y.jsx)(wU,{mermaid:e.mermaid,open:c,onClose:()=>{l(!1)}}),e.mockup&&(0,Y.jsx)(OU,{html:e.mockup,open:u,onClose:()=>{d(!1)}})]})})),x7=(e,t)=>sb.t(`specView.${e}`,t),Fie=e=>{let t=`${e.external_source.external_key}: ${e.title}`.trim(),n=e.description.trim();return n?`${t}\n\n${n}`:t},Iie=1500,S7=`archon.spec-draft`,Lie=`archon.spec-run-config`,C7=`archon.spec-session-list-layout`,w7=`archon.spec-artifact-panel-layout`,T7=420,E7=320,D7=.5,Rie=6,zie=({projectId:e,tool:t})=>e?`${S7}/${e}/${t}`:null,O7=({projectId:e,tool:t})=>{if(e)try{localStorage.setItem(`${S7}/${e}/tool`,t)}catch{}},k7=e=>{if(!e)return{isOpen:!0};try{let t=localStorage.getItem(`${C7}/${e}`);return{isOpen:(t?JSON.parse(t):null)?.isOpen??!0}}catch{return{isOpen:!0}}},Bie=({projectId:e,isOpen:t})=>{if(e)try{localStorage.setItem(`${C7}/${e}`,JSON.stringify({isOpen:t}))}catch{}},Vie=(e,t)=>{let n=Number.isFinite(e)?Math.round(e):T7;if(!Number.isFinite(t))return Math.max(E7,n);let r=Math.max(E7,Math.round(t*D7));return Math.max(E7,Math.min(r,n))},A7=e=>{if(!e)return{isOpen:!1,width:T7};try{let t=localStorage.getItem(`${w7}/${e}`);if(!t)return{isOpen:!1,width:T7};let n=JSON.parse(t),r=typeof n.width==`number`&&Number.isFinite(n.width)?Math.max(E7,Math.round(n.width)):T7;return{isOpen:n.isOpen===!0,width:r}}catch{return{isOpen:!1,width:T7}}},Hie=({projectId:e,isOpen:t,width:n})=>{if(e)try{localStorage.setItem(`${w7}/${e}`,JSON.stringify({isOpen:t,width:n}))}catch{}},Uie=e=>{if(!e)return null;try{return localStorage.getItem(e)}catch{return null}},j7=({storageKey:e,value:t})=>{if(e)try{if(!t){localStorage.removeItem(e);return}localStorage.setItem(e,t)}catch{}},M7=({projectId:e,tool:t})=>`${Lie}:${e}:${t}`,Wie=({projectId:e,tool:t})=>{if(!e||t!==`opencode`)return null;try{let n=window.localStorage.getItem(M7({projectId:e,tool:t}));if(!n)return null;let r=JSON.parse(n),i=(typeof r.model==`string`?r.model.trim():``)||null;return i?{model:i,variant:i&&typeof r.variant==`string`&&r.variant.trim()||null}:null}catch{return null}},Gie=({projectId:e,tool:t,model:n,variant:r})=>{if(!(!e||t!==`opencode`||!n))try{window.localStorage.setItem(M7({projectId:e,tool:t}),JSON.stringify({model:n,variant:n?r:null}))}catch{}},Kie=`archon.spec-draft-grill`,N7=e=>e?`${Kie}/${e}`:null,P7=e=>{let t=N7(e);if(!t)return!1;try{return window.localStorage.getItem(t)===`true`}catch{return!1}},F7=({projectId:e,grillOn:t})=>{let n=N7(e);if(n)try{t?window.localStorage.setItem(n,`true`):window.localStorage.removeItem(n)}catch{}},qie=({activeProjectId:e,activeTool:t,initialSpecSessionId:n=null,initialSpecSnapshotId:r=null,onInitialSpecNavigationConsumed:i,onImplementInChat:a})=>{let o=I8(),{t:s}=Ue(`common`),{jiraImportState:c,importFromJira:l}=dS(e),{gitHubImportState:u,importFromGitHub:d}=cS(e),[f,m]=(0,p.useState)([]),[h,g]=(0,p.useState)(null),[_,v]=(0,p.useState)(null),[y,b]=(0,p.useState)(!1),[x,S]=(0,p.useState)(null),[C,w]=(0,p.useState)({}),[T,E]=(0,p.useState)({}),[D,O]=(0,p.useState)({}),[k,A]=(0,p.useState)([]),[j,M]=(0,p.useState)([]),[N,P]=(0,p.useState)(``),[F,I]=(0,p.useState)(``),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(!1),[V,H]=(0,p.useState)(!1),[ee,U]=(0,p.useState)(!1),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(!1),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)([]),[ce,le]=(0,p.useState)(()=>new Set),[ue,de]=(0,p.useState)(!1),[fe,pe]=(0,p.useState)(()=>new Set),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(()=>k7(e).isOpen),[ve,ye]=(0,p.useState)(0),[G,be]=(0,p.useState)(null),[xe,Se]=(0,p.useState)(()=>new Set),[Ce,we]=(0,p.useState)(null),[Te,Ee]=(0,p.useState)(null),[De,Oe]=(0,p.useState)(!1),[ke,Ae]=(0,p.useState)(()=>A7(e).isOpen),[je,Me]=(0,p.useState)(()=>A7(e).width),[Ne,Pe]=(0,p.useState)(!1),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)(!1),[ze,Be]=(0,p.useState)(!1),[Ve,K]=(0,p.useState)(!1),[He,We]=(0,p.useState)(!1),[Ge,Ke]=(0,p.useState)(null),[qe,Je]=(0,p.useState)(()=>P7(e)),[q,Xe]=(0,p.useState)(!1),Ze=(0,p.useRef)(null),J=(0,p.useRef)(null),Qe=(0,p.useRef)(null),$e=(0,p.useRef)(null),et=(0,p.useRef)(null),tt=(0,p.useRef)(null),nt=(0,p.useRef)(!1),rt=(0,p.useRef)(!1),it=(0,p.useRef)(0),at=(0,p.useRef)(T7),ot=(0,p.useRef)(T7),st=(0,p.useRef)(null),ct=(0,p.useRef)(!1),lt=(0,p.useRef)(!1),ut=(0,p.useRef)(!1),dt=(0,p.useRef)({}),ft=(0,p.useRef)({}),pt=(0,p.useRef)(new Set),mt=(0,p.useRef)(0),ht=(0,p.useRef)(new Map),gt=e?zie({projectId:e,tool:y?t:_?.tool??t}):null,_t=gt?C[gt]??``:``,vt=y?t:_?.tool??t,yt=(0,p.useMemo)(()=>_?T[_.id]??[]:[],[_,T]),bt=(0,p.useMemo)(()=>_?D[_.id]??0:0,[_,D])>0;(0,p.useEffect)(()=>{ct.current=y},[y]),(0,p.useEffect)(()=>{dt.current=C},[C]),(0,p.useEffect)(()=>{ft.current=T},[T]),(0,p.useEffect)(()=>{if(!gt||pt.current.has(gt))return;pt.current.add(gt);let e=Uie(gt);e&&w(t=>Object.prototype.hasOwnProperty.call(t,gt)?t:{...t,[gt]:e})},[gt]),(0,p.useEffect)(()=>{!gt||!Object.prototype.hasOwnProperty.call(C,gt)||j7({storageKey:gt,value:C[gt]??``})},[gt,C]),(0,p.useEffect)(()=>{st.current=h},[h]),(0,p.useEffect)(()=>{let t=Te??_?.latest_snapshot_id;if(!_||!t||!e){we(null),We(!1),Ae(!1);return}let n=!1;return Oe(!0),_ie(e,_.id,t).then(e=>{n||(we(e),We((e.created_ticket_ids?.length??0)>0),Ae(!0))}).catch(()=>{n||(we(null),We(!1))}).finally(()=>{n||Oe(!1)}),()=>{n=!0}},[_?.latest_snapshot_id,_?.id,e,Te]),(0,p.useEffect)(()=>{Hie({projectId:e,isOpen:ke,width:je})},[e,ke,je]),(0,p.useEffect)(()=>{if(!(!n||f.length===0)){if(!f.some(e=>e.id===n)){Q.error(x7(`errors.initialSessionMissing`)),lt.current=!0,i?.();return}if(h===n){Ee(r??null),i?.();return}oe(null),g(n),Ee(r??null),b(!1),lt.current=!0,i?.()}},[n,r,f,h,i]),(0,p.useEffect)(()=>{Ne||(ot.current=je,Qe.current&&(Qe.current.style.setProperty(`--spec-artifact-panel-width`,`${je}px`),Qe.current.setAttribute(`data-desktop-width`,String(je))))},[je,Ne]);let xt=(0,p.useCallback)(async t=>{if(!e){m([]),B(!1);return}B(!V);try{let n=await die(e,t);if(t?.aborted)return;m(F5(n)),H(!0);let r=new Set(n.map(e=>e.id));Se(e=>{let t=new Set([...e].filter(e=>r.has(e)));return t.size===e.size?e:t})}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.loadSessions`))}finally{t?.aborted||B(!1)}},[e,V]),St=(0,p.useCallback)(async(t,n)=>{if(e){U(!0);try{let r=await h7(e,t,n);if(n?.aborted)return;v(r)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.loadSession`))}finally{n?.aborted||U(!1)}}},[e]),Ct=(0,p.useCallback)(e=>{m(t=>{let n=t.findIndex(t=>t.id===e.id);if(n===-1)return F5([...t,v7(e)]);let r=t.slice();return r[n]=v7(e),F5(r)})},[]),wt=(0,p.useCallback)(t=>t.project_id===e,[e]),Tt=(0,p.useMemo)(()=>[{key:`jira`,label:s(`jiraImportField.label`),placeholder:s(`jiraImportField.placeholder`),state:c,onImport:l},{key:`github`,label:s(`githubImportField.label`),placeholder:s(`githubImportField.placeholder`),state:u,onImport:d}],[s,c,l,u,d]),Et=Tt.some(e=>e.state===`enabled`),Dt=(0,p.useCallback)(()=>{te||re||(b(!0),g(null),Ee(null),v(null))},[te,re]),Ot=(0,p.useCallback)(e=>{re||(oe(null),g(e.id),Ee(null),b(!1),S(null),mt.current+=1)},[re]),kt=(0,p.useCallback)(async t=>{if(e){oe(t);try{await hie(e,t)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.stopSession`))}}},[e]),At=(0,p.useCallback)(async()=>{if(!(!e||!_||!Ce)){Re(!0);try{let t=await yie(e,_.id,Ce.id);We(!0),Q.success(x7(`actions.createTicketsSuccess`,{count:t.tickets.length})),xt()}catch(e){if(Ye(e))return;if(e.status===409){We(!0);return}Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{Re(!1)}}},[e,_,Ce,xt]),jt=(0,p.useCallback)(()=>{At()},[At]),Mt=(0,p.useCallback)(async()=>{if(!(!e||!_||!Ce)&&a){Be(!0);try{let t=await bie(e,_.id,Ce.id);a(t.draft_text,t.spec_session_id,t.spec_snapshot_id)}catch(e){if(Ye(e))return;Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{Be(!1)}}},[e,_,Ce,a]),Nt=(0,p.useCallback)(async()=>{if(!(!e||!_||!Ce)){K(!0);try{await vie(e,_.id,Ce.id),Q.success(x7(`actions.exportSuccess`))}catch(e){if(Ye(e))return;if(e instanceof _7){Ke(e.conflictingPath);return}Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{K(!1)}}},[e,_,Ce]),Pt=(0,p.useCallback)(()=>{tt.current?.(),tt.current=null},[]),Ft=(0,p.useCallback)(e=>{if(!Ze.current)return;let t=Ze.current.getBoundingClientRect().width,n=Vie(e,t);ot.current=n,Qe.current&&(Qe.current.style.setProperty(`--spec-artifact-panel-width`,`${n}px`),Qe.current.setAttribute(`data-desktop-width`,String(n)))},[]),It=(0,p.useCallback)(e=>{let t=$e.current,n=et.current,r=nt.current;if(t!==null){if($e.current=null,et.current=null,nt.current=!1,Pe(!1),Ie(!1),Pt(),e!==null&&typeof J.current?.hasPointerCapture==`function`&&J.current.hasPointerCapture(e)&&typeof J.current.releasePointerCapture==`function`&&J.current.releasePointerCapture(e),n===`collapsed`){if(!r)return;Me(ot.current),Ae(!0);return}Me(ot.current)}},[Pt]),Lt=(0,p.useCallback)((e,t)=>{if($e.current!==e)return;let n=t-it.current,r=at.current-n;if(et.current===`collapsed`){if(!nt.current&&r<Rie)return;nt.current||(nt.current=!0,rt.current=!0,Ie(!0),Pe(!0))}Ft(r)},[Ft]),Rt=(0,p.useCallback)((e,t)=>{if($e.current===e){if(t!==null&&(et.current===`inline`||nt.current)){let e=t-it.current;Ft(at.current-e)}It(e)}},[It,Ft]),zt=(0,p.useCallback)(e=>{e.preventDefault(),$e.current=e.pointerId,et.current=ke?`inline`:`collapsed`,nt.current=!1,rt.current=!1,it.current=e.clientX,at.current=ke?ot.current:0,Pe(ke),Pt(),typeof e.currentTarget.setPointerCapture==`function`&&e.currentTarget.setPointerCapture(e.pointerId);let t=e=>{Lt(e.pointerId,e.clientX)},n=e=>{Rt(e.pointerId,e.clientX)},r=e=>{Rt(e.pointerId,e.clientX)};window.addEventListener(`pointermove`,t),window.addEventListener(`pointerup`,n),window.addEventListener(`pointercancel`,r),tt.current=()=>{window.removeEventListener(`pointermove`,t),window.removeEventListener(`pointerup`,n),window.removeEventListener(`pointercancel`,r)}},[Rt,Lt,ke,Pt]),Bt=(0,p.useCallback)(e=>{Lt(e.pointerId,e.clientX)},[Lt]),Vt=(0,p.useCallback)(e=>{Rt(e.pointerId,e.clientX)},[Rt]),Ht=(0,p.useCallback)(e=>{Rt(e.pointerId,e.clientX)},[Rt]),Ut=(0,p.useCallback)(e=>{$e.current===e.pointerId&&It(e.pointerId)},[It]),Wt=(0,p.useCallback)(()=>{Ae(!1)},[]),Gt=(0,p.useCallback)(async()=>{if(!e||W.length===0)return;let t=W;le(e=>{let n=new Set(e);for(let e of t)n.add(e);return n});let n=[];for(let r of t)try{await gie(e,r)}catch(e){Ye(e)||n.push(e instanceof Error?e.message:x7(`errors.deleteSession`))}if(le(e=>{let n=new Set(e);for(let e of t)n.delete(e);return n}),se([]),n.length>0){Q.error(n.join(`
|
|
260
|
+
`));return}ue&&(de(!1),pe(new Set),Q.success(x7(`specView.toasts.deleteSelectedSuccess`,{count:t.length})))},[e,W,ue]),Kt=(0,p.useCallback)(e=>{let t=new Set(e),n=st.current;for(let e of Object.keys(dt.current))j7({storageKey:e,value:``});E(e=>{let n={...e},r=!1;for(let e of t)Object.prototype.hasOwnProperty.call(n,e)&&(delete n[e],r=!0);return r?n:e}),m(e=>{let r=e.filter(e=>!t.has(e.id));if(n&&t.has(n)){let e=r[0]??null;g(e?.id??null),v(null),b(e===null)}return r}),Se(e=>{let n=new Set(e),r=!1;for(let e of t)n.delete(e)&&(r=!0);return r?n:e}),be(e=>e?.sessionId&&t.has(e.sessionId)?null:e),oe(e=>e&&t.has(e)?null:e),se(e=>e.filter(e=>!t.has(e))),le(e=>{let n=new Set(e),r=!1;for(let e of t)n.delete(e)&&(r=!0);return r?n:e}),pe(e=>{let n=new Set(e),r=!1;for(let e of t)n.delete(e)&&(r=!0);return r?n:e})},[]),qt=(0,p.useCallback)(e=>{Kt([e])},[Kt]),Jt=(0,p.useCallback)((e,t)=>{e&&w(n=>n[e]===t?n:{...n,[e]:t})},[]),Yt=(0,p.useCallback)(e=>{S(e.external_source),Jt(gt,Fie(e))},[gt,Jt]),Xt=(0,p.useCallback)(e=>{e&&(w(t=>t[e]===``?t:{...t,[e]:``}),j7({storageKey:e,value:``}))},[]),Zt=(0,p.useCallback)((e,t)=>{E(n=>{if(t.length===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:t}})},[]),Qt=(0,p.useCallback)(e=>{E(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n}),O(t=>{if(!Object.prototype.hasOwnProperty.call(t,e))return t;let n={...t};return delete n[e],n})},[]),$t=(0,p.useCallback)((e,t)=>{O(n=>{let r=Math.max(0,(n[e]??0)+t);if(r===0){if(!Object.prototype.hasOwnProperty.call(n,e))return n;let t={...n};return delete t[e],t}return{...n,[e]:r}})},[]),en=(0,p.useCallback)(async t=>{if(!(!e||q)&&!(_&&_.agent_status===`running`)){if(!h||!_){Je(t),F7({projectId:e,grillOn:t});return}if(_.mode===(t?`grill`:`standard`)){Je(t);return}Xe(!0);try{let n=await fie(e,_.id,{mode:t?`grill`:`standard`});v(n),Ct(n),Je(t),t||(n.messages??[]).some(e=>e.kind===`grill-question`)&&await g7(e,n.id,{instruction:x7(`grill.finalizePrompt`),tool:n.tool,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[]})}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`grill.updateModeError`))}finally{Xe(!1)}}},[e,_,h,q,Ct,k,N,F,j,L]),tn=(0,p.useCallback)(async()=>{if(!e||te||re)return;let n=_t.trim();if(!n&&yt.length===0)return;ie(!0);let r=gt;try{let i=h,a=!i;!a&&!_&&(await h7(e,i)||(a=!0,i=null)),a&&(ne(!0),i=(await m7(e,{tool:t,mode:qe?`grill`:`standard`,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[],external_source:x??null})).id,g(i),b(!1),S(null),Je(!1),F7({projectId:e,grillOn:!1}),O7({projectId:e,tool:t}),ne(!1));let o=yt.map(e=>e.id),s=await g7(e,i,{instruction:n,tool:t,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[],attachment_ids:o.length>0?o:void 0});v(s),Gie({projectId:e,tool:s.tool,model:s.model,variant:s.variant}),ye(e=>e+1),Qt(i),Xt(r)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{ie(!1),ne(!1)}},[e,te,re,_t,yt,gt,h,_,t,qe,k,N,F,j,L,x,Qt,Xt]),nn=(0,p.useCallback)(async n=>{if(!e)return;let r=h;if(!r&&n.length>0)try{ne(!0),r=(await m7(e,{tool:t,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[]})).id,g(r),b(!1),O7({projectId:e,tool:t})}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.upload`));return}finally{ne(!1)}if(r){$t(r,n.length);try{let t=await pie(e,r,n),i=[...ft.current[r]??[],...t.attachments];Zt(r,i)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.upload`))}finally{$t(r,-n.length)}}},[e,h,t,k,N,F,j,L,$t,Zt]),rn=(0,p.useCallback)(async t=>{if(!(!e||!h))try{await mie(e,h,t),Zt(h,(ft.current[h]??[]).filter(e=>e.id!==t))}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.removeAttachment`))}},[e,h,Zt]);(0,p.useEffect)(()=>{if(!ut.current){ut.current=!0;return}let t=k7(e),n=A7(e);ct.current=!1,lt.current=!1,pt.current=new Set,g(null),v(null),b(!1),S(null),w({}),E({}),O({}),oe(null),se([]),le(new Set),de(!1),pe(new Set),be(null),H(!1),Se(new Set),ht.current=new Map,ot.current=n.width,_e(t.isOpen),Me(n.width),Ae(n.isOpen),Je(P7(e)),Xe(!1)},[e]);let an=(0,p.useCallback)((e,t)=>{pe(n=>{if(n.has(e)===t)return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]);(0,p.useEffect)(()=>{let e=new AbortController;return xt(e.signal),()=>{e.abort()}},[xt]),(0,p.useEffect)(()=>{if(ct.current||y||h||lt.current||f.length===0)return;lt.current=!0;let e=f[0]??null;e&&g(e.id)},[h,y,f]),(0,p.useEffect)(()=>{if(vt!==`opencode`){A([]),M([]),he(!1);return}let t=new AbortController;return(async()=>{he(!0);try{let[n,r]=await Promise.all([Wn(vt,t.signal),eN(vt,t.signal,e)]);A(n),M(r)}catch(e){Ye(e)||(A(e=>e),M(e=>e))}finally{t.signal.aborted||he(!1)}})(),()=>{t.abort()}},[e,vt]),(0,p.useEffect)(()=>{if(vt!==`opencode`){P(``),I(``),R([]);return}if(y){let t=Wie({projectId:e,tool:vt}),n=new Set(k.map(e=>e.id)),r=t?.model??``,i=r&&(n.size===0||n.has(r));P(i?r:``),I(e=>i?t?.variant??e:``),R([]);return}P(_?.model??``),I(_?.variant??``),R(_?.skills??[])},[e,_?.id,_?.model,_?.skills,_?.variant,k,vt,y]),(0,p.useEffect)(()=>{if(y||!h){v(null);return}if(_?.id===h)return;v(null);let e=new AbortController;return St(h,e.signal),()=>{e.abort()}},[_,h,y,St]),(0,p.useEffect)(()=>{if(!h||_?.agent_status!==`running`)return;let e=new AbortController,t=window.setInterval(()=>{Promise.all([xt(e.signal),St(h,e.signal)])},Iie);return()=>{e.abort(),window.clearInterval(t)}},[_?.agent_status,h,St,xt]),(0,p.useEffect)(()=>{if(!e)return;let t=t=>{!t||t.project_id!==e||(t.id===st.current&&v(t),wt(t)&&Ct(t))},n=t=>{!t||t.project_id!==e||qt(t.id)};return o.on(`spec-session:created`,t),o.on(`spec-session:updated`,t),o.on(`spec-session:deleted`,n),()=>{o.off(`spec-session:created`,t),o.off(`spec-session:updated`,t),o.off(`spec-session:deleted`,n)}},[e,wt,Ct,qt,o]);let on=(0,p.useMemo)(()=>I5(f),[f]),sn=(0,p.useCallback)(e=>{e.key!==`Enter`||e.shiftKey||_?.agent_status===`running`||te||re||bt||(e.preventDefault(),tn())},[tn,_?.agent_status,te,re,bt]),cn=(0,p.useCallback)(t=>{if(!e)return;let n=Array.from(t.clipboardData.files).filter(e=>e.type.startsWith(`image/`));n.length!==0&&(t.preventDefault(),nn(n))},[e,nn]),ln=(0,p.useMemo)(()=>z5(k),[k]),un=(0,p.useMemo)(()=>_?V5({modelLabel:B5({availableModelsById:ln,model:_.model}),tool:_.tool}):null,[_,ln]),dn=(0,p.useMemo)(()=>_?.messages?_.messages.map(e=>({id:e.id,role:e.role,kind:e.kind,content:e.content,attachments:e.attachments??[],metadata:e.metadata,created_at:e.created_at,displayTitle:e.role===`assistant`?un??R5(_.tool):H5()})):[],[_,un]),fn=h!==null||y,pn=y?null:_,mn=pn?.streaming_response??null,hn=pn?.agent_status===`running`,gn=hn?un:null,_n=ae!==null,vn=!!e&&!te&&(y||h!==null),yn=vt===`opencode`&&(y||h!==null)&&pn?.agent_status!==`running`,bn=(0,p.useMemo)(()=>{if(!_?.messages)return null;for(let e=_.messages.length-1;e>=0;--e){let t=_.messages[e];if(t.kind===`grill-question`)return t.id}return null},[_]),xn=(0,p.useCallback)(async t=>{if(!(!e||!h||!_)){ie(!0);try{v(await g7(e,h,{instruction:t,tool:_.tool,model:k.length>0&&N||null,variant:k.length>0&&F||null,skills:j.length>0?L:[]})),ye(e=>e+1)}catch(e){Ye(e)||Q.error(e instanceof Error?e.message:x7(`errors.sendPrompt`))}finally{ie(!1)}}},[e,h,_,k,N,F,j,L]),Sn=(0,p.useCallback)(e=>{if(e.role!==`assistant`||e.kind!==`grill-question`)return;let t=e.metadata?.grill_question;if(t)return(0,Y.jsx)(wie,{question:t,isActive:hn?!1:e.id===bn&&_?.agent_status!==`running`&&_?.mode===`grill`,isDisabled:re||te||q,labels:{rationaleLabel:x7(`grill.rationaleLabel`),suggestionsLabel:x7(`grill.suggestionsLabel`),recommendedSuggestionLabel:x7(`grill.recommendedSuggestionLabel`),answerPlaceholder:x7(`grill.answerPlaceholder`),submitLabel:x7(`grill.submitLabel`),submittingLabel:x7(`grill.submittingLabel`)},onSubmitAnswer:e=>{xn(e)}})},[_,hn,re,te,q,bn,xn]),Cn=vt===`opencode`&&k.length>0,wn=vt,Tn=y?x7(`composer.newSpecTitle`):_?.title??x7(`composer.specTitle`),En=Cn?N||null:_?.model??null,Dn=B5({availableModelsById:ln,model:En}),On=_?.agent_status===`stopped`,kn=x7(`composer.placeholderSpec`),An=f.some(e=>e.agent_status!==`running`),jn=(0,p.useMemo)(()=>({ariaLabel:x7(`sidebar.ariaLabel`),newSession:x7(`sidebar.newSession`),collapseAriaLabel:x7(`sidebar.collapseAriaLabel`),openAriaLabel:x7(`sidebar.openAriaLabel`),cancelSelection:x7(`sidebar.cancelSelection`),deleteSelected:x7(`sidebar.deleteSelected`),selectedCount:e=>`${e} selected`,select:x7(`sidebar.select`),loadingSessions:x7(`sidebar.loadingSessions`),noSessions:x7(`sidebar.noSessions`),deleteSessionAriaLabel:x7(`sidebar.deleteSessionAriaLabel`),selectSessionAriaLabel:e=>x7(`sidebar.selectSessionAriaLabel`,{title:e}),selectSessionTitle:e=>x7(`sidebar.selectSessionTitle`,{title:e}),deleteSessionTitle:e=>x7(`sidebar.deleteSessionTitle`,{title:e})}),[]),Mn=(0,p.useMemo)(()=>({title:x7(`deleteModal.title`),bulkTitle:x7(`deleteModal.bulkTitle`),description:x7(`deleteModal.description`),bulkDescription:e=>x7(`deleteModal.bulkDescription`,{count:e}),cancel:x7(`deleteModal.cancel`),delete:x7(`deleteModal.delete`),deleting:x7(`deleteModal.deleting`)}),[]),Nn=(0,p.useCallback)(e=>e.agent_status===`running`?`running`:e.agent_status===`error`||e.agent_status===`done`&&ht.current.get(e.id)===`running`?`finished`:null,[]);(0,p.useEffect)(()=>{let e=new Map;for(let t of f){let n=ht.current.get(t.id)??null,r=t.agent_status??null;n===null&&r===null||n!==r&&e.set(t.id,r)}ht.current=e},[f]);let Pn=(0,p.useCallback)(e=>e.agent_status===`running`?x7(`sidebar.cannotDeleteRunning`):null,[]),Fn=(0,p.useCallback)(e=>{let t=(e.linked_ticket_count??0)+(e.linked_chat_count??0);return t>0?`${e.title} — ${x7(`sidebar.linkedImplementationsAriaLabel`,{itemCount:t})}`:e.title},[]),In=e=>{let t=e.first_user_message_preview??e.messages?.find(e=>e.role===`user`)?.content;return t&&t.replace(/\s+/g,` `).trim()||null},Ln=(0,p.useCallback)(({session:e,activityState:t})=>{let n=In(e),r=e.linked_ticket_count??0,i=e.linked_chat_count??0,a=r+i;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 truncate text-[13px] font-medium leading-5`,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:e.title}),a>0&&(0,Y.jsx)(Sv,{content:x7(`sidebar.linkedImplementationsTooltip`,{ticketCount:r,chatCount:i}),children:(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-0.5 text-[11px] text-indigo-500 dark:text-indigo-400`,children:[(0,Y.jsx)(aP,{className:`size-3`}),(0,Y.jsx)(`span`,{children:a})]})})]}),n?(0,Y.jsx)(`div`,{className:`mt-0.5 line-clamp-1 text-xs leading-4 text-muted-foreground`,children:n}):null]}),(0,Y.jsx)(Ty,{state:t,className:`mt-1`})]})},[]),Rn=hn?(0,Y.jsx)(_5,{isInterrupting:_n,onStop:()=>{h&&kt(h)},interruptLabel:x7(`composer.interrupt`),interruptingLabel:x7(`composer.interrupting`)}):null,zn=(0,p.useMemo)(()=>k.find(e=>e.id===N)??null,[k,N]),Bn=vt===`opencode`?me?(0,Y.jsx)(MG,{}):k.length>0?(0,Y.jsx)(NG,{model:N,variant:F,skills:L,showModelSelector:!0,showSkillsSelector:!0,availableModels:k,availableSkills:j,selectedModel:zn,onModelChange:e=>{let t=k.find(t=>t.id===e)??null;P(e),I(e=>t&&t.variants.includes(e)?e:``)},onVariantChange:I,onSkillsChange:R,modelSelectId:`spec-model-select`,variantSelectId:`spec-variant-select`,skillsSelectId:`spec-skills-select`}):null:null,Vn=(0,p.useMemo)(()=>W.length===1?f.find(e=>e.id===W[0])?.title??``:``,[W,f]),Hn=(0,p.useMemo)(()=>f.filter(e=>W.includes(e.id)),[f,W]),Un=fn&&_!==null,Gn=Un&&!ke&&!Fe,Kn=Un&&(ke||Fe);(0,p.useEffect)(()=>{Un||($e.current=null,et.current=null,nt.current=!1,rt.current=!1,Pe(!1),Ie(!1),Pt())},[Un,Pt]),(0,p.useEffect)(()=>()=>{Pt()},[Pt]);let qn=(0,Y.jsx)(Sv,{content:x7(`artifactPanel.open`),disabled:!Gn,side:`left`,children:(0,Y.jsx)(`div`,{ref:J,className:X(Gn?`group flex shrink-0 touch-none select-none items-center justify-center border-l border-border/70 bg-background/90 text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground xl:w-7 xl:cursor-col-resize`:`group hidden w-5 shrink-0 cursor-col-resize touch-none select-none items-center justify-center border-l border-border/70 bg-background/80 transition-colors xl:flex`,Ne&&!Gn&&`bg-background`),role:Gn?`button`:`separator`,tabIndex:Gn?0:void 0,"aria-label":x7(Gn?`artifactPanel.open`:`artifactPanel.resize`),"aria-valuemin":Gn?void 0:E7,"aria-valuemax":Gn?void 0:Ze.current?Math.round(Ze.current.clientWidth*D7):800,"aria-valuenow":Gn?void 0:je,onClick:Gn?()=>{if(rt.current){rt.current=!1;return}Ae(!0)}:void 0,onPointerDown:zt,onPointerMove:Bt,onPointerUp:Vt,onPointerCancel:Ht,onLostPointerCapture:Ut,children:Gn?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`hidden h-full w-full items-center justify-center xl:flex`,children:(0,Y.jsxs)(`span`,{className:`relative flex h-full w-full items-center justify-center`,children:[(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-[2.65rem] items-center justify-center text-sky-400/80 transition-colors group-hover:text-sky-300`,children:(0,Y.jsx)(Mv,{className:`h-3 w-3 shrink-0`})}),(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 h-14 w-1.5 -translate-x-1/2 -translate-y-1/2 rounded-full bg-muted-foreground/70 transition-colors group-hover:bg-sky-300/90`})]})}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-xs font-medium xl:hidden`,children:[(0,Y.jsx)(Mv,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:x7(`artifactPanel.title`)})]})]}):(0,Y.jsx)(`div`,{className:X(`h-14 w-1.5 rounded-full transition-colors`,Ne?`bg-sky-300/90`:`bg-muted-foreground/70 group-hover:bg-sky-300/90`)})})}),Jn=y&&Et?(0,Y.jsx)(rG,{providers:Tt,onImported:Yt,inputId:`spec-draft-external-import`,className:`max-w-md`}):null,Yn=(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-end gap-2`,children:[(0,Y.jsx)(Oie,{on:_?_.mode===`grill`:qe,disabled:q||hn||te||re,tooltipContent:x7(`grill.toggleTooltip`),ariaLabelOn:x7(`grill.toggleAriaLabelOn`),ariaLabelOff:x7(`grill.toggleAriaLabelOff`),onToggle:e=>{en(e)}}),Jn,Rn]}),Xn=Bn,Zn=(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,Y.jsx)(kie,{projectId:e,messages:dn,internalLog:pn?.agent_log??null,currentThinkingMessageId:pn?.agent_message_id??null,previousThinkingLog:pn?.previous_agent_log??null,previousThinkingMessageId:pn?.previous_agent_message_id??null,pendingAgentTitle:gn,streamingResponse:mn,isRunning:hn,isLoading:ee,canShowComposer:vn,isExternallyResizing:Ne,scrollLayoutKey:Un?Kn?`artifact-visible`:`artifact-hidden`:`artifact-disabled`,header:(0,Y.jsx)(k5,{title:Tn,tool:y?null:_?.tool??null,modelLabel:Dn,interrupted:On,interruptedLabel:x7(`sidebar.interrupted`),usage:{totalTokens:_?.usage_snapshot_total_tokens??null,contextWindow:_?.usage_snapshot_context_window??null,cost:_?.usage_snapshot_cost??null,tool:wn,model:En,availableModels:k}}),composerControls:Yn,composerInlineControls:Xn,composerTheme:`default`,composerFocusNonce:ve,pendingAgentRevealKey:hn&&G?.sessionId===_?.id?G.turnKey:null,pendingAgentRevealDelayMs:hn&&G?.sessionId===_?.id?400:0,followUpPrompt:_t,draftAttachments:yt,followUpPlaceholder:kn,emptyStateText:y?x7(`composer.describeFeature`):null,isSendingFollowUp:re||te,isUploadingAttachments:bt,canAttachImages:yn,followUpDisabledReason:pn?.agent_status===`running`?x7(`composer.waitTurn`):bt?x7(`composer.waitUpload`):void 0,renderMessageBody:Sn,onFollowUpPromptChange:e=>{Jt(gt,e)},onFollowUpKeyDown:sn,onFollowUpPaste:cn,onUploadAttachments:e=>{nn(e)},onRemoveAttachment:e=>{rn(e)},onFollowUpSubmit:()=>{tn()}})}),Qn=!fn&&V&&!z?(0,Y.jsx)(h5,{title:x7(`composer.noSessionSelectedTitle`),description:x7(`composer.noSessionSelectedDescription`),startNewSessionLabel:x7(`composer.startNewSession`),onStartNewSession:Dt,canStartNewSession:!!e&&!te&&!re}):fn&&!y&&!ee&&!_?(0,Y.jsx)(p5,{label:x7(`composer.loadingSession`)}):!V||z?(0,Y.jsx)(m5,{label:x7(`sidebar.loadingSessions`)}):Zn,$n=Hn.length>0?(0,Y.jsx)(f5,{count:Hn.length,title:Vn,isDeleting:ce.size>0,onConfirm:()=>{Gt()},onCancel:()=>{ce.size>0||se([])},labels:Mn}):null,er=Ge===null?null:(0,Y.jsx)(nb,{title:x7(`actions.exportConflictTitle`),description:x7(`actions.exportConflictDescription`,{path:Ge}),confirmLabel:x7(`actions.exportConflictDismiss`),cancelLabel:``,onConfirm:()=>{Ke(null)},onCancel:()=>{Ke(null)}});return(0,Y.jsxs)(`div`,{"data-testid":`spec-view-shell`,className:`relative flex min-h-0 flex-1 overflow-hidden border-t border-border/70`,children:[(0,Y.jsx)(g5,{sessions:f,sessionGroups:on,activeSessionId:h,isDraftOpen:y,isLoadingSessions:z,isOpen:ge,onToggleOpen:()=>{_e(t=>{let n=!t;return Bie({projectId:e,isOpen:n}),n})},testId:`spec-sessions-sidebar`,railTestId:`spec-sessions-rail`,onDraftOpen:Dt,isCreatingSession:te||!e,isSendingPrompt:re,newSessionShortcutHint:(0,Y.jsx)($M,{children:`/`}),newSessionTooltip:x7(`sidebar.newSessionTooltip`),isSelectionMode:ue,selectedSessionIds:fe,selectedSessionCount:fe.size,hasDeletableSessions:An,deletingSessionIds:ce,onEnterSelectionMode:()=>{de(!0),pe(new Set)},onExitSelectionMode:()=>{de(!1),pe(new Set)},onToggleSessionSelection:e=>{pe(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},onSetSessionSelection:an,onConfirmDeleteSelectedSessions:()=>{se(Array.from(fe))},onSessionSelect:e=>{Ot(e)},onConfirmDeleteSession:e=>{se([e])},getSessionId:e=>e.id,getSessionTitle:e=>e.title,getDeleteDisabledReason:Pn,getActivityState:Nn,getRowAriaLabel:Fn,renderRowContent:Ln,labels:jn}),(0,Y.jsxs)(`div`,{ref:Ze,className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden xl:flex-row`,children:[(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:Qn}),Un?(0,Y.jsxs)(Y.Fragment,{children:[qn,Kn?(0,Y.jsx)(Pie,{snapshot:Ce,isLoading:De,desktopWidth:je,onClose:Wt,ref:Qe,actions:Ce?{onCreateTickets:jt,onImplementInChat:()=>{Mt()},onExport:()=>{Nt()},isCreatingTickets:Le,isImplementingInChat:ze,isExporting:Ve,hasExistingTicketsFromSnapshot:He}:void 0}):null]}):null]}),$n,er]})},I7=()=>({hasRunning:!1,hasFinishedUnseen:!1,hasErrorUnseen:!1}),L7=()=>({board:I7(),chat:I7(),spec:I7(),memory:I7()}),R7=(e,t)=>{let n=e[t];return!n.hasFinishedUnseen&&!n.hasErrorUnseen?e:{...e,[t]:{...n,hasFinishedUnseen:!1,hasErrorUnseen:!1}}},Jie=e=>({hasRunning:e.board.hasRunning||e.chat.hasRunning||e.spec.hasRunning,hasFinishedUnseen:e.board.hasFinishedUnseen||e.chat.hasFinishedUnseen||e.spec.hasFinishedUnseen,hasErrorUnseen:e.board.hasErrorUnseen||e.chat.hasErrorUnseen||e.spec.hasErrorUnseen}),z7=e=>e.hasErrorUnseen?`error`:e.hasRunning?`running`:e.hasFinishedUnseen?`finished`:null,Yie=(e,t)=>t?null:z7(e),B7=320,Xie=.7,Zie=28,Qie=6,$ie=(e,t)=>{let n=Math.max(B7,Math.round(t*Xie));return Math.max(B7,Math.min(n,Math.round(e)))},eae=(e,t)=>{let n=e.findIndex(e=>e.id===t.id);if(n===-1)return[...e,t];let r=e.slice();return r[n]=t,r},tae=(e,t)=>{if(t.type===`reset`)return L7();if(t.type===`mark-workspace-visible`)return R7(e,t.workspace);let n=e[t.workspace],r={...n,hasRunning:t.activity.hasRunning,hasFinishedUnseen:t.visibleWorkspace===t.workspace?!1:n.hasFinishedUnseen||t.activity.didFinish,hasErrorUnseen:t.visibleWorkspace===t.workspace?!1:n.hasErrorUnseen||t.activity.didError};return n.hasRunning===r.hasRunning&&n.hasFinishedUnseen===r.hasFinishedUnseen&&n.hasErrorUnseen===r.hasErrorUnseen?e:{...e,[t.workspace]:r}},nae=({activeProjectId:e,onActivity:t})=>{let{tickets:n}=W8(),r=(0,p.useRef)(new Map);return(0,p.useEffect)(()=>{r.current=new Map},[e]),(0,p.useEffect)(()=>{let e=r.current,i=new Map,a=!1,o=!1;for(let t of n){let n=e.get(t.id)??null,r=t.agent_status??null;n===`running`&&r===`done`&&(a=!0),n===`running`&&r===`error`&&(o=!0),i.set(t.id,r)}r.current=i,t({hasRunning:n.some(e=>e.agent_status===`running`),didFinish:a,didError:o})},[t,n]),null},rae=({activeProjectId:e,onActivity:t})=>{let n=I8(),[r,i]=(0,p.useState)([]),a=(0,p.useRef)(new Map);return(0,p.useEffect)(()=>{if(!e)return;let t=new AbortController;return(async()=>{try{let n=await Fk(e,t.signal);if(t.signal.aborted)return;i(n)}catch(e){Ye(e)}})(),()=>{t.abort()}},[e,n]),(0,p.useEffect)(()=>{if(!e)return;let t=new AbortController,n=n3(()=>{document.visibilityState===`visible`&&Fk(e,t.signal).then(e=>{t.signal.aborted||i(e)}).catch(e=>{Ye(e)})});return()=>{t.abort(),n()}},[e,n]),(0,p.useEffect)(()=>{if(!e)return;let t=t=>{!t||t.project_id!==e||i(e=>eae(e,t))},r=t=>{!t||t.project_id!==e||i(e=>e.filter(e=>e.id!==t.id))};return n.on(`chat-session:created`,t),n.on(`chat-session:updated`,t),n.on(`chat-session:deleted`,r),()=>{n.off(`chat-session:created`,t),n.off(`chat-session:updated`,t),n.off(`chat-session:deleted`,r)}},[e,n]),(0,p.useEffect)(()=>{let n=a.current,i=new Map,o=[],s=!1;for(let e of r){let t=n.get(e.id)??null,r=e.agent_status??null;t===`running`&&r===`done`&&o.push(e),t===`running`&&r===`error`&&(s=!0),i.set(e.id,r)}a.current=i;for(let e of o)e.title&&P8(`Chat response ready`,e.title);o.length>0&&e&&$4(e),t({hasRunning:r.some(e=>e.agent_status===`running`),didFinish:o.length>0,didError:s})},[e,t,r]),null},iae=({activeProjectId:e,onActivity:t})=>{let n=I8();return(0,p.useEffect)(()=>{if(!e)return;let r=n=>{!n||n.project_id!==e||t({hasRunning:n.agent_status===`running`,didFinish:n.agent_status===`done`,didError:n.agent_status===`error`})},i=e=>{!e||e.project_id};return n.on(`spec-session:created`,r),n.on(`spec-session:updated`,r),n.on(`spec-session:deleted`,i),()=>{n.off(`spec-session:created`,r),n.off(`spec-session:updated`,r),n.off(`spec-session:deleted`,i)}},[e,t,n]),null},aae=({activeProjectId:e,activeProject:t=null,activeProjectBranchState:n=null,activeRun:r,activeTool:i,onRestoreChatSessionTarget:a,onChatReviewCapabilityChange:o,onPreviewReviewCapabilityChange:s,previewDisplayMode:c=`hidden`,previewPane:l=null,previewPaneWidth:u=480,isPreviewButtonDisabled:d=!1,previewButtonTitle:f,visibleWorkspace:m,onProjectUsageChange:h,onBundlesChange:g,onBundlesLoadingChange:_,onBoardLoadedProjectIdChange:v,onPreviewToggle:y,onPreviewPaneWidthChange:b,onRunStopped:x,onRunStatusChange:S,onWorkspaceActivityChange:C,onWorkspaceActivityEvent:w,pendingWorkspaceNavigation:T=null,onPendingWorkspaceNavigationConsumed:E,onSpecImplementationChatReady:D,onViewSourceSpec:O,refreshKey:k=0})=>{let A=(0,p.useRef)(null),j=(0,p.useRef)(null),M=(0,p.useRef)(null),N=(0,p.useRef)(null),P=(0,p.useRef)(!1),F=(0,p.useRef)(!1),I=(0,p.useRef)(0),L=(0,p.useRef)(u),R=(0,p.useRef)(u),z=m===`board`||m===`chat`,B=l!==null,[V,H]=(0,p.useState)(!1),[ee,U]=(0,p.useState)(!1),[te,ne]=(0,p.useState)(u),[re,ie]=(0,p.useReducer)(tae,void 0,L7),ae=z&&B&&c===`expanded`,oe=z&&B&&c===`inline`,W=z&&B&&c===`hidden`&&!ee,se=(oe||ee)&&!ae,ce=ae||se,le=z&&B&&!ae,ue=V?te:u,de=m!==`chat`||!se,fe=e=>{let t=M.current,n=N.current,r=P.current;if(t!==null){if(M.current=null,N.current=null,P.current=!1,H(!1),U(!1),e!==null&&j.current?.hasPointerCapture(e)&&j.current.releasePointerCapture(e),n===`collapsed`){if(!r)return;b?.(R.current),y?.();return}b?.(R.current)}},pe=e=>{if(!A.current)return;let t=A.current.getBoundingClientRect().width,n=$ie(e,t);R.current=n,ne(n)},me=e=>{b&&(W&&d||(e.preventDefault(),M.current=e.pointerId,N.current=W?`collapsed`:`inline`,P.current=!1,F.current=!1,I.current=e.clientX,L.current=W?0:R.current,H(!W),e.currentTarget.setPointerCapture(e.pointerId)))},he=e=>{if(M.current!==e.pointerId)return;let t=e.clientX-I.current,n=L.current-t;if(N.current===`collapsed`){if(!P.current&&n<Qie)return;P.current||(P.current=!0,F.current=!0,U(!0),H(!0))}pe(n)},ge=e=>{if(M.current===e.pointerId){if(N.current===`inline`||P.current){let t=e.clientX-I.current;pe(L.current-t)}fe(e.pointerId)}},_e=e=>{M.current===e.pointerId&&fe(e.pointerId)},ve=(0,p.useCallback)((e,t)=>{w?.(e,t),ie({type:`update-workspace`,workspace:e,activity:t,visibleWorkspace:m})},[w,m]);(0,p.useEffect)(()=>{ie({type:`reset`})},[e]),(0,p.useEffect)(()=>{m!==`memory`&&ie({type:`mark-workspace-visible`,workspace:m})},[m]),(0,p.useEffect)(()=>{C?.(re)},[C,re]),(0,p.useEffect)(()=>{V||(R.current=u),!B&&(M.current=null,N.current=null,P.current=!1,F.current=!1,R.current=u)},[B,V,u]);let ye=()=>{if(F.current){F.current=!1;return}d||y?.()};return(0,Y.jsx)(U8,{activeProjectId:e,refreshKey:k,onLoadedProjectIdChange:v,onProjectUsageChange:h,onBundlesChange:g,onBundlesLoadingChange:_,children:(0,Y.jsxs)(`div`,{ref:A,className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsx)(nae,{activeProjectId:e,onActivity:e=>{ve(`board`,e)}}),(0,Y.jsx)(rae,{activeProjectId:e,onActivity:e=>{ve(`chat`,e)}}),(0,Y.jsx)(iae,{activeProjectId:e,onActivity:e=>{ve(`spec`,e)}}),m===`spec`?(0,Y.jsx)(`div`,{id:`project-workspace-panel-spec`,role:`tabpanel`,"aria-labelledby":`project-workspace-tab-spec`,className:`flex min-h-0 flex-1 flex-col`,children:(0,Y.jsx)(qie,{activeProjectId:e,activeTool:i,initialSpecSessionId:T?.workspace===`spec`?T.specSessionId:null,initialSpecSnapshotId:T?.workspace===`spec`?T.specSnapshotId??null:null,onInitialSpecNavigationConsumed:E,onImplementInChat:D})}):m===`memory`?(0,Y.jsx)(`div`,{id:`project-workspace-panel-memory`,role:`tabpanel`,"aria-labelledby":`project-workspace-tab-memory`,className:`flex min-h-0 flex-1 flex-col`,children:(0,Y.jsx)(uie,{activeProject:t})}):(0,Y.jsxs)(`div`,{id:m===`chat`?`project-workspace-panel-chat`:`project-workspace-panel-board`,role:`tabpanel`,"aria-labelledby":m===`chat`?`project-workspace-tab-chat`:`project-workspace-tab-board`,className:`flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:m===`chat`?(0,Y.jsx)(cie,{activeProjectId:e,activeProject:t,activeProjectBranchState:n,activeTool:i,initialChatSessionId:T?.workspace===`chat`&&`chatSessionId`in T?T.chatSessionId:null,initialSpecDraft:T?.workspace===`chat`&&`draft`in T?{text:T.draftText,specSessionId:T.specSessionId,specSnapshotId:T.specSnapshotId}:null,onInitialSpecDraftConsumed:E,onInitialChatNavigationConsumed:E,onViewSourceSpec:O,isExternallyResizing:V,onRestoreSessionTarget:a,onReviewCapabilityChange:o,showChangesPanel:de}):(0,Y.jsx)(mre,{activeProjectId:e,activeProject:t,activeProjectBranchState:n,activeRun:r,activeTool:i,onPreviewReviewCapabilityChange:s,onRunStopped:x,onRunStatusChange:S,onViewSourceSpec:O,refreshKey:k})}),[le?(0,Y.jsx)(Sv,{content:d?f??`Preview unavailable`:`Open preview`,disabled:!W,side:`left`,children:(0,Y.jsx)(`div`,{"aria-label":W?f??`Show preview`:`Resize preview pane`,"aria-orientation":W?void 0:`vertical`,className:W?`group flex shrink-0 touch-none select-none items-center justify-center border-l border-border/70 bg-background/90 transition-colors ${d?`cursor-not-allowed text-muted-foreground/60`:`cursor-col-resize text-muted-foreground hover:bg-muted/50 hover:text-foreground`}`:`group flex w-5 shrink-0 cursor-col-resize touch-none select-none items-center justify-center border-l border-border/70 bg-background/80 ${V?`bg-background`:``}`,"data-preview-divider":`true`,"data-testid":W?`collapsed-preview-rail`:void 0,onLostPointerCapture:_e,onPointerCancel:ge,onPointerDown:me,onPointerMove:he,onPointerUp:ge,onClick:W?ye:void 0,onKeyDown:W?e=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),ye())}:void 0,ref:j,role:W?`button`:`separator`,style:W?{width:`${Zie}px`}:void 0,tabIndex:W?d?-1:0:void 0,children:W?(0,Y.jsxs)(`span`,{className:`relative flex h-full w-full items-center justify-center`,children:[(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-[2.65rem] items-center justify-center text-sky-400/80 transition-colors group-hover:text-sky-300`,children:(0,Y.jsx)(lie,{className:`h-3 w-3 shrink-0`})}),(0,Y.jsx)(`span`,{className:`absolute top-1/2 left-1/2 h-14 w-1.5 -translate-x-1/2 -translate-y-1/2 rounded-full bg-muted-foreground/70 transition-colors group-hover:bg-sky-300/90`})]}):(0,Y.jsx)(`div`,{className:`h-14 w-1.5 rounded-full transition-colors ${V?`bg-sky-300/90`:`bg-muted-foreground/70 group-hover:bg-sky-300/90`}`})})},`preview-divider`):null,ce?(0,Y.jsx)(`div`,{className:ae?`fixed inset-0 z-50 bg-black/70 p-4 sm:p-6`:`min-h-0 shrink-0 border-l border-border/70 bg-[#11131a]`,style:ae?void 0:{width:`${ue}px`},children:(0,Y.jsx)(`div`,{className:`h-full w-full`,children:l})},`preview-container`):null]]})]})})},oae=({isExpanded:e,isVisible:t,project:n,onClose:r,onToggleExpanded:i})=>(0,Y.jsx)(`div`,{className:[`fixed inset-x-4 bottom-24 z-40`,e?`top-20`:`h-[min(28rem,calc(100vh-8rem))]`,t?`block`:`hidden`].join(` `),children:(0,Y.jsx)(q0,{createSession:()=>dP(n.id),isExpanded:e,isVisible:t,ariaLabel:`Project terminal for ${n.name}`,title:n.name,closeLabel:`Close terminal`,className:e?`h-full w-full rounded-2xl shadow-2xl`:`mx-auto h-full max-w-6xl shadow-2xl`,onClose:r,onToggleExpanded:i})}),sae=({activeWorkspace:e,activityByWorkspace:t,memoryEnabled:n=!1,onWorkspaceChange:r})=>(0,Y.jsx)(`div`,{role:`tablist`,"aria-label":`Project workspace`,className:`inline-flex items-end gap-1 border-b border-border/70`,children:(n?[`board`,`chat`,`spec`,`memory`]:[`board`,`chat`,`spec`]).map(n=>{let i=e===n,a=Yie(t[n],i),o=n===`board`?`border-sky-300/70 bg-sky-500/8 text-sky-200`:n===`spec`?`border-violet-300/70 bg-violet-500/8 text-violet-200`:n===`memory`?`border-amber-300/70 bg-amber-500/8 text-amber-200`:`border-emerald-300/70 bg-emerald-500/8 text-emerald-200`;return(0,Y.jsx)(`button`,{id:`project-workspace-tab-${n}`,type:`button`,role:`tab`,"aria-selected":i,"aria-controls":`project-workspace-panel-${n}`,tabIndex:i?0:-1,className:X(`cursor-pointer rounded-t-lg border-b-2 px-4 py-2.5 text-[15px] font-medium transition-colors duration-150 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60`,i?o:`border-transparent text-muted-foreground hover:border-border hover:bg-background/35 hover:text-foreground`),onClick:()=>r(n),children:(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{children:n===`board`?`Board`:n===`chat`?`Chat`:n===`spec`?`Spec`:`Memory`}),(0,Y.jsx)(Ty,{state:a,className:`mt-0`})]})},n)})}),V7=32,cae=5.5,lae=2,uae=24,dae=8,H7=new Map,fae={running:{fill:`#fcd34d`,stroke:`#f59e0b`},finished:{fill:`#34d399`,stroke:`#059669`},error:{fill:`#fb7185`,stroke:`#e11d48`}},U7=e=>e.replaceAll(`&`,`&`).replaceAll(`"`,`"`).replaceAll(`<`,`<`).replaceAll(`>`,`>`),W7=e=>{if(!e)return null;let t=e.trim().match(/^([0-9]+(?:\.[0-9]+)?)/);return t?Number(t[1]):null},G7=e=>{let t=new DOMParser().parseFromString(e,`image/svg+xml`);if(t.querySelector(`parsererror`))return null;let n=t.documentElement;if(n.nodeName.toLowerCase()!==`svg`)return null;let r=n.getAttribute(`viewBox`)?.trim(),i=W7(n.getAttribute(`width`)),a=W7(n.getAttribute(`height`)),o=r??(i&&a?`0 0 ${i} ${a}`:`0 0 ${V7} ${V7}`);return`<svg ${[Array.from(n.attributes).filter(e=>![`width`,`height`,`viewBox`,`x`,`y`,`preserveAspectRatio`].includes(e.name)).map(e=>`${e.name}="${U7(e.value)}"`).join(` `),`x="0"`,`y="0"`,`width="${V7}"`,`height="${V7}"`,`viewBox="${U7(o)}"`,`preserveAspectRatio="xMidYMid meet"`].filter(e=>e.length>0).join(` `)}>${n.innerHTML}</svg>`},pae=async e=>{if(!e)return null;let t=H7.get(e);if(t)return t;let n=(async()=>{try{if(e.startsWith(`data:image/svg+xml,`))return G7(decodeURIComponent(e.slice(19)));if(e.startsWith(`data:image/svg+xml;base64,`))return G7(atob(e.slice(26)));let t=await fetch(e);return t.ok?G7(await t.text()):null}catch{return null}})();return H7.set(e,n),n},mae=async(e,t)=>{let{fill:n,stroke:r}=fae[e],i=await pae(t);return i?[`<svg xmlns="http://www.w3.org/2000/svg" width="${V7}" height="${V7}" viewBox="0 0 ${V7} ${V7}">`,i,`<circle cx="${uae}" cy="${dae}" r="${cae}" fill="${n}" stroke="${r}" stroke-width="${lae}"/>`,`</svg>`].join(``):null},hae=async(e,t)=>{if(!e)return t;let n=await mae(e,t);return n?`data:image/svg+xml,${encodeURIComponent(n)}`:t},gae=()=>{let e=document.querySelector(`link[rel="icon"]`);if(e)return e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.appendChild(t),t},K7=({defaultHref:e,state:t})=>{let n=gae(),r=Number(n.dataset.browserTabActivityRequestId??`0`)+1;if(n.dataset.browserTabActivityState=t??`default`,n.dataset.browserTabActivityRequestId=String(r),!t){if(e){n.href=e;return}n.removeAttribute(`href`);return}hae(t,e).then(e=>{if(n.dataset.browserTabActivityRequestId===String(r)){if(e){n.href=e;return}n.removeAttribute(`href`)}})},q7=(e,t)=>sb.t(`common:projectFooter.${e}`,t),_ae=1e3,J7=`archon.active-project-id`,Y7=`archon.workspace-by-project`,X7=`archon.preview-mode-by-project`,Z7=`archon.dismissed-preview-run-context-by-project`,Q7=5e3,$7=`archon.preview-pane-width`,e9=`archon.preview-viewport-preset`,t9=`archon.preview-zoom`,vae=480,yae=`responsive`,bae=1,n9={hasMounted:!1,isOpen:!1,isExpanded:!1},r9=`hidden`,xae=(0,p.lazy)(()=>bU(()=>Promise.resolve().then(()=>l6).then(e=>({default:e.TicketChangesModal})),void 0)),Sae=(0,p.lazy)(()=>bU(()=>import(`./TestsDialog-DR6zI8VO.js`).then(e=>({default:e.TestsDialog})),__vite__mapDeps([19,3]))),i9=e=>{if(!e)return null;try{return JSON.parse(e)}catch{return null}},a9=e=>{let t=i9(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>0):[]},o9=e=>{let t=i9(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.name==`string`?t.name:``,r=typeof t.cmd==`string`?t.cmd:``,i=typeof t.cwd==`string`?t.cwd:``;return n.trim()===``&&r.trim()===``&&i.trim()===``?[]:[{name:n,cmd:r,cwd:i}]}):[]},Cae=e=>{let t=i9(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.source==`string`?t.source:``,r=typeof t.target==`string`?t.target:``,i=t.mode===`copy`||t.mode===`symlink`?t.mode:`copy`;return n.trim()===``&&r.trim()===``?[]:[{source:n,target:r,mode:i}]}):[]},wae=e=>({name:e.name,repoPath:e.repo_path,linkedProjectIds:e.linked_project_ids,runSetup:a9(e.run_setup),runServices:o9(e.run_services),testCommands:v8(e.test_commands),runIde:e.run_ide??``,previewServiceName:e.preview_service_name??``,previewPath:e.preview_path??``,previewCapabilityMode:e.preview_capability_mode??`auto`,helperModel:e.helper_model??``,helperVariant:e.helper_variant??``,commitMessageRules:e.commit_message_rules??``,autoParkStaleTickets:e.auto_park_stale_tickets,memoryEnabled:e.memory_enabled,worktreeSync:Cae(e.worktree_sync)}),s9=e=>{let t=e.testCommands??[],n=e.previewServiceName?.trim()||null,r=e.previewPath?.trim()||``,i=r===``||r===`/`?null:r,a=n||i||e.previewCapabilityMode===`force_web`||e.previewCapabilityMode===`force_disabled`?e.previewCapabilityMode??`auto`:null;return{name:e.name,repo_path:e.repoPath,linked_project_ids:e.linkedProjectIds,run_setup:e.runSetup.length>0?e.runSetup:null,run_services:e.runServices.length>0?e.runServices.map(e=>({...e.name?{name:e.name}:{},cmd:e.cmd,...e.cwd?{cwd:e.cwd}:{}})):null,...t.length>0?{test_commands:t.map(e=>({id:e.id,name:e.name,command:e.command,runner:e.runner,...e.cwd?{cwd:e.cwd}:{}}))}:{},run_ide:e.runIde||null,preview_service_name:n,preview_path:i,preview_capability_mode:a,helper_model:e.helperModel||null,helper_variant:e.helperModel&&e.helperVariant||null,commit_message_rules:e.commitMessageRules||null,auto_park_stale_tickets:e.autoParkStaleTickets,memory_enabled:e.memoryEnabled,worktree_sync:e.worktreeSync.length>0?e.worktreeSync.map(e=>({source:e.source,...e.target?{target:e.target}:{},mode:e.mode})):null}},Tae=e=>e?a9(e.run_setup).length>0||o9(e.run_services).length>0||(e.run_ide?.trim().length??0)>0:!1,c9=(e,t,n)=>`${e} ${e===1?t:n}`,Eae=e=>{if(!e.repo_path_locked)return null;let t=[];return e.ticket_count>0&&t.push(c9(e.ticket_count,`ticket is attached`,`tickets are attached`)),e.worktree_count>0&&t.push(c9(e.worktree_count,`worktree exists`,`worktrees exist`)),t.length===0?`Repository path is locked for this project.`:`Repository path is locked because ${t.join(` and `)}.`},Dae=(e,t)=>{if(t.length<=1)return`Keep at least one project in Archon.`;let n=[];e.ticket_count>0&&n.push(c9(e.ticket_count,`ticket is attached`,`tickets are attached`)),e.worktree_count>0&&n.push(c9(e.worktree_count,`worktree exists`,`worktrees exist`));let r=t.filter(t=>t.linked_project_ids.includes(e.id)).length;return r>0&&n.push(c9(r,`project links to it`,`projects link to it`)),n.length===0?null:`This project can't be deleted while ${n.join(` and `)}.`},Oae=(e,t)=>e.id!==t.projectId||e.ticket_count===t.ticketCount&&e.worktree_count===t.worktreeCount&&e.repo_path_locked===t.repoPathLocked?e:{...e,ticket_count:t.ticketCount,worktree_count:t.worktreeCount,repo_path_locked:t.repoPathLocked},kae=(e,t)=>({projectId:e,branch:t.branch,status:t.status,ahead:t.ahead??0,behind:t.behind??0,hasUpstream:t.has_upstream??!1,canPull:t.can_pull??!1,diffStats:t.diff_stats??null}),l9=e=>({projectId:e,branch:null,status:`loading`,ahead:0,behind:0,hasUpstream:!1,canPull:!1,diffStats:null}),u9=(e,t)=>t?e[t]??n9:n9,d9=(e,t)=>t?e[t]??r9:r9,Aae=()=>{let e=window.localStorage.getItem($7),t=Number(e);return Number.isFinite(t)&&t>=320?t:vae},jae=()=>{let e=window.localStorage.getItem(e9);return e===`phone`||e===`tablet`||e===`laptop`||e===`responsive`?e:yae},Mae=()=>{let e=Number(window.localStorage.getItem(t9));return Number.isFinite(e)&&e>0?e:bae},Nae=()=>{let e=i9(window.localStorage.getItem(Y7));return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,e])=>e===`board`||e===`chat`||e===`memory`))},Pae=()=>{let e=i9(window.localStorage.getItem(X7));return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,e])=>e===`hidden`||e===`inline`||e===`expanded`))},Fae=()=>{let e=i9(window.localStorage.getItem(Z7));return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([,e])=>typeof e==`string`||e===null))},f9=e=>!!e?.preview_service_name?.trim()&&e?.preview_capability_mode!==`force_disabled`,Iae=({activeRun:e,project:t})=>{if(!e||e.kind!==`project`||!t)return!1;let n=t.active_target_kind??`repo_root`,r=t.active_target_bundle_id??null;return e.project_id===t.id&&(e.target_kind??`repo_root`)===n&&((e.target_kind??`repo_root`)!==`bundle`||e.target_bundle_id===r)},Lae=({activeRun:e,project:t,projectId:n})=>!e||!n?null:e.kind===`ticket`?e.project_id===n?e:null:Iae({activeRun:e,project:t})?e:null,p9=`Project root has uncommitted changes. Confirm branch switch to continue.`,Rae=({activeProject:e,activeProjectBranchState:t,nextTarget:n})=>e?n.kind===`bundle`?e.active_target_kind!==`bundle`||e.active_target_bundle_id!==n.bundleId:e.active_target_kind===`bundle`?!0:n.branch?t?.branch!==n.branch:!1:!1,zae=()=>{let[e,t]=(0,p.useState)(`opencode`),[n,r]=(0,p.useState)(!1),[i,a]=(0,p.useState)([]),[o,s]=(0,p.useState)(()=>window.localStorage.getItem(J7)),[c,l]=(0,p.useState)(null),[u,d]=(0,p.useState)(null),[f,m]=(0,p.useState)(null),[h,g]=(0,p.useState)({}),[_,v]=(0,p.useState)({}),[y,b]=(0,p.useState)({}),[x,S]=(0,p.useState)({}),[C,w]=(0,p.useState)({}),[T,E]=(0,p.useState)(Pae),[D,O]=(0,p.useState)(Fae),[k,A]=(0,p.useState)(Aae),[j,M]=(0,p.useState)(jae),[N,P]=(0,p.useState)(Mae),[F,I]=(0,p.useState)(null),[L,R]=(0,p.useState)([]),[z,B]=(0,p.useState)(!1),[V,H]=(0,p.useState)(``),[ee,U]=(0,p.useState)(``),[te,ne]=(0,p.useState)(!1),[re,ie]=(0,p.useState)(null),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)(null),[ce,le]=(0,p.useState)(!1),[ue,de]=(0,p.useState)({}),[fe,pe]=(0,p.useState)(Nae),[me,he]=(0,p.useState)(null),[ge,_e]=(0,p.useState)(()=>L7()),[ve,ye]=(0,p.useState)(()=>I7()),[G,be]=(0,p.useState)(0),[xe,Se]=(0,p.useState)(null),[Ce,we]=(0,p.useState)(null),[Te,Ee]=(0,p.useState)({}),[De,Oe]=(0,p.useState)({}),[ke,Ae]=(0,p.useState)({}),[je,Me]=(0,p.useState)({}),[Ne,Pe]=(0,p.useState)(!1),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)(null),ze=(0,p.useRef)(null),Be=(0,p.useRef)(null),Ve=(0,p.useRef)(null),K=i.find(e=>e.id===o)??null,He=!!K?.memory_enabled,Ue=o?fe[o]??`board`:`board`,We=Ue===`memory`?He?`memory`:`board`:Ue,Ge=(0,p.useCallback)(e=>{o&&(pe(t=>({...t,[o]:e.workspace})),_e(t=>R7(t,e.workspace)),he(e))},[o]),qe=(0,p.useCallback)((e,t,n)=>{o&&Ge({workspace:`chat`,draft:!0,draftText:e,specSessionId:t,specSnapshotId:n})},[o,Ge]),Je=(0,p.useCallback)((e,t)=>{Ge({workspace:`spec`,specSessionId:e,specSnapshotId:t})},[Ge]),q=(0,p.useCallback)(()=>{he(null)},[]),Xe=K!==null,Ze=Tae(K),J=!!K?.run_ide?.trim(),Qe=o!==null&&u===o,$e=o!==null&&(!Ze||f===o),et=o?h[o]??l9(o):null,tt=o?_[o]??null:null,nt=o?!!y[o]:!1,rt=o?x[o]??null:null,at=o?Te[o]??[]:[],ot=o?!!De[o]:!1,st=o?ke[o]??{current_branch:null,default_branch:null,previous_branch:null}:{current_branch:null,default_branch:null,previous_branch:null},ct=o?!!je[o]:!1,lt=o?C[o]??null:null,ut=d9(T,o),dt=ut!==`hidden`,ft=Lae({activeRun:c,project:K,projectId:o}),pt=ft?.context_key??null,mt=o?D[o]??null:null,ht=f9(K),gt=pt===F,_t=(0,p.useMemo)(()=>Jie(ge),[ge]),vt=(0,p.useMemo)(()=>z7({hasRunning:_t.hasRunning,hasFinishedUnseen:ve.hasFinishedUnseen,hasErrorUnseen:ve.hasErrorUnseen}),[_t.hasRunning,ve.hasErrorUnseen,ve.hasFinishedUnseen]);(0,p.useEffect)(()=>{Se(null),we(null),Be.current=null},[o]),(0,p.useEffect)(()=>{we(null)},[We]),(0,p.useEffect)(()=>{dt||(Be.current=null)},[dt]),(0,p.useEffect)(()=>{let e=xe?.target?.kind??null;if(e===`ticket`||e===`bundle`){Be.current=xe;return}(We===`board`||!dt)&&(Be.current=xe)},[dt,xe,We]),(0,p.useEffect)(()=>{_e(L7())},[o]),(0,p.useEffect)(()=>{ye(I7())},[o]);let wt=(0,p.useCallback)((e,t)=>{document.visibilityState!==`visible`&&(!t.didFinish&&!t.didError||ye(e=>{let n={...e,hasFinishedUnseen:e.hasFinishedUnseen||t.didFinish,hasErrorUnseen:e.hasErrorUnseen||t.didError};return e.hasFinishedUnseen===n.hasFinishedUnseen&&e.hasErrorUnseen===n.hasErrorUnseen?e:n}))},[]);(0,p.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&ye(e=>!e.hasFinishedUnseen&&!e.hasErrorUnseen?e:{...e,hasFinishedUnseen:!1,hasErrorUnseen:!1})};return window.addEventListener(`focus`,e),document.addEventListener(`visibilitychange`,e),()=>{window.removeEventListener(`focus`,e),document.removeEventListener(`visibilitychange`,e)}},[]),(0,p.useEffect)(()=>(ze.current===null&&(ze.current=document.querySelector(`link[rel="icon"]`)?.getAttribute(`href`)??`/favicon.svg`),K7({defaultHref:ze.current,state:vt}),()=>{K7({defaultHref:ze.current,state:null})}),[vt]);let Tt=(0,p.useCallback)(async(e,t={})=>{let{refreshRemote:n=!1,signal:r}=t;try{let t=await hn(e,r,{refreshRemote:n});if(r?.aborted)return;g(n=>({...n,[e]:kae(e,t)}))}catch(t){if(Ye(t))return;if(t instanceof Ke&&t.status===404){g(t=>({...t,[e]:{...l9(e),status:`unknown`}}));return}g(t=>({...t,[e]:{projectId:e,branch:t[e]?.branch??null,status:`unknown`,ahead:t[e]?.ahead??0,behind:t[e]?.behind??0,hasUpstream:t[e]?.hasUpstream??!1,canPull:t[e]?.canPull??!1,diffStats:t[e]?.diffStats??null}}))}},[]),Et=(0,p.useCallback)(async(e,t={})=>{let{refreshRemote:n=!1,signal:r,suppressLoading:i=!1}=t;i||b(t=>({...t,[e]:!0}));try{let t=await xn(e,{refreshRemote:n,signal:r});if(r?.aborted)return;v(n=>({...n,[e]:t}))}catch(t){if(Ye(t))return;t instanceof Ke&&t.status===404&&v(t=>({...t,[e]:null}))}finally{!r?.aborted&&!i&&b(t=>({...t,[e]:!1}))}},[]),Dt=(0,p.useCallback)((e,t)=>{S(n=>({...n,[e]:t}))},[]),Ot=(0,p.useCallback)(async(e,t)=>{v(n=>({...n,[e.id]:t})),e.active_target_kind!==`bundle`&&await Tt(e.id),$4(e.id)},[Tt]);(0,p.useEffect)(()=>{let e=new AbortController;return(async()=>{try{let{tool:n}=await Gn(e.signal);t(n)}catch(e){Ye(e)}finally{e.signal.aborted||r(!0)}})(),()=>{e.abort()}},[]),(0,p.useEffect)(()=>{if(!te||i.length>0&&re===null||z)return;let e=new AbortController;return(async()=>{try{R(await Wn(`opencode`,e.signal))}catch(e){Ye(e)||R(e=>e)}finally{e.signal.aborted||B(!0)}})(),()=>{e.abort()}},[z,re,i.length,te]),(0,p.useEffect)(()=>{let e=new AbortController,t=window.localStorage.getItem(J7);return(async()=>{try{let n=await nn(e.signal);if(e.signal.aborted)return;a(n);let r=n[0]?.id??null;s(n.some(e=>e.id===t)?t:r)}catch(e){Ye(e)||a([])}finally{e.signal.aborted||ne(!0)}})(),()=>{e.abort()}},[]),(0,p.useEffect)(()=>{if(te){if(o){window.localStorage.setItem(J7,o);return}window.localStorage.removeItem(J7)}},[o,te]),(0,p.useEffect)(()=>{window.localStorage.setItem(Y7,JSON.stringify(fe))},[fe]),(0,p.useEffect)(()=>{window.localStorage.setItem(X7,JSON.stringify(T))},[T]),(0,p.useEffect)(()=>{window.localStorage.setItem(Z7,JSON.stringify(D))},[D]),(0,p.useEffect)(()=>{g(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),v(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),b(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)})},[i]),(0,p.useEffect)(()=>{de(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)})},[i]),(0,p.useEffect)(()=>{let e=new Set(i.map(e=>e.id));Ee(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t)))),Oe(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t)))),Ae(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t)))),Me(t=>Object.fromEntries(Object.entries(t).filter(([t])=>e.has(t))))},[i]),(0,p.useEffect)(()=>{te&&(w(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),E(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}),O(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)}))},[i,te]),(0,p.useEffect)(()=>{te&&pe(e=>{let t=new Set(i.map(e=>e.id)),n=Object.entries(e).filter(([e])=>t.has(e));return n.length===Object.keys(e).length?e:Object.fromEntries(n)})},[i,te]),(0,p.useEffect)(()=>{if(!te||!o||!Xe)return;let e=!1,t=null,n=null;g(e=>e[o]?e:{...e,[o]:l9(o)});let r=async(r=!1)=>{let i=r?`remote`:`local`;if(t){if(n===`remote`||n===i)return;t.abort()}let a=new AbortController;t=a,n=i;try{await Promise.all([Tt(o,{refreshRemote:r,signal:a.signal}),Et(o,{refreshRemote:r,signal:a.signal})])}catch{if(e||a.signal.aborted)return}finally{t===a&&(t=null,n=null)}};r(!1);let i=n3(()=>{document.visibilityState===`visible`&&r(!1)});return()=>{e=!0,t?.abort(),i()}},[o,Xe,te,Tt,Et]),(0,p.useEffect)(()=>{if(o)return e3(e=>{e===o&&(Tt(e),Et(e))})},[o,Tt,Et]),(0,p.useEffect)(()=>{if(!o||!Xe)return;let e=tt?.operation_state??`idle`;if(!(rt===`rebase`||e!==`idle`))return;let t=!1,n=null,r=null,i=async()=>{r?.abort(),r=new AbortController;try{await Et(o,{signal:r.signal,suppressLoading:!0})}catch{}finally{t||(n=window.setTimeout(()=>{i()},_ae))}};return i(),()=>{t=!0,r?.abort(),n!==null&&window.clearTimeout(n)}},[rt,o,tt?.operation_state,Xe,Et]);let kt=(0,p.useCallback)(async e=>{let t=o;if(!t){l(null),m(null);return}try{let n=await xt(t,e);e?.aborted||(l(n.active_run),m(t))}catch(e){Ye(e)}},[o]),At=(0,p.useCallback)(async e=>{let t=o;if(t)try{let n=await bt(t,e);e?.aborted||w(e=>({...e,[t]:n}))}catch(e){Ye(e)}},[o]);(0,p.useEffect)(()=>{if(!te)return;if(!Ze){l(null),m(null);return}if(!Qe)return;let e=new AbortController;m(null),kt(e.signal);let t=window.setInterval(()=>{kt(e.signal)},Q7),n=n3(()=>{document.visibilityState===`visible`&&kt(e.signal)});return()=>{e.abort(),window.clearInterval(t),n()}},[Qe,Ze,te,kt]),(0,p.useEffect)(()=>{if(!te||!o||!Qe||!ht)return;let e=new AbortController;At(e.signal);let t=window.setInterval(()=>{At(e.signal)},Q7),n=n3(()=>{document.visibilityState===`visible`&&At(e.signal)});return()=>{e.abort(),window.clearInterval(t),n()}},[o,Qe,ht,te,At]),(0,p.useEffect)(()=>{window.localStorage.setItem($7,String(k))},[k]),(0,p.useEffect)(()=>{window.localStorage.setItem(e9,j)},[j]),(0,p.useEffect)(()=>{window.localStorage.setItem(t9,String(N))},[N]),(0,p.useEffect)(()=>{o&&pt&&O(e=>{let t=e[o]??null;return!t||t===pt?e:{...e,[o]:null}})},[o,pt]),(0,p.useEffect)(()=>{!o||!ft||!f9(K)||mt!==ft.context_key&&E(e=>d9(e,o)===`hidden`?{...e,[o]:`inline`}:e)},[K,o,mt,ft]);let jt=async e=>{try{t((await Kn(e)).tool)}catch{}},Mt=(0,p.useCallback)(e=>{a(t=>t.map(t=>t.id===e.id?e:t))},[]),Nt=(0,p.useCallback)((e,t)=>{Ee(n=>{let r=[t,...(n[e]??[]).filter(e=>e.id!==t.id)];return{...n,[e]:r}})},[]),Pt=(0,p.useCallback)(async e=>{Me(t=>({...t,[e]:!0}));try{let t=await ln(e);Ae(n=>({...n,[e]:t}))}catch(e){Q.error(e instanceof Ke?e.message:`Unable to load the project target options right now.`,{id:`project-target-selector-load-error`})}finally{Me(t=>({...t,[e]:!1}))}},[]),Ft=async e=>{try{let t=await rn(s9(e));return a(e=>[...e,t]),s(t.id),ie(null),null}catch(e){return e instanceof Ke?e.message:`Unable to create the project right now.`}},It=async e=>{if(!K)return`Select a project before editing settings.`;try{let t=await an(K.id,s9(e));return a(e=>e.map(e=>e.id===t.id?t:e)),be(e=>e+1),ie(null),null}catch(e){return e instanceof Ke?e.message:`Unable to update the project right now.`}},Lt=async()=>{if(!K)return`Select a project before deleting it.`;try{await sn(K.id);let e=i.filter(e=>e.id!==K.id);return a(e),s(e[0]?.id??null),ie(null),null}catch(e){return e instanceof Ke?e.message:`Unable to delete the project right now.`}},Rt=(0,p.useCallback)(e=>{a(t=>t.map(t=>Oae(t,e)))},[]),zt=(0,p.useCallback)((e,t)=>{e&&Ee(n=>({...n,[e]:t}))},[]),Bt=(0,p.useCallback)((e,t)=>{e&&Oe(n=>({...n,[e]:t}))},[]),Vt=async(e,t,n)=>await dn({repo_path:e,helper_model:t||null,helper_variant:t&&n||null}),Ht=async()=>(await fn()).repo_path,Ut=(0,p.useCallback)(async e=>{let t=await pn({repo_path:e});return{valid:t.valid,repoRoot:t.repo_root,error:t.error,willInitialize:t.will_initialize,hasInitialCommit:t.has_initial_commit}},[]),Wt=(0,p.useCallback)(async()=>{if(!(!K||ce)){le(!0);try{let e=await on(K.id);a(t=>t.map(t=>t.id===e.id?e:t)),Q.success(`Initial commit created.`,{id:`project-initial-commit-success`}),Tt(e.id),Et(e.id)}catch(e){Q.error(e instanceof Ke?e.message:`Unable to create the initial commit right now.`,{id:`project-initial-commit-error`})}finally{le(!1)}}},[K,ce,Tt,Et]),Gt=(0,p.useCallback)((e,t)=>{E(t=>({...t,[e]:`hidden`})),t&&O(n=>({...n,[e]:t}))},[]),Kt=(0,p.useCallback)(()=>{o&&Gt(o,pt)},[o,Gt,pt]),qt=(0,p.useCallback)(e=>{o&&(E(e=>({...e,[o]:`hidden`})),e&&l(t=>t?.context_key===e?null:t))},[o]),Yt=(0,p.useCallback)(async()=>{if(!ft||F===ft.context_key)return;let{context_key:e}=ft;I(e);try{ft.kind===`ticket`?await Jt(ft.ticket_id,ft.project_id):l((await Ct(ft.project_id)).active_run),qt(e),await Promise.all([kt(),At()])}catch(e){Q.error(e instanceof Ke?e.message:`Unable to stop the preview run right now.`,{id:`app-preview-run-stop-error`})}finally{I(t=>t===e?null:t)}},[qt,ft,At,kt,F]),Xt=(0,p.useCallback)(e=>{!e||!o||Pt(o)},[o,Pt]),Zt=(0,p.useCallback)(e=>new Promise(t=>{Ve.current=t,Re(e)}),[]),Qt=(0,p.useCallback)(e=>{let t=Ve.current;Ve.current=null,Re(null),t?.(e)},[]),$t=(0,p.useCallback)(async e=>{if(!K||!o)throw Error(`Select a project first.`);if(!Rae({activeProject:K,activeProjectBranchState:et,nextTarget:e})||!c||c.kind!==`project`||c.project_id!==K.id)return!0;if(!await Zt({title:`Stop current run and switch target?`,description:`Switching targets will stop the current run and close its preview.`,confirmLabel:`Stop and switch`,cancelLabel:`Keep current target`,confirmVariant:`destructive`}))return!1;try{let e=c.context_key,t=await Ct(K.id);return qt(e),l(t.active_run),await At(),!0}catch(e){return Q.error(e instanceof Ke?e.message:`Unable to stop the project run right now.`,{id:`project-target-switch-stop-run-error`}),!1}},[K,et,o,c,qt,At,Zt]),en=(0,p.useCallback)(async e=>{if(!o)throw Error(`Select a project first.`);return await $t({kind:`bundle`,bundleId:e})?(Mt(await un(o,{kind:`bundle`,bundle_id:e})),v(e=>({...e,[o]:null})),await Promise.all([Tt(o),Et(o)]),!0):!1},[o,$t,Tt,Et,Mt]),tn=(0,p.useCallback)(async(e,t={})=>{if(!o)throw Error(`Select a project first.`);if(!await $t({kind:`repo_root`,branch:e}))return!1;let n=n=>un(o,{kind:`repo_root`,...e?{branch:e}:{},...t.createBranch===!1?{create_branch:!1}:{},...n?{confirm_dirty_switch:!0}:{}}),r;try{r=await n(t.confirmDirtySwitch===!0)}catch(e){if(!t.confirmDirtySwitch&&e instanceof Ke&&e.status===409&&e.message===p9){if(!await Zt({title:`Switch repo root branch?`,description:`${p9}\n\nSwitch anyway?`,confirmLabel:`Switch anyway`,cancelLabel:`Keep current branch`}))return!1;r=await n(!0)}else throw e}return Mt(r),v(e=>({...e,[o]:null})),await Promise.all([Tt(o),Et(o),Pt(o)]),!0},[o,$t,Pt,Tt,Et,Mt,Zt]),mn=(0,p.useCallback)(async e=>!e.target_kind||e.target_available===!1?!0:e.target_kind===`bundle`?e.target_bundle_id?await en(e.target_bundle_id):!1:await tn(e.target_branch_snapshot??null,{createBranch:!1}),[en,tn]),yn=(0,p.useCallback)(()=>{Pe(!0)},[]),bn=(0,p.useCallback)(()=>{Pe(!1)},[]),Sn=(0,p.useCallback)(e=>{if(e){en(e);return}tn(null)},[en,tn]),Cn=(0,p.useCallback)(async e=>{if(!o)throw Error(`Select a project first.`);let t=await it(o,{name:e,prepare:!0});return Nt(o,t),be(e=>e+1),t},[o,Nt]),wn=(0,p.useCallback)(async e=>{if(!o)throw Error(`Select a project first.`);await yt(o,e),Ee(t=>({...t,[o]:(t[o]??[]).filter(t=>t.id!==e)})),be(e=>e+1)},[o]),Tn=(0,p.useCallback)(async()=>{if(!K)return;let e=K.active_target_kind??`repo_root`,t=K.active_target_bundle_id??null,n=c?.kind===`project`&&c.project_id===K.id&&(c.target_kind??`repo_root`)===e&&((c.target_kind??`repo_root`)!==`bundle`||c.target_bundle_id===t),r=n?c?.context_key??null:null,i=!n&&f9(K)&&ut===`hidden`;i&&(E(e=>({...e,[K.id]:`inline`})),O(e=>({...e,[K.id]:null})));try{let e=n?await Ct(K.id):await St(K.id);n&&qt(r),l(e.active_run),At()}catch(e){i&&E(e=>({...e,[K.id]:`hidden`})),Q.error(e instanceof Ke?e.message:`Unable to update the project run right now.`,{id:`app-project-run-error`})}},[ut,K,c,qt,At]),En=(0,p.useCallback)(async()=>{if(!(!K||!J))try{await cn(K.id)}catch(e){Q.error(e instanceof Error?e.message:`Unable to open the IDE right now.`,{id:`app-project-open-ide-error`})}},[K,J]),Dn=(0,p.useCallback)(async()=>{if(K){Dt(K.id,`pull`);try{let e=await gn(K.id);await Ot(K,e),Q.success(e.behind===0?q7(`branchSynced`):q7(`branchUpdated`),{id:`app-project-pull-success`})}catch(e){Q.error(e instanceof Ke?e.message:q7(`syncFallbackError`),{id:`app-project-pull-error`})}finally{Dt(K.id,null)}}},[K,Ot,Dt]),On=(0,p.useCallback)(async()=>{if(!K)return;let e=tt?.base_branch??null;Dt(K.id,`rebase`);try{let t=await _n(K.id);await Ot(K,t);let n=t.base_branch??e;Q.success(n?q7(`branchRebasedOnto`,{branch:n}):q7(`branchRebased`),{id:`app-project-rebase-success`})}catch(e){await Promise.allSettled([Tt(K.id),Et(K.id,{suppressLoading:!0})]),Q.error(e instanceof Ke?e.message:q7(`rebaseFallbackError`),{id:`app-project-rebase-error`})}finally{Dt(K.id,null)}},[K,tt?.base_branch,Ot,Tt,Et,Dt]),kn=(0,p.useCallback)(async()=>{if(K){Dt(K.id,`abort`);try{await Ot(K,await vn(K.id)),Q.success(q7(`gitOperationAborted`),{id:`app-project-abort-success`})}catch(e){Q.error(e instanceof Ke?e.message:q7(`abortFallbackError`),{id:`app-project-abort-error`})}finally{Dt(K.id,null)}}},[K,Ot,Dt]),An=(0,p.useCallback)(()=>{K&&oe({projectId:K.id,title:K.name,targetKind:K.active_target_kind??`repo_root`,targetBundleId:K.active_target_bundle_id??null,hasHelperModel:!!K.helper_model,repoRootDefaultBranch:st.default_branch})},[K,st.default_branch]),jn=(0,p.useCallback)(()=>{if(!ae)return;let{projectId:e}=ae;oe(null),Tt(e),Et(e)},[Tt,Et,ae]),Mn=(0,p.useCallback)(()=>{K&&se({projectId:K.id,targetKind:K.active_target_kind??`repo_root`,targetBundleId:K.active_target_bundle_id??null})},[K]),Nn=(0,p.useCallback)(()=>{se(null)},[]),Pn=u9(ue,o),Fn=K?v8(K.test_commands).length>0:!1,In=We===`chat`?Ce:null,Ln=Be.current,Rn=Ln?.target?.kind??null,zn=We===`chat`?Rn===`ticket`||Rn===`bundle`?{target:Ln?.target??null,canSelect:!1,disabledReason:`This preview belongs to a ticket run. Return to Board to send preview comments.`,promptMode:Ln?.promptMode??null,onPromptModeChange:Ln?.onPromptModeChange??null,isUpdatingPromptMode:Ln?.isUpdatingPromptMode??!1,promptPlaceholder:Ln?.promptPlaceholder??null,promptComposerControls:Ln?.promptComposerControls,promptComposerInlineControls:Ln?.promptComposerInlineControls,submitPrompt:null}:In?{target:{kind:`chat_session`,id:In.chatSessionId??`draft:${o}`},canSelect:In.canSubmitReviewPrompt,disabledReason:In.canSubmitReviewPrompt?null:In.reviewSubmitDisabledReason??`Wait for the current chat turn to finish before sending preview comments.`,promptMode:In.mode,onPromptModeChange:In.onModeChange,isUpdatingPromptMode:In.isUpdatingMode,promptPlaceholder:In.promptPlaceholder,promptComposerControls:In.promptComposerControls,promptComposerInlineControls:In.promptComposerInlineControls,submitPrompt:In.canSubmitReviewPrompt?In.submitPrompt:null}:{target:null,canSelect:!1,disabledReason:`Select a chat session to send preview comments.`,submitPrompt:null}:xe,Bn=In?.canSubmitReviewPrompt??!1,Vn=We===`chat`?In?In.reviewSubmitDisabledReason:`Select a chat session to send review comments.`:void 0,Hn=(0,p.useCallback)(()=>{o&&de(e=>{let t=e[o]??n9;return{...e,[o]:{hasMounted:!0,isOpen:!t.isOpen,isExpanded:t.isExpanded}}})},[o]),Un=(0,p.useCallback)(e=>{de(t=>{let n=t[e]??n9;return!n.hasMounted||!n.isOpen?t:{...t,[e]:n9}})},[]),qn=(0,p.useCallback)(e=>{de(t=>{let n=t[e]??n9;return{...t,[e]:{hasMounted:!0,isOpen:n.isOpen,isExpanded:!n.isExpanded}}})},[]),Jn=(0,p.useCallback)(()=>{ie(`create`)},[]),Yn=(0,p.useCallback)(()=>{if(o){if(dt){Kt();return}E(e=>({...e,[o]:`inline`})),O(e=>({...e,[o]:null}))}},[o,Kt,dt]),Xn=(0,p.useCallback)(()=>{o&&E(e=>{let t=d9(e,o);return{...e,[o]:t===`expanded`?`inline`:`expanded`}})},[o]),Zn=K?K.preview_service_name?.trim()?K.preview_capability_mode===`force_disabled`?`Preview is disabled for this project.`:lt?.state===`unsupported`?lt.message??`Preview is unavailable for this project.`:dt?`Hide preview`:`Show preview`:`Choose a named preview service in project settings first.`:`Select a project first.`,Qn=!K||!K.preview_service_name?.trim()||K.preview_capability_mode===`force_disabled`||lt?.state===`unsupported`,$n=K&&K.preview_service_name?.trim()?(0,Y.jsx)(Pk,{project:K,mode:ut===`expanded`?`expanded`:`inline`,status:lt,viewportPreset:j,zoom:N,activeRun:ft,reviewCapability:zn,isStoppingActiveRun:gt,onHide:Kt,onStopActiveRun:()=>{Yt()},onToggleExpanded:Xn,onViewportPresetChange:M,onZoomChange:P}):null;return(0,Y.jsxs)(`div`,{className:`flex h-screen flex-col overflow-hidden bg-[linear-gradient(180deg,_rgba(15,16,21,1),_rgba(9,10,14,1))] text-foreground`,children:[(0,Y.jsx)(qy,{}),i.length>0&&(0,Y.jsx)(`header`,{className:`border-b border-border bg-background/95 px-6 py-3 backdrop-blur`,children:(0,Y.jsxs)(`div`,{className:`grid gap-2 lg:grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] lg:items-center`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 lg:justify-self-start`,children:(0,Y.jsx)(`div`,{className:`min-w-0 w-full sm:min-w-[20rem] sm:max-w-[30rem]`,children:(0,Y.jsx)(Ov,{activeProjectId:o,projects:i,onEditProject:()=>ie(`edit`),onProjectChange:s})})}),o&&(0,Y.jsx)(`div`,{className:`flex justify-start lg:col-start-2 lg:row-start-1 lg:justify-center`,children:(0,Y.jsx)(sae,{activeWorkspace:We,activityByWorkspace:ge,memoryEnabled:He,onWorkspaceChange:e=>{o&&(pe(t=>({...t,[o]:e})),_e(t=>R7(t,e)))}})}),(0,Y.jsx)(`div`,{className:`w-full lg:col-start-3 lg:row-start-1 lg:w-auto lg:justify-self-end`,children:(0,Y.jsx)(Ky,{activeTool:e,onCreateProject:Jn,onMobileAccessOpen:()=>Ie(!0),onToolChange:jt})})]})}),te?i.length===0?(0,Y.jsx)(Tv,{activeTool:e,availableHelperModels:L,helperModel:V,helperVariant:ee,isHelperModelsLoaded:z,isToolLoaded:n,onCreateProject:Jn,onHelperModelChange:e=>{H(e),U(``)},onHelperVariantChange:U,onToolChange:jt}):(0,Y.jsxs)(Y.Fragment,{children:[K?.has_initial_commit===!1&&(0,Y.jsx)(rb,{isSubmitting:ce,onCreateInitialCommit:()=>{Wt()}}),(0,Y.jsx)(aae,{activeProjectId:o,activeProject:K,activeProjectBranchState:et,activeRun:c,activeTool:e,onRestoreChatSessionTarget:mn,onChatReviewCapabilityChange:we,isPreviewButtonDisabled:Qn,onPreviewReviewCapabilityChange:Se,onPreviewToggle:Yn,onRunStopped:qt,onWorkspaceActivityChange:_e,onWorkspaceActivityEvent:wt,pendingWorkspaceNavigation:me,onPendingWorkspaceNavigationConsumed:q,onSpecImplementationChatReady:qe,onViewSourceSpec:Je,previewDisplayMode:ut,previewPane:$n,previewPaneWidth:k,previewButtonTitle:Zn,visibleWorkspace:We,refreshKey:G,onBoardLoadedProjectIdChange:d,onBundlesChange:zt,onBundlesLoadingChange:Bt,onPreviewPaneWidthChange:A,onProjectUsageChange:Rt,onRunStatusChange:()=>{kt(),At()}},o??`no-project`)]}):(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:`Loading projects...`}),i.length>0&&(0,Y.jsx)(wy,{activeProject:K,activeRun:c,branchState:et,targetGitStatus:tt,isBoardLoadedForActiveProject:Qe,activeProjectBranchAction:rt,isProjectIdeAvailable:J,isProjectRunAvailable:Ze,isRunStatusLoadedForActiveProject:$e,isTerminalOpen:Pn.isOpen,targetBundles:at,targetBranchSuggestions:st,isTargetBundleLoading:ot,isTargetSelectorLoading:ct,isTargetGitStatusLoading:nt,hasConfiguredTests:Fn,onProjectIdeOpen:()=>{En()},onProjectPull:()=>{Dn()},onProjectRebase:On,onProjectAbortGitOperation:kn,onProjectRunToggle:()=>{Tn()},onProjectChangesOpen:An,onProjectTestsOpen:Mn,onTerminalToggle:Hn,onTargetSelectorOpenChange:Xt,onSelectBundleTarget:en,onSelectRepoRootTarget:tn,onManageBundles:yn}),(0,Y.jsx)(Ox,{activeProjectId:o,open:Fe,onOpenChange:Ie}),Ne&&K&&(0,Y.jsx)(bb,{bundles:at,selectedBundleId:K.active_target_kind===`bundle`?K.active_target_bundle_id??null:null,activeTargetBundleId:K.active_target_kind===`bundle`?K.active_target_bundle_id??null:null,onSelectBundle:Sn,onCreateBundle:Cn,onDeleteBundle:wn,onClose:bn}),Le&&(0,Y.jsx)(nb,{title:Le.title,description:Le.description,confirmLabel:Le.confirmLabel,cancelLabel:Le.cancelLabel,confirmVariant:Le.confirmVariant,onConfirm:()=>Qt(!0),onCancel:()=>Qt(!1)}),i.map(e=>{let t=u9(ue,e.id);return t.hasMounted?(0,Y.jsx)(oae,{project:e,isExpanded:t.isExpanded,isVisible:e.id===o&&t.isOpen,onClose:()=>Un(e.id),onToggleExpanded:()=>qn(e.id)},e.id):null}),re&&(0,Y.jsx)(MC,{mode:re,projectId:re===`edit`&&K?K.id:null,availableHelperModels:L,isLoadingHelperModels:!z,isAutoConfigReady:n,initialValues:re===`edit`&&K?wae(K):i.length===0?{name:``,repoPath:``,linkedProjectIds:[],runSetup:[],runServices:[],testCommands:[],runIde:``,previewServiceName:``,previewPath:``,previewCapabilityMode:`auto`,helperModel:V,helperVariant:ee,commitMessageRules:``,autoParkStaleTickets:!1,memoryEnabled:!1,worktreeSync:[]}:void 0,linkedProjectOptions:i.filter(e=>e.id!==K?.id).map(e=>({id:e.id,name:e.name})),repoPathLocked:re===`edit`&&K?K.repo_path_locked:!1,repoPathLockedMessage:re===`edit`&&K?Eae(K):null,deleteBlockedMessage:re===`edit`&&K?Dae(K,i):null,onDelete:re===`edit`?Lt:void 0,onAutoConfig:Vt,onBrowseRepoPath:Ht,onValidateRepoPath:Ut,onClose:()=>ie(null),onSubmit:re===`edit`?It:Ft}),ae&&ae.projectId===o&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(xae,{scope:`project_root`,projectId:ae.projectId,targetKind:ae.targetKind,reviewCommentsBundleId:ae.targetKind===`bundle`?ae.targetBundleId:null,title:ae.title,hasHelperModel:ae.hasHelperModel,repoRootDefaultBranch:ae.repoRootDefaultBranch,onSubmitReviewPrompt:In?.submitPrompt,canSubmitReviewPrompt:Bn,reviewSubmitDisabledReason:Vn??void 0,canAddReviewComments:Bn,canModifyChanges:!0,onClose:jn})}),W&&W.projectId===o&&K&&(0,Y.jsx)(p.Suspense,{fallback:null,children:(0,Y.jsx)(Sae,{scope:`project`,projectId:W.projectId,targetKind:W.targetKind,targetBundleId:W.targetBundleId,testCommands:v8(K.test_commands),onClose:Nn})})]})},Bae=({className:e})=>(0,Y.jsx)(uee,{"aria-hidden":`true`,className:e}),Vae=({className:e})=>(0,Y.jsx)(mee,{"aria-hidden":`true`,className:e}),m9=`X-Archon-Mobile-CSRF`,Hae=async(e,t={})=>{let n=await fetch(e,{credentials:`include`,...t});if(!n.ok)throw new Ke(await Xe(n,`Mobile request failed.`),n.status);return n},h9=async(e,t={})=>await(await Hae(e,t)).json(),Uae=e=>h9(`/mobile/projects`,{signal:e}),Wae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/summary`,{signal:t}),Gae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/target-options`,{signal:t}),Kae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions`,{signal:t}),qae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}`,{signal:n}),Jae=(e,t)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets`,{signal:t}),Yae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}`,{signal:n}),Xae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}`,{signal:n}),Zae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}/build`,g9(n)),Qae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}/review`,g9(n)),g9=(e,t,n=`POST`)=>({method:n,headers:{"Content-Type":`application/json`,[m9]:e},body:t===void 0?void 0:JSON.stringify(t)}),$ae=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions`,g9(t,n)),eoe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}/messages`,g9(n,r)),toe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}`,g9(n,r,`PATCH`)),noe=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/chat-sessions/${encodeURIComponent(t)}/stop`,g9(n)),_9=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/state`,g9(n,{state:r},`PATCH`)),roe=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/run`,g9(n)),ioe=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/stop`,g9(n)),v9=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/stop-build`,g9(n)),y9=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/resume-build`,g9(n)),aoe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}`,g9(n,r,`PATCH`)),ooe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/plan-follow-up`,g9(n,{instruction:r})),soe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/tickets/${encodeURIComponent(t)}/follow-up`,g9(n,{instruction:r})),coe=(e,t,n,r)=>h9(`/mobile/projects/${encodeURIComponent(e)}/bundles/${encodeURIComponent(t)}/follow-up`,g9(n,{instruction:r})),b9=(e,t,n)=>h9(`/mobile/projects/${encodeURIComponent(e)}/target`,g9(t,n)),loe=(e,t)=>h9(`/mobile/models?tool=${encodeURIComponent(e)}`,{signal:t}),uoe=(e,t,n)=>{let r=new URLSearchParams({tool:e});return t&&r.set(`project_id`,t),h9(`/mobile/skills?${r.toString()}`,{signal:n})},doe=e=>h9(`/mobile-auth/status`,{signal:e}),foe=(e,t)=>h9(`/mobile-auth/pair/preview`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t}),poe=e=>h9(`/mobile-auth/pair`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),moe=e=>h9(`/mobile-auth/logout`,{method:`POST`,headers:{[m9]:e}}),hoe=()=>U0(window.location.origin,{withCredentials:!0}),x9=e=>sb.t(`common:mobileApp.${e}`),goe={key:`overview`,label:x9(`navigation.overview`),Icon:Bae},S9={key:`tickets`,label:x9(`navigation.tickets`),Icon:y7,ctaAriaLabel:x9(`overviewActions.ticketsAriaLabel`)},C9={key:`chats`,label:x9(`navigation.chats`),Icon:XC,ctaAriaLabel:x9(`overviewActions.chatsAriaLabel`)},_oe=[goe,S9,C9],w9=`Project root has uncommitted changes. Confirm branch switch to continue.`,voe=e=>e?`Repo root (${e})`:`Repo root`,yoe=e=>{if(!e)return`Repo root`;if(e.length<=20)return e;let t=e.split(`/`).filter(Boolean),n=t[t.length-1]??e;return n.length<=17?`.../${n}`:`${n.slice(0,16)}...`},T9=(e,t)=>{if(!e)return`Target`;if(e.active_target_kind===`bundle`&&e.active_target_bundle_id){let n=t?.bundles.find(t=>t.id===e.active_target_bundle_id)??null;return n?my(n):`Selected bundle`}return yoe(t?.current_branch??null)},boe=({children:e})=>(0,Y.jsx)(`main`,{className:`min-h-screen bg-background text-foreground`,children:(0,Y.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-lg items-center px-4 py-8`,children:(0,Y.jsx)(`div`,{className:`w-full`,children:e})})}),E9=({title:e,description:t,children:n})=>(0,Y.jsx)(boe,{children:(0,Y.jsxs)(ub,{className:`w-full border-border/80 bg-card/90 shadow-2xl shadow-black/20`,children:[(0,Y.jsxs)(db,{children:[(0,Y.jsx)(fb,{children:e}),(0,Y.jsx)(pb,{children:t})]}),n?(0,Y.jsx)(hb,{className:`space-y-4`,children:n}):null]})}),xoe=e=>e===`connected`?{label:`Connected`,variant:`success`,indicatorState:`finished`}:e===`reconnecting`?{label:`Reconnecting`,variant:`warning`,indicatorState:`running`}:e===`unavailable`?{label:`Offline`,variant:`destructive`,indicatorState:`error`}:{label:`Connecting`,variant:`outline`,indicatorState:`running`},Soe=({status:e})=>{let t=xoe(e);return(0,Y.jsxs)(lb,{variant:t.variant,className:`gap-1.5 px-2.5 py-1 text-[11px] uppercase tracking-[0.14em]`,children:[(0,Y.jsx)(Ty,{state:t.indicatorState,className:`mt-0`}),t.label]})},Coe=()=>{let[e,t]=(0,p.useState)(()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(min-width: 1024px)`).matches);return(0,p.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(min-width: 1024px)`),n=n=>{t(n?.matches??e.matches)};return n(),typeof e.addEventListener==`function`?(e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)):(e.addListener(n),()=>e.removeListener(n))},[]),e},woe=({status:e,onRetry:t})=>e===`connected`?null:e===`unavailable`?(0,Y.jsx)(ub,{className:`border-red-500/25 bg-destructive/10 shadow-none`,children:(0,Y.jsxs)(hb,{className:`flex flex-col gap-3 pt-5`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-red-100`,children:`Desktop Archon is currently unreachable.`}),(0,Y.jsx)(`p`,{className:`text-sm text-red-200/85`,children:`Mobile access may have been disabled, the backend may have restarted, or this phone lost network access.`})]}),(0,Y.jsx)(`div`,{children:(0,Y.jsx)(Z,{variant:`warning`,onClick:t,children:`Retry connection`})})]})}):(0,Y.jsx)(ub,{className:`border-amber-500/25 bg-amber-500/10 shadow-none`,children:(0,Y.jsx)(hb,{className:`pt-5 text-sm text-amber-100`,children:e===`connecting`?`Connecting to live updates from desktop Archon...`:`Reconnecting to desktop Archon. Existing content stays visible while this phone reconnects.`})}),D9=({title:e,description:t,children:n})=>(0,Y.jsxs)(`div`,{className:`flex max-h-[80vh] flex-col overflow-hidden`,children:[(0,Y.jsxs)(F_,{className:`border-b border-border/70 px-4 py-4`,children:[(0,Y.jsx)(L_,{children:e}),t?(0,Y.jsx)(R_,{children:t}):null]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:n})]}),Toe=({projects:e,selectedProjectId:t,error:n,onSelectProject:r,onRetry:i})=>n?(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-red-200`,children:n}),(0,Y.jsx)(Z,{variant:`warning`,onClick:i,children:`Retry projects`})]}):e?e.length===0?(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No projects are available on the desktop instance yet.`}):(0,Y.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>{let n=e.id===t;return(0,Y.jsxs)(`button`,{type:`button`,className:X(`w-full rounded-2xl border px-4 py-3 text-left transition-colors`,n?`border-primary/50 bg-primary/10`:`border-border/80 bg-card/60 hover:border-primary/30 hover:bg-accent/60`),onClick:()=>r(e.id),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e.name}),(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.repo_path})]}),n&&(0,Y.jsx)(lb,{variant:`info`,children:`Current`})]}),(0,Y.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2 text-[11px] uppercase tracking-[0.14em] text-muted-foreground`,children:(0,Y.jsxs)(`span`,{children:[e.ticket_count,` tickets`]})})]},e.id)})}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading projects...`}),Eoe=({open:e,projects:t,selectedProjectId:n,error:r,onOpenChange:i,onSelectProject:a,onRetry:o})=>(0,Y.jsx)(A_,{open:e,onOpenChange:i,children:(0,Y.jsx)(P_,{showCloseButton:!1,"aria-describedby":void 0,className:`top-auto right-0 bottom-0 left-0 max-w-none translate-x-0 translate-y-0 overflow-hidden rounded-t-3xl rounded-b-none border-x-0 border-b-0 p-0 sm:top-1/2 sm:right-auto sm:bottom-auto sm:left-1/2 sm:max-w-md sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-2xl sm:border sm:p-0`,children:(0,Y.jsx)(D9,{title:`Projects`,children:(0,Y.jsx)(Toe,{projects:t,selectedProjectId:n,error:r,onSelectProject:e=>{a(e),i(!1)},onRetry:o})})})}),Doe=({open:e,project:t,targetOptions:n,error:r,isLoading:i,isSubmitting:a,onOpenChange:o,onRetry:s,onSelectBundle:c,onSelectRepoRoot:l})=>{let[u,d]=(0,p.useState)(``);(0,p.useEffect)(()=>{e&&d(n?.current_branch??``)},[e,n?.current_branch]);let f=t?.active_target_kind!==`bundle`,m=sy(n?.bundles??[]),h=[{key:`default`,label:`Default branch`,branch:n?.default_branch??null},{key:`previous`,label:`Previous branch`,branch:n?.previous_branch??null}].filter(e=>e.branch&&e.branch!==n?.current_branch).filter((e,t,n)=>n.findIndex(t=>t.branch===e.branch)===t),g=t?r?(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-red-200`,children:r}),(0,Y.jsx)(Z,{variant:`warning`,onClick:s,children:`Retry target options`})]}):n?(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-sm font-semibold text-foreground`,children:`Project target`}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Choose the repo root or a prepared bundle for new chats and desktop work launched from this phone.`})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Target`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-2`,children:[(0,Y.jsx)(Z,{type:`button`,variant:f?`secondary`:`ghost`,className:`w-full justify-start`,disabled:a,onClick:()=>l(null),children:voe(n.current_branch)}),(0,Y.jsxs)(`div`,{className:`relative min-h-10`,"data-testid":`mobile-target-options`,children:[i&&(0,Y.jsx)(`div`,{className:`pointer-events-none absolute right-2 top-2 z-10 text-muted-foreground`,"data-testid":`mobile-target-options-spinner`,children:(0,Y.jsx)(Fv,{className:`h-3.5 w-3.5 animate-spin`})}),(0,Y.jsx)(`div`,{className:`max-h-40 overflow-y-auto pr-7`,children:m.length===0&&!i?(0,Y.jsx)(`p`,{className:`px-2 py-2 text-xs text-muted-foreground`,children:`No prepared bundles are available yet.`}):m.map(e=>(0,Y.jsx)(Z,{type:`button`,variant:t.active_target_kind===`bundle`&&t.active_target_bundle_id===e.id?`secondary`:`ghost`,className:`w-full justify-start`,disabled:a,onClick:()=>c(e.id),children:(0,Y.jsx)(`span`,{className:`truncate`,children:my(e)})},e.id))})]})]})]}),(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[(0,Y.jsx)($_,{className:`text-xs font-medium text-muted-foreground`,children:`Repo root branch`}),(0,Y.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-border/70 bg-background/40 p-3`,children:[(0,Y.jsx)(`div`,{className:`space-y-2`,children:h.length>0?h.map(({key:e,label:t,branch:n})=>(0,Y.jsxs)(Z,{type:`button`,variant:`outline`,className:`w-full justify-between gap-3`,disabled:!f||a||!n,onClick:()=>l(n),children:[(0,Y.jsx)(`span`,{children:t}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-muted-foreground`,children:n})]},e)):(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i?`Loading branch suggestions...`:`No suggested branches available.`})}),(0,Y.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsx)($_,{htmlFor:`mobile-project-target-branch-input`,className:`text-xs text-muted-foreground`,children:`Switch or create branch`}),(0,Y.jsx)(z_,{id:`mobile-project-target-branch-input`,value:u,disabled:!f||a,onChange:e=>d(e.target.value),placeholder:`feature/quick-fix`})]}),(0,Y.jsx)(Z,{type:`button`,disabled:!f||!u.trim()||a,onClick:()=>l(u.trim()),children:`Switch`})]}),f?null:(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Switch to repo root to choose a branch.`})]})]})]}):(0,Y.jsx)(A9,{text:`Loading target options...`}):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Select a project before choosing a target.`});return(0,Y.jsx)(A_,{open:e,onOpenChange:o,children:(0,Y.jsx)(P_,{showCloseButton:!1,"aria-describedby":void 0,className:`top-auto right-0 bottom-0 left-0 max-w-none translate-x-0 translate-y-0 overflow-hidden rounded-t-3xl rounded-b-none border-x-0 border-b-0 p-0 sm:top-1/2 sm:right-auto sm:bottom-auto sm:left-1/2 sm:max-w-md sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-2xl sm:border sm:p-0`,children:(0,Y.jsx)(D9,{title:`Target`,description:t?T9(t,n):void 0,children:g})})})},Ooe=({selectedProject:e,targetLabel:t,isTargetLoading:n,isTargetDisabled:r,connectionState:i,onOpenProjects:a,onOpenTargetSelector:o})=>(0,Y.jsx)(`header`,{className:`sticky top-0 z-20 border-b border-border/70 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/85`,children:(0,Y.jsxs)(`div`,{className:`mx-auto flex w-full max-w-6xl items-center justify-between gap-3 px-3 pb-3 pt-4 sm:px-4`,children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-label":`Choose project`,className:`min-w-0 flex-1 text-left`,onClick:a,children:[(0,Y.jsx)(`div`,{className:`truncate text-base font-medium text-foreground`,children:e?.name??`Choose a project`}),(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e?.repo_path??`Select a desktop project to continue`})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(Soe,{status:i}),(0,Y.jsxs)(Z,{variant:`outline`,size:`sm`,"aria-label":`Choose target`,"data-testid":`mobile-target-trigger`,className:`h-8 max-w-32 gap-2 px-2.5 sm:max-w-40`,disabled:r,onClick:o,children:[(0,Y.jsx)(gy,{className:`h-3.5 w-3.5 shrink-0`}),n?(0,Y.jsx)(Av,{className:`h-3.5 w-16`}):(0,Y.jsx)(`span`,{className:`truncate text-xs sm:text-sm`,children:t})]}),(0,Y.jsx)(Z,{variant:`outline`,size:`icon-sm`,"aria-label":`Choose project`,onClick:a,children:(0,Y.jsx)(nS,{className:`h-4 w-4`})})]})]})}),koe=({activeSection:e,onChange:t})=>(0,Y.jsx)(`nav`,{className:`fixed inset-x-0 bottom-0 z-20 border-t border-border/70 bg-background/95 px-3 pb-[calc(env(safe-area-inset-bottom)+0.75rem)] pt-2 backdrop-blur supports-[backdrop-filter]:bg-background/85 sm:px-4 lg:hidden`,children:(0,Y.jsx)(`div`,{className:`mx-auto flex max-w-6xl gap-2`,children:_oe.map(n=>{let r=n.key===e,i=n.Icon;return(0,Y.jsxs)(Z,{type:`button`,variant:r?`secondary`:`ghost`,className:`h-11 flex-1 gap-2`,"aria-current":r?`page`:void 0,onClick:()=>t(n.key),children:[(0,Y.jsx)(i,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:n.label})]},n.key)})})}),O9=({title:e,description:t,action:n})=>(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsxs)(db,{children:[(0,Y.jsx)(fb,{children:e}),(0,Y.jsx)(pb,{children:t})]}),n?(0,Y.jsx)(hb,{children:n}):null]}),k9=({label:e,value:t,accentClassName:n})=>(0,Y.jsxs)(`div`,{className:`rounded-2xl border border-border/70 bg-card/70 p-3`,children:[(0,Y.jsx)(`div`,{className:X(`text-xl font-semibold text-foreground`,n),children:t}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs uppercase tracking-[0.14em] text-muted-foreground`,children:e})]}),A9=({text:e})=>(0,Y.jsxs)(`div`,{"aria-live":`polite`,className:`flex items-center gap-2 px-1 py-3 text-sm text-muted-foreground`,role:`status`,children:[(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(`span`,{children:e})]}),Aoe=()=>(0,Y.jsxs)(`div`,{className:`space-y-3`,"data-testid":`mobile-overview-skeleton`,children:[(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsx)(db,{className:`border-b border-border/70 pb-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(Av,{className:`h-6 w-28`}),(0,Y.jsx)(Av,{className:`h-6 w-28 rounded-full`})]})}),(0,Y.jsxs)(hb,{className:`space-y-4 pt-5`,children:[(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3`,children:Array.from({length:6},(e,t)=>(0,Y.jsxs)(`div`,{className:`rounded-2xl border border-border/70 bg-card/70 p-3`,children:[(0,Y.jsx)(Av,{className:`h-6 w-10`}),(0,Y.jsx)(Av,{className:`mt-2 h-3 w-16`})]},t))}),(0,Y.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,Y.jsx)(Av,{className:`h-10 w-full rounded-xl`}),(0,Y.jsx)(Av,{className:`h-10 w-full rounded-xl`})]})]})]}),(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsx)(db,{children:(0,Y.jsx)(Av,{className:`h-6 w-20`})}),(0,Y.jsx)(hb,{children:(0,Y.jsx)(Av,{className:`h-10 w-40 rounded-xl`})})]})]}),joe=({isLoggingOut:e,onLogout:t})=>(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsx)(db,{children:(0,Y.jsx)(fb,{children:`Session`})}),(0,Y.jsx)(hb,{children:(0,Y.jsxs)(Z,{variant:`destructive`,className:`gap-2`,disabled:e,onClick:t,children:[(0,Y.jsx)(Vae,{className:`h-4 w-4`}),e?`Logging out...`:`Log out this phone`]})})]}),Moe=({activeRun:e,tickets:t,chatSessions:n,chatSessionDetail:r})=>{let i=r?.agent_status===`running`||!!n?.some(e=>e.agent_status===`running`);if(e?.kind===`ticket`)return{label:`Ticket run active`,variant:`success`};if(i)return{label:`Chat active`,variant:`success`};if(e)return{label:`Project run active`,variant:`success`};let a=t?.filter(e=>e.agent_status===`running`&&e.parked_at===null)??[];return a.some(e=>e.state===`review`)?{label:`Reviewing`,variant:`warning`}:a.some(e=>e.state===`build`)?{label:`Building`,variant:`success`}:a.some(e=>e.state===`plan`)?{label:`Planning`,variant:`info`}:{label:`Idle`,variant:`outline`}},Noe=({activeRun:e,tickets:t,chatSessions:n,chatSessionDetail:r})=>{let i=Moe({activeRun:e,tickets:t,chatSessions:n,chatSessionDetail:r});return(0,Y.jsx)(lb,{variant:i.variant,children:i.label})},Poe=({selectedProjectId:e,summary:t,tickets:n,error:r,chatSessions:i,chatSessionDetail:a,onRetry:o,onOpenTickets:s,onOpenChats:c})=>{let l=S9.Icon,u=C9.Icon;return r?(0,Y.jsx)(O9,{title:`Project summary unavailable`,description:r,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:o,children:`Retry summary`})}):e?!t||t.project.id!==e?(0,Y.jsx)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:(0,Y.jsx)(hb,{className:`pt-5 text-sm text-muted-foreground`,children:`Loading project summary...`})}):(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/70 pb-4`,children:[(0,Y.jsx)(fb,{children:`Overview`}),(0,Y.jsx)(mb,{children:(0,Y.jsx)(Noe,{activeRun:t.active_run,tickets:n,chatSessions:i,chatSessionDetail:a})})]}),(0,Y.jsxs)(hb,{className:`space-y-4 pt-5`,children:[(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3`,children:[(0,Y.jsx)(k9,{label:`Tickets`,value:t.tickets.total}),(0,Y.jsx)(k9,{label:`Plan`,value:t.tickets.plan,accentClassName:`text-sky-200`}),(0,Y.jsx)(k9,{label:`Build`,value:t.tickets.build,accentClassName:`text-emerald-200`}),(0,Y.jsx)(k9,{label:`Review`,value:t.tickets.review,accentClassName:`text-amber-200`}),(0,Y.jsx)(k9,{label:`Done`,value:t.tickets.parked}),(0,Y.jsx)(k9,{label:`Bundles`,value:t.project.bundle_count??0})]}),(0,Y.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,Y.jsxs)(Z,{variant:`outline`,className:`gap-2`,"aria-label":S9.ctaAriaLabel,onClick:s,children:[(0,Y.jsx)(l,{className:`h-4 w-4`}),S9.label]}),(0,Y.jsxs)(Z,{variant:`outline`,className:`gap-2`,"aria-label":C9.ctaAriaLabel,onClick:c,children:[(0,Y.jsx)(u,{className:`h-4 w-4`}),C9.label]})]})]})]}):(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a desktop project before opening tickets or chats from this phone.`})},j9=e=>e.parked_at?`parked`:e.state,M9=e=>{let t=j9(e);return t===`parked`?`Done`:`${t.slice(0,1).toUpperCase()}${t.slice(1)}`},N9=e=>e===`plan`?`info`:e===`build`?`success`:e===`review`?`warning`:`outline`,P9=({ticket:e,isSelected:t,onSelectTicket:n,className:r})=>(0,Y.jsxs)(`button`,{type:`button`,className:X(`w-full rounded-2xl border px-4 py-3 text-left transition-colors`,t?`border-primary/50 bg-primary/10`:`border-border/70 bg-card/40 hover:border-primary/30 hover:bg-accent/50`,r),onClick:()=>n(e.id),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:e.title})}),(0,Y.jsx)(lb,{variant:N9(j9(e)),children:M9(e)})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 text-[11px] uppercase tracking-[0.14em] text-muted-foreground`,children:[e.agent_status?(0,Y.jsx)(`span`,{children:e.agent_status}):null,e.branch?(0,Y.jsx)(`span`,{children:e.branch}):null,e.bundle?.name?(0,Y.jsx)(`span`,{children:e.bundle.name}):null]})]}),Foe=({group:e,selectedBundleId:t,selectedTicketId:n,onSelectBundle:r,onSelectTicket:i})=>{let a=e.bundle.id===t,o=e.tickets.some(e=>e.id===n),[s,c]=(0,p.useState)(o),l=my(e.bundle)||e.bundle.branch||e.bundle.name||`Bundle`,u=e.tickets.filter(e=>e.agent_status===`running`).length,d=a||o;return(0,p.useEffect)(()=>{o&&c(!0)},[o]),(0,Y.jsxs)(Yb,{open:s,onOpenChange:c,children:[(0,Y.jsxs)(`div`,{className:X(`flex items-start gap-2 rounded-2xl border px-4 py-3 transition-colors`,d?`border-primary/50 bg-primary/10`:`border-border/70 bg-card/40 hover:border-primary/30 hover:bg-accent/50`),children:[(0,Y.jsx)(`button`,{type:`button`,className:`min-w-0 flex-1 text-left`,"aria-label":`Open bundle ${l}`,onClick:()=>r(e.bundle.id),children:(0,Y.jsx)(`div`,{className:`flex items-start justify-between gap-3`,children:(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(lb,{variant:`outline`,children:`Bundle`}),(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:l})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-[11px] uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{children:[e.tickets.length,` ticket`,e.tickets.length===1?``:`s`]}),u>0?(0,Y.jsxs)(`span`,{children:[u,` running`]}):null,e.bundle.branch?(0,Y.jsx)(`span`,{children:e.bundle.branch}):null]})]})})}),(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`mt-0.5 shrink-0`,"aria-label":`Toggle bundle tickets for ${l}`,children:(0,Y.jsx)(Ev,{className:X(`h-4 w-4 transition-transform`,s&&`rotate-180`)})})})]}),(0,Y.jsx)(Zb,{className:`pt-2`,children:(0,Y.jsx)(`div`,{className:`space-y-2 pl-3`,children:e.tickets.map(t=>(0,Y.jsx)(P9,{ticket:t,isSelected:t.id===n,onSelectTicket:t=>i(t,e.bundle.id),className:`rounded-xl`},t.id))})})]})},F9=(e,t)=>dy(e,[],t),Ioe=e=>[{key:`plan`,label:`Plan`,tickets:e.filter(e=>!e.parked_at&&e.state===`plan`),items:F9(e.filter(e=>!e.parked_at&&e.state===`plan`),`plan`)},{key:`build`,label:`Build`,tickets:e.filter(e=>!e.parked_at&&e.state===`build`),items:F9(e.filter(e=>!e.parked_at&&e.state===`build`),`build`)},{key:`review`,label:`Review`,tickets:e.filter(e=>!e.parked_at&&e.state===`review`),items:F9(e.filter(e=>!e.parked_at&&e.state===`review`),`review`)},{key:`parked`,label:`Done`,tickets:e.filter(e=>e.parked_at),items:F9(e.filter(e=>e.parked_at),`done`)}].filter(e=>e.tickets.length>0),I9=(e,t)=>{if(!e)return e;let n=new Map(t.tickets.map(e=>[e.id,e]));return e.map(e=>n.get(e.id)??e)},L9=({selectedProjectId:e,tickets:t,selectedBundleId:n,selectedTicketId:r,error:i,onRetry:a,onSelectBundle:o,onSelectTicket:s})=>{if(!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before browsing tickets from this phone.`});if(i)return(0,Y.jsx)(O9,{title:`Tickets unavailable`,description:i,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:a,children:`Retry tickets`})});if(!t)return(0,Y.jsx)(ub,{className:`border-border/80 bg-card/70 shadow-none`,children:(0,Y.jsx)(hb,{className:`pt-5 text-sm text-muted-foreground`,children:`Loading tickets...`})});if(t.length===0)return(0,Y.jsx)(O9,{title:`No tickets`,description:`This project does not have any tickets yet.`});let c=Ioe(t);return(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none lg:flex lg:min-h-0 lg:flex-col`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/70 pb-4`,children:[(0,Y.jsx)(fb,{children:`Tickets`}),(0,Y.jsxs)(pb,{children:[t.length,` total`]})]}),(0,Y.jsx)(hb,{className:`space-y-4 pt-5 lg:min-h-0 lg:flex-1 lg:overflow-y-auto`,children:c.map(e=>(0,Y.jsxs)(`section`,{className:`space-y-2`,"aria-label":`${e.label} tickets`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:[(0,Y.jsx)(`span`,{children:e.label}),(0,Y.jsx)(`span`,{children:e.tickets.length})]}),(0,Y.jsx)(`div`,{className:`space-y-2`,children:e.items.map(e=>e.kind===`bundle`?(0,Y.jsx)(Foe,{group:e.group,selectedBundleId:n,selectedTicketId:r,onSelectBundle:o,onSelectTicket:s},e.group.id):(0,Y.jsx)(P9,{ticket:e.ticket,isSelected:e.ticket.id===r,onSelectTicket:e=>s(e,null)},e.ticket.id))})]},e.key))})]})},R9=({selectedProjectId:e,chatSessions:t,selectedChatSessionId:n,error:r,onRetry:i,onOpenNewChat:a,onSelectChat:o})=>e?r?(0,Y.jsx)(O9,{title:`Chats unavailable`,description:r,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:i,children:`Retry chats`})}):(0,Y.jsxs)(ub,{className:`border-border/80 bg-card/70 shadow-none lg:flex lg:min-h-0 lg:flex-col`,children:[(0,Y.jsxs)(db,{className:`border-b border-border/70 pb-4`,children:[(0,Y.jsx)(fb,{children:`Chats`}),(0,Y.jsx)(pb,{children:t?`${t.length} recent`:`Loading chats...`}),(0,Y.jsx)(mb,{children:(0,Y.jsx)(Z,{variant:`outline`,size:`sm`,onClick:a,children:`New chat`})})]}),(0,Y.jsx)(hb,{className:`space-y-2 pt-5 lg:min-h-0 lg:flex-1 lg:overflow-y-auto`,children:t?t.length===0?(0,Y.jsx)(O9,{title:`No chats`,description:`Start a new chat to plan or build from this project.`,action:(0,Y.jsx)(Z,{onClick:a,children:`Start a chat`})}):t.map(e=>(0,Y.jsx)(`button`,{type:`button`,className:X(`w-full rounded-xl border px-3 py-2.5 text-left transition-colors`,e.id===n?`border-primary/50 bg-primary/10`:`border-border/70 bg-card/40 hover:border-primary/30 hover:bg-accent/50`),onClick:()=>o(e.id),children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 pr-2 text-sm font-medium text-foreground line-clamp-2 break-words`,children:e.title}),(0,Y.jsx)(lb,{variant:e.agent_status===`running`?`warning`:e.mode===`plan`?`info`:`success`,children:e.agent_status??e.mode})]})},e.id)):(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading chats...`})})]}):(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before browsing chats from this phone.`}),z9=({label:e,disabled:t,onClick:n})=>(0,Y.jsx)(Z,{type:`button`,variant:`outline`,disabled:t,onClick:n,children:e}),B9=e=>{let t=e.tickets.filter(e=>!e.parked_at),n=t.filter(e=>e.state===`plan`),r=t.filter(e=>e.state===`build`),i=t.filter(e=>e.state===`review`),a=t.some(e=>e.agent_status===`running`),o=t.find(e=>hN(e)&&e.agent_status===`running`&&!!e.session_id)??null,s=t.find(e=>hN(e)&&e.agent_status===`stopped`&&!!e.session_id)??null,c=[];n.length>0&&c.push({id:`build`,label:`Build Bundle`,pendingLabel:`Building Bundle...`,ariaLabel:`Build Bundle`,disabled:!1,disabledReason:null});let l=r.length>0&&r.every(e=>e.agent_status===`done`),u=r.length===0&&i.length>0&&e.can_re_review===!0&&!a;return(l||u)&&c.push({id:`review`,label:u?`Re-run review`:`Review Bundle`,pendingLabel:`Reviewing Bundle...`,ariaLabel:u?`Re-run review`:`Review Bundle`,disabled:!1,disabledReason:null}),o&&c.push({id:`pause-build`,label:`Pause Build`,pendingLabel:`Pausing Build...`,ariaLabel:`Pause Build`,title:`Pause the build session. You can resume it later.`,disabled:!1,disabledReason:null}),!o&&s&&c.push({id:`resume-build`,label:`Resume`,pendingLabel:`Resuming...`,ariaLabel:`Resume`,disabled:!1,disabledReason:null}),{actions:c,runningBuildTicketId:o?.id??null,resumableBuildTicketId:s?.id??null}},Loe=({ticket:e,actionState:t,actionError:n,onAction:r})=>{let i=X0(e,{reviewLabel:e.worktree_bundle_id===null?`Review`:`Review Bundle`}),a=e.worktree_bundle_id===null&&e.state===`review`&&e.can_re_review===!0&&e.agent_status!==`running`&&!e.parked_at?[{id:`review`,label:`Re-run review`,pendingLabel:`Re-running review...`,ariaLabel:`Re-run review`,disabled:!1,disabledReason:null},...i]:i;return a.length===0?null:(0,Y.jsx)(J0,{actions:a,activeAction:t,disableWhenActive:!0,className:`space-y-3`,heading:`Actions`,headingClassName:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,actionsClassName:`flex flex-wrap gap-2`,showDisabledReason:!0,disabledReasonClassName:`text-sm text-amber-200`,error:n,errorClassName:`text-sm text-red-200`,renderAction:({action:e,label:t,disabled:n})=>(0,Y.jsx)(z9,{label:t,disabled:n,onClick:()=>r(e.id)},e.id)})},Roe=({bundleDetail:e,actionState:t,actionError:n,onAction:r})=>{let{actions:i}=B9(e);return i.length===0?null:(0,Y.jsx)(J0,{actions:i,activeAction:t,disableWhenActive:!0,className:`space-y-3`,heading:`Actions`,headingClassName:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,actionsClassName:`flex flex-wrap gap-2`,error:n,errorClassName:`text-sm text-red-200`,renderAction:({action:e,label:t,disabled:n})=>(0,Y.jsx)(z9,{label:t,disabled:n,onClick:()=>r(e.id)},e.id)})},V9=(e,t)=>(e??[]).map(e=>({id:e.id,role:e.role,kind:e.kind,content:e.content,created_at:e.created_at,ticket_id:t??null,ticket_proposals:`ticket_proposals`in e?e.ticket_proposals??null:null})),H9=({title:e,subtitle:t,badges:n,backLabel:r,onBack:i,action:a})=>(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2`,children:[i?(0,Y.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-8 px-2.5 lg:hidden`,"aria-label":r,onClick:i,children:[(0,Y.jsx)(KN,{className:`h-4 w-4`}),`Back`]}):null,(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:e}),t?(0,Y.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:t}):null]})]}),a?(0,Y.jsx)(`div`,{className:`shrink-0`,children:a}):null]}),n?(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n}):null]}),zoe=({title:e,backLabel:t,onBack:n,action:r})=>(0,Y.jsxs)(`div`,{className:`-mx-3 flex shrink-0 items-center justify-between gap-3 border-b border-border/80 bg-background/95 px-3 py-2.5 backdrop-blur supports-[backdrop-filter]:bg-background/85 sm:-mx-4 sm:px-4 lg:hidden`,children:[(0,Y.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-8 px-2.5`,"aria-label":t,onClick:n,children:[(0,Y.jsx)(KN,{className:`h-4 w-4`}),`Back`]}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-sm font-medium text-foreground`,children:e}),(0,Y.jsx)(`div`,{className:`shrink-0`,children:r})]}),U9=({title:e,backLabel:t,onBack:n,action:r,subheader:i,children:a})=>(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)(zoe,{title:e,backLabel:t,onBack:n,action:r}),i?(0,Y.jsx)(`div`,{className:`shrink-0 border-b border-border/70 py-2 lg:hidden`,children:i}):null,(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:a})]}),W9=({value:e,onTranscript:t,onDetails:n})=>(0,Y.jsxs)(`div`,{className:`flex gap-2 px-3 sm:px-0`,children:[(0,Y.jsx)(Z,{type:`button`,variant:e===`transcript`?`secondary`:`ghost`,className:`h-9 flex-1`,"aria-pressed":e===`transcript`,onClick:t,children:`Transcript`}),(0,Y.jsx)(Z,{type:`button`,variant:e===`details`?`secondary`:`ghost`,className:`h-9 flex-1`,"aria-pressed":e===`details`,onClick:n,children:`Details`})]}),G9=({controls:e})=>{let[t,n]=(0,p.useState)(!1);return(0,Y.jsxs)(Yb,{open:t,onOpenChange:n,children:[(0,Y.jsx)(`div`,{className:`px-1 pb-1`,children:(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`ghost`,className:`h-7 gap-1.5 px-2 text-xs text-muted-foreground`,children:[`Options`,(0,Y.jsx)(Ev,{className:X(`h-3.5 w-3.5 transition-transform`,t&&`rotate-180`)})]})})}),(0,Y.jsx)(Zb,{className:`px-1 pb-1`,children:(0,Y.jsx)(`div`,{className:`rounded-lg border border-border/70 bg-background/35 p-2`,children:e})})]})},Boe=({ticket:e})=>{let t=[{label:`State`,value:M9(e)},{label:`Tool`,value:hP(e,`opencode`)},{label:`Agent`,value:e.agent_status},{label:`Branch`,value:e.branch},{label:`Bundle`,value:e.bundle?.name??null},{label:`Model`,value:e.tool===`opencode`?e.model:null},{label:`Variant`,value:e.tool===`opencode`?e.variant:null}].filter(e=>!!e.value);return t.length===0?null:(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-2 rounded-xl border border-border/70 bg-background/40 px-3 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:`Details`}),(0,Y.jsx)(`dl`,{className:`grid gap-2 text-sm sm:grid-cols-2`,children:t.map(e=>(0,Y.jsxs)(`div`,{className:`space-y-1 rounded-lg border border-border/60 bg-background/50 px-3 py-2`,children:[(0,Y.jsx)(`dt`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:e.label}),(0,Y.jsx)(`dd`,{className:`break-words text-foreground`,children:e.value})]},e.label))})]})},K9=({ticket:e,badges:t,actionState:n,actionError:r,onAction:i,className:a})=>(0,Y.jsxs)(ub,{className:X(`flex min-h-0 min-w-0 flex-col border-border/80 bg-card/70 shadow-none`,a),children:[(0,Y.jsx)(db,{className:`min-w-0 pb-3`,children:(0,Y.jsx)(H9,{title:e.title,badges:t})}),(0,Y.jsxs)(hb,{className:`min-h-0 min-w-0 flex-1 space-y-3 overflow-y-auto pt-0`,children:[(0,Y.jsx)(Loe,{ticket:e,actionState:n,actionError:r,onAction:i}),e.description?(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-2 rounded-xl border border-border/70 bg-background/40 px-3 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:`Description`}),(0,Y.jsx)(VU,{content:e.description,className:`min-w-0 text-foreground`})]}):null,(0,Y.jsx)(Boe,{ticket:e})]})]}),q9=({bundleDetail:e,title:t,subtitle:n,badges:r,actionState:i,actionError:a,onAction:o,orderedTickets:s,highlightedTicketId:c,isTicketListOpen:l,onTicketListOpenChange:u,onSelectTicket:d,className:f,availableModels:p})=>(0,Y.jsxs)(ub,{className:X(`flex min-h-0 min-w-0 flex-col border-border/80 bg-card/70 shadow-none`,f),children:[(0,Y.jsx)(db,{className:`min-w-0 pb-3`,children:(0,Y.jsx)(H9,{title:t,subtitle:n,badges:r})}),(0,Y.jsxs)(hb,{className:`min-h-0 min-w-0 flex-1 space-y-3 overflow-y-auto pt-0`,children:[(0,Y.jsx)(Roe,{bundleDetail:e,actionState:i,actionError:a,onAction:o}),(0,Y.jsxs)(Yb,{open:l,onOpenChange:u,children:[(0,Y.jsx)(Xb,{asChild:!0,children:(0,Y.jsxs)(Z,{type:`button`,variant:`ghost`,className:`h-8 gap-1.5 px-2 text-xs text-muted-foreground`,children:[`Tickets`,(0,Y.jsx)(Ev,{className:X(`h-3.5 w-3.5 transition-transform`,l&&`rotate-180`)})]})}),(0,Y.jsx)(Zb,{className:`pt-2`,children:(0,Y.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-background/35 p-3`,children:(0,Y.jsx)(h2,{tickets:s,highlightedTicketId:c,onOpenTicketDetails:e=>d(e.id,e.worktree_bundle_id),availableModels:p})})})]})]})]}),J9=({selectedProjectId:e,bundleId:t,bundleDetail:n,openNonce:r,mobileDetailView:i,error:a,actionState:o,actionError:s,followUpPrompt:c,isSendingFollowUp:l,followUpError:u,availableModels:d,onBack:f,onRetry:m,onAction:h,onDetailViewChange:g,onSelectTicket:_,onFollowUpPromptChange:v,onFollowUpKeyDown:y,onFollowUpSubmit:b,isLargeScreen:x})=>{let[S,C]=(0,p.useState)(!0);if((0,p.useEffect)(()=>{C(!0)},[t,r]),!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before opening bundle details from this phone.`});if(!t)return(0,Y.jsx)(O9,{title:`Choose a bundle`,description:`Open a bundle to review its transcript and grouped ticket progress.`});if(a)return(0,Y.jsx)(U9,{title:`Bundle unavailable`,backLabel:`Back to tickets`,onBack:f,children:(0,Y.jsx)(O9,{title:`Bundle unavailable`,description:a,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:m,children:`Retry bundle`})})});if(!n||n.bundle.id!==t)return(0,Y.jsx)(U9,{title:`Loading bundle`,backLabel:`Back to tickets`,onBack:f,children:(0,Y.jsx)(A9,{text:`Loading bundle details...`})});let w=my(n.bundle)||n.bundle.branch||n.bundle.name||`Bundle`,T=new Map(d.map(e=>[e.id,e.label])),E=b2(n.tickets,T),D=C2(n),O=x2(n.tickets,n.execution_order_ticket_ids),k=S2(n.tickets,T,E,n.execution_order_ticket_ids),A=$N(n.tickets,D?.state??null),j=n.tickets.find(e=>e.agent_status===`running`)??D,M=j??D??n.tickets[0]??null,N=j?.agent_status===`running`?E[j.id]??j.model??`Agent`:null,P=!!(D&&D.state!==`plan`&&ly(D)),F=n.tickets.some(e=>e.agent_status===`running`)?`Wait for all bundle tickets to finish building before sending a follow-up prompt.`:void 0,I=`mobile-bundle:${n.bundle.id}:${r}`,L=`${n.tickets.length} ticket${n.tickets.length===1?``:`s`}`,R=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(JN,{status:A}),(0,Y.jsx)(lb,{variant:`outline`,children:L}),M?(0,Y.jsxs)(lb,{variant:`outline`,children:[`Target: `,M.title]}):null]});return(0,Y.jsx)(U9,{title:w,backLabel:`Back to tickets`,onBack:f,subheader:x?void 0:(0,Y.jsx)(W9,{value:i,onTranscript:()=>g(`transcript`),onDetails:()=>g(`details`)}),children:x?(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col gap-3 overflow-hidden pt-3`,children:[(0,Y.jsx)(q9,{bundleDetail:n,title:w,subtitle:n.bundle.branch,badges:R,actionState:o,actionError:s,onAction:h,orderedTickets:O,highlightedTicketId:n.target_ticket_id,isTicketListOpen:S,onTicketListOpenChange:C,onSelectTicket:_,className:`shrink-0`,availableModels:d}),(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(f2,{projectId:e,followUpTicketId:n.target_ticket_id,messages:k,internalLog:j?.agent_log??null,currentThinkingMessageId:j?.agent_message_id??D?.agent_message_id??null,legacyThinkingTicketId:j?.id??D?.id??null,previousThinkingLog:j?.previous_agent_log??D?.previous_agent_log??null,previousThinkingMessageId:j?.previous_agent_message_id??D?.previous_agent_message_id??null,pendingAgentTitle:N,streamingResponse:j?.streaming_response??null,isRunning:n.tickets.some(e=>e.agent_status===`running`),canShowComposer:P,composerTheme:pN(D?.state??null),layoutKey:I,scrollLayoutKey:I,followUpPrompt:c,followUpPlaceholder:M?`Follow up on: ${M.title}`:`Follow up on this bundle`,isSendingFollowUp:l,followUpDisabledReason:F,onFollowUpPromptChange:v,onFollowUpKeyDown:y,onFollowUpSubmit:b},I)}),u?(0,Y.jsx)(`p`,{className:`shrink-0 text-sm text-red-200`,children:u}):null]}):i===`details`?(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(q9,{bundleDetail:n,title:w,subtitle:n.bundle.branch,badges:R,actionState:o,actionError:s,onAction:h,orderedTickets:O,highlightedTicketId:n.target_ticket_id,isTicketListOpen:S,onTicketListOpenChange:C,onSelectTicket:_,className:`h-full`,availableModels:d})}):(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)(f2,{projectId:e,followUpTicketId:n.target_ticket_id,messages:k,internalLog:j?.agent_log??null,currentThinkingMessageId:j?.agent_message_id??D?.agent_message_id??null,legacyThinkingTicketId:j?.id??D?.id??null,previousThinkingLog:j?.previous_agent_log??D?.previous_agent_log??null,previousThinkingMessageId:j?.previous_agent_message_id??D?.previous_agent_message_id??null,pendingAgentTitle:N,streamingResponse:j?.streaming_response??null,isRunning:n.tickets.some(e=>e.agent_status===`running`),canShowComposer:P,composerTheme:pN(D?.state??null),layoutKey:I,scrollLayoutKey:I,followUpPrompt:c,followUpPlaceholder:M?`Follow up on: ${M.title}`:`Follow up on this bundle`,isSendingFollowUp:l,followUpDisabledReason:F,onFollowUpPromptChange:v,onFollowUpKeyDown:y,onFollowUpSubmit:b},I),u?(0,Y.jsx)(`p`,{className:`shrink-0 px-1 pt-2 text-sm text-red-200`,children:u}):null]})})},Y9=({selectedProjectId:e,chatSession:t,chatSessionId:n,openNonce:r,error:i,isStopping:a,composerMode:o,composerTool:s,prompt:c,selectedModel:l,selectedVariant:u,selectedSkills:d,availableModels:f,availableSkills:p,isLoadingAgentSettings:m,isSending:h,isUpdatingMode:g,composerDisabledReason:_,onBack:v,onRetry:y,onStop:b,onModeChange:x,onPromptChange:S,onModelChange:C,onVariantChange:w,onSkillsChange:T,onPromptKeyDown:E,onSubmit:D,isLargeScreen:O})=>{if(!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before opening the chat workspace.`});if(n&&i)return(0,Y.jsx)(O9,{title:`Chat unavailable`,description:i,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:y,children:`Retry chat`})});if(n&&(!t||t.id!==n))return(0,Y.jsx)(U9,{title:`Loading chat`,backLabel:`Back to chats`,onBack:v,children:(0,Y.jsx)(A9,{text:`Loading chat transcript...`})});let k=t?.mode??o,A=s===`opencode`&&f.length>0,j=f.find(e=>e.id===l)??null,M=V9(t?.messages),N=t?.agent_status===`running`?(0,Y.jsxs)(Z,{type:`button`,size:`sm`,variant:`outline`,className:`gap-2`,disabled:a,onClick:b,children:[a?(0,Y.jsx)(Fv,{className:`h-4 w-4 animate-spin`}):(0,Y.jsx)(Rv,{className:`h-4 w-4`}),(0,Y.jsx)(`span`,{children:a?`Interrupting...`:`Interrupt`})]}):null,P=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(lb,{variant:k===`plan`?`info`:`success`,children:k}),(0,Y.jsx)(lb,{variant:`outline`,children:t?.tool??s}),t?.agent_status?(0,Y.jsx)(lb,{variant:`outline`,children:t.agent_status}):null]}),F=A?(0,Y.jsx)(NG,{model:l,variant:u,skills:d,showModelSelector:!0,showSkillsSelector:!0,availableModels:f,availableSkills:p,selectedModel:j,onModelChange:C,onVariantChange:w,onSkillsChange:T,modelSelectId:`mobile-chat-model-selector`,variantSelectId:`mobile-chat-variant-selector`,skillsSelectId:`mobile-chat-skills-selector`,disabled:!!_||h}):s===`opencode`&&m?(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading model controls...`}):null,I=!O&&F?(0,Y.jsx)(G9,{controls:F}):F,L=(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:(0,Y.jsx)(bG,{value:k,disabled:!!_||h||g,onChange:x})}),R=O?void 0:({showThinkingControl:e})=>(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 py-1`,children:[L,(0,Y.jsx)(`div`,{className:`ml-auto`,children:e})]}),z=`mobile-chat:${n??`new`}:${r}`;return(0,Y.jsx)(U9,{title:t?.title??`New chat`,backLabel:`Back to chats`,onBack:v,action:N,children:(0,Y.jsx)(D5,{projectId:e,messages:M,internalLog:t?.agent_log??null,currentThinkingMessageId:t?.agent_message_id??null,previousThinkingLog:t?.previous_agent_log??null,previousThinkingMessageId:t?.previous_agent_message_id??null,pendingAgentTitle:t?.title??`Archon`,streamingResponse:t?.streaming_response??null,isRunning:t?.agent_status===`running`,canShowComposer:!0,header:O?(0,Y.jsx)(H9,{title:t?.title??`New chat`,subtitle:t?.target_label_snapshot??`Project root`,badges:P}):R,composerControls:O?L:void 0,composerInlineControls:I,composerTheme:k,forceScrollToBottomKey:z,layoutKey:z,scrollLayoutKey:z,composerFocusNonce:r,blurComposerOnSendStart:!O,followUpPrompt:c,followUpPlaceholder:n?`Continue this chat`:k===`plan`?`Ask Archon to scope or reason through project work`:`Ask Archon to build or verify something in this project`,emptyStateText:n?`No messages yet.`:`Start a new project chat from this phone.`,isSendingFollowUp:h,followUpDisabledReason:_??void 0,hidePendingAgentTitle:!O,onFollowUpPromptChange:S,onFollowUpKeyDown:E,onFollowUpSubmit:D},z)})},X9=({selectedProjectId:e,ticketId:t,ticket:n,openNonce:r,error:i,actionState:a,actionError:o,followUpPrompt:s,followUpSelectedModel:c,followUpSelectedVariant:l,followUpSelectedSkills:u,availableModels:d,availableSkills:f,isLoadingAgentSettings:m,isSendingFollowUp:h,followUpError:g,onBack:_,onRetry:v,onAction:y,onFollowUpPromptChange:b,onFollowUpModelChange:x,onFollowUpVariantChange:S,onFollowUpSkillsChange:C,onFollowUpKeyDown:w,onFollowUpSubmit:T,isLargeScreen:E})=>{let[D,O]=(0,p.useState)(`transcript`);if((0,p.useEffect)(()=>{O(`transcript`)},[r,t]),!e)return(0,Y.jsx)(O9,{title:`Choose a project`,description:`Select a project before opening ticket details from this phone.`});if(!t)return(0,Y.jsx)(O9,{title:`Choose a ticket`,description:`Open a ticket to review its transcript and continue the workflow.`});if(i)return(0,Y.jsx)(O9,{title:`Ticket unavailable`,description:i,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:v,children:`Retry ticket`})});if(!n||n.id!==t)return(0,Y.jsx)(U9,{title:`Loading ticket`,backLabel:`Back to tickets`,onBack:_,children:(0,Y.jsx)(A9,{text:`Loading ticket details...`})});let k=Z0(n,{requireWorktree:!0}),A=V9(n.messages,n.id),j=d.find(e=>e.id===c)??null,M=hP(n,`opencode`)===`opencode`&&d.length>0?(0,Y.jsx)(NG,{model:c,variant:l,skills:u,showModelSelector:!0,showSkillsSelector:!0,availableModels:d,availableSkills:f,selectedModel:j,onModelChange:x,onVariantChange:S,onSkillsChange:C,modelSelectId:`mobile-ticket-follow-up-model-selector`,variantSelectId:`mobile-ticket-follow-up-variant-selector`,skillsSelectId:`mobile-ticket-follow-up-skills-selector`,disabled:!!k.disabledReason||h}):hP(n,`opencode`)===`opencode`&&m?(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading model controls...`}):null,N=!E&&M?(0,Y.jsx)(G9,{controls:M}):M,P=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(lb,{variant:N9(j9(n)),children:M9(n)}),n.tool?(0,Y.jsx)(lb,{variant:`outline`,children:n.tool}):null,n.agent_status?(0,Y.jsx)(lb,{variant:`outline`,children:n.agent_status}):null,n.branch?(0,Y.jsx)(lb,{variant:`outline`,children:n.branch}):null,n.bundle?.name?(0,Y.jsx)(lb,{variant:`outline`,children:n.bundle.name}):null]}),F=`mobile-ticket:${n.id}:${r}`,I=(0,Y.jsx)(W9,{value:D,onTranscript:()=>O(`transcript`),onDetails:()=>O(`details`)});return(0,Y.jsx)(U9,{title:n.title,backLabel:`Back to tickets`,onBack:_,subheader:E?void 0:I,children:E?(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col gap-3 overflow-hidden pt-3`,children:[(0,Y.jsx)(K9,{ticket:n,badges:P,actionState:a,actionError:o,onAction:y,className:`shrink-0`}),(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(UW,{projectId:e,followUpTicketId:n.id,messages:A,internalLog:n.agent_log??null,currentThinkingMessageId:n.agent_message_id??null,previousThinkingLog:n.previous_agent_log??null,previousThinkingMessageId:n.previous_agent_message_id??null,pendingAgentTitle:n.title,streamingResponse:n.streaming_response??null,isRunning:n.agent_status===`running`,canShowComposer:!0,followUpComposerControls:M,composerTheme:n.state,forceScrollToBottomKey:F,layoutKey:F,scrollLayoutKey:F,followUpPrompt:s,followUpPlaceholder:k.placeholder,emptyStateText:`No follow-up messages yet.`,isSendingFollowUp:h,followUpDisabledReason:k.disabledReason??void 0,onFollowUpPromptChange:b,onFollowUpKeyDown:w,onFollowUpSubmit:T},F)}),g?(0,Y.jsx)(`p`,{className:`shrink-0 text-sm text-red-200`,children:g}):null]}):D===`details`?(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,Y.jsx)(K9,{ticket:n,badges:P,actionState:a,actionError:o,onAction:y,className:`h-full`})}):(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)(UW,{projectId:e,followUpTicketId:n.id,messages:A,internalLog:n.agent_log??null,currentThinkingMessageId:n.agent_message_id??null,previousThinkingLog:n.previous_agent_log??null,previousThinkingMessageId:n.previous_agent_message_id??null,pendingAgentTitle:n.title,streamingResponse:n.streaming_response??null,isRunning:n.agent_status===`running`,canShowComposer:!0,followUpComposerControls:N,composerTheme:n.state,surfaceVariant:`chat`,composerSize:`compact-on-laptop`,forceScrollToBottomKey:F,layoutKey:F,scrollLayoutKey:F,followUpPrompt:s,followUpPlaceholder:k.placeholder,emptyStateText:`No follow-up messages yet.`,isSendingFollowUp:h,followUpDisabledReason:k.disabledReason??void 0,onFollowUpPromptChange:b,onFollowUpKeyDown:w,onFollowUpSubmit:T},F),g?(0,Y.jsx)(`p`,{className:`shrink-0 px-1 pt-2 text-sm text-red-200`,children:g}):null]})})},Voe=()=>{let e=new URLSearchParams(window.location.search),t=new URLSearchParams(window.location.hash.slice(1)),n=e.get(`mobileAccessId`)??``,r=e.get(`pairingId`)??``,i=t.get(`pairingSecret`)??``;return!n||!r||!i?null:{mobileAccessId:n,pairingId:r,pairingSecret:i}},Hoe=()=>{window.history.replaceState({},``,`/mobile`)},Uoe=e=>{let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},Z9=(e,t)=>e instanceof Ke&&e.message?e.message:t,Q9=e=>({status:`authenticated`,csrfToken:e,projects:null,selectedProjectId:null,projectError:null,projectSummary:null,projectSummaryError:null,chatSessions:null,chatSessionsError:null,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null,tickets:null,ticketsError:null,selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),$9=(e=`pairing_required`)=>({status:`unauthenticated`,reason:e}),Woe=e=>e instanceof Ke&&(e.status===401||e.status===403),Goe=()=>{let[e,t]=(0,p.useState)({status:`checking`}),[n,r]=(0,p.useState)(`connecting`),[i,a]=(0,p.useState)(`overview`),[o,s]=(0,p.useState)(!1),[c,l]=(0,p.useState)(!1),[u,d]=(0,p.useState)(!1),[f,m]=(0,p.useState)(!1),[h,g]=(0,p.useState)(!1),[_,v]=(0,p.useState)(!1),[y,b]=(0,p.useState)(``),[x,S]=(0,p.useState)(`build`),[C,w]=(0,p.useState)(``),[T,E]=(0,p.useState)(``),[D,O]=(0,p.useState)([]),[k,A]=(0,p.useState)([]),[j,M]=(0,p.useState)([]),[N,P]=(0,p.useState)(!1),[F,I]=(0,p.useState)(!1),[L,R]=(0,p.useState)(!1),[z,B]=(0,p.useState)(null),[V,H]=(0,p.useState)(null),[ee,U]=(0,p.useState)(null),[te,ne]=(0,p.useState)(null),[re,ie]=(0,p.useState)(null),[ae,oe]=(0,p.useState)(null),[W,se]=(0,p.useState)(``),[ce,le]=(0,p.useState)(``),[ue,de]=(0,p.useState)(``),[fe,pe]=(0,p.useState)([]),[me,he]=(0,p.useState)(!1),[ge,_e]=(0,p.useState)(null),[ve,ye]=(0,p.useState)(``),[G,be]=(0,p.useState)(!1),[xe,Se]=(0,p.useState)(null),[Ce,we]=(0,p.useState)(0),[Te,Ee]=(0,p.useState)(0),[De,Oe]=(0,p.useState)(0),[ke,Ae]=(0,p.useState)(`transcript`),[je,Me]=(0,p.useState)(null),[Ne,Pe]=(0,p.useState)(null),[Fe,Ie]=(0,p.useState)(!1),[Le,Re]=(0,p.useState)(!1),[ze,Be]=(0,p.useState)(!1),[Ve,K]=(0,p.useState)(null),[He,Ue]=(0,p.useState)(null),We=(0,p.useRef)(null),Ge=(0,p.useRef)(null),qe=(0,p.useRef)(null),Je=(0,p.useRef)(null),q=(0,p.useCallback)(e=>Woe(e)?(t($9(`session_revoked`)),r(`unavailable`),s(!1),l(!1),d(!1),m(!1),!0):!1,[]),Xe=(0,p.useCallback)(async(e,n,r,i)=>{try{let a=await Yae(n,r,i);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedTicketId!==r?t:{...t,ticketDetail:a,ticketDetailError:null})}catch(i){if(!Ye(i)){if(q(i))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedTicketId!==r?t:{...t,ticketDetail:null,ticketDetailError:Z9(i,`Unable to load ticket details.`)})}}},[q]),Ze=(0,p.useCallback)(async(e,n,r,i)=>{try{let a=await Xae(n,r,i);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedBundleId!==r?t:{...t,bundleDetail:a,bundleDetailError:null,tickets:I9(t.tickets,a)})}catch(i){if(!Ye(i)){if(q(i))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedBundleId!==r?t:{...t,bundleDetail:null,bundleDetailError:Z9(i,`Unable to load bundle details.`)})}}},[q]),J=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Jae(n,r);t(t=>{if(t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n)return t;let r=t.selectedTicketId&&i.some(e=>e.id===t.selectedTicketId)?t.selectedTicketId:null,a=t.selectedBundleId&&i.some(e=>e.worktree_bundle_id===t.selectedBundleId)?t.selectedBundleId:null;return{...t,tickets:i,ticketsError:null,selectedBundleId:a,bundleDetail:a?t.bundleDetail:null,bundleDetailError:a?t.bundleDetailError:null,selectedTicketId:r,ticketDetail:r?t.ticketDetail:null,ticketDetailError:r?t.ticketDetailError:null}})}catch(r){if(!Ye(r)){if(q(r))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,tickets:null,ticketsError:Z9(r,`Unable to load project tickets.`),selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null})}}},[q]),Qe=(0,p.useCallback)(async(e,n,r,i)=>{try{let a=await qae(n,r,i);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedChatSessionId!==r?t:{...t,chatSessionDetail:a,chatSessionDetailError:null})}catch(i){if(!Ye(i)){if(q(i))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n||t.selectedChatSessionId!==r?t:{...t,chatSessionDetail:null,chatSessionDetailError:Z9(i,`Unable to load chat transcript.`)})}}},[q]),$e=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Kae(n,r);t(t=>{if(t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n)return t;let r=t.selectedChatSessionId&&i.some(e=>e.id===t.selectedChatSessionId)?t.selectedChatSessionId:null;return{...t,chatSessions:i,chatSessionsError:null,selectedChatSessionId:r,chatSessionDetail:r?t.chatSessionDetail:null,chatSessionDetailError:r?t.chatSessionDetailError:null}})}catch(r){if(!Ye(r)){if(q(r))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,chatSessions:null,chatSessionsError:Z9(r,`Unable to load project chats.`),selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null})}}},[q]),et=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Wae(n,r);t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,projectSummary:i,projectSummaryError:null})}catch(r){if(!Ye(r)){if(q(r))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e||t.selectedProjectId!==n?t:{...t,projectSummary:null,projectSummaryError:Z9(r,`Unable to load the project summary.`)})}}},[q]),tt=(0,p.useCallback)(async(e,t,n)=>{Re(!0);try{let e=await Gae(t,n),r=We.current;if(r&&r!==t)return;Me(e),Pe(null),K(null)}catch(e){if(!Ye(e)){if(q(e))return;let n=We.current;if(n&&n!==t)return;Me(null),Pe(Z9(e,`Unable to load project target options.`))}}finally{n?.aborted||Re(!1)}},[q]),nt=(0,p.useCallback)(e=>{t(t=>t.status===`authenticated`?{...t,projects:t.projects?.map(t=>t.id===e.id?e:t)??t.projects,projectSummary:t.projectSummary?.project.id===e.id?{...t.projectSummary,project:e}:t.projectSummary}:t)},[]),rt=(0,p.useCallback)(async(e,n,r)=>{try{let i=await Uae(n),a=r&&i.some(e=>e.id===r)?r:i[0]?.id??null;t(t=>{if(t.status!==`authenticated`||t.csrfToken!==e)return t;let n=!!(t.selectedProjectId&&a&&t.selectedProjectId===a);return{...t,projects:i,selectedProjectId:a,projectError:null,projectSummary:n?t.projectSummary:null,projectSummaryError:n?t.projectSummaryError:null,chatSessions:n?t.chatSessions:null,chatSessionsError:n?t.chatSessionsError:null,selectedChatSessionId:n?t.selectedChatSessionId:null,chatSessionDetail:n?t.chatSessionDetail:null,chatSessionDetailError:n?t.chatSessionDetailError:null,tickets:n?t.tickets:null,ticketsError:n?t.ticketsError:null,selectedBundleId:n?t.selectedBundleId:null,bundleDetail:n?t.bundleDetail:null,bundleDetailError:n?t.bundleDetailError:null,selectedTicketId:n?t.selectedTicketId:null,ticketDetail:n?t.ticketDetail:null,ticketDetailError:n?t.ticketDetailError:null}});let o=a?i.find(e=>e.id===a)??null:null;a&&(et(e,a,n),o?.active_target_kind===`bundle`&&tt(e,a,n),$e(e,a,n),J(e,a,n))}catch(n){if(!Ye(n)){if(q(n))return;t(t=>t.status!==`authenticated`||t.csrfToken!==e?t:{...t,projects:t.projects??[],projectError:Z9(n,`Unable to load projects from desktop Archon.`)})}}},[q,$e,et,tt,J]),it=(0,p.useCallback)(async e=>{t({status:`checking`}),r(`connecting`);try{let n=await doe(e);if(n.authenticated&&n.csrf_token){r(`connecting`),t(Q9(n.csrf_token)),rt(n.csrf_token,e,n.preferred_project_id);return}t($9())}catch(e){Ye(e)||t({status:`error`,message:Z9(e,`Mobile access is unavailable. Make sure it is still enabled on desktop Archon.`)})}},[rt]),at=(0,p.useCallback)((e,n,i)=>{r(`connecting`),t(Q9(e)),rt(e,i,n)},[rt]);(0,p.useEffect)(()=>{let e=new AbortController;if(window.location.pathname===`/mobile/pair`){let n=Voe();return Hoe(),n?(t({status:`pairing`}),foe(n,e.signal).then(e=>{t({status:`pairing_confirmation`,payload:n,displayCode:e.display_code,expiresAt:e.expires_at,error:null})}).catch(e=>{t({status:`error`,message:Z9(e,`Pairing failed. Regenerate the pairing link from desktop Archon and try again.`)})}),()=>e.abort()):(t({status:`error`,message:`Pairing link is missing required pairing details.`}),()=>e.abort())}return it(e.signal),()=>e.abort()},[at,it]);let ot=e.status===`authenticated`?e.csrfToken:null,st=e.status===`authenticated`?e.selectedProjectId:null,ct=e.status===`authenticated`?e.selectedChatSessionId:null,lt=e.status===`authenticated`?e.selectedBundleId:null,ut=e.status===`authenticated`?e.selectedTicketId:null,dt=e.status===`authenticated`?e.projects?.find(t=>t.id===e.selectedProjectId)??null:null,ft=e.status===`authenticated`?e.chatSessionDetail:null,pt=e.status===`authenticated`?e.bundleDetail:null,mt=e.status===`authenticated`?e.ticketDetail:null,ht=T9(dt,je),gt=Le&&(!dt||dt.active_target_kind===`bundle`),_t=Coe(),vt=ft?.tool??`opencode`,yt=e.status!==`authenticated`||!e.selectedProjectId?`Choose a project before sending a prompt.`:L?`Wait for the chat mode change before sending another prompt.`:ft?.agent_status===`running`?`Stop or wait for the current response before sending another prompt.`:null,bt=!_t&&(i===`tickets`&&(u&&!!ut||c&&!!lt)||i===`chats`&&f);(0,p.useEffect)(()=>{We.current=st},[st]),(0,p.useEffect)(()=>{st||(Me(null),Pe(null),K(null),Ie(!1),Re(!1),Be(!1))},[st]),(0,p.useEffect)(()=>{Ge.current=ct},[ct]),(0,p.useEffect)(()=>{qe.current=lt},[lt]),(0,p.useEffect)(()=>{Je.current=ut},[ut]),(0,p.useEffect)(()=>{if(!ot||!st){A([]),M([]),P(!1);return}if(!(vt===`opencode`||mt?.tool===`opencode`)){A([]),M([]),P(!1);return}let e=new AbortController;return P(!0),Promise.all([loe(`opencode`,e.signal),uoe(`opencode`,st,e.signal)]).then(([e,t])=>{A(e),M(t)}).catch(e=>{q(e)||Ye(e)||(A([]),M([]))}).finally(()=>{e.signal.aborted||P(!1)}),()=>e.abort()},[ot,vt,q,st,mt?.tool]),(0,p.useEffect)(()=>{if(vt!==`opencode`){w(``),E(``),O([]);return}w(ft?.model??dt?.helper_model??``),E(ft?.variant??dt?.helper_variant??``),O(ft?.skills??[])},[vt,ft?.id,ft?.model,ft?.skills,ft?.variant,dt?.helper_model,dt?.helper_variant]),(0,p.useEffect)(()=>{ft?.mode&&S(ft.mode)},[ft?.id,ft?.mode]),(0,p.useEffect)(()=>{let e=k.find(e=>e.id===C)??null;E(t=>e?e.variants.includes(t)?t:``:t)},[k,C]),(0,p.useEffect)(()=>{se(``),_e(null),le(mt?.model??``),de(mt?.variant??``),pe(mt?.skills??[])},[mt?.id,mt?.model,mt?.skills,mt?.variant]),(0,p.useEffect)(()=>{ye(``),Se(null)},[pt?.bundle.id]),(0,p.useEffect)(()=>{let e=k.find(e=>e.id===ce)??null;de(t=>e?e.variants.includes(t)?t:``:t)},[k,ce]),(0,p.useEffect)(()=>{if(!ot)return;let e=hoe();r(`connecting`);let t=()=>{let e=We.current,t=Ge.current,n=qe.current,r=Je.current;rt(ot,void 0,e),e&&(et(ot,e),$e(ot,e),J(ot,e)),e&&t&&Qe(ot,e,t),e&&n&&Ze(ot,e,n),e&&r&&Xe(ot,e,r)},n=()=>{r(`connected`),t()},i=()=>{r(`reconnecting`)},a=()=>{r(`unavailable`)},o=()=>{rt(ot,void 0,We.current)},s=(e=null)=>{let t=We.current;t&&(e?.project_id&&e.project_id!==t||et(ot,t))},c=(e=null)=>{let t=We.current;t&&(e?.project_id&&e.project_id!==t||$e(ot,t))},l=(e=null)=>{let t=We.current;t&&(e?.project_id&&e.project_id!==t||J(ot,t))},u=(e=null)=>{let t=We.current,n=Ge.current;!t||!n||e?.project_id&&e.project_id!==t||e?.id&&e.id!==n||Qe(ot,t,n)},d=(e=null)=>{let t=We.current,n=Je.current;!t||!n||e?.project_id&&e.project_id!==t||e?.id&&e.id!==n||Xe(ot,t,n)},f=(e=null)=>{let t=We.current,n=qe.current;!t||!n||e?.project_id&&e.project_id!==t||Ze(ot,t,n)};return e.on(`connect`,n),e.on(`disconnect`,i),e.on(`connect_error`,a),e.on(`ticket:created`,s),e.on(`ticket:created`,l),e.on(`ticket:updated`,s),e.on(`ticket:updated`,l),e.on(`ticket:updated`,f),e.on(`ticket:updated`,d),e.on(`ticket:deleted`,o),e.on(`ticket:deleted`,l),e.on(`ticket:deleted`,f),e.on(`ticket-dependency:created`,s),e.on(`ticket-dependency:deleted`,s),e.on(`chat-session:created`,c),e.on(`chat-session:updated`,c),e.on(`chat-session:updated`,u),e.on(`chat-session:deleted`,c),()=>{e.off(`connect`,n),e.off(`disconnect`,i),e.off(`connect_error`,a),e.off(`ticket:created`,s),e.off(`ticket:created`,l),e.off(`ticket:updated`,s),e.off(`ticket:updated`,l),e.off(`ticket:updated`,f),e.off(`ticket:updated`,d),e.off(`ticket:deleted`,o),e.off(`ticket:deleted`,l),e.off(`ticket:deleted`,f),e.off(`ticket-dependency:created`,s),e.off(`ticket-dependency:deleted`,s),e.off(`chat-session:created`,c),e.off(`chat-session:updated`,c),e.off(`chat-session:updated`,u),e.off(`chat-session:deleted`,c),e.disconnect()}},[ot,Ze,Qe,$e,et,rt,Xe,J]),(0,p.useEffect)(()=>{lt||l(!1)},[lt]),(0,p.useEffect)(()=>{ut||d(!1)},[ut]);let xt=()=>{it()},St=e=>{a(e),l(!1),d(!1),m(!1),Ue(null)},Ct=()=>{s(!0)},wt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(K(null),Ie(!0),!je&&!Le&&tt(e.csrfToken,e.selectedProjectId))},Tt=()=>{e.status===`authenticated`&&(g(!0),moe(e.csrfToken).then(()=>t($9())).catch(e=>{q(e)||t({status:`error`,message:Z9(e,`Logout failed. Mobile access may have already been revoked from desktop Archon.`)})}).finally(()=>g(!1)))},Et=()=>{if(e.status!==`pairing_confirmation`||_)return;let n=e.payload;v(!0),t({...e,error:null}),poe(n).then(e=>{if(e.authenticated&&e.csrf_token){window.history.replaceState({},``,`/mobile`),at(e.csrf_token,e.preferred_project_id);return}t($9())}).catch(e=>{t(t=>t.status===`pairing_confirmation`?{...t,error:Z9(e,`Pairing failed. Regenerate the pairing link from desktop Archon and try again.`)}:t)}).finally(()=>v(!1))},Dt=()=>{window.history.replaceState({},``,`/mobile`),t($9())},Ot=()=>{e.status===`authenticated`&&(t({...e,projects:null,projectError:null}),rt(e.csrfToken))},kt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,projectSummary:null,projectSummaryError:null}),et(e.csrfToken,e.selectedProjectId))},At=()=>{e.status!==`authenticated`||!e.selectedProjectId||(Me(null),Pe(null),K(null),tt(e.csrfToken,e.selectedProjectId))},jt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,chatSessions:null,chatSessionsError:null,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null}),$e(e.csrfToken,e.selectedProjectId))},Mt=()=>{e.status!==`authenticated`||!e.selectedProjectId||!e.selectedChatSessionId||(t({...e,chatSessionDetail:null,chatSessionDetailError:null}),Qe(e.csrfToken,e.selectedProjectId,e.selectedChatSessionId))},Nt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,tickets:null,ticketsError:null,selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),J(e.csrfToken,e.selectedProjectId))},Pt=()=>{e.status!==`authenticated`||!e.selectedProjectId||!e.selectedTicketId||(t({...e,ticketDetail:null,ticketDetailError:null}),Xe(e.csrfToken,e.selectedProjectId,e.selectedTicketId))},Ft=()=>{e.status!==`authenticated`||!e.selectedProjectId||!e.selectedBundleId||(t({...e,bundleDetail:null,bundleDetailError:null}),Ze(e.csrfToken,e.selectedProjectId,e.selectedBundleId))},It=n=>{if(e.status!==`authenticated`)return;let r=e.projects?.find(e=>e.id===n)??null;We.current=n,t({...e,selectedProjectId:n,projectSummary:null,projectSummaryError:null,chatSessions:null,chatSessionsError:null,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null,tickets:null,ticketsError:null,selectedBundleId:null,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),U(null),ne(null),ie(null),oe(null),H(null),oe(null),setStopRunError(null),Se(null),Me(null),Pe(null),K(null),s(!1),Ie(!1),l(!1),d(!1),m(!1),Ae(`transcript`),Ue(null),a(`overview`),et(e.csrfToken,n),r?.active_target_kind===`bundle`&&tt(e.csrfToken,n),$e(e.csrfToken,n),J(e.csrfToken,n)},Lt=async t=>{if(!(e.status!==`authenticated`||!e.selectedProjectId)){Be(!0),K(null);try{nt(await b9(e.selectedProjectId,e.csrfToken,{kind:`bundle`,bundle_id:t})),Ie(!1),et(e.csrfToken,e.selectedProjectId),tt(e.csrfToken,e.selectedProjectId)}catch(e){if(q(e))return;K(Z9(e,`Unable to update the project target right now.`))}finally{Be(!1)}}},Rt=async(t,n={})=>{if(e.status!==`authenticated`||!e.selectedProjectId)return;Be(!0),K(null);let r=r=>b9(e.selectedProjectId??``,e.csrfToken,{kind:`repo_root`,...t?{branch:t}:{},...n.createBranch===!1?{create_branch:!1}:{},...r?{confirm_dirty_switch:!0}:{}});try{let t;try{t=await r(n.confirmDirtySwitch===!0)}catch(e){if(!n.confirmDirtySwitch&&e instanceof Ke&&e.status===409&&e.message===w9){if(!window.confirm(`${w9}\n\nSwitch anyway?`))return;t=await r(!0)}else throw e}nt(t),Ie(!1),et(e.csrfToken,e.selectedProjectId),tt(e.csrfToken,e.selectedProjectId)}catch(e){if(q(e))return;K(Z9(e,`Unable to update the project target right now.`))}finally{Be(!1)}},zt=n=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedChatSessionId:n,chatSessionDetail:null,chatSessionDetailError:null}),H(null),we(e=>e+1),m(!0),a(`chats`),Qe(e.csrfToken,e.selectedProjectId,n))},Bt=()=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedChatSessionId:null,chatSessionDetail:null,chatSessionDetailError:null}),H(null),b(``),we(e=>e+1),m(!0),a(`chats`))},Vt=n=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedBundleId:n,bundleDetail:null,bundleDetailError:null,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),U(null),ne(null),oe(null),Se(null),Ue(null),Ae(`transcript`),Ee(e=>e+1),l(!0),d(!1),a(`tickets`),Ze(e.csrfToken,e.selectedProjectId,n))},Ht=(n,r)=>{e.status!==`authenticated`||!e.selectedProjectId||(t({...e,selectedTicketId:n,ticketDetail:null,ticketDetailError:null}),Ue(r),Oe(e=>e+1),l(r!==null),d(!0),a(`tickets`),Xe(e.csrfToken,e.selectedProjectId,n))},Ut=()=>{m(!1)},Wt=n=>{if(e.status!==`authenticated`||!e.selectedProjectId)return;if(!e.chatSessionDetail||!e.selectedChatSessionId){S(n);return}if(e.chatSessionDetail.mode===n||L)return;let r=e.selectedProjectId,i=e.selectedChatSessionId,a=e.csrfToken;R(!0),H(null),toe(r,i,a,{mode:n}).then(e=>{S(e.mode),t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedChatSessionId!==i)return t;let n=t.chatSessions?.map(t=>t.id===e.id?e:t)??t.chatSessions;return{...t,chatSessions:n,chatSessionDetail:e,chatSessionDetailError:null}})}).catch(e=>{q(e)||H(Z9(e,`Unable to update the chat mode right now.`))}).finally(()=>R(!1))},Gt=()=>{if(e.status===`authenticated`&&He&&e.selectedBundleId===He){t({...e,selectedTicketId:null,ticketDetail:null,ticketDetailError:null}),d(!1),l(!0),Ue(null);return}Ue(null),d(!1)},Kt=()=>{l(!1)},qt=e=>{let t=k.find(t=>t.id===e)??null;w(e),E(e=>t&&t.variants.includes(e)?e:``)},Jt=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),Yt())},Yt=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||F||yt)return;let n=y.trim();if(!n)return;let r=e.selectedProjectId,i=e.csrfToken,a=vt===`opencode`&&C?C:null,o=vt===`opencode`&&C&&T?T:null,s=vt===`opencode`?D:[];H(null),I(!0);let c=e=>eoe(r,e.id,i,{instruction:n,tool:e.tool,model:a,variant:o,skills:s});(e.chatSessionDetail?c(e.chatSessionDetail):$ae(r,i,{mode:x,tool:vt,model:a,variant:o,skills:s}).then(c)).then(e=>{b(``),m(!0),t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r)return t;let n=t.chatSessions??[],i=n.some(t=>t.id===e.id)?n.map(t=>t.id===e.id?e:t):[e,...n];return{...t,chatSessions:i,selectedChatSessionId:e.id,chatSessionDetail:e,chatSessionDetailError:null}}),$e(i,r)}).catch(e=>{q(e)||H(Z9(e,`Unable to send the chat prompt.`))}).finally(()=>I(!1))},Xt=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedChatSessionId||z)return;let t=e.selectedProjectId,n=e.selectedChatSessionId;H(null),B(n),noe(t,n,e.csrfToken).then(()=>Qe(e.csrfToken,t,n)).catch(e=>{q(e)||H(Z9(e,`Unable to stop the chat response.`))}).finally(()=>B(null))},Zt=n=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedTicketId||re||(n===`stop-run`||n===`pause-build`)&&!window.confirm(`Stop this ticket action on the desktop machine?`))return;let r=e.selectedProjectId,i=e.selectedTicketId,a=e.csrfToken,o=n===`build`?_9(r,i,a,`build`):n===`review`?_9(r,i,a,`review`):n===`run`?roe(r,i,a):n===`stop-run`?ioe(r,i,a):n===`pause-build`?v9(r,i,a):y9(r,i,a);ie(n),oe(null),o.then(e=>{t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedTicketId!==i)return t;let n=t.tickets?.map(t=>t.id===e.id?e:t)??t.tickets;return{...t,tickets:n,ticketDetail:e,ticketDetailError:null}}),et(a,r),J(a,r),Xe(a,r,i)}).catch(e=>{q(e)||oe(Z9(e,`Unable to update this ticket from mobile.`))}).finally(()=>ie(null))},Qt=n=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedBundleId||!e.bundleDetail||ee)return;let r=e.selectedProjectId,i=e.selectedBundleId,a=e.csrfToken,o=e.bundleDetail,{runningBuildTicketId:s,resumableBuildTicketId:c}=B9(o);if(n===`pause-build`&&!window.confirm(`Pause this bundle build on the desktop machine?`))return;let l=e=>{t(t=>t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedBundleId!==i?t:{...t,tickets:I9(t.tickets,e),bundleDetail:e,bundleDetailError:null})},u=e=>{t(t=>t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedBundleId!==i?t:{...t,tickets:t.tickets?.map(t=>t.id===e.id?e:t)??t.tickets,bundleDetail:t.bundleDetail?{...t.bundleDetail,tickets:t.bundleDetail.tickets.map(t=>t.id===e.id?e:t)}:t.bundleDetail,bundleDetailError:null})},d=n===`build`?Zae(r,i,a):n===`review`?Qae(r,i,a):n===`pause-build`?s?v9(r,s,a):null:c?y9(r,c,a):null;d&&(U(n),ne(null),d.then(e=>{`tickets`in e?l(e):u(e),et(a,r),J(a,r),Ze(a,r,i)}).catch(e=>{q(e)||ne(Z9(e,`Unable to update this bundle from mobile.`))}).finally(()=>U(null)))},$t=e=>{let t=k.find(t=>t.id===e)??null;le(e),de(e=>t&&t.variants.includes(e)?e:``)},en=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),tn())},tn=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedTicketId||!e.ticketDetail||me)return;let n=W.trim();if(!n)return;let r=e.selectedProjectId,i=e.ticketDetail,a=e.csrfToken,o=Q0(i,{model:ce||null,variant:ue||null,skills:fe}),s=()=>i.state===`plan`?ooe(r,i.id,a,n):soe(r,i.id,a,n),c=e=>{t(t=>{if(t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedTicketId!==i.id)return t;let n=t.tickets?.map(t=>t.id===e.id?e:t)??t.tickets;return{...t,tickets:n,ticketDetail:e,ticketDetailError:null}})};he(!0),_e(null),(async()=>{o.shouldPersist&&c(await aoe(r,i.id,a,{model:o.model,variant:o.variant,skills:o.skills})),c(await s()),se(``),J(a,r),Xe(a,r,i.id)})().catch(e=>{q(e)||_e(Z9(e,`Unable to send the ticket follow-up.`))}).finally(()=>he(!1))},nn=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),rn())},rn=()=>{if(e.status!==`authenticated`||!e.selectedProjectId||!e.selectedBundleId||!e.bundleDetail||G)return;let n=ve.trim();if(!n)return;let r=e.selectedProjectId,i=e.selectedBundleId,a=e.csrfToken,o=e=>{t(t=>t.status!==`authenticated`||t.selectedProjectId!==r||t.selectedBundleId!==i?t:{...t,tickets:I9(t.tickets,e),bundleDetail:e,bundleDetailError:null})};be(!0),Se(null),coe(r,i,a,n).then(e=>{o(e),ye(``),J(a,r),Ze(a,r,i)}).catch(e=>{q(e)||Se(Z9(e,`Unable to send the bundle follow-up.`))}).finally(()=>be(!1))};return e.status===`checking`?(0,Y.jsx)(E9,{title:`Checking mobile session`,description:`Archon is validating this browser before showing project controls.`}):e.status===`pairing`?(0,Y.jsx)(E9,{title:`Checking pairing link`,description:`Keep this page open while Archon verifies the one-time pairing link.`}):e.status===`pairing_confirmation`?(0,Y.jsxs)(E9,{title:`Compare pairing code`,description:`Confirm this code matches the desktop dialog before pairing this phone.`,children:[(0,Y.jsx)(ub,{className:`border-primary/25 bg-primary/10 shadow-none`,children:(0,Y.jsxs)(hb,{className:`space-y-2 pt-5 text-center`,children:[(0,Y.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.18em] text-foreground`,children:`Verification code`}),(0,Y.jsx)(`div`,{className:`font-mono text-3xl font-semibold tracking-[0.18em] text-foreground`,children:e.displayCode}),(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[`Expires at `,Uoe(e.expiresAt)]})]})}),(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`If this code does not match the desktop dialog, cancel and regenerate the pairing link from desktop Archon.`}),e.error?(0,Y.jsx)(`p`,{className:`text-sm text-red-200`,children:e.error}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,Y.jsx)(Z,{size:`lg`,disabled:_,onClick:Et,children:_?`Pairing...`:`Pair this phone`}),(0,Y.jsx)(Z,{variant:`outline`,size:`lg`,disabled:_,onClick:Dt,children:`Cancel`})]})]}):e.status===`unauthenticated`?(0,Y.jsx)(E9,{title:e.reason===`session_revoked`?`Mobile session revoked`:`Pairing required`,description:e.reason===`session_revoked`?`This mobile session is no longer valid. Scan the QR code or open the pairing link from desktop Archon to continue.`:`This browser is not paired. Scan the QR code or open the pairing link from desktop Archon.`,children:(0,Y.jsx)(Z,{onClick:xt,children:`Retry`})}):e.status===`error`?(0,Y.jsx)(E9,{title:`Mobile access unavailable`,description:e.message,children:(0,Y.jsx)(Z,{onClick:xt,children:`Retry`})}):(0,Y.jsxs)(`main`,{className:X(`bg-background text-foreground`,bt?`flex h-[100dvh] flex-col overflow-hidden`:`min-h-screen`),children:[(0,Y.jsx)(Eoe,{open:o,projects:e.projects,selectedProjectId:e.selectedProjectId,error:e.projectError,onOpenChange:s,onSelectProject:It,onRetry:Ot}),(0,Y.jsx)(Doe,{open:Fe,project:dt,targetOptions:je,error:Ve??Ne,isLoading:Le,isSubmitting:ze,onOpenChange:Ie,onRetry:At,onSelectBundle:e=>{Lt(e)},onSelectRepoRoot:(e,t)=>{Rt(e,t)}}),(0,Y.jsx)(Ooe,{selectedProject:dt,targetLabel:ht,isTargetLoading:gt,isTargetDisabled:!st,connectionState:n,onOpenProjects:Ct,onOpenTargetSelector:wt}),bt?(0,Y.jsxs)(`div`,{className:`mx-auto flex min-h-0 w-full max-w-6xl flex-1 flex-col overflow-hidden px-3 py-3 sm:px-4`,children:[i===`tickets`?(0,Y.jsx)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:u&&e.selectedTicketId?(0,Y.jsx)(X9,{selectedProjectId:e.selectedProjectId,ticketId:e.selectedTicketId,ticket:e.ticketDetail,openNonce:De,error:e.ticketDetailError,actionState:re,actionError:ae,followUpPrompt:W,followUpSelectedModel:ce,followUpSelectedVariant:ue,followUpSelectedSkills:fe,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSendingFollowUp:me,followUpError:ge,onBack:Gt,onRetry:Pt,onAction:Zt,onFollowUpPromptChange:se,onFollowUpModelChange:$t,onFollowUpVariantChange:de,onFollowUpSkillsChange:pe,onFollowUpKeyDown:en,onFollowUpSubmit:tn,isLargeScreen:!1}):(0,Y.jsx)(J9,{selectedProjectId:e.selectedProjectId,bundleId:e.selectedBundleId,bundleDetail:e.bundleDetail,openNonce:Te,mobileDetailView:ke,error:e.bundleDetailError,actionState:ee,actionError:te,followUpPrompt:ve,isSendingFollowUp:G,followUpError:xe,availableModels:k,onBack:Kt,onRetry:Ft,onAction:Qt,onDetailViewChange:Ae,onSelectTicket:Ht,onFollowUpPromptChange:ye,onFollowUpKeyDown:nn,onFollowUpSubmit:rn,isLargeScreen:!1})}):null,i===`chats`?(0,Y.jsxs)(`div`,{className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(0,Y.jsx)(Y9,{selectedProjectId:e.selectedProjectId,chatSession:e.chatSessionDetail,chatSessionId:e.selectedChatSessionId,openNonce:Ce,error:e.chatSessionDetailError,isStopping:z===e.selectedChatSessionId,composerMode:e.chatSessionDetail?.mode??x,composerTool:vt,prompt:y,selectedModel:C,selectedVariant:T,selectedSkills:D,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSending:F,isUpdatingMode:L,composerDisabledReason:yt,onBack:Ut,onRetry:Mt,onStop:Xt,onModeChange:Wt,onPromptChange:b,onModelChange:qt,onVariantChange:E,onSkillsChange:O,onPromptKeyDown:Jt,onSubmit:Yt,isLargeScreen:!1}),V?(0,Y.jsx)(`p`,{className:`mt-3 text-sm text-red-200`,children:V}):null]}):null]}):(0,Y.jsx)(`div`,{className:`mx-auto w-full max-w-6xl px-3 py-3 pb-[calc(env(safe-area-inset-bottom)+5rem)] sm:px-4 lg:flex lg:min-h-[calc(100dvh-4.5rem)] lg:flex-col lg:overflow-hidden lg:pb-4`,children:(0,Y.jsxs)(`div`,{className:`space-y-3 lg:flex lg:min-h-0 lg:flex-1 lg:flex-col`,children:[(0,Y.jsx)(woe,{status:n,onRetry:xt}),i===`overview`?(0,Y.jsx)(`div`,{className:`space-y-3 lg:flex lg:min-h-0 lg:flex-1 lg:flex-col`,children:e.projectError?(0,Y.jsx)(O9,{title:`Projects unavailable`,description:e.projectError,action:(0,Y.jsx)(Z,{variant:`warning`,onClick:Ot,children:`Retry projects`})}):e.selectedProjectId&&!e.projectSummary&&!e.projectSummaryError?(0,Y.jsx)(Aoe,{}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Poe,{selectedProjectId:e.selectedProjectId,summary:e.projectSummary,tickets:e.tickets,error:e.projectSummaryError,chatSessions:e.chatSessions,chatSessionDetail:e.chatSessionDetail,onRetry:kt,onOpenTickets:()=>St(`tickets`),onOpenChats:()=>St(`chats`)}),(0,Y.jsx)(joe,{isLoggingOut:h,onLogout:Tt})]})}):null,i===`tickets`?_t?(0,Y.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-3 overflow-hidden lg:grid-cols-[minmax(15rem,18rem)_minmax(0,1fr)]`,children:[(0,Y.jsx)(`div`,{className:`min-h-0`,children:(0,Y.jsx)(L9,{selectedProjectId:e.selectedProjectId,tickets:e.tickets,selectedBundleId:e.selectedBundleId,selectedTicketId:e.selectedTicketId,error:e.ticketsError,onRetry:Nt,onSelectBundle:Vt,onSelectTicket:Ht})}),(0,Y.jsx)(`div`,{className:`hidden min-h-0 lg:flex lg:flex-col lg:overflow-hidden`,children:u&&e.selectedTicketId?(0,Y.jsx)(X9,{selectedProjectId:e.selectedProjectId,ticketId:e.selectedTicketId,ticket:e.ticketDetail,openNonce:De,error:e.ticketDetailError,actionState:re,actionError:ae,followUpPrompt:W,followUpSelectedModel:ce,followUpSelectedVariant:ue,followUpSelectedSkills:fe,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSendingFollowUp:me,followUpError:ge,onBack:Gt,onRetry:Pt,onAction:Zt,onFollowUpPromptChange:se,onFollowUpModelChange:$t,onFollowUpVariantChange:de,onFollowUpSkillsChange:pe,onFollowUpKeyDown:en,onFollowUpSubmit:tn,isLargeScreen:!0}):(0,Y.jsx)(J9,{selectedProjectId:e.selectedProjectId,bundleId:e.selectedBundleId,bundleDetail:e.bundleDetail,openNonce:Te,mobileDetailView:ke,error:e.bundleDetailError,actionState:ee,actionError:te,followUpPrompt:ve,isSendingFollowUp:G,followUpError:xe,availableModels:k,onBack:Kt,onRetry:Ft,onAction:Qt,onDetailViewChange:Ae,onSelectTicket:Ht,onFollowUpPromptChange:ye,onFollowUpKeyDown:nn,onFollowUpSubmit:rn,isLargeScreen:!0})})]}):(0,Y.jsx)(L9,{selectedProjectId:e.selectedProjectId,tickets:e.tickets,selectedBundleId:e.selectedBundleId,selectedTicketId:e.selectedTicketId,error:e.ticketsError,onRetry:Nt,onSelectBundle:Vt,onSelectTicket:Ht}):null,i===`chats`?_t?(0,Y.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-3 overflow-hidden lg:grid-cols-[minmax(15rem,18rem)_minmax(0,1fr)]`,children:[(0,Y.jsx)(`div`,{className:`min-h-0`,children:(0,Y.jsx)(R9,{selectedProjectId:e.selectedProjectId,chatSessions:e.chatSessions,selectedChatSessionId:e.selectedChatSessionId,error:e.chatSessionsError,onRetry:jt,onOpenNewChat:Bt,onSelectChat:zt})}),(0,Y.jsxs)(`div`,{className:`hidden min-h-0 lg:flex lg:flex-col lg:overflow-hidden`,children:[(0,Y.jsx)(Y9,{selectedProjectId:e.selectedProjectId,chatSession:e.chatSessionDetail,chatSessionId:e.selectedChatSessionId,openNonce:Ce,error:e.chatSessionDetailError,isStopping:z===e.selectedChatSessionId,composerMode:e.chatSessionDetail?.mode??x,composerTool:vt,prompt:y,selectedModel:C,selectedVariant:T,selectedSkills:D,availableModels:k,availableSkills:j,isLoadingAgentSettings:N,isSending:F,isUpdatingMode:L,composerDisabledReason:yt,onBack:Ut,onRetry:Mt,onStop:Xt,onModeChange:Wt,onPromptChange:b,onModelChange:qt,onVariantChange:E,onSkillsChange:O,onPromptKeyDown:Jt,onSubmit:Yt,isLargeScreen:!0}),V?(0,Y.jsx)(`p`,{className:`mt-3 text-sm text-red-200`,children:V}):null]})]}):(0,Y.jsx)(R9,{selectedProjectId:e.selectedProjectId,chatSessions:e.chatSessions,selectedChatSessionId:e.selectedChatSessionId,error:e.chatSessionsError,onRetry:jt,onOpenNewChat:Bt,onSelectChat:zt}):null]})}),bt?null:(0,Y.jsx)(koe,{activeSection:i,onChange:St})]})},Koe=({socket:e=W0,children:t})=>(0,Y.jsx)(F8.Provider,{value:e,children:t}),qoe=()=>typeof window<`u`&&window.location.pathname.startsWith(`/mobile`),Joe=()=>{let e=qoe();return Hy(e?null:W0),(0,Y.jsx)(We,{i18n:sb,children:(0,Y.jsx)(nt,{children:(0,Y.jsxs)(Koe,{children:[e&&(0,Y.jsx)(Goe,{}),!e&&(0,Y.jsx)(zae,{})]})})})};document.documentElement.classList.add(`dark`),document.documentElement.style.colorScheme=`dark`,(0,f.createRoot)(document.getElementById(`root`)).render((0,Y.jsx)(Joe,{}));export{tt as A,R_ as C,Z as D,L_ as E,c as F,qe as M,Ze as N,X as O,J as P,P_ as S,F_ as T,Mv as _,iN as a,A_ as b,Yb as c,lb as d,sb as f,Fv as g,Iv as h,rN as i,Ke as j,nn as k,Zb as l,Rv as m,bU as n,nN as o,Jy as p,tN as r,nS as s,W0 as t,Xb as u,Ev as v,I_ as w,M_ as x,z_ as y};
|