react-dockable-desktop 5.1.1 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
- "use strict";var Fo=Object.create;var Kt=Object.defineProperty;var _o=Object.getOwnPropertyDescriptor;var Ho=Object.getOwnPropertyNames;var Bo=Object.getPrototypeOf,$o=Object.prototype.hasOwnProperty;var Go=(e,t)=>{for(var n in t)Kt(e,n,{get:t[n],enumerable:!0})},En=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of Ho(t))!$o.call(e,m)&&m!==n&&Kt(e,m,{get:()=>t[m],enumerable:!(o=_o(t,m))||o.enumerable});return e};var mn=(e,t,n)=>(n=e!=null?Fo(Bo(e)):{},En(t||!e||!e.__esModule?Kt(n,"default",{value:e,enumerable:!0}):n,e)),Yo=e=>En(Kt({},"__esModule",{value:!0}),e);var Tr={};Go(Tr,{ConfirmationForm:()=>je,ContextMenu:()=>Jt,ContextMenuProvider:()=>Qt,DefaultContextMenuAdapter:()=>ut,DockableDesktopProvider:()=>so,FormContainerContext:()=>qt,FormContainerProvider:()=>Ke,LeftPanelRenderer:()=>lo,ModalStackRenderer:()=>ao,PanelContributionProvider:()=>an,PanelFloatingWindow:()=>In,PanelOverlayRoot:()=>So,PanelProvider:()=>tn,PanelRegistry:()=>Nt,PanelRegistryClass:()=>dt,PanelToolbar:()=>ko,PanelToolbarItem:()=>No,PanelToolbarSeparator:()=>Lo,RightPanelRenderer:()=>co,SidePanelRenderer:()=>uo,Sidebar:()=>fo,ToastContainer:()=>xo,Toolbar:()=>yo,ToolbarButton:()=>Io,ToolbarCenter:()=>Do,ToolbarProvider:()=>Ft,ToolbarSearchInput:()=>Wo,ToolbarSpacer:()=>zo,ToolbarToggle:()=>Eo,WindowManager:()=>Jn,WindowManagerProvider:()=>jt,WorkspaceClient:()=>sn,computeResizedRect:()=>Tt,defaultPredefinedMessages:()=>Pt,formatLabel:()=>ge,isSerializable:()=>ct,sidebarSectionToTab:()=>Mn,startPointerDrag:()=>Ge,toast:()=>Po,useActivePanelContribution:()=>ln,useColorScheme:()=>on,useFormContainer:()=>lt,useFormatMessage:()=>We,useMergedSidebarTabs:()=>oo,useMergedToolbarItems:()=>no,usePanelActions:()=>Ze,usePanelContext:()=>Hn,usePanelContextMenu:()=>Bn,usePanelContribution:()=>to,usePanelFloatingWindow:()=>Oo,usePanelFloatingWindowManager:()=>Ao,usePanelId:()=>Dt,usePanelSize:()=>Ln,usePanelState:()=>$e,usePredefinedMessages:()=>Fe,useRegistry:()=>Ct,useShowContextMenu:()=>Yn,useSidebar:()=>ho,useSidebarTab:()=>bo,useStyleClasses:()=>Be,useToolbar:()=>_t,useWindowManagerActions:()=>wt,useWindowManagerState:()=>ze});module.exports=Yo(Tr);var K=mn(require("react"),1),xn=require("react-dom");var O=require("react");var yt=require("react"),Xo={requestClose:()=>{console.warn("FormContainerContract: requestClose called but no container is present")},setDirty:()=>{},onCloseRequested:()=>()=>{},registerStateProvider:()=>()=>{},setTitle:()=>{},setIcon:()=>{},containerType:"standalone",instanceId:"standalone",onClose:()=>()=>{},onMinimize:()=>()=>{},onRestore:()=>()=>{},onResize:()=>()=>{},requestMinimize:()=>{},getDimensions:()=>null,onActivate:()=>()=>{},onDeactivate:()=>()=>{},onContainerTypeChange:()=>()=>{}},qt=(0,yt.createContext)(Xo),Ke=qt.Provider,lt=()=>(0,yt.useContext)(qt),Ln=()=>{let{onResize:e,getDimensions:t}=lt();return(0,yt.useSyncExternalStore)(n=>e?e(()=>n()):()=>{},()=>t?t():null)};var dt=class{registry=new Map;register(t,n,o){this.registry.set(t,{Component:n,defaultOptions:o})}get(t){return this.registry.get(t)}getRegisteredIds(){return Array.from(this.registry.keys())}},Nt=new dt;var Pt={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"},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 zn=require("react");function ct(e){if(e===null)return!0;if(e===void 0)return!1;let t=typeof e;if(t==="string"||t==="number"||t==="boolean")return!0;if(t==="function"||t==="symbol"||t==="bigint")return!1;if(e instanceof Date)return!0;if((0,zn.isValidElement)(e))return!1;if(Array.isArray(e))return e.every(ct);let n=Object.getPrototypeOf(e);return n!==Object.prototype&&n!==null?!1:Object.values(e).every(ct)}var qe=require("react/jsx-runtime"),xt=(0,O.createContext)(null),Zt=(0,O.createContext)(null),Dn=(0,O.createContext)(null),Wn=(0,O.createContext)(null),On=(0,O.createContext)(Pt),An=(0,O.createContext)({}),Be=()=>(0,O.useContext)(An),Fn=(0,O.createContext)(Nt),Ct=()=>(0,O.useContext)(Fn),fn=class{listeners={};subscribe(t,n){return this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(n),()=>{this.listeners[t]=this.listeners[t].filter(o=>o!==n)}}publish(t,n){this.listeners[t]&&this.listeners[t].forEach(o=>o(n))}},Vo={type:"leaf",id:"group-default",panels:[],activePanelId:null};function _n(e){if(!e||!e.gridRoot||!Array.isArray(e.floating)||!Array.isArray(e.minimized)||!e.panels)return null;let t=e.floating.map(n=>{if("stickyRight"in n||"stickyBottom"in n){let o=n.stickyRight&&n.stickyBottom?"bottom-right":n.stickyRight?"top-right":n.stickyBottom?"bottom-left":null,{stickyRight:m,stickyBottom:s,...I}=n;return{...I,anchor:o}}return n});return{gridRoot:e.gridRoot,floating:t,minimized:e.minimized,panels:e.panels}}function Ko(e){if(e)try{let t=_n(JSON.parse(e));if(t)return{...t,activePanelId:Object.keys(t.panels)[0]??null}}catch{}return{gridRoot:Vo,floating:[],minimized:[],panels:{},activePanelId:null}}var jt=({children:e,client:t,formatMessage:n,predefinedMessages:o,dir:m,modalClass:s,modalBodyClass:I,sidePanelClass:b,sidePanelBodyClass:T,windowClass:w,windowBodyClass:x,zIndexBase:v})=>{let S=(0,O.useRef)(t?.registry??Nt).current,E=t?.config.formatMessage??n,D=t?.config.predefinedMessages??o,N=t?.config.dir??m,d=t?.config.zIndexBase??v??1e3,[L,R]=(0,O.useState)(()=>({...Ko(t?.initialState??null),draggedPanelId:null,dir:N||"ltr",isRtl:N==="rtl",splitRatio:Math.min(.9,Math.max(.1,t?.config.defaultSplitRatio??.5)),edgeSplitRatio:Math.min(.9,Math.max(.1,t?.config.defaultEdgeSplitRatio??.2))})),z=(0,O.useRef)(L);z.current=L;let g=(0,O.useRef)(new Set);(0,O.useEffect)(()=>{g.current.forEach(i=>i())},[L]);let P=(0,O.useCallback)(()=>z.current,[]),H=(0,O.useCallback)(i=>(g.current.add(i),()=>g.current.delete(i)),[]),$=(0,O.useRef)({}),l=(0,O.useRef)({}),W=(0,O.useMemo)(()=>({...Pt,...D}),[D]),Y=(0,O.useRef)(new fn),q=(0,O.useRef)(d);(0,O.useEffect)(()=>(document.documentElement.style.setProperty("--rdd-z-base",String(d)),()=>{document.documentElement.style.removeProperty("--rdd-z-base")}),[d]);let j=(0,O.useCallback)((i,y)=>Y.current.subscribe(i,y),[]),pe=(0,O.useCallback)((i,y)=>{Y.current.publish(i,y)},[]),ee=(0,O.useCallback)((i,y)=>{let c=typeof i.x=="string"?parseFloat(i.x):i.x,a=typeof i.y=="string"?parseFloat(i.y):i.y,G=typeof i.width=="string"?parseFloat(i.width):i.width,r=typeof i.height=="string"?parseFloat(i.height):i.height;isNaN(c)&&(c=300),isNaN(a)&&(a=150),isNaN(G)&&(G=450),isNaN(r)&&(r=350);let C=M=>y.some(A=>{let _=typeof A.x=="string"?parseFloat(A.x):A.x,Q=typeof A.y=="string"?parseFloat(A.y):A.y;return!A.maximized&&Math.abs(_-M.x)<20&&Math.abs(Q-M.y)<20}),p=0;for(;C({x:c,y:a})&&p<10;)c+=30,a+=30,p++;let u=Math.max(100,window.innerWidth||1024),h=Math.max(100,window.innerHeight||768);return(c+G>u||a+r>h)&&(c=100+p%5*30,a=100+p%5*30),c=Math.max(0,Math.min(c,u-100)),a=Math.max(0,Math.min(a,h-40)),{x:c,y:a,width:G,height:r}},[]),Pe=(0,O.useCallback)(i=>{R(y=>{let c=y.panels[i];if(!c)return y;if(c.state==="floating"){let a=y.floating.find(r=>r.id===i);if(!a)return y;let G=!y.floating.some(r=>r.z>a.z);return G&&y.activePanelId===i?y:(G||(q.current+=1),{...y,floating:y.floating.map(r=>r.id===i?{...r,z:G?a.z:q.current}:r),activePanelId:i})}else if(c.state==="docked"){if(y.activePanelId===i)return y;let a=G=>G.type==="leaf"?G.panels.includes(i)?{...G,activePanelId:i}:G:{...G,children:G.children.map(a)};return{...y,gridRoot:a(y.gridRoot),activePanelId:i}}return y.activePanelId===i?y:{...y,activePanelId:i}})},[]),ne=(i,y)=>{if(i.type==="leaf"){let c=i.panels.indexOf(y);if(c===-1)return i;let a=i.panels.filter(C=>C!==y),G=i.activePanelId===y?a[c]||a[c-1]||a[0]||null:i.activePanelId,r={...i,panels:a,activePanelId:G};return a.length===0&&!i.keepOnEmpty?null:r}else{let c=i.children.map(r=>ne(r,y)).filter(r=>r!==null);if(c.length===0)return null;if(c.length===1)return c[0];let a=i.sizes.slice(0,c.length),G=a.reduce((r,C)=>r+C,0);return{...i,children:c,sizes:a.map(r=>r/G)}}},J=(i,y,c)=>{if(i.type==="leaf"){if(i.id===y){let a=i.panels.includes(c)?i.panels:[...i.panels,c];return{...i,panels:a,activePanelId:c}}return i}else return{...i,children:i.children.map(a=>J(a,y,c))}},F=i=>{if(i.type==="leaf")return i.id;for(let y of i.children){let c=F(y);if(c)return c}return null},k=(0,O.useCallback)((i,y,c)=>{let a=i;if(c?.dedupeKey!==void 0){let h=Object.values(z.current.panels).find(M=>M.component===y&&M.dedupeKey===c.dedupeKey);h&&(a=h.id)}let G=!(a in z.current.panels),r=a!==i,C=c?.focus!==!1,u=c?.props!==void 0?ct(c.props):!0;R(h=>{let M=h.panels[a],A=S.get(y),_=c?.title||c?.title||A?.defaultOptions?.title||a,Q=c?.initialTarget||A?.defaultOptions?.initialTarget||"docked",oe=A?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},Z=C?a:h.activePanelId;if(M)if(M.state==="minimized"){let ae=h.minimized.filter(ce=>ce.id!==a);if(Q==="floating"||!h.gridRoot){q.current+=1;let ce=ee(oe,h.floating);return{...h,minimized:ae,floating:[...h.floating,{...ce,id:a,z:q.current}],panels:{...h.panels,[a]:{...M,state:"floating"}},activePanelId:Z}}else{let ce=F(h.gridRoot)||"group-default";return{...h,minimized:ae,gridRoot:J(h.gridRoot,ce,a),panels:{...h.panels,[a]:{...M,state:"docked"}},activePanelId:Z}}}else{if(M.state==="floating")return C&&Pe(a),h;{let ae=ce=>ce.type==="leaf"?ce.panels.includes(a)?{...ce,activePanelId:a}:ce:{...ce,children:ce.children.map(ae)};return{...h,gridRoot:ae(h.gridRoot),activePanelId:Z}}}let de={id:a,title:_,component:y,state:Q==="tabbed"?"docked":Q,props:c?.props,serializable:u,dedupeKey:c?.dedupeKey},re={...h.panels,[a]:de};if(Q==="floating"){q.current+=1;let ae=ee(oe,h.floating),ce=c?.anchor??A?.defaultOptions?.defaultAnchor??null;return{...h,floating:[...h.floating,{...ae,id:a,z:q.current,anchor:ce}],panels:re,activePanelId:Z}}else{let ae=F(h.gridRoot)||"group-default";return{...h,gridRoot:J(h.gridRoot,ae,a),panels:re,activePanelId:Z}}}),G&&Y.current.publish("panel:opened",{id:a,component:y}),(G||r)&&Y.current.publish("layout:changed",{})},[ee,Pe]),V=(0,O.useCallback)(i=>{let y=i in z.current.panels;R(c=>{let a=c.panels[i];if(!a||S.get(a.component)?.defaultOptions?.canClose===!1)return c;delete $.current[i],delete l.current[i];let r={...c.panels};delete r[i];let C=ne(c.gridRoot,i);return{...c,gridRoot:C||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:c.floating.filter(p=>p.id!==i),minimized:c.minimized.filter(p=>p.id!==i),panels:r}}),y&&(Y.current.publish("panel:closed",{id:i}),Y.current.publish("layout:changed",{}))},[]),B=(0,O.useCallback)((i,y)=>{$.current[i]=y},[]),le=(0,O.useCallback)(i=>{delete $.current[i]},[]),fe=(0,O.useCallback)((i,y)=>{l.current[i]=y},[]),ve=(0,O.useCallback)(i=>{delete l.current[i]},[]),xe=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];return G?{...a,panels:{...a.panels,[i]:{...G,dirty:y,dirtyOptions:c}}}:a})},[]),Le=(0,O.useCallback)((i,y)=>{R(c=>{let a=c.panels[i];return a?{...c,panels:{...c.panels,[i]:{...a,title:y}}}:c})},[]),De=(0,O.useCallback)(async(i,y)=>{if(y?.force){V(i);return}let c=$.current[i];if(c&&!await c())return;let a=z.current.panels[i];if(a?.dirty)if(y?.onConfirm){if(!await y.onConfirm(a.dirtyOptions))return}else return;V(i)},[V]),Ae=(0,O.useCallback)(i=>{let y=z.current.panels[i]?.state!=="minimized"&&i in z.current.panels;R(c=>{let a=c.panels[i];if(!a||a.state==="minimized"||S.get(a.component)?.defaultOptions?.canMinimize===!1)return c;let r,C;if(a.state==="floating"){let u=c.floating.find(h=>h.id===i);u&&(r={x:Number(u.x),y:Number(u.y),width:Number(u.width),height:Number(u.height),anchor:u.anchor??null})}else if(a.state==="docked"){let u=h=>{if(h.type==="leaf")return h.panels.includes(i)?h.id:null;for(let M of h.children){let A=u(M);if(A)return A}return null};C=u(c.gridRoot)??void 0}let p=ne(c.gridRoot,i);return{...c,gridRoot:p||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:c.floating.filter(u=>u.id!==i),minimized:[...c.minimized,{id:i,title:a.title,component:a.component}],panels:{...c.panels,[i]:{...a,state:"minimized",previousState:a.state,lastFloatingRect:r,lastLeafId:C}}}}),y&&(Y.current.publish("panel:minimized",{id:i}),Y.current.publish("layout:changed",{}))},[]),Qe=(0,O.useCallback)(i=>{let y=z.current.panels[i]?.state==="minimized";R(c=>{let a=c.panels[i];if(!a||a.state!=="minimized")return c;let G=c.minimized.filter(C=>C.id!==i);if((a.previousState||"docked")==="floating"){q.current+=1;let C=S.get(a.component),p=a.lastFloatingRect||C?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},u=ee(p,c.floating);return{...c,minimized:G,floating:[...c.floating,{...u,id:i,z:q.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...c.panels,[i]:{...a,state:"floating"}}}}else{let C=(M,A)=>M.type==="leaf"?M.id===A:M.children.some(_=>C(_,A)),p=a.lastLeafId&&C(c.gridRoot,a.lastLeafId),u=S.get(a.component),h=u?.defaultOptions?.canDrag!==!1;if(p)return{...c,minimized:G,gridRoot:J(c.gridRoot,a.lastLeafId,i),panels:{...c.panels,[i]:{...a,state:"docked"}}};if(h){q.current+=1;let M=a.lastFloatingRect||u?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},A=ee(M,c.floating);return{...c,minimized:G,floating:[...c.floating,{...A,id:i,z:q.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...c.panels,[i]:{...a,state:"floating"}}}}else{let M=F(c.gridRoot)||"group-default";return{...c,minimized:G,gridRoot:J(c.gridRoot,M,i),panels:{...c.panels,[i]:{...a,state:"docked"}}}}}}),y&&(Y.current.publish("panel:restored",{id:i}),Y.current.publish("layout:changed",{}))},[ee]),et=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];if(!G||S.get(G.component)?.defaultOptions?.canDrag===!1)return a;let C=S.get(G.component),p=y||C?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},u=ne(a.gridRoot,i);q.current+=1;let h=ee(p,a.floating);return{...a,gridRoot:u||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:[...a.floating,{...h,id:i,z:q.current,anchor:c??null}],panels:{...a.panels,[i]:{...G,state:"floating"}}}})},[ee]),tt=(0,O.useCallback)((i,y)=>{R(c=>{let a=c.panels[i];if(!a)return c;let G=c.floating.filter(p=>p.id!==i),r=ne(c.gridRoot,i),C=y||F(r||c.gridRoot)||"group-default";return{...c,gridRoot:J(r||c.gridRoot,C,i),floating:G,panels:{...c.panels,[i]:{...a,state:"docked"}}}})},[]),Ht=(i,y,c,a,G)=>{if(i.type==="leaf"){if(i.id===y){let r={type:"leaf",id:`group-split-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[c],activePanelId:c},C=a==="left"||a==="right"?"horizontal":"vertical",p=a==="left"||a==="top"?[r,i]:[i,r],u=a==="left"||a==="top"?[G,1-G]:[1-G,G];return{type:"branch",orientation:C,sizes:u,children:p}}return i}else return{...i,children:i.children.map(r=>Ht(r,y,c,a,G))}},gt=(0,O.useCallback)(i=>{R(y=>({...y,draggedPanelId:i}))},[]),Se=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];if(!G)return a;let r=a.floating.filter(u=>u.id!==i),C=ne(a.gridRoot,i),p;return c==="center"?p=J(C||a.gridRoot,y,i):p=Ht(C||a.gridRoot,y,i,c,a.splitRatio),{...a,gridRoot:p,floating:r,panels:{...a.panels,[i]:{...G,state:"docked"}},draggedPanelId:null}})},[]),Bt=(0,O.useCallback)((i,y)=>{R(c=>{let a=c.panels[i];if(!a)return c;let G=c.floating.filter(A=>A.id!==i),r=ne(c.gridRoot,i),C={type:"leaf",id:`group-edge-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[i],activePanelId:i},p=y==="left"||y==="right"?"horizontal":"vertical",u=y==="left"||y==="top"?[C,r||c.gridRoot]:[r||c.gridRoot,C],h=c.edgeSplitRatio,M={type:"branch",orientation:p,sizes:y==="left"||y==="top"?[h,1-h]:[1-h,h],children:u};return{...c,gridRoot:M,floating:G,panels:{...c.panels,[i]:{...a,state:"docked"}},draggedPanelId:null}})},[]),$t=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];if(!G)return a;let r=ne(a.gridRoot,i),C=h=>{if(h.type==="leaf"){if(h.id===y){let M=h.panels.filter(Q=>Q!==i),A=Math.max(0,Math.min(c,M.length)),_=[...M];return _.splice(A,0,i),{...h,panels:_,activePanelId:i}}return h}else return{...h,children:h.children.map(C)}},p=C(r||a.gridRoot),u=a.floating.filter(h=>h.id!==i);return{...a,gridRoot:p,floating:u,panels:{...a.panels,[i]:{...G,state:"docked"}},draggedPanelId:null}})},[]),mt=(0,O.useCallback)(i=>{R(y=>{let c=G=>{if(G.type==="leaf")return G.id===i&&G.canClose!==!1?null:G;{let r=G.children.map(u=>c(u)).filter(u=>u!==null);if(r.length===0)return null;if(r.length===1)return r[0];let C=G.sizes.slice(0,r.length),p=C.reduce((u,h)=>u+h,0);return{...G,children:r,sizes:C.map(u=>u/p)}}},a=c(y.gridRoot);return{...y,gridRoot:a||{type:"leaf",id:"group-default",panels:[],activePanelId:null}}})},[]),nt=(0,O.useCallback)(i=>{R(y=>({...y,floating:y.floating.map(c=>c.id===i?{...c,maximized:!c.maximized}:c)}))},[]),It=(0,O.useCallback)((i,y)=>{let c=(a,G)=>{if(a.type==="leaf")return a;if(G===i.length)return{...a,sizes:y};let r=i[G],C=a.children.map((p,u)=>u===r?c(p,G+1):p);return{...a,children:C}};R(a=>({...a,gridRoot:c(a.gridRoot,0)}))},[]),Gt=(0,O.useCallback)((i,y)=>{R(c=>({...c,floating:c.floating.map(a=>a.id===i?{...a,...y}:a)}))},[]),Xe=(0,O.useCallback)(()=>{let i=z.current.panels,y=[],c={};for(let[p,u]of Object.entries(i)){let h=l.current[p],M=h?.(),A=h!==void 0&&M!==void 0,_=A?M:u.props,Q=A?ct(M):u.serializable;Q?c[p]=A?{...u,props:_,serializable:Q}:u:y.push(p)}let a=z.current.gridRoot,G=z.current.floating,r=z.current.minimized;for(let p of y)a=ne(a,p)||{type:"leaf",id:"group-default",panels:[],activePanelId:null},G=G.filter(u=>u.id!==p),r=r.filter(u=>u.id!==p);return y.length>0&&Y.current.publish("layout:panels-excluded",{panels:y.map(p=>({id:p,component:i[p].component}))}),JSON.stringify({version:2,gridRoot:a,floating:G,minimized:r,panels:c})},[]),He=(0,O.useCallback)(i=>{try{let y=_n(JSON.parse(i));if(!y)return!1;let c=Object.keys(y.panels)[0]||null;return R(a=>({...a,gridRoot:y.gridRoot,floating:y.floating,minimized:y.minimized,panels:y.panels,draggedPanelId:null,activePanelId:c})),!0}catch(y){return console.error("Failed to parse layout configuration:",y),!1}},[]),Yt=(0,O.useCallback)(i=>{R(y=>y.activePanelId===i?y:{...y,activePanelId:i})},[]),Xt=(0,O.useCallback)(i=>{R(y=>y.dir===i?y:{...y,dir:i,isRtl:i==="rtl"})},[]),Et=(0,O.useCallback)(i=>i in z.current.panels,[]),ot=(0,O.useCallback)(()=>Object.keys(z.current.panels),[]),rt=(0,O.useCallback)((i,y)=>Object.values(z.current.panels).find(a=>a.component===i&&a.dedupeKey===y)?.id??null,[]);(0,O.useEffect)(()=>{N&&R(i=>i.dir===N?i:{...i,dir:N,isRtl:N==="rtl"})},[N]);let _e=(0,O.useRef)(new Map),Ve=(0,O.useRef)(null),Lt=(0,O.useCallback)(i=>(Ve.current=i,()=>{Ve.current=null}),[]),Vt=(0,O.useCallback)(i=>{Ve.current?.(i)},[]),zt=(0,O.useCallback)((i,y)=>(_e.current.set(i,y),()=>{_e.current.delete(i)}),[]),it=(0,O.useCallback)(i=>_e.current.get(i)?.()??[],[]),ft=(0,O.useMemo)(()=>({openPanel:k,closePanel:V,minimizePanel:Ae,restorePanel:Qe,floatPanel:et,dockPanel:tt,maximizePanel:nt,updateSplitSizes:It,updateFloatingPosition:Gt,focusPanel:Pe,isOpen:Et,getOpenPanelIds:ot,findPanelId:rt,saveLayout:Xe,loadLayout:He,publish:pe,subscribe:j,setDraggedPanelId:gt,dockPanelToGroup:Se,movePanelOrder:$t,closeLeafGroup:mt,registerCloseGuard:B,unregisterCloseGuard:le,registerStateProvider:fe,unregisterStateProvider:ve,setPanelDirty:xe,updatePanelTitle:Le,requestClosePanel:De,dockPanelToWorkspaceEdge:Bt,setActivePanel:Yt,setDirection:Xt,registerPanelContextMenu:zt,getPanelContextMenuItems:it,showContextMenu:Vt,registerContextMenuFn:Lt}),[k,V,Ae,Qe,et,tt,nt,It,Gt,Pe,Et,ot,rt,Xe,He,pe,j,gt,Se,$t,mt,B,le,fe,ve,xe,Le,De,Bt,Yt,Xt,zt,it,Vt,Lt]),st=i=>{let y=i.defaultMessage||i.id;return i.values&&Object.entries(i.values).forEach(([c,a])=>{y=y.replace(`{${c}}`,String(a))}),y},cn=(0,O.useMemo)(()=>({modalClass:s,modalBodyClass:I,sidePanelClass:b,sidePanelBodyClass:T,windowClass:w,windowBodyClass:x}),[s,I,b,T,w,x]);(0,O.useEffect)(()=>{if(process.env.NODE_ENV==="development")try{getComputedStyle(document.documentElement).getPropertyValue("--rdd-styles-loaded").trim()!=="1"&&console.error(`[react-dockable-desktop] styles.css is not imported.
1
+ "use strict";var Fo=Object.create;var Kt=Object.defineProperty;var _o=Object.getOwnPropertyDescriptor;var Ho=Object.getOwnPropertyNames;var Bo=Object.getPrototypeOf,$o=Object.prototype.hasOwnProperty;var Go=(e,t)=>{for(var n in t)Kt(e,n,{get:t[n],enumerable:!0})},En=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of Ho(t))!$o.call(e,m)&&m!==n&&Kt(e,m,{get:()=>t[m],enumerable:!(o=_o(t,m))||o.enumerable});return e};var mn=(e,t,n)=>(n=e!=null?Fo(Bo(e)):{},En(t||!e||!e.__esModule?Kt(n,"default",{value:e,enumerable:!0}):n,e)),Yo=e=>En(Kt({},"__esModule",{value:!0}),e);var Tr={};Go(Tr,{ConfirmationForm:()=>Ue,ContextMenu:()=>Jt,ContextMenuProvider:()=>Qt,DefaultContextMenuAdapter:()=>ut,DockableDesktopProvider:()=>so,FormContainerContext:()=>qt,FormContainerProvider:()=>qe,LeftPanelRenderer:()=>lo,ModalStackRenderer:()=>ao,PanelContributionProvider:()=>an,PanelFloatingWindow:()=>In,PanelOverlayRoot:()=>So,PanelProvider:()=>tn,PanelRegistry:()=>Nt,PanelRegistryClass:()=>dt,PanelToolbar:()=>ko,PanelToolbarItem:()=>No,PanelToolbarSeparator:()=>Lo,RightPanelRenderer:()=>co,SidePanelRenderer:()=>uo,Sidebar:()=>fo,ToastContainer:()=>xo,Toolbar:()=>yo,ToolbarButton:()=>Io,ToolbarCenter:()=>Do,ToolbarProvider:()=>Ft,ToolbarSearchInput:()=>Wo,ToolbarSpacer:()=>zo,ToolbarToggle:()=>Eo,WindowManager:()=>Jn,WindowManagerProvider:()=>Zt,WorkspaceClient:()=>sn,computeResizedRect:()=>Tt,defaultPredefinedMessages:()=>Pt,formatLabel:()=>ge,isSerializable:()=>ct,sidebarSectionToTab:()=>Mn,startPointerDrag:()=>Ge,toast:()=>Po,useActivePanelContribution:()=>ln,useColorScheme:()=>on,useFormContainer:()=>lt,useFormatMessage:()=>We,useMergedSidebarTabs:()=>oo,useMergedToolbarItems:()=>no,usePanelActions:()=>Ze,usePanelContext:()=>Hn,usePanelContextMenu:()=>Bn,usePanelContribution:()=>to,usePanelFloatingWindow:()=>Oo,usePanelFloatingWindowManager:()=>Ao,usePanelId:()=>Dt,usePanelSize:()=>Ln,usePanelState:()=>$e,usePredefinedMessages:()=>Fe,useRegistry:()=>Ct,useShowContextMenu:()=>Yn,useSidebar:()=>ho,useSidebarTab:()=>bo,useStyleClasses:()=>Be,useToolbar:()=>_t,useWindowManagerActions:()=>wt,useWindowManagerState:()=>ze});module.exports=Yo(Tr);var K=mn(require("react"),1),xn=require("react-dom");var O=require("react");var yt=require("react"),Xo={requestClose:()=>{console.warn("FormContainerContract: requestClose called but no container is present")},setDirty:()=>{},onCloseRequested:()=>()=>{},registerStateProvider:()=>()=>{},setTitle:()=>{},setIcon:()=>{},containerType:"standalone",instanceId:"standalone",onClose:()=>()=>{},onMinimize:()=>()=>{},onRestore:()=>()=>{},onResize:()=>()=>{},requestMinimize:()=>{},getDimensions:()=>null,onActivate:()=>()=>{},onDeactivate:()=>()=>{},onContainerTypeChange:()=>()=>{}},qt=(0,yt.createContext)(Xo),qe=qt.Provider,lt=()=>(0,yt.useContext)(qt),Ln=()=>{let{onResize:e,getDimensions:t}=lt();return(0,yt.useSyncExternalStore)(n=>e?e(()=>n()):()=>{},()=>t?t():null)};var dt=class{registry=new Map;register(t,n,o){this.registry.set(t,{Component:n,defaultOptions:o})}get(t){return this.registry.get(t)}getRegisteredIds(){return Array.from(this.registry.keys())}},Nt=new dt;var Pt={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"},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 zn=require("react");function ct(e){if(e===null)return!0;if(e===void 0)return!1;let t=typeof e;if(t==="string"||t==="number"||t==="boolean")return!0;if(t==="function"||t==="symbol"||t==="bigint")return!1;if(e instanceof Date)return!0;if((0,zn.isValidElement)(e))return!1;if(Array.isArray(e))return e.every(ct);let n=Object.getPrototypeOf(e);return n!==Object.prototype&&n!==null?!1:Object.values(e).every(ct)}var je=require("react/jsx-runtime"),xt=(0,O.createContext)(null),jt=(0,O.createContext)(null),Dn=(0,O.createContext)(null),Wn=(0,O.createContext)(null),On=(0,O.createContext)(Pt),An=(0,O.createContext)({}),Be=()=>(0,O.useContext)(An),Fn=(0,O.createContext)(Nt),Ct=()=>(0,O.useContext)(Fn),fn=class{listeners={};subscribe(t,n){return this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(n),()=>{this.listeners[t]=this.listeners[t].filter(o=>o!==n)}}publish(t,n){this.listeners[t]&&this.listeners[t].forEach(o=>o(n))}},Vo={type:"leaf",id:"group-default",panels:[],activePanelId:null};function _n(e){if(!e||!e.gridRoot||!Array.isArray(e.floating)||!Array.isArray(e.minimized)||!e.panels)return null;let t=e.floating.map(n=>{if("stickyRight"in n||"stickyBottom"in n){let o=n.stickyRight&&n.stickyBottom?"bottom-right":n.stickyRight?"top-right":n.stickyBottom?"bottom-left":null,{stickyRight:m,stickyBottom:s,...I}=n;return{...I,anchor:o}}return n});return{gridRoot:e.gridRoot,floating:t,minimized:e.minimized,panels:e.panels}}function Ko(e){if(e)try{let t=_n(JSON.parse(e));if(t)return{...t,activePanelId:Object.keys(t.panels)[0]??null}}catch{}return{gridRoot:Vo,floating:[],minimized:[],panels:{},activePanelId:null}}var Zt=({children:e,client:t,formatMessage:n,predefinedMessages:o,dir:m,modalClass:s,modalBodyClass:I,sidePanelClass:b,sidePanelBodyClass:T,windowClass:w,windowBodyClass:x,zIndexBase:v})=>{let S=(0,O.useRef)(t?.registry??Nt).current,E=t?.config.formatMessage??n,W=t?.config.predefinedMessages??o,D=t?.config.dir??m,d=t?.config.zIndexBase??v??1e3,[L,R]=(0,O.useState)(()=>({...Ko(t?.initialState??null),draggedPanelId:null,dir:D||"ltr",isRtl:D==="rtl",splitRatio:Math.min(.9,Math.max(.1,t?.config.defaultSplitRatio??.5)),edgeSplitRatio:Math.min(.9,Math.max(.1,t?.config.defaultEdgeSplitRatio??.2))})),z=(0,O.useRef)(L);z.current=L;let g=(0,O.useRef)(new Set);(0,O.useEffect)(()=>{g.current.forEach(i=>i())},[L]);let P=(0,O.useCallback)(()=>z.current,[]),H=(0,O.useCallback)(i=>(g.current.add(i),()=>g.current.delete(i)),[]),$=(0,O.useRef)({}),l=(0,O.useRef)({}),N=(0,O.useMemo)(()=>({...Pt,...W}),[W]),Y=(0,O.useRef)(new fn),q=(0,O.useRef)(d);(0,O.useEffect)(()=>(document.documentElement.style.setProperty("--rdd-z-base",String(d)),()=>{document.documentElement.style.removeProperty("--rdd-z-base")}),[d]);let Z=(0,O.useCallback)((i,y)=>Y.current.subscribe(i,y),[]),pe=(0,O.useCallback)((i,y)=>{Y.current.publish(i,y)},[]),ee=(0,O.useCallback)((i,y)=>{let c=typeof i.x=="string"?parseFloat(i.x):i.x,a=typeof i.y=="string"?parseFloat(i.y):i.y,G=typeof i.width=="string"?parseFloat(i.width):i.width,r=typeof i.height=="string"?parseFloat(i.height):i.height;isNaN(c)&&(c=300),isNaN(a)&&(a=150),isNaN(G)&&(G=450),isNaN(r)&&(r=350);let C=M=>y.some(A=>{let _=typeof A.x=="string"?parseFloat(A.x):A.x,Q=typeof A.y=="string"?parseFloat(A.y):A.y;return!A.maximized&&Math.abs(_-M.x)<20&&Math.abs(Q-M.y)<20}),u=0;for(;C({x:c,y:a})&&u<10;)c+=30,a+=30,u++;let p=Math.max(100,window.innerWidth||1024),h=Math.max(100,window.innerHeight||768);return(c+G>p||a+r>h)&&(c=100+u%5*30,a=100+u%5*30),c=Math.max(0,Math.min(c,p-100)),a=Math.max(0,Math.min(a,h-40)),{x:c,y:a,width:G,height:r}},[]),Pe=(0,O.useCallback)(i=>{R(y=>{let c=y.panels[i];if(!c)return y;if(c.state==="floating"){let a=y.floating.find(r=>r.id===i);if(!a)return y;let G=!y.floating.some(r=>r.z>a.z);return G&&y.activePanelId===i?y:(G||(q.current+=1),{...y,floating:y.floating.map(r=>r.id===i?{...r,z:G?a.z:q.current}:r),activePanelId:i})}else if(c.state==="docked"){if(y.activePanelId===i)return y;let a=G=>G.type==="leaf"?G.panels.includes(i)?{...G,activePanelId:i}:G:{...G,children:G.children.map(a)};return{...y,gridRoot:a(y.gridRoot),activePanelId:i}}return y.activePanelId===i?y:{...y,activePanelId:i}})},[]),ne=(i,y)=>{if(i.type==="leaf"){let c=i.panels.indexOf(y);if(c===-1)return i;let a=i.panels.filter(C=>C!==y),G=i.activePanelId===y?a[c]||a[c-1]||a[0]||null:i.activePanelId,r={...i,panels:a,activePanelId:G};return a.length===0&&!i.keepOnEmpty?null:r}else{let c=i.children.map(r=>ne(r,y)).filter(r=>r!==null);if(c.length===0)return null;if(c.length===1)return c[0];let a=i.sizes.slice(0,c.length),G=a.reduce((r,C)=>r+C,0);return{...i,children:c,sizes:a.map(r=>r/G)}}},J=(i,y,c)=>{if(i.type==="leaf"){if(i.id===y){let a=i.panels.includes(c)?i.panels:[...i.panels,c];return{...i,panels:a,activePanelId:c}}return i}else return{...i,children:i.children.map(a=>J(a,y,c))}},F=i=>{if(i.type==="leaf")return i.id;for(let y of i.children){let c=F(y);if(c)return c}return null},k=(0,O.useCallback)((i,y,c)=>{let a=i;if(c?.dedupeKey!==void 0){let h=Object.values(z.current.panels).find(M=>M.component===y&&M.dedupeKey===c.dedupeKey);h&&(a=h.id)}let G=!(a in z.current.panels),r=a!==i,C=c?.focus!==!1,p=c?.props!==void 0?ct(c.props):!0;R(h=>{let M=h.panels[a],A=S.get(y),_=c?.title||c?.title||A?.defaultOptions?.title||a,Q=c?.initialTarget||A?.defaultOptions?.initialTarget||"docked",oe=A?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},j=C?a:h.activePanelId;if(M)if(M.state==="minimized"){let ae=h.minimized.filter(ce=>ce.id!==a);if(Q==="floating"||!h.gridRoot){q.current+=1;let ce=ee(oe,h.floating);return{...h,minimized:ae,floating:[...h.floating,{...ce,id:a,z:q.current}],panels:{...h.panels,[a]:{...M,state:"floating"}},activePanelId:j}}else{let ce=F(h.gridRoot)||"group-default";return{...h,minimized:ae,gridRoot:J(h.gridRoot,ce,a),panels:{...h.panels,[a]:{...M,state:"docked"}},activePanelId:j}}}else{if(M.state==="floating")return C&&Pe(a),h;{let ae=ce=>ce.type==="leaf"?ce.panels.includes(a)?{...ce,activePanelId:a}:ce:{...ce,children:ce.children.map(ae)};return{...h,gridRoot:ae(h.gridRoot),activePanelId:j}}}let de={id:a,title:_,component:y,state:Q==="tabbed"?"docked":Q,props:c?.props,serializable:p,dedupeKey:c?.dedupeKey},re={...h.panels,[a]:de};if(Q==="floating"){q.current+=1;let ae=ee(oe,h.floating),ce=c?.anchor??A?.defaultOptions?.defaultAnchor??null;return{...h,floating:[...h.floating,{...ae,id:a,z:q.current,anchor:ce}],panels:re,activePanelId:j}}else{let ae=F(h.gridRoot)||"group-default";return{...h,gridRoot:J(h.gridRoot,ae,a),panels:re,activePanelId:j}}}),G&&Y.current.publish("panel:opened",{id:a,component:y}),(G||r)&&Y.current.publish("layout:changed",{})},[ee,Pe]),V=(0,O.useCallback)(i=>{let y=i in z.current.panels;R(c=>{let a=c.panels[i];if(!a||S.get(a.component)?.defaultOptions?.canClose===!1)return c;delete $.current[i],delete l.current[i];let r={...c.panels};delete r[i];let C=ne(c.gridRoot,i);return{...c,gridRoot:C||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:c.floating.filter(u=>u.id!==i),minimized:c.minimized.filter(u=>u.id!==i),panels:r}}),y&&(Y.current.publish("panel:closed",{id:i}),Y.current.publish("layout:changed",{}))},[]),B=(0,O.useCallback)((i,y)=>{$.current[i]=y},[]),le=(0,O.useCallback)(i=>{delete $.current[i]},[]),fe=(0,O.useCallback)((i,y)=>{l.current[i]=y},[]),ve=(0,O.useCallback)(i=>{delete l.current[i]},[]),xe=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];return G?{...a,panels:{...a.panels,[i]:{...G,dirty:y,dirtyOptions:c}}}:a})},[]),Le=(0,O.useCallback)((i,y)=>{R(c=>{let a=c.panels[i];return a?{...c,panels:{...c.panels,[i]:{...a,title:y}}}:c})},[]),De=(0,O.useCallback)(async(i,y)=>{if(y?.force){V(i);return}let c=$.current[i];if(c&&!await c())return;let a=z.current.panels[i];if(a?.dirty)if(y?.onConfirm){if(!await y.onConfirm(a.dirtyOptions))return}else return;V(i)},[V]),Ae=(0,O.useCallback)(i=>{let y=z.current.panels[i]?.state!=="minimized"&&i in z.current.panels;R(c=>{let a=c.panels[i];if(!a||a.state==="minimized"||S.get(a.component)?.defaultOptions?.canMinimize===!1)return c;let r,C;if(a.state==="floating"){let p=c.floating.find(h=>h.id===i);p&&(r={x:Number(p.x),y:Number(p.y),width:Number(p.width),height:Number(p.height),anchor:p.anchor??null})}else if(a.state==="docked"){let p=h=>{if(h.type==="leaf")return h.panels.includes(i)?h.id:null;for(let M of h.children){let A=p(M);if(A)return A}return null};C=p(c.gridRoot)??void 0}let u=ne(c.gridRoot,i);return{...c,gridRoot:u||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:c.floating.filter(p=>p.id!==i),minimized:[...c.minimized,{id:i,title:a.title,component:a.component}],panels:{...c.panels,[i]:{...a,state:"minimized",previousState:a.state,lastFloatingRect:r,lastLeafId:C}}}}),y&&(Y.current.publish("panel:minimized",{id:i}),Y.current.publish("layout:changed",{}))},[]),et=(0,O.useCallback)(i=>{let y=z.current.panels[i]?.state==="minimized";R(c=>{let a=c.panels[i];if(!a||a.state!=="minimized")return c;let G=c.minimized.filter(C=>C.id!==i);if((a.previousState||"docked")==="floating"){q.current+=1;let C=S.get(a.component),u=a.lastFloatingRect||C?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},p=ee(u,c.floating);return{...c,minimized:G,floating:[...c.floating,{...p,id:i,z:q.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...c.panels,[i]:{...a,state:"floating"}}}}else{let C=(M,A)=>M.type==="leaf"?M.id===A:M.children.some(_=>C(_,A)),u=a.lastLeafId&&C(c.gridRoot,a.lastLeafId),p=S.get(a.component),h=p?.defaultOptions?.canDrag!==!1;if(u)return{...c,minimized:G,gridRoot:J(c.gridRoot,a.lastLeafId,i),panels:{...c.panels,[i]:{...a,state:"docked"}}};if(h){q.current+=1;let M=a.lastFloatingRect||p?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},A=ee(M,c.floating);return{...c,minimized:G,floating:[...c.floating,{...A,id:i,z:q.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...c.panels,[i]:{...a,state:"floating"}}}}else{let M=F(c.gridRoot)||"group-default";return{...c,minimized:G,gridRoot:J(c.gridRoot,M,i),panels:{...c.panels,[i]:{...a,state:"docked"}}}}}}),y&&(Y.current.publish("panel:restored",{id:i}),Y.current.publish("layout:changed",{}))},[ee]),tt=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];if(!G||S.get(G.component)?.defaultOptions?.canDrag===!1)return a;let C=S.get(G.component),u=y||C?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},p=ne(a.gridRoot,i);q.current+=1;let h=ee(u,a.floating);return{...a,gridRoot:p||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:[...a.floating,{...h,id:i,z:q.current,anchor:c??null}],panels:{...a.panels,[i]:{...G,state:"floating"}}}})},[ee]),nt=(0,O.useCallback)((i,y)=>{R(c=>{let a=c.panels[i];if(!a)return c;let G=c.floating.filter(u=>u.id!==i),r=ne(c.gridRoot,i),C=y||F(r||c.gridRoot)||"group-default";return{...c,gridRoot:J(r||c.gridRoot,C,i),floating:G,panels:{...c.panels,[i]:{...a,state:"docked"}}}})},[]),Ht=(i,y,c,a,G)=>{if(i.type==="leaf"){if(i.id===y){let r={type:"leaf",id:`group-split-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[c],activePanelId:c},C=a==="left"||a==="right"?"horizontal":"vertical",u=a==="left"||a==="top"?[r,i]:[i,r],p=a==="left"||a==="top"?[G,1-G]:[1-G,G];return{type:"branch",orientation:C,sizes:p,children:u}}return i}else return{...i,children:i.children.map(r=>Ht(r,y,c,a,G))}},gt=(0,O.useCallback)(i=>{R(y=>({...y,draggedPanelId:i}))},[]),Se=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];if(!G)return a;let r=a.floating.filter(p=>p.id!==i),C=ne(a.gridRoot,i),u;return c==="center"?u=J(C||a.gridRoot,y,i):u=Ht(C||a.gridRoot,y,i,c,a.splitRatio),{...a,gridRoot:u,floating:r,panels:{...a.panels,[i]:{...G,state:"docked"}},draggedPanelId:null}})},[]),Bt=(0,O.useCallback)((i,y)=>{R(c=>{let a=c.panels[i];if(!a)return c;let G=c.floating.filter(A=>A.id!==i),r=ne(c.gridRoot,i),C={type:"leaf",id:`group-edge-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[i],activePanelId:i},u=y==="left"||y==="right"?"horizontal":"vertical",p=y==="left"||y==="top"?[C,r||c.gridRoot]:[r||c.gridRoot,C],h=c.edgeSplitRatio,M={type:"branch",orientation:u,sizes:y==="left"||y==="top"?[h,1-h]:[1-h,h],children:p};return{...c,gridRoot:M,floating:G,panels:{...c.panels,[i]:{...a,state:"docked"}},draggedPanelId:null}})},[]),$t=(0,O.useCallback)((i,y,c)=>{R(a=>{let G=a.panels[i];if(!G)return a;let r=ne(a.gridRoot,i),C=h=>{if(h.type==="leaf"){if(h.id===y){let M=h.panels.filter(Q=>Q!==i),A=Math.max(0,Math.min(c,M.length)),_=[...M];return _.splice(A,0,i),{...h,panels:_,activePanelId:i}}return h}else return{...h,children:h.children.map(C)}},u=C(r||a.gridRoot),p=a.floating.filter(h=>h.id!==i);return{...a,gridRoot:u,floating:p,panels:{...a.panels,[i]:{...G,state:"docked"}},draggedPanelId:null}})},[]),mt=(0,O.useCallback)(i=>{R(y=>{let c=G=>{if(G.type==="leaf")return G.id===i&&G.canClose!==!1?null:G;{let r=G.children.map(p=>c(p)).filter(p=>p!==null);if(r.length===0)return null;if(r.length===1)return r[0];let C=G.sizes.slice(0,r.length),u=C.reduce((p,h)=>p+h,0);return{...G,children:r,sizes:C.map(p=>p/u)}}},a=c(y.gridRoot);return{...y,gridRoot:a||{type:"leaf",id:"group-default",panels:[],activePanelId:null}}})},[]),Xe=(0,O.useCallback)(i=>{R(y=>({...y,floating:y.floating.map(c=>c.id===i?{...c,maximized:!c.maximized}:c)}))},[]),It=(0,O.useCallback)((i,y)=>{let c=(a,G)=>{if(a.type==="leaf")return a;if(G===i.length)return{...a,sizes:y};let r=i[G],C=a.children.map((u,p)=>p===r?c(u,G+1):u);return{...a,children:C}};R(a=>({...a,gridRoot:c(a.gridRoot,0)}))},[]),Gt=(0,O.useCallback)((i,y)=>{R(c=>({...c,floating:c.floating.map(a=>a.id===i?{...a,...y}:a)}))},[]),Ve=(0,O.useCallback)(()=>{let i=z.current.panels,y=[],c={};for(let[u,p]of Object.entries(i)){let h=l.current[u],M=h?.(),A=h!==void 0&&M!==void 0,_=A?M:p.props,Q=A?ct(M):p.serializable;Q?c[u]=A?{...p,props:_,serializable:Q}:p:y.push(u)}let a=z.current.gridRoot,G=z.current.floating,r=z.current.minimized;for(let u of y)a=ne(a,u)||{type:"leaf",id:"group-default",panels:[],activePanelId:null},G=G.filter(p=>p.id!==u),r=r.filter(p=>p.id!==u);return y.length>0&&Y.current.publish("layout:panels-excluded",{panels:y.map(u=>({id:u,component:i[u].component}))}),JSON.stringify({version:2,gridRoot:a,floating:G,minimized:r,panels:c})},[]),He=(0,O.useCallback)(i=>{try{let y=_n(JSON.parse(i));if(!y)return!1;let c=Object.keys(y.panels)[0]||null;return R(a=>({...a,gridRoot:y.gridRoot,floating:y.floating,minimized:y.minimized,panels:y.panels,draggedPanelId:null,activePanelId:c})),!0}catch(y){return console.error("Failed to parse layout configuration:",y),!1}},[]),Yt=(0,O.useCallback)(i=>{R(y=>y.activePanelId===i?y:{...y,activePanelId:i})},[]),Xt=(0,O.useCallback)(i=>{R(y=>y.dir===i?y:{...y,dir:i,isRtl:i==="rtl"})},[]),Et=(0,O.useCallback)(i=>i in z.current.panels,[]),ot=(0,O.useCallback)(()=>Object.keys(z.current.panels),[]),rt=(0,O.useCallback)((i,y)=>Object.values(z.current.panels).find(a=>a.component===i&&a.dedupeKey===y)?.id??null,[]);(0,O.useEffect)(()=>{D&&R(i=>i.dir===D?i:{...i,dir:D,isRtl:D==="rtl"})},[D]);let _e=(0,O.useRef)(new Map),Ke=(0,O.useRef)(null),Lt=(0,O.useCallback)(i=>(Ke.current=i,()=>{Ke.current=null}),[]),Vt=(0,O.useCallback)(i=>{Ke.current?.(i)},[]),zt=(0,O.useCallback)((i,y)=>(_e.current.set(i,y),()=>{_e.current.delete(i)}),[]),it=(0,O.useCallback)(i=>_e.current.get(i)?.()??[],[]),ft=(0,O.useMemo)(()=>({openPanel:k,closePanel:V,minimizePanel:Ae,restorePanel:et,floatPanel:tt,dockPanel:nt,maximizePanel:Xe,updateSplitSizes:It,updateFloatingPosition:Gt,focusPanel:Pe,isOpen:Et,getOpenPanelIds:ot,findPanelId:rt,saveLayout:Ve,loadLayout:He,publish:pe,subscribe:Z,setDraggedPanelId:gt,dockPanelToGroup:Se,movePanelOrder:$t,closeLeafGroup:mt,registerCloseGuard:B,unregisterCloseGuard:le,registerStateProvider:fe,unregisterStateProvider:ve,setPanelDirty:xe,updatePanelTitle:Le,requestClosePanel:De,dockPanelToWorkspaceEdge:Bt,setActivePanel:Yt,setDirection:Xt,registerPanelContextMenu:zt,getPanelContextMenuItems:it,showContextMenu:Vt,registerContextMenuFn:Lt}),[k,V,Ae,et,tt,nt,Xe,It,Gt,Pe,Et,ot,rt,Ve,He,pe,Z,gt,Se,$t,mt,B,le,fe,ve,xe,Le,De,Bt,Yt,Xt,zt,it,Vt,Lt]),st=i=>{let y=i.defaultMessage||i.id;return i.values&&Object.entries(i.values).forEach(([c,a])=>{y=y.replace(`{${c}}`,String(a))}),y},cn=(0,O.useMemo)(()=>({modalClass:s,modalBodyClass:I,sidePanelClass:b,sidePanelBodyClass:T,windowClass:w,windowBodyClass:x}),[s,I,b,T,w,x]);(0,O.useEffect)(()=>{if(process.env.NODE_ENV==="development")try{getComputedStyle(document.documentElement).getPropertyValue("--rdd-styles-loaded").trim()!=="1"&&console.error(`[react-dockable-desktop] styles.css is not imported.
2
2
  Add this to your entry file (main.tsx / index.tsx):
3
3
  import 'react-dockable-desktop/styles.css'
4
- Without it the workspace renders as a black screen with no console errors.`)}catch{}},[]),(0,O.useEffect)(()=>{if(t)return t._connect(ft),()=>{t._disconnect()}},[t,ft]);let un=(0,O.useMemo)(()=>({getSnapshot:P,subscribeToState:H}),[P,H]);return(0,qe.jsx)(An.Provider,{value:cn,children:(0,qe.jsx)(Fn.Provider,{value:S,children:(0,qe.jsx)(Wn.Provider,{value:un,children:(0,qe.jsx)(xt.Provider,{value:L,children:(0,qe.jsx)(Zt.Provider,{value:ft,children:(0,qe.jsx)(Dn.Provider,{value:E||st,children:(0,qe.jsx)(On.Provider,{value:W,children:e})})})})})})})},Nn=e=>()=>{};function ze(e){let t=(0,O.useContext)(xt),n=(0,O.useContext)(Wn),o=(0,O.useRef)(e);o.current=e;let m=(0,O.useSyncExternalStore)(e?n?.subscribeToState??Nn:Nn,()=>{let s=n?.getSnapshot()??t;return o.current?o.current(s):s},()=>{let s=n?.getSnapshot()??t;return o.current?o.current(s):s});if(!t)throw new Error("useWindowManagerState must be used within WindowManagerProvider");return e?m:t}var wt=()=>{let e=(0,O.useContext)(Zt);if(!e)throw new Error("useWindowManagerActions must be used within WindowManagerProvider");return e},hn=()=>{let e=(0,O.useContext)(Zt);if(!e)throw new Error("useWindowManagerActionsInternal must be used within WindowManagerProvider");return e},We=()=>(0,O.useContext)(Dn)||(t=>{let n=t.defaultMessage||t.id;return t.values&&Object.entries(t.values).forEach(([o,m])=>{n=n.replace(`{${o}}`,String(m))}),n}),ge=(e,t)=>e?typeof e=="string"?e:t(e):"",Hn=()=>{let{publish:e,subscribe:t}=wt();return{publish:e,subscribe:t}},Fe=()=>(0,O.useContext)(On),Dt=()=>lt().instanceId;function Bn(e){let t=(0,O.useContext)(Zt),n=Dt(),o=(0,O.useRef)(e);o.current=e,(0,O.useEffect)(()=>{if(!(!t?.registerPanelContextMenu||!n))return t.registerPanelContextMenu(n,()=>o.current)},[n,t?.registerPanelContextMenu])}var me=mn(require("react"),1),bn=require("react-dom"),ie=require("react/jsx-runtime");function qo(e){return e?"touches"in e&&e.touches.length>0?{x:e.touches[0].clientX,y:e.touches[0].clientY}:{x:e.clientX,y:e.clientY}:{x:0,y:0}}function Rt(e,t){return typeof e=="string"?e:t?t(e):e.defaultMessage??e.id}function vn(e){return"separator"in e}function Ut(e){return!vn(e)&&"items"in e}var Gn=(0,me.forwardRef)(({items:e,x:t,y:n,theme:o,fmt:m,onClose:s,onMouseEnter:I,onMouseLeave:b},T)=>((0,me.useLayoutEffect)(()=>{let w=T?.current;if(!w)return;let x=w.getBoundingClientRect(),v=8;x.right>window.innerWidth-v&&(w.style.left=`${Math.max(v,window.innerWidth-x.width-v)}px`,w.style.right="auto"),x.bottom>window.innerHeight-v&&(w.style.top=`${Math.max(v,window.innerHeight-x.height-v)}px`),x.left<v&&(w.style.left=`${v}px`,w.style.right="auto"),x.top<v&&(w.style.top=`${v}px`)}),(0,bn.createPortal)((0,ie.jsx)("div",{ref:T,className:`rdd-context-menu rdd-context-menu--${o} rdd-context-menu--submenu`,style:{position:"fixed",left:t,top:n,zIndex:9501},role:"menu",onMouseEnter:I,onMouseLeave:b,children:e.map((w,x)=>{if(vn(w))return(0,ie.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},x);let v=w,S=v.checkbox&&v.checkbox.active!==!1,E=S&&v.checkbox.value,D=v.disabled===!0||(S?v.checkbox.enabled===!1:!1);return(0,ie.jsxs)("button",{type:"button",className:`rdd-context-menu__item${D?" rdd-context-menu__item--disabled":""}`,title:v.title?Rt(v.title,m):void 0,disabled:D,"data-cy-action":v.cyAction,onClick:()=>{D||(v.action?.(),s())},role:"menuitem","aria-checked":S?E:void 0,children:[v.icon?(0,ie.jsx)("span",{className:"rdd-context-menu__icon",children:v.icon}):(0,ie.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,ie.jsx)("span",{className:"rdd-context-menu__label",children:Rt(v.label,m)}),S&&(0,ie.jsx)("span",{className:`rdd-context-menu__checkbox${E?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,ie.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ie.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),E&&(0,ie.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},x)})}),document.body)));Gn.displayName="ContextMenuSubMenuPanel";var $n={visible:!1,x:0,y:0,items:[]},Jt=(0,me.forwardRef)(({theme:e="dark",formatMessageProvider:t,onShow:n,onHide:o,onOpenChange:m,className:s,style:I},b)=>{let[T,w]=(0,me.useState)($n),[x,v]=(0,me.useState)(null),S=(0,me.useRef)(null),E=(0,me.useRef)(null),D=(0,me.useRef)(new Map),N=(0,me.useRef)({open:null,close:null}),d=me.default.useCallback(()=>{w($n),v(null),N.current.open&&clearTimeout(N.current.open),N.current.close&&clearTimeout(N.current.close),N.current.open=null,N.current.close=null,o?.(),m?.(!1)},[o,m]);if((0,me.useImperativeHandle)(b,()=>({show({event:l,x:W,y:Y,items:q}){let j=l?qo(l):{x:W??0,y:Y??0};D.current.clear(),w({visible:!0,x:j.x,y:j.y,items:q}),v(null),n?.(),m?.(!0)}}),[n,m]),(0,me.useEffect)(()=>{if(!T.visible)return;let l=W=>{S.current?.contains(W.target)||E.current?.contains(W.target)||d()};return document.addEventListener("pointerdown",l,{capture:!0}),window.addEventListener("click",l),()=>{document.removeEventListener("pointerdown",l,{capture:!0}),window.removeEventListener("click",l)}},[T.visible,d]),(0,me.useEffect)(()=>{if(!T.visible)return;let l=W=>{W.key==="Escape"&&d()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[T.visible,d]),(0,me.useLayoutEffect)(()=>{if(!T.visible||!S.current)return;let l=S.current,W=l.getBoundingClientRect(),Y=8;W.right>window.innerWidth-Y&&(l.style.left=`${Math.max(Y,window.innerWidth-W.width-Y)}px`),W.bottom>window.innerHeight-Y&&(l.style.top=`${Math.max(Y,window.innerHeight-W.height-Y)}px`),W.left<Y&&(l.style.left=`${Y}px`),W.top<Y&&(l.style.top=`${Y}px`)},[T.visible]),!T.visible)return null;let L=t,R=0,z=0;if(x!==null){let l=D.current.get(x);if(l){let W=l.getBoundingClientRect();R=document.documentElement.dir==="rtl"?window.innerWidth-W.left+2:W.right+2,z=W.top}}function g(){N.current.open&&(clearTimeout(N.current.open),N.current.open=null)}function P(){N.current.close&&(clearTimeout(N.current.close),N.current.close=null)}function H(l,W){P(),x!==null&&x!==l&&(g(),v(null)),Ut(W)&&W.items?.length?(g(),N.current.open=setTimeout(()=>{v(l)},150)):Ut(W)||(g(),x!==null&&(N.current.close=setTimeout(()=>v(null),200)))}function $(l){g(),Ut(l)&&l.items?.length&&(N.current.close=setTimeout(()=>v(null),200))}return(0,bn.createPortal)((0,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsx)("div",{ref:S,className:`rdd-context-menu rdd-context-menu--${e}${s?` ${s}`:""}`,style:{position:"fixed",left:T.x,top:T.y,zIndex:9500,...I},role:"menu","aria-orientation":"vertical",children:T.items.map((l,W)=>{if(vn(l))return(0,ie.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},W);if(Ut(l))return(0,ie.jsxs)("button",{ref:ee=>{D.current.set(W,ee)},type:"button",className:`rdd-context-menu__item rdd-context-menu__item--has-submenu${x===W?" rdd-context-menu__item--submenu-open":""}`,title:l.title?Rt(l.title,L):void 0,onMouseEnter:()=>H(W,l),onMouseLeave:()=>$(l),role:"menuitem","aria-haspopup":"true","aria-expanded":x===W,children:[(0,ie.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,ie.jsx)("span",{className:"rdd-context-menu__label",children:Rt(l.label,L)}),(0,ie.jsx)("span",{className:"rdd-context-menu__chevron","aria-hidden":"true",children:"\u203A"})]},W);let Y=l,q=Y.checkbox&&Y.checkbox.active!==!1,j=q&&Y.checkbox.value,pe=Y.disabled===!0||(q?Y.checkbox.enabled===!1:!1);return(0,ie.jsxs)("button",{ref:ee=>{D.current.set(W,ee)},type:"button",className:`rdd-context-menu__item${pe?" rdd-context-menu__item--disabled":""}`,title:Y.title?Rt(Y.title,L):void 0,disabled:pe,"data-cy-action":Y.cyAction,onClick:()=>{pe||(Y.action?.(),d())},onMouseEnter:()=>H(W,l),onMouseLeave:()=>$(l),role:"menuitem","aria-checked":q?j:void 0,children:[Y.icon?(0,ie.jsx)("span",{className:"rdd-context-menu__icon",children:Y.icon}):(0,ie.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,ie.jsx)("span",{className:"rdd-context-menu__label",children:Rt(Y.label,L)}),q&&(0,ie.jsx)("span",{className:`rdd-context-menu__checkbox${j?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,ie.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ie.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:j?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.5"}),j&&(0,ie.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},W)})}),x!==null&&(()=>{let l=T.items[x];return(0,ie.jsx)(Gn,{ref:E,items:l.items??[],x:R,y:z,theme:e,fmt:L,onClose:d,onMouseEnter:()=>P(),onMouseLeave:()=>{N.current.close=setTimeout(()=>v(null),200)}})})()]}),document.body)});Jt.displayName="ContextMenu";var ut={Component:Jt},Mt=me.default.createContext(null),Qt=({adapter:e=ut,children:t,...n})=>{let o=(0,me.useRef)(null),[m,s]=me.default.useState(!1),I=me.default.useCallback(b=>{o.current?.show(b)},[]);return(0,ie.jsxs)(Mt.Provider,{value:{show:I,isOpen:m},children:[t,(0,ie.jsx)(e.Component,{ref:o,...n,onShow:()=>{s(!0),n.onShow?.()},onHide:()=>{s(!1),n.onHide?.()}})]})};function Yn(){let e=me.default.useContext(Mt);if(!e)throw new Error("useShowContextMenu must be used within a ContextMenuProvider");return e.show}var he=require("react"),Pn=require("react/jsx-runtime"),Zo=0,yn=()=>`panel-${++Zo}-${Date.now()}`,en=new Map,Xn={leftPanel:null,rightPanel:null,modals:[]},Vn=(0,he.createContext)(null),Kn=(0,he.createContext)(null),tn=({children:e})=>{let[t,n]=(0,he.useState)(Xn),o=(0,he.useRef)(t);o.current=t;let m=(0,he.useCallback)((d,L)=>{en.set(d,L)},[]),s=(0,he.useCallback)(d=>{en.delete(d)},[]),I=(0,he.useCallback)(async(d,L,R={})=>{let z=o.current.leftPanel;if(z){let H=en.get(z.id);if(H&&!await H())return null}let g=yn(),P={id:g,Component:d,props:L,containerType:"left-panel",options:R};return n(H=>({...H,leftPanel:P})),g},[]),b=(0,he.useCallback)(async(d,L,R={})=>{let z=o.current.rightPanel;if(z){let H=en.get(z.id);if(H&&!await H())return null}let g=yn(),P={id:g,Component:d,props:L,containerType:"right-panel",options:R};return n(H=>({...H,rightPanel:P})),g},[]),T=(0,he.useCallback)((d,L,R={})=>{let z=yn(),g=L.title,P={...R,title:R.title||g||"Confirmation"},H={id:z,Component:d,props:L,containerType:"modal",options:P};return n($=>({...$,modals:[...$.modals,H]})),z},[]),w=(0,he.useCallback)(d=>{n(L=>({leftPanel:L.leftPanel?.id===d?null:L.leftPanel,rightPanel:L.rightPanel?.id===d?null:L.rightPanel,modals:L.modals.filter(R=>R.id!==d)}))},[]),x=(0,he.useCallback)(()=>{n(Xn)},[]),v=(0,he.useCallback)(()=>{n(d=>({...d,modals:[]}))},[]),S=(0,he.useCallback)(d=>t.leftPanel?.id===d?t.leftPanel:t.rightPanel?.id===d?t.rightPanel:t.modals.find(L=>L.id===d),[t]),E=(0,he.useCallback)((d,L)=>{n(R=>({leftPanel:R.leftPanel?.id===d?{...R.leftPanel,...L}:R.leftPanel,rightPanel:R.rightPanel?.id===d?{...R.rightPanel,...L}:R.rightPanel,modals:R.modals.map(z=>z.id===d?{...z,...L}:z)}))},[]),D=(0,he.useCallback)((d,L,R)=>{E(d,{dirty:L,dirtyOptions:R})},[E]),N=(0,he.useMemo)(()=>({openLeftPanel:I,openRightPanel:b,openModal:T,close:w,closeAll:x,closeAllModals:v,getInstance:S,updateInstance:E,setDirty:D,registerCloseHandler:m,unregisterCloseHandler:s}),[I,b,T,w,x,v,S,E,D,m,s]);return(0,Pn.jsx)(Vn.Provider,{value:t,children:(0,Pn.jsx)(Kn.Provider,{value:N,children:e})})},$e=()=>{let e=(0,he.useContext)(Vn);if(!e)throw new Error("usePanelState must be used within PanelProvider");return e},Ze=()=>{let e=(0,he.useContext)(Kn);if(!e)throw new Error("usePanelActions must be used within PanelProvider");return e};var Wt=require("react");var Oe=require("react/jsx-runtime"),jo=({title:e,message:t,alert:n,alertType:o="info",useYesNoTitles:m=!1,onOK:s,onCancel:I})=>{let{requestClose:b,setIcon:T,setTitle:w}=lt(),x=We(),v=Fe(),S=(0,Wt.useRef)(null);(0,Wt.useEffect)(()=>{if(e){let R=typeof e=="string"?e:x(e);w(R)}T&&T((0,Oe.jsx)("span",{children:"\u2753"}))},[e,w,T,x]),(0,Wt.useEffect)(()=>{S.current?.focus()},[]);let E=typeof t=="string"?t:x(t),D=x(m?v.no:v.cancel),N=x(m?v.yes:v.ok),d=R=>{R.preventDefault(),s?.(),b()},L=()=>{I?.(),b()};return(0,Oe.jsxs)("form",{onSubmit:d,className:"rdd-confirmation-form-body",children:[n&&(0,Oe.jsxs)("div",{className:`rdd-confirmation-alert confirmation-alert-${o}`,children:[(0,Oe.jsx)("span",{children:"\u2139\uFE0F"}),(0,Oe.jsx)("span",{children:n})]}),(0,Oe.jsx)("div",{style:{fontSize:"0.9rem",color:"inherit",lineHeight:1.5},children:E}),(0,Oe.jsx)("hr",{style:{marginTop:"0.5rem",marginBottom:"0.5rem",opacity:.1}}),(0,Oe.jsxs)("div",{className:"rdd-confirmation-actions",children:[(0,Oe.jsx)("button",{type:"button",className:"rdd-btn rdd-btn-sm rdd-btn-outline",onClick:L,children:D}),(0,Oe.jsx)("button",{type:"submit",className:"rdd-btn rdd-btn-sm rdd-btn-primary",ref:S,children:N})]})]})},je=jo;function Ot(e){return e==="top-left"?"top-right":e==="top-right"?"top-left":e==="bottom-left"?"bottom-right":"bottom-left"}function Ge(e){let{element:t,pointerId:n,startClientX:o,startClientY:m,captureStart:s,onMove:I,onEnd:b,activeClasses:T}=e;t.setPointerCapture(n),T?.forEach(({el:S,classes:E})=>S.classList.add(...E));let w=s(),x=S=>{I(S.clientX-o,S.clientY-m,w)},v=()=>{T?.forEach(({el:S,classes:E})=>S.classList.remove(...E)),t.removeEventListener("pointermove",x),t.removeEventListener("pointerup",v),t.removeEventListener("pointercancel",v),b?.(w)};t.addEventListener("pointermove",x),t.addEventListener("pointerup",v),t.addEventListener("pointercancel",v)}function Tt(e,t,n,o,m){let{minW:s,minH:I,maxW:b,maxH:T,minX:w,minY:x}=m,{x:v,y:S,w:E,h:D}=o;if(e.includes("e")&&(E=Math.max(s,Math.min(o.w+t,b??1/0))),e.includes("w")){let N=o.w-s,d=w!=null?-(o.x-w):-1/0,L=Math.max(d,Math.min(t,N));E=o.w-L,v=o.x+L}if(e.includes("s")&&(D=Math.max(I,Math.min(o.h+n,T??1/0))),e.includes("n")){let N=o.h-I,d=x!=null?-(o.y-x):-1/0,L=Math.max(d,Math.min(n,N));D=o.h-L,S=o.y+L}return{x:v,y:S,w:E,h:D}}var nn=require("react");function on(){let[e,t]=(0,nn.useState)(()=>document.documentElement.getAttribute("data-color-scheme")==="light"?"light":"dark");return(0,nn.useEffect)(()=>{let n=()=>{t(document.documentElement.getAttribute("data-color-scheme")==="light"?"light":"dark")};n();let o=new MutationObserver(n);return o.observe(document.documentElement,{attributes:!0,attributeFilter:["data-color-scheme"]}),()=>o.disconnect()},[]),e}var f=require("react/jsx-runtime"),qn=(e,t)=>{if(!e)return null;if(e.type==="leaf")return e.id===t?e:null;for(let n of e.children){let o=qn(n,t);if(o)return o}return null},At=new Map,rn="preserved-dom-container",Cn=(0,f.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,f.jsx)("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1"}),(0,f.jsx)("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1"}),(0,f.jsx)("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1"}),(0,f.jsx)("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1"})]}),St={float:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.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,f.jsx)("rect",{x:"2",y:"8",width:"14",height:"14",rx:"1"}),(0,f.jsx)("rect",{x:"8",y:"2",width:"14",height:"14",rx:"1"})]})}),minimize:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",style:{display:"block"},children:(0,f.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})})}),restore:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("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,f.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"1"})})}),maximize:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("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,f.jsx)("rect",{x:"2",y:"2",width:"20",height:"20",rx:"1"})})}),close:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("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,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})},Zn=e=>{let t=At.get(e);return t||(t=document.createElement("div"),t.style.width="100%",t.style.height="100%",At.set(e,t)),t},Uo=(e,t,n)=>{let o=t.component,m=n.get(o);if(!m)return console.warn(`[react-dockable-desktop] Panel "${e}" references component key "${o}" which is not registered. Add it to the WorkspaceClient panels config:
5
- new WorkspaceClient({ panels: { "${o}": { component: YourComponent } } })`),(0,f.jsxs)("div",{className:"rdd-unregistered-panel",style:{border:"2px dashed #dc3545"},children:[(0,f.jsx)("h6",{style:{fontWeight:700,marginBottom:"0.25rem"},children:"\u26A0\uFE0F Component Unregistered"}),(0,f.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--rdd-text-secondary, #94a3b8)"},children:["Key: ",o]})]});let s=m.Component;return(0,f.jsx)(s,{...t.props??{},panelId:e})},wn=new Map,Ue=new Map,pt=e=>{let t=Ue.get(e);return t||(t={onClose:new Set,onMinimize:new Set,onRestore:new Set,onResize:new Set,onActivate:new Set,onDeactivate:new Set,onContainerTypeChange:new Set},Ue.set(e,t)),t},jn=({panelId:e})=>{let t=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let n=t.current;if(!n)return;let o=Zn(e);n.appendChild(o);let m=new ResizeObserver(s=>{for(let I of s){let{width:b,height:T}=I.contentRect;if(b>0&&T>0){wn.set(e,{width:b,height:T});let w=Ue.get(e);w&&w.onResize.forEach(x=>x(b,T))}}});return m.observe(n),()=>{m.disconnect();let s=document.getElementById(rn);s||(s=document.createElement("div"),s.id=rn,s.style.display="none",document.body.appendChild(s)),s.appendChild(o)}},[e]),(0,f.jsx)("div",{ref:t,style:{width:"100%",height:"100%"}})},Jo=({panelId:e})=>{let t=ze(),n=Ct(),o=We(),m=(0,K.useRef)(null),s=t.panels[e],I=s?n.get(s.component):null,b=I?.defaultOptions?.disableLivePreview||!1,T=wn.get(e)||{width:800,height:500},w=T.width,x=T.height,E=Math.min(220/w,140/x);if((0,K.useEffect)(()=>{if(b)return;let D=m.current;if(!D)return;let N=At.get(e);if(N)return D.appendChild(N),()=>{let d=document.getElementById(rn);d||(d=document.createElement("div"),d.id=rn,d.style.display="none",document.body.appendChild(d)),d.appendChild(N)}},[e,b]),b){let D=w*E,N=x*E,d=s?.title||I?.defaultOptions?.title||"Panel",L=ge(d,o),R=(Array.from(L)[0]||"P").toUpperCase();return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${D}px`,height:`${N}px`,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(108, 117, 125, 0.15)",border:"1px dashed var(--rdd-taskbar-item-border, rgba(255, 255, 255, 0.15))"},children:(0,f.jsx)("div",{style:{fontSize:"2rem",fontWeight:600,color:"var(--rdd-panel-title-color, var(--rdd-panel-text, rgba(255, 255, 255, 0.85)))",userSelect:"none"},children:R})})}return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${w*E}px`,height:`${x*E}px`},children:(0,f.jsx)("div",{ref:m,className:"rdd-taskbar-item-preview-host",style:{width:`${w}px`,height:`${x}px`,transform:`scale(${E})`,transformOrigin:"top left",position:"absolute",top:0,left:0,"--rdd-preview-scale":E}})})},Qo=({panelId:e,children:t})=>{let n=ze(),{requestClosePanel:o,setPanelDirty:m,registerCloseGuard:s,unregisterCloseGuard:I,registerStateProvider:b,unregisterStateProvider:T,updatePanelTitle:w,minimizePanel:x}=wt(),v=n.minimized.some(g=>g.id===e),S=(0,K.useRef)(v);(0,K.useEffect)(()=>{let g=Ue.get(e);g&&(v&&!S.current?g.onMinimize.forEach(P=>P()):!v&&S.current&&g.onRestore.forEach(P=>P()),S.current=v)},[v,e]);let E=n.activePanelId===e,D=(0,K.useRef)(E);(0,K.useEffect)(()=>{let g=D.current;D.current=E;let P=Ue.get(e);P&&(E&&!g?P.onActivate.forEach(H=>H()):!E&&g&&P.onDeactivate.forEach(H=>H()))},[E,e]);let N=n.panels[e]?.state,d=N==="floating"?"floating-window":"dockable-panel",L=(0,K.useRef)(d);(0,K.useEffect)(()=>{if(N==="minimized")return;let g=L.current;L.current=d;let P=Ue.get(e);P&&d!==g&&P.onContainerTypeChange.forEach(H=>H(d))},[d,N,e]),(0,K.useEffect)(()=>()=>{let g=Ue.get(e);g&&(D.current&&g.onDeactivate.forEach(P=>P()),g.onClose.forEach(P=>P()),Ue.delete(e))},[e]);let R=(0,K.useRef)(d),z=K.default.useMemo(()=>({requestClose:g=>o(e,g),setDirty:g=>m(e,g),onCloseRequested:g=>(s(e,g),()=>I(e)),registerStateProvider:g=>(b(e,g),()=>T(e)),setTitle:g=>w(e,g),instanceId:e,containerType:R.current,onClose:g=>{let P=pt(e);return P.onClose.add(g),()=>P.onClose.delete(g)},onMinimize:g=>{let P=pt(e);return P.onMinimize.add(g),()=>P.onMinimize.delete(g)},onRestore:g=>{let P=pt(e);return P.onRestore.add(g),()=>P.onRestore.delete(g)},onResize:g=>{let P=pt(e);return P.onResize.add(g),()=>P.onResize.delete(g)},requestMinimize:()=>x(e),getDimensions:()=>wn.get(e)??null,onActivate:g=>{let P=pt(e);return P.onActivate.add(g),()=>P.onActivate.delete(g)},onDeactivate:g=>{let P=pt(e);return P.onDeactivate.add(g),()=>P.onDeactivate.delete(g)},onContainerTypeChange:g=>{let P=pt(e);return P.onContainerTypeChange.add(g),()=>P.onContainerTypeChange.delete(g)}}),[e,o,m,s,I,b,T,w,x]);return(0,f.jsx)(Ke,{value:z,children:t})},Un=({node:e,path:t,onTabRightClick:n,activeDropZone:o,onHoverDropZone:m,onTabDragStart:s,hoveredTab:I,onTabHover:b,defaultPanelIcon:T,onRequestClosePanel:w})=>{let{updateSplitSizes:x}=wt();if(e.type==="leaf")return(0,f.jsx)(er,{leaf:e,onTabRightClick:n,activeDropZone:o,onHoverDropZone:m,onTabDragStart:s,hoveredTab:I,onTabHover:b,defaultPanelIcon:T,onRequestClosePanel:w});let v=e.orientation==="horizontal",S=(E,D)=>{D.preventDefault();let N=D.currentTarget,d=N.parentElement,L=d?v?d.clientWidth:d.clientHeight:v?1e3:800;Ge({element:N,pointerId:D.pointerId,startClientX:D.clientX,startClientY:D.clientY,captureStart:()=>[...e.sizes],activeClasses:[{el:N,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active",v?"rdd-resizing-col-active":"rdd-resizing-row-active"]}],onMove:(R,z,g)=>{let P=(v?R:z)/L,H=[...g];H[E]+=P,H[E+1]-=P,H[E]>.1&&H[E+1]>.1&&x(t,H)}})};return(0,f.jsx)("div",{style:{display:"flex",flexDirection:v?"row":"column",width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:e.children.map((E,D)=>{let N=e.sizes[D]*100;return(0,f.jsxs)(K.default.Fragment,{children:[(0,f.jsx)("div",{style:{flexGrow:e.sizes[D],flexBasis:`${N}%`,overflow:"hidden",position:"relative",minWidth:0,minHeight:0},children:(0,f.jsx)(Un,{node:E,path:[...t,D],onTabRightClick:n,activeDropZone:o,onHoverDropZone:m,onTabDragStart:s,hoveredTab:I,onTabHover:b,defaultPanelIcon:T,onRequestClosePanel:w})}),D<e.children.length-1&&(0,f.jsx)("div",{onPointerDown:d=>S(D,d),style:{cursor:v?"col-resize":"row-resize",width:v?"1px":"100%",height:v?"100%":"1px",zIndex:20},className:"rdd-resizer-bar"})]},D)})})},er=({leaf:e,onTabRightClick:t,activeDropZone:n,onHoverDropZone:o,onTabDragStart:m,hoveredTab:s,onTabHover:I,defaultPanelIcon:b,onRequestClosePanel:T})=>{let w=ze(),x=Ct(),{openPanel:v,closeLeafGroup:S,setActivePanel:E}=hn(),D=We(),N=Fe(),{windowClass:d,windowBodyClass:L}=Be(),R=(0,K.useRef)(null),[z,g]=(0,K.useState)({left:!1,right:!1}),P=(0,K.useCallback)(()=>{let l=R.current;l&&g({left:l.scrollLeft>0,right:l.scrollLeft<l.scrollWidth-l.clientWidth-1})},[]);(0,K.useEffect)(()=>{let l=R.current;if(!l)return;l.addEventListener("scroll",P,{passive:!0});let W=new ResizeObserver(P);return W.observe(l),P(),()=>{l.removeEventListener("scroll",P),W.disconnect()}},[P]);let H=l=>{R.current?.scrollBy({left:l==="left"?-120:120,behavior:"smooth"})},$=l=>{v(l,w.panels[l].component),E(l)};return(0,f.jsxs)("div",{"data-active-panel-id":e.activePanelId||"",className:`rdd-workspace-panel ${d??""}`,style:{overflow:"hidden",position:"relative"},children:[(0,f.jsxs)("div",{className:"rdd-workspace-tab-bar",style:{minHeight:"38px"},children:[z.left&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-left",onPointerDown:l=>l.stopPropagation(),onClick:()=>H("left"),tabIndex:-1,"aria-label":"Scroll tabs left",children:"\u2039"}),(0,f.jsx)("div",{ref:R,className:"rdd-tab-headers-container",style:{scrollbarWidth:"none"},onPointerMove:l=>{w.draggedPanelId&&l.target===l.currentTarget&&I(e.id,"EMPTY",e.panels.length,"right")},onPointerLeave:l=>{w.draggedPanelId&&l.target===l.currentTarget&&I(e.id,"",-1,null)},children:e.panels.map((l,W)=>{let Y=w.panels[l];if(!Y)return null;let q=e.activePanelId===l,j=w.activePanelId===l,ee=x.get(Y.component)?.defaultOptions,Pe=s&&s.leafId===e.id&&s.panelId===l,ne=W===e.panels.length-1,J=s&&s.leafId===e.id&&s.panelId==="EMPTY"&&ne,F=Pe?s.side==="left"?"rdd-drag-hover-left":"rdd-drag-hover-right":J?"rdd-drag-hover-right":"",k=q?j?"rdd-active rdd-workspace-tab-active-focused":"rdd-active rdd-workspace-tab-active-unfocused":"rdd-workspace-tab-inactive";return(0,f.jsxs)("div",{"data-tab-id":l,"data-leaf-id":e.id,"data-tab-index":String(W),onClick:()=>$(l),onPointerDown:V=>{ee?.canDrag!==!1&&m(l,V)},onContextMenu:V=>t(l,V),onPointerMove:V=>{if(w.draggedPanelId&&V.pointerType!=="touch"){let B=V.currentTarget.getBoundingClientRect(),fe=V.clientX-B.left<B.width/2?"left":"right";I(e.id,l,W,fe)}},onPointerLeave:()=>{w.draggedPanelId&&I(e.id,"",-1,null)},className:`rdd-workspace-tab ${k} ${F}`,style:{cursor:ee?.canDrag===!1?"default":"pointer"},children:[(0,f.jsxs)("span",{className:"rdd-text-truncate",style:{maxWidth:"120px",display:"flex",alignItems:"center"},children:[(0,f.jsx)("span",{className:"rdd-workspace-tab-icon",children:ee?.icon||b||Cn}),(0,f.jsxs)("span",{children:[ge(Y.title,D),Y.dirty?" *":""]})]}),ee?.renderHeaderActions&&(0,f.jsx)("span",{className:"rdd-tab-header-actions",onClick:V=>V.stopPropagation(),onPointerDown:V=>V.stopPropagation(),children:ee.renderHeaderActions(l)}),ee?.canClose!==!1&&(0,f.jsx)("span",{onClick:V=>{V.stopPropagation(),T(l)},title:ge(N.closeTab,D),className:"rdd-close-tab-x",style:{width:"18px",height:"18px",...ee?.renderHeaderActions?{}:{marginInlineStart:"auto"}},children:(0,f.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]},l)})}),z.right&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-right",onPointerDown:l=>l.stopPropagation(),onClick:()=>H("right"),tabIndex:-1,"aria-label":"Scroll tabs right",children:"\u203A"}),e.panels.length===0&&e.keepOnEmpty&&e.canClose!==!1&&(0,f.jsx)("span",{onClick:()=>S(e.id),className:"rdd-close-tab-x rdd-header-close-empty-group",style:{width:"18px",height:"18px",cursor:"pointer"},title:ge(N.closeEmptyGroup,D),children:(0,f.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,f.jsxs)("div",{className:`rdd-panel-body ${L??""}`,style:{position:"relative",overflow:"hidden"},children:[e.activePanelId&&w.panels[e.activePanelId]?(0,f.jsx)(jn,{panelId:e.activePanelId},e.activePanelId):(0,f.jsx)("div",{className:"rdd-empty-leaf-placeholder",children:(0,f.jsx)("span",{children:"Empty Workspace Section"})}),w.draggedPanelId!==null&&(0,f.jsx)("div",{className:"rdd-dock-drop-zone-overlay",children:(0,f.jsxs)("div",{className:"rdd-dock-target-cross",children:[(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"top",onPointerEnter:()=>o(e.id,"top"),onPointerLeave:()=>o(e.id,null),className:"rdd-dock-target-box rdd-dock-target-top",children:"\u25B2"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"bottom",onPointerEnter:()=>o(e.id,"bottom"),onPointerLeave:()=>o(e.id,null),className:"rdd-dock-target-box rdd-dock-target-bottom",children:"\u25BC"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"left",onPointerEnter:()=>o(e.id,"left"),onPointerLeave:()=>o(e.id,null),className:"rdd-dock-target-box rdd-dock-target-left",children:"\u25C0"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"right",onPointerEnter:()=>o(e.id,"right"),onPointerLeave:()=>o(e.id,null),className:"rdd-dock-target-box rdd-dock-target-right",children:"\u25B6"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"center",onPointerEnter:()=>o(e.id,"center"),onPointerLeave:()=>o(e.id,null),className:"rdd-dock-target-box rdd-dock-target-center",children:"\u25A3"})]})}),w.draggedPanelId!==null&&n!==null&&n.leafId===e.id&&(0,f.jsx)("div",{className:"rdd-dock-preview-highlight",style:(()=>{let l=n.position,W=`${w.splitRatio*100}%`,Y=`${(1-w.splitRatio)*100}%`;return{left:l==="right"?Y:"0",top:l==="bottom"?Y:"0",width:l==="left"||l==="right"?W:"100%",height:l==="top"||l==="bottom"?W:"100%"}})()})]})]})},tr=({skin:e="vscode",defaultPanelIcon:t,taskbarVisibility:n="always",contextMenuAdapter:o=ut,animations:m=!0})=>{let s=ze(),I=Ct(),{restorePanel:b,minimizePanel:T,requestClosePanel:w,maximizePanel:x,updateFloatingPosition:v,focusPanel:S,floatPanel:E,setDraggedPanelId:D,dockPanelToGroup:N,movePanelOrder:d,dockPanelToWorkspaceEdge:L,setActivePanel:R,getPanelContextMenuItems:z,showContextMenu:g,registerContextMenuFn:P}=hn(),{openModal:H}=Ze(),$=We(),l=Fe(),W=K.default.useCallback(r=>{let C=s.panels[r];w(r,{onConfirm:p=>new Promise(u=>{let h=p||C?.dirtyOptions,M=C?ge(C.title,$):"Panel";H(je,{title:h?.title||l.unsavedChangesTitle,message:h?.message||{id:l.unsavedChangesMessage.id,defaultMessage:l.unsavedChangesMessage.defaultMessage,values:{title:M}},alert:h?.alert,alertType:h?.alertType||"danger",useYesNoTitles:!0,onOK:()=>u(!0),onCancel:()=>u(!1)},{size:"small"})})})},[w,s.panels,$,H,l]),{windowClass:Y,windowBodyClass:q}=Be(),j=(0,K.useContext)(Mt),pe=(0,K.useRef)(null);(0,K.useEffect)(()=>P(j!==null?r=>j.show(r):r=>pe.current?.show(r)),[j,P]);let ee=(0,K.useRef)(null),[Pe,ne]=(0,K.useState)(!1),J=(0,K.useRef)(null),F=(0,K.useRef)(s.minimized.length),[k,V]=(0,K.useState)(null),B=(0,K.useRef)(null),le=(0,K.useRef)("mouse"),[fe,ve]=(0,K.useState)(!1),xe=j!==null?j.isOpen:fe;(0,K.useEffect)(()=>()=>{B.current&&clearTimeout(B.current)},[]),(0,K.useEffect)(()=>{k&&(s.minimized.some(C=>C.id===k.id)||V(null))},[s.minimized,k]),(0,K.useEffect)(()=>{if(!k?.fromTouch)return;let r=C=>{C.pointerType!=="touch"||document.querySelector(".rdd-taskbar-item-tooltip")?.contains(C.target)||V(null)};return document.addEventListener("pointerdown",r,{capture:!0}),()=>document.removeEventListener("pointerdown",r,{capture:!0})},[k?.fromTouch]);let[Le,De]=(0,K.useState)(null),Ae=(0,K.useRef)(null),[Qe,et]=(0,K.useState)({x:0,y:0}),[tt,Ht]=(0,K.useState)(null),gt=(0,K.useRef)(null),Se=r=>{Ht(r),gt.current=r},[Bt,$t]=(0,K.useState)(null),mt=(0,K.useRef)(null),nt=r=>{$t(r),mt.current=r},It=(0,K.useContext)(xt)?.isRtl??!1,[Gt,Xe]=(0,K.useState)(null),He=(0,K.useRef)(null),Yt=(r,C,p,u)=>{let h=u?{leafId:r,panelId:C,index:p,side:u}:null;Xe(h),He.current=h},Xt=(r,C)=>{let p=C?{leafId:r,position:C}:null;De(p),Ae.current=p},Et=(r,C)=>{let p=document.elementsFromPoint(r,C),u=!1,h=!1,M=!1;for(let A of p)if(A instanceof HTMLElement){if(!u&&A.dataset.dropZone){let _=A.dataset.leafId;if(_){let Q=A.dataset.dropZone;De({leafId:_,position:Q}),Ae.current={leafId:_,position:Q},u=!0}}if(!M&&A.dataset.tabId){let _=A.dataset.leafId,Q=parseInt(A.dataset.tabIndex||"0",10);if(_){let oe=A.getBoundingClientRect(),Z=r-oe.left<oe.width/2?"left":"right";Xe({leafId:_,panelId:A.dataset.tabId,index:Q,side:Z}),He.current={leafId:_,panelId:A.dataset.tabId,index:Q,side:Z},M=!0}}if(!h&&A.dataset.edgeTrigger&&(Se(A.dataset.edgeTrigger),h=!0),u&&h&&M)break}u||(De(null),Ae.current=null),h||Se(null),M||(Xe(null),He.current=null)},ot=300,rt=8,_e=()=>{D(null),De(null),Ae.current=null,Xe(null),He.current=null,Se(null)},Ve=r=>s.isRtl?r==="left"?"right":r==="right"?"left":r:r,Lt=(r,C)=>{let p=Ae.current,u=He.current,h=gt.current,M=mt.current;if(h)L(r,Ve(h));else if(u){let A=u.index;u.side==="right"&&(A+=1);let _=qn(s.gridRoot,u.leafId);if(_){let Q=_.panels.indexOf(r);Q!==-1&&Q<A&&(A-=1)}d(r,u.leafId,A)}else p?N(r,p.leafId,Ve(p.position)):M?E(r,void 0,It?Ot(M):M):E(r,{x:C.clientX-150,y:C.clientY-15,width:450,height:350});nt(null),_e()},Vt=(r,C)=>{if(C.pointerType==="mouse"&&C.button!==0)return;C.preventDefault();let p=C.currentTarget,u=C.clientX,h=C.clientY;if(C.pointerType==="touch"){let M=C.pointerId,A=!1,_=()=>{A=!0,clearTimeout(oe),p.removeEventListener("pointermove",Q),p.removeEventListener("pointerup",_),p.removeEventListener("pointercancel",_)},Q=Z=>{Math.hypot(Z.clientX-u,Z.clientY-h)>rt&&_()},oe=setTimeout(()=>{if(A)return;p.removeEventListener("pointermove",Q),p.removeEventListener("pointerup",_),p.removeEventListener("pointercancel",_);try{p.setPointerCapture(M)}catch{return}p.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),navigator.vibrate&&navigator.vibrate(10);let Z=!1,te=ae=>{Z||(Z=!0,D(r)),et({x:ae.clientX,y:ae.clientY}),Et(ae.clientX,ae.clientY)},de=ae=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",te),p.removeEventListener("pointerup",de),p.removeEventListener("pointercancel",re),Z?Lt(r,ae):zt(r,ae)},re=()=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",te),p.removeEventListener("pointerup",de),p.removeEventListener("pointercancel",re),Z&&_e()};p.addEventListener("pointermove",te),p.addEventListener("pointerup",de),p.addEventListener("pointercancel",re)},ot);p.addEventListener("pointermove",Q),p.addEventListener("pointerup",_),p.addEventListener("pointercancel",_)}else{let M=!1,A=oe=>{let Z=oe.clientX-u,te=oe.clientY-h;!M&&(Math.abs(Z)>5||Math.abs(te)>5)&&(M=!0,D(r)),M&&et({x:oe.clientX,y:oe.clientY})},_=oe=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",Q),M&&Lt(r,oe)},Q=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",Q),M&&_e()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",A),window.addEventListener("pointerup",_),window.addEventListener("pointercancel",Q)}},zt=(r,C)=>{C.preventDefault();let p=s.panels[r];if(!p)return;let h=I.get(p.component)?.defaultOptions,M=[];if(h?.canDrag!==!1&&M.push({label:ge(l.floatWindow,$),icon:St.float,action:()=>E(r)}),h?.canMinimize!==!1&&M.push({label:ge(l.minimizePanel,$),icon:St.minimize,action:()=>T(r)}),M.length>0&&h?.canClose!==!1&&M.push({separator:!0}),h?.canClose!==!1&&M.push({label:ge(l.closeTab,$),icon:St.close,action:()=>W(r)}),M.length===0)return;let A=z(r),_=A.length>0?[...M,{separator:!0},...A]:M;g({event:C,items:_})},it=(r,C)=>{C.preventDefault(),V(null),g({event:C,items:[{label:ge(l.restorePanel,$),icon:St.restore,action:()=>b(r)},{label:ge(l.maximizePanel,$),icon:St.maximize,action:()=>x(r)},{separator:!0},{label:ge(l.closePanel,$),icon:St.close,action:()=>W(r)}]})};(0,K.useEffect)(()=>{let r=Object.keys(s.panels);for(let C of Array.from(At.keys()))r.includes(C)||At.delete(C)},[s.panels]),(0,K.useEffect)(()=>{let r=()=>{s.draggedPanelId!==null&&(D(null),De(null),Xe(null))};return window.addEventListener("blur",r),()=>{window.removeEventListener("blur",r)}},[s.draggedPanelId]);let ft=(0,K.useRef)(null),[st,cn]=(0,K.useState)({width:1024,height:768});(0,K.useEffect)(()=>{let r=ft.current;if(!r)return;let C=!1,p=new ResizeObserver(u=>{if(!u||u.length===0)return;let h=u[0].contentRect;if(process.env.NODE_ENV==="development"&&h.height<10&&!C){C=!0;let M=r,A=r.parentElement;for(;A&&A!==document.documentElement&&A.getBoundingClientRect().height<10;){M=A;A=A.parentElement}let _=M.tagName.toLowerCase(),Q=M.id?` id="${M.id}"`:"",oe=M.className?` class="${M.className}"`:"",Z=M===r?"the WindowManager container itself":`a wrapper element: <${_}${Q}${oe}>`;console.warn(`[react-dockable-desktop] Workspace height is 0px \u2014 the workspace will be invisible.
4
+ Without it the workspace renders as a black screen with no console errors.`)}catch{}},[]),(0,O.useEffect)(()=>{if(t)return t._connect(ft),()=>{t._disconnect()}},[t,ft]);let un=(0,O.useMemo)(()=>({getSnapshot:P,subscribeToState:H}),[P,H]);return(0,je.jsx)(An.Provider,{value:cn,children:(0,je.jsx)(Fn.Provider,{value:S,children:(0,je.jsx)(Wn.Provider,{value:un,children:(0,je.jsx)(xt.Provider,{value:L,children:(0,je.jsx)(jt.Provider,{value:ft,children:(0,je.jsx)(Dn.Provider,{value:E||st,children:(0,je.jsx)(On.Provider,{value:N,children:e})})})})})})})},Nn=e=>()=>{};function ze(e){let t=(0,O.useContext)(xt),n=(0,O.useContext)(Wn),o=(0,O.useRef)(e);o.current=e;let m=(0,O.useSyncExternalStore)(e?n?.subscribeToState??Nn:Nn,()=>{let s=n?.getSnapshot()??t;return o.current?o.current(s):s},()=>{let s=n?.getSnapshot()??t;return o.current?o.current(s):s});if(!t)throw new Error("useWindowManagerState must be used within WindowManagerProvider");return e?m:t}var wt=()=>{let e=(0,O.useContext)(jt);if(!e)throw new Error("useWindowManagerActions must be used within WindowManagerProvider");return e},hn=()=>{let e=(0,O.useContext)(jt);if(!e)throw new Error("useWindowManagerActionsInternal must be used within WindowManagerProvider");return e},We=()=>(0,O.useContext)(Dn)||(t=>{let n=t.defaultMessage||t.id;return t.values&&Object.entries(t.values).forEach(([o,m])=>{n=n.replace(`{${o}}`,String(m))}),n}),ge=(e,t)=>e?typeof e=="string"?e:t(e):"",Hn=()=>{let{publish:e,subscribe:t}=wt();return{publish:e,subscribe:t}},Fe=()=>(0,O.useContext)(On),Dt=()=>lt().instanceId;function Bn(e){let t=(0,O.useContext)(jt),n=Dt(),o=(0,O.useRef)(e);o.current=e,(0,O.useEffect)(()=>{if(!(!t?.registerPanelContextMenu||!n))return t.registerPanelContextMenu(n,()=>o.current)},[n,t?.registerPanelContextMenu])}var me=mn(require("react"),1),bn=require("react-dom"),ie=require("react/jsx-runtime");function qo(e){return e?"touches"in e&&e.touches.length>0?{x:e.touches[0].clientX,y:e.touches[0].clientY}:{x:e.clientX,y:e.clientY}:{x:0,y:0}}function Rt(e,t){return typeof e=="string"?e:t?t(e):e.defaultMessage??e.id}function vn(e){return"separator"in e}function Ut(e){return!vn(e)&&"items"in e}var Gn=(0,me.forwardRef)(({items:e,x:t,y:n,theme:o,fmt:m,onClose:s,onMouseEnter:I,onMouseLeave:b},T)=>((0,me.useLayoutEffect)(()=>{let w=T?.current;if(!w)return;let x=w.getBoundingClientRect(),v=8;x.right>window.innerWidth-v&&(w.style.left=`${Math.max(v,window.innerWidth-x.width-v)}px`,w.style.right="auto"),x.bottom>window.innerHeight-v&&(w.style.top=`${Math.max(v,window.innerHeight-x.height-v)}px`),x.left<v&&(w.style.left=`${v}px`,w.style.right="auto"),x.top<v&&(w.style.top=`${v}px`)}),(0,bn.createPortal)((0,ie.jsx)("div",{ref:T,className:`rdd-context-menu rdd-context-menu--${o} rdd-context-menu--submenu`,style:{position:"fixed",left:t,top:n,zIndex:9501},role:"menu",onMouseEnter:I,onMouseLeave:b,children:e.map((w,x)=>{if(vn(w))return(0,ie.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},x);let v=w,S=v.checkbox&&v.checkbox.active!==!1,E=S&&v.checkbox.value,W=v.disabled===!0||(S?v.checkbox.enabled===!1:!1);return(0,ie.jsxs)("button",{type:"button",className:`rdd-context-menu__item${W?" rdd-context-menu__item--disabled":""}`,title:v.title?Rt(v.title,m):void 0,disabled:W,"data-cy-action":v.cyAction,onClick:()=>{W||(v.action?.(),s())},role:"menuitem","aria-checked":S?E:void 0,children:[v.icon?(0,ie.jsx)("span",{className:"rdd-context-menu__icon",children:v.icon}):(0,ie.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,ie.jsx)("span",{className:"rdd-context-menu__label",children:Rt(v.label,m)}),S&&(0,ie.jsx)("span",{className:`rdd-context-menu__checkbox${E?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,ie.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ie.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),E&&(0,ie.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},x)})}),document.body)));Gn.displayName="ContextMenuSubMenuPanel";var $n={visible:!1,x:0,y:0,items:[]},Jt=(0,me.forwardRef)(({theme:e="dark",formatMessageProvider:t,onShow:n,onHide:o,onOpenChange:m,className:s,style:I},b)=>{let[T,w]=(0,me.useState)($n),[x,v]=(0,me.useState)(null),S=(0,me.useRef)(null),E=(0,me.useRef)(null),W=(0,me.useRef)(new Map),D=(0,me.useRef)({open:null,close:null}),d=me.default.useCallback(()=>{w($n),v(null),D.current.open&&clearTimeout(D.current.open),D.current.close&&clearTimeout(D.current.close),D.current.open=null,D.current.close=null,o?.(),m?.(!1)},[o,m]);if((0,me.useImperativeHandle)(b,()=>({show({event:l,x:N,y:Y,items:q}){let Z=l?qo(l):{x:N??0,y:Y??0};W.current.clear(),w({visible:!0,x:Z.x,y:Z.y,items:q}),v(null),n?.(),m?.(!0)}}),[n,m]),(0,me.useEffect)(()=>{if(!T.visible)return;let l=N=>{S.current?.contains(N.target)||E.current?.contains(N.target)||d()};return document.addEventListener("pointerdown",l,{capture:!0}),window.addEventListener("click",l),()=>{document.removeEventListener("pointerdown",l,{capture:!0}),window.removeEventListener("click",l)}},[T.visible,d]),(0,me.useEffect)(()=>{if(!T.visible)return;let l=N=>{N.key==="Escape"&&d()};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[T.visible,d]),(0,me.useLayoutEffect)(()=>{if(!T.visible||!S.current)return;let l=S.current,N=l.getBoundingClientRect(),Y=8;N.right>window.innerWidth-Y&&(l.style.left=`${Math.max(Y,window.innerWidth-N.width-Y)}px`),N.bottom>window.innerHeight-Y&&(l.style.top=`${Math.max(Y,window.innerHeight-N.height-Y)}px`),N.left<Y&&(l.style.left=`${Y}px`),N.top<Y&&(l.style.top=`${Y}px`)},[T.visible]),!T.visible)return null;let L=t,R=0,z=0;if(x!==null){let l=W.current.get(x);if(l){let N=l.getBoundingClientRect();R=document.documentElement.dir==="rtl"?window.innerWidth-N.left+2:N.right+2,z=N.top}}function g(){D.current.open&&(clearTimeout(D.current.open),D.current.open=null)}function P(){D.current.close&&(clearTimeout(D.current.close),D.current.close=null)}function H(l,N){P(),x!==null&&x!==l&&(g(),v(null)),Ut(N)&&N.items?.length?(g(),D.current.open=setTimeout(()=>{v(l)},150)):Ut(N)||(g(),x!==null&&(D.current.close=setTimeout(()=>v(null),200)))}function $(l){g(),Ut(l)&&l.items?.length&&(D.current.close=setTimeout(()=>v(null),200))}return(0,bn.createPortal)((0,ie.jsxs)(ie.Fragment,{children:[(0,ie.jsx)("div",{ref:S,className:`rdd-context-menu rdd-context-menu--${e}${s?` ${s}`:""}`,style:{position:"fixed",left:T.x,top:T.y,zIndex:9500,...I},role:"menu","aria-orientation":"vertical",children:T.items.map((l,N)=>{if(vn(l))return(0,ie.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},N);if(Ut(l))return(0,ie.jsxs)("button",{ref:ee=>{W.current.set(N,ee)},type:"button",className:`rdd-context-menu__item rdd-context-menu__item--has-submenu${x===N?" rdd-context-menu__item--submenu-open":""}`,title:l.title?Rt(l.title,L):void 0,onMouseEnter:()=>H(N,l),onMouseLeave:()=>$(l),role:"menuitem","aria-haspopup":"true","aria-expanded":x===N,children:[(0,ie.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,ie.jsx)("span",{className:"rdd-context-menu__label",children:Rt(l.label,L)}),(0,ie.jsx)("span",{className:"rdd-context-menu__chevron","aria-hidden":"true",children:"\u203A"})]},N);let Y=l,q=Y.checkbox&&Y.checkbox.active!==!1,Z=q&&Y.checkbox.value,pe=Y.disabled===!0||(q?Y.checkbox.enabled===!1:!1);return(0,ie.jsxs)("button",{ref:ee=>{W.current.set(N,ee)},type:"button",className:`rdd-context-menu__item${pe?" rdd-context-menu__item--disabled":""}`,title:Y.title?Rt(Y.title,L):void 0,disabled:pe,"data-cy-action":Y.cyAction,onClick:()=>{pe||(Y.action?.(),d())},onMouseEnter:()=>H(N,l),onMouseLeave:()=>$(l),role:"menuitem","aria-checked":q?Z:void 0,children:[Y.icon?(0,ie.jsx)("span",{className:"rdd-context-menu__icon",children:Y.icon}):(0,ie.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,ie.jsx)("span",{className:"rdd-context-menu__label",children:Rt(Y.label,L)}),q&&(0,ie.jsx)("span",{className:`rdd-context-menu__checkbox${Z?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,ie.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,ie.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:Z?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.5"}),Z&&(0,ie.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},N)})}),x!==null&&(()=>{let l=T.items[x];return(0,ie.jsx)(Gn,{ref:E,items:l.items??[],x:R,y:z,theme:e,fmt:L,onClose:d,onMouseEnter:()=>P(),onMouseLeave:()=>{D.current.close=setTimeout(()=>v(null),200)}})})()]}),document.body)});Jt.displayName="ContextMenu";var ut={Component:Jt},Mt=me.default.createContext(null),Qt=({adapter:e=ut,children:t,...n})=>{let o=(0,me.useRef)(null),[m,s]=me.default.useState(!1),I=me.default.useCallback(b=>{o.current?.show(b)},[]);return(0,ie.jsxs)(Mt.Provider,{value:{show:I,isOpen:m},children:[t,(0,ie.jsx)(e.Component,{ref:o,...n,onShow:()=>{s(!0),n.onShow?.()},onHide:()=>{s(!1),n.onHide?.()}})]})};function Yn(){let e=me.default.useContext(Mt);if(!e)throw new Error("useShowContextMenu must be used within a ContextMenuProvider");return e.show}var he=require("react"),Pn=require("react/jsx-runtime"),jo=0,yn=()=>`panel-${++jo}-${Date.now()}`,en=new Map,Xn={leftPanel:null,rightPanel:null,modals:[]},Vn=(0,he.createContext)(null),Kn=(0,he.createContext)(null),tn=({children:e})=>{let[t,n]=(0,he.useState)(Xn),o=(0,he.useRef)(t);o.current=t;let m=(0,he.useCallback)((d,L)=>{en.set(d,L)},[]),s=(0,he.useCallback)(d=>{en.delete(d)},[]),I=(0,he.useCallback)(async(d,L,R={})=>{let z=o.current.leftPanel;if(z){let H=en.get(z.id);if(H&&!await H())return null}let g=yn(),P={id:g,Component:d,props:L,containerType:"left-panel",options:R};return n(H=>({...H,leftPanel:P})),g},[]),b=(0,he.useCallback)(async(d,L,R={})=>{let z=o.current.rightPanel;if(z){let H=en.get(z.id);if(H&&!await H())return null}let g=yn(),P={id:g,Component:d,props:L,containerType:"right-panel",options:R};return n(H=>({...H,rightPanel:P})),g},[]),T=(0,he.useCallback)((d,L,R={})=>{let z=yn(),g=L.title,P={...R,title:R.title||g||"Confirmation"},H={id:z,Component:d,props:L,containerType:"modal",options:P};return n($=>({...$,modals:[...$.modals,H]})),z},[]),w=(0,he.useCallback)(d=>{n(L=>({leftPanel:L.leftPanel?.id===d?null:L.leftPanel,rightPanel:L.rightPanel?.id===d?null:L.rightPanel,modals:L.modals.filter(R=>R.id!==d)}))},[]),x=(0,he.useCallback)(()=>{n(Xn)},[]),v=(0,he.useCallback)(()=>{n(d=>({...d,modals:[]}))},[]),S=(0,he.useCallback)(d=>t.leftPanel?.id===d?t.leftPanel:t.rightPanel?.id===d?t.rightPanel:t.modals.find(L=>L.id===d),[t]),E=(0,he.useCallback)((d,L)=>{n(R=>({leftPanel:R.leftPanel?.id===d?{...R.leftPanel,...L}:R.leftPanel,rightPanel:R.rightPanel?.id===d?{...R.rightPanel,...L}:R.rightPanel,modals:R.modals.map(z=>z.id===d?{...z,...L}:z)}))},[]),W=(0,he.useCallback)((d,L,R)=>{E(d,{dirty:L,dirtyOptions:R})},[E]),D=(0,he.useMemo)(()=>({openLeftPanel:I,openRightPanel:b,openModal:T,close:w,closeAll:x,closeAllModals:v,getInstance:S,updateInstance:E,setDirty:W,registerCloseHandler:m,unregisterCloseHandler:s}),[I,b,T,w,x,v,S,E,W,m,s]);return(0,Pn.jsx)(Vn.Provider,{value:t,children:(0,Pn.jsx)(Kn.Provider,{value:D,children:e})})},$e=()=>{let e=(0,he.useContext)(Vn);if(!e)throw new Error("usePanelState must be used within PanelProvider");return e},Ze=()=>{let e=(0,he.useContext)(Kn);if(!e)throw new Error("usePanelActions must be used within PanelProvider");return e};var Wt=require("react");var Oe=require("react/jsx-runtime"),Zo=({title:e,message:t,alert:n,alertType:o="info",useYesNoTitles:m=!1,onOK:s,onCancel:I})=>{let{requestClose:b,setIcon:T,setTitle:w}=lt(),x=We(),v=Fe(),S=(0,Wt.useRef)(null);(0,Wt.useEffect)(()=>{if(e){let R=typeof e=="string"?e:x(e);w(R)}T&&T((0,Oe.jsx)("span",{children:"\u2753"}))},[e,w,T,x]),(0,Wt.useEffect)(()=>{S.current?.focus()},[]);let E=typeof t=="string"?t:x(t),W=x(m?v.no:v.cancel),D=x(m?v.yes:v.ok),d=R=>{R.preventDefault(),s?.(),b()},L=()=>{I?.(),b()};return(0,Oe.jsxs)("form",{onSubmit:d,className:"rdd-confirmation-form-body",children:[n&&(0,Oe.jsxs)("div",{className:`rdd-confirmation-alert confirmation-alert-${o}`,children:[(0,Oe.jsx)("span",{children:"\u2139\uFE0F"}),(0,Oe.jsx)("span",{children:n})]}),(0,Oe.jsx)("div",{style:{fontSize:"0.9rem",color:"inherit",lineHeight:1.5},children:E}),(0,Oe.jsx)("hr",{style:{marginTop:"0.5rem",marginBottom:"0.5rem",opacity:.1}}),(0,Oe.jsxs)("div",{className:"rdd-confirmation-actions",children:[(0,Oe.jsx)("button",{type:"button",className:"rdd-btn rdd-btn-sm rdd-btn-outline",onClick:L,children:W}),(0,Oe.jsx)("button",{type:"submit",className:"rdd-btn rdd-btn-sm rdd-btn-primary",ref:S,children:D})]})]})},Ue=Zo;function Ot(e){return e==="top-left"?"top-right":e==="top-right"?"top-left":e==="bottom-left"?"bottom-right":"bottom-left"}function Ge(e){let{element:t,pointerId:n,startClientX:o,startClientY:m,captureStart:s,onMove:I,onEnd:b,activeClasses:T}=e;t.setPointerCapture(n),T?.forEach(({el:S,classes:E})=>S.classList.add(...E));let w=s(),x=S=>{I(S.clientX-o,S.clientY-m,w)},v=()=>{T?.forEach(({el:S,classes:E})=>S.classList.remove(...E)),t.removeEventListener("pointermove",x),t.removeEventListener("pointerup",v),t.removeEventListener("pointercancel",v),b?.(w)};t.addEventListener("pointermove",x),t.addEventListener("pointerup",v),t.addEventListener("pointercancel",v)}function Tt(e,t,n,o,m){let{minW:s,minH:I,maxW:b,maxH:T,minX:w,minY:x}=m,{x:v,y:S,w:E,h:W}=o;if(e.includes("e")&&(E=Math.max(s,Math.min(o.w+t,b??1/0))),e.includes("w")){let D=o.w-s,d=w!=null?-(o.x-w):-1/0,L=Math.max(d,Math.min(t,D));E=o.w-L,v=o.x+L}if(e.includes("s")&&(W=Math.max(I,Math.min(o.h+n,T??1/0))),e.includes("n")){let D=o.h-I,d=x!=null?-(o.y-x):-1/0,L=Math.max(d,Math.min(n,D));W=o.h-L,S=o.y+L}return{x:v,y:S,w:E,h:W}}var nn=require("react");function on(){let[e,t]=(0,nn.useState)(()=>document.documentElement.getAttribute("data-color-scheme")==="light"?"light":"dark");return(0,nn.useEffect)(()=>{let n=()=>{t(document.documentElement.getAttribute("data-color-scheme")==="light"?"light":"dark")};n();let o=new MutationObserver(n);return o.observe(document.documentElement,{attributes:!0,attributeFilter:["data-color-scheme"]}),()=>o.disconnect()},[]),e}var f=require("react/jsx-runtime"),qn=(e,t)=>{if(!e)return null;if(e.type==="leaf")return e.id===t?e:null;for(let n of e.children){let o=qn(n,t);if(o)return o}return null},At=new Map,rn="preserved-dom-container",Cn=(0,f.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,f.jsx)("rect",{x:"3",y:"3",width:"7",height:"9",rx:"1"}),(0,f.jsx)("rect",{x:"14",y:"3",width:"7",height:"5",rx:"1"}),(0,f.jsx)("rect",{x:"14",y:"12",width:"7",height:"9",rx:"1"}),(0,f.jsx)("rect",{x:"3",y:"16",width:"7",height:"5",rx:"1"})]}),St={float:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.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,f.jsx)("rect",{x:"2",y:"8",width:"14",height:"14",rx:"1"}),(0,f.jsx)("rect",{x:"8",y:"2",width:"14",height:"14",rx:"1"})]})}),minimize:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",style:{display:"block"},children:(0,f.jsx)("line",{x1:"4",y1:"18",x2:"20",y2:"18"})})}),restore:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("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,f.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"1"})})}),maximize:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("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,f.jsx)("rect",{x:"2",y:"2",width:"20",height:"20",rx:"1"})})}),close:(0,f.jsx)("span",{className:"rdd-menu-icon",children:(0,f.jsx)("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,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})},jn=e=>{let t=At.get(e);return t||(t=document.createElement("div"),t.style.width="100%",t.style.height="100%",At.set(e,t)),t},Uo=(e,t,n)=>{let o=t.component,m=n.get(o);if(!m)return console.warn(`[react-dockable-desktop] Panel "${e}" references component key "${o}" which is not registered. Add it to the WorkspaceClient panels config:
5
+ new WorkspaceClient({ panels: { "${o}": { component: YourComponent } } })`),(0,f.jsxs)("div",{className:"rdd-unregistered-panel",style:{border:"2px dashed #dc3545"},children:[(0,f.jsx)("h6",{style:{fontWeight:700,marginBottom:"0.25rem"},children:"\u26A0\uFE0F Component Unregistered"}),(0,f.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--rdd-text-secondary, #94a3b8)"},children:["Key: ",o]})]});let s=m.Component;return(0,f.jsx)(s,{...t.props??{},panelId:e})},wn=new Map,Je=new Map,pt=e=>{let t=Je.get(e);return t||(t={onClose:new Set,onMinimize:new Set,onRestore:new Set,onResize:new Set,onActivate:new Set,onDeactivate:new Set,onContainerTypeChange:new Set},Je.set(e,t)),t},Zn=({panelId:e})=>{let t=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let n=t.current;if(!n)return;let o=jn(e);n.appendChild(o);let m=new ResizeObserver(s=>{for(let I of s){let{width:b,height:T}=I.contentRect;if(b>0&&T>0){wn.set(e,{width:b,height:T});let w=Je.get(e);w&&w.onResize.forEach(x=>x(b,T))}}});return m.observe(n),()=>{m.disconnect();let s=document.getElementById(rn);s||(s=document.createElement("div"),s.id=rn,s.style.display="none",document.body.appendChild(s)),s.appendChild(o)}},[e]),(0,f.jsx)("div",{ref:t,style:{width:"100%",height:"100%"}})},Jo=({panelId:e})=>{let t=ze(),n=Ct(),o=We(),m=(0,K.useRef)(null),s=t.panels[e],I=s?n.get(s.component):null,b=I?.defaultOptions?.disableLivePreview||!1,T=wn.get(e)||{width:800,height:500},w=T.width,x=T.height,E=Math.min(220/w,140/x);if((0,K.useEffect)(()=>{if(b)return;let W=m.current;if(!W)return;let D=At.get(e);if(D)return W.appendChild(D),()=>{let d=document.getElementById(rn);d||(d=document.createElement("div"),d.id=rn,d.style.display="none",document.body.appendChild(d)),d.appendChild(D)}},[e,b]),b){let W=w*E,D=x*E,d=s?.title||I?.defaultOptions?.title||"Panel",L=ge(d,o),R=(Array.from(L)[0]||"P").toUpperCase();return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${W}px`,height:`${D}px`,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(108, 117, 125, 0.15)",border:"1px dashed var(--rdd-taskbar-item-border, rgba(255, 255, 255, 0.15))"},children:(0,f.jsx)("div",{style:{fontSize:"2rem",fontWeight:600,color:"var(--rdd-panel-title-color, var(--rdd-panel-text, rgba(255, 255, 255, 0.85)))",userSelect:"none"},children:R})})}return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${w*E}px`,height:`${x*E}px`},children:(0,f.jsx)("div",{ref:m,className:"rdd-taskbar-item-preview-host",style:{width:`${w}px`,height:`${x}px`,transform:`scale(${E})`,transformOrigin:"top left",position:"absolute",top:0,left:0,"--rdd-preview-scale":E}})})},Qo=({panelId:e,children:t})=>{let n=ze(),{requestClosePanel:o,setPanelDirty:m,registerCloseGuard:s,unregisterCloseGuard:I,registerStateProvider:b,unregisterStateProvider:T,updatePanelTitle:w,minimizePanel:x}=wt(),v=n.minimized.some(g=>g.id===e),S=(0,K.useRef)(v);(0,K.useEffect)(()=>{let g=Je.get(e);g&&(v&&!S.current?g.onMinimize.forEach(P=>P()):!v&&S.current&&g.onRestore.forEach(P=>P()),S.current=v)},[v,e]);let E=n.activePanelId===e,W=(0,K.useRef)(E);(0,K.useEffect)(()=>{let g=W.current;W.current=E;let P=Je.get(e);P&&(E&&!g?P.onActivate.forEach(H=>H()):!E&&g&&P.onDeactivate.forEach(H=>H()))},[E,e]);let D=n.panels[e]?.state,d=D==="floating"?"floating-window":"dockable-panel",L=(0,K.useRef)(d);(0,K.useEffect)(()=>{if(D==="minimized")return;let g=L.current;L.current=d;let P=Je.get(e);P&&d!==g&&P.onContainerTypeChange.forEach(H=>H(d))},[d,D,e]),(0,K.useEffect)(()=>()=>{let g=Je.get(e);g&&(W.current&&g.onDeactivate.forEach(P=>P()),g.onClose.forEach(P=>P()),Je.delete(e))},[e]);let R=(0,K.useRef)(d),z=K.default.useMemo(()=>({requestClose:g=>o(e,g),setDirty:g=>m(e,g),onCloseRequested:g=>(s(e,g),()=>I(e)),registerStateProvider:g=>(b(e,g),()=>T(e)),setTitle:g=>w(e,g),instanceId:e,containerType:R.current,onClose:g=>{let P=pt(e);return P.onClose.add(g),()=>P.onClose.delete(g)},onMinimize:g=>{let P=pt(e);return P.onMinimize.add(g),()=>P.onMinimize.delete(g)},onRestore:g=>{let P=pt(e);return P.onRestore.add(g),()=>P.onRestore.delete(g)},onResize:g=>{let P=pt(e);return P.onResize.add(g),()=>P.onResize.delete(g)},requestMinimize:()=>x(e),getDimensions:()=>wn.get(e)??null,onActivate:g=>{let P=pt(e);return P.onActivate.add(g),()=>P.onActivate.delete(g)},onDeactivate:g=>{let P=pt(e);return P.onDeactivate.add(g),()=>P.onDeactivate.delete(g)},onContainerTypeChange:g=>{let P=pt(e);return P.onContainerTypeChange.add(g),()=>P.onContainerTypeChange.delete(g)}}),[e,o,m,s,I,b,T,w,x]);return(0,f.jsx)(qe,{value:z,children:t})},Un=({node:e,path:t,onTabRightClick:n,activeDropZone:o,onHoverDropZone:m,onTabDragStart:s,hoveredTab:I,onTabHover:b,defaultPanelIcon:T,onRequestClosePanel:w})=>{let{updateSplitSizes:x}=wt();if(e.type==="leaf")return(0,f.jsx)(er,{leaf:e,onTabRightClick:n,activeDropZone:o,onHoverDropZone:m,onTabDragStart:s,hoveredTab:I,onTabHover:b,defaultPanelIcon:T,onRequestClosePanel:w});let v=e.orientation==="horizontal",S=(E,W)=>{W.preventDefault();let D=W.currentTarget,d=D.parentElement,L=d?v?d.clientWidth:d.clientHeight:v?1e3:800;Ge({element:D,pointerId:W.pointerId,startClientX:W.clientX,startClientY:W.clientY,captureStart:()=>[...e.sizes],activeClasses:[{el:D,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active",v?"rdd-resizing-col-active":"rdd-resizing-row-active"]}],onMove:(R,z,g)=>{let P=(v?R:z)/L,H=[...g];H[E]+=P,H[E+1]-=P,H[E]>.1&&H[E+1]>.1&&x(t,H)}})};return(0,f.jsx)("div",{style:{display:"flex",flexDirection:v?"row":"column",width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:e.children.map((E,W)=>{let D=e.sizes[W]*100;return(0,f.jsxs)(K.default.Fragment,{children:[(0,f.jsx)("div",{style:{flexGrow:e.sizes[W],flexBasis:`${D}%`,overflow:"hidden",position:"relative",minWidth:0,minHeight:0},children:(0,f.jsx)(Un,{node:E,path:[...t,W],onTabRightClick:n,activeDropZone:o,onHoverDropZone:m,onTabDragStart:s,hoveredTab:I,onTabHover:b,defaultPanelIcon:T,onRequestClosePanel:w})}),W<e.children.length-1&&(0,f.jsx)("div",{onPointerDown:d=>S(W,d),style:{cursor:v?"col-resize":"row-resize",width:v?"1px":"100%",height:v?"100%":"1px",zIndex:20},className:"rdd-resizer-bar"})]},W)})})},er=({leaf:e,onTabRightClick:t,activeDropZone:n,onHoverDropZone:o,onTabDragStart:m,hoveredTab:s,onTabHover:I,defaultPanelIcon:b,onRequestClosePanel:T})=>{let w=ze(),x=Ct(),{openPanel:v,closeLeafGroup:S,setActivePanel:E}=hn(),W=We(),D=Fe(),{windowClass:d,windowBodyClass:L}=Be(),R=(0,K.useRef)(null),[z,g]=(0,K.useState)({left:!1,right:!1}),P=(0,K.useCallback)(()=>{let l=R.current;l&&g({left:l.scrollLeft>0,right:l.scrollLeft<l.scrollWidth-l.clientWidth-1})},[]);(0,K.useEffect)(()=>{let l=R.current;if(!l)return;l.addEventListener("scroll",P,{passive:!0});let N=new ResizeObserver(P);return N.observe(l),P(),()=>{l.removeEventListener("scroll",P),N.disconnect()}},[P]);let H=l=>{R.current?.scrollBy({left:l==="left"?-120:120,behavior:"smooth"})},$=l=>{v(l,w.panels[l].component),E(l)};return(0,f.jsxs)("div",{"data-active-panel-id":e.activePanelId||"",className:`rdd-workspace-panel ${d??""}`,style:{overflow:"hidden",position:"relative"},children:[(0,f.jsxs)("div",{className:"rdd-workspace-tab-bar",style:{minHeight:"38px"},children:[z.left&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-left",onPointerDown:l=>l.stopPropagation(),onClick:()=>H("left"),tabIndex:-1,"aria-label":"Scroll tabs left",children:"\u2039"}),(0,f.jsx)("div",{ref:R,className:"rdd-tab-headers-container",style:{scrollbarWidth:"none"},onPointerMove:l=>{w.draggedPanelId&&l.target===l.currentTarget&&I(e.id,"EMPTY",e.panels.length,"right")},onPointerLeave:l=>{w.draggedPanelId&&l.target===l.currentTarget&&I(e.id,"",-1,null)},children:e.panels.map((l,N)=>{let Y=w.panels[l];if(!Y)return null;let q=e.activePanelId===l,Z=w.activePanelId===l,ee=x.get(Y.component)?.defaultOptions,Pe=s&&s.leafId===e.id&&s.panelId===l,ne=N===e.panels.length-1,J=s&&s.leafId===e.id&&s.panelId==="EMPTY"&&ne,F=Pe?s.side==="left"?"rdd-drag-hover-left":"rdd-drag-hover-right":J?"rdd-drag-hover-right":"",k=q?Z?"rdd-active rdd-workspace-tab-active-focused":"rdd-active rdd-workspace-tab-active-unfocused":"rdd-workspace-tab-inactive";return(0,f.jsxs)("div",{"data-tab-id":l,"data-leaf-id":e.id,"data-tab-index":String(N),onClick:()=>$(l),onPointerDown:V=>{ee?.canDrag!==!1&&m(l,V)},onContextMenu:V=>t(l,V),onPointerMove:V=>{if(w.draggedPanelId&&V.pointerType!=="touch"){let B=V.currentTarget.getBoundingClientRect(),fe=V.clientX-B.left<B.width/2?"left":"right";I(e.id,l,N,fe)}},onPointerLeave:()=>{w.draggedPanelId&&I(e.id,"",-1,null)},className:`rdd-workspace-tab ${k} ${F}`,style:{cursor:ee?.canDrag===!1?"default":"pointer"},children:[(0,f.jsxs)("span",{className:"rdd-text-truncate",style:{maxWidth:"120px",display:"flex",alignItems:"center"},children:[(0,f.jsx)("span",{className:"rdd-workspace-tab-icon",children:ee?.icon||b||Cn}),(0,f.jsxs)("span",{children:[ge(Y.title,W),Y.dirty?" *":""]})]}),ee?.renderHeaderActions&&(0,f.jsx)("span",{className:"rdd-tab-header-actions",onClick:V=>V.stopPropagation(),onPointerDown:V=>V.stopPropagation(),children:ee.renderHeaderActions(l)}),ee?.canClose!==!1&&(0,f.jsx)("span",{onClick:V=>{V.stopPropagation(),T(l)},title:ge(D.closeTab,W),className:"rdd-close-tab-x",style:{width:"18px",height:"18px",...ee?.renderHeaderActions?{}:{marginInlineStart:"auto"}},children:(0,f.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]},l)})}),z.right&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-right",onPointerDown:l=>l.stopPropagation(),onClick:()=>H("right"),tabIndex:-1,"aria-label":"Scroll tabs right",children:"\u203A"}),e.panels.length===0&&e.keepOnEmpty&&e.canClose!==!1&&(0,f.jsx)("span",{onClick:()=>S(e.id),className:"rdd-close-tab-x rdd-header-close-empty-group",style:{width:"18px",height:"18px",cursor:"pointer"},title:ge(D.closeEmptyGroup,W),children:(0,f.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,f.jsxs)("div",{className:`rdd-panel-body ${L??""}`,style:{position:"relative",overflow:"hidden"},children:[e.activePanelId&&w.panels[e.activePanelId]?(0,f.jsx)(Zn,{panelId:e.activePanelId},e.activePanelId):(0,f.jsx)("div",{className:"rdd-empty-leaf-placeholder",children:(0,f.jsx)("span",{children:"Empty Workspace Section"})}),w.draggedPanelId!==null&&(()=>{let l=N=>n?.leafId===e.id&&n.position===N;return(0,f.jsx)("div",{className:"rdd-dock-drop-zone-overlay",children:(0,f.jsxs)("div",{className:"rdd-dock-target-cross",children:[(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"top",onPointerEnter:()=>o(e.id,"top"),onPointerLeave:()=>o(e.id,null),className:`rdd-dock-target-box rdd-dock-target-top${l("top")?" rdd-dock-target-box--active":""}`,children:"\u25B2"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"bottom",onPointerEnter:()=>o(e.id,"bottom"),onPointerLeave:()=>o(e.id,null),className:`rdd-dock-target-box rdd-dock-target-bottom${l("bottom")?" rdd-dock-target-box--active":""}`,children:"\u25BC"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"left",onPointerEnter:()=>o(e.id,"left"),onPointerLeave:()=>o(e.id,null),className:`rdd-dock-target-box rdd-dock-target-left${l("left")?" rdd-dock-target-box--active":""}`,children:"\u25C0"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"right",onPointerEnter:()=>o(e.id,"right"),onPointerLeave:()=>o(e.id,null),className:`rdd-dock-target-box rdd-dock-target-right${l("right")?" rdd-dock-target-box--active":""}`,children:"\u25B6"}),(0,f.jsx)("div",{"data-leaf-id":e.id,"data-drop-zone":"center",onPointerEnter:()=>o(e.id,"center"),onPointerLeave:()=>o(e.id,null),className:`rdd-dock-target-box rdd-dock-target-center${l("center")?" rdd-dock-target-box--active":""}`,children:"\u25A3"})]})})})(),w.draggedPanelId!==null&&n!==null&&n.leafId===e.id&&(0,f.jsx)("div",{className:"rdd-dock-preview-highlight",style:(()=>{let l=n.position,N=`${w.splitRatio*100}%`,Y=`${(1-w.splitRatio)*100}%`;return{left:l==="right"?Y:"0",top:l==="bottom"?Y:"0",width:l==="left"||l==="right"?N:"100%",height:l==="top"||l==="bottom"?N:"100%"}})()})]})]})},tr=({skin:e="vscode",defaultPanelIcon:t,taskbarVisibility:n="always",contextMenuAdapter:o=ut,animations:m=!0})=>{let s=ze(),I=Ct(),{restorePanel:b,minimizePanel:T,requestClosePanel:w,maximizePanel:x,updateFloatingPosition:v,focusPanel:S,floatPanel:E,setDraggedPanelId:W,dockPanelToGroup:D,movePanelOrder:d,dockPanelToWorkspaceEdge:L,setActivePanel:R,getPanelContextMenuItems:z,showContextMenu:g,registerContextMenuFn:P}=hn(),{openModal:H}=Ze(),$=We(),l=Fe(),N=K.default.useCallback(r=>{let C=s.panels[r];w(r,{onConfirm:u=>new Promise(p=>{let h=u||C?.dirtyOptions,M=C?ge(C.title,$):"Panel";H(Ue,{title:h?.title||l.unsavedChangesTitle,message:h?.message||{id:l.unsavedChangesMessage.id,defaultMessage:l.unsavedChangesMessage.defaultMessage,values:{title:M}},alert:h?.alert,alertType:h?.alertType||"danger",useYesNoTitles:!0,onOK:()=>p(!0),onCancel:()=>p(!1)},{size:"small"})})})},[w,s.panels,$,H,l]),{windowClass:Y,windowBodyClass:q}=Be(),Z=(0,K.useContext)(Mt),pe=(0,K.useRef)(null);(0,K.useEffect)(()=>P(Z!==null?r=>Z.show(r):r=>pe.current?.show(r)),[Z,P]);let ee=(0,K.useRef)(null),[Pe,ne]=(0,K.useState)(!1),J=(0,K.useRef)(null),F=(0,K.useRef)(s.minimized.length),[k,V]=(0,K.useState)(null),B=(0,K.useRef)(null),le=(0,K.useRef)("mouse"),[fe,ve]=(0,K.useState)(!1),xe=Z!==null?Z.isOpen:fe;(0,K.useEffect)(()=>()=>{B.current&&clearTimeout(B.current)},[]),(0,K.useEffect)(()=>{k&&(s.minimized.some(C=>C.id===k.id)||V(null))},[s.minimized,k]),(0,K.useEffect)(()=>{if(!k?.fromTouch)return;let r=C=>{C.pointerType!=="touch"||document.querySelector(".rdd-taskbar-item-tooltip")?.contains(C.target)||V(null)};return document.addEventListener("pointerdown",r,{capture:!0}),()=>document.removeEventListener("pointerdown",r,{capture:!0})},[k?.fromTouch]);let[Le,De]=(0,K.useState)(null),Ae=(0,K.useRef)(null),[et,tt]=(0,K.useState)({x:0,y:0}),[nt,Ht]=(0,K.useState)(null),gt=(0,K.useRef)(null),Se=r=>{Ht(r),gt.current=r},[Bt,$t]=(0,K.useState)(null),mt=(0,K.useRef)(null),Xe=r=>{$t(r),mt.current=r},It=(0,K.useContext)(xt)?.isRtl??!1,[Gt,Ve]=(0,K.useState)(null),He=(0,K.useRef)(null),Yt=(r,C,u,p)=>{let h=p?{leafId:r,panelId:C,index:u,side:p}:null;Ve(h),He.current=h},Xt=(r,C)=>{let u=C?{leafId:r,position:C}:null;De(u),Ae.current=u,u&&(Se(null),Xe(null))},Et=(r,C)=>{let u=document.elementsFromPoint(r,C),p=!1,h=!1,M=!1;for(let A of u)if(A instanceof HTMLElement){if(!p&&A.dataset.dropZone){let _=A.dataset.leafId;if(_){let Q=A.dataset.dropZone;De({leafId:_,position:Q}),Ae.current={leafId:_,position:Q},p=!0}}if(!M&&A.dataset.tabId){let _=A.dataset.leafId,Q=parseInt(A.dataset.tabIndex||"0",10);if(_){let oe=A.getBoundingClientRect(),j=r-oe.left<oe.width/2?"left":"right";Ve({leafId:_,panelId:A.dataset.tabId,index:Q,side:j}),He.current={leafId:_,panelId:A.dataset.tabId,index:Q,side:j},M=!0}}if(!h&&A.dataset.edgeTrigger&&(Se(A.dataset.edgeTrigger),h=!0),p&&h&&M)break}p||(De(null),Ae.current=null),h||Se(null),M||(Ve(null),He.current=null)},ot=300,rt=8,_e=()=>{W(null),De(null),Ae.current=null,Ve(null),He.current=null,Se(null)},Ke=r=>s.isRtl?r==="left"?"right":r==="right"?"left":r:r,Lt=(r,C)=>{let u=Ae.current,p=He.current,h=gt.current,M=mt.current;if(h)L(r,Ke(h));else if(p){let A=p.index;p.side==="right"&&(A+=1);let _=qn(s.gridRoot,p.leafId);if(_){let Q=_.panels.indexOf(r);Q!==-1&&Q<A&&(A-=1)}d(r,p.leafId,A)}else u?D(r,u.leafId,Ke(u.position)):M?E(r,void 0,It?Ot(M):M):E(r,{x:C.clientX-150,y:C.clientY-15,width:450,height:350});Xe(null),_e()},Vt=(r,C)=>{if(C.pointerType==="mouse"&&C.button!==0)return;C.preventDefault();let u=C.currentTarget,p=C.clientX,h=C.clientY;if(C.pointerType==="touch"){let M=C.pointerId,A=!1,_=()=>{A=!0,clearTimeout(oe),u.removeEventListener("pointermove",Q),u.removeEventListener("pointerup",_),u.removeEventListener("pointercancel",_)},Q=j=>{Math.hypot(j.clientX-p,j.clientY-h)>rt&&_()},oe=setTimeout(()=>{if(A)return;u.removeEventListener("pointermove",Q),u.removeEventListener("pointerup",_),u.removeEventListener("pointercancel",_);try{u.setPointerCapture(M)}catch{return}u.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),navigator.vibrate&&navigator.vibrate(10);let j=!1,te=ae=>{j||(j=!0,W(r)),tt({x:ae.clientX,y:ae.clientY}),Et(ae.clientX,ae.clientY)},de=ae=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",te),u.removeEventListener("pointerup",de),u.removeEventListener("pointercancel",re),j?Lt(r,ae):zt(r,ae)},re=()=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",te),u.removeEventListener("pointerup",de),u.removeEventListener("pointercancel",re),j&&_e()};u.addEventListener("pointermove",te),u.addEventListener("pointerup",de),u.addEventListener("pointercancel",re)},ot);u.addEventListener("pointermove",Q),u.addEventListener("pointerup",_),u.addEventListener("pointercancel",_)}else{let M=!1,A=oe=>{let j=oe.clientX-p,te=oe.clientY-h;!M&&(Math.abs(j)>5||Math.abs(te)>5)&&(M=!0,W(r)),M&&tt({x:oe.clientX,y:oe.clientY})},_=oe=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",Q),M&&Lt(r,oe)},Q=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",Q),M&&_e()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",A),window.addEventListener("pointerup",_),window.addEventListener("pointercancel",Q)}},zt=(r,C)=>{C.preventDefault();let u=s.panels[r];if(!u)return;let h=I.get(u.component)?.defaultOptions,M=[];if(h?.canDrag!==!1&&M.push({label:ge(l.floatWindow,$),icon:St.float,action:()=>E(r)}),h?.canMinimize!==!1&&M.push({label:ge(l.minimizePanel,$),icon:St.minimize,action:()=>T(r)}),M.length>0&&h?.canClose!==!1&&M.push({separator:!0}),h?.canClose!==!1&&M.push({label:ge(l.closeTab,$),icon:St.close,action:()=>N(r)}),M.length===0)return;let A=z(r),_=A.length>0?[...M,{separator:!0},...A]:M;g({event:C,items:_})},it=(r,C)=>{C.preventDefault(),V(null),g({event:C,items:[{label:ge(l.restorePanel,$),icon:St.restore,action:()=>b(r)},{label:ge(l.maximizePanel,$),icon:St.maximize,action:()=>x(r)},{separator:!0},{label:ge(l.closePanel,$),icon:St.close,action:()=>N(r)}]})};(0,K.useEffect)(()=>{let r=Object.keys(s.panels);for(let C of Array.from(At.keys()))r.includes(C)||At.delete(C)},[s.panels]),(0,K.useEffect)(()=>{let r=()=>{s.draggedPanelId!==null&&(W(null),De(null),Ve(null))};return window.addEventListener("blur",r),()=>{window.removeEventListener("blur",r)}},[s.draggedPanelId]);let ft=(0,K.useRef)(null),[st,cn]=(0,K.useState)({width:1024,height:768});(0,K.useEffect)(()=>{let r=ft.current;if(!r)return;let C=!1,u=new ResizeObserver(p=>{if(!p||p.length===0)return;let h=p[0].contentRect;if(process.env.NODE_ENV==="development"&&h.height<10&&!C){C=!0;let M=r,A=r.parentElement;for(;A&&A!==document.documentElement&&A.getBoundingClientRect().height<10;){M=A;A=A.parentElement}let _=M.tagName.toLowerCase(),Q=M.id?` id="${M.id}"`:"",oe=M.className?` class="${M.className}"`:"",j=M===r?"the WindowManager container itself":`a wrapper element: <${_}${Q}${oe}>`;console.warn(`[react-dockable-desktop] Workspace height is 0px \u2014 the workspace will be invisible.
6
6
 
7
- Zero height found at: ${Z}
7
+ Zero height found at: ${j}
8
8
 
9
9
  Root cause: in CSS, "height: 100%" only works when the parent has an explicit height.
10
10
  If any ancestor has height: auto (the default for <div>), the chain breaks and
@@ -20,5 +20,5 @@ Fix options:
20
20
  .layout { display: flex; flex-direction: column; height: 100vh; }
21
21
  .workspace { flex: 1; min-height: 0; }
22
22
 
23
- 3. Verify styles.css is imported \u2014 it anchors html, body, #root to 100% height.`)}cn({width:Math.max(100,h.width),height:Math.max(100,h.height)})});return p.observe(r),()=>{p.disconnect()}},[]),(0,K.useEffect)(()=>{let r=st.width,C=st.height;s.floating.forEach(p=>{let u=typeof p.width=="string"?parseFloat(p.width):p.width,h=typeof p.height=="string"?parseFloat(p.height):p.height,M=typeof p.x=="string"?parseFloat(p.x):p.x,A=typeof p.y=="string"?parseFloat(p.y):p.y,_=u,Q=h,oe=M,Z=A,te=!1;if(_>r&&(_=Math.max(200,r-20),te=!0),Q>C&&(Q=Math.max(150,C-40),te=!0),!p.anchor){let de=r-100;oe>de&&(oe=Math.max(0,de),te=!0);let re=C-40;Z>re&&(Z=Math.max(0,re),te=!0)}te&&v(p.id,{x:oe,y:Z,width:_,height:Q})})},[st,s.floating,v]),(0,K.useEffect)(()=>{let r=C=>{if(C.button!==0)return;let p=C.target;if(!p||typeof p.closest!="function")return;let u=p.closest(".rdd-floating-window");if(u){let M=u.getAttribute("data-window-id");M&&(R(M),S(M));return}let h=p.closest(".rdd-workspace-panel");if(h){let M=h.getAttribute("data-active-panel-id");M&&R(M)}};return document.addEventListener("pointerdown",r),()=>{document.removeEventListener("pointerdown",r)}},[S,R]);let un=(r,C)=>{C.preventDefault();let p=s.floating.find(Z=>Z.id===r);if(!p||p.maximized)return;S(r);let u=C.currentTarget,h=u.closest(".rdd-floating-window"),M=C.clientX,A=C.clientY,_=h?h.offsetLeft:0,Q=h?h.offsetTop:0,oe=()=>{let Z=Ae.current,te=He.current,de=gt.current,re=mt.current;if(re)v(r,{anchor:It?Ot(re):re});else if(de)L(r,Ve(de));else if(te){let ae=te.index;te.side==="right"&&(ae+=1),d(r,te.leafId,ae)}else Z&&N(r,Z.leafId,Ve(Z.position));nt(null),_e()};if(C.pointerType==="touch"){let Z=C.pointerId,te=!1,de=()=>{te=!0,clearTimeout(ae),u.removeEventListener("pointermove",re),u.removeEventListener("pointerup",de),u.removeEventListener("pointercancel",de)},re=ce=>{Math.hypot(ce.clientX-M,ce.clientY-A)>rt&&de()},ae=setTimeout(()=>{if(te)return;u.removeEventListener("pointermove",re),u.removeEventListener("pointerup",de),u.removeEventListener("pointercancel",de);try{u.setPointerCapture(Z)}catch{return}u.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),D(r);let ce=ht=>{let bt=ht.clientX-M,vt=ht.clientY-A;v(r,{x:_+bt,y:Q+vt,anchor:null}),Et(ht.clientX,ht.clientY)},Ce=()=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",ce),u.removeEventListener("pointerup",Ce),u.removeEventListener("pointercancel",at),oe()},at=()=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",ce),u.removeEventListener("pointerup",Ce),u.removeEventListener("pointercancel",at),_e()};u.addEventListener("pointermove",ce),u.addEventListener("pointerup",Ce),u.addEventListener("pointercancel",at)},ot);u.addEventListener("pointermove",re),u.addEventListener("pointerup",de),u.addEventListener("pointercancel",de)}else{let Z=!1,te=ae=>{let ce=ae.clientX-M,Ce=ae.clientY-A;!Z&&(Math.abs(ce)>5||Math.abs(Ce)>5)&&(Z=!0,D(r)),Z&&v(r,{x:_+ce,y:Q+Ce,anchor:null})},de=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",de),window.removeEventListener("pointercancel",re),Z&&oe()},re=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",de),window.removeEventListener("pointercancel",re),Z&&_e()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",te),window.addEventListener("pointerup",de),window.addEventListener("pointercancel",re)}},i=(r,C,p)=>{p.preventDefault(),p.stopPropagation();let u=s.floating.find(ce=>ce.id===r);if(!u||u.maximized)return;S(r);let h=p.currentTarget,M=h.closest(".rdd-floating-window"),A={x:M?M.offsetLeft:0,y:M?M.offsetTop:0,w:M?M.offsetWidth:400,h:M?M.offsetHeight:300},_=st.width,Q=st.height,oe=typeof u.x=="string"?parseFloat(u.x):u.x,Z=typeof u.y=="string"?parseFloat(u.y):u.y,te=typeof u.width=="string"?parseFloat(u.width):u.width,de=typeof u.height=="string"?parseFloat(u.height):u.height,re=C==="se"&&Math.abs(oe+te-_)<4,ae=C==="se"&&Math.abs(Z+de-Q)<4;Ge({element:h,pointerId:p.pointerId,startClientX:p.clientX,startClientY:p.clientY,captureStart:()=>A,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(ce,Ce,at)=>{let ht=Tt(C,ce,Ce,at,{minW:200,minH:150}),{x:bt,y:vt,w:pn,h:gn}=ht;re&&(bt=_-pn,bt<0&&(bt=0,pn=_)),ae&&(vt=Q-gn,vt<0&&(vt=0,gn=Q)),v(r,{x:bt,y:vt,width:pn,height:gn})}})},y=r=>{if(ee.current){let C=r==="left"?-150:150;ee.current.scrollBy({left:C,behavior:"smooth"})}},c=(0,K.useCallback)(()=>{J.current&&clearTimeout(J.current),ne(!0)},[]),a=(0,K.useCallback)(()=>{J.current=setTimeout(()=>ne(!1),400)},[]);(0,K.useEffect)(()=>{n==="autohide"&&s.minimized.length>F.current&&(J.current&&clearTimeout(J.current),ne(!0),J.current=setTimeout(()=>ne(!1),2e3)),F.current=s.minimized.length},[s.minimized.length,n]);let G=on();return(0,K.useEffect)(()=>(e?document.documentElement.setAttribute("data-workspace-skin",e):document.documentElement.removeAttribute("data-workspace-skin"),()=>{document.documentElement.removeAttribute("data-workspace-skin")}),[e]),(0,K.useEffect)(()=>(G==="light"?document.documentElement.setAttribute("data-color-scheme","light"):document.documentElement.removeAttribute("data-color-scheme"),()=>{document.documentElement.removeAttribute("data-color-scheme")}),[G]),(0,K.useEffect)(()=>(m?document.documentElement.classList.remove("rdd-no-animations"):document.documentElement.classList.add("rdd-no-animations"),()=>{document.documentElement.classList.remove("rdd-no-animations")}),[m]),(0,f.jsxs)("div",{className:`rdd-workspace${m?"":" rdd-no-animations"}`,"data-workspace-skin":e,"data-color-scheme":G,style:{display:"flex",flexDirection:"column",position:"relative",width:"100%",height:"100%",overflow:"hidden",userSelect:"none"},dir:s.dir,children:[(0,f.jsxs)("div",{ref:ft,className:s.draggedPanelId?"rdd-dragging-active":void 0,style:{flexGrow:1,width:"100%",position:"relative",overflow:"hidden"},children:[s.draggedPanelId!==null&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{"data-edge-trigger":"left",className:"rdd-workspace-edge-trigger rdd-edge-trigger-left",onPointerEnter:()=>Se("left"),onPointerLeave:()=>Se(null)}),(0,f.jsx)("div",{"data-edge-trigger":"right",className:"rdd-workspace-edge-trigger rdd-edge-trigger-right",onPointerEnter:()=>Se("right"),onPointerLeave:()=>Se(null)}),(0,f.jsx)("div",{"data-edge-trigger":"top",className:"rdd-workspace-edge-trigger rdd-edge-trigger-top",onPointerEnter:()=>Se("top"),onPointerLeave:()=>Se(null)}),(0,f.jsx)("div",{"data-edge-trigger":"bottom",className:"rdd-workspace-edge-trigger rdd-edge-trigger-bottom",onPointerEnter:()=>Se("bottom"),onPointerLeave:()=>Se(null)})]}),s.draggedPanelId!==null&&["top-left","top-right","bottom-left","bottom-right"].map(r=>(0,f.jsx)("div",{className:`rdd-corner-zone rdd-corner-zone--${r}${Bt===r?" rdd-corner-zone--hovered":""}`,onPointerEnter:()=>{nt(r),Se(null)},onPointerLeave:()=>nt(null),"aria-hidden":"true"},r)),s.draggedPanelId!==null&&tt!==null&&(0,f.jsx)("div",{className:"rdd-workspace-edge-preview",style:(()=>{let r=`${s.edgeSplitRatio*100}%`;switch(tt){case"left":return{left:0,top:0,bottom:0,width:r};case"right":return{right:0,top:0,bottom:0,width:r};case"top":return{top:0,left:0,right:0,height:r};case"bottom":return{bottom:0,left:0,right:0,height:r}}})()}),(0,f.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:s.gridRoot?(0,f.jsx)(Un,{node:s.gridRoot,path:[],onTabRightClick:zt,activeDropZone:Le,onHoverDropZone:Xt,onTabDragStart:Vt,hoveredTab:Gt,onTabHover:Yt,defaultPanelIcon:t,onRequestClosePanel:W}):(0,f.jsx)("div",{className:"rdd-empty-workspace-grid",children:"Grid Empty"})}),s.floating.map(r=>{let C=s.panels[r.id];if(!C)return null;let p=r.maximized,u=s.draggedPanelId===r.id,h=s.activePanelId===r.id,A=I.get(C.component)?.defaultOptions;return(0,f.jsxs)("div",{"data-window-id":r.id,dir:s.dir,onPointerDownCapture:()=>{R(r.id),S(r.id)},className:`rdd-floating-window ${p?"rdd-maximized":""} ${h?"rdd-window-focused":""} ${Y??""}`,style:(()=>{let oe=typeof r.width=="number"?`${r.width}px`:r.width,Z=typeof r.height=="number"?`${r.height}px`:r.height;if(p)return{position:"absolute",left:0,top:0,width:"100%",height:"100%",zIndex:r.z,pointerEvents:u?"none":"auto"};if(r.anchor){let te=s.floating.filter(Ce=>Ce.anchor===r.anchor&&!Ce.maximized),de=te.findIndex(Ce=>Ce.id===r.id),re=8;for(let Ce=0;Ce<de;Ce++){let at=typeof te[Ce].height=="number"?te[Ce].height:parseFloat(te[Ce].height);re+=at+8}let ae=r.anchor.startsWith("top");return{position:"absolute",[r.anchor.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]:8,[ae?"top":"bottom"]:re,width:oe,height:Z,zIndex:r.z,transition:u?"none":"top 0.2s ease, bottom 0.2s ease",pointerEvents:u?"none":"auto"}}return{position:"absolute",left:typeof r.x=="number"?`${r.x}px`:r.x,top:typeof r.y=="number"?`${r.y}px`:r.y,width:oe,height:Z,zIndex:r.z,pointerEvents:u?"none":"auto"}})(),children:[(0,f.jsxs)("div",{onDoubleClick:()=>x(r.id),onPointerDown:_=>{A?.canDrag!==!1&&un(r.id,_)},className:"rdd-floating-window-titlebar rdd-cursor-move",style:{cursor:p||A?.canDrag===!1?"default":"move"},children:[(0,f.jsxs)("span",{className:"rdd-floating-window-title",children:[(0,f.jsx)("span",{className:"rdd-window-title-icon",children:A?.icon||t||Cn}),(0,f.jsxs)("span",{children:[ge(C.title,$),C.dirty?" *":""]})]}),(0,f.jsxs)("div",{className:"rdd-titlebar-actions",style:{gap:"var(--rdd-header-button-gap, 4px)"},onPointerDown:_=>_.stopPropagation(),children:[A?.renderHeaderActions&&(0,f.jsx)("div",{className:"rdd-window-header-actions",children:A.renderHeaderActions(r.id)}),z(r.id).length>0&&(0,f.jsx)("button",{type:"button",className:"rdd-custom-tab-btn rdd-btn-more-actions",title:"More actions",onClick:_=>{_.stopPropagation();let Q=z(r.id);Q.length!==0&&g({event:_,items:Q})},children:(0,f.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{display:"block"},children:[(0,f.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"2"}),(0,f.jsx)("circle",{cx:"12",cy:"19",r:"2"})]})}),(0,f.jsx)("button",{type:"button",title:p?ge(l.restoreSize,$):ge(l.maximize,$),onClick:()=>x(r.id),className:"rdd-custom-tab-btn rdd-btn-maximize-tab",children:(0,f.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"1.5"})})}),A?.canMinimize!==!1&&(0,f.jsx)("button",{type:"button",title:ge(l.minimize,$),onClick:()=>T(r.id),className:"rdd-custom-tab-btn rdd-btn-minimize-tab",children:(0,f.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,f.jsx)("path",{d:"M5 12h14"})})}),A?.canClose!==!1&&(0,f.jsx)("button",{type:"button",title:ge(l.close,$),onClick:()=>W(r.id),className:"rdd-custom-tab-btn rdd-btn-close-tab",children:(0,f.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]})]}),(0,f.jsx)("div",{className:q??void 0,style:{flexGrow:1,width:"100%",overflow:"hidden",position:"relative",isolation:"isolate"},children:(0,f.jsx)(jn,{panelId:r.id},r.id)}),!p&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"n",_),className:"rdd-resize-handle rdd-resize-n"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"ne",_),className:"rdd-resize-handle rdd-resize-ne"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"e",_),className:"rdd-resize-handle rdd-resize-e"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"se",_),className:"rdd-resize-handle rdd-resize-se"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"s",_),className:"rdd-resize-handle rdd-resize-s"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"sw",_),className:"rdd-resize-handle rdd-resize-sw"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"w",_),className:"rdd-resize-handle rdd-resize-w"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"nw",_),className:"rdd-resize-handle rdd-resize-nw"})]})]},r.id)})]}),(n==="always"||s.minimized.length>0)&&(0,f.jsxs)("div",{className:["rdd-taskbar-footer-container",`taskbar-mode-${n}`,n==="autohide"&&Pe?"rdd-taskbar-expanded":""].filter(Boolean).join(" "),style:{height:"48px",zIndex:100},onPointerEnter:n==="autohide"?c:void 0,onPointerLeave:n==="autohide"?a:void 0,children:[n==="autohide"&&(0,f.jsx)("div",{className:"rdd-taskbar-peek-handle"}),(0,f.jsx)("button",{type:"button",onClick:()=>y("left"),className:"rdd-taskbar-nav-btn",style:{display:s.minimized.length>4?"block":"none"},children:"\u25C0"}),(0,f.jsx)("div",{ref:ee,className:"rdd-taskbar-items-container",style:{scrollSnapType:"x mandatory"},children:s.minimized.map(r=>{let p=I.get(r.component)?.defaultOptions?.icon||t||Cn;return(0,f.jsx)("div",{onClick:()=>{le.current!=="touch"&&(V(null),b(r.id))},onContextMenu:u=>it(r.id,u),onPointerDown:u=>{if(le.current=u.pointerType,u.pointerType!=="touch")return;let h=u.currentTarget,M=u.clientX,A=u.clientY,_=u.pointerId,Q=!1,oe=()=>{Q=!0,clearTimeout(de),h.removeEventListener("pointermove",te),h.removeEventListener("pointerup",Z),h.removeEventListener("pointercancel",oe)},Z=()=>{oe();let re=h.getBoundingClientRect();k?.id===r.id?(b(r.id),V(null)):V({id:r.id,rect:re,title:r.title,component:r.component,fromTouch:!0})},te=re=>{Math.hypot(re.clientX-M,re.clientY-A)>rt&&oe()},de=setTimeout(()=>{if(Q)return;h.removeEventListener("pointermove",te),h.removeEventListener("pointerup",Z),h.removeEventListener("pointercancel",oe);try{h.setPointerCapture(_)}catch{return}navigator.vibrate&&navigator.vibrate(10);let re=ae=>{h.removeEventListener("pointerup",re),h.removeEventListener("pointercancel",re),it(r.id,ae)};h.addEventListener("pointerup",re),h.addEventListener("pointercancel",re)},ot);h.addEventListener("pointermove",te),h.addEventListener("pointerup",Z),h.addEventListener("pointercancel",oe)},onPointerEnter:u=>{if(u.pointerType==="touch"||xe)return;B.current&&clearTimeout(B.current);let h=u.currentTarget.getBoundingClientRect();u.clientX>=h.left&&u.clientX<=h.right&&u.clientY>=h.top&&u.clientY<=h.bottom&&V({id:r.id,rect:h,title:r.title,component:r.component})},onPointerLeave:u=>{u.pointerType!=="touch"&&(B.current=setTimeout(()=>{V(null)},150))},className:"rdd-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,f.jsx)("span",{className:"rdd-taskbar-item-icon",children:p})},r.id)})}),k&&(0,xn.createPortal)((0,f.jsxs)("div",{className:"rdd-taskbar-item-tooltip",dir:s.dir,style:{position:"fixed",left:`${k.rect.left+k.rect.width/2}px`,top:`${k.rect.top-8}px`,transform:"translateX(-50%) translateY(-100%)",opacity:1,pointerEvents:"auto",zIndex:999999},onPointerEnter:()=>{B.current&&clearTimeout(B.current)},onPointerLeave:r=>{r.pointerType!=="touch"&&V(null)},onClick:()=>{b(k.id),V(null)},onContextMenu:r=>it(k.id,r),onPointerDown:r=>{if(r.pointerType!=="touch")return;let C=k.id,p=r.currentTarget,u=r.clientX,h=r.clientY,M=r.pointerId,A=!1,_=()=>{A=!0,clearTimeout(oe),p.removeEventListener("pointermove",Q),p.removeEventListener("pointerup",_),p.removeEventListener("pointercancel",_)},Q=Z=>{Math.hypot(Z.clientX-u,Z.clientY-h)>rt&&_()},oe=setTimeout(()=>{if(A)return;p.removeEventListener("pointermove",Q),p.removeEventListener("pointerup",_),p.removeEventListener("pointercancel",_);try{p.setPointerCapture(M)}catch{return}navigator.vibrate&&navigator.vibrate(10);let Z=te=>{p.removeEventListener("pointerup",Z),p.removeEventListener("pointercancel",Z),it(C,te)};p.addEventListener("pointerup",Z),p.addEventListener("pointercancel",Z)},ot);p.addEventListener("pointermove",Q),p.addEventListener("pointerup",_),p.addEventListener("pointercancel",_)},children:[(0,f.jsxs)("div",{className:"rdd-tooltip-header-row",children:[(0,f.jsxs)("span",{className:"rdd-tooltip-title-text rdd-text-truncate",style:{maxWidth:"140px"},children:[ge(k.title,$),s.panels[k.id]?.dirty?" *":""]}),(0,f.jsx)("span",{onClick:r=>{r.stopPropagation(),W(k.id),V(null)},title:ge(l.closePanel,$),className:"rdd-tooltip-close-x",children:(0,f.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,f.jsx)(Jo,{panelId:k.id})]}),document.body),(0,f.jsx)("button",{type:"button",onClick:()=>y("right"),className:"rdd-taskbar-nav-btn",style:{display:s.minimized.length>4?"block":"none"},children:"\u25B6"})]}),Object.keys(s.panels).map(r=>{let C=s.panels[r];if(!C)return null;let p=Zn(r);return(0,xn.createPortal)((0,f.jsx)(Qo,{panelId:r,children:(0,f.jsx)("div",{style:{width:"100%",height:"100%"},dir:s.dir,children:Uo(r,C,I)})}),p,r)}),j===null&&(0,f.jsx)(o.Component,{ref:pe,theme:"dark",formatMessageProvider:$,onShow:()=>ve(!0),onHide:()=>ve(!1)}),s.draggedPanelId!==null&&!s.floating.some(r=>r.id===s.draggedPanelId)&&(0,f.jsxs)("div",{className:"rdd-drag-ghost-tab",style:{left:Qe.x+12,top:Qe.y+12,zIndex:1e5},children:["\u{1F4C4} ",ge(s.panels[s.draggedPanelId]?.title,$)||"Tab"]})]})},Jn=tr;var sn=class{registry;initialState;config;_actions=null;_initialized=!1;_pendingCalls=[];_pendingOpenPanelIds=new Set;_pendingSubscriptions=[];_disconnectedWarnTimer=null;constructor(t={}){if(this.registry=new dt,this.initialState=t.initialState??null,this.config={formatMessage:t.formatMessage,predefinedMessages:t.predefinedMessages,dir:t.dir,defaultSplitRatio:t.defaultSplitRatio,defaultEdgeSplitRatio:t.defaultEdgeSplitRatio,zIndexBase:t.zIndexBase},t.panels)for(let[n,o]of Object.entries(t.panels))this.registry.register(n,o.component,o.defaultOptions)}_connect(t){this._actions=t,this._disconnectedWarnTimer!==null&&(clearTimeout(this._disconnectedWarnTimer),this._disconnectedWarnTimer=null),this._initialized||(this._initialized=!0);for(let o of this._pendingSubscriptions)o.unsub=t.subscribe(o.event,o.callback);let n=this._pendingCalls.splice(0);for(let o of n)o(t)}_disconnect(){this._actions=null;for(let t of this._pendingSubscriptions)t.unsub?.(),t.unsub=null}get isConnected(){return this._actions!==null}_startWarnTimer(){this._disconnectedWarnTimer===null&&(this._disconnectedWarnTimer=setTimeout(()=>{!this.isConnected&&this._pendingCalls.length>0&&console.error("[react-dockable-desktop] WorkspaceClient has "+this._pendingCalls.length+" queued call(s) but was never connected to a WindowManagerProvider. Did you forget client={workspace} on <WindowManagerProvider>?")},process.env.NODE_ENV==="production"?5e3:1e3))}_dispatch(t){this._actions?t(this._actions):(this._pendingCalls.push(t),this._startWarnTimer())}_subscribeRaw(t,n){if(this._actions)return this._actions.subscribe(t,n);let o={event:t,callback:n,unsub:null};return this._pendingSubscriptions.push(o),()=>{o.unsub?.(),o.unsub=null;let m=this._pendingSubscriptions.indexOf(o);m!==-1&&this._pendingSubscriptions.splice(m,1)}}openPanel(...t){if(this._actions){this._actions.openPanel(...t);return}let n=t[0];this._pendingOpenPanelIds.has(n)||(this._pendingOpenPanelIds.add(n),this._pendingCalls.push(o=>{this._pendingOpenPanelIds.delete(n),o.openPanel(...t)}),this._startWarnTimer())}closePanel(t){this._dispatch(n=>n.closePanel(t))}minimizePanel(t){this._dispatch(n=>n.minimizePanel(t))}restorePanel(t){this._dispatch(n=>n.restorePanel(t))}floatPanel(...t){this._dispatch(n=>n.floatPanel(...t))}dockPanel(...t){this._dispatch(n=>n.dockPanel(...t))}maximizePanel(t){this._dispatch(n=>n.maximizePanel(t))}focusPanel(t){this._dispatch(n=>n.focusPanel(t))}isOpen(t){return this._actions?.isOpen(t)??!1}getOpenPanelIds(){return this._actions?.getOpenPanelIds()??[]}findPanelId(t,n){return this._actions?.findPanelId(t,n)??null}saveLayout(){return this._actions?.saveLayout()??""}loadLayout(t){return this._actions?this._actions.loadLayout(t):(this._pendingCalls.push(n=>{n.loadLayout(t)}),!1)}setDirection(t){this._dispatch(n=>n.setDirection(t))}updateSplitSizes(t,n){this._dispatch(o=>o.updateSplitSizes(t,n))}updateFloatingPosition(t,n){this._dispatch(o=>o.updateFloatingPosition(t,n))}setDraggedPanelId(t){this._dispatch(n=>n.setDraggedPanelId(t))}dockPanelToGroup(t,n,o){this._dispatch(m=>m.dockPanelToGroup(t,n,o))}movePanelOrder(t,n,o){this._dispatch(m=>m.movePanelOrder(t,n,o))}closeLeafGroup(t){this._dispatch(n=>n.closeLeafGroup(t))}registerCloseGuard(t,n){this._dispatch(o=>o.registerCloseGuard(t,n))}unregisterCloseGuard(t){this._dispatch(n=>n.unregisterCloseGuard(t))}registerStateProvider(t,n){this._dispatch(o=>o.registerStateProvider(t,n))}unregisterStateProvider(t){this._dispatch(n=>n.unregisterStateProvider(t))}setPanelDirty(t,n,o){this._dispatch(m=>m.setPanelDirty(t,n,o))}updatePanelTitle(t,n){this._dispatch(o=>o.updatePanelTitle(t,n))}requestClosePanel(t,n){return this._actions?this._actions.requestClosePanel(t,n):(this._pendingCalls.push(o=>{o.requestClosePanel(t,n)}),Promise.resolve())}dockPanelToWorkspaceEdge(t,n){this._dispatch(o=>o.dockPanelToWorkspaceEdge(t,n))}showContextMenu(t){this._dispatch(n=>n.showContextMenu(t))}publish(t,n){this._dispatch(o=>o.publish(t,n))}subscribe(t,n){return this._subscribeRaw(t,n)}onPanelOpen(t){return this._subscribeRaw("panel:opened",n=>{let o=n;t(o.id,o.component)})}onPanelClose(t){return this._subscribeRaw("panel:closed",n=>{t(n.id)})}onPanelMinimize(t){return this._subscribeRaw("panel:minimized",n=>{t(n.id)})}onPanelRestore(t){return this._subscribeRaw("panel:restored",n=>{t(n.id)})}onLayoutChanged(t){return this._subscribeRaw("layout:changed",()=>t())}onPanelsExcluded(t){return this._subscribeRaw("layout:panels-excluded",n=>{t(n.panels)})}};var io=require("react");var Ye=require("react"),eo=require("react/jsx-runtime"),Qn=(0,Ye.createContext)(null),Ft=({children:e})=>{let[t,n]=(0,Ye.useState)({}),[o,m]=(0,Ye.useState)({}),s=(0,Ye.useMemo)(()=>({getActiveInGroup:I=>t[I]??null,setActiveInGroup:(I,b)=>n(T=>({...T,[I]:b})),isModifierActive:I=>o[I]??!1,setModifierActive:(I,b)=>m(T=>({...T,[I]:b})),toggleModifier:I=>m(b=>({...b,[I]:!b[I]}))}),[t,o]);return(0,eo.jsx)(Qn.Provider,{value:s,children:e})};function _t(){let e=(0,Ye.useContext)(Qn);if(!e)throw new Error("useToolbar must be used within DockableDesktopProvider");return e}var ke=require("react");var ro=require("react/jsx-runtime");function nr(){let e=new Map,t=new Set,n=()=>t.forEach(o=>o());return{publish(o,m){return e.set(o,m),n(),()=>{e.get(o)===m&&(e.delete(o),n())}},get(o){return e.get(o)??null},subscribe(o){return t.add(o),()=>t.delete(o)}}}var Rn=(0,ke.createContext)(null),an=({children:e})=>{let t=(0,ke.useMemo)(()=>nr(),[]);return(0,ro.jsx)(Rn.Provider,{value:t,children:e})};function to(e){let t=Dt(),n=(0,ke.useContext)(Rn),o=(0,ke.useRef)(null);if(!n)throw new Error("usePanelContribution must be used within PanelContributionProvider");(0,ke.useLayoutEffect)(()=>{if(n)return o.current?.(),o.current=n.publish(t,e),()=>{o.current?.(),o.current=null}},[n,t,e])}function ln(){let e=ze(m=>m.activePanelId),t=(0,ke.useContext)(Rn);if(!t)throw new Error("useActivePanelContribution must be used within PanelContributionProvider");let n=(0,ke.useCallback)(m=>t?t.subscribe(m):()=>{},[t]),o=()=>t&&e?t.get(e):null;return(0,ke.useSyncExternalStore)(n,o,o)}function Mn(e,t=null){return{id:e.id,label:e.label,icon:e.icon??t,renderContent:()=>e.content}}function no(e){let t=ln();return t?.toolbarItems?.length?[...e,{type:"separator"},...t.toolbarItems]:e}function oo(e,t=null){let n=ln();return n?.sidebarSections?.length?[...e,...n.sidebarSections.map(o=>Mn(o,t))]:e}var kt=require("react/jsx-runtime"),so=({contextMenuAdapter:e=ut,...t})=>{let n=(0,io.useContext)(Mt),o=(0,kt.jsx)(Ft,{children:(0,kt.jsx)(jt,{...t,children:(0,kt.jsx)(an,{children:(0,kt.jsx)(tn,{children:t.children})})})});return n!==null?o:(0,kt.jsx)(Qt,{adapter:e,formatMessageProvider:t.formatMessage,children:o})};var Ie=require("react");var Re=require("react/jsx-runtime"),or=({modal:e,index:t,isTopmost:n})=>{let{close:o,openModal:m,updateInstance:s,setDirty:I}=Ze(),b=We(),T=Fe(),{dir:w}=ze(),{modalClass:x,modalBodyClass:v}=Be(),S=(0,Ie.useRef)(null),{id:E,Component:D,props:N,options:d,dirty:L,dirtyOptions:R}=e,z=d,[g,P]=(0,Ie.useState)(z.icon||null),H=(0,Ie.useRef)(z);H.current=z;let $=ge(z.title,b),l=(0,Ie.useCallback)(async F=>{if(F?.force){o(E);return}if(S.current){if(!await S.current())return;o(E);return}if(L){m(je,{title:R?.title||T.unsavedChangesTitle,message:R?.message||{id:T.unsavedChangesMessage.id,defaultMessage:T.unsavedChangesMessage.defaultMessage,values:{title:$}},alert:R?.alert,alertType:R?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(E)},{size:"small"});return}o(E)},[o,m,E,L,R,$,T]),W=(0,Ie.useCallback)((F,k)=>I(E,F,k),[I,E]),Y=(0,Ie.useCallback)(F=>s(E,{options:{...H.current,title:F}}),[s,E]),q=(0,Ie.useCallback)(F=>P(F),[]),j=(0,Ie.useCallback)(F=>(S.current=F,()=>{S.current=null}),[]),pe=(0,Ie.useMemo)(()=>({requestClose:l,setDirty:W,setTitle:Y,setIcon:q,onCloseRequested:j,containerType:"modal",instanceId:E}),[l,W,Y,q,j,E]),ee=L?`${$} *`:$,Pe=z.size?`rdd-modal-size-${z.size}`:"rdd-modal-size-auto",ne=z.closable!==!1;(0,Ie.useEffect)(()=>{if(!n||!ne)return;let F=k=>{k.key==="Escape"&&(k.stopPropagation(),l())};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[l,ne,n]);let J=`calc(var(--rdd-z-base, 1000) + 9000 + ${t*10})`;return(0,Re.jsxs)("div",{className:"rdd-modal-overlay",style:{zIndex:J},dir:w,children:[(0,Re.jsx)("div",{className:"rdd-modal-curtain",onClick:ne?()=>l():void 0}),(0,Re.jsxs)("div",{className:`rdd-modal-window ${Pe} ${x??""}`,children:[(0,Re.jsxs)("div",{className:"rdd-modal-header",children:[g&&(0,Re.jsx)("div",{className:"rdd-modal-icon",children:g}),(0,Re.jsx)("h4",{className:"rdd-modal-title",children:ee}),ne&&(0,Re.jsx)("button",{className:"rdd-modal-close-button",onClick:()=>l(),title:b(T.closeTooltip),type:"button",children:(0,Re.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,Re.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,Re.jsx)("div",{className:`rdd-modal-body ${v??""}`,children:(0,Re.jsx)(Ke,{value:pe,children:(0,Re.jsx)(D,{...N,panelId:E})})})]})]})},rr=()=>{let{modals:e}=$e();return e.length===0?null:(0,Re.jsx)(Re.Fragment,{children:e.map((t,n)=>(0,Re.jsx)(or,{modal:t,index:n,isTopmost:n===e.length-1},t.id))})},ao=rr;var Te=require("react");var ye=require("react/jsx-runtime"),dn=({panel:e,position:t,defaultWidth:n})=>{let{close:o,openModal:m,updateInstance:s,setDirty:I,registerCloseHandler:b,unregisterCloseHandler:T}=Ze(),{modals:w}=$e(),x=We(),v=Fe(),{dir:S}=ze(),{sidePanelClass:E,sidePanelBodyClass:D}=Be(),N=(0,Te.useRef)(null),{id:d,Component:L,props:R,options:z,dirty:g,dirtyOptions:P}=e,H=z,[$,l]=(0,Te.useState)(H.icon||null),W=(0,Te.useRef)(H);W.current=H;let Y=ge(H.title,x),q=(0,Te.useCallback)(async B=>{if(B?.force){o(d);return}if(N.current){if(!await N.current())return;o(d);return}if(g){m(je,{title:P?.title||v.unsavedChangesTitle,message:P?.message||{id:v.unsavedChangesMessage.id,defaultMessage:v.unsavedChangesMessage.defaultMessage,values:{title:Y}},alert:P?.alert,alertType:P?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(d)},{size:"small"});return}o(d)},[o,m,d,g,P,Y,v]),j=(0,Te.useCallback)(async()=>N.current?await N.current():!g,[g]);(0,Te.useEffect)(()=>(b(d,j),()=>T(d)),[d,j,b,T]);let pe=(0,Te.useCallback)((B,le)=>I(d,B,le),[I,d]),ee=(0,Te.useCallback)(B=>s(d,{options:{...W.current,title:B}}),[s,d]),Pe=(0,Te.useCallback)(B=>l(B),[]),ne=(0,Te.useCallback)(B=>(N.current=B,()=>{N.current=null}),[]),J=(0,Te.useMemo)(()=>({requestClose:q,setDirty:pe,setTitle:ee,setIcon:Pe,onCloseRequested:ne,containerType:t==="left"?"left-panel":"right-panel",instanceId:d}),[q,pe,ee,Pe,ne,t,d]),F=g?`${Y} *`:Y;(0,Te.useEffect)(()=>{let B=le=>{le.key==="Escape"&&w.length===0&&q()};return document.addEventListener("keydown",B),()=>document.removeEventListener("keydown",B)},[q,w.length]);let k=H.width||n||400,V=typeof k=="number"?`${k}px`:k;return(0,ye.jsx)("div",{className:`rdd-side-panel rdd-side-panel-${t} rdd-side-panel-visible ${E??""}`,style:{width:V},dir:S,children:(0,ye.jsxs)("div",{className:"rdd-side-panel-window",children:[(0,ye.jsxs)("div",{className:"rdd-side-panel-header",children:[$&&(0,ye.jsx)("div",{className:"rdd-side-panel-icon",children:$}),(0,ye.jsx)("h4",{className:"rdd-side-panel-title",children:F}),(0,ye.jsx)("button",{className:"rdd-side-panel-close-button",onClick:()=>q(),title:x(v.closeTooltip),type:"button",children:(0,ye.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,ye.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,ye.jsx)("div",{className:`rdd-side-panel-body ${D??""}`,children:(0,ye.jsx)(Ke,{value:J,children:(0,ye.jsx)(L,{...R,panelId:d})})})]})})},ir=({defaultWidth:e})=>{let{leftPanel:t,rightPanel:n}=$e();return(0,ye.jsxs)(ye.Fragment,{children:[t&&(0,ye.jsx)(dn,{panel:t,position:"left",defaultWidth:e},t.id),n&&(0,ye.jsx)(dn,{panel:n,position:"right",defaultWidth:e},n.id)]})},lo=({defaultWidth:e})=>{let{leftPanel:t}=$e();return t?(0,ye.jsx)(dn,{panel:t,position:"left",defaultWidth:e},t.id):null},co=({defaultWidth:e})=>{let{rightPanel:t}=$e();return t?(0,ye.jsx)(dn,{panel:t,position:"right",defaultWidth:e},t.id):null},uo=ir;var se=require("react");var we=require("react/jsx-runtime"),go=(0,se.createContext)(null),mo=(0,se.createContext)(null);function sr({tabId:e,onClose:t,onOpen:n,setActiveTabId:o,children:m}){let s=(0,se.useMemo)(()=>({tabId:e,onClose:t,onOpen:n,openTab:I=>o(I)}),[e,t,n,o]);return(0,we.jsx)(mo.Provider,{value:s,children:m})}var po=(0,se.memo)(function({tabs:t,activeTabId:n,isVisible:o,position:m,onTabClick:s}){return(0,we.jsx)("div",{style:{width:o?"56px":"0px",height:"100%",overflow:"hidden",transition:"width 0.25s cubic-bezier(0.4, 0, 0.2, 1)",flexShrink:0},children:(0,we.jsx)("div",{className:`rdd-sidebar-tabs-strip rdd-${m}`,style:{width:"56px",height:"100%"},children:t.map(I=>{let b=n===I.id;return(0,we.jsx)("button",{type:"button",onClick:()=>s(I.id),className:`rdd-sidebar-tab-btn${b?" rdd-active":""}`,title:I.label,"aria-pressed":b,children:I.icon},I.id)})})})});function ar({position:e,currentWidth:t,minWidth:n,maxWidth:o,onWidthChange:m,rootRef:s}){return(0,we.jsx)("div",{className:"rdd-resizer-bar",style:{cursor:"col-resize",width:"1px",height:"100%",flexShrink:0,zIndex:20},onPointerDown:b=>{b.preventDefault();let T=b.currentTarget,w=[{el:T,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active","rdd-resizing-col-active"]}];s.current&&w.push({el:s.current,classes:["rdd-sidebar-resizing"]}),Ge({element:T,pointerId:b.pointerId,startClientX:b.clientX,startClientY:b.clientY,captureStart:()=>t,activeClasses:w,onMove:(x,v,S)=>{let E=e==="right"?S-x:S+x;m(Math.max(n,Math.min(o,E)))}})}})}var fo=(0,se.forwardRef)(function({position:t="right",tabs:n,defaultWidth:o,minWidth:m=150,maxWidth:s=600,onWidthChange:I,activeTabId:b,onActiveTabChange:T,visible:w,onVisibilityChange:x,stripVisible:v,onStripVisibilityChange:S,children:E},D){let N=b!==void 0,[d,L]=(0,se.useState)(()=>o??280),R=(0,se.useCallback)(B=>{L(B),I?.(B)},[I]),[z,g]=(0,se.useState)(null),P=N?b:z,[H,$]=(0,se.useState)(()=>new Set),l=(0,se.useMemo)(()=>{let B=new Set(H);P&&B.add(P);for(let le of n)le.eagerMount&&B.add(le.id);return B},[H,P,n]),W=(0,se.useRef)(P??null);(0,se.useEffect)(()=>{W.current=P??null},[P]);let Y=(0,se.useRef)(d);(0,se.useEffect)(()=>{Y.current=d},[d]);let q=(0,se.useRef)(null),j=(0,se.useCallback)(B=>{$(B!==null?le=>{if(le.has(B))return le;let fe=new Set(le);return fe.add(B),fe}:le=>{let fe=!1,ve=new Set(le);for(let xe of le){let Le=n.find(De=>De.id===xe);Le&&!Le.eagerMount&&!Le.preserveState&&(ve.delete(xe),fe=!0)}return fe?ve:le}),N||g(B),T?.(B)},[N,T,n]);(0,se.useImperativeHandle)(D,()=>({openTab:B=>j(B),closeDrawer:()=>j(null),getActiveTab:()=>W.current,show:()=>x?.(!0),hide:()=>x?.(!1),toggle:()=>x?.(w===!1),showStrip:()=>S?.(!0),hideStrip:()=>S?.(!1),setWidth:B=>R(Math.max(m,Math.min(s,B))),getWidth:()=>Y.current}),[j,w,x,S,R,m,s]);let pe=(0,se.useCallback)(B=>{j(P===B?null:B)},[P,j]),ee=(0,se.useCallback)(()=>j(null),[j]),Pe=(0,se.useMemo)(()=>({openTab:B=>j(B),closeDrawer:()=>j(null),getActiveTab:()=>W.current}),[j]),ne=w!==!1,J=ne&&v!==!1,F=ne&&P!=null,k=(0,we.jsx)("div",{className:`rdd-sidebar-content-drawer rdd-${t}`,style:{flexBasis:F?`${d}px`:"0px",flexShrink:1,flexGrow:0,minWidth:F?`${m}px`:"0px",maxWidth:F?`${s}px`:"0px",overflow:"hidden",transition:"flex-basis 0.2s cubic-bezier(0.4, 0, 0.2, 1), min-width 0.2s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.2s cubic-bezier(0.4, 0, 0.2, 1)"},children:n.map(B=>{if(!l.has(B.id))return null;let fe=P===B.id,ve=()=>j(B.id);return(0,we.jsxs)("div",{style:{display:fe?"flex":"none",flexDirection:"column",height:"100%",width:"100%"},children:[(0,we.jsx)("div",{className:"rdd-sidebar-drawer-header",children:(0,we.jsx)("span",{className:"rdd-sidebar-header-title",children:B.label})}),(0,we.jsx)("div",{className:"rdd-sidebar-drawer-body",children:(0,we.jsx)(sr,{tabId:B.id,onClose:ee,onOpen:ve,setActiveTabId:j,children:B.renderContent(B.id,ee,ve)})})]},B.id)})}),V=F?(0,we.jsx)(ar,{position:t,currentWidth:d,minWidth:m,maxWidth:s,onWidthChange:R,rootRef:q}):null;return(0,we.jsx)(go.Provider,{value:Pe,children:(0,we.jsxs)("div",{ref:q,style:{display:"flex",flexDirection:"row",width:"100%",height:"100%",overflow:"hidden"},children:[t==="left"&&(0,we.jsx)(po,{tabs:n,activeTabId:P,isVisible:J,position:t,onTabClick:pe}),t==="left"&&k,t==="left"&&V,(0,we.jsx)("div",{style:{flex:"1 1 0%",minWidth:0,overflow:"hidden"},children:E}),t==="right"&&V,t==="right"&&k,t==="right"&&(0,we.jsx)(po,{tabs:n,activeTabId:P,isVisible:J,position:t,onTabClick:pe})]})})});function ho(){let e=(0,se.useContext)(go);if(!e)throw new Error("useSidebar must be used within Sidebar");return e}function bo(){let e=(0,se.useContext)(mo);if(!e)throw new Error("useSidebarTab must be used within a Sidebar tab renderContent tree");return e}var Ee=require("react"),vo=require("react-dom");var Me=require("react/jsx-runtime");function lr(e,t,n=!1,o=8){switch(t){case"left":return n?{right:window.innerWidth-e.left+o,top:e.top}:{left:e.right+o,top:e.top};case"right":return n?{left:e.right+o,top:e.top}:{right:window.innerWidth-e.left+o,top:e.top};case"top":return n?{top:e.bottom+o,right:window.innerWidth-e.right}:{top:e.bottom+o,left:e.left};case"bottom":return n?{bottom:window.innerHeight-e.top+o,right:window.innerWidth-e.right}:{bottom:window.innerHeight-e.top+o,left:e.left}}}function dr({item:e,position:t,toolbar:n}){let[o,m]=(0,Ee.useState)(!1),[s,I]=(0,Ee.useState)(null),b=(0,Ee.useRef)(null),T=(0,Ee.useRef)(null),w=e.activeItemId!==void 0,x=w?e.activeItemId:n.getActiveInGroup(e.id),v=e.items.find(d=>!("type"in d)&&d.id===x),S=x!==null,E=v?.icon??e.defaultIcon,D=v?.label??e.label,N=()=>{e.disabled||(!o&&b.current&&I(b.current.getBoundingClientRect()),m(d=>!d))};return(0,Ee.useLayoutEffect)(()=>{if(!o||!T.current)return;let d=T.current,L=d.getBoundingClientRect(),R=8;L.right>window.innerWidth-R&&(d.style.left=`${Math.max(R,window.innerWidth-L.width-R)}px`,d.style.right="auto"),L.left<R&&(d.style.left=`${R}px`,d.style.right="auto"),L.bottom>window.innerHeight-R&&(d.style.top=`${Math.max(R,window.innerHeight-L.height-R)}px`,d.style.bottom="auto"),L.top<R&&(d.style.top=`${R}px`,d.style.bottom="auto")},[o]),(0,Ee.useEffect)(()=>{if(!o)return;let d=L=>{let R=L.target;b.current?.contains(R)||T.current?.contains(R)||m(!1)};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[o]),(0,Ee.useEffect)(()=>{if(!o)return;let d=L=>{L.key==="Escape"&&m(!1)};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[o]),(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)("button",{ref:b,type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-group${S?" rdd-active":""}`,title:D,"aria-label":D,"aria-expanded":o,"aria-haspopup":"menu",disabled:e.disabled,onClick:N,children:E}),o&&s&&(0,vo.createPortal)((0,Me.jsx)("div",{ref:T,className:`rdd-toolbar-group-flyout rdd-${t}`,style:lr(s,t,document.documentElement.dir==="rtl"),role:"menu",children:e.items.map((d,L)=>{if("type"in d)return(0,Me.jsx)("div",{className:"rdd-toolbar-group-flyout-sep",role:"separator"},`sep-${L}`);let R=x===d.id;return(0,Me.jsxs)("button",{type:"button",className:`rdd-toolbar-group-flyout-item${R?" rdd-active":""}`,disabled:d.disabled,role:"menuitem","aria-pressed":R,onClick:()=>{w?e.onActiveItemChange?.(d.id):n.setActiveInGroup(e.id,d.id),d.onActivate?.(d.id),m(!1)},children:[(0,Me.jsx)("span",{className:"rdd-toolbar-group-flyout-icon",children:d.icon}),(0,Me.jsx)("span",{className:"rdd-toolbar-group-flyout-label",children:d.label}),d.shortcut&&(0,Me.jsx)("span",{className:"rdd-toolbar-group-flyout-shortcut",children:d.shortcut})]},d.id)})}),document.body)]})}function cr(e,t,n,o){switch(e.type){case"separator":return(0,Me.jsx)("div",{className:"rdd-toolbar-separator",role:"separator"},`sep-${t}`);case"action":return(0,Me.jsx)("button",{type:"button",className:"rdd-toolbar-btn rdd-toolbar-btn-action",title:e.label,"aria-label":e.label,disabled:e.disabled,onClick:e.onClick,children:e.icon},e.id);case"radio":{let m=n.getActiveInGroup(e.group)===e.id;return(0,Me.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-radio${m?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":m,disabled:e.disabled,onClick:()=>{n.setActiveInGroup(e.group,e.id),e.onActivate?.(e.id)},children:e.icon},e.id)}case"toggle":{let m=e.active!==void 0,s=m?e.active:n.isModifierActive(e.id);return(0,Me.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-toggle${s?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":s,disabled:e.disabled,onClick:()=>{m||n.toggleModifier(e.id),e.onToggle?.(!s)},children:e.icon},e.id)}case"group":return(0,Me.jsx)(dr,{item:e,position:o,toolbar:n},e.id)}}var yo=(0,Ee.forwardRef)(function({position:t="left",items:n,visible:o,onVisibilityChange:m,className:s,style:I},b){let T=_t(),w=t==="left"||t==="right";(0,Ee.useImperativeHandle)(b,()=>({show:()=>m?.(!0),hide:()=>m?.(!1),toggle:()=>m?.(o===!1)}),[o,m]);let x=o!==!1?{}:w?{width:"0px"}:{height:"0px"};return(0,Me.jsx)("div",{className:`rdd-toolbar-strip rdd-${t}${s?` ${s}`:""}`,role:"toolbar","aria-orientation":w?"vertical":"horizontal",style:{...x,...I},children:n.map((v,S)=>cr(v,S,T,t))})});var be=require("react"),Sn=require("react-dom"),ue=require("react/jsx-runtime"),kn=class{listeners=new Set;counter=0;subscribe(t){this.listeners.add(t)}unsubscribe(t){this.listeners.delete(t)}show(t,n={}){let o=n.id??`toast-${++this.counter}`;return this.emit({kind:"show",id:o,message:t,rawOpts:{...n,id:o}}),o}update(t,n,o){this.emit({kind:"update",id:t,message:n,patch:o})}dismiss(t){this.emit({kind:"dismiss",id:t})}emit(t){this.listeners.forEach(n=>n(t))}},Ne=new kn,Po=Object.assign((e,t)=>Ne.show(e,t),{info:(e,t)=>Ne.show(e,{...t,type:"info"}),success:(e,t)=>Ne.show(e,{...t,type:"success"}),warning:(e,t)=>Ne.show(e,{...t,type:"warning"}),error:(e,t)=>Ne.show(e,{...t,type:"error"}),dismiss:e=>Ne.dismiss(e),promise:(e,t,n)=>{let o=Ne.show(t.pending,{...n,type:"info",duration:0});return e.then(m=>{let s=typeof t.success=="function"?t.success(m):t.success;Ne.update(o,s,{type:"success",duration:n?.duration??5e3})},m=>{let s=typeof t.error=="function"?t.error(m):t.error;Ne.update(o,s,{type:"error",duration:n?.duration??5e3})}),e}}),ur=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ue.jsx)("path",{d:"M8 5v.01M8 7.5v3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),pr=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ue.jsx)("path",{d:"M5 8l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),gr=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("path",{d:"M8 2.5L14 13.5H2L8 2.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),(0,ue.jsx)("path",{d:"M8 7v2.5M8 11.5v.01",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),mr=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ue.jsx)("path",{d:"M5.5 5.5l5 5M10.5 5.5l-5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),fr=()=>(0,ue.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:(0,ue.jsx)("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),hr={info:(0,ue.jsx)(ur,{}),success:(0,ue.jsx)(pr,{}),warning:(0,ue.jsx)(gr,{}),error:(0,ue.jsx)(mr,{})};function br({id:e,message:t,options:n,exiting:o,isLeft:m,showProgress:s,pauseOnHover:I,animation:b,onDismiss:T,onExited:w}){let x=(0,be.useRef)(null),v=(0,be.useRef)(null),S=(0,be.useRef)(n.duration),E=(0,be.useRef)(0),[D,N]=(0,be.useState)(!1),d=b==="none"?"rdd-toast--visible":b==="fade"?"rdd-toast--fade-entering":m?"rdd-toast--entering-left":"rdd-toast--entering",[L,R]=(0,be.useState)(d);(0,be.useLayoutEffect)(()=>{x.current&&(x.current.style.maxHeight=`${x.current.offsetHeight}px`)},[]),(0,be.useEffect)(()=>{if(b==="none")return;let l=requestAnimationFrame(()=>R("rdd-toast--visible"));return()=>cancelAnimationFrame(l)},[]);let z=(0,be.useCallback)(l=>{l<=0||(E.current=Date.now(),v.current=setTimeout(()=>T(e),l))},[e,T]);(0,be.useEffect)(()=>(v.current&&clearTimeout(v.current),S.current=n.duration,z(n.duration),()=>{v.current&&clearTimeout(v.current)}),[n.duration,z]),(0,be.useEffect)(()=>{if(!o)return;let l=x.current;if(!l||b==="none"){w(e);return}let W=q=>{q.propertyName==="max-height"&&w(e)};l.addEventListener("transitionend",W);let Y=setTimeout(()=>w(e),520);return()=>{l.removeEventListener("transitionend",W),clearTimeout(Y)}},[o,e,w,b]);let g=()=>{!I||n.duration===0||(v.current&&(clearTimeout(v.current),v.current=null,S.current=Math.max(0,S.current-(Date.now()-E.current))),N(!0))},P=()=>{!I||n.duration===0||(N(!1),z(S.current))},H=["rdd-toast",n.type&&`rdd-toast--${n.type}`,L,o&&"rdd-toast--exiting",D&&"rdd-toast--paused"].filter(Boolean).join(" "),$=n.icon!==void 0?n.icon:n.type?hr[n.type]:null;return(0,ue.jsxs)("div",{ref:x,role:"status","aria-live":"polite",className:H,onMouseEnter:g,onMouseLeave:P,children:[$&&$,(0,ue.jsx)("div",{className:"rdd-toast__body",children:n.content!==void 0?n.content:t}),n.closable&&(0,ue.jsx)("button",{type:"button",className:"rdd-toast__close",onClick:()=>T(e),"aria-label":"Close notification",children:(0,ue.jsx)(fr,{})}),s&&n.duration>0&&(0,ue.jsx)("div",{className:"rdd-toast__progress",style:{animationDuration:`${n.duration}ms`}})]})}function Tn(e,t,n){return{id:e.id,type:e.type??"info",duration:e.duration??t,closable:e.closable??n,icon:e.icon,content:e.content,onClose:e.onClose}}function xo({position:e="top-right",maxVisible:t=3,defaultDuration:n=5e3,defaultClosable:o=!0,pauseOnHover:m=!0,animation:s="slide",newestOnTop:I=!1,progressBar:b=!1,width:T=320,adapter:w}){let[x,v]=(0,be.useState)([]),S=(0,be.useRef)([]),E=(0,be.useRef)(x);E.current=x;let D=(0,be.useCallback)(z=>{v(g=>g.map(P=>P.id===z?{...P,exiting:!0}:P)),E.current.find(g=>g.id===z)?.options.onClose?.()},[]),N=(0,be.useCallback)(z=>{let g=S.current.shift()??null;v(P=>{let H=P.filter(l=>l.id!==z);if(!g)return H;let $=Tn(g.rawOpts,n,o);return[...H,{id:g.id,message:g.message,options:$,exiting:!1}]})},[n,o]);if((0,be.useEffect)(()=>{if(w)return;let z=g=>{if(g.kind==="show"){let P=Tn(g.rawOpts,n,o),H={id:g.id,message:g.message,options:P,exiting:!1},$={id:g.id,message:g.message,rawOpts:g.rawOpts};v(l=>l.find(q=>q.id===g.id)?l.map(q=>q.id===g.id?{...q,message:g.message,options:P}:q):l.filter(q=>!q.exiting).length<t?[...l,H]:(S.current.some(q=>q.id===$.id)||S.current.push($),l))}else g.kind==="update"?(v(P=>P.map(H=>{if(H.id!==g.id)return H;let $={...H.options,...g.patch,id:H.id};return{...H,message:g.message,options:$}})),S.current=S.current.map(P=>P.id!==g.id?P:{...P,message:g.message,rawOpts:{...P.rawOpts,...g.patch}})):g.kind==="dismiss"&&(g.id===void 0?(v(P=>P.map(H=>({...H,exiting:!0}))),S.current=[]):E.current.some(H=>H.id===g.id)?D(g.id):S.current=S.current.filter(H=>H.id!==g.id))};return Ne.subscribe(z),()=>Ne.unsubscribe(z)},[w,t,n,o,D]),(0,be.useEffect)(()=>{if(!w)return;let z=g=>{if(g.kind==="show"){let P=Tn(g.rawOpts,n,o);w.show(g.id,g.message,P)}else g.kind==="update"?w.update(g.id,g.message,g.patch):g.kind==="dismiss"&&w.dismiss(g.id)};return Ne.subscribe(z),()=>Ne.unsubscribe(z)},[w,n,o]),w){if(!w.Container)return null;let z=w.Container;return(0,Sn.createPortal)((0,ue.jsx)(z,{position:e}),document.body)}let d=e.endsWith("left"),L="";I===!0&&(L="rdd-toast-container--newest-top"),I===!1&&(L="rdd-toast-container--newest-bottom");let R=["rdd-toast-container",`rdd-toast-container--${e}`,L].filter(Boolean).join(" ");return(0,Sn.createPortal)((0,ue.jsx)("div",{className:R,style:{width:T},"aria-label":"Notifications","aria-live":"polite",children:x.map(z=>(0,ue.jsx)(br,{id:z.id,message:z.message,options:z.options,exiting:z.exiting,isLeft:d,showProgress:b,pauseOnHover:m,animation:s,onDismiss:D,onExited:N},z.id))}),document.body)}var X=mn(require("react"),1),wo=require("react-dom");var U=require("react/jsx-runtime"),vr=["top-left","top-right","bottom-left","bottom-right"],Ro=(0,X.createContext)(null),Mo=(0,X.createContext)(null),To=(0,X.createContext)(null),Je=80;function yr(e,t,n){let o=e.getBoundingClientRect(),m=t-o.left,s=n-o.top;return m<Je&&s<Je?"top-left":m>o.width-Je&&s<Je?"top-right":m<Je&&s>o.height-Je?"bottom-left":m>o.width-Je&&s>o.height-Je?"bottom-right":null}function So({children:e,className:t,style:n}){let[o,m]=(0,X.useState)({}),[s,I]=(0,X.useState)({}),[b,T]=(0,X.useState)({"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]}),[w,x]=(0,X.useState)({}),[v,S]=(0,X.useState)(null),[E,D]=(0,X.useState)(null),[N,d]=(0,X.useState)(null),[L,R]=(0,X.useState)(()=>new Map),z=(0,X.useRef)(100),g=(0,X.useRef)(null),P=(0,X.useCallback)((J,F)=>(m(k=>({...k,[J]:F})),()=>m(k=>{let V={...k};return delete V[J],V})),[]),H=(0,X.useCallback)(J=>{z.current+=1;let F=z.current;I(k=>({...k,[J]:F})),d(J)},[]),$=(0,X.useCallback)((J,F)=>{T(k=>{let V={"top-left":k["top-left"].filter(B=>B!==J),"top-right":k["top-right"].filter(B=>B!==J),"bottom-left":k["bottom-left"].filter(B=>B!==J),"bottom-right":k["bottom-right"].filter(B=>B!==J)};return V[F]=[...V[F],J],V})},[]),l=(0,X.useCallback)(J=>{T(F=>({"top-left":F["top-left"].filter(k=>k!==J),"top-right":F["top-right"].filter(k=>k!==J),"bottom-left":F["bottom-left"].filter(k=>k!==J),"bottom-right":F["bottom-right"].filter(k=>k!==J)}))},[]),W=(0,X.useCallback)((J,F)=>{x(k=>k[J]===F?k:{...k,[J]:F})},[]),Y=(0,X.useCallback)((J,F)=>{R(k=>{let V=new Map(k);return V.set(J,F),V})},[]),q=(0,X.useCallback)(J=>{R(F=>{let k=new Map(F);return k.delete(J),k})},[]),j=(0,X.useCallback)(()=>{R(new Map)},[]),pe=(0,X.useMemo)(()=>Array.from(L.keys()),[L]),ee=(0,X.useMemo)(()=>({registerToolbar:P,insetTop:o.top??0,insetBottom:o.bottom??0}),[P,o]),Pe=(0,X.useMemo)(()=>({managedWindowIds:pe,openManaged:Y,closeManaged:q,closeAllManaged:j}),[pe,Y,q,j]),ne=(0,X.useMemo)(()=>({topId:N,zOrders:s,focusWindow:H,containerRef:g,stacks:b,dockedSizes:w,dockWindow:$,undockWindow:l,reportDockedSize:W,draggingId:v,setDraggingId:S,hoveredZone:E,setHoveredZone:D,insetTop:o.top??0,insetBottom:o.bottom??0}),[N,s,H,b,w,$,l,W,v,E,o]);return(0,U.jsx)(Ro.Provider,{value:ee,children:(0,U.jsx)(Mo.Provider,{value:Pe,children:(0,U.jsx)(To.Provider,{value:ne,children:(0,U.jsxs)("div",{ref:g,className:`rdd-panel-overlay-root${v!==null?" rdd-dragging-active":""}${t?" "+t:""}`,style:n,children:[e,v!==null&&(0,U.jsx)(Pr,{hoveredZone:E}),Array.from(L.entries()).map(([J,F])=>(0,U.jsx)(In,{id:J,title:F.title,icon:F.icon,open:!0,onClose:()=>q(J),defaultAnchor:F.anchor??"top-right",defaultWidth:F.width??320,defaultHeight:F.height??240,children:F.content},J))]})})})})}function Pr({hoveredZone:e}){return(0,U.jsx)(U.Fragment,{children:vr.map(t=>(0,U.jsx)("div",{className:`rdd-panel-float-dropzone rdd-panel-float-dropzone--${t}${e===t?" rdd-panel-float-dropzone--hovered":""}`,"aria-hidden":"true"},t))})}function ko({position:e,variant:t="transparent",buttonVariant:n="ghost",buttonSize:o,style:m,className:s,children:I}){let b=(0,X.useContext)(Ro),T=(0,X.useRef)(null),w=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>{let D=T.current;if(!D||!b)return;let N=e==="top"||e==="bottom"?D.offsetHeight:D.offsetWidth;return w.current?.(),w.current=b.registerToolbar(e,N),()=>{w.current?.(),w.current=null}},[e,b?.registerToolbar]);let x={position:"absolute",zIndex:5,pointerEvents:"none",boxSizing:"border-box"};e==="top"?(x.top=0,x.left=0,x.right=0):e==="bottom"?(x.bottom=0,x.left=0,x.right=0):e==="left"?(x.insetInlineStart=0,x.top=b?.insetTop??0,x.bottom=b?.insetBottom??0):(x.insetInlineEnd=0,x.top=b?.insetTop??0,x.bottom=b?.insetBottom??0);let S=e==="left"||e==="right"?{...(b?.insetTop??0)>0?{paddingTop:0}:{},...(b?.insetBottom??0)>0?{paddingBottom:0}:{}}:{},E=o!=null?{"--rdd-panel-toolbar-btn-size":`${o}px`}:{};return(0,U.jsx)("div",{ref:T,className:`rdd-panel-toolbar rdd-panel-toolbar--${e}${s?" "+s:""}`,"data-variant":t,"data-btn-variant":n,style:{...x,...S,...E,...m},children:I})}function Io({icon:e,onClick:t,disabled:n,title:o,variant:m}){return(0,U.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:t,disabled:n,title:o,"aria-label":o,...m?{"data-variant":m}:{},children:e})}function Eo({icon:e,active:t,onToggle:n,disabled:o,title:m,variant:s}){return(0,U.jsx)("button",{type:"button",className:`rdd-panel-toolbar-btn${t?" rdd-panel-toolbar-btn--active":""}`,onClick:n,disabled:o,title:m,"aria-label":m,"aria-pressed":t,...s?{"data-variant":s}:{},children:e})}function Lo(){return(0,U.jsx)("span",{className:"rdd-panel-toolbar__sep","aria-hidden":"true"})}function zo(){return(0,U.jsx)("span",{className:"rdd-panel-toolbar__spacer","aria-hidden":"true"})}function No({children:e}){return(0,U.jsx)("span",{className:"rdd-panel-toolbar__item",children:e})}function Do({children:e}){return(0,U.jsx)("div",{className:"rdd-panel-toolbar__center",children:e})}function Wo({placeholder:e="Search\u2026",onSearch:t,onSelect:n}){let[o,m]=(0,X.useState)(!1),[s,I]=(0,X.useState)(""),[b,T]=(0,X.useState)([]),[w,x]=(0,X.useState)(null),v=(0,X.useRef)(null),S=(0,X.useRef)(null),E=(0,X.useRef)(null),D=(0,X.useRef)(null),N=()=>{m(!0),setTimeout(()=>S.current?.focus(),0)},d=()=>{m(!1),I(""),T([]),x(null),E.current?.abort(),D.current&&clearTimeout(D.current)},L=$=>{let l=$.target.value;if(I(l),E.current?.abort(),D.current&&clearTimeout(D.current),!l.trim()){T([]),x(null);return}D.current=setTimeout(async()=>{let W=new AbortController;E.current=W;try{let Y=await t(l,W.signal);if(!W.signal.aborted){T(Y);let q=v.current;if(q&&Y.length>0){let j=q.getBoundingClientRect(),pe=Math.max(j.width,240),ee=j.left;ee+pe>window.innerWidth-8&&(ee=window.innerWidth-pe-8),x({top:j.bottom+4,left:ee,width:pe})}else x(null)}}catch{}},300)},R=$=>{n($),d()},z=$=>{v.current?.contains($.relatedTarget)||d()},g=$=>{$.key==="Escape"&&d()},P=(0,X.useMemo)(()=>{let $={};for(let l of b){let W=l.group??"";$[W]||($[W]=[]),$[W].push(l)}return $},[b]),H=(0,U.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,U.jsx)("circle",{cx:"6.5",cy:"6.5",r:"4.5"}),(0,U.jsx)("line",{x1:"10",y1:"10",x2:"14",y2:"14"})]});return o?(0,U.jsxs)("div",{ref:v,className:"rdd-panel-toolbar-search rdd-panel-toolbar-search--open",onBlur:z,children:[(0,U.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:d,"aria-label":"Close search",title:"Close search",children:H}),(0,U.jsx)("input",{ref:S,className:"rdd-panel-toolbar-search__input",type:"text",value:s,onChange:L,onKeyDown:g,placeholder:e,autoComplete:"off"}),w&&b.length>0&&(0,wo.createPortal)((0,U.jsx)("div",{className:"rdd-panel-toolbar-search__dropdown",style:{position:"fixed",top:w.top,left:w.left,width:w.width,zIndex:9502},onMouseDown:$=>$.preventDefault(),children:Object.entries(P).map(([$,l])=>(0,U.jsxs)(X.default.Fragment,{children:[$&&(0,U.jsx)("div",{className:"rdd-panel-toolbar-search__group",children:$}),l.map(W=>(0,U.jsxs)("button",{type:"button",className:"rdd-panel-toolbar-search__item",onClick:()=>R(W),children:[W.icon&&(0,U.jsx)("span",{className:"rdd-panel-toolbar-search__item-icon",children:W.icon}),(0,U.jsx)("span",{className:"rdd-panel-toolbar-search__item-label",children:W.label}),W.description&&(0,U.jsx)("span",{className:"rdd-panel-toolbar-search__item-desc",children:W.description})]},W.id))]},$||"__default__"))}),document.body)]}):(0,U.jsx)("div",{ref:v,className:"rdd-panel-toolbar-search",children:(0,U.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:N,title:"Search","aria-label":"Search",children:H})})}function In(e){let t=(0,X.useContext)(To);return e.open?(0,U.jsx)(Rr,{ctx:t,...e},e.id):null}var xr=120,Cr=60,Co=8,wr=8;function Rr({id:e,title:t,icon:n,defaultAnchor:o,defaultWidth:m,defaultHeight:s,children:I,ctx:b,onClose:T}){let w=(0,X.useContext)(xt)?.isRtl??!1,[x,v]=(0,X.useState)("docked"),[S,E]=(0,X.useState)(o),[D,N]=(0,X.useState)(null),[d,L]=(0,X.useState)({w:m,h:s}),R=(0,X.useRef)(null),z=(0,X.useRef)(x);z.current=x;let g=(0,X.useRef)(D);g.current=D;let P=(0,X.useRef)(d);P.current=d;let H=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>(b?.dockWindow(e,o),()=>{b?.undockWindow(e)}),[]),(0,X.useEffect)(()=>{b?.reportDockedSize(e,d.h)},[d.h]);let $=b?.zOrders[e]??101,l=!b||b.topId===e,W=()=>{let F=R.current?.offsetParent;return{cw:F?.clientWidth??9999,ch:F?.clientHeight??9999}},Y=()=>{b?.focusWindow(e)},q=F=>{if(F.button!==0)return;F.preventDefault();let k,V;if(z.current==="docked"){let B=R.current,le=b?.containerRef?.current;if(B&&le){let fe=B.getBoundingClientRect(),ve=le.getBoundingClientRect();k=fe.left-ve.left,V=fe.top-ve.top}else k=Co,V=b?.insetTop??0;b?.undockWindow(e),v("free"),N({x:k,y:V})}else k=g.current?.x??0,V=g.current?.y??0;H.current={mouseX:F.clientX,mouseY:F.clientY,posX:k,posY:V,hasDragged:!1},R.current?.setPointerCapture(F.pointerId),document.body.classList.add("rdd-dragging-active")},j=F=>k=>{if(k.button!==0)return;k.preventDefault(),k.stopPropagation();let V=0,B=0;if(z.current==="free")V=g.current?.x??0,B=g.current?.y??0;else{let fe=R.current,ve=fe?.offsetParent;if(fe&&ve){let xe=fe.getBoundingClientRect(),Le=ve.getBoundingClientRect();V=xe.left-Le.left,B=xe.top-Le.top}}let le={x:V,y:B,w:P.current.w,h:P.current.h};Ge({element:k.currentTarget,pointerId:k.pointerId,startClientX:k.clientX,startClientY:k.clientY,captureStart:()=>le,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(fe,ve,xe)=>{let{cw:Le,ch:De}=W(),{x:Ae,y:Qe,w:et,h:tt}=Tt(F,fe,ve,xe,{minW:xr,minH:Cr,maxW:Le-xe.x,maxH:De-xe.y,minX:0,minY:0});L({w:et,h:tt}),z.current==="free"&&N({x:Ae,y:Qe})}})},pe=F=>{if(H.current){let k=H.current;if(!k.hasDragged){if(Math.abs(F.clientX-k.mouseX)+Math.abs(F.clientY-k.mouseY)<4)return;k.hasDragged=!0,b?.setDraggingId(e)}let{cw:V,ch:B}=W(),le=Math.max(0,Math.min(k.posX+F.clientX-k.mouseX,V-P.current.w)),fe=Math.max(0,Math.min(k.posY+F.clientY-k.mouseY,B-P.current.h));N({x:le,y:fe});let ve=b?.containerRef?.current;if(ve){let xe=yr(ve,F.clientX,F.clientY);b?.setHoveredZone(xe&&w?Ot(xe):xe)}}},ee=()=>{if(H.current){let F=b?.hoveredZone;F&&(b?.dockWindow(e,F),E(F),v("docked"),N(null)),b?.setHoveredZone(null),b?.setDraggingId(null)}document.body.classList.remove("rdd-dragging-active"),H.current=null},Pe=()=>{H.current&&(b?.setHoveredZone(null),b?.setDraggingId(null)),document.body.classList.remove("rdd-dragging-active"),H.current=null},ne;if(x==="docked"&&b){let F=b.stacks[S]??[],k=F.indexOf(e),V=0;for(let B=0;B<k;B++)V+=(b.dockedSizes[F[B]]??s)+wr;ne={width:d.w,height:d.h,zIndex:$,transition:"top 0.2s ease, bottom 0.2s ease",opacity:k===-1?0:void 0,pointerEvents:k===-1?"none":void 0},ne[S.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]=Co,S.startsWith("top-")?ne.top=b.insetTop+V:ne.bottom=b.insetBottom+V}else ne={left:D?.x??0,top:D?.y??0,width:d.w,height:d.h,zIndex:$};return(0,U.jsxs)("div",{ref:R,dir:w?"rtl":"ltr",className:`rdd-panel-float${l?" rdd-panel-float--active":""}`,style:ne,onPointerDown:Y,onPointerMove:pe,onPointerUp:ee,onPointerCancel:Pe,children:[(0,U.jsxs)("div",{className:"rdd-panel-float__header",onPointerDown:q,children:[n&&(0,U.jsx)("span",{className:"rdd-panel-float__icon",children:n}),(0,U.jsx)("span",{className:"rdd-panel-float__title",children:t}),(0,U.jsx)("button",{type:"button",className:"rdd-panel-float__close",onClick:T,onPointerDown:F=>F.stopPropagation(),title:"Close","aria-label":"Close",children:(0,U.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,U.jsx)("line",{x1:"1",y1:"1",x2:"9",y2:"9"}),(0,U.jsx)("line",{x1:"9",y1:"1",x2:"1",y2:"9"})]})})]}),(0,U.jsx)("div",{className:"rdd-panel-float__body",children:I}),x==="free"&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-n",onPointerDown:j("n")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-ne",onPointerDown:j("ne")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-nw",onPointerDown:j("nw")})]}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-e",onPointerDown:j("e")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-se",onPointerDown:j("se")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-s",onPointerDown:j("s")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-sw",onPointerDown:j("sw")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-w",onPointerDown:j("w")})]})}function Oo(){let[e,t]=(0,X.useState)(!1),n=(0,X.useCallback)(()=>{t(!0)},[]),o=(0,X.useCallback)(()=>{t(!1)},[]);return{isOpen:e,open:n,close:o}}var Mr=[];function Ao(){let e=(0,X.useContext)(Mo),t=e?.managedWindowIds??Mr;return(0,X.useMemo)(()=>({open:(n,o)=>e?.openManaged(n,o),close:n=>e?.closeManaged(n),closeAll:()=>e?.closeAllManaged(),isOpen:n=>t.includes(n),openIds:t}),[e,t])}0&&(module.exports={ConfirmationForm,ContextMenu,ContextMenuProvider,DefaultContextMenuAdapter,DockableDesktopProvider,FormContainerContext,FormContainerProvider,LeftPanelRenderer,ModalStackRenderer,PanelContributionProvider,PanelFloatingWindow,PanelOverlayRoot,PanelProvider,PanelRegistry,PanelRegistryClass,PanelToolbar,PanelToolbarItem,PanelToolbarSeparator,RightPanelRenderer,SidePanelRenderer,Sidebar,ToastContainer,Toolbar,ToolbarButton,ToolbarCenter,ToolbarProvider,ToolbarSearchInput,ToolbarSpacer,ToolbarToggle,WindowManager,WindowManagerProvider,WorkspaceClient,computeResizedRect,defaultPredefinedMessages,formatLabel,isSerializable,sidebarSectionToTab,startPointerDrag,toast,useActivePanelContribution,useColorScheme,useFormContainer,useFormatMessage,useMergedSidebarTabs,useMergedToolbarItems,usePanelActions,usePanelContext,usePanelContextMenu,usePanelContribution,usePanelFloatingWindow,usePanelFloatingWindowManager,usePanelId,usePanelSize,usePanelState,usePredefinedMessages,useRegistry,useShowContextMenu,useSidebar,useSidebarTab,useStyleClasses,useToolbar,useWindowManagerActions,useWindowManagerState});
23
+ 3. Verify styles.css is imported \u2014 it anchors html, body, #root to 100% height.`)}cn({width:Math.max(100,h.width),height:Math.max(100,h.height)})});return u.observe(r),()=>{u.disconnect()}},[]),(0,K.useEffect)(()=>{let r=st.width,C=st.height;s.floating.forEach(u=>{let p=typeof u.width=="string"?parseFloat(u.width):u.width,h=typeof u.height=="string"?parseFloat(u.height):u.height,M=typeof u.x=="string"?parseFloat(u.x):u.x,A=typeof u.y=="string"?parseFloat(u.y):u.y,_=p,Q=h,oe=M,j=A,te=!1;if(_>r&&(_=Math.max(200,r-20),te=!0),Q>C&&(Q=Math.max(150,C-40),te=!0),!u.anchor){let de=r-100;oe>de&&(oe=Math.max(0,de),te=!0);let re=C-40;j>re&&(j=Math.max(0,re),te=!0)}te&&v(u.id,{x:oe,y:j,width:_,height:Q})})},[st,s.floating,v]),(0,K.useEffect)(()=>{let r=C=>{if(C.button!==0)return;let u=C.target;if(!u||typeof u.closest!="function")return;let p=u.closest(".rdd-floating-window");if(p){let M=p.getAttribute("data-window-id");M&&(R(M),S(M));return}let h=u.closest(".rdd-workspace-panel");if(h){let M=h.getAttribute("data-active-panel-id");M&&R(M)}};return document.addEventListener("pointerdown",r),()=>{document.removeEventListener("pointerdown",r)}},[S,R]);let un=(r,C)=>{C.preventDefault();let u=s.floating.find(j=>j.id===r);if(!u||u.maximized)return;S(r);let p=C.currentTarget,h=p.closest(".rdd-floating-window"),M=C.clientX,A=C.clientY,_=h?h.offsetLeft:0,Q=h?h.offsetTop:0,oe=()=>{let j=Ae.current,te=He.current,de=gt.current,re=mt.current;if(re)v(r,{anchor:It?Ot(re):re});else if(de)L(r,Ke(de));else if(te){let ae=te.index;te.side==="right"&&(ae+=1),d(r,te.leafId,ae)}else j&&D(r,j.leafId,Ke(j.position));Xe(null),_e()};if(C.pointerType==="touch"){let j=C.pointerId,te=!1,de=()=>{te=!0,clearTimeout(ae),p.removeEventListener("pointermove",re),p.removeEventListener("pointerup",de),p.removeEventListener("pointercancel",de)},re=ce=>{Math.hypot(ce.clientX-M,ce.clientY-A)>rt&&de()},ae=setTimeout(()=>{if(te)return;p.removeEventListener("pointermove",re),p.removeEventListener("pointerup",de),p.removeEventListener("pointercancel",de);try{p.setPointerCapture(j)}catch{return}p.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),W(r);let ce=ht=>{let bt=ht.clientX-M,vt=ht.clientY-A;v(r,{x:_+bt,y:Q+vt,anchor:null}),Et(ht.clientX,ht.clientY)},Ce=()=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",ce),p.removeEventListener("pointerup",Ce),p.removeEventListener("pointercancel",at),oe()},at=()=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",ce),p.removeEventListener("pointerup",Ce),p.removeEventListener("pointercancel",at),_e()};p.addEventListener("pointermove",ce),p.addEventListener("pointerup",Ce),p.addEventListener("pointercancel",at)},ot);p.addEventListener("pointermove",re),p.addEventListener("pointerup",de),p.addEventListener("pointercancel",de)}else{let j=!1,te=ae=>{let ce=ae.clientX-M,Ce=ae.clientY-A;!j&&(Math.abs(ce)>5||Math.abs(Ce)>5)&&(j=!0,W(r)),j&&v(r,{x:_+ce,y:Q+Ce,anchor:null})},de=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",de),window.removeEventListener("pointercancel",re),j&&oe()},re=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",de),window.removeEventListener("pointercancel",re),j&&_e()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",te),window.addEventListener("pointerup",de),window.addEventListener("pointercancel",re)}},i=(r,C,u)=>{u.preventDefault(),u.stopPropagation();let p=s.floating.find(ce=>ce.id===r);if(!p||p.maximized)return;S(r);let h=u.currentTarget,M=h.closest(".rdd-floating-window"),A={x:M?M.offsetLeft:0,y:M?M.offsetTop:0,w:M?M.offsetWidth:400,h:M?M.offsetHeight:300},_=st.width,Q=st.height,oe=typeof p.x=="string"?parseFloat(p.x):p.x,j=typeof p.y=="string"?parseFloat(p.y):p.y,te=typeof p.width=="string"?parseFloat(p.width):p.width,de=typeof p.height=="string"?parseFloat(p.height):p.height,re=C==="se"&&Math.abs(oe+te-_)<4,ae=C==="se"&&Math.abs(j+de-Q)<4;Ge({element:h,pointerId:u.pointerId,startClientX:u.clientX,startClientY:u.clientY,captureStart:()=>A,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(ce,Ce,at)=>{let ht=Tt(C,ce,Ce,at,{minW:200,minH:150}),{x:bt,y:vt,w:pn,h:gn}=ht;re&&(bt=_-pn,bt<0&&(bt=0,pn=_)),ae&&(vt=Q-gn,vt<0&&(vt=0,gn=Q)),v(r,{x:bt,y:vt,width:pn,height:gn})}})},y=r=>{if(ee.current){let C=r==="left"?-150:150;ee.current.scrollBy({left:C,behavior:"smooth"})}},c=(0,K.useCallback)(()=>{J.current&&clearTimeout(J.current),ne(!0)},[]),a=(0,K.useCallback)(()=>{J.current=setTimeout(()=>ne(!1),400)},[]);(0,K.useEffect)(()=>{n==="autohide"&&s.minimized.length>F.current&&(J.current&&clearTimeout(J.current),ne(!0),J.current=setTimeout(()=>ne(!1),2e3)),F.current=s.minimized.length},[s.minimized.length,n]);let G=on();return(0,K.useEffect)(()=>(e?document.documentElement.setAttribute("data-workspace-skin",e):document.documentElement.removeAttribute("data-workspace-skin"),()=>{document.documentElement.removeAttribute("data-workspace-skin")}),[e]),(0,K.useEffect)(()=>(G==="light"?document.documentElement.setAttribute("data-color-scheme","light"):document.documentElement.removeAttribute("data-color-scheme"),()=>{document.documentElement.removeAttribute("data-color-scheme")}),[G]),(0,K.useEffect)(()=>(m?document.documentElement.classList.remove("rdd-no-animations"):document.documentElement.classList.add("rdd-no-animations"),()=>{document.documentElement.classList.remove("rdd-no-animations")}),[m]),(0,f.jsxs)("div",{className:`rdd-workspace${m?"":" rdd-no-animations"}`,"data-workspace-skin":e,"data-color-scheme":G,style:{display:"flex",flexDirection:"column",position:"relative",width:"100%",height:"100%",overflow:"hidden",userSelect:"none"},dir:s.dir,children:[(0,f.jsxs)("div",{ref:ft,className:s.draggedPanelId?"rdd-dragging-active":void 0,style:{flexGrow:1,width:"100%",position:"relative",overflow:"hidden"},children:[s.draggedPanelId!==null&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{"data-edge-trigger":"left",className:"rdd-workspace-edge-trigger rdd-edge-trigger-left",onPointerEnter:()=>Se("left"),onPointerLeave:()=>Se(null)}),(0,f.jsx)("div",{"data-edge-trigger":"right",className:"rdd-workspace-edge-trigger rdd-edge-trigger-right",onPointerEnter:()=>Se("right"),onPointerLeave:()=>Se(null)}),(0,f.jsx)("div",{"data-edge-trigger":"top",className:"rdd-workspace-edge-trigger rdd-edge-trigger-top",onPointerEnter:()=>Se("top"),onPointerLeave:()=>Se(null)}),(0,f.jsx)("div",{"data-edge-trigger":"bottom",className:"rdd-workspace-edge-trigger rdd-edge-trigger-bottom",onPointerEnter:()=>Se("bottom"),onPointerLeave:()=>Se(null)})]}),s.draggedPanelId!==null&&["top-left","top-right","bottom-left","bottom-right"].map(r=>(0,f.jsx)("div",{className:`rdd-corner-zone rdd-corner-zone--${r}${Bt===r?" rdd-corner-zone--hovered":""}`,onPointerEnter:()=>{Xe(r),Se(null)},onPointerLeave:()=>Xe(null),"aria-hidden":"true"},r)),s.draggedPanelId!==null&&nt!==null&&(0,f.jsx)("div",{className:"rdd-workspace-edge-preview",style:(()=>{let r=`${s.edgeSplitRatio*100}%`;switch(nt){case"left":return{left:0,top:0,bottom:0,width:r};case"right":return{right:0,top:0,bottom:0,width:r};case"top":return{top:0,left:0,right:0,height:r};case"bottom":return{bottom:0,left:0,right:0,height:r}}})()}),(0,f.jsx)("div",{style:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:s.gridRoot?(0,f.jsx)(Un,{node:s.gridRoot,path:[],onTabRightClick:zt,activeDropZone:Le,onHoverDropZone:Xt,onTabDragStart:Vt,hoveredTab:Gt,onTabHover:Yt,defaultPanelIcon:t,onRequestClosePanel:N}):(0,f.jsx)("div",{className:"rdd-empty-workspace-grid",children:"Grid Empty"})}),s.floating.map(r=>{let C=s.panels[r.id];if(!C)return null;let u=r.maximized,p=s.draggedPanelId===r.id,h=s.activePanelId===r.id,A=I.get(C.component)?.defaultOptions;return(0,f.jsxs)("div",{"data-window-id":r.id,dir:s.dir,onPointerDownCapture:()=>{R(r.id),S(r.id)},className:`rdd-floating-window ${u?"rdd-maximized":""} ${h?"rdd-window-focused":""} ${Y??""}`,style:(()=>{let oe=typeof r.width=="number"?`${r.width}px`:r.width,j=typeof r.height=="number"?`${r.height}px`:r.height;if(u)return{position:"absolute",left:0,top:0,width:"100%",height:"100%",zIndex:r.z,pointerEvents:p?"none":"auto"};if(r.anchor){let te=s.floating.filter(Ce=>Ce.anchor===r.anchor&&!Ce.maximized),de=te.findIndex(Ce=>Ce.id===r.id),re=8;for(let Ce=0;Ce<de;Ce++){let at=typeof te[Ce].height=="number"?te[Ce].height:parseFloat(te[Ce].height);re+=at+8}let ae=r.anchor.startsWith("top");return{position:"absolute",[r.anchor.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]:8,[ae?"top":"bottom"]:re,width:oe,height:j,zIndex:r.z,transition:p?"none":"top 0.2s ease, bottom 0.2s ease",pointerEvents:p?"none":"auto"}}return{position:"absolute",left:typeof r.x=="number"?`${r.x}px`:r.x,top:typeof r.y=="number"?`${r.y}px`:r.y,width:oe,height:j,zIndex:r.z,pointerEvents:p?"none":"auto"}})(),children:[(0,f.jsxs)("div",{onDoubleClick:()=>x(r.id),onPointerDown:_=>{A?.canDrag!==!1&&un(r.id,_)},className:"rdd-floating-window-titlebar rdd-cursor-move",style:{cursor:u||A?.canDrag===!1?"default":"move"},children:[(0,f.jsxs)("span",{className:"rdd-floating-window-title",children:[(0,f.jsx)("span",{className:"rdd-window-title-icon",children:A?.icon||t||Cn}),(0,f.jsxs)("span",{children:[ge(C.title,$),C.dirty?" *":""]})]}),(0,f.jsxs)("div",{className:"rdd-titlebar-actions",style:{gap:"var(--rdd-header-button-gap, 4px)"},onPointerDown:_=>_.stopPropagation(),children:[A?.renderHeaderActions&&(0,f.jsx)("div",{className:"rdd-window-header-actions",children:A.renderHeaderActions(r.id)}),z(r.id).length>0&&(0,f.jsx)("button",{type:"button",className:"rdd-custom-tab-btn rdd-btn-more-actions",title:"More actions",onClick:_=>{_.stopPropagation();let Q=z(r.id);Q.length!==0&&g({event:_,items:Q})},children:(0,f.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{display:"block"},children:[(0,f.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"2"}),(0,f.jsx)("circle",{cx:"12",cy:"19",r:"2"})]})}),(0,f.jsx)("button",{type:"button",title:u?ge(l.restoreSize,$):ge(l.maximize,$),onClick:()=>x(r.id),className:"rdd-custom-tab-btn rdd-btn-maximize-tab",children:(0,f.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"1.5"})})}),A?.canMinimize!==!1&&(0,f.jsx)("button",{type:"button",title:ge(l.minimize,$),onClick:()=>T(r.id),className:"rdd-custom-tab-btn rdd-btn-minimize-tab",children:(0,f.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,f.jsx)("path",{d:"M5 12h14"})})}),A?.canClose!==!1&&(0,f.jsx)("button",{type:"button",title:ge(l.close,$),onClick:()=>N(r.id),className:"rdd-custom-tab-btn rdd-btn-close-tab",children:(0,f.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]})]}),(0,f.jsx)("div",{className:q??void 0,style:{flexGrow:1,width:"100%",overflow:"hidden",position:"relative",isolation:"isolate"},children:(0,f.jsx)(Zn,{panelId:r.id},r.id)}),!u&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"n",_),className:"rdd-resize-handle rdd-resize-n"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"ne",_),className:"rdd-resize-handle rdd-resize-ne"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"e",_),className:"rdd-resize-handle rdd-resize-e"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"se",_),className:"rdd-resize-handle rdd-resize-se"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"s",_),className:"rdd-resize-handle rdd-resize-s"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"sw",_),className:"rdd-resize-handle rdd-resize-sw"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"w",_),className:"rdd-resize-handle rdd-resize-w"}),(0,f.jsx)("div",{onPointerDown:_=>i(r.id,"nw",_),className:"rdd-resize-handle rdd-resize-nw"})]})]},r.id)})]}),(n==="always"||s.minimized.length>0)&&(0,f.jsxs)("div",{className:["rdd-taskbar-footer-container",`taskbar-mode-${n}`,n==="autohide"&&Pe?"rdd-taskbar-expanded":""].filter(Boolean).join(" "),style:{height:"48px",zIndex:100},onPointerEnter:n==="autohide"?c:void 0,onPointerLeave:n==="autohide"?a:void 0,children:[n==="autohide"&&(0,f.jsx)("div",{className:"rdd-taskbar-peek-handle"}),(0,f.jsx)("button",{type:"button",onClick:()=>y("left"),className:"rdd-taskbar-nav-btn",style:{display:s.minimized.length>4?"block":"none"},children:"\u25C0"}),(0,f.jsx)("div",{ref:ee,className:"rdd-taskbar-items-container",style:{scrollSnapType:"x mandatory"},children:s.minimized.map(r=>{let u=I.get(r.component)?.defaultOptions?.icon||t||Cn;return(0,f.jsx)("div",{onClick:()=>{le.current!=="touch"&&(V(null),b(r.id))},onContextMenu:p=>it(r.id,p),onPointerDown:p=>{if(le.current=p.pointerType,p.pointerType!=="touch")return;let h=p.currentTarget,M=p.clientX,A=p.clientY,_=p.pointerId,Q=!1,oe=()=>{Q=!0,clearTimeout(de),h.removeEventListener("pointermove",te),h.removeEventListener("pointerup",j),h.removeEventListener("pointercancel",oe)},j=()=>{oe();let re=h.getBoundingClientRect();k?.id===r.id?(b(r.id),V(null)):V({id:r.id,rect:re,title:r.title,component:r.component,fromTouch:!0})},te=re=>{Math.hypot(re.clientX-M,re.clientY-A)>rt&&oe()},de=setTimeout(()=>{if(Q)return;h.removeEventListener("pointermove",te),h.removeEventListener("pointerup",j),h.removeEventListener("pointercancel",oe);try{h.setPointerCapture(_)}catch{return}navigator.vibrate&&navigator.vibrate(10);let re=ae=>{h.removeEventListener("pointerup",re),h.removeEventListener("pointercancel",re),it(r.id,ae)};h.addEventListener("pointerup",re),h.addEventListener("pointercancel",re)},ot);h.addEventListener("pointermove",te),h.addEventListener("pointerup",j),h.addEventListener("pointercancel",oe)},onPointerEnter:p=>{if(p.pointerType==="touch"||xe)return;B.current&&clearTimeout(B.current);let h=p.currentTarget.getBoundingClientRect();p.clientX>=h.left&&p.clientX<=h.right&&p.clientY>=h.top&&p.clientY<=h.bottom&&V({id:r.id,rect:h,title:r.title,component:r.component})},onPointerLeave:p=>{p.pointerType!=="touch"&&(B.current=setTimeout(()=>{V(null)},150))},className:"rdd-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,f.jsx)("span",{className:"rdd-taskbar-item-icon",children:u})},r.id)})}),k&&(0,xn.createPortal)((0,f.jsxs)("div",{className:"rdd-taskbar-item-tooltip",dir:s.dir,style:{position:"fixed",left:`${k.rect.left+k.rect.width/2}px`,top:`${k.rect.top-8}px`,transform:"translateX(-50%) translateY(-100%)",opacity:1,pointerEvents:"auto",zIndex:999999},onPointerEnter:()=>{B.current&&clearTimeout(B.current)},onPointerLeave:r=>{r.pointerType!=="touch"&&V(null)},onClick:()=>{b(k.id),V(null)},onContextMenu:r=>it(k.id,r),onPointerDown:r=>{if(r.pointerType!=="touch")return;let C=k.id,u=r.currentTarget,p=r.clientX,h=r.clientY,M=r.pointerId,A=!1,_=()=>{A=!0,clearTimeout(oe),u.removeEventListener("pointermove",Q),u.removeEventListener("pointerup",_),u.removeEventListener("pointercancel",_)},Q=j=>{Math.hypot(j.clientX-p,j.clientY-h)>rt&&_()},oe=setTimeout(()=>{if(A)return;u.removeEventListener("pointermove",Q),u.removeEventListener("pointerup",_),u.removeEventListener("pointercancel",_);try{u.setPointerCapture(M)}catch{return}navigator.vibrate&&navigator.vibrate(10);let j=te=>{u.removeEventListener("pointerup",j),u.removeEventListener("pointercancel",j),it(C,te)};u.addEventListener("pointerup",j),u.addEventListener("pointercancel",j)},ot);u.addEventListener("pointermove",Q),u.addEventListener("pointerup",_),u.addEventListener("pointercancel",_)},children:[(0,f.jsxs)("div",{className:"rdd-tooltip-header-row",children:[(0,f.jsxs)("span",{className:"rdd-tooltip-title-text rdd-text-truncate",style:{maxWidth:"140px"},children:[ge(k.title,$),s.panels[k.id]?.dirty?" *":""]}),(0,f.jsx)("span",{onClick:r=>{r.stopPropagation(),N(k.id),V(null)},title:ge(l.closePanel,$),className:"rdd-tooltip-close-x",children:(0,f.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,f.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,f.jsx)(Jo,{panelId:k.id})]}),document.body),(0,f.jsx)("button",{type:"button",onClick:()=>y("right"),className:"rdd-taskbar-nav-btn",style:{display:s.minimized.length>4?"block":"none"},children:"\u25B6"})]}),Object.keys(s.panels).map(r=>{let C=s.panels[r];if(!C)return null;let u=jn(r);return(0,xn.createPortal)((0,f.jsx)(Qo,{panelId:r,children:(0,f.jsx)("div",{style:{width:"100%",height:"100%"},dir:s.dir,children:Uo(r,C,I)})}),u,r)}),Z===null&&(0,f.jsx)(o.Component,{ref:pe,theme:"dark",formatMessageProvider:$,onShow:()=>ve(!0),onHide:()=>ve(!1)}),s.draggedPanelId!==null&&!s.floating.some(r=>r.id===s.draggedPanelId)&&(0,f.jsxs)("div",{className:"rdd-drag-ghost-tab",style:{left:et.x+12,top:et.y+12,zIndex:1e5},children:["\u{1F4C4} ",ge(s.panels[s.draggedPanelId]?.title,$)||"Tab"]})]})},Jn=tr;var sn=class{registry;initialState;config;_actions=null;_initialized=!1;_pendingCalls=[];_pendingOpenPanelIds=new Set;_pendingSubscriptions=[];_disconnectedWarnTimer=null;constructor(t={}){if(this.registry=new dt,this.initialState=t.initialState??null,this.config={formatMessage:t.formatMessage,predefinedMessages:t.predefinedMessages,dir:t.dir,defaultSplitRatio:t.defaultSplitRatio,defaultEdgeSplitRatio:t.defaultEdgeSplitRatio,zIndexBase:t.zIndexBase},t.panels)for(let[n,o]of Object.entries(t.panels))this.registry.register(n,o.component,o.defaultOptions)}_connect(t){this._actions=t,this._disconnectedWarnTimer!==null&&(clearTimeout(this._disconnectedWarnTimer),this._disconnectedWarnTimer=null),this._initialized||(this._initialized=!0);for(let o of this._pendingSubscriptions)o.unsub=t.subscribe(o.event,o.callback);let n=this._pendingCalls.splice(0);for(let o of n)o(t)}_disconnect(){this._actions=null;for(let t of this._pendingSubscriptions)t.unsub?.(),t.unsub=null}get isConnected(){return this._actions!==null}_startWarnTimer(){this._disconnectedWarnTimer===null&&(this._disconnectedWarnTimer=setTimeout(()=>{!this.isConnected&&this._pendingCalls.length>0&&console.error("[react-dockable-desktop] WorkspaceClient has "+this._pendingCalls.length+" queued call(s) but was never connected to a WindowManagerProvider. Did you forget client={workspace} on <WindowManagerProvider>?")},process.env.NODE_ENV==="production"?5e3:1e3))}_dispatch(t){this._actions?t(this._actions):(this._pendingCalls.push(t),this._startWarnTimer())}_subscribeRaw(t,n){if(this._actions)return this._actions.subscribe(t,n);let o={event:t,callback:n,unsub:null};return this._pendingSubscriptions.push(o),()=>{o.unsub?.(),o.unsub=null;let m=this._pendingSubscriptions.indexOf(o);m!==-1&&this._pendingSubscriptions.splice(m,1)}}openPanel(...t){if(this._actions){this._actions.openPanel(...t);return}let n=t[0];this._pendingOpenPanelIds.has(n)||(this._pendingOpenPanelIds.add(n),this._pendingCalls.push(o=>{this._pendingOpenPanelIds.delete(n),o.openPanel(...t)}),this._startWarnTimer())}closePanel(t){this._dispatch(n=>n.closePanel(t))}minimizePanel(t){this._dispatch(n=>n.minimizePanel(t))}restorePanel(t){this._dispatch(n=>n.restorePanel(t))}floatPanel(...t){this._dispatch(n=>n.floatPanel(...t))}dockPanel(...t){this._dispatch(n=>n.dockPanel(...t))}maximizePanel(t){this._dispatch(n=>n.maximizePanel(t))}focusPanel(t){this._dispatch(n=>n.focusPanel(t))}isOpen(t){return this._actions?.isOpen(t)??!1}getOpenPanelIds(){return this._actions?.getOpenPanelIds()??[]}findPanelId(t,n){return this._actions?.findPanelId(t,n)??null}saveLayout(){return this._actions?.saveLayout()??""}loadLayout(t){return this._actions?this._actions.loadLayout(t):(this._pendingCalls.push(n=>{n.loadLayout(t)}),!1)}setDirection(t){this._dispatch(n=>n.setDirection(t))}updateSplitSizes(t,n){this._dispatch(o=>o.updateSplitSizes(t,n))}updateFloatingPosition(t,n){this._dispatch(o=>o.updateFloatingPosition(t,n))}setDraggedPanelId(t){this._dispatch(n=>n.setDraggedPanelId(t))}dockPanelToGroup(t,n,o){this._dispatch(m=>m.dockPanelToGroup(t,n,o))}movePanelOrder(t,n,o){this._dispatch(m=>m.movePanelOrder(t,n,o))}closeLeafGroup(t){this._dispatch(n=>n.closeLeafGroup(t))}registerCloseGuard(t,n){this._dispatch(o=>o.registerCloseGuard(t,n))}unregisterCloseGuard(t){this._dispatch(n=>n.unregisterCloseGuard(t))}registerStateProvider(t,n){this._dispatch(o=>o.registerStateProvider(t,n))}unregisterStateProvider(t){this._dispatch(n=>n.unregisterStateProvider(t))}setPanelDirty(t,n,o){this._dispatch(m=>m.setPanelDirty(t,n,o))}updatePanelTitle(t,n){this._dispatch(o=>o.updatePanelTitle(t,n))}requestClosePanel(t,n){return this._actions?this._actions.requestClosePanel(t,n):(this._pendingCalls.push(o=>{o.requestClosePanel(t,n)}),Promise.resolve())}dockPanelToWorkspaceEdge(t,n){this._dispatch(o=>o.dockPanelToWorkspaceEdge(t,n))}showContextMenu(t){this._dispatch(n=>n.showContextMenu(t))}publish(t,n){this._dispatch(o=>o.publish(t,n))}subscribe(t,n){return this._subscribeRaw(t,n)}onPanelOpen(t){return this._subscribeRaw("panel:opened",n=>{let o=n;t(o.id,o.component)})}onPanelClose(t){return this._subscribeRaw("panel:closed",n=>{t(n.id)})}onPanelMinimize(t){return this._subscribeRaw("panel:minimized",n=>{t(n.id)})}onPanelRestore(t){return this._subscribeRaw("panel:restored",n=>{t(n.id)})}onLayoutChanged(t){return this._subscribeRaw("layout:changed",()=>t())}onPanelsExcluded(t){return this._subscribeRaw("layout:panels-excluded",n=>{t(n.panels)})}};var io=require("react");var Ye=require("react"),eo=require("react/jsx-runtime"),Qn=(0,Ye.createContext)(null),Ft=({children:e})=>{let[t,n]=(0,Ye.useState)({}),[o,m]=(0,Ye.useState)({}),s=(0,Ye.useMemo)(()=>({getActiveInGroup:I=>t[I]??null,setActiveInGroup:(I,b)=>n(T=>({...T,[I]:b})),isModifierActive:I=>o[I]??!1,setModifierActive:(I,b)=>m(T=>({...T,[I]:b})),toggleModifier:I=>m(b=>({...b,[I]:!b[I]}))}),[t,o]);return(0,eo.jsx)(Qn.Provider,{value:s,children:e})};function _t(){let e=(0,Ye.useContext)(Qn);if(!e)throw new Error("useToolbar must be used within DockableDesktopProvider");return e}var ke=require("react");var ro=require("react/jsx-runtime");function nr(){let e=new Map,t=new Set,n=()=>t.forEach(o=>o());return{publish(o,m){return e.set(o,m),n(),()=>{e.get(o)===m&&(e.delete(o),n())}},get(o){return e.get(o)??null},subscribe(o){return t.add(o),()=>t.delete(o)}}}var Rn=(0,ke.createContext)(null),an=({children:e})=>{let t=(0,ke.useMemo)(()=>nr(),[]);return(0,ro.jsx)(Rn.Provider,{value:t,children:e})};function to(e){let t=Dt(),n=(0,ke.useContext)(Rn),o=(0,ke.useRef)(null);if(!n)throw new Error("usePanelContribution must be used within PanelContributionProvider");(0,ke.useLayoutEffect)(()=>{if(n)return o.current?.(),o.current=n.publish(t,e),()=>{o.current?.(),o.current=null}},[n,t,e])}function ln(){let e=ze(m=>m.activePanelId),t=(0,ke.useContext)(Rn);if(!t)throw new Error("useActivePanelContribution must be used within PanelContributionProvider");let n=(0,ke.useCallback)(m=>t?t.subscribe(m):()=>{},[t]),o=()=>t&&e?t.get(e):null;return(0,ke.useSyncExternalStore)(n,o,o)}function Mn(e,t=null){return{id:e.id,label:e.label,icon:e.icon??t,renderContent:()=>e.content}}function no(e){let t=ln();return t?.toolbarItems?.length?[...e,{type:"separator"},...t.toolbarItems]:e}function oo(e,t=null){let n=ln();return n?.sidebarSections?.length?[...e,...n.sidebarSections.map(o=>Mn(o,t))]:e}var kt=require("react/jsx-runtime"),so=({contextMenuAdapter:e=ut,...t})=>{let n=(0,io.useContext)(Mt),o=(0,kt.jsx)(Ft,{children:(0,kt.jsx)(Zt,{...t,children:(0,kt.jsx)(an,{children:(0,kt.jsx)(tn,{children:t.children})})})});return n!==null?o:(0,kt.jsx)(Qt,{adapter:e,formatMessageProvider:t.formatMessage,children:o})};var Ie=require("react");var Re=require("react/jsx-runtime"),or=({modal:e,index:t,isTopmost:n})=>{let{close:o,openModal:m,updateInstance:s,setDirty:I}=Ze(),b=We(),T=Fe(),{dir:w}=ze(),{modalClass:x,modalBodyClass:v}=Be(),S=(0,Ie.useRef)(null),{id:E,Component:W,props:D,options:d,dirty:L,dirtyOptions:R}=e,z=d,[g,P]=(0,Ie.useState)(z.icon||null),H=(0,Ie.useRef)(z);H.current=z;let $=ge(z.title,b),l=(0,Ie.useCallback)(async F=>{if(F?.force){o(E);return}if(S.current){if(!await S.current())return;o(E);return}if(L){m(Ue,{title:R?.title||T.unsavedChangesTitle,message:R?.message||{id:T.unsavedChangesMessage.id,defaultMessage:T.unsavedChangesMessage.defaultMessage,values:{title:$}},alert:R?.alert,alertType:R?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(E)},{size:"small"});return}o(E)},[o,m,E,L,R,$,T]),N=(0,Ie.useCallback)((F,k)=>I(E,F,k),[I,E]),Y=(0,Ie.useCallback)(F=>s(E,{options:{...H.current,title:F}}),[s,E]),q=(0,Ie.useCallback)(F=>P(F),[]),Z=(0,Ie.useCallback)(F=>(S.current=F,()=>{S.current=null}),[]),pe=(0,Ie.useMemo)(()=>({requestClose:l,setDirty:N,setTitle:Y,setIcon:q,onCloseRequested:Z,containerType:"modal",instanceId:E}),[l,N,Y,q,Z,E]),ee=L?`${$} *`:$,Pe=z.size?`rdd-modal-size-${z.size}`:"rdd-modal-size-auto",ne=z.closable!==!1;(0,Ie.useEffect)(()=>{if(!n||!ne)return;let F=k=>{k.key==="Escape"&&(k.stopPropagation(),l())};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[l,ne,n]);let J=`calc(var(--rdd-z-base, 1000) + 9000 + ${t*10})`;return(0,Re.jsxs)("div",{className:"rdd-modal-overlay",style:{zIndex:J},dir:w,children:[(0,Re.jsx)("div",{className:"rdd-modal-curtain",onClick:ne?()=>l():void 0}),(0,Re.jsxs)("div",{className:`rdd-modal-window ${Pe} ${x??""}`,children:[(0,Re.jsxs)("div",{className:"rdd-modal-header",children:[g&&(0,Re.jsx)("div",{className:"rdd-modal-icon",children:g}),(0,Re.jsx)("h4",{className:"rdd-modal-title",children:ee}),ne&&(0,Re.jsx)("button",{className:"rdd-modal-close-button",onClick:()=>l(),title:b(T.closeTooltip),type:"button",children:(0,Re.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,Re.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,Re.jsx)("div",{className:`rdd-modal-body ${v??""}`,children:(0,Re.jsx)(qe,{value:pe,children:(0,Re.jsx)(W,{...D,panelId:E})})})]})]})},rr=()=>{let{modals:e}=$e();return e.length===0?null:(0,Re.jsx)(Re.Fragment,{children:e.map((t,n)=>(0,Re.jsx)(or,{modal:t,index:n,isTopmost:n===e.length-1},t.id))})},ao=rr;var Te=require("react");var ye=require("react/jsx-runtime"),dn=({panel:e,position:t,defaultWidth:n})=>{let{close:o,openModal:m,updateInstance:s,setDirty:I,registerCloseHandler:b,unregisterCloseHandler:T}=Ze(),{modals:w}=$e(),x=We(),v=Fe(),{dir:S}=ze(),{sidePanelClass:E,sidePanelBodyClass:W}=Be(),D=(0,Te.useRef)(null),{id:d,Component:L,props:R,options:z,dirty:g,dirtyOptions:P}=e,H=z,[$,l]=(0,Te.useState)(H.icon||null),N=(0,Te.useRef)(H);N.current=H;let Y=ge(H.title,x),q=(0,Te.useCallback)(async B=>{if(B?.force){o(d);return}if(D.current){if(!await D.current())return;o(d);return}if(g){m(Ue,{title:P?.title||v.unsavedChangesTitle,message:P?.message||{id:v.unsavedChangesMessage.id,defaultMessage:v.unsavedChangesMessage.defaultMessage,values:{title:Y}},alert:P?.alert,alertType:P?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(d)},{size:"small"});return}o(d)},[o,m,d,g,P,Y,v]),Z=(0,Te.useCallback)(async()=>D.current?await D.current():!g,[g]);(0,Te.useEffect)(()=>(b(d,Z),()=>T(d)),[d,Z,b,T]);let pe=(0,Te.useCallback)((B,le)=>I(d,B,le),[I,d]),ee=(0,Te.useCallback)(B=>s(d,{options:{...N.current,title:B}}),[s,d]),Pe=(0,Te.useCallback)(B=>l(B),[]),ne=(0,Te.useCallback)(B=>(D.current=B,()=>{D.current=null}),[]),J=(0,Te.useMemo)(()=>({requestClose:q,setDirty:pe,setTitle:ee,setIcon:Pe,onCloseRequested:ne,containerType:t==="left"?"left-panel":"right-panel",instanceId:d}),[q,pe,ee,Pe,ne,t,d]),F=g?`${Y} *`:Y;(0,Te.useEffect)(()=>{let B=le=>{le.key==="Escape"&&w.length===0&&q()};return document.addEventListener("keydown",B),()=>document.removeEventListener("keydown",B)},[q,w.length]);let k=H.width||n||400,V=typeof k=="number"?`${k}px`:k;return(0,ye.jsx)("div",{className:`rdd-side-panel rdd-side-panel-${t} rdd-side-panel-visible ${E??""}`,style:{width:V},dir:S,children:(0,ye.jsxs)("div",{className:"rdd-side-panel-window",children:[(0,ye.jsxs)("div",{className:"rdd-side-panel-header",children:[$&&(0,ye.jsx)("div",{className:"rdd-side-panel-icon",children:$}),(0,ye.jsx)("h4",{className:"rdd-side-panel-title",children:F}),(0,ye.jsx)("button",{className:"rdd-side-panel-close-button",onClick:()=>q(),title:x(v.closeTooltip),type:"button",children:(0,ye.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,ye.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,ye.jsx)("div",{className:`rdd-side-panel-body ${W??""}`,children:(0,ye.jsx)(qe,{value:J,children:(0,ye.jsx)(L,{...R,panelId:d})})})]})})},ir=({defaultWidth:e})=>{let{leftPanel:t,rightPanel:n}=$e();return(0,ye.jsxs)(ye.Fragment,{children:[t&&(0,ye.jsx)(dn,{panel:t,position:"left",defaultWidth:e},t.id),n&&(0,ye.jsx)(dn,{panel:n,position:"right",defaultWidth:e},n.id)]})},lo=({defaultWidth:e})=>{let{leftPanel:t}=$e();return t?(0,ye.jsx)(dn,{panel:t,position:"left",defaultWidth:e},t.id):null},co=({defaultWidth:e})=>{let{rightPanel:t}=$e();return t?(0,ye.jsx)(dn,{panel:t,position:"right",defaultWidth:e},t.id):null},uo=ir;var se=require("react");var we=require("react/jsx-runtime"),go=(0,se.createContext)(null),mo=(0,se.createContext)(null);function sr({tabId:e,onClose:t,onOpen:n,setActiveTabId:o,children:m}){let s=(0,se.useMemo)(()=>({tabId:e,onClose:t,onOpen:n,openTab:I=>o(I)}),[e,t,n,o]);return(0,we.jsx)(mo.Provider,{value:s,children:m})}var po=(0,se.memo)(function({tabs:t,activeTabId:n,isVisible:o,position:m,onTabClick:s}){return(0,we.jsx)("div",{style:{width:o?"56px":"0px",height:"100%",overflow:"hidden",transition:"width 0.25s cubic-bezier(0.4, 0, 0.2, 1)",flexShrink:0},children:(0,we.jsx)("div",{className:`rdd-sidebar-tabs-strip rdd-${m}`,style:{width:"56px",height:"100%"},children:t.map(I=>{let b=n===I.id;return(0,we.jsx)("button",{type:"button",onClick:()=>s(I.id),className:`rdd-sidebar-tab-btn${b?" rdd-active":""}`,title:I.label,"aria-pressed":b,children:I.icon},I.id)})})})});function ar({position:e,currentWidth:t,minWidth:n,maxWidth:o,onWidthChange:m,rootRef:s}){return(0,we.jsx)("div",{className:"rdd-resizer-bar",style:{cursor:"col-resize",width:"1px",height:"100%",flexShrink:0,zIndex:20},onPointerDown:b=>{b.preventDefault();let T=b.currentTarget,w=[{el:T,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active","rdd-resizing-col-active"]}];s.current&&w.push({el:s.current,classes:["rdd-sidebar-resizing"]}),Ge({element:T,pointerId:b.pointerId,startClientX:b.clientX,startClientY:b.clientY,captureStart:()=>t,activeClasses:w,onMove:(x,v,S)=>{let E=e==="right"?S-x:S+x;m(Math.max(n,Math.min(o,E)))}})}})}var fo=(0,se.forwardRef)(function({position:t="right",tabs:n,defaultWidth:o,minWidth:m=150,maxWidth:s=600,onWidthChange:I,activeTabId:b,onActiveTabChange:T,visible:w,onVisibilityChange:x,stripVisible:v,onStripVisibilityChange:S,children:E},W){let D=b!==void 0,[d,L]=(0,se.useState)(()=>o??280),R=(0,se.useCallback)(B=>{L(B),I?.(B)},[I]),[z,g]=(0,se.useState)(null),P=D?b:z,[H,$]=(0,se.useState)(()=>new Set),l=(0,se.useMemo)(()=>{let B=new Set(H);P&&B.add(P);for(let le of n)le.eagerMount&&B.add(le.id);return B},[H,P,n]),N=(0,se.useRef)(P??null);(0,se.useEffect)(()=>{N.current=P??null},[P]);let Y=(0,se.useRef)(d);(0,se.useEffect)(()=>{Y.current=d},[d]);let q=(0,se.useRef)(null),Z=(0,se.useCallback)(B=>{$(B!==null?le=>{if(le.has(B))return le;let fe=new Set(le);return fe.add(B),fe}:le=>{let fe=!1,ve=new Set(le);for(let xe of le){let Le=n.find(De=>De.id===xe);Le&&!Le.eagerMount&&!Le.preserveState&&(ve.delete(xe),fe=!0)}return fe?ve:le}),D||g(B),T?.(B)},[D,T,n]);(0,se.useImperativeHandle)(W,()=>({openTab:B=>Z(B),closeDrawer:()=>Z(null),getActiveTab:()=>N.current,show:()=>x?.(!0),hide:()=>x?.(!1),toggle:()=>x?.(w===!1),showStrip:()=>S?.(!0),hideStrip:()=>S?.(!1),setWidth:B=>R(Math.max(m,Math.min(s,B))),getWidth:()=>Y.current}),[Z,w,x,S,R,m,s]);let pe=(0,se.useCallback)(B=>{Z(P===B?null:B)},[P,Z]),ee=(0,se.useCallback)(()=>Z(null),[Z]),Pe=(0,se.useMemo)(()=>({openTab:B=>Z(B),closeDrawer:()=>Z(null),getActiveTab:()=>N.current}),[Z]),ne=w!==!1,J=ne&&v!==!1,F=ne&&P!=null,k=(0,we.jsx)("div",{className:`rdd-sidebar-content-drawer rdd-${t}`,style:{flexBasis:F?`${d}px`:"0px",flexShrink:1,flexGrow:0,minWidth:F?`${m}px`:"0px",maxWidth:F?`${s}px`:"0px",overflow:"hidden",transition:"flex-basis 0.2s cubic-bezier(0.4, 0, 0.2, 1), min-width 0.2s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.2s cubic-bezier(0.4, 0, 0.2, 1)"},children:n.map(B=>{if(!l.has(B.id))return null;let fe=P===B.id,ve=()=>Z(B.id);return(0,we.jsxs)("div",{style:{display:fe?"flex":"none",flexDirection:"column",height:"100%",width:"100%"},children:[(0,we.jsx)("div",{className:"rdd-sidebar-drawer-header",children:(0,we.jsx)("span",{className:"rdd-sidebar-header-title",children:B.label})}),(0,we.jsx)("div",{className:"rdd-sidebar-drawer-body",children:(0,we.jsx)(sr,{tabId:B.id,onClose:ee,onOpen:ve,setActiveTabId:Z,children:B.renderContent(B.id,ee,ve)})})]},B.id)})}),V=F?(0,we.jsx)(ar,{position:t,currentWidth:d,minWidth:m,maxWidth:s,onWidthChange:R,rootRef:q}):null;return(0,we.jsx)(go.Provider,{value:Pe,children:(0,we.jsxs)("div",{ref:q,style:{display:"flex",flexDirection:"row",width:"100%",height:"100%",overflow:"hidden"},children:[t==="left"&&(0,we.jsx)(po,{tabs:n,activeTabId:P,isVisible:J,position:t,onTabClick:pe}),t==="left"&&k,t==="left"&&V,(0,we.jsx)("div",{style:{flex:"1 1 0%",minWidth:0,overflow:"hidden"},children:E}),t==="right"&&V,t==="right"&&k,t==="right"&&(0,we.jsx)(po,{tabs:n,activeTabId:P,isVisible:J,position:t,onTabClick:pe})]})})});function ho(){let e=(0,se.useContext)(go);if(!e)throw new Error("useSidebar must be used within Sidebar");return e}function bo(){let e=(0,se.useContext)(mo);if(!e)throw new Error("useSidebarTab must be used within a Sidebar tab renderContent tree");return e}var Ee=require("react"),vo=require("react-dom");var Me=require("react/jsx-runtime");function lr(e,t,n=!1,o=8){switch(t){case"left":return n?{right:window.innerWidth-e.left+o,top:e.top}:{left:e.right+o,top:e.top};case"right":return n?{left:e.right+o,top:e.top}:{right:window.innerWidth-e.left+o,top:e.top};case"top":return n?{top:e.bottom+o,right:window.innerWidth-e.right}:{top:e.bottom+o,left:e.left};case"bottom":return n?{bottom:window.innerHeight-e.top+o,right:window.innerWidth-e.right}:{bottom:window.innerHeight-e.top+o,left:e.left}}}function dr({item:e,position:t,toolbar:n}){let[o,m]=(0,Ee.useState)(!1),[s,I]=(0,Ee.useState)(null),b=(0,Ee.useRef)(null),T=(0,Ee.useRef)(null),w=e.activeItemId!==void 0,x=w?e.activeItemId:n.getActiveInGroup(e.id),v=e.items.find(d=>!("type"in d)&&d.id===x),S=x!==null,E=v?.icon??e.defaultIcon,W=v?.label??e.label,D=()=>{e.disabled||(!o&&b.current&&I(b.current.getBoundingClientRect()),m(d=>!d))};return(0,Ee.useLayoutEffect)(()=>{if(!o||!T.current)return;let d=T.current,L=d.getBoundingClientRect(),R=8;L.right>window.innerWidth-R&&(d.style.left=`${Math.max(R,window.innerWidth-L.width-R)}px`,d.style.right="auto"),L.left<R&&(d.style.left=`${R}px`,d.style.right="auto"),L.bottom>window.innerHeight-R&&(d.style.top=`${Math.max(R,window.innerHeight-L.height-R)}px`,d.style.bottom="auto"),L.top<R&&(d.style.top=`${R}px`,d.style.bottom="auto")},[o]),(0,Ee.useEffect)(()=>{if(!o)return;let d=L=>{let R=L.target;b.current?.contains(R)||T.current?.contains(R)||m(!1)};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[o]),(0,Ee.useEffect)(()=>{if(!o)return;let d=L=>{L.key==="Escape"&&m(!1)};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[o]),(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)("button",{ref:b,type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-group${S?" rdd-active":""}`,title:W,"aria-label":W,"aria-expanded":o,"aria-haspopup":"menu",disabled:e.disabled,onClick:D,children:E}),o&&s&&(0,vo.createPortal)((0,Me.jsx)("div",{ref:T,className:`rdd-toolbar-group-flyout rdd-${t}`,style:lr(s,t,document.documentElement.dir==="rtl"),role:"menu",children:e.items.map((d,L)=>{if("type"in d)return(0,Me.jsx)("div",{className:"rdd-toolbar-group-flyout-sep",role:"separator"},`sep-${L}`);let R=x===d.id;return(0,Me.jsxs)("button",{type:"button",className:`rdd-toolbar-group-flyout-item${R?" rdd-active":""}`,disabled:d.disabled,role:"menuitem","aria-pressed":R,onClick:()=>{w?e.onActiveItemChange?.(d.id):n.setActiveInGroup(e.id,d.id),d.onActivate?.(d.id),m(!1)},children:[(0,Me.jsx)("span",{className:"rdd-toolbar-group-flyout-icon",children:d.icon}),(0,Me.jsx)("span",{className:"rdd-toolbar-group-flyout-label",children:d.label}),d.shortcut&&(0,Me.jsx)("span",{className:"rdd-toolbar-group-flyout-shortcut",children:d.shortcut})]},d.id)})}),document.body)]})}function cr(e,t,n,o){switch(e.type){case"separator":return(0,Me.jsx)("div",{className:"rdd-toolbar-separator",role:"separator"},`sep-${t}`);case"action":return(0,Me.jsx)("button",{type:"button",className:"rdd-toolbar-btn rdd-toolbar-btn-action",title:e.label,"aria-label":e.label,disabled:e.disabled,onClick:e.onClick,children:e.icon},e.id);case"radio":{let m=n.getActiveInGroup(e.group)===e.id;return(0,Me.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-radio${m?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":m,disabled:e.disabled,onClick:()=>{n.setActiveInGroup(e.group,e.id),e.onActivate?.(e.id)},children:e.icon},e.id)}case"toggle":{let m=e.active!==void 0,s=m?e.active:n.isModifierActive(e.id);return(0,Me.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-toggle${s?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":s,disabled:e.disabled,onClick:()=>{m||n.toggleModifier(e.id),e.onToggle?.(!s)},children:e.icon},e.id)}case"group":return(0,Me.jsx)(dr,{item:e,position:o,toolbar:n},e.id)}}var yo=(0,Ee.forwardRef)(function({position:t="left",items:n,visible:o,onVisibilityChange:m,className:s,style:I},b){let T=_t(),w=t==="left"||t==="right";(0,Ee.useImperativeHandle)(b,()=>({show:()=>m?.(!0),hide:()=>m?.(!1),toggle:()=>m?.(o===!1)}),[o,m]);let x=o!==!1?{}:w?{width:"0px"}:{height:"0px"};return(0,Me.jsx)("div",{className:`rdd-toolbar-strip rdd-${t}${s?` ${s}`:""}`,role:"toolbar","aria-orientation":w?"vertical":"horizontal",style:{...x,...I},children:n.map((v,S)=>cr(v,S,T,t))})});var be=require("react"),Sn=require("react-dom"),ue=require("react/jsx-runtime"),kn=class{listeners=new Set;counter=0;subscribe(t){this.listeners.add(t)}unsubscribe(t){this.listeners.delete(t)}show(t,n={}){let o=n.id??`toast-${++this.counter}`;return this.emit({kind:"show",id:o,message:t,rawOpts:{...n,id:o}}),o}update(t,n,o){this.emit({kind:"update",id:t,message:n,patch:o})}dismiss(t){this.emit({kind:"dismiss",id:t})}emit(t){this.listeners.forEach(n=>n(t))}},Ne=new kn,Po=Object.assign((e,t)=>Ne.show(e,t),{info:(e,t)=>Ne.show(e,{...t,type:"info"}),success:(e,t)=>Ne.show(e,{...t,type:"success"}),warning:(e,t)=>Ne.show(e,{...t,type:"warning"}),error:(e,t)=>Ne.show(e,{...t,type:"error"}),dismiss:e=>Ne.dismiss(e),promise:(e,t,n)=>{let o=Ne.show(t.pending,{...n,type:"info",duration:0});return e.then(m=>{let s=typeof t.success=="function"?t.success(m):t.success;Ne.update(o,s,{type:"success",duration:n?.duration??5e3})},m=>{let s=typeof t.error=="function"?t.error(m):t.error;Ne.update(o,s,{type:"error",duration:n?.duration??5e3})}),e}}),ur=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ue.jsx)("path",{d:"M8 5v.01M8 7.5v3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),pr=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ue.jsx)("path",{d:"M5 8l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),gr=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("path",{d:"M8 2.5L14 13.5H2L8 2.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),(0,ue.jsx)("path",{d:"M8 7v2.5M8 11.5v.01",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),mr=()=>(0,ue.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ue.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ue.jsx)("path",{d:"M5.5 5.5l5 5M10.5 5.5l-5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),fr=()=>(0,ue.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:(0,ue.jsx)("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),hr={info:(0,ue.jsx)(ur,{}),success:(0,ue.jsx)(pr,{}),warning:(0,ue.jsx)(gr,{}),error:(0,ue.jsx)(mr,{})};function br({id:e,message:t,options:n,exiting:o,isLeft:m,showProgress:s,pauseOnHover:I,animation:b,onDismiss:T,onExited:w}){let x=(0,be.useRef)(null),v=(0,be.useRef)(null),S=(0,be.useRef)(n.duration),E=(0,be.useRef)(0),[W,D]=(0,be.useState)(!1),d=b==="none"?"rdd-toast--visible":b==="fade"?"rdd-toast--fade-entering":m?"rdd-toast--entering-left":"rdd-toast--entering",[L,R]=(0,be.useState)(d);(0,be.useLayoutEffect)(()=>{x.current&&(x.current.style.maxHeight=`${x.current.offsetHeight}px`)},[]),(0,be.useEffect)(()=>{if(b==="none")return;let l=requestAnimationFrame(()=>R("rdd-toast--visible"));return()=>cancelAnimationFrame(l)},[]);let z=(0,be.useCallback)(l=>{l<=0||(E.current=Date.now(),v.current=setTimeout(()=>T(e),l))},[e,T]);(0,be.useEffect)(()=>(v.current&&clearTimeout(v.current),S.current=n.duration,z(n.duration),()=>{v.current&&clearTimeout(v.current)}),[n.duration,z]),(0,be.useEffect)(()=>{if(!o)return;let l=x.current;if(!l||b==="none"){w(e);return}let N=q=>{q.propertyName==="max-height"&&w(e)};l.addEventListener("transitionend",N);let Y=setTimeout(()=>w(e),520);return()=>{l.removeEventListener("transitionend",N),clearTimeout(Y)}},[o,e,w,b]);let g=()=>{!I||n.duration===0||(v.current&&(clearTimeout(v.current),v.current=null,S.current=Math.max(0,S.current-(Date.now()-E.current))),D(!0))},P=()=>{!I||n.duration===0||(D(!1),z(S.current))},H=["rdd-toast",n.type&&`rdd-toast--${n.type}`,L,o&&"rdd-toast--exiting",W&&"rdd-toast--paused"].filter(Boolean).join(" "),$=n.icon!==void 0?n.icon:n.type?hr[n.type]:null;return(0,ue.jsxs)("div",{ref:x,role:"status","aria-live":"polite",className:H,onMouseEnter:g,onMouseLeave:P,children:[$&&$,(0,ue.jsx)("div",{className:"rdd-toast__body",children:n.content!==void 0?n.content:t}),n.closable&&(0,ue.jsx)("button",{type:"button",className:"rdd-toast__close",onClick:()=>T(e),"aria-label":"Close notification",children:(0,ue.jsx)(fr,{})}),s&&n.duration>0&&(0,ue.jsx)("div",{className:"rdd-toast__progress",style:{animationDuration:`${n.duration}ms`}})]})}function Tn(e,t,n){return{id:e.id,type:e.type??"info",duration:e.duration??t,closable:e.closable??n,icon:e.icon,content:e.content,onClose:e.onClose}}function xo({position:e="top-right",maxVisible:t=3,defaultDuration:n=5e3,defaultClosable:o=!0,pauseOnHover:m=!0,animation:s="slide",newestOnTop:I=!1,progressBar:b=!1,width:T=320,adapter:w}){let[x,v]=(0,be.useState)([]),S=(0,be.useRef)([]),E=(0,be.useRef)(x);E.current=x;let W=(0,be.useCallback)(z=>{v(g=>g.map(P=>P.id===z?{...P,exiting:!0}:P)),E.current.find(g=>g.id===z)?.options.onClose?.()},[]),D=(0,be.useCallback)(z=>{let g=S.current.shift()??null;v(P=>{let H=P.filter(l=>l.id!==z);if(!g)return H;let $=Tn(g.rawOpts,n,o);return[...H,{id:g.id,message:g.message,options:$,exiting:!1}]})},[n,o]);if((0,be.useEffect)(()=>{if(w)return;let z=g=>{if(g.kind==="show"){let P=Tn(g.rawOpts,n,o),H={id:g.id,message:g.message,options:P,exiting:!1},$={id:g.id,message:g.message,rawOpts:g.rawOpts};v(l=>l.find(q=>q.id===g.id)?l.map(q=>q.id===g.id?{...q,message:g.message,options:P}:q):l.filter(q=>!q.exiting).length<t?[...l,H]:(S.current.some(q=>q.id===$.id)||S.current.push($),l))}else g.kind==="update"?(v(P=>P.map(H=>{if(H.id!==g.id)return H;let $={...H.options,...g.patch,id:H.id};return{...H,message:g.message,options:$}})),S.current=S.current.map(P=>P.id!==g.id?P:{...P,message:g.message,rawOpts:{...P.rawOpts,...g.patch}})):g.kind==="dismiss"&&(g.id===void 0?(v(P=>P.map(H=>({...H,exiting:!0}))),S.current=[]):E.current.some(H=>H.id===g.id)?W(g.id):S.current=S.current.filter(H=>H.id!==g.id))};return Ne.subscribe(z),()=>Ne.unsubscribe(z)},[w,t,n,o,W]),(0,be.useEffect)(()=>{if(!w)return;let z=g=>{if(g.kind==="show"){let P=Tn(g.rawOpts,n,o);w.show(g.id,g.message,P)}else g.kind==="update"?w.update(g.id,g.message,g.patch):g.kind==="dismiss"&&w.dismiss(g.id)};return Ne.subscribe(z),()=>Ne.unsubscribe(z)},[w,n,o]),w){if(!w.Container)return null;let z=w.Container;return(0,Sn.createPortal)((0,ue.jsx)(z,{position:e}),document.body)}let d=e.endsWith("left"),L="";I===!0&&(L="rdd-toast-container--newest-top"),I===!1&&(L="rdd-toast-container--newest-bottom");let R=["rdd-toast-container",`rdd-toast-container--${e}`,L].filter(Boolean).join(" ");return(0,Sn.createPortal)((0,ue.jsx)("div",{className:R,style:{width:T},"aria-label":"Notifications","aria-live":"polite",children:x.map(z=>(0,ue.jsx)(br,{id:z.id,message:z.message,options:z.options,exiting:z.exiting,isLeft:d,showProgress:b,pauseOnHover:m,animation:s,onDismiss:W,onExited:D},z.id))}),document.body)}var X=mn(require("react"),1),wo=require("react-dom");var U=require("react/jsx-runtime"),vr=["top-left","top-right","bottom-left","bottom-right"],Ro=(0,X.createContext)(null),Mo=(0,X.createContext)(null),To=(0,X.createContext)(null),Qe=80;function yr(e,t,n){let o=e.getBoundingClientRect(),m=t-o.left,s=n-o.top;return m<Qe&&s<Qe?"top-left":m>o.width-Qe&&s<Qe?"top-right":m<Qe&&s>o.height-Qe?"bottom-left":m>o.width-Qe&&s>o.height-Qe?"bottom-right":null}function So({children:e,className:t,style:n}){let[o,m]=(0,X.useState)({}),[s,I]=(0,X.useState)({}),[b,T]=(0,X.useState)({"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]}),[w,x]=(0,X.useState)({}),[v,S]=(0,X.useState)(null),[E,W]=(0,X.useState)(null),[D,d]=(0,X.useState)(null),[L,R]=(0,X.useState)(()=>new Map),z=(0,X.useRef)(100),g=(0,X.useRef)(null),P=(0,X.useCallback)((J,F)=>(m(k=>({...k,[J]:F})),()=>m(k=>{let V={...k};return delete V[J],V})),[]),H=(0,X.useCallback)(J=>{z.current+=1;let F=z.current;I(k=>({...k,[J]:F})),d(J)},[]),$=(0,X.useCallback)((J,F)=>{T(k=>{let V={"top-left":k["top-left"].filter(B=>B!==J),"top-right":k["top-right"].filter(B=>B!==J),"bottom-left":k["bottom-left"].filter(B=>B!==J),"bottom-right":k["bottom-right"].filter(B=>B!==J)};return V[F]=[...V[F],J],V})},[]),l=(0,X.useCallback)(J=>{T(F=>({"top-left":F["top-left"].filter(k=>k!==J),"top-right":F["top-right"].filter(k=>k!==J),"bottom-left":F["bottom-left"].filter(k=>k!==J),"bottom-right":F["bottom-right"].filter(k=>k!==J)}))},[]),N=(0,X.useCallback)((J,F)=>{x(k=>k[J]===F?k:{...k,[J]:F})},[]),Y=(0,X.useCallback)((J,F)=>{R(k=>{let V=new Map(k);return V.set(J,F),V})},[]),q=(0,X.useCallback)(J=>{R(F=>{let k=new Map(F);return k.delete(J),k})},[]),Z=(0,X.useCallback)(()=>{R(new Map)},[]),pe=(0,X.useMemo)(()=>Array.from(L.keys()),[L]),ee=(0,X.useMemo)(()=>({registerToolbar:P,insetTop:o.top??0,insetBottom:o.bottom??0}),[P,o]),Pe=(0,X.useMemo)(()=>({managedWindowIds:pe,openManaged:Y,closeManaged:q,closeAllManaged:Z}),[pe,Y,q,Z]),ne=(0,X.useMemo)(()=>({topId:D,zOrders:s,focusWindow:H,containerRef:g,stacks:b,dockedSizes:w,dockWindow:$,undockWindow:l,reportDockedSize:N,draggingId:v,setDraggingId:S,hoveredZone:E,setHoveredZone:W,insetTop:o.top??0,insetBottom:o.bottom??0}),[D,s,H,b,w,$,l,N,v,E,o]);return(0,U.jsx)(Ro.Provider,{value:ee,children:(0,U.jsx)(Mo.Provider,{value:Pe,children:(0,U.jsx)(To.Provider,{value:ne,children:(0,U.jsxs)("div",{ref:g,className:`rdd-panel-overlay-root${v!==null?" rdd-dragging-active":""}${t?" "+t:""}`,style:n,children:[e,v!==null&&(0,U.jsx)(Pr,{hoveredZone:E}),Array.from(L.entries()).map(([J,F])=>(0,U.jsx)(In,{id:J,title:F.title,icon:F.icon,open:!0,onClose:()=>q(J),defaultAnchor:F.anchor??"top-right",defaultWidth:F.width??320,defaultHeight:F.height??240,children:F.content},J))]})})})})}function Pr({hoveredZone:e}){return(0,U.jsx)(U.Fragment,{children:vr.map(t=>(0,U.jsx)("div",{className:`rdd-panel-float-dropzone rdd-panel-float-dropzone--${t}${e===t?" rdd-panel-float-dropzone--hovered":""}`,"aria-hidden":"true"},t))})}function ko({position:e,variant:t="transparent",buttonVariant:n="ghost",buttonSize:o,style:m,className:s,children:I}){let b=(0,X.useContext)(Ro),T=(0,X.useRef)(null),w=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>{let W=T.current;if(!W||!b)return;let D=e==="top"||e==="bottom"?W.offsetHeight:W.offsetWidth;return w.current?.(),w.current=b.registerToolbar(e,D),()=>{w.current?.(),w.current=null}},[e,b?.registerToolbar]);let x={position:"absolute",zIndex:5,pointerEvents:"none",boxSizing:"border-box"};e==="top"?(x.top=0,x.left=0,x.right=0):e==="bottom"?(x.bottom=0,x.left=0,x.right=0):e==="left"?(x.insetInlineStart=0,x.top=b?.insetTop??0,x.bottom=b?.insetBottom??0):(x.insetInlineEnd=0,x.top=b?.insetTop??0,x.bottom=b?.insetBottom??0);let S=e==="left"||e==="right"?{...(b?.insetTop??0)>0?{paddingTop:0}:{},...(b?.insetBottom??0)>0?{paddingBottom:0}:{}}:{},E=o!=null?{"--rdd-panel-toolbar-btn-size":`${o}px`}:{};return(0,U.jsx)("div",{ref:T,className:`rdd-panel-toolbar rdd-panel-toolbar--${e}${s?" "+s:""}`,"data-variant":t,"data-btn-variant":n,style:{...x,...S,...E,...m},children:I})}function Io({icon:e,onClick:t,disabled:n,title:o,variant:m}){return(0,U.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:t,disabled:n,title:o,"aria-label":o,...m?{"data-variant":m}:{},children:e})}function Eo({icon:e,active:t,onToggle:n,disabled:o,title:m,variant:s}){return(0,U.jsx)("button",{type:"button",className:`rdd-panel-toolbar-btn${t?" rdd-panel-toolbar-btn--active":""}`,onClick:n,disabled:o,title:m,"aria-label":m,"aria-pressed":t,...s?{"data-variant":s}:{},children:e})}function Lo(){return(0,U.jsx)("span",{className:"rdd-panel-toolbar__sep","aria-hidden":"true"})}function zo(){return(0,U.jsx)("span",{className:"rdd-panel-toolbar__spacer","aria-hidden":"true"})}function No({children:e}){return(0,U.jsx)("span",{className:"rdd-panel-toolbar__item",children:e})}function Do({children:e}){return(0,U.jsx)("div",{className:"rdd-panel-toolbar__center",children:e})}function Wo({placeholder:e="Search\u2026",onSearch:t,onSelect:n}){let[o,m]=(0,X.useState)(!1),[s,I]=(0,X.useState)(""),[b,T]=(0,X.useState)([]),[w,x]=(0,X.useState)(null),v=(0,X.useRef)(null),S=(0,X.useRef)(null),E=(0,X.useRef)(null),W=(0,X.useRef)(null),D=()=>{m(!0),setTimeout(()=>S.current?.focus(),0)},d=()=>{m(!1),I(""),T([]),x(null),E.current?.abort(),W.current&&clearTimeout(W.current)},L=$=>{let l=$.target.value;if(I(l),E.current?.abort(),W.current&&clearTimeout(W.current),!l.trim()){T([]),x(null);return}W.current=setTimeout(async()=>{let N=new AbortController;E.current=N;try{let Y=await t(l,N.signal);if(!N.signal.aborted){T(Y);let q=v.current;if(q&&Y.length>0){let Z=q.getBoundingClientRect(),pe=Math.max(Z.width,240),ee=Z.left;ee+pe>window.innerWidth-8&&(ee=window.innerWidth-pe-8),x({top:Z.bottom+4,left:ee,width:pe})}else x(null)}}catch{}},300)},R=$=>{n($),d()},z=$=>{v.current?.contains($.relatedTarget)||d()},g=$=>{$.key==="Escape"&&d()},P=(0,X.useMemo)(()=>{let $={};for(let l of b){let N=l.group??"";$[N]||($[N]=[]),$[N].push(l)}return $},[b]),H=(0,U.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,U.jsx)("circle",{cx:"6.5",cy:"6.5",r:"4.5"}),(0,U.jsx)("line",{x1:"10",y1:"10",x2:"14",y2:"14"})]});return o?(0,U.jsxs)("div",{ref:v,className:"rdd-panel-toolbar-search rdd-panel-toolbar-search--open",onBlur:z,children:[(0,U.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:d,"aria-label":"Close search",title:"Close search",children:H}),(0,U.jsx)("input",{ref:S,className:"rdd-panel-toolbar-search__input",type:"text",value:s,onChange:L,onKeyDown:g,placeholder:e,autoComplete:"off"}),w&&b.length>0&&(0,wo.createPortal)((0,U.jsx)("div",{className:"rdd-panel-toolbar-search__dropdown",style:{position:"fixed",top:w.top,left:w.left,width:w.width,zIndex:9502},onMouseDown:$=>$.preventDefault(),children:Object.entries(P).map(([$,l])=>(0,U.jsxs)(X.default.Fragment,{children:[$&&(0,U.jsx)("div",{className:"rdd-panel-toolbar-search__group",children:$}),l.map(N=>(0,U.jsxs)("button",{type:"button",className:"rdd-panel-toolbar-search__item",onClick:()=>R(N),children:[N.icon&&(0,U.jsx)("span",{className:"rdd-panel-toolbar-search__item-icon",children:N.icon}),(0,U.jsx)("span",{className:"rdd-panel-toolbar-search__item-label",children:N.label}),N.description&&(0,U.jsx)("span",{className:"rdd-panel-toolbar-search__item-desc",children:N.description})]},N.id))]},$||"__default__"))}),document.body)]}):(0,U.jsx)("div",{ref:v,className:"rdd-panel-toolbar-search",children:(0,U.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:D,title:"Search","aria-label":"Search",children:H})})}function In(e){let t=(0,X.useContext)(To);return e.open?(0,U.jsx)(Rr,{ctx:t,...e},e.id):null}var xr=120,Cr=60,Co=8,wr=8;function Rr({id:e,title:t,icon:n,defaultAnchor:o,defaultWidth:m,defaultHeight:s,children:I,ctx:b,onClose:T}){let w=(0,X.useContext)(xt)?.isRtl??!1,[x,v]=(0,X.useState)("docked"),[S,E]=(0,X.useState)(o),[W,D]=(0,X.useState)(null),[d,L]=(0,X.useState)({w:m,h:s}),R=(0,X.useRef)(null),z=(0,X.useRef)(x);z.current=x;let g=(0,X.useRef)(W);g.current=W;let P=(0,X.useRef)(d);P.current=d;let H=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>(b?.dockWindow(e,o),()=>{b?.undockWindow(e)}),[]),(0,X.useEffect)(()=>{b?.reportDockedSize(e,d.h)},[d.h]);let $=b?.zOrders[e]??101,l=!b||b.topId===e,N=()=>{let F=R.current?.offsetParent;return{cw:F?.clientWidth??9999,ch:F?.clientHeight??9999}},Y=()=>{b?.focusWindow(e)},q=F=>{if(F.button!==0)return;F.preventDefault();let k,V;if(z.current==="docked"){let B=R.current,le=b?.containerRef?.current;if(B&&le){let fe=B.getBoundingClientRect(),ve=le.getBoundingClientRect();k=fe.left-ve.left,V=fe.top-ve.top}else k=Co,V=b?.insetTop??0;b?.undockWindow(e),v("free"),D({x:k,y:V})}else k=g.current?.x??0,V=g.current?.y??0;H.current={mouseX:F.clientX,mouseY:F.clientY,posX:k,posY:V,hasDragged:!1},R.current?.setPointerCapture(F.pointerId),document.body.classList.add("rdd-dragging-active")},Z=F=>k=>{if(k.button!==0)return;k.preventDefault(),k.stopPropagation();let V=0,B=0;if(z.current==="free")V=g.current?.x??0,B=g.current?.y??0;else{let fe=R.current,ve=fe?.offsetParent;if(fe&&ve){let xe=fe.getBoundingClientRect(),Le=ve.getBoundingClientRect();V=xe.left-Le.left,B=xe.top-Le.top}}let le={x:V,y:B,w:P.current.w,h:P.current.h};Ge({element:k.currentTarget,pointerId:k.pointerId,startClientX:k.clientX,startClientY:k.clientY,captureStart:()=>le,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(fe,ve,xe)=>{let{cw:Le,ch:De}=N(),{x:Ae,y:et,w:tt,h:nt}=Tt(F,fe,ve,xe,{minW:xr,minH:Cr,maxW:Le-xe.x,maxH:De-xe.y,minX:0,minY:0});L({w:tt,h:nt}),z.current==="free"&&D({x:Ae,y:et})}})},pe=F=>{if(H.current){let k=H.current;if(!k.hasDragged){if(Math.abs(F.clientX-k.mouseX)+Math.abs(F.clientY-k.mouseY)<4)return;k.hasDragged=!0,b?.setDraggingId(e)}let{cw:V,ch:B}=N(),le=Math.max(0,Math.min(k.posX+F.clientX-k.mouseX,V-P.current.w)),fe=Math.max(0,Math.min(k.posY+F.clientY-k.mouseY,B-P.current.h));D({x:le,y:fe});let ve=b?.containerRef?.current;if(ve){let xe=yr(ve,F.clientX,F.clientY);b?.setHoveredZone(xe&&w?Ot(xe):xe)}}},ee=()=>{if(H.current){let F=b?.hoveredZone;F&&(b?.dockWindow(e,F),E(F),v("docked"),D(null)),b?.setHoveredZone(null),b?.setDraggingId(null)}document.body.classList.remove("rdd-dragging-active"),H.current=null},Pe=()=>{H.current&&(b?.setHoveredZone(null),b?.setDraggingId(null)),document.body.classList.remove("rdd-dragging-active"),H.current=null},ne;if(x==="docked"&&b){let F=b.stacks[S]??[],k=F.indexOf(e),V=0;for(let B=0;B<k;B++)V+=(b.dockedSizes[F[B]]??s)+wr;ne={width:d.w,height:d.h,zIndex:$,transition:"top 0.2s ease, bottom 0.2s ease",opacity:k===-1?0:void 0,pointerEvents:k===-1?"none":void 0},ne[S.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]=Co,S.startsWith("top-")?ne.top=b.insetTop+V:ne.bottom=b.insetBottom+V}else ne={left:W?.x??0,top:W?.y??0,width:d.w,height:d.h,zIndex:$};return(0,U.jsxs)("div",{ref:R,dir:w?"rtl":"ltr",className:`rdd-panel-float${l?" rdd-panel-float--active":""}`,style:ne,onPointerDown:Y,onPointerMove:pe,onPointerUp:ee,onPointerCancel:Pe,children:[(0,U.jsxs)("div",{className:"rdd-panel-float__header",onPointerDown:q,children:[n&&(0,U.jsx)("span",{className:"rdd-panel-float__icon",children:n}),(0,U.jsx)("span",{className:"rdd-panel-float__title",children:t}),(0,U.jsx)("button",{type:"button",className:"rdd-panel-float__close",onClick:T,onPointerDown:F=>F.stopPropagation(),title:"Close","aria-label":"Close",children:(0,U.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,U.jsx)("line",{x1:"1",y1:"1",x2:"9",y2:"9"}),(0,U.jsx)("line",{x1:"9",y1:"1",x2:"1",y2:"9"})]})})]}),(0,U.jsx)("div",{className:"rdd-panel-float__body",children:I}),x==="free"&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-n",onPointerDown:Z("n")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-ne",onPointerDown:Z("ne")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-nw",onPointerDown:Z("nw")})]}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-e",onPointerDown:Z("e")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-se",onPointerDown:Z("se")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-s",onPointerDown:Z("s")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-sw",onPointerDown:Z("sw")}),(0,U.jsx)("div",{className:"rdd-resize-handle rdd-resize-w",onPointerDown:Z("w")})]})}function Oo(){let[e,t]=(0,X.useState)(!1),n=(0,X.useCallback)(()=>{t(!0)},[]),o=(0,X.useCallback)(()=>{t(!1)},[]);return{isOpen:e,open:n,close:o}}var Mr=[];function Ao(){let e=(0,X.useContext)(Mo),t=e?.managedWindowIds??Mr;return(0,X.useMemo)(()=>({open:(n,o)=>e?.openManaged(n,o),close:n=>e?.closeManaged(n),closeAll:()=>e?.closeAllManaged(),isOpen:n=>t.includes(n),openIds:t}),[e,t])}0&&(module.exports={ConfirmationForm,ContextMenu,ContextMenuProvider,DefaultContextMenuAdapter,DockableDesktopProvider,FormContainerContext,FormContainerProvider,LeftPanelRenderer,ModalStackRenderer,PanelContributionProvider,PanelFloatingWindow,PanelOverlayRoot,PanelProvider,PanelRegistry,PanelRegistryClass,PanelToolbar,PanelToolbarItem,PanelToolbarSeparator,RightPanelRenderer,SidePanelRenderer,Sidebar,ToastContainer,Toolbar,ToolbarButton,ToolbarCenter,ToolbarProvider,ToolbarSearchInput,ToolbarSpacer,ToolbarToggle,WindowManager,WindowManagerProvider,WorkspaceClient,computeResizedRect,defaultPredefinedMessages,formatLabel,isSerializable,sidebarSectionToTab,startPointerDrag,toast,useActivePanelContribution,useColorScheme,useFormContainer,useFormatMessage,useMergedSidebarTabs,useMergedToolbarItems,usePanelActions,usePanelContext,usePanelContextMenu,usePanelContribution,usePanelFloatingWindow,usePanelFloatingWindowManager,usePanelId,usePanelSize,usePanelState,usePredefinedMessages,useRegistry,useShowContextMenu,useSidebar,useSidebarTab,useStyleClasses,useToolbar,useWindowManagerActions,useWindowManagerState});
24
24
  //# sourceMappingURL=index.cjs.map