loki-mode 6.38.5 → 6.40.0
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/SKILL.md +2 -2
- package/VERSION +1 -1
- package/dashboard/__init__.py +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/web-app/dist/assets/ProjectPage-tMxpArTu.js +11 -0
- package/web-app/dist/assets/index-Bp-tGwIG.js +77 -0
- package/web-app/dist/assets/index-CsDkyc_d.css +1 -0
- package/web-app/dist/index.html +2 -2
- package/web-app/server.py +230 -1
- package/web-app/dist/assets/index-DX4LkqkW.css +0 -1
- package/web-app/dist/assets/index-QDuXEpRU.js +0 -66
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: loki-mode
|
|
|
3
3
|
description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes PRD to deployed product with minimal human intervention. Requires --dangerously-skip-permissions flag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v6.
|
|
6
|
+
# Loki Mode v6.40.0
|
|
7
7
|
|
|
8
8
|
**You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
|
|
9
9
|
|
|
@@ -267,4 +267,4 @@ The following features are documented in skill modules but not yet fully automat
|
|
|
267
267
|
| Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
|
|
268
268
|
| Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
|
|
269
269
|
|
|
270
|
-
**v6.
|
|
270
|
+
**v6.40.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
6.
|
|
1
|
+
6.40.0
|
package/dashboard/__init__.py
CHANGED
package/docs/INSTALLATION.md
CHANGED
package/mcp/__init__.py
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var Ye=e=>{throw TypeError(e)};var _e=(e,t,n)=>t.has(e)||Ye("Cannot "+n);var ge=(e,t,n)=>(_e(e,t,"read from private field"),n?n.call(e):t.get(e)),Je=(e,t,n)=>t.has(e)?Ye("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ke=(e,t,n,r)=>(_e(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);import{r as f,W as de,j as m,a as K,u as Kt,b as Qt,H as Re,E as Zt}from"./index-Bp-tGwIG.js";function Qe(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function en(e){if(Array.isArray(e))return e}function tn(e,t,n){return(t=cn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nn(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,o,a,l,i=[],s=!0,c=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(s=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);s=!0);}catch(u){c=!0,o=u}finally{try{if(!s&&n.return!=null&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return i}}function rn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function et(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ze(Object(n),!0).forEach(function(r){tn(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ze(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function on(e,t){if(e==null)return{};var n,r,o=an(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function an(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function sn(e,t){return en(e)||nn(e,t)||un(e,t)||rn()}function ln(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function cn(e){var t=ln(e,"string");return typeof t=="symbol"?t:t+""}function un(e,t){if(e){if(typeof e=="string")return Qe(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qe(e,t):void 0}}function dn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function nt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?tt(Object(n),!0).forEach(function(r){dn(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function fn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return t.reduceRight(function(o,a){return a(o)},r)}}function me(e){return function t(){for(var n=this,r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return o.length>=e.length?e.apply(this,o):function(){for(var l=arguments.length,i=new Array(l),s=0;s<l;s++)i[s]=arguments[s];return t.apply(n,[].concat(o,i))}}}function Le(e){return{}.toString.call(e).includes("Object")}function pn(e){return!Object.keys(e).length}function ye(e){return typeof e=="function"}function hn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function gn(e,t){return Le(t)||Z("changeType"),Object.keys(t).some(function(n){return!hn(e,n)})&&Z("changeField"),t}function mn(e){ye(e)||Z("selectorType")}function vn(e){ye(e)||Le(e)||Z("handlerType"),Le(e)&&Object.values(e).some(function(t){return!ye(t)})&&Z("handlersType")}function xn(e){e||Z("initialIsRequired"),Le(e)||Z("initialType"),pn(e)&&Z("initialContent")}function bn(e,t){throw new Error(e[t]||e.default)}var yn={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},Z=me(bn)(yn),ze={changes:gn,selector:mn,handler:vn,initial:xn};function wn(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};ze.initial(e),ze.handler(t);var n={current:e},r=me(jn)(n,t),o=me(zn)(n),a=me(ze.changes)(e),l=me(Sn)(n);function i(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(u){return u};return ze.selector(c),c(n.current)}function s(c){fn(r,o,a,l)(c)}return[i,s]}function Sn(e,t){return ye(t)?t(e.current):t}function zn(e,t){return e.current=nt(nt({},e.current),t),t}function jn(e,t,n){return ye(t)?t(e.current):Object.keys(n).forEach(function(r){var o;return(o=t[r])===null||o===void 0?void 0:o.call(t,e.current[r])}),n}var Cn={create:wn},Pn={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function En(e){return function t(){for(var n=this,r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return o.length>=e.length?e.apply(this,o):function(){for(var l=arguments.length,i=new Array(l),s=0;s<l;s++)i[s]=arguments[s];return t.apply(n,[].concat(o,i))}}}function Mn(e){return{}.toString.call(e).includes("Object")}function Ln(e){return e||rt("configIsRequired"),Mn(e)||rt("configType"),e.urls?(kn(),{paths:{vs:e.urls.monacoBase}}):e}function kn(){console.warn(yt.deprecation)}function On(e,t){throw new Error(e[t]||e.default)}var yt={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
|
|
3
|
+
You are using deprecated way of configuration.
|
|
4
|
+
|
|
5
|
+
Instead of using
|
|
6
|
+
monaco.config({ urls: { monacoBase: '...' } })
|
|
7
|
+
use
|
|
8
|
+
monaco.config({ paths: { vs: '...' } })
|
|
9
|
+
|
|
10
|
+
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
11
|
+
`},rt=En(On)(yt),Rn={config:Ln},Nn=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(o){return n.reduceRight(function(a,l){return l(a)},o)}};function wt(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],wt(e[n],t[n]))}),et(et({},e),t)}var Dn={type:"cancelation",msg:"operation is manually canceled"};function Ne(e){var t=!1,n=new Promise(function(r,o){e.then(function(a){return t?o(Dn):r(a)}),e.catch(o)});return n.cancel=function(){return t=!0},n}var In=["monaco"],$n=Cn.create({config:Pn,isInitialized:!1,resolve:null,reject:null,monaco:null}),St=sn($n,2),Se=St[0],ke=St[1];function Tn(e){var t=Rn.config(e),n=t.monaco,r=on(t,In);ke(function(o){return{config:wt(o.config,r),monaco:n}})}function Fn(){var e=Se(function(t){var n=t.monaco,r=t.isInitialized,o=t.resolve;return{monaco:n,isInitialized:r,resolve:o}});if(!e.isInitialized){if(ke({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Ne(De);if(window.monaco&&window.monaco.editor)return zt(window.monaco),e.resolve(window.monaco),Ne(De);Nn(An,Wn)(Hn)}return Ne(De)}function An(e){return document.body.appendChild(e)}function Bn(e){var t=document.createElement("script");return e&&(t.src=e),t}function Wn(e){var t=Se(function(r){var o=r.config,a=r.reject;return{config:o,reject:a}}),n=Bn("".concat(t.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=t.reject,n}function Hn(){var e=Se(function(n){var r=n.config,o=n.resolve,a=n.reject;return{config:r,resolve:o,reject:a}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(n){var r=n.m||n;zt(r),e.resolve(r)},function(n){e.reject(n)})}function zt(e){Se().monaco||ke({monaco:e})}function Vn(){return Se(function(e){var t=e.monaco;return t})}var De=new Promise(function(e,t){return ke({resolve:e,reject:t})}),jt={config:Tn,init:Fn,__getMonacoInstance:Vn},Gn={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},Ie=Gn,Un={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},qn=Un;function Xn({children:e}){return de.createElement("div",{style:qn.container},e)}var Yn=Xn,_n=Yn;function Jn({width:e,height:t,isEditorReady:n,loading:r,_ref:o,className:a,wrapperProps:l}){return de.createElement("section",{style:{...Ie.wrapper,width:e,height:t},...l},!n&&de.createElement(_n,null,r),de.createElement("div",{ref:o,style:{...Ie.fullWidth,...!n&&Ie.hide},className:a}))}var Kn=Jn,Ct=f.memo(Kn);function Qn(e){f.useEffect(e,[])}var Pt=Qn;function Zn(e,t,n=!0){let r=f.useRef(!0);f.useEffect(r.current||!n?()=>{r.current=!1}:e,t)}var U=Zn;function xe(){}function ce(e,t,n,r){return er(e,r)||tr(e,t,n,r)}function er(e,t){return e.editor.getModel(Et(e,t))}function tr(e,t,n,r){return e.editor.createModel(t,n,r?Et(e,r):void 0)}function Et(e,t){return e.Uri.parse(t)}function nr({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:o,originalModelPath:a,modifiedModelPath:l,keepCurrentOriginalModel:i=!1,keepCurrentModifiedModel:s=!1,theme:c="light",loading:u="Loading...",options:v={},height:p="100%",width:L="100%",className:y,wrapperProps:h={},beforeMount:b=xe,onMount:x=xe}){let[d,S]=f.useState(!1),[w,g]=f.useState(!0),C=f.useRef(null),j=f.useRef(null),N=f.useRef(null),F=f.useRef(x),k=f.useRef(b),P=f.useRef(!1);Pt(()=>{let z=jt.init();return z.then(R=>(j.current=R)&&g(!1)).catch(R=>(R==null?void 0:R.type)!=="cancelation"&&console.error("Monaco initialization: error:",R)),()=>C.current?A():z.cancel()}),U(()=>{if(C.current&&j.current){let z=C.current.getOriginalEditor(),R=ce(j.current,e||"",r||n||"text",a||"");R!==z.getModel()&&z.setModel(R)}},[a],d),U(()=>{if(C.current&&j.current){let z=C.current.getModifiedEditor(),R=ce(j.current,t||"",o||n||"text",l||"");R!==z.getModel()&&z.setModel(R)}},[l],d),U(()=>{let z=C.current.getModifiedEditor();z.getOption(j.current.editor.EditorOption.readOnly)?z.setValue(t||""):t!==z.getValue()&&(z.executeEdits("",[{range:z.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),z.pushUndoStop())},[t],d),U(()=>{var z,R;(R=(z=C.current)==null?void 0:z.getModel())==null||R.original.setValue(e||"")},[e],d),U(()=>{let{original:z,modified:R}=C.current.getModel();j.current.editor.setModelLanguage(z,r||n||"text"),j.current.editor.setModelLanguage(R,o||n||"text")},[n,r,o],d),U(()=>{var z;(z=j.current)==null||z.editor.setTheme(c)},[c],d),U(()=>{var z;(z=C.current)==null||z.updateOptions(v)},[v],d);let M=f.useCallback(()=>{var W;if(!j.current)return;k.current(j.current);let z=ce(j.current,e||"",r||n||"text",a||""),R=ce(j.current,t||"",o||n||"text",l||"");(W=C.current)==null||W.setModel({original:z,modified:R})},[n,t,o,e,r,a,l]),D=f.useCallback(()=>{var z;!P.current&&N.current&&(C.current=j.current.editor.createDiffEditor(N.current,{automaticLayout:!0,...v}),M(),(z=j.current)==null||z.editor.setTheme(c),S(!0),P.current=!0)},[v,c,M]);f.useEffect(()=>{d&&F.current(C.current,j.current)},[d]),f.useEffect(()=>{!w&&!d&&D()},[w,d,D]);function A(){var R,W,E,T;let z=(R=C.current)==null?void 0:R.getModel();i||((W=z==null?void 0:z.original)==null||W.dispose()),s||((E=z==null?void 0:z.modified)==null||E.dispose()),(T=C.current)==null||T.dispose()}return de.createElement(Ct,{width:L,height:p,isEditorReady:d,loading:u,_ref:N,className:y,wrapperProps:h})}var rr=nr;f.memo(rr);function or(e){let t=f.useRef();return f.useEffect(()=>{t.current=e},[e]),t.current}var ir=or,je=new Map;function ar({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:o,path:a,theme:l="light",line:i,loading:s="Loading...",options:c={},overrideServices:u={},saveViewState:v=!0,keepCurrentModel:p=!1,width:L="100%",height:y="100%",className:h,wrapperProps:b={},beforeMount:x=xe,onMount:d=xe,onChange:S,onValidate:w=xe}){let[g,C]=f.useState(!1),[j,N]=f.useState(!0),F=f.useRef(null),k=f.useRef(null),P=f.useRef(null),M=f.useRef(d),D=f.useRef(x),A=f.useRef(),z=f.useRef(r),R=ir(a),W=f.useRef(!1),E=f.useRef(!1);Pt(()=>{let O=jt.init();return O.then(I=>(F.current=I)&&N(!1)).catch(I=>(I==null?void 0:I.type)!=="cancelation"&&console.error("Monaco initialization: error:",I)),()=>k.current?H():O.cancel()}),U(()=>{var I,B,te,J;let O=ce(F.current,e||r||"",t||o||"",a||n||"");O!==((I=k.current)==null?void 0:I.getModel())&&(v&&je.set(R,(B=k.current)==null?void 0:B.saveViewState()),(te=k.current)==null||te.setModel(O),v&&((J=k.current)==null||J.restoreViewState(je.get(a))))},[a],g),U(()=>{var O;(O=k.current)==null||O.updateOptions(c)},[c],g),U(()=>{!k.current||r===void 0||(k.current.getOption(F.current.editor.EditorOption.readOnly)?k.current.setValue(r):r!==k.current.getValue()&&(E.current=!0,k.current.executeEdits("",[{range:k.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),k.current.pushUndoStop(),E.current=!1))},[r],g),U(()=>{var I,B;let O=(I=k.current)==null?void 0:I.getModel();O&&o&&((B=F.current)==null||B.editor.setModelLanguage(O,o))},[o],g),U(()=>{var O;i!==void 0&&((O=k.current)==null||O.revealLine(i))},[i],g),U(()=>{var O;(O=F.current)==null||O.editor.setTheme(l)},[l],g);let T=f.useCallback(()=>{var O;if(!(!P.current||!F.current)&&!W.current){D.current(F.current);let I=a||n,B=ce(F.current,r||e||"",t||o||"",I||"");k.current=(O=F.current)==null?void 0:O.editor.create(P.current,{model:B,automaticLayout:!0,...c},u),v&&k.current.restoreViewState(je.get(I)),F.current.editor.setTheme(l),i!==void 0&&k.current.revealLine(i),C(!0),W.current=!0}},[e,t,n,r,o,a,c,u,v,l,i]);f.useEffect(()=>{g&&M.current(k.current,F.current)},[g]),f.useEffect(()=>{!j&&!g&&T()},[j,g,T]),z.current=r,f.useEffect(()=>{var O,I;g&&S&&((O=A.current)==null||O.dispose(),A.current=(I=k.current)==null?void 0:I.onDidChangeModelContent(B=>{E.current||S(k.current.getValue(),B)}))},[g,S]),f.useEffect(()=>{if(g){let O=F.current.editor.onDidChangeMarkers(I=>{var te;let B=(te=k.current.getModel())==null?void 0:te.uri;if(B&&I.find(J=>J.path===B.path)){let J=F.current.editor.getModelMarkers({resource:B});w==null||w(J)}});return()=>{O==null||O.dispose()}}return()=>{}},[g,w]);function H(){var O,I;(O=A.current)==null||O.dispose(),p?v&&je.set(a,k.current.saveViewState()):(I=k.current.getModel())==null||I.dispose(),k.current.dispose()}return de.createElement(Ct,{width:L,height:y,isEditorReady:g,loading:s,_ref:P,className:h,wrapperProps:b})}var sr=ar,lr=f.memo(sr),cr=lr;function ur(e,t){const n=getComputedStyle(e),r=parseFloat(n.fontSize);return t*r}function dr(e,t){const n=getComputedStyle(e.ownerDocument.body),r=parseFloat(n.fontSize);return t*r}function fr(e){return e/100*window.innerHeight}function pr(e){return e/100*window.innerWidth}function hr(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}function ve({groupSize:e,panelElement:t,styleProp:n}){let r;const[o,a]=hr(n);switch(a){case"%":{r=o/100*e;break}case"px":{r=o;break}case"rem":{r=dr(t,o);break}case"em":{r=ur(t,o);break}case"vh":{r=fr(o);break}case"vw":{r=pr(o);break}}return r}function G(e){return parseFloat(e.toFixed(3))}function he({group:e}){const{orientation:t,panels:n}=e;return n.reduce((r,o)=>(r+=t==="horizontal"?o.element.offsetWidth:o.element.offsetHeight,r),0)}function Te(e){const{panels:t}=e,n=he({group:e});return n===0?t.map(r=>({groupResizeBehavior:r.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:r.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:r.panelConstraints.disabled,minSize:0,maxSize:100,panelId:r.id})):t.map(r=>{const{element:o,panelConstraints:a}=r;let l=0;if(a.collapsedSize!==void 0){const u=ve({groupSize:n,panelElement:o,styleProp:a.collapsedSize});l=G(u/n*100)}let i;if(a.defaultSize!==void 0){const u=ve({groupSize:n,panelElement:o,styleProp:a.defaultSize});i=G(u/n*100)}let s=0;if(a.minSize!==void 0){const u=ve({groupSize:n,panelElement:o,styleProp:a.minSize});s=G(u/n*100)}let c=100;if(a.maxSize!==void 0){const u=ve({groupSize:n,panelElement:o,styleProp:a.maxSize});c=G(u/n*100)}return{groupResizeBehavior:a.groupResizeBehavior,collapsedSize:l,collapsible:a.collapsible===!0,defaultSize:i,disabled:a.disabled,minSize:s,maxSize:c,panelId:r.id}})}function $(e,t="Assertion error"){if(!e)throw Error(t)}function Fe(e,t){return Array.from(t).sort(e==="horizontal"?gr:mr)}function gr(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function mr(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Mt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Lt(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function vr({orientation:e,rects:t,targetRect:n}){const r={x:n.x+n.width/2,y:n.y+n.height/2};let o,a=Number.MAX_VALUE;for(const l of t){const{x:i,y:s}=Lt(r,l),c=e==="horizontal"?i:s;c<a&&(a=c,o=l)}return $(o,"No rect found"),o}let Ce;function xr(){return Ce===void 0&&(typeof matchMedia=="function"?Ce=!!matchMedia("(pointer:coarse)").matches:Ce=!1),Ce}function kt(e){const{element:t,orientation:n,panels:r,separators:o}=e,a=Fe(n,Array.from(t.children).filter(Mt).map(y=>({element:y}))).map(({element:y})=>y),l=[];let i=!1,s=!1,c=-1,u=-1,v=0,p,L=[];{let y=-1;for(const h of a)h.hasAttribute("data-panel")&&(y++,h.ariaDisabled===null&&(v++,c===-1&&(c=y),u=y))}if(v>1){let y=-1;for(const h of a)if(h.hasAttribute("data-panel")){y++;const b=r.find(x=>x.element===h);if(b){if(p){const x=p.element.getBoundingClientRect(),d=h.getBoundingClientRect();let S;if(s){const w=n==="horizontal"?new DOMRect(x.right,x.top,0,x.height):new DOMRect(x.left,x.bottom,x.width,0),g=n==="horizontal"?new DOMRect(d.left,d.top,0,d.height):new DOMRect(d.left,d.top,d.width,0);switch(L.length){case 0:{S=[w,g];break}case 1:{const C=L[0],j=vr({orientation:n,rects:[x,d],targetRect:C.element.getBoundingClientRect()});S=[C,j===x?g:w];break}default:{S=L;break}}}else L.length?S=L:S=[n==="horizontal"?new DOMRect(x.right,d.top,d.left-x.right,d.height):new DOMRect(d.left,x.bottom,d.width,d.top-x.bottom)];for(const w of S){let g="width"in w?w:w.element.getBoundingClientRect();const C=xr()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(g.width<C){const N=C-g.width;g=new DOMRect(g.x-N/2,g.y,g.width+N,g.height)}if(g.height<C){const N=C-g.height;g=new DOMRect(g.x,g.y-N/2,g.width,g.height+N)}const j=y<=c||y>u;!i&&!j&&l.push({group:e,groupSize:he({group:e}),panels:[p,b],separator:"width"in w?void 0:w,rect:g}),i=!1}}s=!1,p=b,L=[]}}else if(h.hasAttribute("data-separator")){h.ariaDisabled!==null&&(i=!0);const b=o.find(x=>x.element===h);b?L.push(b):(p=void 0,L=[])}else s=!0}return l}var Q;class Ot{constructor(){Je(this,Q,{})}addListener(t,n){const r=ge(this,Q)[t];return r===void 0?ge(this,Q)[t]=[n]:r.includes(n)||r.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const r=ge(this,Q)[t];if(r!==void 0)if(r.length===1)r[0].call(null,n);else{let o=!1,a=null;const l=Array.from(r);for(let i=0;i<l.length;i++){const s=l[i];try{s.call(null,n)}catch(c){a===null&&(o=!0,a=c)}}if(o)throw a}}removeAllListeners(){Ke(this,Q,{})}removeListener(t,n){const r=ge(this,Q)[t];if(r!==void 0){const o=r.indexOf(n);o>=0&&r.splice(o,1)}}}Q=new WeakMap;let X=new Map;const Rt=new Ot;function br(e){X=new Map(X),X.delete(e)}function ot(e,t){for(const[n]of X)if(n.id===e)return n}function ee(e,t){for(const[n,r]of X)if(n.id===e)return r;if(t)throw Error(`Could not find data for Group with id ${e}`)}function ae(){return X}function Be(e,t){return Rt.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function _(e,t){const n=X.get(e);X=new Map(X),X.set(e,t),Rt.emit("groupChange",{group:e,prev:n,next:t})}function yr(e,t,n){let r,o={x:1/0,y:1/0};for(const a of t){const l=Lt(n,a.rect);switch(e){case"horizontal":{l.x<=o.x&&(r=a,o=l);break}case"vertical":{l.y<=o.y&&(r=a,o=l);break}}}return r?{distance:o,hitRegion:r}:void 0}function wr(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Sr(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:st(e),b:st(t)};let r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();$(r,"Stacking order can only be calculated for elements with a common ancestor");const o={a:at(it(n.a)),b:at(it(n.b))};if(o.a===o.b){const a=r.childNodes,l={a:n.a.at(-1),b:n.b.at(-1)};let i=a.length;for(;i--;){const s=a[i];if(s===l.a)return 1;if(s===l.b)return-1}}return Math.sign(o.a-o.b)}const zr=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function jr(e){const t=getComputedStyle(Nt(e)??e).display;return t==="flex"||t==="inline-flex"}function Cr(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||jr(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||zr.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function it(e){let t=e.length;for(;t--;){const n=e[t];if($(n,"Missing node"),Cr(n))return n}return null}function at(e){return e&&Number(getComputedStyle(e).zIndex)||0}function st(e){const t=[];for(;e;)t.push(e),e=Nt(e);return t}function Nt(e){const{parentNode:t}=e;return wr(t)?t.host:t}function Pr(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Er({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Mt(n)||n.contains(e)||e.contains(n))return!0;if(Sr(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(Pr(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function We(e,t){const n=[];return t.forEach((r,o)=>{if(o.disabled)return;const a=kt(o),l=yr(o.orientation,a,{x:e.clientX,y:e.clientY});l&&l.distance.x<=0&&l.distance.y<=0&&Er({groupElement:o.element,hitRegion:l.hitRegion.rect,pointerEventTarget:e.target})&&n.push(l.hitRegion)}),n}function Mr(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function V(e,t,n=0){return Math.abs(G(e)-G(t))<=n}function q(e,t){return V(e,t)?0:e>t?1:-1}function ue({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:r}){const{collapsedSize:o=0,collapsible:a,disabled:l,maxSize:i=100,minSize:s=0}=t;if(l&&!e)return n;if(q(r,s)<0)if(a){const c=(o+s)/2;q(r,c)<0?r=o:r=s}else r=s;return r=Math.min(i,r),r=G(r),r}function we({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:o,trigger:a}){if(V(e,0))return t;const l=a==="imperative-api",i=Object.values(t),s=Object.values(o),c=[...i],[u,v]=r;$(u!=null,"Invalid first pivot index"),$(v!=null,"Invalid second pivot index");let p=0;switch(a){case"keyboard":{{const h=e<0?v:u,b=n[h];$(b,`Panel constraints not found for index ${h}`);const{collapsedSize:x=0,collapsible:d,minSize:S=0}=b;if(d){const w=i[h];if($(w!=null,`Previous layout not found for panel index ${h}`),V(w,x)){const g=S-w;q(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}{const h=e<0?u:v,b=n[h];$(b,`No panel constraints found for index ${h}`);const{collapsedSize:x=0,collapsible:d,minSize:S=0}=b;if(d){const w=i[h];if($(w!=null,`Previous layout not found for panel index ${h}`),V(w,S)){const g=w-x;q(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}break}default:{const h=e<0?v:u,b=n[h];$(b,`Panel constraints not found for index ${h}`);const x=i[h],{collapsible:d,collapsedSize:S,minSize:w}=b;if(d&&q(x,w)<0)if(e>0){const g=w-S,C=g/2,j=x+e;q(j,w)<0&&(e=q(e,C)<=0?0:g)}else{const g=w-S,C=100-g/2,j=x-e;q(j,w)<0&&(e=q(100+e,C)>0?0:-g)}break}}{const h=e<0?1:-1;let b=e<0?v:u,x=0;for(;;){const S=i[b];$(S!=null,`Previous layout not found for panel index ${b}`);const w=ue({overrideDisabledPanels:l,panelConstraints:n[b],prevSize:S,size:100})-S;if(x+=w,b+=h,b<0||b>=n.length)break}const d=Math.min(Math.abs(e),Math.abs(x));e=e<0?0-d:d}{let h=e<0?u:v;for(;h>=0&&h<n.length;){const b=Math.abs(e)-Math.abs(p),x=i[h];$(x!=null,`Previous layout not found for panel index ${h}`);const d=x-b,S=ue({overrideDisabledPanels:l,panelConstraints:n[h],prevSize:x,size:d});if(!V(x,S)&&(p+=x-S,c[h]=S,p.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?h--:h++}}if(Mr(s,c))return o;{const h=e<0?v:u,b=i[h];$(b!=null,`Previous layout not found for panel index ${h}`);const x=b+p,d=ue({overrideDisabledPanels:l,panelConstraints:n[h],prevSize:b,size:x});if(c[h]=d,!V(d,x)){let S=x-d,w=e<0?v:u;for(;w>=0&&w<n.length;){const g=c[w];$(g!=null,`Previous layout not found for panel index ${w}`);const C=g+S,j=ue({overrideDisabledPanels:l,panelConstraints:n[w],prevSize:g,size:C});if(V(g,j)||(S-=j-g,c[w]=j),V(S,0))break;e>0?w--:w++}}}const L=Object.values(c).reduce((h,b)=>b+h,0);if(!V(L,100,.1))return o;const y=Object.keys(o);return c.reduce((h,b,x)=>(h[y[x]]=b,h),{})}function re(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||q(e[n],t[n])!==0)return!1;return!0}function oe({layout:e,panelConstraints:t}){const n=Object.values(e),r=[...n],o=r.reduce((i,s)=>i+s,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(i=>`${i}%`).join(", ")}`);if(!V(o,100)&&r.length>0)for(let i=0;i<t.length;i++){const s=r[i];$(s!=null,`No layout data found for index ${i}`);const c=100/o*s;r[i]=c}let a=0;for(let i=0;i<t.length;i++){const s=n[i];$(s!=null,`No layout data found for index ${i}`);const c=r[i];$(c!=null,`No layout data found for index ${i}`);const u=ue({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:s,size:c});c!=u&&(a+=c-u,r[i]=u)}if(!V(a,0))for(let i=0;i<t.length;i++){const s=r[i];$(s!=null,`No layout data found for index ${i}`);const c=s+a,u=ue({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:s,size:c});if(s!==u&&(a-=u-s,r[i]=u,V(a,0)))break}const l=Object.keys(e);return r.reduce((i,s,c)=>(i[l[c]]=s,i),{})}function Dt({groupId:e,panelId:t}){const n=()=>{const i=ae();for(const[s,{defaultLayoutDeferred:c,derivedPanelConstraints:u,layout:v,groupSize:p,separatorToPanels:L}]of i)if(s.id===e)return{defaultLayoutDeferred:c,derivedPanelConstraints:u,group:s,groupSize:p,layout:v,separatorToPanels:L};throw Error(`Group ${e} not found`)},r=()=>{const i=n().derivedPanelConstraints.find(s=>s.panelId===t);if(i!==void 0)return i;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{const i=n().group.panels.find(s=>s.id===t);if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},a=()=>{const i=n().layout[t];if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},l=i=>{const s=a();if(i===s)return;const{defaultLayoutDeferred:c,derivedPanelConstraints:u,group:v,groupSize:p,layout:L,separatorToPanels:y}=n(),h=v.panels.findIndex(S=>S.id===t),b=h===v.panels.length-1,x=we({delta:b?s-i:i-s,initialLayout:L,panelConstraints:u,pivotIndices:b?[h-1,h]:[h,h+1],prevLayout:L,trigger:"imperative-api"}),d=oe({layout:x,panelConstraints:u});re(L,d)||_(v,{defaultLayoutDeferred:c,derivedPanelConstraints:u,groupSize:p,layout:d,separatorToPanels:y})};return{collapse:()=>{const{collapsible:i,collapsedSize:s}=r(),{mutableValues:c}=o(),u=a();i&&u!==s&&(c.expandToSize=u,l(s))},expand:()=>{const{collapsible:i,collapsedSize:s,minSize:c}=r(),{mutableValues:u}=o(),v=a();if(i&&v===s){let p=u.expandToSize??c;p===0&&(p=1),l(p)}},getSize:()=>{const{group:i}=n(),s=a(),{element:c}=o(),u=i.orientation==="horizontal"?c.offsetWidth:c.offsetHeight;return{asPercentage:s,inPixels:u}},isCollapsed:()=>{const{collapsible:i,collapsedSize:s}=r(),c=a();return i&&V(s,c)},resize:i=>{const{group:s}=n(),{element:c}=o(),u=he({group:s}),v=ve({groupSize:u,panelElement:c,styleProp:i}),p=G(v/u*100);l(p)}}}function lt(e){if(e.defaultPrevented)return;const t=ae();We(e,t).forEach(n=>{if(n.separator){const r=n.panels.find(o=>o.panelConstraints.defaultSize!==void 0);if(r){const o=r.panelConstraints.defaultSize,a=Dt({groupId:n.group.id,panelId:r.id});a&&o!==void 0&&(a.resize(o),e.preventDefault())}}})}function Ee(e){const t=ae();for(const[n]of t)if(n.separators.some(r=>r.element===e))return n;throw Error("Could not find parent Group for separator element")}function It({groupId:e}){const t=()=>{const n=ae();for(const[r,o]of n)if(r.id===e)return{group:r,...o};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:n,layout:r}=t();return n?{}:r},setLayout(n){const{defaultLayoutDeferred:r,derivedPanelConstraints:o,group:a,groupSize:l,layout:i,separatorToPanels:s}=t(),c=oe({layout:n,panelConstraints:o});return r?i:(re(i,c)||_(a,{defaultLayoutDeferred:r,derivedPanelConstraints:o,groupSize:l,layout:c,separatorToPanels:s}),c)}}}function ne(e,t){const n=Ee(e),r=ee(n.id,!0),o=n.separators.find(u=>u.element===e);$(o,"Matching separator not found");const a=r.separatorToPanels.get(o);$(a,"Matching panels not found");const l=a.map(u=>n.panels.indexOf(u)),i=It({groupId:n.id}).getLayout(),s=we({delta:t,initialLayout:i,panelConstraints:r.derivedPanelConstraints,pivotIndices:l,prevLayout:i,trigger:"keyboard"}),c=oe({layout:s,panelConstraints:r.derivedPanelConstraints});re(i,c)||_(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function ct(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=Ee(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&ne(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&ne(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&ne(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&ne(t,-5);break}case"End":{e.preventDefault(),ne(t,100);break}case"Enter":{e.preventDefault();const r=Ee(t),o=ee(r.id,!0),{derivedPanelConstraints:a,layout:l,separatorToPanels:i}=o,s=r.separators.find(p=>p.element===t);$(s,"Matching separator not found");const c=i.get(s);$(c,"Matching panels not found");const u=c[0],v=a.find(p=>p.panelId===u.id);if($(v,"Panel metadata not found"),v.collapsible){const p=l[u.id],L=v.collapsedSize===p?r.mutableState.expandedPanelSizes[u.id]??v.minSize:v.collapsedSize;ne(t,L-p)}break}case"F6":{e.preventDefault();const r=Ee(t).separators.map(l=>l.element),o=Array.from(r).findIndex(l=>l===e.currentTarget);$(o!==null,"Index not found");const a=e.shiftKey?o>0?o-1:r.length-1:o+1<r.length?o+1:0;r[a].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),ne(t,-100);break}}}let fe={cursorFlags:0,state:"inactive"};const He=new Ot;function ie(){return fe}function Lr(e){return He.addListener("change",e)}function kr(e){const t=fe,n={...fe};n.cursorFlags=e,fe=n,He.emit("change",{prev:t,next:n})}function pe(e){const t=fe;fe=e,He.emit("change",{prev:t,next:e})}function ut(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=ae(),n=We(e,t),r=new Map;let o=!1;n.forEach(a=>{a.separator&&(o||(o=!0,a.separator.element.focus({preventScroll:!0})));const l=t.get(a.group);l&&r.set(a.group,l.layout)}),pe({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const Or=e=>e,$e=()=>{},$t=1,Tt=2,Ft=4,At=8,dt=3,ft=12;let Pe;function pt(){return Pe===void 0&&(Pe=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(Pe=!0)),Pe}function Rr({cursorFlags:e,groups:t,state:n}){let r=0,o=0;switch(n){case"active":case"hover":t.forEach(a=>{if(!a.mutableState.disableCursor)switch(a.orientation){case"horizontal":{r++;break}case"vertical":{o++;break}}})}if(!(r===0&&o===0)){switch(n){case"active":{if(e&&pt()){const a=(e&$t)!==0,l=(e&Tt)!==0,i=(e&Ft)!==0,s=(e&At)!==0;if(a)return i?"se-resize":s?"ne-resize":"e-resize";if(l)return i?"sw-resize":s?"nw-resize":"w-resize";if(i)return"s-resize";if(s)return"n-resize"}break}}return pt()?r>0&&o>0?"move":r>0?"ew-resize":"ns-resize":r>0&&o>0?"grab":r>0?"col-resize":"row-resize"}}const ht=new WeakMap;function Ve(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=ht.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));const r=ie();switch(r.state){case"active":case"hover":{const o=Rr({cursorFlags:r.cursorFlags,groups:r.hitRegions.map(l=>l.group),state:r.state}),a=`*, *:hover {cursor: ${o} !important; }`;if(t===a)return;t=a,o?n.cssRules.length===0?n.insertRule(a):n.replaceSync(a):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}ht.set(e,{prevStyle:t,styleSheet:n})}function Bt({document:e,event:t,hitRegions:n,initialLayoutMap:r,mountedGroups:o,pointerDownAtPoint:a,prevCursorFlags:l}){let i=0;n.forEach(c=>{const{group:u,groupSize:v}=c,{orientation:p,panels:L}=u,{disableCursor:y}=u.mutableState;let h=0;a?p==="horizontal"?h=(t.clientX-a.x)/v*100:h=(t.clientY-a.y)/v*100:p==="horizontal"?h=t.clientX<0?-100:100:h=t.clientY<0?-100:100;const b=r.get(u),x=o.get(u);if(!b||!x)return;const{defaultLayoutDeferred:d,derivedPanelConstraints:S,groupSize:w,layout:g,separatorToPanels:C}=x;if(S&&g&&C){const j=we({delta:h,initialLayout:b,panelConstraints:S,pivotIndices:c.panels.map(N=>L.indexOf(N)),prevLayout:g,trigger:"mouse-or-touch"});if(re(j,g)){if(h!==0&&!y)switch(p){case"horizontal":{i|=h<0?$t:Tt;break}case"vertical":{i|=h<0?Ft:At;break}}}else _(c.group,{defaultLayoutDeferred:d,derivedPanelConstraints:S,groupSize:w,layout:j,separatorToPanels:C})}});let s=0;t.movementX===0?s|=l&dt:s|=i&dt,t.movementY===0?s|=l&ft:s|=i&ft,kr(s),Ve(e)}function gt(e){const t=ae(),n=ie();switch(n.state){case"active":Bt({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function mt(e){if(e.defaultPrevented)return;const t=ie(),n=ae();switch(t.state){case"active":{if(e.buttons===0){pe({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(r=>{const o=ee(r.group.id,!0);_(r.group,o)});return}Bt({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const r=We(e,n);r.length===0?t.state!=="inactive"&&pe({cursorFlags:0,state:"inactive"}):pe({cursorFlags:0,hitRegions:r,state:"hover"}),Ve(e.currentTarget);break}}}function vt(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(ie().state){case"hover":pe({cursorFlags:0,state:"inactive"})}}function xt(e){if(e.defaultPrevented||e.pointerType==="mouse"&&e.button>0)return;const t=ie();switch(t.state){case"active":pe({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(Ve(e.currentTarget),t.hitRegions.forEach(n=>{const r=ee(n.group.id,!0);_(n.group,r)}),e.preventDefault())}}function bt(e){let t=0,n=0;const r={};for(const a of e)if(a.defaultSize!==void 0){t++;const l=G(a.defaultSize);n+=l,r[a.panelId]=l}else r[a.panelId]=void 0;const o=e.length-t;if(o!==0){const a=G((100-n)/o);for(const l of e)l.defaultSize===void 0&&(r[l.panelId]=a)}return r}function Nr(e,t,n){if(!n[0])return;const r=e.panels.find(s=>s.element===t);if(!r||!r.onResize)return;const o=he({group:e}),a=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,l=r.mutableValues.prevSize,i={asPercentage:G(a/o*100),inPixels:a};r.mutableValues.prevSize=i,r.onResize(i,r.id,l)}function Dr(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function Ir({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let o=0,a=0,l=!1;const i=new Map,s=[];for(const v of e.panels){const p=r[v.id]??0;switch(v.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{l=!0;const L=p/100*n,y=G(L/t*100);i.set(v.id,y),o+=y;break}case"preserve-relative-size":default:{s.push(v.id),a+=p;break}}}if(!l||s.length===0)return r;const c=100-o,u={...r};if(i.forEach((v,p)=>{u[p]=v}),a>0)for(const v of s){const p=r[v]??0;u[v]=G(p/a*c)}else{const v=G(c/s.length);for(const p of s)u[p]=v}return u}function $r(e,t){const n=e.map(o=>o.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(const o of n)if(!r.includes(o))return!1;return!0}const le=new Map;function Tr(e){let t=!0;$(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,o=new Set,a=new n(y=>{for(const h of y){const{borderBoxSize:b,target:x}=h;if(x===e.element){if(t){const d=he({group:e});if(d===0)return;const S=ee(e.id);if(!S)return;const w=Te(e),g=S.defaultLayoutDeferred?bt(w):S.layout,C=Ir({group:e,nextGroupSize:d,prevGroupSize:S.groupSize,prevLayout:g}),j=oe({layout:C,panelConstraints:w});if(!S.defaultLayoutDeferred&&re(S.layout,j)&&Dr(S.derivedPanelConstraints,w)&&S.groupSize===d)return;_(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:w,groupSize:d,layout:j,separatorToPanels:S.separatorToPanels})}}else Nr(e,x,b)}});a.observe(e.element),e.panels.forEach(y=>{$(!r.has(y.id),`Panel ids must be unique; id "${y.id}" was used more than once`),r.add(y.id),y.onResize&&a.observe(y.element)});const l=he({group:e}),i=Te(e),s=e.panels.map(({id:y})=>y).join(",");let c=e.mutableState.defaultLayout;c&&($r(e.panels,c)||(c=void 0));const u=e.mutableState.layouts[s]??c??bt(i),v=oe({layout:u,panelConstraints:i}),p=e.element.ownerDocument;le.set(p,(le.get(p)??0)+1);const L=new Map;return kt(e).forEach(y=>{y.separator&&L.set(y.separator,y.panels)}),_(e,{defaultLayoutDeferred:l===0,derivedPanelConstraints:i,groupSize:l,layout:v,separatorToPanels:L}),e.separators.forEach(y=>{$(!o.has(y.id),`Separator ids must be unique; id "${y.id}" was used more than once`),o.add(y.id),y.element.addEventListener("keydown",ct)}),le.get(p)===1&&(p.addEventListener("dblclick",lt,!0),p.addEventListener("pointerdown",ut,!0),p.addEventListener("pointerleave",gt),p.addEventListener("pointermove",mt),p.addEventListener("pointerout",vt),p.addEventListener("pointerup",xt,!0)),function(){t=!1,le.set(p,Math.max(0,(le.get(p)??0)-1)),br(e),e.separators.forEach(y=>{y.element.removeEventListener("keydown",ct)}),le.get(p)||(p.removeEventListener("dblclick",lt,!0),p.removeEventListener("pointerdown",ut,!0),p.removeEventListener("pointerleave",gt),p.removeEventListener("pointermove",mt),p.removeEventListener("pointerout",vt),p.removeEventListener("pointerup",xt,!0)),a.disconnect()}}function Fr(){const[e,t]=f.useState({}),n=f.useCallback(()=>t({}),[]);return[e,n]}function Ge(e){const t=f.useId();return`${e??t}`}const se=typeof window<"u"?f.useLayoutEffect:f.useEffect;function be(e){const t=f.useRef(e);return se(()=>{t.current=e},[e]),f.useCallback((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[t])}function Ue(...e){return be(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function qe(e){const t=f.useRef({...e});return se(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const Wt=f.createContext(null);function Ar(e,t){const n=f.useRef({getLayout:()=>({}),setLayout:Or});f.useImperativeHandle(t,()=>n.current,[]),se(()=>{Object.assign(n.current,It({groupId:e}))})}function Ht({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:o,elementRef:a,groupRef:l,id:i,onLayoutChange:s,onLayoutChanged:c,orientation:u="horizontal",resizeTargetMinimumSize:v={coarse:20,fine:10},style:p,...L}){const y=f.useRef({onLayoutChange:{},onLayoutChanged:{}}),h=be(P=>{re(y.current.onLayoutChange,P)||(y.current.onLayoutChange=P,s==null||s(P))}),b=be(P=>{re(y.current.onLayoutChanged,P)||(y.current.onLayoutChanged=P,c==null||c(P))}),x=Ge(i),d=f.useRef(null),[S,w]=Fr(),g=f.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:v,separators:[]}),C=Ue(d,a);Ar(x,l);const j=be((P,M)=>{const D=ie(),A=ot(P),z=ee(P);if(z){let R=!1;switch(D.state){case"active":{R=D.hitRegions.some(W=>W.group===A);break}}return{flexGrow:z.layout[M]??1,pointerEvents:R?"none":void 0}}return{flexGrow:(n==null?void 0:n[M])??1}}),N=qe({defaultLayout:n,disableCursor:r}),F=f.useMemo(()=>({get disableCursor(){return!!N.disableCursor},getPanelStyles:j,id:x,orientation:u,registerPanel:P=>{const M=g.current;return M.panels=Fe(u,[...M.panels,P]),w(),()=>{M.panels=M.panels.filter(D=>D!==P),w()}},registerSeparator:P=>{const M=g.current;return M.separators=Fe(u,[...M.separators,P]),w(),()=>{M.separators=M.separators.filter(D=>D!==P),w()}},togglePanelDisabled:(P,M)=>{const D=g.current.panels.find(R=>R.id===P);D&&(D.panelConstraints.disabled=M);const A=ot(x),z=ee(x);A&&z&&_(A,{...z,derivedPanelConstraints:Te(A)})},toggleSeparatorDisabled:(P,M)=>{const D=g.current.separators.find(A=>A.id===P);D&&(D.disabled=M)}}),[j,x,w,u,N]),k=f.useRef(null);return se(()=>{const P=d.current;if(P===null)return;const M=g.current;let D;if(N.defaultLayout!==void 0&&Object.keys(N.defaultLayout).length===M.panels.length){D={};for(const H of M.panels){const O=N.defaultLayout[H.id];O!==void 0&&(D[H.id]=O)}}const A={disabled:!!o,element:P,id:x,mutableState:{defaultLayout:D,disableCursor:!!N.disableCursor,expandedPanelSizes:g.current.lastExpandedPanelSizes,layouts:g.current.layouts},orientation:u,panels:M.panels,resizeTargetMinimumSize:M.resizeTargetMinimumSize,separators:M.separators};k.current=A;const z=Tr(A),{defaultLayoutDeferred:R,derivedPanelConstraints:W,layout:E}=ee(A.id,!0);!R&&W.length>0&&(h(E),b(E));const T=Be(x,H=>{const{defaultLayoutDeferred:O,derivedPanelConstraints:I,layout:B}=H.next;if(O||I.length===0)return;const te=A.panels.map(({id:Y})=>Y).join(",");A.mutableState.layouts[te]=B,I.forEach(Y=>{if(Y.collapsible){const{layout:Oe}=H.prev??{};if(Oe){const _t=V(Y.collapsedSize,B[Y.panelId]),Jt=V(Y.collapsedSize,Oe[Y.panelId]);_t&&!Jt&&(A.mutableState.expandedPanelSizes[Y.panelId]=Oe[Y.panelId])}}});const J=ie().state!=="active";h(B),J&&b(B)});return()=>{k.current=null,z(),T()}},[o,x,b,h,u,S,N]),f.useEffect(()=>{const P=k.current;P&&(P.mutableState.defaultLayout=n,P.mutableState.disableCursor=!!r)}),m.jsx(Wt.Provider,{value:F,children:m.jsx("div",{...L,className:t,"data-group":!0,"data-testid":x,id:x,ref:C,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:u==="horizontal"?"pan-y":"pan-x"},children:e})})}Ht.displayName="Group";function Xe(){const e=f.useContext(Wt);return $(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Br(e,t){const{id:n}=Xe(),r=f.useRef({collapse:$e,expand:$e,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:$e});f.useImperativeHandle(t,()=>r.current,[]),se(()=>{Object.assign(r.current,Dt({groupId:n,panelId:e}))})}function Me({children:e,className:t,collapsedSize:n="0%",collapsible:r=!1,defaultSize:o,disabled:a,elementRef:l,groupResizeBehavior:i="preserve-relative-size",id:s,maxSize:c="100%",minSize:u="0%",onResize:v,panelRef:p,style:L,...y}){const h=!!s,b=Ge(s),x=qe({disabled:a}),d=f.useRef(null),S=Ue(d,l),{getPanelStyles:w,id:g,orientation:C,registerPanel:j,togglePanelDisabled:N}=Xe(),F=v!==null,k=be((M,D,A)=>{v==null||v(M,s,A)});se(()=>{const M=d.current;if(M!==null){const D={element:M,id:b,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:F?k:void 0,panelConstraints:{groupResizeBehavior:i,collapsedSize:n,collapsible:r,defaultSize:o,disabled:x.disabled,maxSize:c,minSize:u}};return j(D)}},[i,n,r,o,F,b,h,c,u,k,j,x]),f.useEffect(()=>{N(b,!!a)},[a,b,N]),Br(b,p);const P=f.useSyncExternalStore(M=>Be(g,M),()=>JSON.stringify(w(g,b)),()=>JSON.stringify(w(g,b)));return m.jsx("div",{...y,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":b,id:b,ref:S,style:{...Wr,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...JSON.parse(P)},children:m.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...L,touchAction:C==="horizontal"?"pan-y":"pan-x"},children:e})})}Me.displayName="Panel";const Wr={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function Hr({layout:e,panelConstraints:t,panelId:n,panelIndex:r}){let o,a;const l=e[n],i=t.find(s=>s.panelId===n);if(i){const s=i.maxSize,c=i.collapsible?i.collapsedSize:i.minSize,u=[r,r+1];a=oe({layout:we({delta:c-l,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],o=oe({layout:we({delta:s-l,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:o,valueMin:a,valueNow:l}}function Ae({children:e,className:t,disabled:n,elementRef:r,id:o,style:a,...l}){const i=Ge(o),s=qe({disabled:n}),[c,u]=f.useState({}),[v,p]=f.useState("inactive"),L=f.useRef(null),y=Ue(L,r),{disableCursor:h,id:b,orientation:x,registerSeparator:d,toggleSeparatorDisabled:S}=Xe(),w=x==="horizontal"?"vertical":"horizontal";se(()=>{const C=L.current;if(C!==null){const j={disabled:s.disabled,element:C,id:i},N=d(j),F=Lr(P=>{p(P.next.state!=="inactive"&&P.next.hitRegions.some(M=>M.separator===j)?P.next.state:"inactive")}),k=Be(b,P=>{const{derivedPanelConstraints:M,layout:D,separatorToPanels:A}=P.next,z=A.get(j);if(z){const R=z[0],W=z.indexOf(R);u(Hr({layout:D,panelConstraints:M,panelId:R.id,panelIndex:W}))}});return()=>{F(),k(),N()}}},[b,i,d,s]),f.useEffect(()=>{S(i,!!n)},[n,i,S]);let g;return n&&!h&&(g="not-allowed"),m.jsx("div",{...l,"aria-controls":c.valueControls,"aria-disabled":n||void 0,"aria-orientation":w,"aria-valuemax":c.valueMax,"aria-valuemin":c.valueMin,"aria-valuenow":c.valueNow,children:e,className:t,"data-separator":n?"disabled":v,"data-testid":i,id:i,ref:y,role:"separator",style:{flexBasis:"auto",cursor:g,...a,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}Ae.displayName="Separator";function Vt(e){var r;const t=((r=e.split(".").pop())==null?void 0:r.toLowerCase())||"";return{js:"text-yellow-600",ts:"text-blue-500",tsx:"text-blue-400",jsx:"text-yellow-500",py:"text-green-600",rb:"text-red-500",go:"text-cyan-600",html:"text-orange-500",css:"text-purple-500",json:"text-green-500",md:"text-slate",yaml:"text-green-400",yml:"text-green-400",sh:"text-green-600",bash:"text-green-600",rs:"text-orange-600",java:"text-red-600",kt:"text-purple-600",sql:"text-blue-600",svg:"text-orange-400"}[t]||"text-charcoal/80"}function Gt(e,t){var o;if(t==="directory")return"[ ]";const n=((o=e.split(".").pop())==null?void 0:o.toLowerCase())||"";return{js:"JS",ts:"TS",tsx:"TX",jsx:"JX",py:"PY",html:"<>",css:"##",json:"{}",md:"MD",yml:"YL",yaml:"YL",sh:"SH",go:"GO",rs:"RS",rb:"RB",java:"JV",kt:"KT",sql:"SQ",svg:"SV",png:"IM",jpg:"IM",gif:"IM",ico:"IC"}[n]||".."}function Vr(e){var o;const t=((o=e.split(".").pop())==null?void 0:o.toLowerCase())||"",n={js:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",py:"python",html:"html",htm:"html",css:"css",scss:"scss",less:"less",json:"json",md:"markdown",go:"go",rs:"rust",sh:"shell",bash:"shell",yml:"yaml",yaml:"yaml",xml:"xml",svg:"xml",sql:"sql",java:"java",kt:"kotlin",rb:"ruby",dockerfile:"dockerfile"},r=e.toLowerCase();return r==="dockerfile"?"dockerfile":r==="makefile"?"makefile":n[t]||"plaintext"}function Ut(e){for(const t of e)if(t.type==="file"&&t.name.endsWith(".html")||t.children&&Ut(t.children))return!0;return!1}function qt(e,t){for(const n of e){if(n.path===t)return n.size;if(n.children){const r=qt(n.children,t);if(r!==void 0)return r}}}function Xt(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Yt({nodes:e,selectedPath:t,onSelect:n,onDelete:r,depth:o=0}){const[a,l]=f.useState(()=>{const i=new Set;return o<2&&e.filter(s=>s.type==="directory").forEach(s=>i.add(s.path)),i});return m.jsx("div",{children:e.map(i=>{const s=i.type==="directory",c=a.has(i.path),u=i.path===t;return m.jsxs("div",{className:"group/file",children:[m.jsxs("button",{onClick:()=>{s?l(v=>{const p=new Set(v);return p.has(i.path)?p.delete(i.path):p.add(i.path),p}):n(i.path,i.name)},className:`w-full text-left flex items-center gap-1.5 px-2 py-1 text-xs font-mono rounded transition-colors ${u?"bg-accent-product/10 text-accent-product":"text-charcoal/70 hover:bg-white/40"}`,style:{paddingLeft:`${o*14+8}px`},children:[s?m.jsx("span",{className:"text-[10px] text-slate w-3 text-center flex-shrink-0",children:c?"v":">"}):m.jsx("span",{className:"w-3 flex-shrink-0"}),m.jsx("span",{className:`text-[10px] font-bold w-5 text-center flex-shrink-0 ${s?"text-accent-product":Vt(i.name)}`,children:Gt(i.name,i.type)}),m.jsxs("span",{className:"truncate",children:[i.name,s?"/":""]}),!s&&i.size!=null&&i.size>0&&m.jsx("span",{className:"text-[10px] text-slate/40 ml-auto flex-shrink-0",children:Xt(i.size)}),!s&&r&&m.jsx("span",{role:"button",tabIndex:-1,onClick:v=>{v.stopPropagation(),r(i.path,i.name)},onKeyDown:v=>{v.key==="Enter"&&(v.stopPropagation(),r(i.path,i.name))},className:"text-[10px] text-slate/30 hover:text-red-500 ml-1 flex-shrink-0 opacity-0 group-hover/file:opacity-100 transition-opacity cursor-pointer",title:"Delete file",children:"x"})]}),s&&c&&i.children&&m.jsx(Yt,{nodes:i.children,selectedPath:t,onSelect:n,onDelete:r,depth:o+1})]},i.path)})})}function Gr({session:e,onClose:t}){var W;const[n,r]=f.useState(null),[o,a]=f.useState(""),[l,i]=f.useState(null),[s,c]=f.useState(null),[u,v]=f.useState(!1),[p,L]=f.useState(!1),[y,h]=f.useState(!1),[b,x]=f.useState(!1),[d,S]=f.useState(e),w=f.useRef(null),g=Ut(d.files),C=`/api/sessions/${encodeURIComponent(d.id)}/preview/index.html`,j=f.useCallback(async()=>{try{const E=await K.getSessionDetail(d.id);S(E)}catch{}},[d.id]),N=f.useCallback(async(E,T)=>{if(!(y&&!window.confirm("Unsaved changes. Discard?"))){r(E),a(T),v(!0),h(!1);try{const H=d.id?await K.getSessionFileContent(d.id,E):await K.getFileContent(E);i(H.content),c(H.content)}catch{i("[Error loading file]"),c("[Error loading file]")}finally{v(!1)}}},[d.id,y]),F=f.useCallback(async()=>{if(!(!n||s===null||!d.id)){x(!0);try{await K.saveSessionFile(d.id,n,s),i(s),h(!1)}catch(E){const T=E instanceof Error?E.message:"Unknown error";window.alert(`Save failed: ${T}`)}finally{x(!1)}}},[n,s,d.id]);f.useEffect(()=>{const E=T=>{(T.metaKey||T.ctrlKey)&&T.key==="s"&&(T.preventDefault(),y&&n&&F())};return window.addEventListener("keydown",E),()=>window.removeEventListener("keydown",E)},[y,n,F]),f.useEffect(()=>{const E=d.files.find(T=>T.name==="index.html"&&T.type==="file");E&&(N(E.path,E.name),L(!0))},[]);const k=f.useCallback(E=>{E!==void 0&&(c(E),h(E!==l))},[l]),P=f.useCallback(E=>{w.current=E},[]),M=f.useCallback(async()=>{const E=window.prompt("New file name (e.g. src/utils.ts):");if(!(!E||!E.trim()))try{await K.createSessionFile(d.id,E.trim()),await j()}catch(T){const H=T instanceof Error?T.message:"Unknown error";window.alert(`Create file failed: ${H}`)}},[d.id,j]),D=f.useCallback(async()=>{const E=window.prompt("New folder name (e.g. src/components):");if(!(!E||!E.trim()))try{await K.createSessionDirectory(d.id,E.trim()),await j()}catch(T){const H=T instanceof Error?T.message:"Unknown error";window.alert(`Create folder failed: ${H}`)}},[d.id,j]),A=f.useCallback(async(E,T)=>{if(window.confirm(`Delete "${T}"?`))try{await K.deleteSessionFile(d.id,E),n===E&&(r(null),a(""),i(null),c(null),h(!1)),await j()}catch(O){const I=O instanceof Error?O.message:"Unknown error";window.alert(`Delete failed: ${I}`)}},[d.id,n,j]),z=n?qt(d.files,n):void 0,R=((W=o.split(".").pop())==null?void 0:W.toUpperCase())||"";return m.jsxs("div",{className:"flex flex-col h-full",children:[m.jsxs("div",{className:"glass px-5 py-3 flex items-center gap-4 flex-shrink-0 border-b border-white/10",children:[m.jsx("button",{onClick:()=>{y&&!window.confirm("Unsaved changes. Discard?")||t()},className:"text-xs font-medium px-3 py-1.5 rounded-lg border border-white/20 text-slate hover:text-charcoal hover:bg-white/30 transition-colors",children:"Back"}),m.jsxs("div",{className:"flex-1 min-w-0",children:[m.jsx("h2",{className:"text-sm font-bold text-charcoal truncate",children:d.id}),m.jsx("p",{className:"text-[10px] font-mono text-slate truncate",children:d.path})]}),m.jsx("span",{className:`text-[10px] font-semibold px-2 py-0.5 rounded-full ${d.status==="completed"||d.status==="completion_promise_fulfilled"?"bg-success/10 text-success":"bg-slate/10 text-slate"}`,children:d.status}),g&&m.jsx("button",{onClick:()=>L(!p),className:`text-xs font-medium px-3 py-1.5 rounded-lg border transition-colors ${p?"border-accent-product/40 bg-accent-product/10 text-accent-product":"border-white/20 text-slate hover:text-charcoal hover:bg-white/30"}`,children:p?"Hide Preview":"Preview"})]}),m.jsx("div",{className:"flex-1 min-h-0",children:m.jsxs(Ht,{orientation:"horizontal",className:"h-full",children:[m.jsx(Me,{defaultSize:20,minSize:15,children:m.jsxs("div",{className:"h-full flex flex-col border-r border-white/10 bg-white/30",children:[m.jsxs("div",{className:"px-3 py-2 border-b border-white/10 flex items-center gap-2",children:[m.jsx("span",{className:"text-[10px] text-slate uppercase tracking-wider font-semibold flex-1",children:"Files"}),m.jsx("button",{onClick:M,title:"New File",className:"text-[10px] text-slate hover:text-accent-product px-1.5 py-0.5 rounded border border-white/20 hover:border-accent-product/30 transition-colors",children:"+ File"}),m.jsx("button",{onClick:D,title:"New Folder",className:"text-[10px] text-slate hover:text-accent-product px-1.5 py-0.5 rounded border border-white/20 hover:border-accent-product/30 transition-colors",children:"+ Dir"})]}),m.jsx("div",{className:"flex-1 overflow-y-auto terminal-scroll",children:d.files.length>0?m.jsx(Yt,{nodes:d.files,selectedPath:n,onSelect:N,onDelete:A}):m.jsx("div",{className:"p-4 text-xs text-slate",children:"No files"})})]})}),m.jsx(Ae,{className:"w-1 bg-white/10 hover:bg-accent-product/30 transition-colors cursor-col-resize"}),m.jsx(Me,{defaultSize:p?50:80,minSize:25,children:m.jsx("div",{className:"h-full flex flex-col min-w-0",children:n?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"px-4 py-2 border-b border-white/10 flex items-center gap-2 flex-shrink-0 bg-white/20",children:[m.jsx("span",{className:`text-[10px] font-bold ${Vt(o)}`,children:Gt(o,"file")}),m.jsx("span",{className:"text-xs font-mono text-charcoal truncate",children:n}),y&&m.jsx("span",{className:"w-2 h-2 rounded-full bg-accent-product flex-shrink-0",title:"Unsaved changes"}),b&&m.jsx("span",{className:"text-[10px] text-accent-product animate-pulse flex-shrink-0",children:"Saving..."}),m.jsx("span",{className:"ml-auto text-[10px] text-slate/50 font-mono",children:z!=null?Xt(z):""}),m.jsx("span",{className:"text-[10px] text-slate/40 font-mono uppercase",children:R}),y&&m.jsx("button",{onClick:F,className:"text-[10px] font-medium px-2 py-0.5 rounded border border-accent-product/40 bg-accent-product/10 text-accent-product hover:bg-accent-product/20 transition-colors",children:"Save"})]}),m.jsx("div",{className:"flex-1 min-h-0",children:u?m.jsx("div",{className:"text-slate text-xs animate-pulse p-4",children:"Loading..."}):m.jsx(cr,{value:s??"",language:Vr(o),theme:"vs",onChange:k,onMount:P,options:{minimap:{enabled:!1},fontSize:13,lineNumbers:"on",wordWrap:"on",scrollBeyondLastLine:!1,automaticLayout:!0,padding:{top:8},renderLineHighlight:"line",smoothScrolling:!0,cursorBlinking:"smooth",folding:!0,bracketPairColorization:{enabled:!0}}})})]}):m.jsx("div",{className:"flex-1 flex items-center justify-center text-slate text-sm",children:"Select a file to view its contents"})})}),p&&m.jsxs(m.Fragment,{children:[m.jsx(Ae,{className:"w-1 bg-white/10 hover:bg-accent-product/30 transition-colors cursor-col-resize"}),m.jsx(Me,{defaultSize:30,minSize:20,collapsible:!0,children:m.jsxs("div",{className:"h-full flex flex-col border-l border-white/10",children:[m.jsxs("div",{className:"px-4 py-2 border-b border-white/10 flex items-center gap-2 flex-shrink-0 bg-white/20",children:[m.jsx("span",{className:"text-xs font-semibold text-charcoal",children:"Live Preview"}),m.jsx("span",{className:"text-[10px] font-mono text-slate/50 truncate ml-auto",children:C})]}),m.jsx("div",{className:"flex-1 bg-white",children:m.jsx("iframe",{src:C,title:"Project Preview",className:"w-full h-full border-0",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups"})})]})})]})]})})]})}function Xr(){const{sessionId:e}=Kt(),t=Qt(),[n,r]=f.useState(null),[o,a]=f.useState(!0),[l,i]=f.useState(null);return f.useEffect(()=>{e&&(a(!0),i(null),K.getSessionDetail(e).then(s=>{r(s),a(!1)}).catch(s=>{i(s instanceof Error?s.message:"Failed to load session"),a(!1)}))},[e]),o?m.jsxs("div",{className:"h-screen bg-background flex flex-col",children:[m.jsx(Re,{status:null,wsConnected:!1}),m.jsx("div",{className:"flex-1 flex items-center justify-center",children:m.jsxs("div",{className:"text-center",children:[m.jsx("div",{className:"text-slate animate-pulse text-sm",children:"Loading project..."}),m.jsx("div",{className:"text-[10px] font-mono text-slate/50 mt-2",children:e})]})})]}):l||!n?m.jsxs("div",{className:"h-screen bg-background flex flex-col",children:[m.jsx(Re,{status:null,wsConnected:!1}),m.jsx("div",{className:"flex-1 flex items-center justify-center",children:m.jsxs("div",{className:"text-center",children:[m.jsx("p",{className:"text-danger text-sm font-medium",children:"Project not found"}),m.jsx("p",{className:"text-xs text-slate mt-1",children:l||`Session ${e} does not exist`}),m.jsx("button",{onClick:()=>t("/"),className:"mt-4 px-4 py-2 rounded-xl text-sm font-semibold border border-accent-product/30 text-accent-product hover:bg-accent-product/5 transition-all",children:"Back to Home"})]})})]}):m.jsxs("div",{className:"h-screen bg-background flex flex-col",children:[m.jsx(Re,{status:null,wsConnected:!1}),m.jsx("div",{className:"flex-1 min-h-0",children:m.jsx(Zt,{name:"ProjectWorkspace",children:m.jsx(Gr,{session:n,onClose:()=>t("/")})})})]})}export{Xr as default};
|