react-dockable-desktop 1.1.0 → 1.2.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/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +321 -5
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Dt=Object.create;var Ye=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Bt=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 S of Ht(l))!$t.call(n,S)&&S!==r&&Ye(n,S,{get:()=>l[S],enumerable:!(h=At(l,S))||h.enumerable});return n};var Yt=(n,l,r)=>(r=n!=null?Dt(Bt(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:()=>Se,FormContainerContext:()=>qe,FormContainerProvider:()=>ke,LeftPanelRenderer:()=>Tt,ModalStackRenderer:()=>St,PanelProvider:()=>xt,PanelRegistry:()=>te,RightPanelRenderer:()=>zt,SidePanelRenderer:()=>Lt,Sidebar:()=>Et,WindowManager:()=>It,WindowManagerProvider:()=>mt,defaultPredefinedMessages:()=>Ne,formatLabel:()=>X,useFormContainer:()=>je,useFormatMessage:()=>de,usePanelActions:()=>Ie,usePanelContext:()=>ht,usePanelState:()=>Ce,usePredefinedMessages:()=>ue,useStyleClasses:()=>we,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)({}),we=()=>(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"}]},jt={"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"}},Kt=[{id:"live-preview",x:450,y:200,width:320,height:250,z:1e3}],mt=({children:n,formatMessage:l,predefinedMessages:r,dir:h,modalClass:S,modalBodyClass:M,sidePanelClass:A,sidePanelBodyClass:F,windowClass:C,windowBodyClass:R})=>{let[z,c]=(0,P.useState)({gridRoot:qt,floating:Kt,minimized:[],panels:jt,draggedPanelId:null,activePanelId:"main-map",dir:h||"ltr",isRtl:h==="rtl"}),x=(0,P.useRef)(z);x.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(H=>{let I=typeof H.x=="string"?parseFloat(H.x):H.x,N=typeof H.y=="string"?parseFloat(H.y):H.y;return!H.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),w=Math.max(100,window.innerHeight||768);return(o+a>v||e+i>w)&&(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,w-40)),{x:o,y:e,width:a,height:i}},[]),B=(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))}},T=t=>{if(t.type==="leaf")return t.id;for(let s of t.children){let o=T(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=T(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 B(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},H={...e.panels,[t]:D};if(u==="floating"){p.current+=1;let I=k(v,e.floating),N=o?.stickyRight??i?.defaultOptions?.defaultStickyRight??!1,K=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,xe=I.x,ze=I.y,Ee=10;return N&&(xe=Z-pe-Ee),K&&(ze=ee-ye-Ee),{...e,floating:[...e.floating,{...I,id:t,z:p.current,x:xe,y:ze,stickyRight:N,stickyBottom:K}],panels:H}}else{let I=T(e.gridRoot)||"group-left-top";return{...e,gridRoot:f(e.gridRoot,I,t),panels:H}}})},[k,B]),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})},[]),j=(0,P.useCallback)(async(t,s)=>{if(s?.force){G(t);return}let o=b.current[t];if(o&&!await o())return;let e=x.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 w of v.children){let D=u(w);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=(w,D)=>w.type==="leaf"?w.id===D:w.children.some(H=>i(H,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 w=o.lastFloatingRect||u?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},D=k(w,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 w=T(s.gridRoot)||"group-left-top";return{...s,minimized:e,gridRoot:f(s.gridRoot,w,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||T(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}})},[]),Te=(0,P.useCallback)((t,s,o)=>{c(e=>{let a=e.panels[t];if(!a)return e;let i=$(e.gridRoot,t),m=w=>{if(w.type==="leaf"){if(w.id===s){let D=w.panels.filter(N=>N!==t),H=Math.max(0,Math.min(o,D.length)),I=[...D];return I.splice(H,0,t),{...w,panels:I,activePanelId:t}}return w}else return{...w,children:w.children.map(m)}},u=m(i||e.gridRoot),v=e.floating.filter(w=>w.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,w)=>v+w,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)}))},[]),He=(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)}))},[]),Be=(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:He,updateFloatingPosition:Be,bringToFront:B,saveLayout:$e,loadLayout:Ge,publish:g,subscribe:y,setDraggedPanelId:le,dockPanelToGroup:q,movePanelOrder:Te,closeLeafGroup:Me,registerCloseGuard:Y,unregisterCloseGuard:_,setPanelDirty:ce,updatePanelTitle:me,requestClosePanel:j,dockPanelToWorkspaceEdge:Pe,setActivePanel:Le,setDirection:he}),[E,G,ie,re,be,ve,Ae,He,Be,B,$e,Ge,g,y,le,q,Te,Me,Y,_,ce,me,j,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:S,modalBodyClass:M,sidePanelClass:A,sidePanelBodyClass:F,windowClass:C,windowBodyClass:R}),[S,M,A,F,C,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,S])=>{r=r.replace(`{${h}}`,String(S))}),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 wt=require("replace-react-contexify"),kn=require("replace-react-contexify/styles.css");var Xe=require("react"),Ut={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)(Ut),ke=qe.Provider,je=()=>(0,Xe.useContext)(qe);var U=require("react"),it=require("react/jsx-runtime"),Jt=0,ot=()=>`panel-${++Jt}-${Date.now()}`,Ke=new Map,bt={leftPanel:null,rightPanel:null,modals:[]},vt=(0,U.createContext)(null),Pt=(0,U.createContext)(null),xt=({children:n})=>{let[l,r]=(0,U.useState)(bt),h=(0,U.useRef)(l);h.current=l;let S=(0,U.useCallback)((p,y)=>{Ke.set(p,y)},[]),M=(0,U.useCallback)(p=>{Ke.delete(p)},[]),A=(0,U.useCallback)(async(p,y,g={})=>{let k=h.current.leftPanel;if(k){let f=Ke.get(k.id);if(f&&!await f())return null}let B=ot(),$={id:B,Component:p,props:y,containerType:"left-panel",options:g};return r(f=>({...f,leftPanel:$})),B},[]),F=(0,U.useCallback)(async(p,y,g={})=>{let k=h.current.rightPanel;if(k){let f=Ke.get(k.id);if(f&&!await f())return null}let B=ot(),$={id:B,Component:p,props:y,containerType:"right-panel",options:g};return r(f=>({...f,rightPanel:$})),B},[]),C=(0,U.useCallback)((p,y,g={})=>{let k=ot(),B=y.title,$={...g,title:g.title||B||"Confirmation"},f={id:k,Component:p,props:y,containerType:"modal",options:$};return r(T=>({...T,modals:[...T.modals,f]})),k},[]),R=(0,U.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,U.useCallback)(()=>{r(bt)},[]),c=(0,U.useCallback)(()=>{r(p=>({...p,modals:[]}))},[]),x=(0,U.useCallback)(p=>l.leftPanel?.id===p?l.leftPanel:l.rightPanel?.id===p?l.rightPanel:l.modals.find(y=>y.id===p),[l]),b=(0,U.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,U.useCallback)((p,y,g)=>{b(p,{dirty:y,dirtyOptions:g})},[b]),W=(0,U.useMemo)(()=>({openLeftPanel:A,openRightPanel:F,openModal:C,close:R,closeAll:z,closeAllModals:c,getInstance:x,updateInstance:b,setDirty:L,registerCloseHandler:S,unregisterCloseHandler:M}),[A,F,C,R,z,c,x,b,L,S,M]);return(0,it.jsx)(vt.Provider,{value:l,children:(0,it.jsx)(Pt.Provider,{value:W,children:n})})},Ce=()=>{let n=(0,U.useContext)(vt);if(!n)throw new Error("usePanelState must be used within PanelProvider");return n},Ie=()=>{let n=(0,U.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:S=!1,onOK:M,onCancel:A})=>{let{requestClose:F,setIcon:C,setTitle:R}=je(),z=de(),c=ue(),x=(0,We.useRef)(null);(0,We.useEffect)(()=>{if(n){let g=typeof n=="string"?n:z(n);R(g)}C&&C((0,ge.jsx)("span",{children:"\u2753"}))},[n,R,C,z]),(0,We.useEffect)(()=>{x.current?.focus()},[]);let b=typeof l=="string"?l:z(l),L=z(S?c.no:c.cancel),W=z(S?c.yes:c.ok),p=g=>{g.preventDefault(),M?.(),F()},y=()=>{A?.(),F()};return(0,ge.jsxs)("form",{onSubmit:p,className:"p-3 d-flex flex-column gap-3",children:[r&&(0,ge.jsxs)("div",{className:`alert alert-${h==="danger"?"danger":h} d-flex align-items-center gap-2 m-0 p-2.5 small`,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",{className:"my-2 opacity-10"}),(0,ge.jsxs)("div",{className:"d-flex justify-content-end gap-2",children:[(0,ge.jsx)("button",{type:"button",className:"btn btn-sm btn-outline-secondary font-monospace",onClick:y,children:L}),(0,ge.jsx)("button",{type:"submit",className:"btn btn-sm btn-primary font-monospace",ref:x,children:W})]})]})},Se=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"})]}),Ct=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:"w-100 h-100 d-flex flex-column align-items-center justify-content-center bg-transparent text-danger font-monospace p-3 text-center",style:{border:"2px dashed var(--bs-danger, #dc3545)"},children:[(0,d.jsx)("h6",{className:"fw-bold mb-1",children:"\u26A0\uFE0F Component Unregistered"}),(0,d.jsxs)("span",{className:"small text-muted",children:["Key: ",l]})]});let h=r.Component;return(0,d.jsx)(h,{panelId:n})},Mt=new Map,Oe=new Map,Ue=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=Ct(n);r.appendChild(h);let S=new ResizeObserver(M=>{for(let A of M){let{width:F,height:C}=A.contentRect;if(F>0&&C>0){Mt.set(n,{width:F,height:C});let R=Oe.get(n);R&&R.onResize.forEach(z=>z(F,C))}}});return S.observe(r),()=>{S.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,className:"w-100 h-100"})},Vt=({panelId:n})=>{let l=fe(),r=de(),h=(0,O.useRef)(null),S=l.panels[n],M=S?te.get(S.component):null,A=M?.defaultOptions?.disableLivePreview||!1,F=Mt.get(n)||{width:800,height:500},C=F.width,R=F.height,x=Math.min(220/C,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=C*x,L=R*x,W=S?.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 d-flex align-items-center justify-content-center",style:{width:`${b}px`,height:`${L}px`,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:`${C*x}px`,height:`${R*x}px`},children:(0,d.jsx)("div",{ref:h,className:"taskbar-item-preview-host",style:{width:`${C}px`,height:`${R}px`,transform:`scale(${x})`,transformOrigin:"top left",position:"absolute",top:0,left:0,"--preview-scale":x}})})},_t=({panelId:n,children:l})=>{let r=fe(),{requestClosePanel:h,setPanelDirty:S,registerCloseGuard:M,unregisterCloseGuard:A,updatePanelTitle:F}=Re(),C=r.minimized.some(c=>c.id===n),R=(0,O.useRef)(C);(0,O.useEffect)(()=>{let c=Oe.get(n);c&&(C&&!R.current?c.onMinimize.forEach(x=>x()):!C&&R.current&&c.onRestore.forEach(x=>x()),R.current=C)},[C,n]),(0,O.useEffect)(()=>()=>{let c=Oe.get(n);c&&(c.onClose.forEach(x=>x()),Oe.delete(n))},[n]);let z=O.default.useMemo(()=>({requestClose:c=>h(n,c),setDirty:c=>S(n,c),onCloseRequested:c=>(M(n,c),()=>A(n)),setTitle:c=>F(n,c),instanceId:n,onClose:c=>{let x=Ue(n);return x.onClose.add(c),()=>x.onClose.delete(c)},onMinimize:c=>{let x=Ue(n);return x.onMinimize.add(c),()=>x.onMinimize.delete(c)},onRestore:c=>{let x=Ue(n);return x.onRestore.add(c),()=>x.onRestore.delete(c)},onResize:c=>{let x=Ue(n);return x.onResize.add(c),()=>x.onResize.delete(c)}}),[n,h,S,M,A,F]);return(0,d.jsx)(ke,{value:z,children:l})},kt=({node:n,path:l,onTabRightClick:r,activeDropZone:h,onHoverDropZone:S,onTabDragStart:M,hoveredTab:A,onTabHover:F,defaultPanelIcon:C,onRequestClosePanel:R})=>{let{updateSplitSizes:z}=Re();if(n.type==="leaf")return(0,d.jsx)(en,{leaf:n,onTabRightClick:r,activeDropZone:h,onHoverDropZone:S,onTabDragStart:M,hoveredTab:A,onTabHover:F,defaultPanelIcon:C,onRequestClosePanel:R});let c=n.orientation==="horizontal",x=(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,B=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",B),window.removeEventListener("mouseup",$)};window.addEventListener("mousemove",B),window.addEventListener("mouseup",$)};return(0,d.jsx)("div",{className:`d-flex w-100 h-100 ${c?"flex-row":"flex-column"}`,style:{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:S,onTabDragStart:M,hoveredTab:A,onTabHover:F,defaultPanelIcon:C,onRequestClosePanel:R})}),L<n.children.length-1&&(0,d.jsx)("div",{onMouseDown:p=>x(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:S,hoveredTab:M,onTabHover:A,defaultPanelIcon:F,onRequestClosePanel:C})=>{let R=fe(),{openPanel:z,closeLeafGroup:c,setActivePanel:x}=Re(),b=de(),L=ue(),{windowClass:W,windowBodyClass:p}=we(),y=g=>{z(g,R.panels[g].component),x(g)};return(0,d.jsxs)("div",{"data-active-panel-id":n.activePanelId||"",className:`workspace-panel w-100 h-100 d-flex flex-column ${W??""}`,style:{overflow:"hidden",position:"relative"},children:[(0,d.jsxs)("div",{className:"workspace-tab-bar d-flex flex-row justify-content-between align-items-center",style:{minHeight:"38px"},children:[(0,d.jsx)("div",{className:"d-flex flex-row overflow-x-auto flex-grow-1 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 B=R.panels[g];if(!B)return null;let $=n.activePanelId===g,f=R.activePanelId===g,E=te.get(B.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:j=>{E?.canDrag!==!1&&S(g,j)},onContextMenu:j=>l(g,j),onMouseMove:j=>{if(R.draggedPanelId){let ie=j.currentTarget.getBoundingClientRect(),be=j.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 d-flex align-items-center",style:{maxWidth:"120px"},children:[(0,d.jsx)("span",{className:"workspace-tab-icon",children:E?.icon||F||at}),(0,d.jsxs)("span",{children:[X(B.title,b),B.dirty?" *":""]})]}),E?.renderHeaderActions&&(0,d.jsx)("span",{className:"tab-header-actions ms-auto d-flex align-items-center me-1",style:{gap:"var(--header-button-gap, 4px)"},onClick:j=>j.stopPropagation(),onMouseDown:j=>j.stopPropagation(),children:E.renderHeaderActions(g)}),E?.canClose!==!1&&(0,d.jsx)("span",{onClick:j=>{j.stopPropagation(),C(g)},title:X(L.closeTab,b),className:`close-tab-x ${E?.renderHeaderActions?"":"ms-auto"} d-flex align-items-center justify-content-center`,style:{width:"18px",height:"18px"},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 d-flex align-items-center justify-content-center me-2 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:`flex-grow-1 w-100 h-100 bg-transparent ${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:"w-100 h-100 d-flex align-items-center justify-content-center font-monospace text-muted small 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:S,requestClosePanel:M,maximizePanel:A,updateFloatingPosition:F,bringToFront:C,floatPanel:R,setDraggedPanelId:z,dockPanelToGroup:c,movePanelOrder:x,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(Se,{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:B,windowBodyClass:$}=we(),f=(0,O.useRef)(null),T=(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,j]=(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,Te]=(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;Te(u),Me.current=u},He=(e,a)=>{let i=a?{leafId:e,position:a}:null;j(i),ie.current=i},Be=(e,a)=>{if(a.button!==0)return;let i=a.clientX,m=a.clientY,u=!1,v=H=>{let I=H.clientX-i,N=H.clientY-m;!u&&(Math.abs(I)>5||Math.abs(N)>5)&&(u=!0,z(e)),u&&be({x:H.clientX,y:H.clientY})},w=H=>{if(window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",D),u){let I=ie.current,N=Me.current,K=le.current;if(K)b(e,K);else if(N){let Z=N.index;N.side==="right"&&(Z+=1),x(e,N.leafId,Z)}else I?c(e,I.leafId,I.position):R(e,{x:H.clientX-150,y:H.clientY-15,width:450,height:350});z(null),j(null),ie.current=null,Te(null),Me.current=null,q(null)}},D=H=>{w(H)};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:()=>S(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&&T.current?.show({event:a,contextMenu:{items:v}})},Ge=(e,a)=>{a.preventDefault(),G(null),T.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),j(null),Te(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,w=typeof i.y=="string"?parseFloat(i.y):i.y,D=m,H=u,I=v,N=w,K=!1;D>e&&(D=Math.max(200,e-20),K=!0),H>a&&(H=Math.max(150,a-40),K=!0);let Z=10;if(i.stickyRight)I=e-D-Z,K=!0;else{let ee=e-100;I>ee&&(I=Math.max(0,ee),K=!0)}if(i.stickyBottom)N=a-H-Z,K=!0;else{let ee=a-40;N>ee&&(N=Math.max(0,ee),K=!0)}K&&F(i.id,{x:I,y:N,width:D,height:H})})},[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),C(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)}},[C,L]);let Ve=(e,a)=>{let i=r.floating.find(Z=>Z.id===e);if(!i||i.maximized)return;C(e);let m=a.clientX,u=a.clientY,w=a.currentTarget.closest(".floating-window"),D=w?w.offsetLeft:0,H=w?w.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,xe=H+pe;F(e,{x:ye,y:xe,stickyRight:!1,stickyBottom:!1})}},K=()=>{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),x(e,ee.leafId,ye)}else Z&&c(e,Z.leafId,Z.position);z(null),j(null),ie.current=null,Te(null),Me.current=null,q(null)}window.removeEventListener("mousemove",N),window.removeEventListener("mouseup",K)};window.addEventListener("mousemove",N),window.addEventListener("mouseup",K)},_e=(e,a)=>{a.stopPropagation();let i=r.floating.find(K=>K.id===e);if(!i||i.maximized)return;C(e);let m=a.clientX,u=a.clientY,w=a.currentTarget.closest(".floating-window"),D=w?w.offsetWidth:400,H=w?w.offsetHeight:300,I=K=>{let Z=K.clientX-m,ee=K.clientY-u,pe=Math.max(200,D+Z),ye=Math.max(150,H+ee),xe=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&&(xe=Ee-pe,xe<0&&(xe=0,pe=Ee)),lt&&(ze=et-ye,ze<0&&(ze=0,ye=et)),F(e,{x:xe,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,className:"d-flex flex-column w-100 h-100 overflow-hidden",style:{userSelect:"none"},dir:r.dir,children:[(0,d.jsxs)("div",{ref:Le,className:`flex-grow-1 w-100 position-relative ${r.draggedPanelId?"dragging-active":""}`,style:{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",{className:"w-100 h-100",style:{overflow:"hidden",position:"relative"},children:r.gridRoot?(0,d.jsx)(kt,{node:r.gridRoot,path:[],onTabRightClick:$e,activeDropZone:me,onHoverDropZone:He,onTabDragStart:Be,hoveredTab:Pe,onTabHover:Ae,defaultPanelIcon:l,onRequestClosePanel:k}):(0,d.jsx)("div",{className:"w-100 h-100 d-flex align-items-center justify-content-center text-muted font-monospace small",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,w=te.get(a.component)?.defaultOptions;return(0,d.jsxs)("div",{"data-window-id":e.id,dir:r.dir,onMouseDownCapture:()=>{L(e.id),C(e.id)},className:`floating-window ${i?"maximized":""} ${u?"v2-window-focused":""} ${B??""}`,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=>{w?.canDrag!==!1&&Ve(e.id,D)},className:"floating-window-titlebar d-flex flex-row justify-content-between align-items-center cursor-move",style:{cursor:i||w?.canDrag===!1?"default":"move"},children:[(0,d.jsxs)("span",{className:"floating-window-title text-truncate me-2 d-flex align-items-center",children:[(0,d.jsx)("span",{className:"window-title-icon",children:w?.icon||l||at}),(0,d.jsxs)("span",{children:[X(a.title,y),a.dirty?" *":""]})]}),(0,d.jsxs)("div",{className:"d-flex align-items-center",style:{gap:"var(--header-button-gap, 4px)"},onMouseDown:D=>D.stopPropagation(),children:[w?.renderHeaderActions&&(0,d.jsx)("div",{className:"window-header-actions d-flex align-items-center me-1",style:{gap:"var(--header-button-gap, 4px)"},children:w.renderHeaderActions(e.id)}),w?.canDrag!==!1&&(0,d.jsx)("button",{type:"button",title:X(g.windowAnchoringOptions,y),onClick:D=>{let H=!!e.stickyRight,I=!!e.stickyBottom;T.current?.show({event:D,contextMenu:{items:[{label:X(g.anchorToRightEdge,y),checkbox:{active:!0,enabled:!0,value:H},action:()=>{let N=he.width,K=typeof e.width=="string"?parseFloat(e.width):e.width;H?F(e.id,{stickyRight:!1}):F(e.id,{x:N-K-10,stickyRight:!0})}},{label:X(g.anchorToBottomEdge,y),checkbox:{active:!0,enabled:!0,value:I},action:()=>{let N=he.height,K=typeof e.height=="string"?parseFloat(e.height):e.height;I?F(e.id,{stickyBottom:!1}):F(e.id,{y:N-K-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"})})}),w?.canMinimize!==!1&&(0,d.jsx)("button",{type:"button",title:X(g.minimize,y),onClick:()=>S(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"})})}),w?.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:`flex-grow-1 w-100 overflow-hidden ${$??""}`,style:{position:"relative"},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:"flex-shrink-0 w-100 d-flex flex-row align-items-center taskbar-footer-container px-3 py-1.5 justify-content-center",style:{height:"48px",zIndex:100},children:[(0,d.jsx)("button",{type:"button",onClick:()=>t("left"),className:"btn btn-sm btn-link taskbar-nav-btn text-decoration-none py-0 font-monospace",style:{display:r.minimized.length>4?"block":"none"},children:"\u25C0"}),(0,d.jsx)("div",{ref:f,className:"d-flex flex-row gap-2 overflow-x-auto align-items-center mx-2 px-1 py-0.5 scrollbar-hidden",style:{maxWidth:"800px",scrollbarWidth:"none",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 rounded d-flex align-items-center justify-content-center cursor-pointer hover-elevate",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 d-flex align-items-center justify-content-center",children:i})},e.id)})}),E&&(0,st.createPortal)((0,d.jsxs)("div",{className:"taskbar-item-tooltip d-flex flex-column gap-1",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:"d-flex flex-row align-items-center justify-content-between w-100 gap-3 px-1 py-0.5",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 d-flex align-items-center justify-content-center",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:"btn btn-sm btn-link taskbar-nav-btn text-decoration-none py-0 font-monospace",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=Ct(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)(wt.JsonContextMenu,{ref:T,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:"position-fixed bg-black bg-opacity-80 border border-info rounded text-info font-monospace px-3 py-1.5 shadow-lg d-flex align-items-center gap-2",style:{left:re.x+12,top:re.y+12,zIndex:1e5,pointerEvents:"none",fontSize:"0.75rem",boxShadow:"0 8px 24px rgba(0,0,0,0.5)",borderLeft:"3px solid var(--accent-color)",whiteSpace:"nowrap"},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:S,updateInstance:M,setDirty:A}=Ie(),F=de(),C=ue(),{dir:R}=fe(),{modalClass:z,modalBodyClass:c}=we(),x=(0,ae.useRef)(null),{id:b,Component:L,props:W,options:p,dirty:y,dirtyOptions:g}=n,k=p,[B,$]=(0,ae.useState)(k.icon||null),f=(0,ae.useRef)(k);f.current=k;let T=X(k.title,F),E=(0,ae.useCallback)(async J=>{if(J?.force){h(b);return}if(x.current){if(!await x.current())return;h(b);return}if(y){S(Se,{title:g?.title||C.unsavedChangesTitle,message:g?.message||{id:C.unsavedChangesMessage.id,defaultMessage:C.unsavedChangesMessage.defaultMessage,values:{title:T}},alert:g?.alert,alertType:g?.alertType||"danger",useYesNoTitles:!0,onOK:()=>h(b)},{size:"small"});return}h(b)},[h,S,b,y,g,T,C]),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=>(x.current=J,()=>{x.current=null}),[]),me=(0,ae.useMemo)(()=>({requestClose:E,setDirty:G,setTitle:Y,setIcon:_,onCloseRequested:ce,containerType:"modal",instanceId:b}),[E,G,Y,_,ce,b]),j=y?`${T} *`:T,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:[B&&(0,V.jsx)("div",{className:"v2-modal-icon",children:B}),(0,V.jsx)("h4",{className:"v2-modal-title",children:j}),re&&(0,V.jsx)("button",{className:"v2-modal-close-button",onClick:()=>E(),title:F(C.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}=Ce();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))})},St=on;var ne=require("react");var Q=require("react/jsx-runtime"),Ze=({panel:n,position:l,defaultWidth:r})=>{let{close:h,openModal:S,updateInstance:M,setDirty:A,registerCloseHandler:F,unregisterCloseHandler:C}=Ie(),{modals:R}=Ce(),z=de(),c=ue(),{dir:x}=fe(),{sidePanelClass:b,sidePanelBodyClass:L}=we(),W=(0,ne.useRef)(null),{id:p,Component:y,props:g,options:k,dirty:B,dirtyOptions:$}=n,f=k,[T,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(B){S(Se,{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,S,p,B,$,Y,c]),ce=(0,ne.useCallback)(async()=>W.current?await W.current():!B,[B]);(0,ne.useEffect)(()=>(F(p,ce),()=>C(p)),[p,ce,F,C]);let me=(0,ne.useCallback)((q,Pe)=>A(p,q,Pe),[A,p]),j=(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:j,setIcon:ie,onCloseRequested:re,containerType:l==="left"?"left-panel":"right-panel",instanceId:p}),[_,me,j,ie,re,l,p]),ve=B?`${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:x,children:(0,Q.jsxs)("div",{className:"v2-side-panel-window",children:[(0,Q.jsxs)("div",{className:"v2-side-panel-header",children:[T&&(0,Q.jsx)("div",{className:"v2-side-panel-icon",children:T}),(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}=Ce();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)]})},Tt=({defaultWidth:n})=>{let{leftPanel:l}=Ce();return l?(0,Q.jsx)(Ze,{panel:l,position:"left",defaultWidth:n},l.id):null},zt=({defaultWidth:n})=>{let{rightPanel:l}=Ce();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:S,onActiveTabChange:M,children:A},F){let C=S!==void 0,R=de(),z=ue(),[c,x]=(0,oe.useState)(null),b=C?S:c,[L,W]=(0,oe.useState)(()=>{let f=new Set;for(let T of r)T.eagerMount&&f.add(T.id);return f});(0,oe.useEffect)(()=>{let f=r.filter(T=>T.eagerMount&&!L.has(T.id));f.length>0&&W(T=>{let E=new Set(T);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=>{C||x(f),M?.(f)},[C,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 T=new Set(f);return T.add(b),T})},[b,L]),(0,oe.useEffect)(()=>{b===null&&W(f=>{let T=!1,E=new Set(f);for(let G of f){let Y=r.find(_=>_.id===G);Y&&!Y.eagerMount&&!Y.preserveState&&(E.delete(G),T=!0)}return T?E:f})},[b,r]);let B=(0,se.jsx)("div",{className:`sidebar-tabs-strip ${l}`,style:{width:"56px",height:"100%"},children:r.map(f=>{let T=b===f.id;return(0,se.jsx)("button",{type:"button",onClick:()=>g(f.id),className:`sidebar-tab-btn ${T?"active":""}`,title:f.label,"aria-pressed":T,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:"d-flex align-items-center justify-content-between border-bottom border-secondary-subtle px-3 py-2 flex-shrink-0",style:{background:"rgba(0,0,0,0.08)",minHeight:"38px"},children:[(0,se.jsx)("span",{className:"sidebar-header-title",children:f.label}),(0,se.jsx)("button",{type:"button",onClick:k,className:"btn btn-link p-0 text-secondary d-flex align-items-center",style:{textDecoration:"none"},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:"flex-grow-1 overflow-auto",children:f.renderContent(f.id,k,G)})]},f.id)})});return(0,se.jsxs)(se.Fragment,{children:[l==="left"&&B,l==="left"&&$,A,l==="right"&&$,l==="right"&&B]})});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 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});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|