react-dockable-desktop 1.2.0 → 1.3.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/README.md +385 -365
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +84 -1
- package/dist/index.d.ts +84 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +15 -15
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Dt=Object.create;var Ye=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Bt=Object.getOwnPropertyNames;var Ht=Object.getPrototypeOf,$t=Object.prototype.hasOwnProperty;var Gt=(n,l)=>{for(var r in l)Ye(n,r,{get:l[r],enumerable:!0})},dt=(n,l,r,h)=>{if(l&&typeof l=="object"||typeof l=="function")for(let T of Bt(l))!$t.call(n,T)&&T!==r&&Ye(n,T,{get:()=>l[T],enumerable:!(h=At(l,T))||h.enumerable});return n};var Yt=(n,l,r)=>(r=n!=null?Dt(Ht(n)):{},dt(l||!n||!n.__esModule?Ye(r,"default",{value:n,enumerable:!0}):r,n)),Xt=n=>dt(Ye({},"__esModule",{value:!0}),n);var an={};Gt(an,{ConfirmationForm:()=>Te,FormContainerContext:()=>qe,FormContainerProvider:()=>ke,LeftPanelRenderer:()=>St,ModalStackRenderer:()=>Tt,PanelProvider:()=>wt,PanelRegistry:()=>te,RightPanelRenderer:()=>zt,SidePanelRenderer:()=>Lt,Sidebar:()=>Et,WindowManager:()=>It,WindowManagerProvider:()=>mt,defaultPredefinedMessages:()=>Ne,formatLabel:()=>X,useFormContainer:()=>Ke,useFormatMessage:()=>de,usePanelActions:()=>Ie,usePanelContext:()=>ht,usePanelState:()=>xe,usePredefinedMessages:()=>ue,useStyleClasses:()=>Ce,useWindowManagerActions:()=>Re,useWindowManagerState:()=>fe});module.exports=Xt(an);var O=Yt(require("react"),1),st=require("react-dom");var P=require("react");var tt=class{registry=new Map;register(l,r,h){this.registry.set(l,{Component:r,defaultOptions:h})}get(l){return this.registry.get(l)}getRegisteredIds(){return Array.from(this.registry.keys())}},te=new tt;var Ne={floatWindow:{id:"dockable-desktop-floatWindow",defaultMessage:"Float Window"},minimizePanel:{id:"dockable-desktop-minimizePanel",defaultMessage:"Minimize Panel"},closeTab:{id:"dockable-desktop-closeTab",defaultMessage:"Close Tab"},restorePanel:{id:"dockable-desktop-restorePanel",defaultMessage:"Restore Panel"},maximizePanel:{id:"dockable-desktop-maximizePanel",defaultMessage:"Maximize Panel"},closePanel:{id:"dockable-desktop-closePanel",defaultMessage:"Close Panel"},dockWindow:{id:"dockable-desktop-dockWindow",defaultMessage:"Dock Window"},minimize:{id:"dockable-desktop-minimize",defaultMessage:"Minimize"},maximize:{id:"dockable-desktop-maximize",defaultMessage:"Maximize"},restoreSize:{id:"dockable-desktop-restoreSize",defaultMessage:"Restore Size"},close:{id:"dockable-desktop-close",defaultMessage:"Close"},closeEmptyGroup:{id:"dockable-desktop-closeEmptyGroup",defaultMessage:"Close empty split group"},anchorToRightEdge:{id:"dockable-desktop-anchorToRightEdge",defaultMessage:"Anchor to Right Edge"},anchorToBottomEdge:{id:"dockable-desktop-anchorToBottomEdge",defaultMessage:"Anchor to Bottom Edge"},windowAnchoringOptions:{id:"dockable-desktop-windowAnchoringOptions",defaultMessage:"Window Anchoring Options"},unsavedChangesTitle:{id:"dockable-desktop-unsavedChangesTitle",defaultMessage:"Unsaved Changes"},unsavedChangesMessage:{id:"dockable-desktop-unsavedChangesMessage",defaultMessage:'"{title}" has unsaved changes. Do you want to discard your changes and close?'},discardChanges:{id:"dockable-desktop-discardChanges",defaultMessage:"Discard Changes"},cancel:{id:"dockable-desktop-cancel",defaultMessage:"Cancel"},yes:{id:"dockable-desktop-yes",defaultMessage:"Yes"},no:{id:"dockable-desktop-no",defaultMessage:"No"},ok:{id:"dockable-desktop-ok",defaultMessage:"OK"},closePanelTooltip:{id:"dockable-desktop-closePanelTooltip",defaultMessage:"Close panel"},closeTooltip:{id:"dockable-desktop-closeTooltip",defaultMessage:"Close"}};var Fe=require("react/jsx-runtime"),ct=(0,P.createContext)(null),ut=(0,P.createContext)(null),gt=(0,P.createContext)(null),pt=(0,P.createContext)(Ne),ft=(0,P.createContext)({}),Ce=()=>(0,P.useContext)(ft),nt=class{listeners={};subscribe(l,r){return this.listeners[l]||(this.listeners[l]=[]),this.listeners[l].push(r),()=>{this.listeners[l]=this.listeners[l].filter(h=>h!==r)}}publish(l,r){this.listeners[l]&&this.listeners[l].forEach(h=>h(r))}},qt={type:"branch",orientation:"vertical",sizes:[.75,.25],children:[{type:"leaf",id:"group-left-top",panels:["main-map","main-editor"],activePanelId:"main-map"},{type:"leaf",id:"group-left-bottom",panels:["system-console","help-docs"],activePanelId:"system-console"}]},Kt={"main-map":{id:"main-map",title:"Main Map",component:"mainMap",state:"docked"},"main-editor":{id:"main-editor",title:"Code Editor",component:"editor",state:"docked"},"system-console":{id:"system-console",title:"Console Output",component:"terminal",state:"docked"},"help-docs":{id:"help-docs",title:"Help Center",component:"help",state:"docked"},"live-preview":{id:"live-preview",title:"Live Preview Output",component:"preview",state:"floating"}},Ut=[{id:"live-preview",x:450,y:200,width:320,height:250,z:1e3}],mt=({children:n,formatMessage:l,predefinedMessages:r,dir:h,modalClass:T,modalBodyClass:M,sidePanelClass:A,sidePanelBodyClass:F,windowClass:x,windowBodyClass:R})=>{let[z,c]=(0,P.useState)({gridRoot:qt,floating:Ut,minimized:[],panels:Kt,draggedPanelId:null,activePanelId:"main-map",dir:h||"ltr",isRtl:h==="rtl"}),w=(0,P.useRef)(z);w.current=z;let b=(0,P.useRef)({}),L=(0,P.useMemo)(()=>({...Ne,...r}),[r]),W=(0,P.useRef)(new nt),p=(0,P.useRef)(1e3),y=(0,P.useCallback)((t,s)=>W.current.subscribe(t,s),[]),g=(0,P.useCallback)((t,s)=>{W.current.publish(t,s)},[]),k=(0,P.useCallback)((t,s)=>{let o=typeof t.x=="string"?parseFloat(t.x):t.x,e=typeof t.y=="string"?parseFloat(t.y):t.y,a=typeof t.width=="string"?parseFloat(t.width):t.width,i=typeof t.height=="string"?parseFloat(t.height):t.height;isNaN(o)&&(o=300),isNaN(e)&&(e=150),isNaN(a)&&(a=450),isNaN(i)&&(i=350);let m=D=>s.some(B=>{let I=typeof B.x=="string"?parseFloat(B.x):B.x,N=typeof B.y=="string"?parseFloat(B.y):B.y;return!B.maximized&&Math.abs(I-D.x)<20&&Math.abs(N-D.y)<20}),u=0;for(;m({x:o,y:e})&&u<10;)o+=30,e+=30,u++;let v=Math.max(100,window.innerWidth||1024),C=Math.max(100,window.innerHeight||768);return(o+a>v||e+i>C)&&(o=100+u%5*30,e=100+u%5*30),o=Math.max(0,Math.min(o,v-100)),e=Math.max(0,Math.min(e,C-40)),{x:o,y:e,width:a,height:i}},[]),H=(0,P.useCallback)(t=>{p.current+=1;let s=p.current;c(o=>{let e=o.panels[t];if(!e)return o;if(e.state==="floating")return{...o,floating:o.floating.map(a=>a.id===t?{...a,z:s}:a),activePanelId:t};if(e.state==="docked"){let a=i=>i.type==="leaf"?i.panels.includes(t)?{...i,activePanelId:t}:i:{...i,children:i.children.map(a)};return{...o,gridRoot:a(o.gridRoot),activePanelId:t}}return{...o,activePanelId:t}})},[]),$=(t,s)=>{if(t.type==="leaf"){let o=t.panels.indexOf(s);if(o===-1)return t;let e=t.panels.filter(m=>m!==s),a=t.activePanelId===s?e[o]||e[o-1]||e[0]||null:t.activePanelId,i={...t,panels:e,activePanelId:a};return e.length===0&&!t.keepOnEmpty?null:i}else{let o=t.children.map(i=>$(i,s)).filter(i=>i!==null);if(o.length===0)return null;if(o.length===1)return o[0];let e=t.sizes.slice(0,o.length),a=e.reduce((i,m)=>i+m,0);return{...t,children:o,sizes:e.map(i=>i/a)}}},f=(t,s,o)=>{if(t.type==="leaf"){if(t.id===s){let e=t.panels.includes(o)?t.panels:[...t.panels,o];return{...t,panels:e,activePanelId:o}}return t}else return{...t,children:t.children.map(e=>f(e,s,o))}},S=t=>{if(t.type==="leaf")return t.id;for(let s of t.children){let o=S(s);if(o)return o}return null},E=(0,P.useCallback)((t,s,o)=>{c(e=>{let a=e.panels[t],i=te.get(s),m=o?.title||o?.title||i?.defaultOptions?.title||t,u=o?.initialTarget||i?.defaultOptions?.initialTarget||"docked",v=i?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350};if(a)if(a.state==="minimized"){let I=e.minimized.filter(N=>N.id!==t);if(u==="floating"||!e.gridRoot){p.current+=1;let N=k(v,e.floating);return{...e,minimized:I,floating:[...e.floating,{...N,id:t,z:p.current}],panels:{...e.panels,[t]:{...a,state:"floating"}}}}else{let N=S(e.gridRoot)||"group-left-top";return{...e,minimized:I,gridRoot:f(e.gridRoot,N,t),panels:{...e.panels,[t]:{...a,state:"docked"}}}}}else{if(a.state==="floating")return H(t),e;{let I=N=>N.type==="leaf"?N.panels.includes(t)?{...N,activePanelId:t}:N:{...N,children:N.children.map(I)};return{...e,gridRoot:I(e.gridRoot)}}}let D={id:t,title:m,component:s,state:u==="tabbed"?"docked":u},B={...e.panels,[t]:D};if(u==="floating"){p.current+=1;let I=k(v,e.floating),N=o?.stickyRight??i?.defaultOptions?.defaultStickyRight??!1,U=o?.stickyBottom??i?.defaultOptions?.defaultStickyBottom??!1,Z=Math.max(100,window.innerWidth||1024),ee=Math.max(100,window.innerHeight||768),pe=typeof I.width=="string"?parseFloat(I.width):I.width,ye=typeof I.height=="string"?parseFloat(I.height):I.height,we=I.x,ze=I.y,Ee=10;return N&&(we=Z-pe-Ee),U&&(ze=ee-ye-Ee),{...e,floating:[...e.floating,{...I,id:t,z:p.current,x:we,y:ze,stickyRight:N,stickyBottom:U}],panels:B}}else{let I=S(e.gridRoot)||"group-left-top";return{...e,gridRoot:f(e.gridRoot,I,t),panels:B}}})},[k,H]),G=(0,P.useCallback)(t=>{c(s=>{let o=s.panels[t];if(!o||te.get(o.component)?.defaultOptions?.canClose===!1)return s;delete b.current[t];let a={...s.panels};delete a[t];let i=$(s.gridRoot,t);return{...s,gridRoot:i||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:s.floating.filter(m=>m.id!==t),minimized:s.minimized.filter(m=>m.id!==t),panels:a}})},[]),Y=(0,P.useCallback)((t,s)=>{b.current[t]=s},[]),_=(0,P.useCallback)(t=>{delete b.current[t]},[]),ce=(0,P.useCallback)((t,s,o)=>{c(e=>{let a=e.panels[t];return a?{...e,panels:{...e.panels,[t]:{...a,dirty:s,dirtyOptions:o}}}:e})},[]),me=(0,P.useCallback)((t,s)=>{c(o=>{let e=o.panels[t];return e?{...o,panels:{...o.panels,[t]:{...e,title:s}}}:o})},[]),K=(0,P.useCallback)(async(t,s)=>{if(s?.force){G(t);return}let o=b.current[t];if(o&&!await o())return;let e=w.current.panels[t];if(e?.dirty)if(s?.onConfirm){if(!await s.onConfirm(e.dirtyOptions))return}else return;G(t)},[G]),ie=(0,P.useCallback)(t=>{c(s=>{let o=s.panels[t];if(!o||o.state==="minimized"||te.get(o.component)?.defaultOptions?.canMinimize===!1)return s;let a,i;if(o.state==="floating"){let u=s.floating.find(v=>v.id===t);u&&(a={x:u.x,y:u.y,width:u.width,height:u.height,stickyRight:u.stickyRight,stickyBottom:u.stickyBottom})}else if(o.state==="docked"){let u=v=>{if(v.type==="leaf")return v.panels.includes(t)?v.id:null;for(let C of v.children){let D=u(C);if(D)return D}return null};i=u(s.gridRoot)}let m=$(s.gridRoot,t);return{...s,gridRoot:m||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:s.floating.filter(u=>u.id!==t),minimized:[...s.minimized,{id:t,title:o.title,component:o.component}],panels:{...s.panels,[t]:{...o,state:"minimized",previousState:o.state,lastFloatingRect:a,lastLeafId:i}}}})},[]),re=(0,P.useCallback)(t=>{c(s=>{let o=s.panels[t];if(!o||o.state!=="minimized")return s;let e=s.minimized.filter(i=>i.id!==t);if((o.previousState||"docked")==="floating"){p.current+=1;let i=te.get(o.component),m=o.lastFloatingRect||i?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},u=k(m,s.floating);return{...s,minimized:e,floating:[...s.floating,{...u,id:t,z:p.current,stickyRight:!!o.lastFloatingRect?.stickyRight,stickyBottom:!!o.lastFloatingRect?.stickyBottom}],panels:{...s.panels,[t]:{...o,state:"floating"}}}}else{let i=(C,D)=>C.type==="leaf"?C.id===D:C.children.some(B=>i(B,D)),m=o.lastLeafId&&i(s.gridRoot,o.lastLeafId),u=te.get(o.component),v=u?.defaultOptions?.canDrag!==!1;if(m)return{...s,minimized:e,gridRoot:f(s.gridRoot,o.lastLeafId,t),panels:{...s.panels,[t]:{...o,state:"docked"}}};if(v){p.current+=1;let C=o.lastFloatingRect||u?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},D=k(C,s.floating);return{...s,minimized:e,floating:[...s.floating,{...D,id:t,z:p.current,stickyRight:!!o.lastFloatingRect?.stickyRight,stickyBottom:!!o.lastFloatingRect?.stickyBottom}],panels:{...s.panels,[t]:{...o,state:"floating"}}}}else{let C=S(s.gridRoot)||"group-left-top";return{...s,minimized:e,gridRoot:f(s.gridRoot,C,t),panels:{...s.panels,[t]:{...o,state:"docked"}}}}}})},[k]),be=(0,P.useCallback)((t,s)=>{c(o=>{let e=o.panels[t];if(!e||te.get(e.component)?.defaultOptions?.canDrag===!1)return o;let i=te.get(e.component),m=s||i?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},u=$(o.gridRoot,t);p.current+=1;let v=k(m,o.floating);return{...o,gridRoot:u||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:[...o.floating,{...v,id:t,z:p.current}],panels:{...o.panels,[t]:{...e,state:"floating"}}}})},[k]),ve=(0,P.useCallback)((t,s)=>{c(o=>{let e=o.panels[t];if(!e)return o;let a=o.floating.filter(u=>u.id!==t),i=$(o.gridRoot,t),m=s||S(i||o.gridRoot)||"group-left-top";return{...o,gridRoot:f(i||o.gridRoot,m,t),floating:a,panels:{...o.panels,[t]:{...e,state:"docked"}}}})},[]),J=(t,s,o,e)=>{if(t.type==="leaf"){if(t.id===s){let a={type:"leaf",id:`group-split-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[o],activePanelId:o};return{type:"branch",orientation:e==="left"||e==="right"?"horizontal":"vertical",sizes:[.5,.5],children:e==="left"||e==="top"?[a,t]:[t,a]}}return t}else return{...t,children:t.children.map(a=>J(a,s,o,e))}},le=(0,P.useCallback)(t=>{c(s=>({...s,draggedPanelId:t}))},[]),q=(0,P.useCallback)((t,s,o)=>{c(e=>{let a=e.panels[t];if(!a)return e;let i=e.floating.filter(v=>v.id!==t),m=$(e.gridRoot,t),u;return o==="center"?u=f(m||e.gridRoot,s,t):u=J(m||e.gridRoot,s,t,o),{...e,gridRoot:u,floating:i,panels:{...e.panels,[t]:{...a,state:"docked"}},draggedPanelId:null}})},[]),Pe=(0,P.useCallback)((t,s)=>{c(o=>{let e=o.panels[t];if(!e)return o;let a=o.floating.filter(D=>D.id!==t),i=$(o.gridRoot,t),m={type:"leaf",id:`group-edge-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[t],activePanelId:t},u=s==="left"||s==="right"?"horizontal":"vertical",v=s==="left"||s==="top"?[m,i||o.gridRoot]:[i||o.gridRoot,m];return{...o,gridRoot:{type:"branch",orientation:u,sizes:s==="left"||s==="top"?[.3,.7]:[.7,.3],children:v},floating:a,panels:{...o.panels,[t]:{...e,state:"docked"}},draggedPanelId:null}})},[]),Se=(0,P.useCallback)((t,s,o)=>{c(e=>{let a=e.panels[t];if(!a)return e;let i=$(e.gridRoot,t),m=C=>{if(C.type==="leaf"){if(C.id===s){let D=C.panels.filter(N=>N!==t),B=Math.max(0,Math.min(o,D.length)),I=[...D];return I.splice(B,0,t),{...C,panels:I,activePanelId:t}}return C}else return{...C,children:C.children.map(m)}},u=m(i||e.gridRoot),v=e.floating.filter(C=>C.id!==t);return{...e,gridRoot:u,floating:v,panels:{...e.panels,[t]:{...a,state:"docked"}},draggedPanelId:null}})},[]),Me=(0,P.useCallback)(t=>{c(s=>{let o=a=>{if(a.type==="leaf")return a.id===t&&a.canClose!==!1?null:a;{let i=a.children.map(v=>o(v)).filter(v=>v!==null);if(i.length===0)return null;if(i.length===1)return i[0];let m=a.sizes.slice(0,i.length),u=m.reduce((v,C)=>v+C,0);return{...a,children:i,sizes:m.map(v=>v/u)}}},e=o(s.gridRoot);return{...s,gridRoot:e||{type:"leaf",id:"group-default",panels:[],activePanelId:null}}})},[]),Ae=(0,P.useCallback)(t=>{c(s=>({...s,floating:s.floating.map(o=>o.id===t?{...o,maximized:!o.maximized}:o)}))},[]),Be=(0,P.useCallback)((t,s)=>{let o=(e,a)=>{if(e.type==="leaf")return e;if(a===t.length)return{...e,sizes:s};let i=t[a],m=e.children.map((u,v)=>v===i?o(u,a+1):u);return{...e,children:m}};c(e=>({...e,gridRoot:o(e.gridRoot,0)}))},[]),He=(0,P.useCallback)((t,s)=>{c(o=>({...o,floating:o.floating.map(e=>e.id===t?{...e,...s}:e)}))},[]),$e=(0,P.useCallback)(()=>JSON.stringify({gridRoot:z.gridRoot,floating:z.floating,minimized:z.minimized,panels:z.panels}),[z]),Ge=(0,P.useCallback)(t=>{try{let s=JSON.parse(t);if(s.gridRoot&&s.floating&&s.minimized&&s.panels){let o=Object.keys(s.panels)[0]||null;c(e=>({...e,gridRoot:s.gridRoot,floating:s.floating,minimized:s.minimized,panels:s.panels,draggedPanelId:null,activePanelId:o}))}}catch(s){console.error("Failed to parse layout configuration:",s)}},[]),Le=(0,P.useCallback)(t=>{c(s=>s.activePanelId===t?s:{...s,activePanelId:t})},[]),he=(0,P.useCallback)(t=>{c(s=>s.dir===t?s:{...s,dir:t,isRtl:t==="rtl"})},[]);(0,P.useEffect)(()=>{h&&c(t=>t.dir===h?t:{...t,dir:h,isRtl:h==="rtl"})},[h]);let Qe=(0,P.useMemo)(()=>({openPanel:E,closePanel:G,minimizePanel:ie,restorePanel:re,floatPanel:be,dockPanel:ve,maximizePanel:Ae,updateSplitSizes:Be,updateFloatingPosition:He,bringToFront:H,saveLayout:$e,loadLayout:Ge,publish:g,subscribe:y,setDraggedPanelId:le,dockPanelToGroup:q,movePanelOrder:Se,closeLeafGroup:Me,registerCloseGuard:Y,unregisterCloseGuard:_,setPanelDirty:ce,updatePanelTitle:me,requestClosePanel:K,dockPanelToWorkspaceEdge:Pe,setActivePanel:Le,setDirection:he}),[E,G,ie,re,be,ve,Ae,Be,He,H,$e,Ge,g,y,le,q,Se,Me,Y,_,ce,me,K,Pe,Le,he]),Ve=t=>{let s=t.defaultMessage||t.id;return t.values&&Object.entries(t.values).forEach(([o,e])=>{s=s.replace(`{${o}}`,String(e))}),s},_e=(0,P.useMemo)(()=>({modalClass:T,modalBodyClass:M,sidePanelClass:A,sidePanelBodyClass:F,windowClass:x,windowBodyClass:R}),[T,M,A,F,x,R]);return(0,Fe.jsx)(ft.Provider,{value:_e,children:(0,Fe.jsx)(ct.Provider,{value:z,children:(0,Fe.jsx)(ut.Provider,{value:Qe,children:(0,Fe.jsx)(gt.Provider,{value:l||Ve,children:(0,Fe.jsx)(pt.Provider,{value:L,children:n})})})})})},fe=()=>{let n=(0,P.useContext)(ct);if(!n)throw new Error("useWindowManagerState must be used within WindowManagerProvider");return n},Re=()=>{let n=(0,P.useContext)(ut);if(!n)throw new Error("useWindowManagerActions must be used within WindowManagerProvider");return n},de=()=>(0,P.useContext)(gt)||(l=>{let r=l.defaultMessage||l.id;return l.values&&Object.entries(l.values).forEach(([h,T])=>{r=r.replace(`{${h}}`,String(T))}),r}),X=(n,l)=>n?typeof n=="string"?n:l(n):"",ht=()=>{let{publish:n,subscribe:l}=Re();return{publish:n,subscribe:l}},ue=()=>(0,P.useContext)(pt);function yt(n){if(!n)return typeof document<"u"?document.documentElement.dir?.toLowerCase()==="rtl"||document.body.dir?.toLowerCase()==="rtl":!1;let l=n.closest("[dir]");return l?l.getAttribute("dir")?.toLowerCase()==="rtl":document.documentElement.dir?.toLowerCase()==="rtl"||document.body.dir?.toLowerCase()==="rtl"}var Ct=require("replace-react-contexify"),kn=require("replace-react-contexify/styles.css");var Xe=require("react"),jt={requestClose:()=>{console.warn("FormContainerContract: requestClose called but no container is present")},setDirty:()=>{},onCloseRequested:()=>()=>{},setTitle:()=>{},setIcon:()=>{},containerType:"standalone",instanceId:"standalone",onClose:()=>()=>{},onMinimize:()=>()=>{},onRestore:()=>()=>{},onResize:()=>()=>{}},qe=(0,Xe.createContext)(jt),ke=qe.Provider,Ke=()=>(0,Xe.useContext)(qe);var j=require("react"),it=require("react/jsx-runtime"),Jt=0,ot=()=>`panel-${++Jt}-${Date.now()}`,Ue=new Map,bt={leftPanel:null,rightPanel:null,modals:[]},vt=(0,j.createContext)(null),Pt=(0,j.createContext)(null),wt=({children:n})=>{let[l,r]=(0,j.useState)(bt),h=(0,j.useRef)(l);h.current=l;let T=(0,j.useCallback)((p,y)=>{Ue.set(p,y)},[]),M=(0,j.useCallback)(p=>{Ue.delete(p)},[]),A=(0,j.useCallback)(async(p,y,g={})=>{let k=h.current.leftPanel;if(k){let f=Ue.get(k.id);if(f&&!await f())return null}let H=ot(),$={id:H,Component:p,props:y,containerType:"left-panel",options:g};return r(f=>({...f,leftPanel:$})),H},[]),F=(0,j.useCallback)(async(p,y,g={})=>{let k=h.current.rightPanel;if(k){let f=Ue.get(k.id);if(f&&!await f())return null}let H=ot(),$={id:H,Component:p,props:y,containerType:"right-panel",options:g};return r(f=>({...f,rightPanel:$})),H},[]),x=(0,j.useCallback)((p,y,g={})=>{let k=ot(),H=y.title,$={...g,title:g.title||H||"Confirmation"},f={id:k,Component:p,props:y,containerType:"modal",options:$};return r(S=>({...S,modals:[...S.modals,f]})),k},[]),R=(0,j.useCallback)(p=>{r(y=>({leftPanel:y.leftPanel?.id===p?null:y.leftPanel,rightPanel:y.rightPanel?.id===p?null:y.rightPanel,modals:y.modals.filter(g=>g.id!==p)}))},[]),z=(0,j.useCallback)(()=>{r(bt)},[]),c=(0,j.useCallback)(()=>{r(p=>({...p,modals:[]}))},[]),w=(0,j.useCallback)(p=>l.leftPanel?.id===p?l.leftPanel:l.rightPanel?.id===p?l.rightPanel:l.modals.find(y=>y.id===p),[l]),b=(0,j.useCallback)((p,y)=>{r(g=>({leftPanel:g.leftPanel?.id===p?{...g.leftPanel,...y}:g.leftPanel,rightPanel:g.rightPanel?.id===p?{...g.rightPanel,...y}:g.rightPanel,modals:g.modals.map(k=>k.id===p?{...k,...y}:k)}))},[]),L=(0,j.useCallback)((p,y,g)=>{b(p,{dirty:y,dirtyOptions:g})},[b]),W=(0,j.useMemo)(()=>({openLeftPanel:A,openRightPanel:F,openModal:x,close:R,closeAll:z,closeAllModals:c,getInstance:w,updateInstance:b,setDirty:L,registerCloseHandler:T,unregisterCloseHandler:M}),[A,F,x,R,z,c,w,b,L,T,M]);return(0,it.jsx)(vt.Provider,{value:l,children:(0,it.jsx)(Pt.Provider,{value:W,children:n})})},xe=()=>{let n=(0,j.useContext)(vt);if(!n)throw new Error("usePanelState must be used within PanelProvider");return n},Ie=()=>{let n=(0,j.useContext)(Pt);if(!n)throw new Error("usePanelActions must be used within PanelProvider");return n};var We=require("react");var ge=require("react/jsx-runtime"),Zt=({title:n,message:l,alert:r,alertType:h="info",useYesNoTitles:T=!1,onOK:M,onCancel:A})=>{let{requestClose:F,setIcon:x,setTitle:R}=Ke(),z=de(),c=ue(),w=(0,We.useRef)(null);(0,We.useEffect)(()=>{if(n){let g=typeof n=="string"?n:z(n);R(g)}x&&x((0,ge.jsx)("span",{children:"\u2753"}))},[n,R,x,z]),(0,We.useEffect)(()=>{w.current?.focus()},[]);let b=typeof l=="string"?l:z(l),L=z(T?c.no:c.cancel),W=z(T?c.yes:c.ok),p=g=>{g.preventDefault(),M?.(),F()},y=()=>{A?.(),F()};return(0,ge.jsxs)("form",{onSubmit:p,className:"confirmation-form-body",children:[r&&(0,ge.jsxs)("div",{className:`confirmation-alert confirmation-alert-${h}`,children:[(0,ge.jsx)("span",{children:"\u2139\uFE0F"}),(0,ge.jsx)("span",{children:r})]}),(0,ge.jsx)("div",{style:{fontSize:"0.9rem",color:"inherit",lineHeight:1.5},children:b}),(0,ge.jsx)("hr",{style:{marginTop:"0.5rem",marginBottom:"0.5rem",opacity:.1}}),(0,ge.jsxs)("div",{className:"confirmation-actions",children:[(0,ge.jsx)("button",{type:"button",className:"dw-btn dw-btn-sm dw-btn-outline",onClick:y,children:L}),(0,ge.jsx)("button",{type:"submit",className:"dw-btn dw-btn-sm dw-btn-primary",ref:w,children:W})]})]})},Te=Zt;var d=require("react/jsx-runtime"),De=new Map,Je="preserved-dom-container",at=(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{display:"block"},children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1"}),(0,d.jsx)("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1"}),(0,d.jsx)("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1"})]}),xt=n=>{let l=De.get(n);return l||(l=document.createElement("div"),l.style.width="100%",l.style.height="100%",De.set(n,l)),l},Qt=(n,l)=>{let r=te.get(l);if(!r)return(0,d.jsxs)("div",{className:"dw-unregistered-panel",style:{border:"2px dashed #dc3545"},children:[(0,d.jsx)("h6",{style:{fontWeight:700,marginBottom:"0.25rem"},children:"\u26A0\uFE0F Component Unregistered"}),(0,d.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--text-secondary, #94a3b8)"},children:["Key: ",l]})]});let h=r.Component;return(0,d.jsx)(h,{panelId:n})},Mt=new Map,Oe=new Map,je=n=>{let l=Oe.get(n);return l||(l={onClose:new Set,onMinimize:new Set,onRestore:new Set,onResize:new Set},Oe.set(n,l)),l},Rt=({panelId:n})=>{let l=(0,O.useRef)(null);return(0,O.useEffect)(()=>{let r=l.current;if(!r)return;let h=xt(n);r.appendChild(h);let T=new ResizeObserver(M=>{for(let A of M){let{width:F,height:x}=A.contentRect;if(F>0&&x>0){Mt.set(n,{width:F,height:x});let R=Oe.get(n);R&&R.onResize.forEach(z=>z(F,x))}}});return T.observe(r),()=>{T.disconnect();let M=document.getElementById(Je);M||(M=document.createElement("div"),M.id=Je,M.style.display="none",document.body.appendChild(M)),M.appendChild(h)}},[n]),(0,d.jsx)("div",{ref:l,style:{width:"100%",height:"100%"}})},Vt=({panelId:n})=>{let l=fe(),r=de(),h=(0,O.useRef)(null),T=l.panels[n],M=T?te.get(T.component):null,A=M?.defaultOptions?.disableLivePreview||!1,F=Mt.get(n)||{width:800,height:500},x=F.width,R=F.height,w=Math.min(220/x,140/R);if((0,O.useEffect)(()=>{if(A)return;let b=h.current;if(!b)return;let L=De.get(n);if(L)return b.appendChild(L),()=>{let W=document.getElementById(Je);W||(W=document.createElement("div"),W.id=Je,W.style.display="none",document.body.appendChild(W)),W.appendChild(L)}},[n,A]),A){let b=x*w,L=R*w,W=T?.title||M?.defaultOptions?.title||"Panel",p=X(W,r),y=(Array.from(p)[0]||"P").toUpperCase();return(0,d.jsx)("div",{className:"taskbar-item-preview-frame",style:{width:`${b}px`,height:`${L}px`,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(108, 117, 125, 0.15)",border:"1px dashed var(--taskbar-item-border, rgba(255, 255, 255, 0.15))"},children:(0,d.jsx)("div",{style:{fontSize:"2rem",fontWeight:600,color:"var(--panel-title-color, var(--panel-text, rgba(255, 255, 255, 0.85)))",userSelect:"none"},children:y})})}return(0,d.jsx)("div",{className:"taskbar-item-preview-frame",style:{width:`${x*w}px`,height:`${R*w}px`},children:(0,d.jsx)("div",{ref:h,className:"taskbar-item-preview-host",style:{width:`${x}px`,height:`${R}px`,transform:`scale(${w})`,transformOrigin:"top left",position:"absolute",top:0,left:0,"--preview-scale":w}})})},_t=({panelId:n,children:l})=>{let r=fe(),{requestClosePanel:h,setPanelDirty:T,registerCloseGuard:M,unregisterCloseGuard:A,updatePanelTitle:F}=Re(),x=r.minimized.some(c=>c.id===n),R=(0,O.useRef)(x);(0,O.useEffect)(()=>{let c=Oe.get(n);c&&(x&&!R.current?c.onMinimize.forEach(w=>w()):!x&&R.current&&c.onRestore.forEach(w=>w()),R.current=x)},[x,n]),(0,O.useEffect)(()=>()=>{let c=Oe.get(n);c&&(c.onClose.forEach(w=>w()),Oe.delete(n))},[n]);let z=O.default.useMemo(()=>({requestClose:c=>h(n,c),setDirty:c=>T(n,c),onCloseRequested:c=>(M(n,c),()=>A(n)),setTitle:c=>F(n,c),instanceId:n,onClose:c=>{let w=je(n);return w.onClose.add(c),()=>w.onClose.delete(c)},onMinimize:c=>{let w=je(n);return w.onMinimize.add(c),()=>w.onMinimize.delete(c)},onRestore:c=>{let w=je(n);return w.onRestore.add(c),()=>w.onRestore.delete(c)},onResize:c=>{let w=je(n);return w.onResize.add(c),()=>w.onResize.delete(c)}}),[n,h,T,M,A,F]);return(0,d.jsx)(ke,{value:z,children:l})},kt=({node:n,path:l,onTabRightClick:r,activeDropZone:h,onHoverDropZone:T,onTabDragStart:M,hoveredTab:A,onTabHover:F,defaultPanelIcon:x,onRequestClosePanel:R})=>{let{updateSplitSizes:z}=Re();if(n.type==="leaf")return(0,d.jsx)(en,{leaf:n,onTabRightClick:r,activeDropZone:h,onHoverDropZone:T,onTabDragStart:M,hoveredTab:A,onTabHover:F,defaultPanelIcon:x,onRequestClosePanel:R});let c=n.orientation==="horizontal",w=(b,L)=>{L.preventDefault();let W=c?L.clientX:L.clientY,p=[...n.sizes],y=L.currentTarget;y.classList.add("active"),document.body.classList.add("resizing-active",c?"resizing-row-active":"resizing-col-active");let g=L.currentTarget.parentElement,k=g?c?g.clientWidth:g.clientHeight:c?1e3:800,H=f=>{let G=((c?f.clientX:f.clientY)-W)/k,Y=[...p];Y[b]+=G,Y[b+1]-=G,Y[b]>.1&&Y[b+1]>.1&&z(l,Y)},$=()=>{y.classList.remove("active"),document.body.classList.remove("resizing-active","resizing-row-active","resizing-col-active"),window.removeEventListener("mousemove",H),window.removeEventListener("mouseup",$)};window.addEventListener("mousemove",H),window.addEventListener("mouseup",$)};return(0,d.jsx)("div",{style:{display:"flex",flexDirection:c?"row":"column",width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:n.children.map((b,L)=>{let W=n.sizes[L]*100;return(0,d.jsxs)(O.default.Fragment,{children:[(0,d.jsx)("div",{style:{flexGrow:n.sizes[L],flexBasis:`${W}%`,overflow:"hidden",position:"relative"},children:(0,d.jsx)(kt,{node:b,path:[...l,L],onTabRightClick:r,activeDropZone:h,onHoverDropZone:T,onTabDragStart:M,hoveredTab:A,onTabHover:F,defaultPanelIcon:x,onRequestClosePanel:R})}),L<n.children.length-1&&(0,d.jsx)("div",{onMouseDown:p=>w(L,p),style:{cursor:c?"col-resize":"row-resize",width:c?"1px":"100%",height:c?"100%":"1px",zIndex:20},className:"resizer-bar"})]},L)})})},en=({leaf:n,onTabRightClick:l,activeDropZone:r,onHoverDropZone:h,onTabDragStart:T,hoveredTab:M,onTabHover:A,defaultPanelIcon:F,onRequestClosePanel:x})=>{let R=fe(),{openPanel:z,closeLeafGroup:c,setActivePanel:w}=Re(),b=de(),L=ue(),{windowClass:W,windowBodyClass:p}=Ce(),y=g=>{z(g,R.panels[g].component),w(g)};return(0,d.jsxs)("div",{"data-active-panel-id":n.activePanelId||"",className:`workspace-panel ${W??""}`,style:{overflow:"hidden",position:"relative"},children:[(0,d.jsxs)("div",{className:"workspace-tab-bar",style:{minHeight:"38px"},children:[(0,d.jsx)("div",{className:"tab-headers-container",style:{scrollbarWidth:"none"},onMouseMove:g=>{R.draggedPanelId&&g.target===g.currentTarget&&A(n.id,"EMPTY",n.panels.length,"right")},onMouseLeave:g=>{R.draggedPanelId&&g.target===g.currentTarget&&A(n.id,"",-1,null)},children:n.panels.map((g,k)=>{let H=R.panels[g];if(!H)return null;let $=n.activePanelId===g,f=R.activePanelId===g,E=te.get(H.component)?.defaultOptions,G=M&&M.leafId===n.id&&M.panelId===g,Y=k===n.panels.length-1,_=M&&M.leafId===n.id&&M.panelId==="EMPTY"&&Y,ce=G?M.side==="left"?"drag-hover-left":"drag-hover-right":_?"drag-hover-right":"";return(0,d.jsxs)("div",{onClick:()=>y(g),onMouseDown:K=>{E?.canDrag!==!1&&T(g,K)},onContextMenu:K=>l(g,K),onMouseMove:K=>{if(R.draggedPanelId){let ie=K.currentTarget.getBoundingClientRect(),be=K.clientX-ie.left<ie.width/2?"left":"right";A(n.id,g,k,be)}},onMouseLeave:()=>{R.draggedPanelId&&A(n.id,"",-1,null)},className:`workspace-tab ${$?f?"active workspace-tab-active-focused":"active workspace-tab-active-unfocused":"workspace-tab-inactive"} ${ce}`,style:{cursor:E?.canDrag===!1?"default":"pointer"},children:[(0,d.jsxs)("span",{className:"text-truncate",style:{maxWidth:"120px",display:"flex",alignItems:"center"},children:[(0,d.jsx)("span",{className:"workspace-tab-icon",children:E?.icon||F||at}),(0,d.jsxs)("span",{children:[X(H.title,b),H.dirty?" *":""]})]}),E?.renderHeaderActions&&(0,d.jsx)("span",{className:"tab-header-actions",onClick:K=>K.stopPropagation(),onMouseDown:K=>K.stopPropagation(),children:E.renderHeaderActions(g)}),E?.canClose!==!1&&(0,d.jsx)("span",{onClick:K=>{K.stopPropagation(),x(g)},title:X(L.closeTab,b),className:"close-tab-x",style:{width:"18px",height:"18px",...E?.renderHeaderActions?{}:{marginInlineStart:"auto"}},children:(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,d.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]},g)})}),n.panels.length===0&&n.keepOnEmpty&&n.canClose!==!1&&(0,d.jsx)("span",{onClick:()=>c(n.id),className:"close-tab-x header-close-empty-group",style:{width:"18px",height:"18px",cursor:"pointer"},title:X(L.closeEmptyGroup,b),children:(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,d.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,d.jsxs)("div",{className:`dw-panel-body ${p??""}`,style:{position:"relative",overflow:"hidden"},children:[n.activePanelId&&R.panels[n.activePanelId]?(0,d.jsx)(Rt,{panelId:n.activePanelId},n.activePanelId):(0,d.jsx)("div",{className:"empty-leaf-placeholder",children:(0,d.jsx)("span",{children:"Empty Workspace Section"})}),R.draggedPanelId!==null&&(0,d.jsx)("div",{className:"dock-drop-zone-overlay",children:(0,d.jsxs)("div",{className:"dock-target-cross",children:[(0,d.jsx)("div",{onMouseEnter:()=>h(n.id,"top"),onMouseLeave:()=>h(n.id,null),className:"dock-target-box dock-target-top",children:"\u25B2"}),(0,d.jsx)("div",{onMouseEnter:()=>h(n.id,"bottom"),onMouseLeave:()=>h(n.id,null),className:"dock-target-box dock-target-bottom",children:"\u25BC"}),(0,d.jsx)("div",{onMouseEnter:()=>h(n.id,"left"),onMouseLeave:()=>h(n.id,null),className:"dock-target-box dock-target-left",children:"\u25C0"}),(0,d.jsx)("div",{onMouseEnter:()=>h(n.id,"right"),onMouseLeave:()=>h(n.id,null),className:"dock-target-box dock-target-right",children:"\u25B6"}),(0,d.jsx)("div",{onMouseEnter:()=>h(n.id,"center"),onMouseLeave:()=>h(n.id,null),className:"dock-target-box dock-target-center",children:"\u25A3"})]})}),R.draggedPanelId!==null&&r!==null&&r.leafId===n.id&&(0,d.jsx)("div",{className:"dock-preview-highlight",style:{left:r.position==="right"?"50%":"0",top:r.position==="bottom"?"50%":"0",width:r.position==="left"||r.position==="right"?"50%":"100%",height:r.position==="top"||r.position==="bottom"?"50%":"100%"}})]})]})},tn=({skin:n="vscode",defaultPanelIcon:l})=>{let r=fe(),{restorePanel:h,minimizePanel:T,requestClosePanel:M,maximizePanel:A,updateFloatingPosition:F,bringToFront:x,floatPanel:R,setDraggedPanelId:z,dockPanelToGroup:c,movePanelOrder:w,dockPanelToWorkspaceEdge:b,setActivePanel:L,setDirection:W}=Re(),{openModal:p}=Ie(),y=de(),g=ue(),k=O.default.useCallback(e=>{let a=r.panels[e];M(e,{onConfirm:i=>new Promise(m=>{let u=i||a?.dirtyOptions,v=a?X(a.title,y):"Panel";p(Te,{title:u?.title||g.unsavedChangesTitle,message:u?.message||{id:g.unsavedChangesMessage.id,defaultMessage:g.unsavedChangesMessage.defaultMessage,values:{title:v}},alert:u?.alert,alertType:u?.alertType||"danger",useYesNoTitles:!0,onOK:()=>m(!0),onCancel:()=>m(!1)},{size:"small"})})})},[M,r.panels,y,p,g]),{windowClass:H,windowBodyClass:$}=Ce(),f=(0,O.useRef)(null),S=(0,O.useRef)(null),[E,G]=(0,O.useState)(null),Y=(0,O.useRef)(null),[_,ce]=(0,O.useState)(!1);(0,O.useEffect)(()=>()=>{Y.current&&clearTimeout(Y.current)},[]),(0,O.useEffect)(()=>{E&&(r.minimized.some(a=>a.id===E.id)||G(null))},[r.minimized,E]);let[me,K]=(0,O.useState)(null),ie=(0,O.useRef)(null),[re,be]=(0,O.useState)({x:0,y:0}),[ve,J]=(0,O.useState)(null),le=(0,O.useRef)(null),q=e=>{J(e),le.current=e},[Pe,Se]=(0,O.useState)(null),Me=(0,O.useRef)(null),Ae=(e,a,i,m)=>{let u=m?{leafId:e,panelId:a,index:i,side:m}:null;Se(u),Me.current=u},Be=(e,a)=>{let i=a?{leafId:e,position:a}:null;K(i),ie.current=i},He=(e,a)=>{if(a.button!==0)return;let i=a.clientX,m=a.clientY,u=!1,v=B=>{let I=B.clientX-i,N=B.clientY-m;!u&&(Math.abs(I)>5||Math.abs(N)>5)&&(u=!0,z(e)),u&&be({x:B.clientX,y:B.clientY})},C=B=>{if(window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",D),u){let I=ie.current,N=Me.current,U=le.current;if(U)b(e,U);else if(N){let Z=N.index;N.side==="right"&&(Z+=1),w(e,N.leafId,Z)}else I?c(e,I.leafId,I.position):R(e,{x:B.clientX-150,y:B.clientY-15,width:450,height:350});z(null),K(null),ie.current=null,Se(null),Me.current=null,q(null)}},D=B=>{C(B)};window.addEventListener("mousemove",v),window.addEventListener("mouseup",D)},$e=(e,a)=>{a.preventDefault();let i=r.panels[e];if(!i)return;let u=te.get(i.component)?.defaultOptions,v=[];u?.canDrag!==!1&&v.push({label:X(g.floatWindow,y),action:()=>R(e)}),u?.canMinimize!==!1&&v.push({label:X(g.minimizePanel,y),action:()=>T(e)}),v.length>0&&u?.canClose!==!1&&v.push({separator:!0}),u?.canClose!==!1&&v.push({label:X(g.closeTab,y),action:()=>k(e)}),v.length!==0&&S.current?.show({event:a,contextMenu:{items:v}})},Ge=(e,a)=>{a.preventDefault(),G(null),S.current?.show({event:a,contextMenu:{items:[{label:X(g.restorePanel,y),action:()=>h(e)},{label:X(g.maximizePanel,y),action:()=>A(e)},{separator:!0},{label:X(g.closePanel,y),action:()=>k(e)}]}})};(0,O.useEffect)(()=>{let e=Object.keys(r.panels);for(let a of Array.from(De.keys()))e.includes(a)||De.delete(a)},[r.panels]),(0,O.useEffect)(()=>{let e=()=>{r.draggedPanelId!==null&&(z(null),K(null),Se(null))};return window.addEventListener("blur",e),()=>{window.removeEventListener("blur",e)}},[r.draggedPanelId]);let Le=(0,O.useRef)(null),[he,Qe]=(0,O.useState)({width:1024,height:768});(0,O.useEffect)(()=>{let e=Le.current;if(!e)return;let a=new ResizeObserver(i=>{if(!i||i.length===0)return;let m=i[0].contentRect;Qe({width:Math.max(100,m.width),height:Math.max(100,m.height)})});return a.observe(e),()=>{a.disconnect()}},[]),(0,O.useEffect)(()=>{let e=Le.current;if(!e)return;let a=()=>{let u=yt(e);W(u?"rtl":"ltr")};a();let i=new MutationObserver(a);i.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),i.observe(document.body,{attributes:!0,attributeFilter:["dir"]});let m=e.closest("[dir]");return m&&m!==document.documentElement&&m!==document.body&&i.observe(m,{attributes:!0,attributeFilter:["dir"]}),()=>{i.disconnect()}},[W]),(0,O.useEffect)(()=>{let e=he.width,a=he.height;r.floating.forEach(i=>{let m=typeof i.width=="string"?parseFloat(i.width):i.width,u=typeof i.height=="string"?parseFloat(i.height):i.height,v=typeof i.x=="string"?parseFloat(i.x):i.x,C=typeof i.y=="string"?parseFloat(i.y):i.y,D=m,B=u,I=v,N=C,U=!1;D>e&&(D=Math.max(200,e-20),U=!0),B>a&&(B=Math.max(150,a-40),U=!0);let Z=10;if(i.stickyRight)I=e-D-Z,U=!0;else{let ee=e-100;I>ee&&(I=Math.max(0,ee),U=!0)}if(i.stickyBottom)N=a-B-Z,U=!0;else{let ee=a-40;N>ee&&(N=Math.max(0,ee),U=!0)}U&&F(i.id,{x:I,y:N,width:D,height:B})})},[he,r.floating,F]),(0,O.useEffect)(()=>{let e=a=>{if(a.button!==0)return;let i=a.target;if(!i)return;let m=i.closest(".floating-window");if(m){let v=m.getAttribute("data-window-id");v&&(L(v),x(v));return}let u=i.closest(".workspace-panel");if(u){let v=u.getAttribute("data-active-panel-id");v&&L(v)}};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[x,L]);let Ve=(e,a)=>{let i=r.floating.find(Z=>Z.id===e);if(!i||i.maximized)return;x(e);let m=a.clientX,u=a.clientY,C=a.currentTarget.closest(".floating-window"),D=C?C.offsetLeft:0,B=C?C.offsetTop:0,I=!1,N=Z=>{let ee=Z.clientX-m,pe=Z.clientY-u;if(!I&&(Math.abs(ee)>5||Math.abs(pe)>5)&&(I=!0,z(e)),I){let ye=D+ee,we=B+pe;F(e,{x:ye,y:we,stickyRight:!1,stickyBottom:!1})}},U=()=>{if(I){let Z=ie.current,ee=Me.current,pe=le.current;if(pe)b(e,pe);else if(ee){let ye=ee.index;ee.side==="right"&&(ye+=1),w(e,ee.leafId,ye)}else Z&&c(e,Z.leafId,Z.position);z(null),K(null),ie.current=null,Se(null),Me.current=null,q(null)}window.removeEventListener("mousemove",N),window.removeEventListener("mouseup",U)};window.addEventListener("mousemove",N),window.addEventListener("mouseup",U)},_e=(e,a)=>{a.stopPropagation();let i=r.floating.find(U=>U.id===e);if(!i||i.maximized)return;x(e);let m=a.clientX,u=a.clientY,C=a.currentTarget.closest(".floating-window"),D=C?C.offsetWidth:400,B=C?C.offsetHeight:300,I=U=>{let Z=U.clientX-m,ee=U.clientY-u,pe=Math.max(200,D+Z),ye=Math.max(150,B+ee),we=i.x,ze=i.y,Ee=he.width,et=he.height,Nt=typeof i.x=="string"?parseFloat(i.x):i.x,Ft=typeof i.y=="string"?parseFloat(i.y):i.y,Ot=typeof i.width=="string"?parseFloat(i.width):i.width,Wt=typeof i.height=="string"?parseFloat(i.height):i.height,rt=Math.abs(Nt+Ot-Ee)<4,lt=Math.abs(Ft+Wt-et)<4;rt&&(we=Ee-pe,we<0&&(we=0,pe=Ee)),lt&&(ze=et-ye,ze<0&&(ze=0,ye=et)),F(e,{x:we,y:ze,width:pe,height:ye,stickyRight:rt,stickyBottom:lt})},N=()=>{window.removeEventListener("mousemove",I),window.removeEventListener("mouseup",N)};window.addEventListener("mousemove",I),window.addEventListener("mouseup",N)},t=e=>{if(f.current){let a=e==="left"?-150:150;f.current.scrollBy({left:a,behavior:"smooth"})}},[s,o]=(0,O.useState)("dark");return(0,O.useEffect)(()=>{let e=()=>{let i=document.documentElement.getAttribute("data-bs-theme")==="light"?"light":"dark";o(i)};e();let a=new MutationObserver(e);return a.observe(document.documentElement,{attributes:!0,attributeFilter:["data-bs-theme"]}),()=>a.disconnect()},[]),(0,d.jsxs)("div",{"data-workspace-skin":n,"data-bs-theme":s,style:{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"hidden",userSelect:"none"},dir:r.dir,children:[(0,d.jsxs)("div",{ref:Le,className:r.draggedPanelId?"dragging-active":void 0,style:{flexGrow:1,width:"100%",position:"relative",overflow:"hidden"},children:[r.draggedPanelId!==null&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"workspace-edge-trigger edge-trigger-left",onMouseEnter:()=>q("left"),onMouseLeave:()=>q(null)}),(0,d.jsx)("div",{className:"workspace-edge-trigger edge-trigger-right",onMouseEnter:()=>q("right"),onMouseLeave:()=>q(null)}),(0,d.jsx)("div",{className:"workspace-edge-trigger edge-trigger-top",onMouseEnter:()=>q("top"),onMouseLeave:()=>q(null)}),(0,d.jsx)("div",{className:"workspace-edge-trigger edge-trigger-bottom",onMouseEnter:()=>q("bottom"),onMouseLeave:()=>q(null)})]}),r.draggedPanelId!==null&&ve!==null&&(0,d.jsx)("div",{className:`workspace-edge-preview edge-preview-${ve}`}),(0,d.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:r.gridRoot?(0,d.jsx)(kt,{node:r.gridRoot,path:[],onTabRightClick:$e,activeDropZone:me,onHoverDropZone:Be,onTabDragStart:He,hoveredTab:Pe,onTabHover:Ae,defaultPanelIcon:l,onRequestClosePanel:k}):(0,d.jsx)("div",{className:"empty-workspace-grid",children:"Grid Empty"})}),r.floating.map(e=>{let a=r.panels[e.id];if(!a)return null;let i=e.maximized,m=r.draggedPanelId===e.id,u=r.activePanelId===e.id,C=te.get(a.component)?.defaultOptions;return(0,d.jsxs)("div",{"data-window-id":e.id,dir:r.dir,onMouseDownCapture:()=>{L(e.id),x(e.id)},className:`floating-window ${i?"maximized":""} ${u?"v2-window-focused":""} ${H??""}`,style:{position:"absolute",left:i?0:typeof e.x=="number"?`${e.x}px`:e.x,top:i?0:typeof e.y=="number"?`${e.y}px`:e.y,width:i?"100%":typeof e.width=="number"?`${e.width}px`:e.width,height:i?"100%":typeof e.height=="number"?`${e.height}px`:e.height,zIndex:e.z,pointerEvents:m?"none":"auto"},children:[(0,d.jsxs)("div",{onDoubleClick:()=>A(e.id),onMouseDown:D=>{C?.canDrag!==!1&&Ve(e.id,D)},className:"floating-window-titlebar cursor-move",style:{cursor:i||C?.canDrag===!1?"default":"move"},children:[(0,d.jsxs)("span",{className:"floating-window-title",children:[(0,d.jsx)("span",{className:"window-title-icon",children:C?.icon||l||at}),(0,d.jsxs)("span",{children:[X(a.title,y),a.dirty?" *":""]})]}),(0,d.jsxs)("div",{className:"fw-titlebar-actions",style:{gap:"var(--header-button-gap, 4px)"},onMouseDown:D=>D.stopPropagation(),children:[C?.renderHeaderActions&&(0,d.jsx)("div",{className:"window-header-actions",children:C.renderHeaderActions(e.id)}),C?.canDrag!==!1&&(0,d.jsx)("button",{type:"button",title:X(g.windowAnchoringOptions,y),onClick:D=>{let B=!!e.stickyRight,I=!!e.stickyBottom;S.current?.show({event:D,contextMenu:{items:[{label:X(g.anchorToRightEdge,y),checkbox:{active:!0,enabled:!0,value:B},action:()=>{let N=he.width,U=typeof e.width=="string"?parseFloat(e.width):e.width;B?F(e.id,{stickyRight:!1}):F(e.id,{x:N-U-10,stickyRight:!0})}},{label:X(g.anchorToBottomEdge,y),checkbox:{active:!0,enabled:!0,value:I},action:()=>{let N=he.height,U=typeof e.height=="string"?parseFloat(e.height):e.height;I?F(e.id,{stickyBottom:!1}):F(e.id,{y:N-U-10,stickyBottom:!0})}}]}})},className:"custom-tab-btn btn-anchor-tab",children:(0,d.jsxs)("svg",{className:`anchor-icon ${e.stickyRight&&e.stickyBottom?"anchor-sticky-both":e.stickyRight?"anchor-sticky-right":e.stickyBottom?"anchor-sticky-bottom":""}`,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,d.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,d.jsx)("path",{d:"M12 7v7m0 0a4 4 0 0 1-4-4M12 14a4 4 0 0 0 4-4M5 18h14"})]})}),(0,d.jsx)("button",{type:"button",title:i?X(g.restoreSize,y):X(g.maximize,y),onClick:()=>A(e.id),className:"custom-tab-btn btn-maximize-tab",children:(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,d.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"1.5"})})}),C?.canMinimize!==!1&&(0,d.jsx)("button",{type:"button",title:X(g.minimize,y),onClick:()=>T(e.id),className:"custom-tab-btn btn-minimize-tab",children:(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,d.jsx)("path",{d:"M5 12h14"})})}),C?.canClose!==!1&&(0,d.jsx)("button",{type:"button",title:X(g.close,y),onClick:()=>k(e.id),className:"custom-tab-btn btn-close-tab",children:(0,d.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,d.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]})]}),(0,d.jsx)("div",{className:$??void 0,style:{flexGrow:1,width:"100%",overflow:"hidden",position:"relative",isolation:"isolate"},children:(0,d.jsx)(Rt,{panelId:e.id},e.id)}),!i&&(0,d.jsx)("div",{onMouseDown:D=>_e(e.id,D),style:{position:"absolute",right:0,bottom:0,width:"14px",height:"14px",cursor:"se-resize",zIndex:30,background:"linear-gradient(135deg, transparent 50%, rgba(255,255,255,0.2) 50%)"}})]},e.id)})]}),r.minimized.length>0&&(0,d.jsxs)("div",{className:"taskbar-footer-container",style:{height:"48px",zIndex:100},children:[(0,d.jsx)("button",{type:"button",onClick:()=>t("left"),className:"taskbar-nav-btn",style:{display:r.minimized.length>4?"block":"none"},children:"\u25C0"}),(0,d.jsx)("div",{ref:f,className:"taskbar-items-container",style:{scrollSnapType:"x mandatory"},children:r.minimized.map(e=>{let i=te.get(e.component)?.defaultOptions?.icon||l||at;return(0,d.jsx)("div",{onClick:()=>{G(null),h(e.id)},onContextMenu:m=>Ge(e.id,m),onMouseEnter:m=>{if(_)return;Y.current&&clearTimeout(Y.current);let u=m.currentTarget.getBoundingClientRect();m.clientX>=u.left&&m.clientX<=u.right&&m.clientY>=u.top&&m.clientY<=u.bottom&&G({id:e.id,rect:u,title:e.title,component:e.component})},onMouseLeave:()=>{Y.current=setTimeout(()=>{G(null)},150)},className:"taskbar-glassmorphic-item",style:{backdropFilter:"blur(6px)",transition:"all 0.2s",cursor:"pointer",scrollSnapAlign:"start",width:"38px",height:"38px",position:"relative",padding:0},children:(0,d.jsx)("span",{className:"taskbar-item-icon",children:i})},e.id)})}),E&&(0,st.createPortal)((0,d.jsxs)("div",{className:"taskbar-item-tooltip",dir:r.dir,style:{position:"fixed",left:`${E.rect.left+E.rect.width/2}px`,top:`${E.rect.top-8}px`,transform:"translateX(-50%) translateY(-100%)",opacity:1,pointerEvents:"auto",zIndex:999999},onMouseEnter:()=>{Y.current&&clearTimeout(Y.current)},onMouseLeave:()=>{G(null)},onClick:()=>{h(E.id),G(null)},children:[(0,d.jsxs)("div",{className:"tooltip-header-row",children:[(0,d.jsxs)("span",{className:"tooltip-title-text text-truncate",style:{maxWidth:"140px"},children:[X(E.title,y),r.panels[E.id]?.dirty?" *":""]}),(0,d.jsx)("span",{onClick:e=>{e.stopPropagation(),k(E.id),G(null)},title:X(g.closePanel,y),className:"tooltip-close-x",children:(0,d.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,d.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,d.jsx)(Vt,{panelId:E.id})]}),document.body),(0,d.jsx)("button",{type:"button",onClick:()=>t("right"),className:"taskbar-nav-btn",style:{display:r.minimized.length>4?"block":"none"},children:"\u25B6"})]}),Object.keys(r.panels).map(e=>{let a=r.panels[e];if(!a)return null;let i=xt(e);return(0,st.createPortal)((0,d.jsx)(_t,{panelId:e,children:(0,d.jsx)("div",{style:{width:"100%",height:"100%"},children:Qt(e,a.component)})}),i,e)}),(0,d.jsx)(Ct.JsonContextMenu,{ref:S,id:"workspace-context-menu",theme:"dark",onShow:()=>ce(!0),onHide:()=>ce(!1)}),r.draggedPanelId!==null&&!r.floating.some(e=>e.id===r.draggedPanelId)&&(0,d.jsxs)("div",{className:"drag-ghost-tab",style:{left:re.x+12,top:re.y+12,zIndex:1e5},children:["\u{1F4C4} ",X(r.panels[r.draggedPanelId]?.title,y)||"Tab"]})]})},It=tn;var ae=require("react");var V=require("react/jsx-runtime"),nn=({modal:n,index:l,isTopmost:r})=>{let{close:h,openModal:T,updateInstance:M,setDirty:A}=Ie(),F=de(),x=ue(),{dir:R}=fe(),{modalClass:z,modalBodyClass:c}=Ce(),w=(0,ae.useRef)(null),{id:b,Component:L,props:W,options:p,dirty:y,dirtyOptions:g}=n,k=p,[H,$]=(0,ae.useState)(k.icon||null),f=(0,ae.useRef)(k);f.current=k;let S=X(k.title,F),E=(0,ae.useCallback)(async J=>{if(J?.force){h(b);return}if(w.current){if(!await w.current())return;h(b);return}if(y){T(Te,{title:g?.title||x.unsavedChangesTitle,message:g?.message||{id:x.unsavedChangesMessage.id,defaultMessage:x.unsavedChangesMessage.defaultMessage,values:{title:S}},alert:g?.alert,alertType:g?.alertType||"danger",useYesNoTitles:!0,onOK:()=>h(b)},{size:"small"});return}h(b)},[h,T,b,y,g,S,x]),G=(0,ae.useCallback)((J,le)=>A(b,J,le),[A,b]),Y=(0,ae.useCallback)(J=>M(b,{options:{...f.current,title:J}}),[M,b]),_=(0,ae.useCallback)(J=>$(J),[]),ce=(0,ae.useCallback)(J=>(w.current=J,()=>{w.current=null}),[]),me=(0,ae.useMemo)(()=>({requestClose:E,setDirty:G,setTitle:Y,setIcon:_,onCloseRequested:ce,containerType:"modal",instanceId:b}),[E,G,Y,_,ce,b]),K=y?`${S} *`:S,ie=k.size?`v2-modal-size-${k.size}`:"v2-modal-size-auto",re=k.closable!==!1;(0,ae.useEffect)(()=>{if(!r||!re)return;let J=le=>{le.key==="Escape"&&(le.stopPropagation(),E())};return document.addEventListener("keydown",J),()=>document.removeEventListener("keydown",J)},[E,re,r]);let ve=1e4+l*10;return(0,V.jsxs)("div",{className:"v2-modal-overlay",style:{zIndex:ve},dir:R,children:[(0,V.jsx)("div",{className:"v2-modal-curtain",onClick:re?()=>E():void 0}),(0,V.jsxs)("div",{className:`v2-modal-window ${ie} ${z??""}`,children:[(0,V.jsxs)("div",{className:"v2-modal-header",children:[H&&(0,V.jsx)("div",{className:"v2-modal-icon",children:H}),(0,V.jsx)("h4",{className:"v2-modal-title",children:K}),re&&(0,V.jsx)("button",{className:"v2-modal-close-button",onClick:()=>E(),title:F(x.closeTooltip),type:"button",children:(0,V.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,V.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,V.jsx)("div",{className:`v2-modal-body ${c??""}`,children:(0,V.jsx)(ke,{value:me,children:(0,V.jsx)(L,{...W,panelId:b})})})]})]})},on=()=>{let{modals:n}=xe();return n.length===0?null:(0,V.jsx)(V.Fragment,{children:n.map((l,r)=>(0,V.jsx)(nn,{modal:l,index:r,isTopmost:r===n.length-1},l.id))})},Tt=on;var ne=require("react");var Q=require("react/jsx-runtime"),Ze=({panel:n,position:l,defaultWidth:r})=>{let{close:h,openModal:T,updateInstance:M,setDirty:A,registerCloseHandler:F,unregisterCloseHandler:x}=Ie(),{modals:R}=xe(),z=de(),c=ue(),{dir:w}=fe(),{sidePanelClass:b,sidePanelBodyClass:L}=Ce(),W=(0,ne.useRef)(null),{id:p,Component:y,props:g,options:k,dirty:H,dirtyOptions:$}=n,f=k,[S,E]=(0,ne.useState)(f.icon||null),G=(0,ne.useRef)(f);G.current=f;let Y=X(f.title,z),_=(0,ne.useCallback)(async q=>{if(q?.force){h(p);return}if(W.current){if(!await W.current())return;h(p);return}if(H){T(Te,{title:$?.title||c.unsavedChangesTitle,message:$?.message||{id:c.unsavedChangesMessage.id,defaultMessage:c.unsavedChangesMessage.defaultMessage,values:{title:Y}},alert:$?.alert,alertType:$?.alertType||"danger",useYesNoTitles:!0,onOK:()=>h(p)},{size:"small"});return}h(p)},[h,T,p,H,$,Y,c]),ce=(0,ne.useCallback)(async()=>W.current?await W.current():!H,[H]);(0,ne.useEffect)(()=>(F(p,ce),()=>x(p)),[p,ce,F,x]);let me=(0,ne.useCallback)((q,Pe)=>A(p,q,Pe),[A,p]),K=(0,ne.useCallback)(q=>M(p,{options:{...G.current,title:q}}),[M,p]),ie=(0,ne.useCallback)(q=>E(q),[]),re=(0,ne.useCallback)(q=>(W.current=q,()=>{W.current=null}),[]),be=(0,ne.useMemo)(()=>({requestClose:_,setDirty:me,setTitle:K,setIcon:ie,onCloseRequested:re,containerType:l==="left"?"left-panel":"right-panel",instanceId:p}),[_,me,K,ie,re,l,p]),ve=H?`${Y} *`:Y;(0,ne.useEffect)(()=>{let q=Pe=>{Pe.key==="Escape"&&R.length===0&&_()};return document.addEventListener("keydown",q),()=>document.removeEventListener("keydown",q)},[_,R.length]);let J=f.width||r||400,le=typeof J=="number"?`${J}px`:J;return(0,Q.jsx)("div",{className:`v2-side-panel v2-side-panel-${l} v2-side-panel-visible ${b??""}`,style:{width:le},dir:w,children:(0,Q.jsxs)("div",{className:"v2-side-panel-window",children:[(0,Q.jsxs)("div",{className:"v2-side-panel-header",children:[S&&(0,Q.jsx)("div",{className:"v2-side-panel-icon",children:S}),(0,Q.jsx)("h4",{className:"v2-side-panel-title",children:ve}),(0,Q.jsx)("button",{className:"v2-side-panel-close-button",onClick:()=>_(),title:z(c.closeTooltip),type:"button",children:(0,Q.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,Q.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,Q.jsx)("div",{className:`v2-side-panel-body ${L??""}`,children:(0,Q.jsx)(ke,{value:be,children:(0,Q.jsx)(y,{...g,panelId:p})})})]})})},sn=({defaultWidth:n})=>{let{leftPanel:l,rightPanel:r}=xe();return(0,Q.jsxs)(Q.Fragment,{children:[l&&(0,Q.jsx)(Ze,{panel:l,position:"left",defaultWidth:n},l.id),r&&(0,Q.jsx)(Ze,{panel:r,position:"right",defaultWidth:n},r.id)]})},St=({defaultWidth:n})=>{let{leftPanel:l}=xe();return l?(0,Q.jsx)(Ze,{panel:l,position:"left",defaultWidth:n},l.id):null},zt=({defaultWidth:n})=>{let{rightPanel:l}=xe();return l?(0,Q.jsx)(Ze,{panel:l,position:"right",defaultWidth:n},l.id):null},Lt=sn;var oe=require("react");var se=require("react/jsx-runtime"),Et=(0,oe.forwardRef)(function({position:l="right",tabs:r,drawerWidth:h="220px",activeTabId:T,onActiveTabChange:M,children:A},F){let x=T!==void 0,R=de(),z=ue(),[c,w]=(0,oe.useState)(null),b=x?T:c,[L,W]=(0,oe.useState)(()=>{let f=new Set;for(let S of r)S.eagerMount&&f.add(S.id);return f});(0,oe.useEffect)(()=>{let f=r.filter(S=>S.eagerMount&&!L.has(S.id));f.length>0&&W(S=>{let E=new Set(S);for(let G of f)E.add(G.id);return E})},[r]);let p=(0,oe.useRef)(b??null);(0,oe.useEffect)(()=>{p.current=b??null},[b]);let y=(0,oe.useCallback)(f=>{x||w(f),M?.(f)},[x,M]);(0,oe.useImperativeHandle)(F,()=>({openTab:f=>y(f),closeDrawer:()=>y(null),getActiveTab:()=>p.current}),[y]);let g=f=>{y(b===f?null:f)},k=(0,oe.useCallback)(()=>y(null),[y]);(0,oe.useEffect)(()=>{b&&!L.has(b)&&W(f=>{let S=new Set(f);return S.add(b),S})},[b,L]),(0,oe.useEffect)(()=>{b===null&&W(f=>{let S=!1,E=new Set(f);for(let G of f){let Y=r.find(_=>_.id===G);Y&&!Y.eagerMount&&!Y.preserveState&&(E.delete(G),S=!0)}return S?E:f})},[b,r]);let H=(0,se.jsx)("div",{className:`sidebar-tabs-strip ${l}`,style:{width:"56px",height:"100%"},children:r.map(f=>{let S=b===f.id;return(0,se.jsx)("button",{type:"button",onClick:()=>g(f.id),className:`sidebar-tab-btn ${S?"active":""}`,title:f.label,"aria-pressed":S,children:f.icon},f.id)})}),$=(0,se.jsx)("div",{className:`sidebar-content-drawer h-100 ${l}`,style:{width:b?h:"0px",minWidth:b?h:"0px",overflow:"hidden",flexShrink:0},children:r.map(f=>{if(!L.has(f.id))return null;let E=b===f.id,G=()=>y(f.id);return(0,se.jsxs)("div",{style:{display:E?"flex":"none",flexDirection:"column",height:"100%",width:"100%"},children:[(0,se.jsxs)("div",{className:"sidebar-drawer-header",children:[(0,se.jsx)("span",{className:"sidebar-header-title",children:f.label}),(0,se.jsx)("button",{type:"button",onClick:k,className:"sidebar-close-btn",title:R(z.closePanelTooltip),"aria-label":R(z.closePanelTooltip),children:(0,se.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,se.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,se.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),(0,se.jsx)("div",{className:"sidebar-drawer-body",children:f.renderContent(f.id,k,G)})]},f.id)})});return(0,se.jsxs)(se.Fragment,{children:[l==="left"&&H,l==="left"&&$,A,l==="right"&&$,l==="right"&&H]})});0&&(module.exports={ConfirmationForm,FormContainerContext,FormContainerProvider,LeftPanelRenderer,ModalStackRenderer,PanelProvider,PanelRegistry,RightPanelRenderer,SidePanelRenderer,Sidebar,WindowManager,WindowManagerProvider,defaultPredefinedMessages,formatLabel,useFormContainer,useFormatMessage,usePanelActions,usePanelContext,usePanelState,usePredefinedMessages,useStyleClasses,useWindowManagerActions,useWindowManagerState});
|
|
1
|
+
var $t=Object.create;var Ze=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var Yt=Object.getOwnPropertyNames;var Xt=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var _t=(s,o)=>{for(var r in o)Ze(s,r,{get:o[r],enumerable:!0})},mt=(s,o,r,f)=>{if(o&&typeof o=="object"||typeof o=="function")for(let S of Yt(o))!qt.call(s,S)&&S!==r&&Ze(s,S,{get:()=>o[S],enumerable:!(f=Gt(o,S))||f.enumerable});return s};var Kt=(s,o,r)=>(r=s!=null?$t(Xt(s)):{},mt(o||!s||!s.__esModule?Ze(r,"default",{value:s,enumerable:!0}):r,s)),jt=s=>mt(Ze({},"__esModule",{value:!0}),s);var dn={};_t(dn,{ConfirmationForm:()=>xe,FormContainerContext:()=>et,FormContainerProvider:()=>Me,LeftPanelRenderer:()=>Wt,ModalStackRenderer:()=>Ot,PanelProvider:()=>St,PanelRegistry:()=>We,RightPanelRenderer:()=>Dt,SidePanelRenderer:()=>At,Sidebar:()=>Bt,WindowManager:()=>Ft,WindowManagerProvider:()=>Mt,WorkspaceClient:()=>st,defaultPredefinedMessages:()=>Te,formatLabel:()=>q,useFormContainer:()=>tt,useFormatMessage:()=>ae,usePanelActions:()=>we,usePanelContext:()=>wt,usePanelState:()=>Pe,usePredefinedMessages:()=>le,useStyleClasses:()=>ye,useWindowManagerActions:()=>Ce,useWindowManagerState:()=>pe});module.exports=jt(dn);var W=Kt(require("react"),1),ut=require("react-dom");var b=require("react");var Oe=class{registry=new Map;register(o,r,f){this.registry.set(o,{Component:r,defaultOptions:f})}get(o){return this.registry.get(o)}getRegisteredIds(){return Array.from(this.registry.keys())}},We=new Oe;var Te={floatWindow:{id:"dockable-desktop-floatWindow",defaultMessage:"Float Window"},minimizePanel:{id:"dockable-desktop-minimizePanel",defaultMessage:"Minimize Panel"},closeTab:{id:"dockable-desktop-closeTab",defaultMessage:"Close Tab"},restorePanel:{id:"dockable-desktop-restorePanel",defaultMessage:"Restore Panel"},maximizePanel:{id:"dockable-desktop-maximizePanel",defaultMessage:"Maximize Panel"},closePanel:{id:"dockable-desktop-closePanel",defaultMessage:"Close Panel"},dockWindow:{id:"dockable-desktop-dockWindow",defaultMessage:"Dock Window"},minimize:{id:"dockable-desktop-minimize",defaultMessage:"Minimize"},maximize:{id:"dockable-desktop-maximize",defaultMessage:"Maximize"},restoreSize:{id:"dockable-desktop-restoreSize",defaultMessage:"Restore Size"},close:{id:"dockable-desktop-close",defaultMessage:"Close"},closeEmptyGroup:{id:"dockable-desktop-closeEmptyGroup",defaultMessage:"Close empty split group"},anchorToRightEdge:{id:"dockable-desktop-anchorToRightEdge",defaultMessage:"Anchor to Right Edge"},anchorToBottomEdge:{id:"dockable-desktop-anchorToBottomEdge",defaultMessage:"Anchor to Bottom Edge"},windowAnchoringOptions:{id:"dockable-desktop-windowAnchoringOptions",defaultMessage:"Window Anchoring Options"},unsavedChangesTitle:{id:"dockable-desktop-unsavedChangesTitle",defaultMessage:"Unsaved Changes"},unsavedChangesMessage:{id:"dockable-desktop-unsavedChangesMessage",defaultMessage:'"{title}" has unsaved changes. Do you want to discard your changes and close?'},discardChanges:{id:"dockable-desktop-discardChanges",defaultMessage:"Discard Changes"},cancel:{id:"dockable-desktop-cancel",defaultMessage:"Cancel"},yes:{id:"dockable-desktop-yes",defaultMessage:"Yes"},no:{id:"dockable-desktop-no",defaultMessage:"No"},ok:{id:"dockable-desktop-ok",defaultMessage:"OK"},closePanelTooltip:{id:"dockable-desktop-closePanelTooltip",defaultMessage:"Close panel"},closeTooltip:{id:"dockable-desktop-closeTooltip",defaultMessage:"Close"}};var ke=require("react/jsx-runtime"),ht=(0,b.createContext)(null),yt=(0,b.createContext)(null),Pt=(0,b.createContext)(null),bt=(0,b.createContext)(Te),vt=(0,b.createContext)({}),ye=()=>(0,b.useContext)(vt),Ct=(0,b.createContext)(We),Qe=()=>(0,b.useContext)(Ct),lt=class{listeners={};subscribe(o,r){return this.listeners[o]||(this.listeners[o]=[]),this.listeners[o].push(r),()=>{this.listeners[o]=this.listeners[o].filter(f=>f!==r)}}publish(o,r){this.listeners[o]&&this.listeners[o].forEach(f=>f(r))}},Ut={type:"leaf",id:"group-default",panels:[],activePanelId:null};function Jt(s){if(s)try{let o=JSON.parse(s);if(o.gridRoot&&Array.isArray(o.floating)&&Array.isArray(o.minimized)&&o.panels)return{gridRoot:o.gridRoot,floating:o.floating,minimized:o.minimized,panels:o.panels,activePanelId:Object.keys(o.panels)[0]??null}}catch{}return{gridRoot:Ut,floating:[],minimized:[],panels:{},activePanelId:null}}var Mt=({children:s,client:o,formatMessage:r,predefinedMessages:f,dir:S,modalClass:k,modalBodyClass:H,sidePanelClass:B,sidePanelBodyClass:w,windowClass:x,windowBodyClass:D})=>{let g=(0,b.useRef)(o?.registry??We).current,T=o?.config.formatMessage??r,P=o?.config.predefinedMessages??f,I=o?.config.dir??S,[F,d]=(0,b.useState)(()=>({...Jt(o?.initialState??null),draggedPanelId:null,dir:I||"ltr",isRtl:I==="rtl"})),C=(0,b.useRef)(F);C.current=F;let h=(0,b.useRef)({}),p=(0,b.useMemo)(()=>({...Te,...P}),[P]),$=(0,b.useRef)(new lt),N=(0,b.useRef)(1e3),y=(0,b.useCallback)((e,t)=>$.current.subscribe(e,t),[]),L=(0,b.useCallback)((e,t)=>{$.current.publish(e,t)},[]),Y=(0,b.useCallback)((e,t)=>{let n=typeof e.x=="string"?parseFloat(e.x):e.x,i=typeof e.y=="string"?parseFloat(e.y):e.y,c=typeof e.width=="string"?parseFloat(e.width):e.width,u=typeof e.height=="string"?parseFloat(e.height):e.height;isNaN(n)&&(n=300),isNaN(i)&&(i=150),isNaN(c)&&(c=450),isNaN(u)&&(u=350);let v=E=>t.some(G=>{let O=typeof G.x=="string"?parseFloat(G.x):G.x,X=typeof G.y=="string"?parseFloat(G.y):G.y;return!G.maximized&&Math.abs(O-E.x)<20&&Math.abs(X-E.y)<20}),m=0;for(;v({x:n,y:i})&&m<10;)n+=30,i+=30,m++;let M=Math.max(100,window.innerWidth||1024),R=Math.max(100,window.innerHeight||768);return(n+c>M||i+u>R)&&(n=100+m%5*30,i=100+m%5*30),n=Math.max(0,Math.min(n,M-100)),i=Math.max(0,Math.min(i,R-40)),{x:n,y:i,width:c,height:u}},[]),z=(0,b.useCallback)(e=>{N.current+=1;let t=N.current;d(n=>{let i=n.panels[e];if(!i)return n;if(i.state==="floating")return{...n,floating:n.floating.map(c=>c.id===e?{...c,z:t}:c),activePanelId:e};if(i.state==="docked"){let c=u=>u.type==="leaf"?u.panels.includes(e)?{...u,activePanelId:e}:u:{...u,children:u.children.map(c)};return{...n,gridRoot:c(n.gridRoot),activePanelId:e}}return{...n,activePanelId:e}})},[]),A=(e,t)=>{if(e.type==="leaf"){let n=e.panels.indexOf(t);if(n===-1)return e;let i=e.panels.filter(v=>v!==t),c=e.activePanelId===t?i[n]||i[n-1]||i[0]||null:e.activePanelId,u={...e,panels:i,activePanelId:c};return i.length===0&&!e.keepOnEmpty?null:u}else{let n=e.children.map(u=>A(u,t)).filter(u=>u!==null);if(n.length===0)return null;if(n.length===1)return n[0];let i=e.sizes.slice(0,n.length),c=i.reduce((u,v)=>u+v,0);return{...e,children:n,sizes:i.map(u=>u/c)}}},_=(e,t,n)=>{if(e.type==="leaf"){if(e.id===t){let i=e.panels.includes(n)?e.panels:[...e.panels,n];return{...e,panels:i,activePanelId:n}}return e}else return{...e,children:e.children.map(i=>_(i,t,n))}},ie=e=>{if(e.type==="leaf")return e.id;for(let t of e.children){let n=ie(t);if(n)return n}return null},de=(0,b.useCallback)((e,t,n)=>{d(i=>{let c=i.panels[e],u=g.get(t),v=n?.title||n?.title||u?.defaultOptions?.title||e,m=n?.initialTarget||u?.defaultOptions?.initialTarget||"docked",M=u?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350};if(c)if(c.state==="minimized"){let O=i.minimized.filter(X=>X.id!==e);if(m==="floating"||!i.gridRoot){N.current+=1;let X=Y(M,i.floating);return{...i,minimized:O,floating:[...i.floating,{...X,id:e,z:N.current}],panels:{...i.panels,[e]:{...c,state:"floating"}}}}else{let X=ie(i.gridRoot)||"group-default";return{...i,minimized:O,gridRoot:_(i.gridRoot,X,e),panels:{...i.panels,[e]:{...c,state:"docked"}}}}}else{if(c.state==="floating")return z(e),i;{let O=X=>X.type==="leaf"?X.panels.includes(e)?{...X,activePanelId:e}:X:{...X,children:X.children.map(O)};return{...i,gridRoot:O(i.gridRoot)}}}let E={id:e,title:v,component:t,state:m==="tabbed"?"docked":m},G={...i.panels,[e]:E};if(m==="floating"){N.current+=1;let O=Y(M,i.floating),X=n?.stickyRight??u?.defaultOptions?.defaultStickyRight??!1,ge=n?.stickyBottom??u?.defaultOptions?.defaultStickyBottom??!1,ve=Math.max(100,window.innerWidth||1024),Se=Math.max(100,window.innerHeight||768),Ne=typeof O.width=="string"?parseFloat(O.width):O.width,Fe=typeof O.height=="string"?parseFloat(O.height):O.height,je=O.x,Ue=O.y,Je=10;return X&&(je=ve-Ne-Je),ge&&(Ue=Se-Fe-Je),{...i,floating:[...i.floating,{...O,id:e,z:N.current,x:je,y:Ue,stickyRight:X,stickyBottom:ge}],panels:G}}else{let O=ie(i.gridRoot)||"group-default";return{...i,gridRoot:_(i.gridRoot,O,e),panels:G}}})},[Y,z]),re=(0,b.useCallback)(e=>{d(t=>{let n=t.panels[e];if(!n||g.get(n.component)?.defaultOptions?.canClose===!1)return t;delete h.current[e];let c={...t.panels};delete c[e];let u=A(t.gridRoot,e);return{...t,gridRoot:u||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:t.floating.filter(v=>v.id!==e),minimized:t.minimized.filter(v=>v.id!==e),panels:c}})},[]),K=(0,b.useCallback)((e,t)=>{h.current[e]=t},[]),Z=(0,b.useCallback)(e=>{delete h.current[e]},[]),he=(0,b.useCallback)((e,t,n)=>{d(i=>{let c=i.panels[e];return c?{...i,panels:{...i.panels,[e]:{...c,dirty:t,dirtyOptions:n}}}:i})},[]),fe=(0,b.useCallback)((e,t)=>{d(n=>{let i=n.panels[e];return i?{...n,panels:{...n.panels,[e]:{...i,title:t}}}:n})},[]),U=(0,b.useCallback)(async(e,t)=>{if(t?.force){re(e);return}let n=h.current[e];if(n&&!await n())return;let i=C.current.panels[e];if(i?.dirty)if(t?.onConfirm){if(!await t.onConfirm(i.dirtyOptions))return}else return;re(e)},[re]),ce=(0,b.useCallback)(e=>{d(t=>{let n=t.panels[e];if(!n||n.state==="minimized"||g.get(n.component)?.defaultOptions?.canMinimize===!1)return t;let c,u;if(n.state==="floating"){let m=t.floating.find(M=>M.id===e);m&&(c={x:m.x,y:m.y,width:m.width,height:m.height,stickyRight:m.stickyRight,stickyBottom:m.stickyBottom})}else if(n.state==="docked"){let m=M=>{if(M.type==="leaf")return M.panels.includes(e)?M.id:null;for(let R of M.children){let E=m(R);if(E)return E}return null};u=m(t.gridRoot)}let v=A(t.gridRoot,e);return{...t,gridRoot:v||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:t.floating.filter(m=>m.id!==e),minimized:[...t.minimized,{id:e,title:n.title,component:n.component}],panels:{...t.panels,[e]:{...n,state:"minimized",previousState:n.state,lastFloatingRect:c,lastLeafId:u}}}})},[]),Q=(0,b.useCallback)(e=>{d(t=>{let n=t.panels[e];if(!n||n.state!=="minimized")return t;let i=t.minimized.filter(u=>u.id!==e);if((n.previousState||"docked")==="floating"){N.current+=1;let u=g.get(n.component),v=n.lastFloatingRect||u?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},m=Y(v,t.floating);return{...t,minimized:i,floating:[...t.floating,{...m,id:e,z:N.current,stickyRight:!!n.lastFloatingRect?.stickyRight,stickyBottom:!!n.lastFloatingRect?.stickyBottom}],panels:{...t.panels,[e]:{...n,state:"floating"}}}}else{let u=(R,E)=>R.type==="leaf"?R.id===E:R.children.some(G=>u(G,E)),v=n.lastLeafId&&u(t.gridRoot,n.lastLeafId),m=g.get(n.component),M=m?.defaultOptions?.canDrag!==!1;if(v)return{...t,minimized:i,gridRoot:_(t.gridRoot,n.lastLeafId,e),panels:{...t.panels,[e]:{...n,state:"docked"}}};if(M){N.current+=1;let R=n.lastFloatingRect||m?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},E=Y(R,t.floating);return{...t,minimized:i,floating:[...t.floating,{...E,id:e,z:N.current,stickyRight:!!n.lastFloatingRect?.stickyRight,stickyBottom:!!n.lastFloatingRect?.stickyBottom}],panels:{...t.panels,[e]:{...n,state:"floating"}}}}else{let R=ie(t.gridRoot)||"group-default";return{...t,minimized:i,gridRoot:_(t.gridRoot,R,e),panels:{...t.panels,[e]:{...n,state:"docked"}}}}}})},[Y]),V=(0,b.useCallback)((e,t)=>{d(n=>{let i=n.panels[e];if(!i||g.get(i.component)?.defaultOptions?.canDrag===!1)return n;let u=g.get(i.component),v=t||u?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},m=A(n.gridRoot,e);N.current+=1;let M=Y(v,n.floating);return{...n,gridRoot:m||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:[...n.floating,{...M,id:e,z:N.current}],panels:{...n.panels,[e]:{...i,state:"floating"}}}})},[Y]),Be=(0,b.useCallback)((e,t)=>{d(n=>{let i=n.panels[e];if(!i)return n;let c=n.floating.filter(m=>m.id!==e),u=A(n.gridRoot,e),v=t||ie(u||n.gridRoot)||"group-default";return{...n,gridRoot:_(u||n.gridRoot,v,e),floating:c,panels:{...n.panels,[e]:{...i,state:"docked"}}}})},[]),Re=(e,t,n,i)=>{if(e.type==="leaf"){if(e.id===t){let c={type:"leaf",id:`group-split-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[n],activePanelId:n};return{type:"branch",orientation:i==="left"||i==="right"?"horizontal":"vertical",sizes:[.5,.5],children:i==="left"||i==="top"?[c,e]:[e,c]}}return e}else return{...e,children:e.children.map(c=>Re(c,t,n,i))}},be=(0,b.useCallback)(e=>{d(t=>({...t,draggedPanelId:e}))},[]),He=(0,b.useCallback)((e,t,n)=>{d(i=>{let c=i.panels[e];if(!c)return i;let u=i.floating.filter(M=>M.id!==e),v=A(i.gridRoot,e),m;return n==="center"?m=_(v||i.gridRoot,t,e):m=Re(v||i.gridRoot,t,e,n),{...i,gridRoot:m,floating:u,panels:{...i.panels,[e]:{...c,state:"docked"}},draggedPanelId:null}})},[]),$e=(0,b.useCallback)((e,t)=>{d(n=>{let i=n.panels[e];if(!i)return n;let c=n.floating.filter(E=>E.id!==e),u=A(n.gridRoot,e),v={type:"leaf",id:`group-edge-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[e],activePanelId:e},m=t==="left"||t==="right"?"horizontal":"vertical",M=t==="left"||t==="top"?[v,u||n.gridRoot]:[u||n.gridRoot,v];return{...n,gridRoot:{type:"branch",orientation:m,sizes:t==="left"||t==="top"?[.3,.7]:[.7,.3],children:M},floating:c,panels:{...n.panels,[e]:{...i,state:"docked"}},draggedPanelId:null}})},[]),Ge=(0,b.useCallback)((e,t,n)=>{d(i=>{let c=i.panels[e];if(!c)return i;let u=A(i.gridRoot,e),v=R=>{if(R.type==="leaf"){if(R.id===t){let E=R.panels.filter(X=>X!==e),G=Math.max(0,Math.min(n,E.length)),O=[...E];return O.splice(G,0,e),{...R,panels:O,activePanelId:e}}return R}else return{...R,children:R.children.map(v)}},m=v(u||i.gridRoot),M=i.floating.filter(R=>R.id!==e);return{...i,gridRoot:m,floating:M,panels:{...i.panels,[e]:{...c,state:"docked"}},draggedPanelId:null}})},[]),Ye=(0,b.useCallback)(e=>{d(t=>{let n=c=>{if(c.type==="leaf")return c.id===e&&c.canClose!==!1?null:c;{let u=c.children.map(M=>n(M)).filter(M=>M!==null);if(u.length===0)return null;if(u.length===1)return u[0];let v=c.sizes.slice(0,u.length),m=v.reduce((M,R)=>M+R,0);return{...c,children:u,sizes:v.map(M=>M/m)}}},i=n(t.gridRoot);return{...t,gridRoot:i||{type:"leaf",id:"group-default",panels:[],activePanelId:null}}})},[]),Xe=(0,b.useCallback)(e=>{d(t=>({...t,floating:t.floating.map(n=>n.id===e?{...n,maximized:!n.maximized}:n)}))},[]),Ie=(0,b.useCallback)((e,t)=>{let n=(i,c)=>{if(i.type==="leaf")return i;if(c===e.length)return{...i,sizes:t};let u=e[c],v=i.children.map((m,M)=>M===u?n(m,c+1):m);return{...i,children:v}};d(i=>({...i,gridRoot:n(i.gridRoot,0)}))},[]),me=(0,b.useCallback)((e,t)=>{d(n=>({...n,floating:n.floating.map(i=>i.id===e?{...i,...t}:i)}))},[]),qe=(0,b.useCallback)(()=>JSON.stringify({gridRoot:C.current.gridRoot,floating:C.current.floating,minimized:C.current.minimized,panels:C.current.panels}),[]),_e=(0,b.useCallback)(e=>{try{let t=JSON.parse(e);if(t.gridRoot&&t.floating&&t.minimized&&t.panels){let n=Object.keys(t.panels)[0]||null;d(i=>({...i,gridRoot:t.gridRoot,floating:t.floating,minimized:t.minimized,panels:t.panels,draggedPanelId:null,activePanelId:n}))}}catch(t){console.error("Failed to parse layout configuration:",t)}},[]),Ke=(0,b.useCallback)(e=>{d(t=>t.activePanelId===e?t:{...t,activePanelId:e})},[]),Le=(0,b.useCallback)(e=>{d(t=>t.dir===e?t:{...t,dir:e,isRtl:e==="rtl"})},[]);(0,b.useEffect)(()=>{I&&d(e=>e.dir===I?e:{...e,dir:I,isRtl:I==="rtl"})},[I]);let Ee=(0,b.useMemo)(()=>({openPanel:de,closePanel:re,minimizePanel:ce,restorePanel:Q,floatPanel:V,dockPanel:Be,maximizePanel:Xe,updateSplitSizes:Ie,updateFloatingPosition:me,bringToFront:z,saveLayout:qe,loadLayout:_e,publish:L,subscribe:y,setDraggedPanelId:be,dockPanelToGroup:He,movePanelOrder:Ge,closeLeafGroup:Ye,registerCloseGuard:K,unregisterCloseGuard:Z,setPanelDirty:he,updatePanelTitle:fe,requestClosePanel:U,dockPanelToWorkspaceEdge:$e,setActivePanel:Ke,setDirection:Le}),[de,re,ce,Q,V,Be,Xe,Ie,me,z,qe,_e,L,y,be,He,Ge,Ye,K,Z,he,fe,U,$e,Ke,Le]),rt=e=>{let t=e.defaultMessage||e.id;return e.values&&Object.entries(e.values).forEach(([n,i])=>{t=t.replace(`{${n}}`,String(i))}),t},a=(0,b.useMemo)(()=>({modalClass:k,modalBodyClass:H,sidePanelClass:B,sidePanelBodyClass:w,windowClass:x,windowBodyClass:D}),[k,H,B,w,x,D]);return(0,b.useEffect)(()=>{if(o)return o._connect(Ee),()=>{o._disconnect()}},[o,Ee]),(0,ke.jsx)(vt.Provider,{value:a,children:(0,ke.jsx)(Ct.Provider,{value:g,children:(0,ke.jsx)(ht.Provider,{value:F,children:(0,ke.jsx)(yt.Provider,{value:Ee,children:(0,ke.jsx)(Pt.Provider,{value:T||rt,children:(0,ke.jsx)(bt.Provider,{value:p,children:s})})})})})})},pe=()=>{let s=(0,b.useContext)(ht);if(!s)throw new Error("useWindowManagerState must be used within WindowManagerProvider");return s},Ce=()=>{let s=(0,b.useContext)(yt);if(!s)throw new Error("useWindowManagerActions must be used within WindowManagerProvider");return s},ae=()=>(0,b.useContext)(Pt)||(o=>{let r=o.defaultMessage||o.id;return o.values&&Object.entries(o.values).forEach(([f,S])=>{r=r.replace(`{${f}}`,String(S))}),r}),q=(s,o)=>s?typeof s=="string"?s:o(s):"",wt=()=>{let{publish:s,subscribe:o}=Ce();return{publish:s,subscribe:o}},le=()=>(0,b.useContext)(bt);function xt(s){if(!s)return typeof document<"u"?document.documentElement.dir?.toLowerCase()==="rtl"||document.body.dir?.toLowerCase()==="rtl":!1;let o=s.closest("[dir]");return o?o.getAttribute("dir")?.toLowerCase()==="rtl":document.documentElement.dir?.toLowerCase()==="rtl"||document.body.dir?.toLowerCase()==="rtl"}var Tt=require("replace-react-contexify"),Sn=require("replace-react-contexify/styles.css");var Ve=require("react"),Zt={requestClose:()=>{console.warn("FormContainerContract: requestClose called but no container is present")},setDirty:()=>{},onCloseRequested:()=>()=>{},setTitle:()=>{},setIcon:()=>{},containerType:"standalone",instanceId:"standalone",onClose:()=>()=>{},onMinimize:()=>()=>{},onRestore:()=>()=>{},onResize:()=>()=>{}},et=(0,Ve.createContext)(Zt),Me=et.Provider,tt=()=>(0,Ve.useContext)(et);var j=require("react"),ct=require("react/jsx-runtime"),Qt=0,dt=()=>`panel-${++Qt}-${Date.now()}`,nt=new Map,Rt={leftPanel:null,rightPanel:null,modals:[]},kt=(0,j.createContext)(null),It=(0,j.createContext)(null),St=({children:s})=>{let[o,r]=(0,j.useState)(Rt),f=(0,j.useRef)(o);f.current=o;let S=(0,j.useCallback)((d,C)=>{nt.set(d,C)},[]),k=(0,j.useCallback)(d=>{nt.delete(d)},[]),H=(0,j.useCallback)(async(d,C,h={})=>{let p=f.current.leftPanel;if(p){let y=nt.get(p.id);if(y&&!await y())return null}let $=dt(),N={id:$,Component:d,props:C,containerType:"left-panel",options:h};return r(y=>({...y,leftPanel:N})),$},[]),B=(0,j.useCallback)(async(d,C,h={})=>{let p=f.current.rightPanel;if(p){let y=nt.get(p.id);if(y&&!await y())return null}let $=dt(),N={id:$,Component:d,props:C,containerType:"right-panel",options:h};return r(y=>({...y,rightPanel:N})),$},[]),w=(0,j.useCallback)((d,C,h={})=>{let p=dt(),$=C.title,N={...h,title:h.title||$||"Confirmation"},y={id:p,Component:d,props:C,containerType:"modal",options:N};return r(L=>({...L,modals:[...L.modals,y]})),p},[]),x=(0,j.useCallback)(d=>{r(C=>({leftPanel:C.leftPanel?.id===d?null:C.leftPanel,rightPanel:C.rightPanel?.id===d?null:C.rightPanel,modals:C.modals.filter(h=>h.id!==d)}))},[]),D=(0,j.useCallback)(()=>{r(Rt)},[]),g=(0,j.useCallback)(()=>{r(d=>({...d,modals:[]}))},[]),T=(0,j.useCallback)(d=>o.leftPanel?.id===d?o.leftPanel:o.rightPanel?.id===d?o.rightPanel:o.modals.find(C=>C.id===d),[o]),P=(0,j.useCallback)((d,C)=>{r(h=>({leftPanel:h.leftPanel?.id===d?{...h.leftPanel,...C}:h.leftPanel,rightPanel:h.rightPanel?.id===d?{...h.rightPanel,...C}:h.rightPanel,modals:h.modals.map(p=>p.id===d?{...p,...C}:p)}))},[]),I=(0,j.useCallback)((d,C,h)=>{P(d,{dirty:C,dirtyOptions:h})},[P]),F=(0,j.useMemo)(()=>({openLeftPanel:H,openRightPanel:B,openModal:w,close:x,closeAll:D,closeAllModals:g,getInstance:T,updateInstance:P,setDirty:I,registerCloseHandler:S,unregisterCloseHandler:k}),[H,B,w,x,D,g,T,P,I,S,k]);return(0,ct.jsx)(kt.Provider,{value:o,children:(0,ct.jsx)(It.Provider,{value:F,children:s})})},Pe=()=>{let s=(0,j.useContext)(kt);if(!s)throw new Error("usePanelState must be used within PanelProvider");return s},we=()=>{let s=(0,j.useContext)(It);if(!s)throw new Error("usePanelActions must be used within PanelProvider");return s};var De=require("react");var ue=require("react/jsx-runtime"),Vt=({title:s,message:o,alert:r,alertType:f="info",useYesNoTitles:S=!1,onOK:k,onCancel:H})=>{let{requestClose:B,setIcon:w,setTitle:x}=tt(),D=ae(),g=le(),T=(0,De.useRef)(null);(0,De.useEffect)(()=>{if(s){let h=typeof s=="string"?s:D(s);x(h)}w&&w((0,ue.jsx)("span",{children:"\u2753"}))},[s,x,w,D]),(0,De.useEffect)(()=>{T.current?.focus()},[]);let P=typeof o=="string"?o:D(o),I=D(S?g.no:g.cancel),F=D(S?g.yes:g.ok),d=h=>{h.preventDefault(),k?.(),B()},C=()=>{H?.(),B()};return(0,ue.jsxs)("form",{onSubmit:d,className:"confirmation-form-body",children:[r&&(0,ue.jsxs)("div",{className:`confirmation-alert confirmation-alert-${f}`,children:[(0,ue.jsx)("span",{children:"\u2139\uFE0F"}),(0,ue.jsx)("span",{children:r})]}),(0,ue.jsx)("div",{style:{fontSize:"0.9rem",color:"inherit",lineHeight:1.5},children:P}),(0,ue.jsx)("hr",{style:{marginTop:"0.5rem",marginBottom:"0.5rem",opacity:.1}}),(0,ue.jsxs)("div",{className:"confirmation-actions",children:[(0,ue.jsx)("button",{type:"button",className:"dw-btn dw-btn-sm dw-btn-outline",onClick:C,children:I}),(0,ue.jsx)("button",{type:"submit",className:"dw-btn dw-btn-sm dw-btn-primary",ref:T,children:F})]})]})},xe=Vt;var l=require("react/jsx-runtime"),Ae=new Map,it="preserved-dom-container",gt=(0,l.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{display:"block"},children:[(0,l.jsx)("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1"}),(0,l.jsx)("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1"}),(0,l.jsx)("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1"}),(0,l.jsx)("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1"})]}),zt=s=>{let o=Ae.get(s);return o||(o=document.createElement("div"),o.style.width="100%",o.style.height="100%",Ae.set(s,o)),o},en=(s,o,r)=>{let f=r.get(o);if(!f)return(0,l.jsxs)("div",{className:"dw-unregistered-panel",style:{border:"2px dashed #dc3545"},children:[(0,l.jsx)("h6",{style:{fontWeight:700,marginBottom:"0.25rem"},children:"\u26A0\uFE0F Component Unregistered"}),(0,l.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--text-secondary, #94a3b8)"},children:["Key: ",o]})]});let S=f.Component;return(0,l.jsx)(S,{panelId:s})},Lt=new Map,ze=new Map,ot=s=>{let o=ze.get(s);return o||(o={onClose:new Set,onMinimize:new Set,onRestore:new Set,onResize:new Set},ze.set(s,o)),o},Et=({panelId:s})=>{let o=(0,W.useRef)(null);return(0,W.useEffect)(()=>{let r=o.current;if(!r)return;let f=zt(s);r.appendChild(f);let S=new ResizeObserver(k=>{for(let H of k){let{width:B,height:w}=H.contentRect;if(B>0&&w>0){Lt.set(s,{width:B,height:w});let x=ze.get(s);x&&x.onResize.forEach(D=>D(B,w))}}});return S.observe(r),()=>{S.disconnect();let k=document.getElementById(it);k||(k=document.createElement("div"),k.id=it,k.style.display="none",document.body.appendChild(k)),k.appendChild(f)}},[s]),(0,l.jsx)("div",{ref:o,style:{width:"100%",height:"100%"}})},tn=({panelId:s})=>{let o=pe(),r=Qe(),f=ae(),S=(0,W.useRef)(null),k=o.panels[s],H=k?r.get(k.component):null,B=H?.defaultOptions?.disableLivePreview||!1,w=Lt.get(s)||{width:800,height:500},x=w.width,D=w.height,P=Math.min(220/x,140/D);if((0,W.useEffect)(()=>{if(B)return;let I=S.current;if(!I)return;let F=Ae.get(s);if(F)return I.appendChild(F),()=>{let d=document.getElementById(it);d||(d=document.createElement("div"),d.id=it,d.style.display="none",document.body.appendChild(d)),d.appendChild(F)}},[s,B]),B){let I=x*P,F=D*P,d=k?.title||H?.defaultOptions?.title||"Panel",C=q(d,f),h=(Array.from(C)[0]||"P").toUpperCase();return(0,l.jsx)("div",{className:"taskbar-item-preview-frame",style:{width:`${I}px`,height:`${F}px`,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(108, 117, 125, 0.15)",border:"1px dashed var(--taskbar-item-border, rgba(255, 255, 255, 0.15))"},children:(0,l.jsx)("div",{style:{fontSize:"2rem",fontWeight:600,color:"var(--panel-title-color, var(--panel-text, rgba(255, 255, 255, 0.85)))",userSelect:"none"},children:h})})}return(0,l.jsx)("div",{className:"taskbar-item-preview-frame",style:{width:`${x*P}px`,height:`${D*P}px`},children:(0,l.jsx)("div",{ref:S,className:"taskbar-item-preview-host",style:{width:`${x}px`,height:`${D}px`,transform:`scale(${P})`,transformOrigin:"top left",position:"absolute",top:0,left:0,"--preview-scale":P}})})},nn=({panelId:s,children:o})=>{let r=pe(),{requestClosePanel:f,setPanelDirty:S,registerCloseGuard:k,unregisterCloseGuard:H,updatePanelTitle:B}=Ce(),w=r.minimized.some(g=>g.id===s),x=(0,W.useRef)(w);(0,W.useEffect)(()=>{let g=ze.get(s);g&&(w&&!x.current?g.onMinimize.forEach(T=>T()):!w&&x.current&&g.onRestore.forEach(T=>T()),x.current=w)},[w,s]),(0,W.useEffect)(()=>()=>{let g=ze.get(s);g&&(g.onClose.forEach(T=>T()),ze.delete(s))},[s]);let D=W.default.useMemo(()=>({requestClose:g=>f(s,g),setDirty:g=>S(s,g),onCloseRequested:g=>(k(s,g),()=>H(s)),setTitle:g=>B(s,g),instanceId:s,onClose:g=>{let T=ot(s);return T.onClose.add(g),()=>T.onClose.delete(g)},onMinimize:g=>{let T=ot(s);return T.onMinimize.add(g),()=>T.onMinimize.delete(g)},onRestore:g=>{let T=ot(s);return T.onRestore.add(g),()=>T.onRestore.delete(g)},onResize:g=>{let T=ot(s);return T.onResize.add(g),()=>T.onResize.delete(g)}}),[s,f,S,k,H,B]);return(0,l.jsx)(Me,{value:D,children:o})},Nt=({node:s,path:o,onTabRightClick:r,activeDropZone:f,onHoverDropZone:S,onTabDragStart:k,hoveredTab:H,onTabHover:B,defaultPanelIcon:w,onRequestClosePanel:x})=>{let{updateSplitSizes:D}=Ce();if(s.type==="leaf")return(0,l.jsx)(on,{leaf:s,onTabRightClick:r,activeDropZone:f,onHoverDropZone:S,onTabDragStart:k,hoveredTab:H,onTabHover:B,defaultPanelIcon:w,onRequestClosePanel:x});let g=s.orientation==="horizontal",T=(P,I)=>{I.preventDefault();let F=g?I.clientX:I.clientY,d=[...s.sizes],C=I.currentTarget;C.classList.add("active"),document.body.classList.add("resizing-active",g?"resizing-row-active":"resizing-col-active");let h=I.currentTarget.parentElement,p=h?g?h.clientWidth:h.clientHeight:g?1e3:800,$=y=>{let z=((g?y.clientX:y.clientY)-F)/p,A=[...d];A[P]+=z,A[P+1]-=z,A[P]>.1&&A[P+1]>.1&&D(o,A)},N=()=>{C.classList.remove("active"),document.body.classList.remove("resizing-active","resizing-row-active","resizing-col-active"),window.removeEventListener("mousemove",$),window.removeEventListener("mouseup",N)};window.addEventListener("mousemove",$),window.addEventListener("mouseup",N)};return(0,l.jsx)("div",{style:{display:"flex",flexDirection:g?"row":"column",width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:s.children.map((P,I)=>{let F=s.sizes[I]*100;return(0,l.jsxs)(W.default.Fragment,{children:[(0,l.jsx)("div",{style:{flexGrow:s.sizes[I],flexBasis:`${F}%`,overflow:"hidden",position:"relative"},children:(0,l.jsx)(Nt,{node:P,path:[...o,I],onTabRightClick:r,activeDropZone:f,onHoverDropZone:S,onTabDragStart:k,hoveredTab:H,onTabHover:B,defaultPanelIcon:w,onRequestClosePanel:x})}),I<s.children.length-1&&(0,l.jsx)("div",{onMouseDown:d=>T(I,d),style:{cursor:g?"col-resize":"row-resize",width:g?"1px":"100%",height:g?"100%":"1px",zIndex:20},className:"resizer-bar"})]},I)})})},on=({leaf:s,onTabRightClick:o,activeDropZone:r,onHoverDropZone:f,onTabDragStart:S,hoveredTab:k,onTabHover:H,defaultPanelIcon:B,onRequestClosePanel:w})=>{let x=pe(),D=Qe(),{openPanel:g,closeLeafGroup:T,setActivePanel:P}=Ce(),I=ae(),F=le(),{windowClass:d,windowBodyClass:C}=ye(),h=p=>{g(p,x.panels[p].component),P(p)};return(0,l.jsxs)("div",{"data-active-panel-id":s.activePanelId||"",className:`workspace-panel ${d??""}`,style:{overflow:"hidden",position:"relative"},children:[(0,l.jsxs)("div",{className:"workspace-tab-bar",style:{minHeight:"38px"},children:[(0,l.jsx)("div",{className:"tab-headers-container",style:{scrollbarWidth:"none"},onMouseMove:p=>{x.draggedPanelId&&p.target===p.currentTarget&&H(s.id,"EMPTY",s.panels.length,"right")},onMouseLeave:p=>{x.draggedPanelId&&p.target===p.currentTarget&&H(s.id,"",-1,null)},children:s.panels.map((p,$)=>{let N=x.panels[p];if(!N)return null;let y=s.activePanelId===p,L=x.activePanelId===p,z=D.get(N.component)?.defaultOptions,A=k&&k.leafId===s.id&&k.panelId===p,_=$===s.panels.length-1,ie=k&&k.leafId===s.id&&k.panelId==="EMPTY"&&_,de=A?k.side==="left"?"drag-hover-left":"drag-hover-right":ie?"drag-hover-right":"";return(0,l.jsxs)("div",{onClick:()=>h(p),onMouseDown:K=>{z?.canDrag!==!1&&S(p,K)},onContextMenu:K=>o(p,K),onMouseMove:K=>{if(x.draggedPanelId){let Z=K.currentTarget.getBoundingClientRect(),fe=K.clientX-Z.left<Z.width/2?"left":"right";H(s.id,p,$,fe)}},onMouseLeave:()=>{x.draggedPanelId&&H(s.id,"",-1,null)},className:`workspace-tab ${y?L?"active workspace-tab-active-focused":"active workspace-tab-active-unfocused":"workspace-tab-inactive"} ${de}`,style:{cursor:z?.canDrag===!1?"default":"pointer"},children:[(0,l.jsxs)("span",{className:"text-truncate",style:{maxWidth:"120px",display:"flex",alignItems:"center"},children:[(0,l.jsx)("span",{className:"workspace-tab-icon",children:z?.icon||B||gt}),(0,l.jsxs)("span",{children:[q(N.title,I),N.dirty?" *":""]})]}),z?.renderHeaderActions&&(0,l.jsx)("span",{className:"tab-header-actions",onClick:K=>K.stopPropagation(),onMouseDown:K=>K.stopPropagation(),children:z.renderHeaderActions(p)}),z?.canClose!==!1&&(0,l.jsx)("span",{onClick:K=>{K.stopPropagation(),w(p)},title:q(F.closeTab,I),className:"close-tab-x",style:{width:"18px",height:"18px",...z?.renderHeaderActions?{}:{marginInlineStart:"auto"}},children:(0,l.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,l.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]},p)})}),s.panels.length===0&&s.keepOnEmpty&&s.canClose!==!1&&(0,l.jsx)("span",{onClick:()=>T(s.id),className:"close-tab-x header-close-empty-group",style:{width:"18px",height:"18px",cursor:"pointer"},title:q(F.closeEmptyGroup,I),children:(0,l.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,l.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,l.jsxs)("div",{className:`dw-panel-body ${C??""}`,style:{position:"relative",overflow:"hidden"},children:[s.activePanelId&&x.panels[s.activePanelId]?(0,l.jsx)(Et,{panelId:s.activePanelId},s.activePanelId):(0,l.jsx)("div",{className:"empty-leaf-placeholder",children:(0,l.jsx)("span",{children:"Empty Workspace Section"})}),x.draggedPanelId!==null&&(0,l.jsx)("div",{className:"dock-drop-zone-overlay",children:(0,l.jsxs)("div",{className:"dock-target-cross",children:[(0,l.jsx)("div",{onMouseEnter:()=>f(s.id,"top"),onMouseLeave:()=>f(s.id,null),className:"dock-target-box dock-target-top",children:"\u25B2"}),(0,l.jsx)("div",{onMouseEnter:()=>f(s.id,"bottom"),onMouseLeave:()=>f(s.id,null),className:"dock-target-box dock-target-bottom",children:"\u25BC"}),(0,l.jsx)("div",{onMouseEnter:()=>f(s.id,"left"),onMouseLeave:()=>f(s.id,null),className:"dock-target-box dock-target-left",children:"\u25C0"}),(0,l.jsx)("div",{onMouseEnter:()=>f(s.id,"right"),onMouseLeave:()=>f(s.id,null),className:"dock-target-box dock-target-right",children:"\u25B6"}),(0,l.jsx)("div",{onMouseEnter:()=>f(s.id,"center"),onMouseLeave:()=>f(s.id,null),className:"dock-target-box dock-target-center",children:"\u25A3"})]})}),x.draggedPanelId!==null&&r!==null&&r.leafId===s.id&&(0,l.jsx)("div",{className:"dock-preview-highlight",style:{left:r.position==="right"?"50%":"0",top:r.position==="bottom"?"50%":"0",width:r.position==="left"||r.position==="right"?"50%":"100%",height:r.position==="top"||r.position==="bottom"?"50%":"100%"}})]})]})},sn=({skin:s="vscode",defaultPanelIcon:o})=>{let r=pe(),f=Qe(),{restorePanel:S,minimizePanel:k,requestClosePanel:H,maximizePanel:B,updateFloatingPosition:w,bringToFront:x,floatPanel:D,setDraggedPanelId:g,dockPanelToGroup:T,movePanelOrder:P,dockPanelToWorkspaceEdge:I,setActivePanel:F,setDirection:d}=Ce(),{openModal:C}=we(),h=ae(),p=le(),$=W.default.useCallback(a=>{let e=r.panels[a];H(a,{onConfirm:t=>new Promise(n=>{let i=t||e?.dirtyOptions,c=e?q(e.title,h):"Panel";C(xe,{title:i?.title||p.unsavedChangesTitle,message:i?.message||{id:p.unsavedChangesMessage.id,defaultMessage:p.unsavedChangesMessage.defaultMessage,values:{title:c}},alert:i?.alert,alertType:i?.alertType||"danger",useYesNoTitles:!0,onOK:()=>n(!0),onCancel:()=>n(!1)},{size:"small"})})})},[H,r.panels,h,C,p]),{windowClass:N,windowBodyClass:y}=ye(),L=(0,W.useRef)(null),Y=(0,W.useRef)(null),[z,A]=(0,W.useState)(null),_=(0,W.useRef)(null),[ie,de]=(0,W.useState)(!1);(0,W.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]),(0,W.useEffect)(()=>{z&&(r.minimized.some(e=>e.id===z.id)||A(null))},[r.minimized,z]);let[re,K]=(0,W.useState)(null),Z=(0,W.useRef)(null),[he,fe]=(0,W.useState)({x:0,y:0}),[U,ce]=(0,W.useState)(null),Q=(0,W.useRef)(null),V=a=>{ce(a),Q.current=a},[Be,Re]=(0,W.useState)(null),be=(0,W.useRef)(null),He=(a,e,t,n)=>{let i=n?{leafId:a,panelId:e,index:t,side:n}:null;Re(i),be.current=i},$e=(a,e)=>{let t=e?{leafId:a,position:e}:null;K(t),Z.current=t},Ge=(a,e)=>{if(e.button!==0)return;let t=e.clientX,n=e.clientY,i=!1,c=m=>{let M=m.clientX-t,R=m.clientY-n;!i&&(Math.abs(M)>5||Math.abs(R)>5)&&(i=!0,g(a)),i&&fe({x:m.clientX,y:m.clientY})},u=m=>{if(window.removeEventListener("mousemove",c),window.removeEventListener("mouseup",v),i){let M=Z.current,R=be.current,E=Q.current;if(E)I(a,E);else if(R){let G=R.index;R.side==="right"&&(G+=1),P(a,R.leafId,G)}else M?T(a,M.leafId,M.position):D(a,{x:m.clientX-150,y:m.clientY-15,width:450,height:350});g(null),K(null),Z.current=null,Re(null),be.current=null,V(null)}},v=m=>{u(m)};window.addEventListener("mousemove",c),window.addEventListener("mouseup",v)},Ye=(a,e)=>{e.preventDefault();let t=r.panels[a];if(!t)return;let i=f.get(t.component)?.defaultOptions,c=[];i?.canDrag!==!1&&c.push({label:q(p.floatWindow,h),action:()=>D(a)}),i?.canMinimize!==!1&&c.push({label:q(p.minimizePanel,h),action:()=>k(a)}),c.length>0&&i?.canClose!==!1&&c.push({separator:!0}),i?.canClose!==!1&&c.push({label:q(p.closeTab,h),action:()=>$(a)}),c.length!==0&&Y.current?.show({event:e,contextMenu:{items:c}})},Xe=(a,e)=>{e.preventDefault(),A(null),Y.current?.show({event:e,contextMenu:{items:[{label:q(p.restorePanel,h),action:()=>S(a)},{label:q(p.maximizePanel,h),action:()=>B(a)},{separator:!0},{label:q(p.closePanel,h),action:()=>$(a)}]}})};(0,W.useEffect)(()=>{let a=Object.keys(r.panels);for(let e of Array.from(Ae.keys()))a.includes(e)||Ae.delete(e)},[r.panels]),(0,W.useEffect)(()=>{let a=()=>{r.draggedPanelId!==null&&(g(null),K(null),Re(null))};return window.addEventListener("blur",a),()=>{window.removeEventListener("blur",a)}},[r.draggedPanelId]);let Ie=(0,W.useRef)(null),[me,qe]=(0,W.useState)({width:1024,height:768});(0,W.useEffect)(()=>{let a=Ie.current;if(!a)return;let e=new ResizeObserver(t=>{if(!t||t.length===0)return;let n=t[0].contentRect;qe({width:Math.max(100,n.width),height:Math.max(100,n.height)})});return e.observe(a),()=>{e.disconnect()}},[]),(0,W.useEffect)(()=>{let a=Ie.current;if(!a)return;let e=()=>{let i=xt(a);d(i?"rtl":"ltr")};e();let t=new MutationObserver(e);t.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),t.observe(document.body,{attributes:!0,attributeFilter:["dir"]});let n=a.closest("[dir]");return n&&n!==document.documentElement&&n!==document.body&&t.observe(n,{attributes:!0,attributeFilter:["dir"]}),()=>{t.disconnect()}},[d]),(0,W.useEffect)(()=>{let a=me.width,e=me.height;r.floating.forEach(t=>{let n=typeof t.width=="string"?parseFloat(t.width):t.width,i=typeof t.height=="string"?parseFloat(t.height):t.height,c=typeof t.x=="string"?parseFloat(t.x):t.x,u=typeof t.y=="string"?parseFloat(t.y):t.y,v=n,m=i,M=c,R=u,E=!1;v>a&&(v=Math.max(200,a-20),E=!0),m>e&&(m=Math.max(150,e-40),E=!0);let G=10;if(t.stickyRight)M=a-v-G,E=!0;else{let O=a-100;M>O&&(M=Math.max(0,O),E=!0)}if(t.stickyBottom)R=e-m-G,E=!0;else{let O=e-40;R>O&&(R=Math.max(0,O),E=!0)}E&&w(t.id,{x:M,y:R,width:v,height:m})})},[me,r.floating,w]),(0,W.useEffect)(()=>{let a=e=>{if(e.button!==0)return;let t=e.target;if(!t)return;let n=t.closest(".floating-window");if(n){let c=n.getAttribute("data-window-id");c&&(F(c),x(c));return}let i=t.closest(".workspace-panel");if(i){let c=i.getAttribute("data-active-panel-id");c&&F(c)}};return document.addEventListener("mousedown",a),()=>{document.removeEventListener("mousedown",a)}},[x,F]);let _e=(a,e)=>{let t=r.floating.find(G=>G.id===a);if(!t||t.maximized)return;x(a);let n=e.clientX,i=e.clientY,u=e.currentTarget.closest(".floating-window"),v=u?u.offsetLeft:0,m=u?u.offsetTop:0,M=!1,R=G=>{let O=G.clientX-n,X=G.clientY-i;if(!M&&(Math.abs(O)>5||Math.abs(X)>5)&&(M=!0,g(a)),M){let ge=v+O,ve=m+X;w(a,{x:ge,y:ve,stickyRight:!1,stickyBottom:!1})}},E=()=>{if(M){let G=Z.current,O=be.current,X=Q.current;if(X)I(a,X);else if(O){let ge=O.index;O.side==="right"&&(ge+=1),P(a,O.leafId,ge)}else G&&T(a,G.leafId,G.position);g(null),K(null),Z.current=null,Re(null),be.current=null,V(null)}window.removeEventListener("mousemove",R),window.removeEventListener("mouseup",E)};window.addEventListener("mousemove",R),window.addEventListener("mouseup",E)},Ke=(a,e)=>{e.stopPropagation();let t=r.floating.find(E=>E.id===a);if(!t||t.maximized)return;x(a);let n=e.clientX,i=e.clientY,u=e.currentTarget.closest(".floating-window"),v=u?u.offsetWidth:400,m=u?u.offsetHeight:300,M=E=>{let G=E.clientX-n,O=E.clientY-i,X=Math.max(200,v+G),ge=Math.max(150,m+O),ve=t.x,Se=t.y,Ne=me.width,Fe=me.height,je=typeof t.x=="string"?parseFloat(t.x):t.x,Ue=typeof t.y=="string"?parseFloat(t.y):t.y,Je=typeof t.width=="string"?parseFloat(t.width):t.width,Ht=typeof t.height=="string"?parseFloat(t.height):t.height,pt=Math.abs(je+Je-Ne)<4,ft=Math.abs(Ue+Ht-Fe)<4;pt&&(ve=Ne-X,ve<0&&(ve=0,X=Ne)),ft&&(Se=Fe-ge,Se<0&&(Se=0,ge=Fe)),w(a,{x:ve,y:Se,width:X,height:ge,stickyRight:pt,stickyBottom:ft})},R=()=>{window.removeEventListener("mousemove",M),window.removeEventListener("mouseup",R)};window.addEventListener("mousemove",M),window.addEventListener("mouseup",R)},Le=a=>{if(L.current){let e=a==="left"?-150:150;L.current.scrollBy({left:e,behavior:"smooth"})}},[Ee,rt]=(0,W.useState)("dark");return(0,W.useEffect)(()=>{let a=()=>{let t=document.documentElement.getAttribute("data-color-scheme")==="light"?"light":"dark";rt(t)};a();let e=new MutationObserver(a);return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-color-scheme"]}),()=>e.disconnect()},[]),(0,l.jsxs)("div",{"data-workspace-skin":s,"data-color-scheme":Ee,style:{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"hidden",userSelect:"none"},dir:r.dir,children:[(0,l.jsxs)("div",{ref:Ie,className:r.draggedPanelId?"dragging-active":void 0,style:{flexGrow:1,width:"100%",position:"relative",overflow:"hidden"},children:[r.draggedPanelId!==null&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"workspace-edge-trigger edge-trigger-left",onMouseEnter:()=>V("left"),onMouseLeave:()=>V(null)}),(0,l.jsx)("div",{className:"workspace-edge-trigger edge-trigger-right",onMouseEnter:()=>V("right"),onMouseLeave:()=>V(null)}),(0,l.jsx)("div",{className:"workspace-edge-trigger edge-trigger-top",onMouseEnter:()=>V("top"),onMouseLeave:()=>V(null)}),(0,l.jsx)("div",{className:"workspace-edge-trigger edge-trigger-bottom",onMouseEnter:()=>V("bottom"),onMouseLeave:()=>V(null)})]}),r.draggedPanelId!==null&&U!==null&&(0,l.jsx)("div",{className:`workspace-edge-preview edge-preview-${U}`}),(0,l.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:r.gridRoot?(0,l.jsx)(Nt,{node:r.gridRoot,path:[],onTabRightClick:Ye,activeDropZone:re,onHoverDropZone:$e,onTabDragStart:Ge,hoveredTab:Be,onTabHover:He,defaultPanelIcon:o,onRequestClosePanel:$}):(0,l.jsx)("div",{className:"empty-workspace-grid",children:"Grid Empty"})}),r.floating.map(a=>{let e=r.panels[a.id];if(!e)return null;let t=a.maximized,n=r.draggedPanelId===a.id,i=r.activePanelId===a.id,u=f.get(e.component)?.defaultOptions;return(0,l.jsxs)("div",{"data-window-id":a.id,dir:r.dir,onMouseDownCapture:()=>{F(a.id),x(a.id)},className:`floating-window ${t?"maximized":""} ${i?"v2-window-focused":""} ${N??""}`,style:{position:"absolute",left:t?0:typeof a.x=="number"?`${a.x}px`:a.x,top:t?0:typeof a.y=="number"?`${a.y}px`:a.y,width:t?"100%":typeof a.width=="number"?`${a.width}px`:a.width,height:t?"100%":typeof a.height=="number"?`${a.height}px`:a.height,zIndex:a.z,pointerEvents:n?"none":"auto"},children:[(0,l.jsxs)("div",{onDoubleClick:()=>B(a.id),onMouseDown:v=>{u?.canDrag!==!1&&_e(a.id,v)},className:"floating-window-titlebar cursor-move",style:{cursor:t||u?.canDrag===!1?"default":"move"},children:[(0,l.jsxs)("span",{className:"floating-window-title",children:[(0,l.jsx)("span",{className:"window-title-icon",children:u?.icon||o||gt}),(0,l.jsxs)("span",{children:[q(e.title,h),e.dirty?" *":""]})]}),(0,l.jsxs)("div",{className:"fw-titlebar-actions",style:{gap:"var(--header-button-gap, 4px)"},onMouseDown:v=>v.stopPropagation(),children:[u?.renderHeaderActions&&(0,l.jsx)("div",{className:"window-header-actions",children:u.renderHeaderActions(a.id)}),u?.canDrag!==!1&&(0,l.jsx)("button",{type:"button",title:q(p.windowAnchoringOptions,h),onClick:v=>{let m=!!a.stickyRight,M=!!a.stickyBottom;Y.current?.show({event:v,contextMenu:{items:[{label:q(p.anchorToRightEdge,h),checkbox:{active:!0,enabled:!0,value:m},action:()=>{let R=me.width,E=typeof a.width=="string"?parseFloat(a.width):a.width;m?w(a.id,{stickyRight:!1}):w(a.id,{x:R-E-10,stickyRight:!0})}},{label:q(p.anchorToBottomEdge,h),checkbox:{active:!0,enabled:!0,value:M},action:()=>{let R=me.height,E=typeof a.height=="string"?parseFloat(a.height):a.height;M?w(a.id,{stickyBottom:!1}):w(a.id,{y:R-E-10,stickyBottom:!0})}}]}})},className:"custom-tab-btn btn-anchor-tab",children:(0,l.jsxs)("svg",{className:`anchor-icon ${a.stickyRight&&a.stickyBottom?"anchor-sticky-both":a.stickyRight?"anchor-sticky-right":a.stickyBottom?"anchor-sticky-bottom":""}`,width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,l.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,l.jsx)("path",{d:"M12 7v7m0 0a4 4 0 0 1-4-4M12 14a4 4 0 0 0 4-4M5 18h14"})]})}),(0,l.jsx)("button",{type:"button",title:t?q(p.restoreSize,h):q(p.maximize,h),onClick:()=>B(a.id),className:"custom-tab-btn btn-maximize-tab",children:(0,l.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,l.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"1.5"})})}),u?.canMinimize!==!1&&(0,l.jsx)("button",{type:"button",title:q(p.minimize,h),onClick:()=>k(a.id),className:"custom-tab-btn btn-minimize-tab",children:(0,l.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,l.jsx)("path",{d:"M5 12h14"})})}),u?.canClose!==!1&&(0,l.jsx)("button",{type:"button",title:q(p.close,h),onClick:()=>$(a.id),className:"custom-tab-btn btn-close-tab",children:(0,l.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,l.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]})]}),(0,l.jsx)("div",{className:y??void 0,style:{flexGrow:1,width:"100%",overflow:"hidden",position:"relative",isolation:"isolate"},children:(0,l.jsx)(Et,{panelId:a.id},a.id)}),!t&&(0,l.jsx)("div",{onMouseDown:v=>Ke(a.id,v),style:{position:"absolute",right:0,bottom:0,width:"14px",height:"14px",cursor:"se-resize",zIndex:30,background:"linear-gradient(135deg, transparent 50%, rgba(255,255,255,0.2) 50%)"}})]},a.id)})]}),r.minimized.length>0&&(0,l.jsxs)("div",{className:"taskbar-footer-container",style:{height:"48px",zIndex:100},children:[(0,l.jsx)("button",{type:"button",onClick:()=>Le("left"),className:"taskbar-nav-btn",style:{display:r.minimized.length>4?"block":"none"},children:"\u25C0"}),(0,l.jsx)("div",{ref:L,className:"taskbar-items-container",style:{scrollSnapType:"x mandatory"},children:r.minimized.map(a=>{let t=f.get(a.component)?.defaultOptions?.icon||o||gt;return(0,l.jsx)("div",{onClick:()=>{A(null),S(a.id)},onContextMenu:n=>Xe(a.id,n),onMouseEnter:n=>{if(ie)return;_.current&&clearTimeout(_.current);let i=n.currentTarget.getBoundingClientRect();n.clientX>=i.left&&n.clientX<=i.right&&n.clientY>=i.top&&n.clientY<=i.bottom&&A({id:a.id,rect:i,title:a.title,component:a.component})},onMouseLeave:()=>{_.current=setTimeout(()=>{A(null)},150)},className:"taskbar-glassmorphic-item",style:{backdropFilter:"blur(6px)",transition:"all 0.2s",cursor:"pointer",scrollSnapAlign:"start",width:"38px",height:"38px",position:"relative",padding:0},children:(0,l.jsx)("span",{className:"taskbar-item-icon",children:t})},a.id)})}),z&&(0,ut.createPortal)((0,l.jsxs)("div",{className:"taskbar-item-tooltip",dir:r.dir,style:{position:"fixed",left:`${z.rect.left+z.rect.width/2}px`,top:`${z.rect.top-8}px`,transform:"translateX(-50%) translateY(-100%)",opacity:1,pointerEvents:"auto",zIndex:999999},onMouseEnter:()=>{_.current&&clearTimeout(_.current)},onMouseLeave:()=>{A(null)},onClick:()=>{S(z.id),A(null)},children:[(0,l.jsxs)("div",{className:"tooltip-header-row",children:[(0,l.jsxs)("span",{className:"tooltip-title-text text-truncate",style:{maxWidth:"140px"},children:[q(z.title,h),r.panels[z.id]?.dirty?" *":""]}),(0,l.jsx)("span",{onClick:a=>{a.stopPropagation(),$(z.id),A(null)},title:q(p.closePanel,h),className:"tooltip-close-x",children:(0,l.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,l.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,l.jsx)(tn,{panelId:z.id})]}),document.body),(0,l.jsx)("button",{type:"button",onClick:()=>Le("right"),className:"taskbar-nav-btn",style:{display:r.minimized.length>4?"block":"none"},children:"\u25B6"})]}),Object.keys(r.panels).map(a=>{let e=r.panels[a];if(!e)return null;let t=zt(a);return(0,ut.createPortal)((0,l.jsx)(nn,{panelId:a,children:(0,l.jsx)("div",{style:{width:"100%",height:"100%"},children:en(a,e.component,f)})}),t,a)}),(0,l.jsx)(Tt.JsonContextMenu,{ref:Y,id:"workspace-context-menu",theme:"dark",onShow:()=>de(!0),onHide:()=>de(!1)}),r.draggedPanelId!==null&&!r.floating.some(a=>a.id===r.draggedPanelId)&&(0,l.jsxs)("div",{className:"drag-ghost-tab",style:{left:he.x+12,top:he.y+12,zIndex:1e5},children:["\u{1F4C4} ",q(r.panels[r.draggedPanelId]?.title,h)||"Tab"]})]})},Ft=sn;var st=class{registry;initialState;config;_actions=null;constructor(o={}){if(this.registry=new Oe,this.initialState=o.initialState??null,this.config={formatMessage:o.formatMessage,predefinedMessages:o.predefinedMessages,dir:o.dir},o.panels)for(let[r,f]of Object.entries(o.panels))this.registry.register(r,f.component,f.defaultOptions)}_connect(o){this._actions=o}_disconnect(){this._actions=null}get isConnected(){return this._actions!==null}saveLayout(){return this._actions?.saveLayout()??""}loadLayout(o){this._actions?.loadLayout(o)}openPanel(...o){this._actions?.openPanel(...o)}closePanel(o){this._actions?.closePanel(o)}minimizePanel(o){this._actions?.minimizePanel(o)}restorePanel(o){this._actions?.restorePanel(o)}floatPanel(...o){this._actions?.floatPanel(...o)}dockPanel(...o){this._actions?.dockPanel(...o)}maximizePanel(o){this._actions?.maximizePanel(o)}bringToFront(o){this._actions?.bringToFront(o)}setDirection(o){this._actions?.setDirection(o)}publish(o,r){this._actions?.publish(o,r)}subscribe(o,r){return this._actions?.subscribe(o,r)??(()=>{})}};var se=require("react");var ee=require("react/jsx-runtime"),an=({modal:s,index:o,isTopmost:r})=>{let{close:f,openModal:S,updateInstance:k,setDirty:H}=we(),B=ae(),w=le(),{dir:x}=pe(),{modalClass:D,modalBodyClass:g}=ye(),T=(0,se.useRef)(null),{id:P,Component:I,props:F,options:d,dirty:C,dirtyOptions:h}=s,p=d,[$,N]=(0,se.useState)(p.icon||null),y=(0,se.useRef)(p);y.current=p;let L=q(p.title,B),Y=(0,se.useCallback)(async U=>{if(U?.force){f(P);return}if(T.current){if(!await T.current())return;f(P);return}if(C){S(xe,{title:h?.title||w.unsavedChangesTitle,message:h?.message||{id:w.unsavedChangesMessage.id,defaultMessage:w.unsavedChangesMessage.defaultMessage,values:{title:L}},alert:h?.alert,alertType:h?.alertType||"danger",useYesNoTitles:!0,onOK:()=>f(P)},{size:"small"});return}f(P)},[f,S,P,C,h,L,w]),z=(0,se.useCallback)((U,ce)=>H(P,U,ce),[H,P]),A=(0,se.useCallback)(U=>k(P,{options:{...y.current,title:U}}),[k,P]),_=(0,se.useCallback)(U=>N(U),[]),ie=(0,se.useCallback)(U=>(T.current=U,()=>{T.current=null}),[]),de=(0,se.useMemo)(()=>({requestClose:Y,setDirty:z,setTitle:A,setIcon:_,onCloseRequested:ie,containerType:"modal",instanceId:P}),[Y,z,A,_,ie,P]),re=C?`${L} *`:L,K=p.size?`v2-modal-size-${p.size}`:"v2-modal-size-auto",Z=p.closable!==!1;(0,se.useEffect)(()=>{if(!r||!Z)return;let U=ce=>{ce.key==="Escape"&&(ce.stopPropagation(),Y())};return document.addEventListener("keydown",U),()=>document.removeEventListener("keydown",U)},[Y,Z,r]);let fe=1e4+o*10;return(0,ee.jsxs)("div",{className:"v2-modal-overlay",style:{zIndex:fe},dir:x,children:[(0,ee.jsx)("div",{className:"v2-modal-curtain",onClick:Z?()=>Y():void 0}),(0,ee.jsxs)("div",{className:`v2-modal-window ${K} ${D??""}`,children:[(0,ee.jsxs)("div",{className:"v2-modal-header",children:[$&&(0,ee.jsx)("div",{className:"v2-modal-icon",children:$}),(0,ee.jsx)("h4",{className:"v2-modal-title",children:re}),Z&&(0,ee.jsx)("button",{className:"v2-modal-close-button",onClick:()=>Y(),title:B(w.closeTooltip),type:"button",children:(0,ee.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,ee.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,ee.jsx)("div",{className:`v2-modal-body ${g??""}`,children:(0,ee.jsx)(Me,{value:de,children:(0,ee.jsx)(I,{...F,panelId:P})})})]})]})},rn=()=>{let{modals:s}=Pe();return s.length===0?null:(0,ee.jsx)(ee.Fragment,{children:s.map((o,r)=>(0,ee.jsx)(an,{modal:o,index:r,isTopmost:r===s.length-1},o.id))})},Ot=rn;var te=require("react");var J=require("react/jsx-runtime"),at=({panel:s,position:o,defaultWidth:r})=>{let{close:f,openModal:S,updateInstance:k,setDirty:H,registerCloseHandler:B,unregisterCloseHandler:w}=we(),{modals:x}=Pe(),D=ae(),g=le(),{dir:T}=pe(),{sidePanelClass:P,sidePanelBodyClass:I}=ye(),F=(0,te.useRef)(null),{id:d,Component:C,props:h,options:p,dirty:$,dirtyOptions:N}=s,y=p,[L,Y]=(0,te.useState)(y.icon||null),z=(0,te.useRef)(y);z.current=y;let A=q(y.title,D),_=(0,te.useCallback)(async Q=>{if(Q?.force){f(d);return}if(F.current){if(!await F.current())return;f(d);return}if($){S(xe,{title:N?.title||g.unsavedChangesTitle,message:N?.message||{id:g.unsavedChangesMessage.id,defaultMessage:g.unsavedChangesMessage.defaultMessage,values:{title:A}},alert:N?.alert,alertType:N?.alertType||"danger",useYesNoTitles:!0,onOK:()=>f(d)},{size:"small"});return}f(d)},[f,S,d,$,N,A,g]),ie=(0,te.useCallback)(async()=>F.current?await F.current():!$,[$]);(0,te.useEffect)(()=>(B(d,ie),()=>w(d)),[d,ie,B,w]);let de=(0,te.useCallback)((Q,V)=>H(d,Q,V),[H,d]),re=(0,te.useCallback)(Q=>k(d,{options:{...z.current,title:Q}}),[k,d]),K=(0,te.useCallback)(Q=>Y(Q),[]),Z=(0,te.useCallback)(Q=>(F.current=Q,()=>{F.current=null}),[]),he=(0,te.useMemo)(()=>({requestClose:_,setDirty:de,setTitle:re,setIcon:K,onCloseRequested:Z,containerType:o==="left"?"left-panel":"right-panel",instanceId:d}),[_,de,re,K,Z,o,d]),fe=$?`${A} *`:A;(0,te.useEffect)(()=>{let Q=V=>{V.key==="Escape"&&x.length===0&&_()};return document.addEventListener("keydown",Q),()=>document.removeEventListener("keydown",Q)},[_,x.length]);let U=y.width||r||400,ce=typeof U=="number"?`${U}px`:U;return(0,J.jsx)("div",{className:`v2-side-panel v2-side-panel-${o} v2-side-panel-visible ${P??""}`,style:{width:ce},dir:T,children:(0,J.jsxs)("div",{className:"v2-side-panel-window",children:[(0,J.jsxs)("div",{className:"v2-side-panel-header",children:[L&&(0,J.jsx)("div",{className:"v2-side-panel-icon",children:L}),(0,J.jsx)("h4",{className:"v2-side-panel-title",children:fe}),(0,J.jsx)("button",{className:"v2-side-panel-close-button",onClick:()=>_(),title:D(g.closeTooltip),type:"button",children:(0,J.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,J.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,J.jsx)("div",{className:`v2-side-panel-body ${I??""}`,children:(0,J.jsx)(Me,{value:he,children:(0,J.jsx)(C,{...h,panelId:d})})})]})})},ln=({defaultWidth:s})=>{let{leftPanel:o,rightPanel:r}=Pe();return(0,J.jsxs)(J.Fragment,{children:[o&&(0,J.jsx)(at,{panel:o,position:"left",defaultWidth:s},o.id),r&&(0,J.jsx)(at,{panel:r,position:"right",defaultWidth:s},r.id)]})},Wt=({defaultWidth:s})=>{let{leftPanel:o}=Pe();return o?(0,J.jsx)(at,{panel:o,position:"left",defaultWidth:s},o.id):null},Dt=({defaultWidth:s})=>{let{rightPanel:o}=Pe();return o?(0,J.jsx)(at,{panel:o,position:"right",defaultWidth:s},o.id):null},At=ln;var ne=require("react");var oe=require("react/jsx-runtime"),Bt=(0,ne.forwardRef)(function({position:o="right",tabs:r,drawerWidth:f="220px",activeTabId:S,onActiveTabChange:k,children:H},B){let w=S!==void 0,x=ae(),D=le(),[g,T]=(0,ne.useState)(null),P=w?S:g,[I,F]=(0,ne.useState)(()=>{let y=new Set;for(let L of r)L.eagerMount&&y.add(L.id);return y});(0,ne.useEffect)(()=>{let y=r.filter(L=>L.eagerMount&&!I.has(L.id));y.length>0&&F(L=>{let Y=new Set(L);for(let z of y)Y.add(z.id);return Y})},[r]);let d=(0,ne.useRef)(P??null);(0,ne.useEffect)(()=>{d.current=P??null},[P]);let C=(0,ne.useCallback)(y=>{w||T(y),k?.(y)},[w,k]);(0,ne.useImperativeHandle)(B,()=>({openTab:y=>C(y),closeDrawer:()=>C(null),getActiveTab:()=>d.current}),[C]);let h=y=>{C(P===y?null:y)},p=(0,ne.useCallback)(()=>C(null),[C]);(0,ne.useEffect)(()=>{P&&!I.has(P)&&F(y=>{let L=new Set(y);return L.add(P),L})},[P,I]),(0,ne.useEffect)(()=>{P===null&&F(y=>{let L=!1,Y=new Set(y);for(let z of y){let A=r.find(_=>_.id===z);A&&!A.eagerMount&&!A.preserveState&&(Y.delete(z),L=!0)}return L?Y:y})},[P,r]);let $=(0,oe.jsx)("div",{className:`sidebar-tabs-strip ${o}`,style:{width:"56px",height:"100%"},children:r.map(y=>{let L=P===y.id;return(0,oe.jsx)("button",{type:"button",onClick:()=>h(y.id),className:`sidebar-tab-btn ${L?"active":""}`,title:y.label,"aria-pressed":L,children:y.icon},y.id)})}),N=(0,oe.jsx)("div",{className:`sidebar-content-drawer h-100 ${o}`,style:{width:P?f:"0px",minWidth:P?f:"0px",overflow:"hidden",flexShrink:0},children:r.map(y=>{if(!I.has(y.id))return null;let Y=P===y.id,z=()=>C(y.id);return(0,oe.jsxs)("div",{style:{display:Y?"flex":"none",flexDirection:"column",height:"100%",width:"100%"},children:[(0,oe.jsxs)("div",{className:"sidebar-drawer-header",children:[(0,oe.jsx)("span",{className:"sidebar-header-title",children:y.label}),(0,oe.jsx)("button",{type:"button",onClick:p,className:"sidebar-close-btn",title:x(D.closePanelTooltip),"aria-label":x(D.closePanelTooltip),children:(0,oe.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,oe.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,oe.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),(0,oe.jsx)("div",{className:"sidebar-drawer-body",children:y.renderContent(y.id,p,z)})]},y.id)})});return(0,oe.jsxs)(oe.Fragment,{children:[o==="left"&&$,o==="left"&&N,H,o==="right"&&N,o==="right"&&$]})});0&&(module.exports={ConfirmationForm,FormContainerContext,FormContainerProvider,LeftPanelRenderer,ModalStackRenderer,PanelProvider,PanelRegistry,RightPanelRenderer,SidePanelRenderer,Sidebar,WindowManager,WindowManagerProvider,WorkspaceClient,defaultPredefinedMessages,formatLabel,useFormContainer,useFormatMessage,usePanelActions,usePanelContext,usePanelState,usePredefinedMessages,useStyleClasses,useWindowManagerActions,useWindowManagerState});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|