react-dockable-desktop 5.3.1 → 5.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
- "use strict";var Bo=Object.create;var Kt=Object.defineProperty;var $o=Object.getOwnPropertyDescriptor;var Go=Object.getOwnPropertyNames;var Yo=Object.getPrototypeOf,Xo=Object.prototype.hasOwnProperty;var Vo=(e,t)=>{for(var n in t)Kt(e,n,{get:t[n],enumerable:!0})},Ln=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let g of Go(t))!Xo.call(e,g)&&g!==n&&Kt(e,g,{get:()=>t[g],enumerable:!(o=$o(t,g))||o.enumerable});return e};var qt=(e,t,n)=>(n=e!=null?Bo(Yo(e)):{},Ln(t||!e||!e.__esModule?Kt(n,"default",{value:e,enumerable:!0}):n,e)),Ko=e=>Ln(Kt({},"__esModule",{value:!0}),e);var Ir={};Vo(Ir,{ConfirmationForm:()=>nt,ContextMenu:()=>Qt,ContextMenuProvider:()=>en,DefaultContextMenuAdapter:()=>gt,DockableDesktopProvider:()=>ao,FormContainerContext:()=>jt,FormContainerProvider:()=>Qe,LeftPanelRenderer:()=>co,ModalStackRenderer:()=>lo,PanelContributionProvider:()=>ln,PanelFloatingWindow:()=>In,PanelOverlayRoot:()=>Io,PanelProvider:()=>nn,PanelRegistry:()=>Wt,PanelRegistryClass:()=>ut,PanelToolbar:()=>Lo,PanelToolbarItem:()=>Oo,PanelToolbarSeparator:()=>Do,RightPanelRenderer:()=>uo,SidePanelRenderer:()=>po,Sidebar:()=>vo,ToastContainer:()=>Ro,Toolbar:()=>Co,ToolbarButton:()=>No,ToolbarCenter:()=>Ao,ToolbarProvider:()=>Ht,ToolbarSearchInput:()=>Fo,ToolbarSpacer:()=>Wo,ToolbarToggle:()=>zo,WindowManager:()=>Qn,WindowManagerProvider:()=>Ut,WorkspaceClient:()=>an,computeResizedRect:()=>kt,defaultPredefinedMessages:()=>Ct,formatLabel:()=>me,isSerializable:()=>pt,sidebarSectionToTab:()=>Mn,startPointerDrag:()=>qe,toast:()=>wo,useActivePanelContribution:()=>dn,useColorScheme:()=>rn,useFormContainer:()=>ct,useFormatMessage:()=>_e,useMergedSidebarTabs:()=>ro,useMergedToolbarItems:()=>oo,usePanelActions:()=>tt,usePanelContext:()=>Bn,usePanelContextMenu:()=>$n,usePanelContribution:()=>no,usePanelFloatingWindow:()=>_o,usePanelFloatingWindowManager:()=>Ho,usePanelId:()=>Ot,usePanelSize:()=>Nn,usePanelState:()=>Ke,usePredefinedMessages:()=>Be,useRegistry:()=>Rt,useShowContextMenu:()=>Xn,useSidebar:()=>yo,useSidebarTab:()=>Po,useStyleClasses:()=>Ve,useToolbar:()=>Bt,useWindowManagerActions:()=>Mt,useWindowManagerState:()=>Ae});module.exports=Ko(Ir);var V=qt(require("react"),1),xn=require("react-dom");var O=require("react");var xt=require("react"),qo={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:()=>()=>{}},jt=(0,xt.createContext)(qo),Qe=jt.Provider,ct=()=>(0,xt.useContext)(jt),Nn=()=>{let{onResize:e,getDimensions:t}=ct();return(0,xt.useSyncExternalStore)(n=>e?e(()=>n()):()=>{},()=>t?t():null)};var ut=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())}},Wt=new ut;var Ct={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 pt(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(pt);let n=Object.getPrototypeOf(e);return n!==Object.prototype&&n!==null?!1:Object.values(e).every(pt)}var et=require("react/jsx-runtime"),wt=(0,O.createContext)(null),Zt=(0,O.createContext)(null),Wn=(0,O.createContext)(null),On=(0,O.createContext)(null),An=(0,O.createContext)(Ct),Fn=(0,O.createContext)({}),Ve=()=>(0,O.useContext)(Fn),_n=(0,O.createContext)(Wt),Rt=()=>(0,O.useContext)(_n),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))}},jo={type:"leaf",id:"group-default",panels:[],activePanelId:null};function Hn(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:g,stickyBottom:l,...D}=n;return{...D,anchor:o}}return n});return{gridRoot:e.gridRoot,floating:t,minimized:e.minimized,panels:e.panels}}function Zo(e){if(e)try{let t=Hn(JSON.parse(e));if(t)return{...t,activePanelId:Object.keys(t.panels)[0]??null}}catch{}return{gridRoot:jo,floating:[],minimized:[],panels:{},activePanelId:null}}var Ut=({children:e,client:t,formatMessage:n,predefinedMessages:o,dir:g,modalClass:l,modalBodyClass:D,sidePanelClass:b,sidePanelBodyClass:M,windowClass:P,windowBodyClass:C,zIndexBase:v})=>{let S=(0,O.useRef)(t?.registry??Wt).current,L=t?.config.formatMessage??n,N=t?.config.predefinedMessages??o,W=t?.config.dir??g,c=t?.config.zIndexBase??v??1e3,[E,w]=(0,O.useState)(()=>({...Zo(t?.initialState??null),draggedPanelId:null,dir:W||"ltr",isRtl:W==="rtl",splitRatio:Math.min(.9,Math.max(.1,t?.config.defaultSplitRatio??.5)),edgeSplitRatio:Math.min(.9,Math.max(.1,t?.config.defaultEdgeSplitRatio??.2))})),k=(0,O.useRef)(E);k.current=E;let m=(0,O.useRef)(new Set);(0,O.useEffect)(()=>{m.current.forEach(i=>i())},[E]);let R=(0,O.useCallback)(()=>k.current,[]),H=(0,O.useCallback)(i=>(m.current.add(i),()=>m.current.delete(i)),[]),B=(0,O.useRef)({}),s=(0,O.useRef)({}),z=(0,O.useMemo)(()=>({...Ct,...N}),[N]),Y=(0,O.useRef)(new fn),K=(0,O.useRef)(c);(0,O.useEffect)(()=>(document.documentElement.style.setProperty("--rdd-z-base",String(c)),()=>{document.documentElement.style.removeProperty("--rdd-z-base")}),[c]);let Q=(0,O.useCallback)((i,y)=>Y.current.subscribe(i,y),[]),ae=(0,O.useCallback)((i,y)=>{Y.current.publish(i,y)},[]),te=(0,O.useCallback)((i,y)=>{let d=typeof i.x=="string"?parseFloat(i.x):i.x,a=typeof i.y=="string"?parseFloat(i.y):i.y,$=typeof i.width=="string"?parseFloat(i.width):i.width,r=typeof i.height=="string"?parseFloat(i.height):i.height;isNaN(d)&&(d=300),isNaN(a)&&(a=150),isNaN($)&&($=450),isNaN(r)&&(r=350);let x=T=>y.some(A=>{let F=typeof A.x=="string"?parseFloat(A.x):A.x,U=typeof A.y=="string"?parseFloat(A.y):A.y;return!A.maximized&&Math.abs(F-T.x)<20&&Math.abs(U-T.y)<20}),u=0;for(;x({x:d,y:a})&&u<10;)d+=30,a+=30,u++;let p=Math.max(100,window.innerWidth||1024),h=Math.max(100,window.innerHeight||768);return(d+$>p||a+r>h)&&(d=100+u%5*30,a=100+u%5*30),d=Math.max(0,Math.min(d,p-100)),a=Math.max(0,Math.min(a,h-40)),{x:d,y:a,width:$,height:r}},[]),ye=(0,O.useCallback)(i=>{w(y=>{let d=y.panels[i];if(!d)return y;if(d.state==="floating"){let a=y.floating.find(r=>r.id===i);if(!a)return y;let $=!y.floating.some(r=>r.z>a.z);return $&&y.activePanelId===i?y:($||(K.current+=1),{...y,floating:y.floating.map(r=>r.id===i?{...r,z:$?a.z:K.current}:r),activePanelId:i})}else if(d.state==="docked"){if(y.activePanelId===i)return y;let a=$=>$.type==="leaf"?$.panels.includes(i)?{...$,activePanelId:i}:$:{...$,children:$.children.map(a)};return{...y,gridRoot:a(y.gridRoot),activePanelId:i}}return y.activePanelId===i?y:{...y,activePanelId:i}})},[]),se=(i,y)=>{if(i.type==="leaf"){let d=i.panels.indexOf(y);if(d===-1)return i;let a=i.panels.filter(x=>x!==y),$=i.activePanelId===y?a[d]||a[d-1]||a[0]||null:i.activePanelId,r={...i,panels:a,activePanelId:$};return a.length===0&&!i.keepOnEmpty?null:r}else{let d=i.children.map(r=>se(r,y)).filter(r=>r!==null);if(d.length===0)return null;if(d.length===1)return d[0];let a=i.sizes.slice(0,d.length),$=a.reduce((r,x)=>r+x,0);return{...i,children:d,sizes:a.map(r=>r/$)}}},Z=(i,y,d)=>{if(i.type==="leaf"){if(i.id===y){let a=i.panels.includes(d)?i.panels:[...i.panels,d];return{...i,panels:a,activePanelId:d}}return i}else return{...i,children:i.children.map(a=>Z(a,y,d))}},_=i=>{if(i.type==="leaf")return i.id;for(let y of i.children){let d=_(y);if(d)return d}return null},I=(0,O.useCallback)((i,y,d)=>{let a=i;if(d?.dedupeKey!==void 0){let h=Object.values(k.current.panels).find(T=>T.component===y&&T.dedupeKey===d.dedupeKey);h&&(a=h.id)}let $=!(a in k.current.panels),r=a!==i,x=d?.focus!==!1,p=d?.props!==void 0?pt(d.props):!0;w(h=>{let T=h.panels[a],A=S.get(y),F=d?.title||d?.title||A?.defaultOptions?.title||a,U=d?.initialTarget||A?.defaultOptions?.initialTarget||"docked",re=A?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},q=x?a:h.activePanelId;if(T)if(T.state==="minimized"){let de=h.minimized.filter(ue=>ue.id!==a);if(U==="floating"||!h.gridRoot){K.current+=1;let ue=te(re,h.floating);return{...h,minimized:de,floating:[...h.floating,{...ue,id:a,z:K.current}],panels:{...h.panels,[a]:{...T,state:"floating"}},activePanelId:q}}else{let ue=_(h.gridRoot)||"group-default";return{...h,minimized:de,gridRoot:Z(h.gridRoot,ue,a),panels:{...h.panels,[a]:{...T,state:"docked"}},activePanelId:q}}}else{if(T.state==="floating")return x&&ye(a),h;{let de=ue=>ue.type==="leaf"?ue.panels.includes(a)?{...ue,activePanelId:a}:ue:{...ue,children:ue.children.map(de)};return{...h,gridRoot:de(h.gridRoot),activePanelId:q}}}let ce={id:a,title:F,component:y,state:U==="tabbed"?"docked":U,props:d?.props,serializable:p,dedupeKey:d?.dedupeKey},ie={...h.panels,[a]:ce};if(U==="floating"){K.current+=1;let de=te(re,h.floating),ue=d?.anchor??A?.defaultOptions?.defaultAnchor??null;return{...h,floating:[...h.floating,{...de,id:a,z:K.current,anchor:ue}],panels:ie,activePanelId:q}}else{let de=_(h.gridRoot)||"group-default";return{...h,gridRoot:Z(h.gridRoot,de,a),panels:ie,activePanelId:q}}}),$&&Y.current.publish("panel:opened",{id:a,component:y}),($||r)&&Y.current.publish("layout:changed",{})},[te,ye]),G=(0,O.useCallback)(i=>{let y=i in k.current.panels;w(d=>{let a=d.panels[i];if(!a||S.get(a.component)?.defaultOptions?.canClose===!1)return d;delete B.current[i],delete s.current[i];let r={...d.panels};delete r[i];let x=se(d.gridRoot,i);return{...d,gridRoot:x||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:d.floating.filter(u=>u.id!==i),minimized:d.minimized.filter(u=>u.id!==i),panels:r}}),y&&(Y.current.publish("panel:closed",{id:i}),Y.current.publish("layout:changed",{}))},[]),J=(0,O.useCallback)((i,y)=>{B.current[i]=y},[]),ve=(0,O.useCallback)(i=>{delete B.current[i]},[]),Ce=(0,O.useCallback)((i,y)=>{s.current[i]=y},[]),we=(0,O.useCallback)(i=>{delete s.current[i]},[]),Re=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];return $?{...a,panels:{...a.panels,[i]:{...$,dirty:y,dirtyOptions:d}}}:a})},[]),De=(0,O.useCallback)((i,y)=>{w(d=>{let a=d.panels[i];return a?{...d,panels:{...d.panels,[i]:{...a,title:y}}}:d})},[]),Oe=(0,O.useCallback)(async(i,y)=>{if(y?.force){G(i);return}let d=B.current[i];if(d&&!await d())return;let a=k.current.panels[i];if(a?.dirty)if(y?.onConfirm){if(!await y.onConfirm(a.dirtyOptions))return}else return;G(i)},[G]),We=(0,O.useCallback)(i=>{let y=k.current.panels[i]?.state!=="minimized"&&i in k.current.panels;w(d=>{let a=d.panels[i];if(!a||a.state==="minimized"||S.get(a.component)?.defaultOptions?.canMinimize===!1)return d;let r,x;if(a.state==="floating"){let p=d.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 T of h.children){let A=p(T);if(A)return A}return null};x=p(d.gridRoot)??void 0}let u=se(d.gridRoot,i);return{...d,gridRoot:u||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:d.floating.filter(p=>p.id!==i),minimized:[...d.minimized,{id:i,title:a.title,component:a.component}],panels:{...d.panels,[i]:{...a,state:"minimized",previousState:a.state,lastFloatingRect:r,lastLeafId:x}}}}),y&&(Y.current.publish("panel:minimized",{id:i}),Y.current.publish("layout:changed",{}))},[]),ee=(0,O.useCallback)(i=>{let y=k.current.panels[i]?.state==="minimized";w(d=>{let a=d.panels[i];if(!a||a.state!=="minimized")return d;let $=d.minimized.filter(x=>x.id!==i);if((a.previousState||"docked")==="floating"){K.current+=1;let x=S.get(a.component),u=a.lastFloatingRect||x?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},p=te(u,d.floating);return{...d,minimized:$,floating:[...d.floating,{...p,id:i,z:K.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...d.panels,[i]:{...a,state:"floating"}}}}else{let x=(T,A)=>T.type==="leaf"?T.id===A:T.children.some(F=>x(F,A)),u=a.lastLeafId&&x(d.gridRoot,a.lastLeafId),p=S.get(a.component),h=p?.defaultOptions?.canDrag!==!1;if(u)return{...d,minimized:$,gridRoot:Z(d.gridRoot,a.lastLeafId,i),panels:{...d.panels,[i]:{...a,state:"docked"}}};if(h){K.current+=1;let T=a.lastFloatingRect||p?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},A=te(T,d.floating);return{...d,minimized:$,floating:[...d.floating,{...A,id:i,z:K.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...d.panels,[i]:{...a,state:"floating"}}}}else{let T=_(d.gridRoot)||"group-default";return{...d,minimized:$,gridRoot:Z(d.gridRoot,T,i),panels:{...d.panels,[i]:{...a,state:"docked"}}}}}}),y&&(Y.current.publish("panel:restored",{id:i}),Y.current.publish("layout:changed",{}))},[te]),Me=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];if(!$||S.get($.component)?.defaultOptions?.canDrag===!1)return a;let x=S.get($.component),u=y||x?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},p=se(a.gridRoot,i);K.current+=1;let h=te(u,a.floating);return{...a,gridRoot:p||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:[...a.floating,{...h,id:i,z:K.current,anchor:d??null}],panels:{...a.panels,[i]:{...$,state:"floating"}}}})},[te]),Ie=(0,O.useCallback)((i,y)=>{w(d=>{let a=d.panels[i];if(!a)return d;let $=d.floating.filter(u=>u.id!==i),r=se(d.gridRoot,i),x=y||_(r||d.gridRoot)||"group-default";return{...d,gridRoot:Z(r||d.gridRoot,x,i),floating:$,panels:{...d.panels,[i]:{...a,state:"docked"}}}})},[]),$e=(i,y,d,a,$)=>{if(i.type==="leaf"){if(i.id===y){let r={type:"leaf",id:`group-split-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[d],activePanelId:d},x=a==="left"||a==="right"?"horizontal":"vertical",u=a==="left"||a==="top"?[r,i]:[i,r],p=a==="left"||a==="top"?[$,1-$]:[1-$,$];return{type:"branch",orientation:x,sizes:p,children:u}}return i}else return{...i,children:i.children.map(r=>$e(r,y,d,a,$))}},Ye=(0,O.useCallback)(i=>{w(y=>({...y,draggedPanelId:i}))},[]),Pe=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];if(!$)return a;let r=a.floating.filter(p=>p.id!==i),x=se(a.gridRoot,i),u;return d==="center"?u=Z(x||a.gridRoot,y,i):u=$e(x||a.gridRoot,y,i,d,a.splitRatio),{...a,gridRoot:u,floating:r,panels:{...a.panels,[i]:{...$,state:"docked"}},draggedPanelId:null}})},[]),ft=(0,O.useCallback)((i,y)=>{w(d=>{let a=d.panels[i];if(!a)return d;let $=d.floating.filter(A=>A.id!==i),r=se(d.gridRoot,i),x={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"?[x,r||d.gridRoot]:[r||d.gridRoot,x],h=d.edgeSplitRatio,T={type:"branch",orientation:u,sizes:y==="left"||y==="top"?[h,1-h]:[1-h,h],children:p};return{...d,gridRoot:T,floating:$,panels:{...d.panels,[i]:{...a,state:"docked"}},draggedPanelId:null}})},[]),$t=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];if(!$)return a;let r=se(a.gridRoot,i),x=h=>{if(h.type==="leaf"){if(h.id===y){let T=h.panels.filter(U=>U!==i),A=Math.max(0,Math.min(d,T.length)),F=[...T];return F.splice(A,0,i),{...h,panels:F,activePanelId:i}}return h}else return{...h,children:h.children.map(x)}},u=x(r||a.gridRoot),p=a.floating.filter(h=>h.id!==i);return{...a,gridRoot:u,floating:p,panels:{...a.panels,[i]:{...$,state:"docked"}},draggedPanelId:null}})},[]),ht=(0,O.useCallback)(i=>{w(y=>{let d=$=>{if($.type==="leaf")return $.id===i&&$.canClose!==!1?null:$;{let r=$.children.map(p=>d(p)).filter(p=>p!==null);if(r.length===0)return null;if(r.length===1)return r[0];let x=$.sizes.slice(0,r.length),u=x.reduce((p,h)=>p+h,0);return{...$,children:r,sizes:x.map(p=>p/u)}}},a=d(y.gridRoot);return{...y,gridRoot:a||{type:"leaf",id:"group-default",panels:[],activePanelId:null}}})},[]),Ze=(0,O.useCallback)(i=>{w(y=>({...y,floating:y.floating.map(d=>d.id===i?{...d,maximized:!d.maximized}:d)}))},[]),Lt=(0,O.useCallback)((i,y)=>{let d=(a,$)=>{if(a.type==="leaf")return a;if($===i.length)return{...a,sizes:y};let r=i[$],x=a.children.map((u,p)=>p===r?d(u,$+1):u);return{...a,children:x}};w(a=>({...a,gridRoot:d(a.gridRoot,0)}))},[]),Gt=(0,O.useCallback)((i,y)=>{w(d=>({...d,floating:d.floating.map(a=>a.id===i?{...a,...y}:a)}))},[]),Ue=(0,O.useCallback)(()=>{let i=k.current.panels,y=[],d={};for(let[u,p]of Object.entries(i)){let h=s.current[u],T=h?.(),A=h!==void 0&&T!==void 0,F=A?T:p.props,U=A?pt(T):p.serializable;U?d[u]=A?{...p,props:F,serializable:U}:p:y.push(u)}let a=k.current.gridRoot,$=k.current.floating,r=k.current.minimized;for(let u of y)a=se(a,u)||{type:"leaf",id:"group-default",panels:[],activePanelId:null},$=$.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:$,minimized:r,panels:d})},[]),Xe=(0,O.useCallback)(i=>{try{let y=Hn(JSON.parse(i));if(!y)return!1;let d=Object.keys(y.panels)[0]||null;return w(a=>({...a,gridRoot:y.gridRoot,floating:y.floating,minimized:y.minimized,panels:y.panels,draggedPanelId:null,activePanelId:d})),!0}catch(y){return console.error("Failed to parse layout configuration:",y),!1}},[]),Yt=(0,O.useCallback)(i=>{w(y=>y.activePanelId===i?y:{...y,activePanelId:i})},[]),Xt=(0,O.useCallback)(i=>{w(y=>y.dir===i?y:{...y,dir:i,isRtl:i==="rtl"})},[]),Nt=(0,O.useCallback)(i=>i in k.current.panels,[]),it=(0,O.useCallback)(()=>Object.keys(k.current.panels),[]),st=(0,O.useCallback)((i,y)=>Object.values(k.current.panels).find(a=>a.component===i&&a.dedupeKey===y)?.id??null,[]);(0,O.useEffect)(()=>{W&&w(i=>i.dir===W?i:{...i,dir:W,isRtl:W==="rtl"})},[W]);let Ge=(0,O.useRef)(new Map),Je=(0,O.useRef)(null),zt=(0,O.useCallback)(i=>(Je.current=i,()=>{Je.current=null}),[]),Vt=(0,O.useCallback)(i=>{Je.current?.(i)},[]),Dt=(0,O.useCallback)((i,y)=>(Ge.current.set(i,y),()=>{Ge.current.delete(i)}),[]),at=(0,O.useCallback)(i=>Ge.current.get(i)?.()??[],[]),bt=(0,O.useMemo)(()=>({openPanel:I,closePanel:G,minimizePanel:We,restorePanel:ee,floatPanel:Me,dockPanel:Ie,maximizePanel:Ze,updateSplitSizes:Lt,updateFloatingPosition:Gt,focusPanel:ye,isOpen:Nt,getOpenPanelIds:it,findPanelId:st,saveLayout:Ue,loadLayout:Xe,publish:ae,subscribe:Q,setDraggedPanelId:Ye,dockPanelToGroup:Pe,movePanelOrder:$t,closeLeafGroup:ht,registerCloseGuard:J,unregisterCloseGuard:ve,registerStateProvider:Ce,unregisterStateProvider:we,setPanelDirty:Re,updatePanelTitle:De,requestClosePanel:Oe,dockPanelToWorkspaceEdge:ft,setActivePanel:Yt,setDirection:Xt,registerPanelContextMenu:Dt,getPanelContextMenuItems:at,showContextMenu:Vt,registerContextMenuFn:zt}),[I,G,We,ee,Me,Ie,Ze,Lt,Gt,ye,Nt,it,st,Ue,Xe,ae,Q,Ye,Pe,$t,ht,J,ve,Ce,we,Re,De,Oe,ft,Yt,Xt,Dt,at,Vt,zt]),lt=i=>{let y=i.defaultMessage||i.id;return i.values&&Object.entries(i.values).forEach(([d,a])=>{y=y.replace(`{${d}}`,String(a))}),y},un=(0,O.useMemo)(()=>({modalClass:l,modalBodyClass:D,sidePanelClass:b,sidePanelBodyClass:M,windowClass:P,windowBodyClass:C}),[l,D,b,M,P,C]);(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 Go=Object.create;var Kt=Object.defineProperty;var Yo=Object.getOwnPropertyDescriptor;var Xo=Object.getOwnPropertyNames;var Vo=Object.getPrototypeOf,Ko=Object.prototype.hasOwnProperty;var qo=(e,t)=>{for(var n in t)Kt(e,n,{get:t[n],enumerable:!0})},Nn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let g of Xo(t))!Ko.call(e,g)&&g!==n&&Kt(e,g,{get:()=>t[g],enumerable:!(o=Yo(t,g))||o.enumerable});return e};var qt=(e,t,n)=>(n=e!=null?Go(Vo(e)):{},Nn(t||!e||!e.__esModule?Kt(n,"default",{value:e,enumerable:!0}):n,e)),jo=e=>Nn(Kt({},"__esModule",{value:!0}),e);var Nr={};qo(Nr,{ConfirmationForm:()=>nt,ContextMenu:()=>Qt,ContextMenuProvider:()=>en,DefaultContextMenuAdapter:()=>gt,DockableDesktopProvider:()=>lo,FormContainerContext:()=>jt,FormContainerProvider:()=>Qe,LeftPanelRenderer:()=>po,ModalStackRenderer:()=>uo,PanelContributionProvider:()=>ln,PanelFloatingWindow:()=>Ln,PanelOverlayRoot:()=>No,PanelProvider:()=>nn,PanelRegistry:()=>Wt,PanelRegistryClass:()=>ut,PanelToolbar:()=>zo,PanelToolbarItem:()=>Fo,PanelToolbarSeparator:()=>Oo,RightPanelRenderer:()=>go,SidePanelRenderer:()=>mo,Sidebar:()=>Po,ToastContainer:()=>To,Toolbar:()=>Ro,ToolbarButton:()=>Do,ToolbarCenter:()=>_o,ToolbarProvider:()=>Ht,ToolbarSearchInput:()=>Ho,ToolbarSpacer:()=>Ao,ToolbarToggle:()=>Wo,WindowManager:()=>eo,WindowManagerProvider:()=>Ut,WorkspaceClient:()=>an,computeResizedRect:()=>kt,defaultPredefinedMessages:()=>Ct,formatLabel:()=>me,isSerializable:()=>pt,sidebarSectionToTab:()=>Tn,startPointerDrag:()=>qe,toast:()=>Mo,useActivePanelContribution:()=>dn,useColorScheme:()=>rn,useFormContainer:()=>ct,useFormatMessage:()=>_e,useMergedSidebarTabs:()=>io,useMergedToolbarItems:()=>ro,usePanelActions:()=>tt,usePanelContext:()=>$n,usePanelContextMenu:()=>Gn,usePanelContribution:()=>oo,usePanelFloatingWindow:()=>Bo,usePanelFloatingWindowManager:()=>$o,usePanelId:()=>Ot,usePanelSize:()=>zn,usePanelState:()=>Ke,usePredefinedMessages:()=>Be,useRegistry:()=>Rt,useShowContextMenu:()=>Vn,useSidebar:()=>xo,useSidebarTab:()=>Co,useStyleClasses:()=>Ve,useToolbar:()=>Bt,useWindowManagerActions:()=>Mt,useWindowManagerState:()=>Ae});module.exports=jo(Nr);var V=qt(require("react"),1),Cn=require("react-dom");var O=require("react");var xt=require("react"),Zo={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:()=>()=>{}},jt=(0,xt.createContext)(Zo),Qe=jt.Provider,ct=()=>(0,xt.useContext)(jt),zn=()=>{let{onResize:e,getDimensions:t}=ct();return(0,xt.useSyncExternalStore)(n=>e?e(()=>n()):()=>{},()=>t?t():null)};var ut=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())}},Wt=new ut;var Ct={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 Dn=require("react");function pt(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,Dn.isValidElement)(e))return!1;if(Array.isArray(e))return e.every(pt);let n=Object.getPrototypeOf(e);return n!==Object.prototype&&n!==null?!1:Object.values(e).every(pt)}var et=require("react/jsx-runtime"),wt=(0,O.createContext)(null),Zt=(0,O.createContext)(null),On=(0,O.createContext)(null),An=(0,O.createContext)(null),Fn=(0,O.createContext)(Ct),_n=(0,O.createContext)({}),Ve=()=>(0,O.useContext)(_n),Hn=(0,O.createContext)(Wt),Rt=()=>(0,O.useContext)(Hn),hn=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))}},Uo={type:"leaf",id:"group-default",panels:[],activePanelId:null};function Bn(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:g,stickyBottom:l,...D}=n;return{...D,anchor:o}}return n});return{gridRoot:e.gridRoot,floating:t,minimized:e.minimized,panels:e.panels}}function Jo(e){if(e)try{let t=Bn(JSON.parse(e));if(t)return{...t,activePanelId:Object.keys(t.panels)[0]??null}}catch{}return{gridRoot:Uo,floating:[],minimized:[],panels:{},activePanelId:null}}var Ut=({children:e,client:t,formatMessage:n,predefinedMessages:o,dir:g,modalClass:l,modalBodyClass:D,sidePanelClass:b,sidePanelBodyClass:M,windowClass:P,windowBodyClass:C,zIndexBase:v})=>{let S=(0,O.useRef)(t?.registry??Wt).current,L=t?.config.formatMessage??n,N=t?.config.predefinedMessages??o,W=t?.config.dir??g,c=t?.config.zIndexBase??v??1e3,[E,w]=(0,O.useState)(()=>({...Jo(t?.initialState??null),draggedPanelId:null,dir:W||"ltr",isRtl:W==="rtl",splitRatio:Math.min(.9,Math.max(.1,t?.config.defaultSplitRatio??.5)),edgeSplitRatio:Math.min(.9,Math.max(.1,t?.config.defaultEdgeSplitRatio??.2))})),k=(0,O.useRef)(E);k.current=E;let m=(0,O.useRef)(new Set);(0,O.useEffect)(()=>{m.current.forEach(i=>i())},[E]);let R=(0,O.useCallback)(()=>k.current,[]),H=(0,O.useCallback)(i=>(m.current.add(i),()=>m.current.delete(i)),[]),B=(0,O.useRef)({}),s=(0,O.useRef)({}),z=(0,O.useMemo)(()=>({...Ct,...N}),[N]),Y=(0,O.useRef)(new hn),K=(0,O.useRef)(c);(0,O.useEffect)(()=>(document.documentElement.style.setProperty("--rdd-z-base",String(c)),()=>{document.documentElement.style.removeProperty("--rdd-z-base")}),[c]);let Q=(0,O.useCallback)((i,y)=>Y.current.subscribe(i,y),[]),ae=(0,O.useCallback)((i,y)=>{Y.current.publish(i,y)},[]),te=(0,O.useCallback)((i,y)=>{let d=typeof i.x=="string"?parseFloat(i.x):i.x,a=typeof i.y=="string"?parseFloat(i.y):i.y,$=typeof i.width=="string"?parseFloat(i.width):i.width,r=typeof i.height=="string"?parseFloat(i.height):i.height;isNaN(d)&&(d=300),isNaN(a)&&(a=150),isNaN($)&&($=450),isNaN(r)&&(r=350);let x=T=>y.some(A=>{let F=typeof A.x=="string"?parseFloat(A.x):A.x,U=typeof A.y=="string"?parseFloat(A.y):A.y;return!A.maximized&&Math.abs(F-T.x)<20&&Math.abs(U-T.y)<20}),u=0;for(;x({x:d,y:a})&&u<10;)d+=30,a+=30,u++;let p=Math.max(100,window.innerWidth||1024),h=Math.max(100,window.innerHeight||768);return(d+$>p||a+r>h)&&(d=100+u%5*30,a=100+u%5*30),d=Math.max(0,Math.min(d,p-100)),a=Math.max(0,Math.min(a,h-40)),{x:d,y:a,width:$,height:r}},[]),ye=(0,O.useCallback)(i=>{w(y=>{let d=y.panels[i];if(!d)return y;if(d.state==="floating"){let a=y.floating.find(r=>r.id===i);if(!a)return y;let $=!y.floating.some(r=>r.z>a.z);return $&&y.activePanelId===i?y:($||(K.current+=1),{...y,floating:y.floating.map(r=>r.id===i?{...r,z:$?a.z:K.current}:r),activePanelId:i})}else if(d.state==="docked"){if(y.activePanelId===i)return y;let a=$=>$.type==="leaf"?$.panels.includes(i)?{...$,activePanelId:i}:$:{...$,children:$.children.map(a)};return{...y,gridRoot:a(y.gridRoot),activePanelId:i}}return y.activePanelId===i?y:{...y,activePanelId:i}})},[]),se=(i,y)=>{if(i.type==="leaf"){let d=i.panels.indexOf(y);if(d===-1)return i;let a=i.panels.filter(x=>x!==y),$=i.activePanelId===y?a[d]||a[d-1]||a[0]||null:i.activePanelId,r={...i,panels:a,activePanelId:$};return a.length===0&&!i.keepOnEmpty?null:r}else{let d=i.children.map(r=>se(r,y)).filter(r=>r!==null);if(d.length===0)return null;if(d.length===1)return d[0];let a=i.sizes.slice(0,d.length),$=a.reduce((r,x)=>r+x,0);return{...i,children:d,sizes:a.map(r=>r/$)}}},Z=(i,y,d)=>{if(i.type==="leaf"){if(i.id===y){let a=i.panels.includes(d)?i.panels:[...i.panels,d];return{...i,panels:a,activePanelId:d}}return i}else return{...i,children:i.children.map(a=>Z(a,y,d))}},_=i=>{if(i.type==="leaf")return i.id;for(let y of i.children){let d=_(y);if(d)return d}return null},I=(0,O.useCallback)((i,y,d)=>{let a=i;if(d?.dedupeKey!==void 0){let h=Object.values(k.current.panels).find(T=>T.component===y&&T.dedupeKey===d.dedupeKey);h&&(a=h.id)}let $=!(a in k.current.panels),r=a!==i,x=d?.focus!==!1,p=d?.props!==void 0?pt(d.props):!0;w(h=>{let T=h.panels[a],A=S.get(y),F=d?.title||d?.title||A?.defaultOptions?.title||a,U=d?.initialTarget||A?.defaultOptions?.initialTarget||"docked",re=A?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},q=x?a:h.activePanelId;if(T)if(T.state==="minimized"){let de=h.minimized.filter(ue=>ue.id!==a);if(U==="floating"||!h.gridRoot){K.current+=1;let ue=te(re,h.floating);return{...h,minimized:de,floating:[...h.floating,{...ue,id:a,z:K.current}],panels:{...h.panels,[a]:{...T,state:"floating"}},activePanelId:q}}else{let ue=_(h.gridRoot)||"group-default";return{...h,minimized:de,gridRoot:Z(h.gridRoot,ue,a),panels:{...h.panels,[a]:{...T,state:"docked"}},activePanelId:q}}}else{if(T.state==="floating")return x&&ye(a),h;{let de=ue=>ue.type==="leaf"?ue.panels.includes(a)?{...ue,activePanelId:a}:ue:{...ue,children:ue.children.map(de)};return{...h,gridRoot:de(h.gridRoot),activePanelId:q}}}let ce={id:a,title:F,component:y,state:U==="tabbed"?"docked":U,props:d?.props,serializable:p,dedupeKey:d?.dedupeKey},ie={...h.panels,[a]:ce};if(U==="floating"){K.current+=1;let de=te(re,h.floating),ue=d?.anchor??A?.defaultOptions?.defaultAnchor??null;return{...h,floating:[...h.floating,{...de,id:a,z:K.current,anchor:ue}],panels:ie,activePanelId:q}}else{let de=_(h.gridRoot)||"group-default";return{...h,gridRoot:Z(h.gridRoot,de,a),panels:ie,activePanelId:q}}}),$&&Y.current.publish("panel:opened",{id:a,component:y}),($||r)&&Y.current.publish("layout:changed",{})},[te,ye]),G=(0,O.useCallback)(i=>{let y=i in k.current.panels;w(d=>{let a=d.panels[i];if(!a||S.get(a.component)?.defaultOptions?.canClose===!1)return d;delete B.current[i],delete s.current[i];let r={...d.panels};delete r[i];let x=se(d.gridRoot,i);return{...d,gridRoot:x||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:d.floating.filter(u=>u.id!==i),minimized:d.minimized.filter(u=>u.id!==i),panels:r}}),y&&(Y.current.publish("panel:closed",{id:i}),Y.current.publish("layout:changed",{}))},[]),J=(0,O.useCallback)((i,y)=>{B.current[i]=y},[]),ve=(0,O.useCallback)(i=>{delete B.current[i]},[]),Ce=(0,O.useCallback)((i,y)=>{s.current[i]=y},[]),we=(0,O.useCallback)(i=>{delete s.current[i]},[]),Re=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];return $?{...a,panels:{...a.panels,[i]:{...$,dirty:y,dirtyOptions:d}}}:a})},[]),De=(0,O.useCallback)((i,y)=>{w(d=>{let a=d.panels[i];return a?{...d,panels:{...d.panels,[i]:{...a,title:y}}}:d})},[]),Oe=(0,O.useCallback)(async(i,y)=>{if(y?.force){G(i);return}let d=B.current[i];if(d&&!await d())return;let a=k.current.panels[i];if(a?.dirty)if(y?.onConfirm){if(!await y.onConfirm(a.dirtyOptions))return}else return;G(i)},[G]),We=(0,O.useCallback)(i=>{let y=k.current.panels[i]?.state!=="minimized"&&i in k.current.panels;w(d=>{let a=d.panels[i];if(!a||a.state==="minimized"||S.get(a.component)?.defaultOptions?.canMinimize===!1)return d;let r,x;if(a.state==="floating"){let p=d.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 T of h.children){let A=p(T);if(A)return A}return null};x=p(d.gridRoot)??void 0}let u=se(d.gridRoot,i);return{...d,gridRoot:u||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:d.floating.filter(p=>p.id!==i),minimized:[...d.minimized,{id:i,title:a.title,component:a.component}],panels:{...d.panels,[i]:{...a,state:"minimized",previousState:a.state,lastFloatingRect:r,lastLeafId:x}}}}),y&&(Y.current.publish("panel:minimized",{id:i}),Y.current.publish("layout:changed",{}))},[]),ee=(0,O.useCallback)(i=>{let y=k.current.panels[i]?.state==="minimized";w(d=>{let a=d.panels[i];if(!a||a.state!=="minimized")return d;let $=d.minimized.filter(x=>x.id!==i);if((a.previousState||"docked")==="floating"){K.current+=1;let x=S.get(a.component),u=a.lastFloatingRect||x?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},p=te(u,d.floating);return{...d,minimized:$,floating:[...d.floating,{...p,id:i,z:K.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...d.panels,[i]:{...a,state:"floating"}}}}else{let x=(T,A)=>T.type==="leaf"?T.id===A:T.children.some(F=>x(F,A)),u=a.lastLeafId&&x(d.gridRoot,a.lastLeafId),p=S.get(a.component),h=p?.defaultOptions?.canDrag!==!1;if(u)return{...d,minimized:$,gridRoot:Z(d.gridRoot,a.lastLeafId,i),panels:{...d.panels,[i]:{...a,state:"docked"}}};if(h){K.current+=1;let T=a.lastFloatingRect||p?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},A=te(T,d.floating);return{...d,minimized:$,floating:[...d.floating,{...A,id:i,z:K.current,anchor:a.lastFloatingRect?.anchor??null}],panels:{...d.panels,[i]:{...a,state:"floating"}}}}else{let T=_(d.gridRoot)||"group-default";return{...d,minimized:$,gridRoot:Z(d.gridRoot,T,i),panels:{...d.panels,[i]:{...a,state:"docked"}}}}}}),y&&(Y.current.publish("panel:restored",{id:i}),Y.current.publish("layout:changed",{}))},[te]),Me=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];if(!$||S.get($.component)?.defaultOptions?.canDrag===!1)return a;let x=S.get($.component),u=y||x?.defaultOptions?.favoritePosition||{x:300,y:150,width:450,height:350},p=se(a.gridRoot,i);K.current+=1;let h=te(u,a.floating);return{...a,gridRoot:p||{type:"leaf",id:"group-default",panels:[],activePanelId:null},floating:[...a.floating,{...h,id:i,z:K.current,anchor:d??null}],panels:{...a.panels,[i]:{...$,state:"floating"}}}})},[te]),Ie=(0,O.useCallback)((i,y)=>{w(d=>{let a=d.panels[i];if(!a)return d;let $=d.floating.filter(u=>u.id!==i),r=se(d.gridRoot,i),x=y||_(r||d.gridRoot)||"group-default";return{...d,gridRoot:Z(r||d.gridRoot,x,i),floating:$,panels:{...d.panels,[i]:{...a,state:"docked"}}}})},[]),$e=(i,y,d,a,$)=>{if(i.type==="leaf"){if(i.id===y){let r={type:"leaf",id:`group-split-${Date.now()}-${Math.floor(Math.random()*1e3)}`,panels:[d],activePanelId:d},x=a==="left"||a==="right"?"horizontal":"vertical",u=a==="left"||a==="top"?[r,i]:[i,r],p=a==="left"||a==="top"?[$,1-$]:[1-$,$];return{type:"branch",orientation:x,sizes:p,children:u}}return i}else return{...i,children:i.children.map(r=>$e(r,y,d,a,$))}},Ye=(0,O.useCallback)(i=>{w(y=>({...y,draggedPanelId:i}))},[]),Pe=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];if(!$)return a;let r=a.floating.filter(p=>p.id!==i),x=se(a.gridRoot,i),u;return d==="center"?u=Z(x||a.gridRoot,y,i):u=$e(x||a.gridRoot,y,i,d,a.splitRatio),{...a,gridRoot:u,floating:r,panels:{...a.panels,[i]:{...$,state:"docked"}},draggedPanelId:null}})},[]),ft=(0,O.useCallback)((i,y)=>{w(d=>{let a=d.panels[i];if(!a)return d;let $=d.floating.filter(A=>A.id!==i),r=se(d.gridRoot,i),x={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"?[x,r||d.gridRoot]:[r||d.gridRoot,x],h=d.edgeSplitRatio,T={type:"branch",orientation:u,sizes:y==="left"||y==="top"?[h,1-h]:[1-h,h],children:p};return{...d,gridRoot:T,floating:$,panels:{...d.panels,[i]:{...a,state:"docked"}},draggedPanelId:null}})},[]),$t=(0,O.useCallback)((i,y,d)=>{w(a=>{let $=a.panels[i];if(!$)return a;let r=se(a.gridRoot,i),x=h=>{if(h.type==="leaf"){if(h.id===y){let T=h.panels.filter(U=>U!==i),A=Math.max(0,Math.min(d,T.length)),F=[...T];return F.splice(A,0,i),{...h,panels:F,activePanelId:i}}return h}else return{...h,children:h.children.map(x)}},u=x(r||a.gridRoot),p=a.floating.filter(h=>h.id!==i);return{...a,gridRoot:u,floating:p,panels:{...a.panels,[i]:{...$,state:"docked"}},draggedPanelId:null}})},[]),ht=(0,O.useCallback)(i=>{w(y=>{let d=$=>{if($.type==="leaf")return $.id===i&&$.canClose!==!1?null:$;{let r=$.children.map(p=>d(p)).filter(p=>p!==null);if(r.length===0)return null;if(r.length===1)return r[0];let x=$.sizes.slice(0,r.length),u=x.reduce((p,h)=>p+h,0);return{...$,children:r,sizes:x.map(p=>p/u)}}},a=d(y.gridRoot);return{...y,gridRoot:a||{type:"leaf",id:"group-default",panels:[],activePanelId:null}}})},[]),Ze=(0,O.useCallback)(i=>{w(y=>({...y,floating:y.floating.map(d=>d.id===i?{...d,maximized:!d.maximized}:d)}))},[]),Lt=(0,O.useCallback)((i,y)=>{let d=(a,$)=>{if(a.type==="leaf")return a;if($===i.length)return{...a,sizes:y};let r=i[$],x=a.children.map((u,p)=>p===r?d(u,$+1):u);return{...a,children:x}};w(a=>({...a,gridRoot:d(a.gridRoot,0)}))},[]),Gt=(0,O.useCallback)((i,y)=>{w(d=>({...d,floating:d.floating.map(a=>a.id===i?{...a,...y}:a)}))},[]),Ue=(0,O.useCallback)(()=>{let i=k.current.panels,y=[],d={};for(let[u,p]of Object.entries(i)){let h=s.current[u],T=h?.(),A=h!==void 0&&T!==void 0,F=A?T:p.props,U=A?pt(T):p.serializable;U?d[u]=A?{...p,props:F,serializable:U}:p:y.push(u)}let a=k.current.gridRoot,$=k.current.floating,r=k.current.minimized;for(let u of y)a=se(a,u)||{type:"leaf",id:"group-default",panels:[],activePanelId:null},$=$.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:$,minimized:r,panels:d})},[]),Xe=(0,O.useCallback)(i=>{try{let y=Bn(JSON.parse(i));if(!y)return!1;let d=Object.keys(y.panels)[0]||null;return w(a=>({...a,gridRoot:y.gridRoot,floating:y.floating,minimized:y.minimized,panels:y.panels,draggedPanelId:null,activePanelId:d})),!0}catch(y){return console.error("Failed to parse layout configuration:",y),!1}},[]),Yt=(0,O.useCallback)(i=>{w(y=>y.activePanelId===i?y:{...y,activePanelId:i})},[]),Xt=(0,O.useCallback)(i=>{w(y=>y.dir===i?y:{...y,dir:i,isRtl:i==="rtl"})},[]),Nt=(0,O.useCallback)(i=>i in k.current.panels,[]),it=(0,O.useCallback)(()=>Object.keys(k.current.panels),[]),st=(0,O.useCallback)((i,y)=>Object.values(k.current.panels).find(a=>a.component===i&&a.dedupeKey===y)?.id??null,[]);(0,O.useEffect)(()=>{W&&w(i=>i.dir===W?i:{...i,dir:W,isRtl:W==="rtl"})},[W]);let Ge=(0,O.useRef)(new Map),Je=(0,O.useRef)(null),zt=(0,O.useCallback)(i=>(Je.current=i,()=>{Je.current=null}),[]),Vt=(0,O.useCallback)(i=>{Je.current?.(i)},[]),Dt=(0,O.useCallback)((i,y)=>(Ge.current.set(i,y),()=>{Ge.current.delete(i)}),[]),at=(0,O.useCallback)(i=>Ge.current.get(i)?.()??[],[]),bt=(0,O.useMemo)(()=>({openPanel:I,closePanel:G,minimizePanel:We,restorePanel:ee,floatPanel:Me,dockPanel:Ie,maximizePanel:Ze,updateSplitSizes:Lt,updateFloatingPosition:Gt,focusPanel:ye,isOpen:Nt,getOpenPanelIds:it,findPanelId:st,saveLayout:Ue,loadLayout:Xe,publish:ae,subscribe:Q,setDraggedPanelId:Ye,dockPanelToGroup:Pe,movePanelOrder:$t,closeLeafGroup:ht,registerCloseGuard:J,unregisterCloseGuard:ve,registerStateProvider:Ce,unregisterStateProvider:we,setPanelDirty:Re,updatePanelTitle:De,requestClosePanel:Oe,dockPanelToWorkspaceEdge:ft,setActivePanel:Yt,setDirection:Xt,registerPanelContextMenu:Dt,getPanelContextMenuItems:at,showContextMenu:Vt,registerContextMenuFn:zt}),[I,G,We,ee,Me,Ie,Ze,Lt,Gt,ye,Nt,it,st,Ue,Xe,ae,Q,Ye,Pe,$t,ht,J,ve,Ce,we,Re,De,Oe,ft,Yt,Xt,Dt,at,Vt,zt]),lt=i=>{let y=i.defaultMessage||i.id;return i.values&&Object.entries(i.values).forEach(([d,a])=>{y=y.replace(`{${d}}`,String(a))}),y},pn=(0,O.useMemo)(()=>({modalClass:l,modalBodyClass:D,sidePanelClass:b,sidePanelBodyClass:M,windowClass:P,windowBodyClass:C}),[l,D,b,M,P,C]);(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(bt),()=>{t._disconnect()}},[t,bt]);let pn=(0,O.useMemo)(()=>({getSnapshot:R,subscribeToState:H}),[R,H]);return(0,et.jsx)(Fn.Provider,{value:un,children:(0,et.jsx)(_n.Provider,{value:S,children:(0,et.jsx)(On.Provider,{value:pn,children:(0,et.jsx)(wt.Provider,{value:E,children:(0,et.jsx)(Zt.Provider,{value:bt,children:(0,et.jsx)(Wn.Provider,{value:L||lt,children:(0,et.jsx)(An.Provider,{value:z,children:e})})})})})})})},Dn=e=>()=>{};function Ae(e){let t=(0,O.useContext)(wt),n=(0,O.useContext)(On),o=(0,O.useRef)(e);o.current=e;let g=(0,O.useSyncExternalStore)(e?n?.subscribeToState??Dn:Dn,()=>{let l=n?.getSnapshot()??t;return o.current?o.current(l):l},()=>{let l=n?.getSnapshot()??t;return o.current?o.current(l):l});if(!t)throw new Error("useWindowManagerState must be used within WindowManagerProvider");return e?g:t}var Mt=()=>{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},_e=()=>(0,O.useContext)(Wn)||(t=>{let n=t.defaultMessage||t.id;return t.values&&Object.entries(t.values).forEach(([o,g])=>{n=n.replace(`{${o}}`,String(g))}),n}),me=(e,t)=>e?typeof e=="string"?e:t(e):"",Bn=()=>{let{publish:e,subscribe:t}=Mt();return{publish:e,subscribe:t}},Be=()=>(0,O.useContext)(An),Ot=()=>ct().instanceId;function $n(e){let t=(0,O.useContext)(Zt),n=Ot(),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 fe=qt(require("react"),1),bn=require("react-dom"),le=require("react/jsx-runtime");function Uo(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 Tt(e,t){return typeof e=="string"?e:t?t(e):e.defaultMessage??e.id}function vn(e){return"separator"in e}function Jt(e){return!vn(e)&&"items"in e}var Yn=(0,fe.forwardRef)(({items:e,x:t,y:n,theme:o,fmt:g,onClose:l,onMouseEnter:D,onMouseLeave:b},M)=>((0,fe.useLayoutEffect)(()=>{let P=M?.current;if(!P)return;let C=P.getBoundingClientRect(),v=8;C.right>window.innerWidth-v&&(P.style.left=`${Math.max(v,window.innerWidth-C.width-v)}px`,P.style.right="auto"),C.bottom>window.innerHeight-v&&(P.style.top=`${Math.max(v,window.innerHeight-C.height-v)}px`),C.left<v&&(P.style.left=`${v}px`,P.style.right="auto"),C.top<v&&(P.style.top=`${v}px`)}),(0,bn.createPortal)((0,le.jsx)("div",{ref:M,className:`rdd-context-menu rdd-context-menu--${o} rdd-context-menu--submenu`,style:{position:"fixed",left:t,top:n,zIndex:9501},role:"menu",onMouseEnter:D,onMouseLeave:b,children:e.map((P,C)=>{if(vn(P))return(0,le.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},C);let v=P,S=v.checkbox&&v.checkbox.active!==!1,L=S&&v.checkbox.value,N=v.disabled===!0||(S?v.checkbox.enabled===!1:!1);return(0,le.jsxs)("button",{type:"button",className:`rdd-context-menu__item${N?" rdd-context-menu__item--disabled":""}`,title:v.title?Tt(v.title,g):void 0,disabled:N,"data-cy-action":v.cyAction,onClick:()=>{N||(v.action?.(),l())},role:"menuitem","aria-checked":S?L:void 0,children:[v.icon?(0,le.jsx)("span",{className:"rdd-context-menu__icon",children:v.icon}):(0,le.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,le.jsx)("span",{className:"rdd-context-menu__label",children:Tt(v.label,g)}),S&&(0,le.jsx)("span",{className:`rdd-context-menu__checkbox${L?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,le.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,le.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),L&&(0,le.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},C)})}),document.body)));Yn.displayName="ContextMenuSubMenuPanel";var Gn={visible:!1,x:0,y:0,items:[]},Qt=(0,fe.forwardRef)(({theme:e="dark",formatMessageProvider:t,onShow:n,onHide:o,onOpenChange:g,className:l,style:D},b)=>{let[M,P]=(0,fe.useState)(Gn),[C,v]=(0,fe.useState)(null),S=(0,fe.useRef)(null),L=(0,fe.useRef)(null),N=(0,fe.useRef)(new Map),W=(0,fe.useRef)({open:null,close:null}),c=fe.default.useCallback(()=>{P(Gn),v(null),W.current.open&&clearTimeout(W.current.open),W.current.close&&clearTimeout(W.current.close),W.current.open=null,W.current.close=null,o?.(),g?.(!1)},[o,g]);if((0,fe.useImperativeHandle)(b,()=>({show({event:s,x:z,y:Y,items:K}){let Q=s?Uo(s):{x:z??0,y:Y??0};N.current.clear(),P({visible:!0,x:Q.x,y:Q.y,items:K}),v(null),n?.(),g?.(!0)}}),[n,g]),(0,fe.useEffect)(()=>{if(!M.visible)return;let s=z=>{S.current?.contains(z.target)||L.current?.contains(z.target)||c()};return document.addEventListener("pointerdown",s,{capture:!0}),window.addEventListener("click",s),()=>{document.removeEventListener("pointerdown",s,{capture:!0}),window.removeEventListener("click",s)}},[M.visible,c]),(0,fe.useEffect)(()=>{if(!M.visible)return;let s=z=>{z.key==="Escape"&&c()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[M.visible,c]),(0,fe.useLayoutEffect)(()=>{if(!M.visible||!S.current)return;let s=S.current,z=s.getBoundingClientRect(),Y=8;z.right>window.innerWidth-Y&&(s.style.left=`${Math.max(Y,window.innerWidth-z.width-Y)}px`),z.bottom>window.innerHeight-Y&&(s.style.top=`${Math.max(Y,window.innerHeight-z.height-Y)}px`),z.left<Y&&(s.style.left=`${Y}px`),z.top<Y&&(s.style.top=`${Y}px`)},[M.visible]),!M.visible)return null;let E=t,w=0,k=0;if(C!==null){let s=N.current.get(C);if(s){let z=s.getBoundingClientRect();w=document.documentElement.dir==="rtl"?window.innerWidth-z.left+2:z.right+2,k=z.top}}function m(){W.current.open&&(clearTimeout(W.current.open),W.current.open=null)}function R(){W.current.close&&(clearTimeout(W.current.close),W.current.close=null)}function H(s,z){R(),C!==null&&C!==s&&(m(),v(null)),Jt(z)&&z.items?.length?(m(),W.current.open=setTimeout(()=>{v(s)},150)):Jt(z)||(m(),C!==null&&(W.current.close=setTimeout(()=>v(null),200)))}function B(s){m(),Jt(s)&&s.items?.length&&(W.current.close=setTimeout(()=>v(null),200))}return(0,bn.createPortal)((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("div",{ref:S,className:`rdd-context-menu rdd-context-menu--${e}${l?` ${l}`:""}`,style:{position:"fixed",left:M.x,top:M.y,zIndex:9500,...D},role:"menu","aria-orientation":"vertical",children:M.items.map((s,z)=>{if(vn(s))return(0,le.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},z);if(Jt(s))return(0,le.jsxs)("button",{ref:te=>{N.current.set(z,te)},type:"button",className:`rdd-context-menu__item rdd-context-menu__item--has-submenu${C===z?" rdd-context-menu__item--submenu-open":""}`,title:s.title?Tt(s.title,E):void 0,onMouseEnter:()=>H(z,s),onMouseLeave:()=>B(s),role:"menuitem","aria-haspopup":"true","aria-expanded":C===z,children:[(0,le.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,le.jsx)("span",{className:"rdd-context-menu__label",children:Tt(s.label,E)}),(0,le.jsx)("span",{className:"rdd-context-menu__chevron","aria-hidden":"true",children:"\u203A"})]},z);let Y=s,K=Y.checkbox&&Y.checkbox.active!==!1,Q=K&&Y.checkbox.value,ae=Y.disabled===!0||(K?Y.checkbox.enabled===!1:!1);return(0,le.jsxs)("button",{ref:te=>{N.current.set(z,te)},type:"button",className:`rdd-context-menu__item${ae?" rdd-context-menu__item--disabled":""}`,title:Y.title?Tt(Y.title,E):void 0,disabled:ae,"data-cy-action":Y.cyAction,onClick:()=>{ae||(Y.action?.(),c())},onMouseEnter:()=>H(z,s),onMouseLeave:()=>B(s),role:"menuitem","aria-checked":K?Q:void 0,children:[Y.icon?(0,le.jsx)("span",{className:"rdd-context-menu__icon",children:Y.icon}):(0,le.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,le.jsx)("span",{className:"rdd-context-menu__label",children:Tt(Y.label,E)}),K&&(0,le.jsx)("span",{className:`rdd-context-menu__checkbox${Q?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,le.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,le.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:Q?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.5"}),Q&&(0,le.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},z)})}),C!==null&&(()=>{let s=M.items[C];return(0,le.jsx)(Yn,{ref:L,items:s.items??[],x:w,y:k,theme:e,fmt:E,onClose:c,onMouseEnter:()=>R(),onMouseLeave:()=>{W.current.close=setTimeout(()=>v(null),200)}})})()]}),document.body)});Qt.displayName="ContextMenu";var gt={Component:Qt},St=fe.default.createContext(null),en=({adapter:e=gt,children:t,...n})=>{let o=(0,fe.useRef)(null),[g,l]=fe.default.useState(!1),D=fe.default.useCallback(b=>{o.current?.show(b)},[]);return(0,le.jsxs)(St.Provider,{value:{show:D,isOpen:g},children:[t,(0,le.jsx)(e.Component,{ref:o,...n,onShow:()=>{l(!0),n.onShow?.()},onHide:()=>{l(!1),n.onHide?.()}})]})};function Xn(){let e=fe.default.useContext(St);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()}`,tn=new Map,Vn={leftPanel:null,rightPanel:null,modals:[]},Kn=(0,he.createContext)(null),qn=(0,he.createContext)(null),nn=({children:e})=>{let[t,n]=(0,he.useState)(Vn),o=(0,he.useRef)(t);o.current=t;let g=(0,he.useCallback)((c,E)=>{tn.set(c,E)},[]),l=(0,he.useCallback)(c=>{tn.delete(c)},[]),D=(0,he.useCallback)(async(c,E,w={})=>{let k=o.current.leftPanel;if(k){let H=tn.get(k.id);if(H&&!await H())return null}let m=yn(),R={id:m,Component:c,props:E,containerType:"left-panel",options:w};return n(H=>({...H,leftPanel:R})),m},[]),b=(0,he.useCallback)(async(c,E,w={})=>{let k=o.current.rightPanel;if(k){let H=tn.get(k.id);if(H&&!await H())return null}let m=yn(),R={id:m,Component:c,props:E,containerType:"right-panel",options:w};return n(H=>({...H,rightPanel:R})),m},[]),M=(0,he.useCallback)((c,E,w={})=>{let k=yn(),m=E.title,R={...w,title:w.title||m||"Confirmation"},H={id:k,Component:c,props:E,containerType:"modal",options:R};return n(B=>({...B,modals:[...B.modals,H]})),k},[]),P=(0,he.useCallback)(c=>{n(E=>({leftPanel:E.leftPanel?.id===c?null:E.leftPanel,rightPanel:E.rightPanel?.id===c?null:E.rightPanel,modals:E.modals.filter(w=>w.id!==c)}))},[]),C=(0,he.useCallback)(()=>{n(Vn)},[]),v=(0,he.useCallback)(()=>{n(c=>({...c,modals:[]}))},[]),S=(0,he.useCallback)(c=>t.leftPanel?.id===c?t.leftPanel:t.rightPanel?.id===c?t.rightPanel:t.modals.find(E=>E.id===c),[t]),L=(0,he.useCallback)((c,E)=>{n(w=>({leftPanel:w.leftPanel?.id===c?{...w.leftPanel,...E}:w.leftPanel,rightPanel:w.rightPanel?.id===c?{...w.rightPanel,...E}:w.rightPanel,modals:w.modals.map(k=>k.id===c?{...k,...E}:k)}))},[]),N=(0,he.useCallback)((c,E,w)=>{L(c,{dirty:E,dirtyOptions:w})},[L]),W=(0,he.useMemo)(()=>({openLeftPanel:D,openRightPanel:b,openModal:M,close:P,closeAll:C,closeAllModals:v,getInstance:S,updateInstance:L,setDirty:N,registerCloseHandler:g,unregisterCloseHandler:l}),[D,b,M,P,C,v,S,L,N,g,l]);return(0,Pn.jsx)(Kn.Provider,{value:t,children:(0,Pn.jsx)(qn.Provider,{value:W,children:e})})},Ke=()=>{let e=(0,he.useContext)(Kn);if(!e)throw new Error("usePanelState must be used within PanelProvider");return e},tt=()=>{let e=(0,he.useContext)(qn);if(!e)throw new Error("usePanelActions must be used within PanelProvider");return e};var At=require("react");var He=require("react/jsx-runtime"),Qo=({title:e,message:t,alert:n,alertType:o="info",useYesNoTitles:g=!1,onOK:l,onCancel:D})=>{let{requestClose:b,setIcon:M,setTitle:P}=ct(),C=_e(),v=Be(),S=(0,At.useRef)(null);(0,At.useEffect)(()=>{if(e){let w=typeof e=="string"?e:C(e);P(w)}M&&M((0,He.jsx)("span",{children:"\u2753"}))},[e,P,M,C]),(0,At.useEffect)(()=>{S.current?.focus()},[]);let L=typeof t=="string"?t:C(t),N=C(g?v.no:v.cancel),W=C(g?v.yes:v.ok),c=w=>{w.preventDefault(),l?.(),b()},E=()=>{D?.(),b()};return(0,He.jsxs)("form",{onSubmit:c,className:"rdd-confirmation-form-body",children:[n&&(0,He.jsxs)("div",{className:`rdd-confirmation-alert confirmation-alert-${o}`,children:[(0,He.jsx)("span",{children:"\u2139\uFE0F"}),(0,He.jsx)("span",{children:n})]}),(0,He.jsx)("div",{style:{fontSize:"0.9rem",color:"inherit",lineHeight:1.5},children:L}),(0,He.jsx)("hr",{style:{marginTop:"0.5rem",marginBottom:"0.5rem",opacity:.1}}),(0,He.jsxs)("div",{className:"rdd-confirmation-actions",children:[(0,He.jsx)("button",{type:"button",className:"rdd-btn rdd-btn-sm rdd-btn-outline",onClick:E,children:N}),(0,He.jsx)("button",{type:"submit",className:"rdd-btn rdd-btn-sm rdd-btn-primary",ref:S,children:W})]})]})},nt=Qo;function Ft(e){return e==="top-left"?"top-right":e==="top-right"?"top-left":e==="bottom-left"?"bottom-right":"bottom-left"}function qe(e){let{element:t,pointerId:n,startClientX:o,startClientY:g,captureStart:l,onMove:D,onEnd:b,activeClasses:M}=e;t.setPointerCapture(n),M?.forEach(({el:S,classes:L})=>S.classList.add(...L));let P=l(),C=S=>{D(S.clientX-o,S.clientY-g,P)},v=()=>{M?.forEach(({el:S,classes:L})=>S.classList.remove(...L)),t.removeEventListener("pointermove",C),t.removeEventListener("pointerup",v),t.removeEventListener("pointercancel",v),b?.(P)};t.addEventListener("pointermove",C),t.addEventListener("pointerup",v),t.addEventListener("pointercancel",v)}function kt(e,t,n,o,g){let{minW:l,minH:D,maxW:b,maxH:M,minX:P,minY:C}=g,{x:v,y:S,w:L,h:N}=o;if(e.includes("e")&&(L=Math.max(l,Math.min(o.w+t,b??1/0))),e.includes("w")){let W=o.w-l,c=P!=null?-(o.x-P):-1/0,E=Math.max(c,Math.min(t,W));L=o.w-E,v=o.x+E}if(e.includes("s")&&(N=Math.max(D,Math.min(o.h+n,M??1/0))),e.includes("n")){let W=o.h-D,c=C!=null?-(o.y-C):-1/0,E=Math.max(c,Math.min(n,W));N=o.h-E,S=o.y+E}return{x:v,y:S,w:L,h:N}}var on=require("react");function rn(){let[e,t]=(0,on.useState)(()=>document.documentElement.getAttribute("data-color-scheme")==="light"?"light":"dark");return(0,on.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"),jn=(e,t)=>{if(!e)return null;if(e.type==="leaf")return e.id===t?e:null;for(let n of e.children){let o=jn(n,t);if(o)return o}return null},_t=new Map,sn="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"})]}),Et={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=_t.get(e);return t||(t=document.createElement("div"),t.style.width="100%",t.style.height="100%",_t.set(e,t)),t},er=(e,t,n)=>{let o=t.component,g=n.get(o);if(!g)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 l=g.Component;return(0,f.jsx)(l,{...t.props??{},panelId:e})},wn=new Map,ot=new Map,mt=e=>{let t=ot.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},ot.set(e,t)),t},Un=({panelId:e})=>{let t=(0,V.useRef)(null);return(0,V.useEffect)(()=>{let n=t.current;if(!n)return;let o=Zn(e);n.appendChild(o);let g=new ResizeObserver(l=>{for(let D of l){let{width:b,height:M}=D.contentRect;if(b>0&&M>0){wn.set(e,{width:b,height:M});let P=ot.get(e);P&&P.onResize.forEach(C=>C(b,M))}}});return g.observe(n),()=>{g.disconnect();let l=document.getElementById(sn);l||(l=document.createElement("div"),l.id=sn,l.style.display="none",document.body.appendChild(l)),l.appendChild(o)}},[e]),(0,f.jsx)("div",{ref:t,style:{width:"100%",height:"100%"}})},tr=({panelId:e})=>{let t=Ae(),n=Rt(),o=_e(),g=(0,V.useRef)(null),l=t.panels[e],D=l?n.get(l.component):null,b=D?.defaultOptions?.disableLivePreview||!1,M=wn.get(e)||{width:800,height:500},P=M.width,C=M.height,L=Math.min(220/P,140/C);if((0,V.useEffect)(()=>{if(b)return;let N=g.current;if(!N)return;let W=_t.get(e);if(W)return N.appendChild(W),()=>{let c=document.getElementById(sn);c||(c=document.createElement("div"),c.id=sn,c.style.display="none",document.body.appendChild(c)),c.appendChild(W)}},[e,b]),b){let N=P*L,W=C*L,c=l?.title||D?.defaultOptions?.title||"Panel",E=me(c,o),w=(Array.from(E)[0]||"P").toUpperCase();return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${N}px`,height:`${W}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:w})})}return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${P*L}px`,height:`${C*L}px`},children:(0,f.jsx)("div",{ref:g,className:"rdd-taskbar-item-preview-host",style:{width:`${P}px`,height:`${C}px`,transform:`scale(${L})`,transformOrigin:"top left",position:"absolute",top:0,left:0,"--rdd-preview-scale":L}})})},nr=({panelId:e,children:t})=>{let n=Ae(),{requestClosePanel:o,setPanelDirty:g,registerCloseGuard:l,unregisterCloseGuard:D,registerStateProvider:b,unregisterStateProvider:M,updatePanelTitle:P,minimizePanel:C}=Mt(),v=n.minimized.some(m=>m.id===e),S=(0,V.useRef)(v);(0,V.useEffect)(()=>{let m=ot.get(e);m&&(v&&!S.current?m.onMinimize.forEach(R=>R()):!v&&S.current&&m.onRestore.forEach(R=>R()),S.current=v)},[v,e]);let L=n.activePanelId===e,N=(0,V.useRef)(L);(0,V.useEffect)(()=>{let m=N.current;N.current=L;let R=ot.get(e);R&&(L&&!m?R.onActivate.forEach(H=>H()):!L&&m&&R.onDeactivate.forEach(H=>H()))},[L,e]);let W=n.panels[e]?.state,c=W==="floating"?"floating-window":"dockable-panel",E=(0,V.useRef)(c);(0,V.useEffect)(()=>{if(W==="minimized")return;let m=E.current;E.current=c;let R=ot.get(e);R&&c!==m&&R.onContainerTypeChange.forEach(H=>H(c))},[c,W,e]),(0,V.useEffect)(()=>()=>{let m=ot.get(e);m&&(N.current&&m.onDeactivate.forEach(R=>R()),m.onClose.forEach(R=>R()),ot.delete(e))},[e]);let w=(0,V.useRef)(c),k=V.default.useMemo(()=>({requestClose:m=>o(e,m),setDirty:m=>g(e,m),onCloseRequested:m=>(l(e,m),()=>D(e)),registerStateProvider:m=>(b(e,m),()=>M(e)),setTitle:m=>P(e,m),instanceId:e,containerType:w.current,onClose:m=>{let R=mt(e);return R.onClose.add(m),()=>R.onClose.delete(m)},onMinimize:m=>{let R=mt(e);return R.onMinimize.add(m),()=>R.onMinimize.delete(m)},onRestore:m=>{let R=mt(e);return R.onRestore.add(m),()=>R.onRestore.delete(m)},onResize:m=>{let R=mt(e);return R.onResize.add(m),()=>R.onResize.delete(m)},requestMinimize:()=>C(e),getDimensions:()=>wn.get(e)??null,onActivate:m=>{let R=mt(e);return R.onActivate.add(m),()=>R.onActivate.delete(m)},onDeactivate:m=>{let R=mt(e);return R.onDeactivate.add(m),()=>R.onDeactivate.delete(m)},onContainerTypeChange:m=>{let R=mt(e);return R.onContainerTypeChange.add(m),()=>R.onContainerTypeChange.delete(m)}}),[e,o,g,l,D,b,M,P,C]);return(0,f.jsx)(Qe,{value:k,children:t})},Jn=({node:e,path:t,onTabRightClick:n,activeDropZone:o,onHoverDropZone:g,onTabDragStart:l,hoveredTab:D,onTabHover:b,defaultPanelIcon:M,onRequestClosePanel:P})=>{let{updateSplitSizes:C}=Mt();if(e.type==="leaf")return(0,f.jsx)(or,{leaf:e,onTabRightClick:n,activeDropZone:o,onHoverDropZone:g,onTabDragStart:l,hoveredTab:D,onTabHover:b,defaultPanelIcon:M,onRequestClosePanel:P});let v=e.orientation==="horizontal",S=(L,N)=>{N.preventDefault();let W=N.currentTarget,c=W.parentElement,E=c?v?c.clientWidth:c.clientHeight:v?1e3:800;qe({element:W,pointerId:N.pointerId,startClientX:N.clientX,startClientY:N.clientY,captureStart:()=>[...e.sizes],activeClasses:[{el:W,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active",v?"rdd-resizing-col-active":"rdd-resizing-row-active"]}],onMove:(w,k,m)=>{let R=(v?w:k)/E,H=[...m];H[L]+=R,H[L+1]-=R,H[L]>.1&&H[L+1]>.1&&C(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((L,N)=>{let W=e.sizes[N]*100;return(0,f.jsxs)(V.default.Fragment,{children:[(0,f.jsx)("div",{style:{flexGrow:e.sizes[N],flexBasis:`${W}%`,overflow:"hidden",position:"relative",minWidth:0,minHeight:0},children:(0,f.jsx)(Jn,{node:L,path:[...t,N],onTabRightClick:n,activeDropZone:o,onHoverDropZone:g,onTabDragStart:l,hoveredTab:D,onTabHover:b,defaultPanelIcon:M,onRequestClosePanel:P})}),N<e.children.length-1&&(0,f.jsx)("div",{onPointerDown:c=>S(N,c),style:{cursor:v?"col-resize":"row-resize",width:v?"1px":"100%",height:v?"100%":"1px",zIndex:20},className:"rdd-resizer-bar"})]},N)})})},or=({leaf:e,onTabRightClick:t,activeDropZone:n,onHoverDropZone:o,onTabDragStart:g,hoveredTab:l,onTabHover:D,defaultPanelIcon:b,onRequestClosePanel:M})=>{let P=Ae(),C=Rt(),{openPanel:v,closeLeafGroup:S,setActivePanel:L}=hn(),N=_e(),W=Be(),{windowClass:c,windowBodyClass:E}=Ve(),w=(0,V.useRef)(null),[k,m]=(0,V.useState)({left:!1,right:!1}),R=(0,V.useCallback)(()=>{let s=w.current;s&&m({left:s.scrollLeft>0,right:s.scrollLeft<s.scrollWidth-s.clientWidth-1})},[]);(0,V.useEffect)(()=>{let s=w.current;if(!s)return;s.addEventListener("scroll",R,{passive:!0});let z=new ResizeObserver(R);return z.observe(s),R(),()=>{s.removeEventListener("scroll",R),z.disconnect()}},[R]);let H=s=>{w.current?.scrollBy({left:s==="left"?-120:120,behavior:"smooth"})},B=s=>{v(s,P.panels[s].component),L(s)};return(0,f.jsxs)("div",{"data-active-panel-id":e.activePanelId||"",className:`rdd-workspace-panel ${c??""}`,style:{overflow:"hidden",position:"relative"},children:[(0,f.jsxs)("div",{className:"rdd-workspace-tab-bar",style:{minHeight:"38px"},children:[k.left&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-left",onPointerDown:s=>s.stopPropagation(),onClick:()=>H("left"),tabIndex:-1,"aria-label":"Scroll tabs left",children:"\u2039"}),(0,f.jsx)("div",{ref:w,className:"rdd-tab-headers-container",style:{scrollbarWidth:"none"},onPointerMove:s=>{P.draggedPanelId&&s.target===s.currentTarget&&D(e.id,"EMPTY",e.panels.length,"right")},onPointerLeave:s=>{P.draggedPanelId&&s.target===s.currentTarget&&D(e.id,"",-1,null)},children:e.panels.map((s,z)=>{let Y=P.panels[s];if(!Y)return null;let K=e.activePanelId===s,Q=P.activePanelId===s,te=C.get(Y.component)?.defaultOptions,ye=l&&l.leafId===e.id&&l.panelId===s,se=z===e.panels.length-1,Z=l&&l.leafId===e.id&&l.panelId==="EMPTY"&&se,_=ye?l.side==="left"?"rdd-drag-hover-left":"rdd-drag-hover-right":Z?"rdd-drag-hover-right":"",I=K?Q?"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":s,"data-leaf-id":e.id,"data-tab-index":String(z),onClick:()=>B(s),onPointerDown:G=>{te?.canDrag!==!1&&g(s,G)},onContextMenu:G=>t(s,G),onPointerMove:G=>{if(P.draggedPanelId&&G.pointerType!=="touch"){let J=G.currentTarget.getBoundingClientRect(),Ce=G.clientX-J.left<J.width/2?"left":"right";D(e.id,s,z,Ce)}},onPointerLeave:()=>{P.draggedPanelId&&D(e.id,"",-1,null)},className:`rdd-workspace-tab ${I} ${_}`,style:{cursor:te?.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:te?.icon||b||Cn}),(0,f.jsxs)("span",{children:[me(Y.title,N),Y.dirty?" *":""]})]}),te?.renderHeaderActions&&(0,f.jsx)("span",{className:"rdd-tab-header-actions",onClick:G=>G.stopPropagation(),onPointerDown:G=>G.stopPropagation(),children:te.renderHeaderActions(s)}),te?.canClose!==!1&&(0,f.jsx)("span",{onClick:G=>{G.stopPropagation(),M(s)},title:me(W.closeTab,N),className:"rdd-close-tab-x",style:{width:"18px",height:"18px",...te?.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"})})})]},s)})}),k.right&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-right",onPointerDown:s=>s.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:me(W.closeEmptyGroup,N),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 ${E??""}`,style:{position:"relative",overflow:"hidden"},children:[e.activePanelId&&P.panels[e.activePanelId]?(0,f.jsx)(Un,{panelId:e.activePanelId},e.activePanelId):(0,f.jsx)("div",{className:"rdd-empty-leaf-placeholder",children:(0,f.jsx)("span",{children:"Empty Workspace Section"})}),P.draggedPanelId!==null&&(()=>{let s=z=>n?.leafId===e.id&&n.position===z;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${s("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${s("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${s("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${s("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${s("center")?" rdd-dock-target-box--active":""}`,children:"\u25A3"})]})})})(),P.draggedPanelId!==null&&n!==null&&n.leafId===e.id&&(0,f.jsx)("div",{className:"rdd-dock-preview-highlight",style:(()=>{let s=n.position,z=`${P.splitRatio*100}%`,Y=`${(1-P.splitRatio)*100}%`;return{left:s==="right"?Y:"0",top:s==="bottom"?Y:"0",width:s==="left"||s==="right"?z:"100%",height:s==="top"||s==="bottom"?z:"100%"}})()})]})]})},rr=({skin:e="vscode",defaultPanelIcon:t,taskbarVisibility:n="always",contextMenuAdapter:o=gt,animations:g=!0})=>{let l=Ae(),D=Rt(),{restorePanel:b,minimizePanel:M,requestClosePanel:P,maximizePanel:C,updateFloatingPosition:v,focusPanel:S,floatPanel:L,setDraggedPanelId:N,dockPanelToGroup:W,movePanelOrder:c,dockPanelToWorkspaceEdge:E,setActivePanel:w,getPanelContextMenuItems:k,showContextMenu:m,registerContextMenuFn:R}=hn(),{openModal:H}=tt(),B=_e(),s=Be(),z=V.default.useCallback(r=>{let x=l.panels[r];P(r,{onConfirm:u=>new Promise(p=>{let h=u||x?.dirtyOptions,T=x?me(x.title,B):"Panel";H(nt,{title:h?.title||s.unsavedChangesTitle,message:h?.message||{id:s.unsavedChangesMessage.id,defaultMessage:s.unsavedChangesMessage.defaultMessage,values:{title:T}},alert:h?.alert,alertType:h?.alertType||"danger",useYesNoTitles:!0,onOK:()=>p(!0),onCancel:()=>p(!1)},{size:"small"})})})},[P,l.panels,B,H,s]),{windowClass:Y,windowBodyClass:K}=Ve(),Q=(0,V.useContext)(St),ae=(0,V.useRef)(null);(0,V.useEffect)(()=>R(Q!==null?r=>Q.show(r):r=>ae.current?.show(r)),[Q,R]);let te=(0,V.useRef)(null),[ye,se]=(0,V.useState)(!1),Z=(0,V.useRef)(null),_=(0,V.useRef)(l.minimized.length),[I,G]=(0,V.useState)(null),J=(0,V.useRef)(null),ve=(0,V.useRef)("mouse"),[Ce,we]=(0,V.useState)(!1),Re=Q!==null?Q.isOpen:Ce;(0,V.useEffect)(()=>()=>{J.current&&clearTimeout(J.current)},[]),(0,V.useEffect)(()=>{I&&(l.minimized.some(x=>x.id===I.id)||G(null))},[l.minimized,I]),(0,V.useEffect)(()=>{if(!I?.fromTouch)return;let r=x=>{x.pointerType!=="touch"||document.querySelector(".rdd-taskbar-item-tooltip")?.contains(x.target)||G(null)};return document.addEventListener("pointerdown",r,{capture:!0}),()=>document.removeEventListener("pointerdown",r,{capture:!0})},[I?.fromTouch]);let[De,Oe]=(0,V.useState)(null),We=(0,V.useRef)(null),[ee,Me]=(0,V.useState)({x:0,y:0}),[Ie,$e]=(0,V.useState)(null),Ye=(0,V.useRef)(null),Pe=r=>{$e(r),Ye.current=r},[ft,$t]=(0,V.useState)(null),ht=(0,V.useRef)(null),Ze=r=>{$t(r),ht.current=r},Lt=(0,V.useContext)(wt)?.isRtl??!1,[Gt,Ue]=(0,V.useState)(null),Xe=(0,V.useRef)(null),Yt=(r,x,u,p)=>{let h=p?{leafId:r,panelId:x,index:u,side:p}:null;Ue(h),Xe.current=h},Xt=(r,x)=>{let u=x?{leafId:r,position:x}:null;Oe(u),We.current=u,u&&(Pe(null),Ze(null))},Nt=(r,x)=>{let u=document.elementsFromPoint(r,x),p=!1,h=!1,T=!1;for(let A of u)if(A instanceof HTMLElement){if(!p&&A.dataset.dropZone){let F=A.dataset.leafId;if(F){let U=A.dataset.dropZone;Oe({leafId:F,position:U}),We.current={leafId:F,position:U},p=!0}}if(!T&&A.dataset.tabId){let F=A.dataset.leafId,U=parseInt(A.dataset.tabIndex||"0",10);if(F){let re=A.getBoundingClientRect(),q=r-re.left<re.width/2?"left":"right";Ue({leafId:F,panelId:A.dataset.tabId,index:U,side:q}),Xe.current={leafId:F,panelId:A.dataset.tabId,index:U,side:q},T=!0}}if(!h&&A.dataset.edgeTrigger&&(Pe(A.dataset.edgeTrigger),h=!0),p&&h&&T)break}p||(Oe(null),We.current=null),h||Pe(null),T||(Ue(null),Xe.current=null)},it=300,st=8,Ge=()=>{N(null),Oe(null),We.current=null,Ue(null),Xe.current=null,Pe(null)},Je=r=>l.isRtl?r==="left"?"right":r==="right"?"left":r:r,zt=(r,x)=>{let u=We.current,p=Xe.current,h=Ye.current,T=ht.current;if(h)E(r,Je(h));else if(p){let A=p.index;p.side==="right"&&(A+=1);let F=jn(l.gridRoot,p.leafId);if(F){let U=F.panels.indexOf(r);U!==-1&&U<A&&(A-=1)}c(r,p.leafId,A)}else u?W(r,u.leafId,Je(u.position)):T?L(r,void 0,Lt?Ft(T):T):L(r,{x:x.clientX-150,y:x.clientY-15,width:450,height:350});Ze(null),Ge()},Vt=(r,x)=>{if(x.pointerType==="mouse"&&x.button!==0)return;x.preventDefault();let u=x.currentTarget,p=x.clientX,h=x.clientY;if(x.pointerType==="touch"){let T=x.pointerId,A=!1,F=()=>{A=!0,clearTimeout(re),u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F)},U=q=>{Math.hypot(q.clientX-p,q.clientY-h)>st&&F()},re=setTimeout(()=>{if(A)return;u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F);try{u.setPointerCapture(T)}catch{return}u.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),navigator.vibrate&&navigator.vibrate(10);let q=!1,oe=de=>{q||(q=!0,N(r)),Me({x:de.clientX,y:de.clientY}),Nt(de.clientX,de.clientY)},ce=de=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",oe),u.removeEventListener("pointerup",ce),u.removeEventListener("pointercancel",ie),q?zt(r,de):Dt(r,de)},ie=()=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",oe),u.removeEventListener("pointerup",ce),u.removeEventListener("pointercancel",ie),q&&Ge()};u.addEventListener("pointermove",oe),u.addEventListener("pointerup",ce),u.addEventListener("pointercancel",ie)},it);u.addEventListener("pointermove",U),u.addEventListener("pointerup",F),u.addEventListener("pointercancel",F)}else{let T=!1,A=re=>{let q=re.clientX-p,oe=re.clientY-h;!T&&(Math.abs(q)>5||Math.abs(oe)>5)&&(T=!0,N(r)),T&&Me({x:re.clientX,y:re.clientY})},F=re=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",F),window.removeEventListener("pointercancel",U),T&&zt(r,re)},U=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",F),window.removeEventListener("pointercancel",U),T&&Ge()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",A),window.addEventListener("pointerup",F),window.addEventListener("pointercancel",U)}},Dt=(r,x)=>{x.preventDefault();let u=l.panels[r];if(!u)return;let h=D.get(u.component)?.defaultOptions,T=[];if(h?.canDrag!==!1&&T.push({label:me(s.floatWindow,B),icon:Et.float,action:()=>L(r)}),h?.canMinimize!==!1&&T.push({label:me(s.minimizePanel,B),icon:Et.minimize,action:()=>M(r)}),T.length>0&&h?.canClose!==!1&&T.push({separator:!0}),h?.canClose!==!1&&T.push({label:me(s.closeTab,B),icon:Et.close,action:()=>z(r)}),T.length===0)return;let A=k(r),F=A.length>0?[...T,{separator:!0},...A]:T;m({event:x,items:F})},at=(r,x)=>{x.preventDefault(),G(null),m({event:x,items:[{label:me(s.restorePanel,B),icon:Et.restore,action:()=>b(r)},{label:me(s.maximizePanel,B),icon:Et.maximize,action:()=>C(r)},{separator:!0},{label:me(s.closePanel,B),icon:Et.close,action:()=>z(r)}]})};(0,V.useEffect)(()=>{let r=Object.keys(l.panels);for(let x of Array.from(_t.keys()))r.includes(x)||_t.delete(x)},[l.panels]),(0,V.useEffect)(()=>{let r=()=>{l.draggedPanelId!==null&&(N(null),Oe(null),Ue(null))};return window.addEventListener("blur",r),()=>{window.removeEventListener("blur",r)}},[l.draggedPanelId]);let bt=(0,V.useRef)(null),[lt,un]=(0,V.useState)({width:1024,height:768});(0,V.useEffect)(()=>{let r=bt.current;if(!r)return;let x=!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&&!x){x=!0;let T=r,A=r.parentElement;for(;A&&A!==document.documentElement&&A.getBoundingClientRect().height<10;){T=A;A=A.parentElement}let F=T.tagName.toLowerCase(),U=T.id?` id="${T.id}"`:"",re=T.className?` class="${T.className}"`:"",q=T===r?"the WindowManager container itself":`a wrapper element: <${F}${U}${re}>`;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(bt),()=>{t._disconnect()}},[t,bt]);let gn=(0,O.useMemo)(()=>({getSnapshot:R,subscribeToState:H}),[R,H]);return(0,et.jsx)(_n.Provider,{value:pn,children:(0,et.jsx)(Hn.Provider,{value:S,children:(0,et.jsx)(An.Provider,{value:gn,children:(0,et.jsx)(wt.Provider,{value:E,children:(0,et.jsx)(Zt.Provider,{value:bt,children:(0,et.jsx)(On.Provider,{value:L||lt,children:(0,et.jsx)(Fn.Provider,{value:z,children:e})})})})})})})},Wn=e=>()=>{};function Ae(e){let t=(0,O.useContext)(wt),n=(0,O.useContext)(An),o=(0,O.useRef)(e);o.current=e;let g=(0,O.useSyncExternalStore)(e?n?.subscribeToState??Wn:Wn,()=>{let l=n?.getSnapshot()??t;return o.current?o.current(l):l},()=>{let l=n?.getSnapshot()??t;return o.current?o.current(l):l});if(!t)throw new Error("useWindowManagerState must be used within WindowManagerProvider");return e?g:t}var Mt=()=>{let e=(0,O.useContext)(Zt);if(!e)throw new Error("useWindowManagerActions must be used within WindowManagerProvider");return e},bn=()=>{let e=(0,O.useContext)(Zt);if(!e)throw new Error("useWindowManagerActionsInternal must be used within WindowManagerProvider");return e},_e=()=>(0,O.useContext)(On)||(t=>{let n=t.defaultMessage||t.id;return t.values&&Object.entries(t.values).forEach(([o,g])=>{n=n.replace(`{${o}}`,String(g))}),n}),me=(e,t)=>e?typeof e=="string"?e:t(e):"",$n=()=>{let{publish:e,subscribe:t}=Mt();return{publish:e,subscribe:t}},Be=()=>(0,O.useContext)(Fn),Ot=()=>ct().instanceId;function Gn(e){let t=(0,O.useContext)(Zt),n=Ot(),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 fe=qt(require("react"),1),vn=require("react-dom"),le=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 Tt(e,t){return typeof e=="string"?e:t?t(e):e.defaultMessage??e.id}function yn(e){return"separator"in e}function Jt(e){return!yn(e)&&"items"in e}var Xn=(0,fe.forwardRef)(({items:e,x:t,y:n,theme:o,fmt:g,onClose:l,onMouseEnter:D,onMouseLeave:b},M)=>((0,fe.useLayoutEffect)(()=>{let P=M?.current;if(!P)return;let C=P.getBoundingClientRect(),v=8;C.right>window.innerWidth-v&&(P.style.left=`${Math.max(v,window.innerWidth-C.width-v)}px`,P.style.right="auto"),C.bottom>window.innerHeight-v&&(P.style.top=`${Math.max(v,window.innerHeight-C.height-v)}px`),C.left<v&&(P.style.left=`${v}px`,P.style.right="auto"),C.top<v&&(P.style.top=`${v}px`)}),(0,vn.createPortal)((0,le.jsx)("div",{ref:M,className:`rdd-context-menu rdd-context-menu--${o} rdd-context-menu--submenu`,style:{position:"fixed",left:t,top:n,zIndex:9501},role:"menu",onMouseEnter:D,onMouseLeave:b,children:e.map((P,C)=>{if(yn(P))return(0,le.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},C);let v=P,S=v.checkbox&&v.checkbox.active!==!1,L=S&&v.checkbox.value,N=v.disabled===!0||(S?v.checkbox.enabled===!1:!1);return(0,le.jsxs)("button",{type:"button",className:`rdd-context-menu__item${N?" rdd-context-menu__item--disabled":""}`,title:v.title?Tt(v.title,g):void 0,disabled:N,"data-cy-action":v.cyAction,onClick:()=>{N||(v.action?.(),l())},role:"menuitem","aria-checked":S?L:void 0,children:[v.icon?(0,le.jsx)("span",{className:"rdd-context-menu__icon",children:v.icon}):(0,le.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,le.jsx)("span",{className:"rdd-context-menu__label",children:Tt(v.label,g)}),S&&(0,le.jsx)("span",{className:`rdd-context-menu__checkbox${L?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,le.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,le.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),L&&(0,le.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},C)})}),document.body)));Xn.displayName="ContextMenuSubMenuPanel";var Yn={visible:!1,x:0,y:0,items:[]},Qt=(0,fe.forwardRef)(({theme:e="dark",formatMessageProvider:t,onShow:n,onHide:o,onOpenChange:g,className:l,style:D},b)=>{let[M,P]=(0,fe.useState)(Yn),[C,v]=(0,fe.useState)(null),S=(0,fe.useRef)(null),L=(0,fe.useRef)(null),N=(0,fe.useRef)(new Map),W=(0,fe.useRef)({open:null,close:null}),c=fe.default.useCallback(()=>{P(Yn),v(null),W.current.open&&clearTimeout(W.current.open),W.current.close&&clearTimeout(W.current.close),W.current.open=null,W.current.close=null,o?.(),g?.(!1)},[o,g]);if((0,fe.useImperativeHandle)(b,()=>({show({event:s,x:z,y:Y,items:K}){let Q=s?Qo(s):{x:z??0,y:Y??0};N.current.clear(),P({visible:!0,x:Q.x,y:Q.y,items:K}),v(null),n?.(),g?.(!0)}}),[n,g]),(0,fe.useEffect)(()=>{if(!M.visible)return;let s=z=>{S.current?.contains(z.target)||L.current?.contains(z.target)||c()};return document.addEventListener("pointerdown",s,{capture:!0}),window.addEventListener("click",s),()=>{document.removeEventListener("pointerdown",s,{capture:!0}),window.removeEventListener("click",s)}},[M.visible,c]),(0,fe.useEffect)(()=>{if(!M.visible)return;let s=z=>{z.key==="Escape"&&c()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[M.visible,c]),(0,fe.useLayoutEffect)(()=>{if(!M.visible||!S.current)return;let s=S.current,z=s.getBoundingClientRect(),Y=8;z.right>window.innerWidth-Y&&(s.style.left=`${Math.max(Y,window.innerWidth-z.width-Y)}px`),z.bottom>window.innerHeight-Y&&(s.style.top=`${Math.max(Y,window.innerHeight-z.height-Y)}px`),z.left<Y&&(s.style.left=`${Y}px`),z.top<Y&&(s.style.top=`${Y}px`)},[M.visible]),!M.visible)return null;let E=t,w=0,k=0;if(C!==null){let s=N.current.get(C);if(s){let z=s.getBoundingClientRect();w=document.documentElement.dir==="rtl"?window.innerWidth-z.left+2:z.right+2,k=z.top}}function m(){W.current.open&&(clearTimeout(W.current.open),W.current.open=null)}function R(){W.current.close&&(clearTimeout(W.current.close),W.current.close=null)}function H(s,z){R(),C!==null&&C!==s&&(m(),v(null)),Jt(z)&&z.items?.length?(m(),W.current.open=setTimeout(()=>{v(s)},150)):Jt(z)||(m(),C!==null&&(W.current.close=setTimeout(()=>v(null),200)))}function B(s){m(),Jt(s)&&s.items?.length&&(W.current.close=setTimeout(()=>v(null),200))}return(0,vn.createPortal)((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("div",{ref:S,className:`rdd-context-menu rdd-context-menu--${e}${l?` ${l}`:""}`,style:{position:"fixed",left:M.x,top:M.y,zIndex:9500,...D},role:"menu","aria-orientation":"vertical",children:M.items.map((s,z)=>{if(yn(s))return(0,le.jsx)("hr",{className:"rdd-context-menu__separator",role:"separator"},z);if(Jt(s))return(0,le.jsxs)("button",{ref:te=>{N.current.set(z,te)},type:"button",className:`rdd-context-menu__item rdd-context-menu__item--has-submenu${C===z?" rdd-context-menu__item--submenu-open":""}`,title:s.title?Tt(s.title,E):void 0,onMouseEnter:()=>H(z,s),onMouseLeave:()=>B(s),role:"menuitem","aria-haspopup":"true","aria-expanded":C===z,children:[(0,le.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,le.jsx)("span",{className:"rdd-context-menu__label",children:Tt(s.label,E)}),(0,le.jsx)("span",{className:"rdd-context-menu__chevron","aria-hidden":"true",children:"\u203A"})]},z);let Y=s,K=Y.checkbox&&Y.checkbox.active!==!1,Q=K&&Y.checkbox.value,ae=Y.disabled===!0||(K?Y.checkbox.enabled===!1:!1);return(0,le.jsxs)("button",{ref:te=>{N.current.set(z,te)},type:"button",className:`rdd-context-menu__item${ae?" rdd-context-menu__item--disabled":""}`,title:Y.title?Tt(Y.title,E):void 0,disabled:ae,"data-cy-action":Y.cyAction,onClick:()=>{ae||(Y.action?.(),c())},onMouseEnter:()=>H(z,s),onMouseLeave:()=>B(s),role:"menuitem","aria-checked":K?Q:void 0,children:[Y.icon?(0,le.jsx)("span",{className:"rdd-context-menu__icon",children:Y.icon}):(0,le.jsx)("span",{className:"rdd-context-menu__icon","aria-hidden":"true"}),(0,le.jsx)("span",{className:"rdd-context-menu__label",children:Tt(Y.label,E)}),K&&(0,le.jsx)("span",{className:`rdd-context-menu__checkbox${Q?" rdd-context-menu__checkbox--checked":""}`,"aria-hidden":"true",children:(0,le.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,le.jsx)("rect",{x:"0.75",y:"0.75",width:"10.5",height:"10.5",rx:"2",fill:Q?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.5"}),Q&&(0,le.jsx)("path",{d:"M2.5 6 L4.5 8.5 L9.5 3.5",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})]},z)})}),C!==null&&(()=>{let s=M.items[C];return(0,le.jsx)(Xn,{ref:L,items:s.items??[],x:w,y:k,theme:e,fmt:E,onClose:c,onMouseEnter:()=>R(),onMouseLeave:()=>{W.current.close=setTimeout(()=>v(null),200)}})})()]}),document.body)});Qt.displayName="ContextMenu";var gt={Component:Qt},St=fe.default.createContext(null),en=({adapter:e=gt,children:t,...n})=>{let o=(0,fe.useRef)(null),[g,l]=fe.default.useState(!1),D=fe.default.useCallback(b=>{o.current?.show(b)},[]);return(0,le.jsxs)(St.Provider,{value:{show:D,isOpen:g},children:[t,(0,le.jsx)(e.Component,{ref:o,...n,onShow:()=>{l(!0),n.onShow?.()},onHide:()=>{l(!1),n.onHide?.()}})]})};function Vn(){let e=fe.default.useContext(St);if(!e)throw new Error("useShowContextMenu must be used within a ContextMenuProvider");return e.show}var he=require("react"),xn=require("react/jsx-runtime"),er=0,Pn=()=>`panel-${++er}-${Date.now()}`,tn=new Map,Kn={leftPanel:null,rightPanel:null,modals:[]},qn=(0,he.createContext)(null),jn=(0,he.createContext)(null),nn=({children:e})=>{let[t,n]=(0,he.useState)(Kn),o=(0,he.useRef)(t);o.current=t;let g=(0,he.useCallback)((c,E)=>{tn.set(c,E)},[]),l=(0,he.useCallback)(c=>{tn.delete(c)},[]),D=(0,he.useCallback)(async(c,E,w={})=>{let k=o.current.leftPanel;if(k){let H=tn.get(k.id);if(H&&!await H())return null}let m=Pn(),R={id:m,Component:c,props:E,containerType:"left-panel",options:w};return n(H=>({...H,leftPanel:R})),m},[]),b=(0,he.useCallback)(async(c,E,w={})=>{let k=o.current.rightPanel;if(k){let H=tn.get(k.id);if(H&&!await H())return null}let m=Pn(),R={id:m,Component:c,props:E,containerType:"right-panel",options:w};return n(H=>({...H,rightPanel:R})),m},[]),M=(0,he.useCallback)((c,E,w={})=>{let k=Pn(),m=E.title,R={...w,title:w.title||m||"Confirmation"},H={id:k,Component:c,props:E,containerType:"modal",options:R};return n(B=>({...B,modals:[...B.modals,H]})),k},[]),P=(0,he.useCallback)(c=>{n(E=>({leftPanel:E.leftPanel?.id===c?null:E.leftPanel,rightPanel:E.rightPanel?.id===c?null:E.rightPanel,modals:E.modals.filter(w=>w.id!==c)}))},[]),C=(0,he.useCallback)(()=>{n(Kn)},[]),v=(0,he.useCallback)(()=>{n(c=>({...c,modals:[]}))},[]),S=(0,he.useCallback)(c=>t.leftPanel?.id===c?t.leftPanel:t.rightPanel?.id===c?t.rightPanel:t.modals.find(E=>E.id===c),[t]),L=(0,he.useCallback)((c,E)=>{n(w=>({leftPanel:w.leftPanel?.id===c?{...w.leftPanel,...E}:w.leftPanel,rightPanel:w.rightPanel?.id===c?{...w.rightPanel,...E}:w.rightPanel,modals:w.modals.map(k=>k.id===c?{...k,...E}:k)}))},[]),N=(0,he.useCallback)((c,E,w)=>{L(c,{dirty:E,dirtyOptions:w})},[L]),W=(0,he.useMemo)(()=>({openLeftPanel:D,openRightPanel:b,openModal:M,close:P,closeAll:C,closeAllModals:v,getInstance:S,updateInstance:L,setDirty:N,registerCloseHandler:g,unregisterCloseHandler:l}),[D,b,M,P,C,v,S,L,N,g,l]);return(0,xn.jsx)(qn.Provider,{value:t,children:(0,xn.jsx)(jn.Provider,{value:W,children:e})})},Ke=()=>{let e=(0,he.useContext)(qn);if(!e)throw new Error("usePanelState must be used within PanelProvider");return e},tt=()=>{let e=(0,he.useContext)(jn);if(!e)throw new Error("usePanelActions must be used within PanelProvider");return e};var At=require("react");var He=require("react/jsx-runtime"),tr=({title:e,message:t,alert:n,alertType:o="info",useYesNoTitles:g=!1,onOK:l,onCancel:D})=>{let{requestClose:b,setIcon:M,setTitle:P}=ct(),C=_e(),v=Be(),S=(0,At.useRef)(null);(0,At.useEffect)(()=>{if(e){let w=typeof e=="string"?e:C(e);P(w)}M&&M((0,He.jsx)("span",{children:"\u2753"}))},[e,P,M,C]),(0,At.useEffect)(()=>{S.current?.focus({preventScroll:!0})},[]);let L=typeof t=="string"?t:C(t),N=C(g?v.no:v.cancel),W=C(g?v.yes:v.ok),c=w=>{w.preventDefault(),l?.(),b()},E=()=>{D?.(),b()};return(0,He.jsxs)("form",{onSubmit:c,className:"rdd-confirmation-form-body",children:[n&&(0,He.jsxs)("div",{className:`rdd-confirmation-alert confirmation-alert-${o}`,children:[(0,He.jsx)("span",{children:"\u2139\uFE0F"}),(0,He.jsx)("span",{children:n})]}),(0,He.jsx)("div",{style:{fontSize:"0.9rem",color:"inherit",lineHeight:1.5},children:L}),(0,He.jsx)("hr",{style:{marginTop:"0.5rem",marginBottom:"0.5rem",opacity:.1}}),(0,He.jsxs)("div",{className:"rdd-confirmation-actions",children:[(0,He.jsx)("button",{type:"button",className:"rdd-btn rdd-btn-sm rdd-btn-outline",onClick:E,children:N}),(0,He.jsx)("button",{type:"submit",className:"rdd-btn rdd-btn-sm rdd-btn-primary",ref:S,children:W})]})]})},nt=tr;function Ft(e){return e==="top-left"?"top-right":e==="top-right"?"top-left":e==="bottom-left"?"bottom-right":"bottom-left"}function qe(e){let{element:t,pointerId:n,startClientX:o,startClientY:g,captureStart:l,onMove:D,onEnd:b,activeClasses:M}=e;t.setPointerCapture(n),M?.forEach(({el:S,classes:L})=>S.classList.add(...L));let P=l(),C=S=>{D(S.clientX-o,S.clientY-g,P)},v=()=>{M?.forEach(({el:S,classes:L})=>S.classList.remove(...L)),t.removeEventListener("pointermove",C),t.removeEventListener("pointerup",v),t.removeEventListener("pointercancel",v),b?.(P)};t.addEventListener("pointermove",C),t.addEventListener("pointerup",v),t.addEventListener("pointercancel",v)}function kt(e,t,n,o,g){let{minW:l,minH:D,maxW:b,maxH:M,minX:P,minY:C}=g,{x:v,y:S,w:L,h:N}=o;if(e.includes("e")&&(L=Math.max(l,Math.min(o.w+t,b??1/0))),e.includes("w")){let W=o.w-l,c=P!=null?-(o.x-P):-1/0,E=Math.max(c,Math.min(t,W));L=o.w-E,v=o.x+E}if(e.includes("s")&&(N=Math.max(D,Math.min(o.h+n,M??1/0))),e.includes("n")){let W=o.h-D,c=C!=null?-(o.y-C):-1/0,E=Math.max(c,Math.min(n,W));N=o.h-E,S=o.y+E}return{x:v,y:S,w:L,h:N}}var on=require("react");function rn(){let[e,t]=(0,on.useState)(()=>document.documentElement.getAttribute("data-color-scheme")==="light"?"light":"dark");return(0,on.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"),Zn=(e,t)=>{if(!e)return null;if(e.type==="leaf")return e.id===t?e:null;for(let n of e.children){let o=Zn(n,t);if(o)return o}return null},_t=new Map,sn="preserved-dom-container",wn=(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"})]}),Et={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"})})})},Un=e=>{let t=_t.get(e);return t||(t=document.createElement("div"),t.style.width="100%",t.style.height="100%",_t.set(e,t)),t},nr=(e,t,n)=>{let o=t.component,g=n.get(o);if(!g)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 l=g.Component;return(0,f.jsx)(l,{...t.props??{},panelId:e})},Rn=new Map,ot=new Map,mt=e=>{let t=ot.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},ot.set(e,t)),t},Jn=({panelId:e})=>{let t=(0,V.useRef)(null);return(0,V.useEffect)(()=>{let n=t.current;if(!n)return;let o=Un(e);n.appendChild(o);let g=new ResizeObserver(l=>{for(let D of l){let{width:b,height:M}=D.contentRect;if(b>0&&M>0){Rn.set(e,{width:b,height:M});let P=ot.get(e);P&&P.onResize.forEach(C=>C(b,M))}}});return g.observe(n),()=>{g.disconnect();let l=document.getElementById(sn);l||(l=document.createElement("div"),l.id=sn,l.style.display="none",document.body.appendChild(l)),l.appendChild(o)}},[e]),(0,f.jsx)("div",{ref:t,style:{width:"100%",height:"100%"}})},or=({panelId:e})=>{let t=Ae(),n=Rt(),o=_e(),g=(0,V.useRef)(null),l=t.panels[e],D=l?n.get(l.component):null,b=D?.defaultOptions?.disableLivePreview||!1,M=Rn.get(e)||{width:800,height:500},P=M.width,C=M.height,L=Math.min(220/P,140/C);if((0,V.useEffect)(()=>{if(b)return;let N=g.current;if(!N)return;let W=_t.get(e);if(W)return N.appendChild(W),()=>{let c=document.getElementById(sn);c||(c=document.createElement("div"),c.id=sn,c.style.display="none",document.body.appendChild(c)),c.appendChild(W)}},[e,b]),b){let N=P*L,W=C*L,c=l?.title||D?.defaultOptions?.title||"Panel",E=me(c,o),w=(Array.from(E)[0]||"P").toUpperCase();return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${N}px`,height:`${W}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:w})})}return(0,f.jsx)("div",{className:"rdd-taskbar-item-preview-frame",style:{width:`${P*L}px`,height:`${C*L}px`},children:(0,f.jsx)("div",{ref:g,className:"rdd-taskbar-item-preview-host",style:{width:`${P}px`,height:`${C}px`,transform:`scale(${L})`,transformOrigin:"top left",position:"absolute",top:0,left:0,"--rdd-preview-scale":L}})})},rr=({panelId:e,children:t})=>{let n=Ae(),{requestClosePanel:o,setPanelDirty:g,registerCloseGuard:l,unregisterCloseGuard:D,registerStateProvider:b,unregisterStateProvider:M,updatePanelTitle:P,minimizePanel:C}=Mt(),v=n.minimized.some(m=>m.id===e),S=(0,V.useRef)(v);(0,V.useEffect)(()=>{let m=ot.get(e);m&&(v&&!S.current?m.onMinimize.forEach(R=>R()):!v&&S.current&&m.onRestore.forEach(R=>R()),S.current=v)},[v,e]);let L=n.activePanelId===e,N=(0,V.useRef)(L);(0,V.useEffect)(()=>{let m=N.current;N.current=L;let R=ot.get(e);R&&(L&&!m?R.onActivate.forEach(H=>H()):!L&&m&&R.onDeactivate.forEach(H=>H()))},[L,e]);let W=n.panels[e]?.state,c=W==="floating"?"floating-window":"dockable-panel",E=(0,V.useRef)(c);(0,V.useEffect)(()=>{if(W==="minimized")return;let m=E.current;E.current=c;let R=ot.get(e);R&&c!==m&&R.onContainerTypeChange.forEach(H=>H(c))},[c,W,e]),(0,V.useEffect)(()=>()=>{let m=ot.get(e);m&&(N.current&&m.onDeactivate.forEach(R=>R()),m.onClose.forEach(R=>R()),ot.delete(e))},[e]);let w=(0,V.useRef)(c),k=V.default.useMemo(()=>({requestClose:m=>o(e,m),setDirty:m=>g(e,m),onCloseRequested:m=>(l(e,m),()=>D(e)),registerStateProvider:m=>(b(e,m),()=>M(e)),setTitle:m=>P(e,m),instanceId:e,containerType:w.current,onClose:m=>{let R=mt(e);return R.onClose.add(m),()=>R.onClose.delete(m)},onMinimize:m=>{let R=mt(e);return R.onMinimize.add(m),()=>R.onMinimize.delete(m)},onRestore:m=>{let R=mt(e);return R.onRestore.add(m),()=>R.onRestore.delete(m)},onResize:m=>{let R=mt(e);return R.onResize.add(m),()=>R.onResize.delete(m)},requestMinimize:()=>C(e),getDimensions:()=>Rn.get(e)??null,onActivate:m=>{let R=mt(e);return R.onActivate.add(m),()=>R.onActivate.delete(m)},onDeactivate:m=>{let R=mt(e);return R.onDeactivate.add(m),()=>R.onDeactivate.delete(m)},onContainerTypeChange:m=>{let R=mt(e);return R.onContainerTypeChange.add(m),()=>R.onContainerTypeChange.delete(m)}}),[e,o,g,l,D,b,M,P,C]);return(0,f.jsx)(Qe,{value:k,children:t})},Qn=({node:e,path:t,onTabRightClick:n,activeDropZone:o,onHoverDropZone:g,onTabDragStart:l,hoveredTab:D,onTabHover:b,defaultPanelIcon:M,onRequestClosePanel:P})=>{let{updateSplitSizes:C}=Mt();if(e.type==="leaf")return(0,f.jsx)(ir,{leaf:e,onTabRightClick:n,activeDropZone:o,onHoverDropZone:g,onTabDragStart:l,hoveredTab:D,onTabHover:b,defaultPanelIcon:M,onRequestClosePanel:P});let v=e.orientation==="horizontal",S=(L,N)=>{N.preventDefault();let W=N.currentTarget,c=W.parentElement,E=c?v?c.clientWidth:c.clientHeight:v?1e3:800;qe({element:W,pointerId:N.pointerId,startClientX:N.clientX,startClientY:N.clientY,captureStart:()=>[...e.sizes],activeClasses:[{el:W,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active",v?"rdd-resizing-col-active":"rdd-resizing-row-active"]}],onMove:(w,k,m)=>{let R=(v?w:k)/E,H=[...m];H[L]+=R,H[L+1]-=R,H[L]>.1&&H[L+1]>.1&&C(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((L,N)=>{let W=e.sizes[N]*100;return(0,f.jsxs)(V.default.Fragment,{children:[(0,f.jsx)("div",{style:{flexGrow:e.sizes[N],flexBasis:`${W}%`,overflow:"hidden",position:"relative",minWidth:0,minHeight:0},children:(0,f.jsx)(Qn,{node:L,path:[...t,N],onTabRightClick:n,activeDropZone:o,onHoverDropZone:g,onTabDragStart:l,hoveredTab:D,onTabHover:b,defaultPanelIcon:M,onRequestClosePanel:P})}),N<e.children.length-1&&(0,f.jsx)("div",{onPointerDown:c=>S(N,c),style:{cursor:v?"col-resize":"row-resize",width:v?"1px":"100%",height:v?"100%":"1px",zIndex:20},className:"rdd-resizer-bar"})]},N)})})},ir=({leaf:e,onTabRightClick:t,activeDropZone:n,onHoverDropZone:o,onTabDragStart:g,hoveredTab:l,onTabHover:D,defaultPanelIcon:b,onRequestClosePanel:M})=>{let P=Ae(),C=Rt(),{openPanel:v,closeLeafGroup:S,setActivePanel:L}=bn(),N=_e(),W=Be(),{windowClass:c,windowBodyClass:E}=Ve(),w=(0,V.useRef)(null),[k,m]=(0,V.useState)({left:!1,right:!1}),R=(0,V.useCallback)(()=>{let s=w.current;s&&m({left:s.scrollLeft>0,right:s.scrollLeft<s.scrollWidth-s.clientWidth-1})},[]);(0,V.useEffect)(()=>{let s=w.current;if(!s)return;s.addEventListener("scroll",R,{passive:!0});let z=new ResizeObserver(R);return z.observe(s),R(),()=>{s.removeEventListener("scroll",R),z.disconnect()}},[R]);let H=s=>{w.current?.scrollBy({left:s==="left"?-120:120,behavior:"smooth"})},B=s=>{v(s,P.panels[s].component),L(s)};return(0,f.jsxs)("div",{"data-active-panel-id":e.activePanelId||"",className:`rdd-workspace-panel ${c??""}`,style:{overflow:"hidden",position:"relative"},children:[(0,f.jsxs)("div",{className:"rdd-workspace-tab-bar",style:{minHeight:"38px"},children:[k.left&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-left",onPointerDown:s=>s.stopPropagation(),onClick:()=>H("left"),tabIndex:-1,"aria-label":"Scroll tabs left",children:"\u2039"}),(0,f.jsx)("div",{ref:w,className:"rdd-tab-headers-container",style:{scrollbarWidth:"none"},onPointerMove:s=>{P.draggedPanelId&&s.target===s.currentTarget&&D(e.id,"EMPTY",e.panels.length,"right")},onPointerLeave:s=>{P.draggedPanelId&&s.target===s.currentTarget&&D(e.id,"",-1,null)},children:e.panels.map((s,z)=>{let Y=P.panels[s];if(!Y)return null;let K=e.activePanelId===s,Q=P.activePanelId===s,te=C.get(Y.component)?.defaultOptions,ye=l&&l.leafId===e.id&&l.panelId===s,se=z===e.panels.length-1,Z=l&&l.leafId===e.id&&l.panelId==="EMPTY"&&se,_=ye?l.side==="left"?"rdd-drag-hover-left":"rdd-drag-hover-right":Z?"rdd-drag-hover-right":"",I=K?Q?"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":s,"data-leaf-id":e.id,"data-tab-index":String(z),onClick:()=>B(s),onPointerDown:G=>{te?.canDrag!==!1&&g(s,G)},onContextMenu:G=>t(s,G),onPointerMove:G=>{if(P.draggedPanelId&&G.pointerType!=="touch"){let J=G.currentTarget.getBoundingClientRect(),Ce=G.clientX-J.left<J.width/2?"left":"right";D(e.id,s,z,Ce)}},onPointerLeave:()=>{P.draggedPanelId&&D(e.id,"",-1,null)},className:`rdd-workspace-tab ${I} ${_}`,style:{cursor:te?.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:te?.icon||b||wn}),(0,f.jsxs)("span",{children:[me(Y.title,N),Y.dirty?" *":""]})]}),te?.renderHeaderActions&&(0,f.jsx)("span",{className:"rdd-tab-header-actions",onClick:G=>G.stopPropagation(),onPointerDown:G=>G.stopPropagation(),children:te.renderHeaderActions(s)}),te?.canClose!==!1&&(0,f.jsx)("span",{onClick:G=>{G.stopPropagation(),M(s)},title:me(W.closeTab,N),className:"rdd-close-tab-x",style:{width:"18px",height:"18px",...te?.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"})})})]},s)})}),k.right&&(0,f.jsx)("button",{className:"rdd-tab-scroll-btn rdd-tab-scroll-btn-right",onPointerDown:s=>s.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:me(W.closeEmptyGroup,N),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 ${E??""}`,style:{position:"relative",overflow:"hidden"},children:[e.activePanelId&&P.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"})}),P.draggedPanelId!==null&&(()=>{let s=z=>n?.leafId===e.id&&n.position===z;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${s("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${s("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${s("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${s("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${s("center")?" rdd-dock-target-box--active":""}`,children:"\u25A3"})]})})})(),P.draggedPanelId!==null&&n!==null&&n.leafId===e.id&&(0,f.jsx)("div",{className:"rdd-dock-preview-highlight",style:(()=>{let s=n.position,z=`${P.splitRatio*100}%`,Y=`${(1-P.splitRatio)*100}%`;return{left:s==="right"?Y:"0",top:s==="bottom"?Y:"0",width:s==="left"||s==="right"?z:"100%",height:s==="top"||s==="bottom"?z:"100%"}})()})]})]})},sr=({skin:e="vscode",defaultPanelIcon:t,taskbarVisibility:n="always",contextMenuAdapter:o=gt,animations:g=!0})=>{let l=Ae(),D=Rt(),{restorePanel:b,minimizePanel:M,requestClosePanel:P,maximizePanel:C,updateFloatingPosition:v,focusPanel:S,floatPanel:L,setDraggedPanelId:N,dockPanelToGroup:W,movePanelOrder:c,dockPanelToWorkspaceEdge:E,setActivePanel:w,getPanelContextMenuItems:k,showContextMenu:m,registerContextMenuFn:R}=bn(),{openModal:H}=tt(),B=_e(),s=Be(),z=V.default.useCallback(r=>{let x=l.panels[r];P(r,{onConfirm:u=>new Promise(p=>{let h=u||x?.dirtyOptions,T=x?me(x.title,B):"Panel";H(nt,{title:h?.title||s.unsavedChangesTitle,message:h?.message||{id:s.unsavedChangesMessage.id,defaultMessage:s.unsavedChangesMessage.defaultMessage,values:{title:T}},alert:h?.alert,alertType:h?.alertType||"danger",useYesNoTitles:!0,onOK:()=>p(!0),onCancel:()=>p(!1)},{size:"small"})})})},[P,l.panels,B,H,s]),{windowClass:Y,windowBodyClass:K}=Ve(),Q=(0,V.useContext)(St),ae=(0,V.useRef)(null);(0,V.useEffect)(()=>R(Q!==null?r=>Q.show(r):r=>ae.current?.show(r)),[Q,R]);let te=(0,V.useRef)(null),[ye,se]=(0,V.useState)(!1),Z=(0,V.useRef)(null),_=(0,V.useRef)(l.minimized.length),[I,G]=(0,V.useState)(null),J=(0,V.useRef)(null),ve=(0,V.useRef)("mouse"),[Ce,we]=(0,V.useState)(!1),Re=Q!==null?Q.isOpen:Ce;(0,V.useEffect)(()=>()=>{J.current&&clearTimeout(J.current)},[]),(0,V.useEffect)(()=>{I&&(l.minimized.some(x=>x.id===I.id)||G(null))},[l.minimized,I]),(0,V.useEffect)(()=>{if(!I?.fromTouch)return;let r=x=>{x.pointerType!=="touch"||document.querySelector(".rdd-taskbar-item-tooltip")?.contains(x.target)||G(null)};return document.addEventListener("pointerdown",r,{capture:!0}),()=>document.removeEventListener("pointerdown",r,{capture:!0})},[I?.fromTouch]);let[De,Oe]=(0,V.useState)(null),We=(0,V.useRef)(null),[ee,Me]=(0,V.useState)({x:0,y:0}),[Ie,$e]=(0,V.useState)(null),Ye=(0,V.useRef)(null),Pe=r=>{$e(r),Ye.current=r},[ft,$t]=(0,V.useState)(null),ht=(0,V.useRef)(null),Ze=r=>{$t(r),ht.current=r},Lt=(0,V.useContext)(wt)?.isRtl??!1,[Gt,Ue]=(0,V.useState)(null),Xe=(0,V.useRef)(null),Yt=(r,x,u,p)=>{let h=p?{leafId:r,panelId:x,index:u,side:p}:null;Ue(h),Xe.current=h},Xt=(r,x)=>{let u=x?{leafId:r,position:x}:null;Oe(u),We.current=u,u&&(Pe(null),Ze(null))},Nt=(r,x)=>{let u=document.elementsFromPoint(r,x),p=!1,h=!1,T=!1;for(let A of u)if(A instanceof HTMLElement){if(!p&&A.dataset.dropZone){let F=A.dataset.leafId;if(F){let U=A.dataset.dropZone;Oe({leafId:F,position:U}),We.current={leafId:F,position:U},p=!0}}if(!T&&A.dataset.tabId){let F=A.dataset.leafId,U=parseInt(A.dataset.tabIndex||"0",10);if(F){let re=A.getBoundingClientRect(),q=r-re.left<re.width/2?"left":"right";Ue({leafId:F,panelId:A.dataset.tabId,index:U,side:q}),Xe.current={leafId:F,panelId:A.dataset.tabId,index:U,side:q},T=!0}}if(!h&&A.dataset.edgeTrigger&&(Pe(A.dataset.edgeTrigger),h=!0),p&&h&&T)break}p||(Oe(null),We.current=null),h||Pe(null),T||(Ue(null),Xe.current=null)},it=300,st=8,Ge=()=>{N(null),Oe(null),We.current=null,Ue(null),Xe.current=null,Pe(null)},Je=r=>l.isRtl?r==="left"?"right":r==="right"?"left":r:r,zt=(r,x)=>{let u=We.current,p=Xe.current,h=Ye.current,T=ht.current;if(h)E(r,Je(h));else if(p){let A=p.index;p.side==="right"&&(A+=1);let F=Zn(l.gridRoot,p.leafId);if(F){let U=F.panels.indexOf(r);U!==-1&&U<A&&(A-=1)}c(r,p.leafId,A)}else u?W(r,u.leafId,Je(u.position)):T?L(r,void 0,Lt?Ft(T):T):L(r,{x:x.clientX-150,y:x.clientY-15,width:450,height:350});Ze(null),Ge()},Vt=(r,x)=>{if(x.pointerType==="mouse"&&x.button!==0)return;x.preventDefault();let u=x.currentTarget,p=x.clientX,h=x.clientY;if(x.pointerType==="touch"){let T=x.pointerId,A=!1,F=()=>{A=!0,clearTimeout(re),u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F)},U=q=>{Math.hypot(q.clientX-p,q.clientY-h)>st&&F()},re=setTimeout(()=>{if(A)return;u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F);try{u.setPointerCapture(T)}catch{return}u.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),navigator.vibrate&&navigator.vibrate(10);let q=!1,oe=de=>{q||(q=!0,N(r)),Me({x:de.clientX,y:de.clientY}),Nt(de.clientX,de.clientY)},ce=de=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",oe),u.removeEventListener("pointerup",ce),u.removeEventListener("pointercancel",ie),q?zt(r,de):Dt(r,de)},ie=()=>{u.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),u.removeEventListener("pointermove",oe),u.removeEventListener("pointerup",ce),u.removeEventListener("pointercancel",ie),q&&Ge()};u.addEventListener("pointermove",oe),u.addEventListener("pointerup",ce),u.addEventListener("pointercancel",ie)},it);u.addEventListener("pointermove",U),u.addEventListener("pointerup",F),u.addEventListener("pointercancel",F)}else{let T=!1,A=re=>{let q=re.clientX-p,oe=re.clientY-h;!T&&(Math.abs(q)>5||Math.abs(oe)>5)&&(T=!0,N(r)),T&&Me({x:re.clientX,y:re.clientY})},F=re=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",F),window.removeEventListener("pointercancel",U),T&&zt(r,re)},U=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",F),window.removeEventListener("pointercancel",U),T&&Ge()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",A),window.addEventListener("pointerup",F),window.addEventListener("pointercancel",U)}},Dt=(r,x)=>{x.preventDefault();let u=l.panels[r];if(!u)return;let h=D.get(u.component)?.defaultOptions,T=[];if(h?.canDrag!==!1&&T.push({label:me(s.floatWindow,B),icon:Et.float,action:()=>L(r)}),h?.canMinimize!==!1&&T.push({label:me(s.minimizePanel,B),icon:Et.minimize,action:()=>M(r)}),T.length>0&&h?.canClose!==!1&&T.push({separator:!0}),h?.canClose!==!1&&T.push({label:me(s.closeTab,B),icon:Et.close,action:()=>z(r)}),T.length===0)return;let A=k(r),F=A.length>0?[...T,{separator:!0},...A]:T;m({event:x,items:F})},at=(r,x)=>{x.preventDefault(),G(null),m({event:x,items:[{label:me(s.restorePanel,B),icon:Et.restore,action:()=>b(r)},{label:me(s.maximizePanel,B),icon:Et.maximize,action:()=>C(r)},{separator:!0},{label:me(s.closePanel,B),icon:Et.close,action:()=>z(r)}]})};(0,V.useEffect)(()=>{let r=Object.keys(l.panels);for(let x of Array.from(_t.keys()))r.includes(x)||_t.delete(x)},[l.panels]),(0,V.useEffect)(()=>{let r=()=>{l.draggedPanelId!==null&&(N(null),Oe(null),Ue(null))};return window.addEventListener("blur",r),()=>{window.removeEventListener("blur",r)}},[l.draggedPanelId]);let bt=(0,V.useRef)(null),[lt,pn]=(0,V.useState)({width:1024,height:768});(0,V.useEffect)(()=>{let r=bt.current;if(!r)return;let x=!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&&!x){x=!0;let T=r,A=r.parentElement;for(;A&&A!==document.documentElement&&A.getBoundingClientRect().height<10;){T=A;A=A.parentElement}let F=T.tagName.toLowerCase(),U=T.id?` id="${T.id}"`:"",re=T.className?` class="${T.className}"`:"",q=T===r?"the WindowManager container itself":`a wrapper element: <${F}${U}${re}>`;console.warn(`[react-dockable-desktop] Workspace height is 0px \u2014 the workspace will be invisible.
6
6
 
7
7
  Zero height found at: ${q}
8
8
 
@@ -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.`)}un({width:Math.max(100,h.width),height:Math.max(100,h.height)})});return u.observe(r),()=>{u.disconnect()}},[]),(0,V.useEffect)(()=>{let r=lt.width,x=lt.height;l.floating.forEach(u=>{let p=typeof u.width=="string"?parseFloat(u.width):u.width,h=typeof u.height=="string"?parseFloat(u.height):u.height,T=typeof u.x=="string"?parseFloat(u.x):u.x,A=typeof u.y=="string"?parseFloat(u.y):u.y,F=p,U=h,re=T,q=A,oe=!1;if(F>r&&(F=Math.max(200,r-20),oe=!0),U>x&&(U=Math.max(150,x-40),oe=!0),!u.anchor){let ce=r-100;re>ce&&(re=Math.max(0,ce),oe=!0);let ie=x-40;q>ie&&(q=Math.max(0,ie),oe=!0)}oe&&v(u.id,{x:re,y:q,width:F,height:U})})},[lt,l.floating,v]),(0,V.useEffect)(()=>{let r=x=>{if(x.button!==0)return;let u=x.target;if(!u||typeof u.closest!="function")return;let p=u.closest(".rdd-floating-window");if(p){let T=p.getAttribute("data-window-id");T&&(w(T),S(T));return}let h=u.closest(".rdd-workspace-panel");if(h){let T=h.getAttribute("data-active-panel-id");T&&w(T)}};return document.addEventListener("pointerdown",r),()=>{document.removeEventListener("pointerdown",r)}},[S,w]);let pn=(r,x)=>{x.preventDefault();let u=l.floating.find(q=>q.id===r);if(!u||u.maximized)return;S(r);let p=x.currentTarget,h=p.closest(".rdd-floating-window"),T=x.clientX,A=x.clientY,F=h?h.offsetLeft:0,U=h?h.offsetTop:0,re=()=>{let q=We.current,oe=Xe.current,ce=Ye.current,ie=ht.current;if(ie)v(r,{anchor:Lt?Ft(ie):ie});else if(ce)E(r,Je(ce));else if(oe){let de=oe.index;oe.side==="right"&&(de+=1),c(r,oe.leafId,de)}else q&&W(r,q.leafId,Je(q.position));Ze(null),Ge()};if(x.pointerType==="touch"){let q=x.pointerId,oe=!1,ce=()=>{oe=!0,clearTimeout(de),p.removeEventListener("pointermove",ie),p.removeEventListener("pointerup",ce),p.removeEventListener("pointercancel",ce)},ie=ue=>{Math.hypot(ue.clientX-T,ue.clientY-A)>st&&ce()},de=setTimeout(()=>{if(oe)return;p.removeEventListener("pointermove",ie),p.removeEventListener("pointerup",ce),p.removeEventListener("pointercancel",ce);try{p.setPointerCapture(q)}catch{return}p.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),N(r);let ue=vt=>{let yt=vt.clientX-T,Pt=vt.clientY-A;v(r,{x:F+yt,y:U+Pt,anchor:null}),Nt(vt.clientX,vt.clientY)},Te=()=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",ue),p.removeEventListener("pointerup",Te),p.removeEventListener("pointercancel",dt),re()},dt=()=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",ue),p.removeEventListener("pointerup",Te),p.removeEventListener("pointercancel",dt),Ge()};p.addEventListener("pointermove",ue),p.addEventListener("pointerup",Te),p.addEventListener("pointercancel",dt)},it);p.addEventListener("pointermove",ie),p.addEventListener("pointerup",ce),p.addEventListener("pointercancel",ce)}else{let q=!1,oe=de=>{let ue=de.clientX-T,Te=de.clientY-A;!q&&(Math.abs(ue)>5||Math.abs(Te)>5)&&(q=!0,N(r)),q&&v(r,{x:F+ue,y:U+Te,anchor:null})},ce=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",ce),window.removeEventListener("pointercancel",ie),q&&re()},ie=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",ce),window.removeEventListener("pointercancel",ie),q&&Ge()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",oe),window.addEventListener("pointerup",ce),window.addEventListener("pointercancel",ie)}},i=(r,x,u)=>{u.preventDefault(),u.stopPropagation();let p=l.floating.find(ue=>ue.id===r);if(!p||p.maximized)return;S(r);let h=u.currentTarget,T=h.closest(".rdd-floating-window"),A={x:T?T.offsetLeft:0,y:T?T.offsetTop:0,w:T?T.offsetWidth:400,h:T?T.offsetHeight:300},F=lt.width,U=lt.height,re=typeof p.x=="string"?parseFloat(p.x):p.x,q=typeof p.y=="string"?parseFloat(p.y):p.y,oe=typeof p.width=="string"?parseFloat(p.width):p.width,ce=typeof p.height=="string"?parseFloat(p.height):p.height,ie=x==="se"&&Math.abs(re+oe-F)<4,de=x==="se"&&Math.abs(q+ce-U)<4;qe({element:h,pointerId:u.pointerId,startClientX:u.clientX,startClientY:u.clientY,captureStart:()=>A,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(ue,Te,dt)=>{let vt=kt(x,ue,Te,dt,{minW:200,minH:150}),{x:yt,y:Pt,w:gn,h:mn}=vt;ie&&(yt=F-gn,yt<0&&(yt=0,gn=F)),de&&(Pt=U-mn,Pt<0&&(Pt=0,mn=U)),v(r,{x:yt,y:Pt,width:gn,height:mn})}})},y=r=>{if(te.current){let x=r==="left"?-150:150;te.current.scrollBy({left:x,behavior:"smooth"})}},d=(0,V.useCallback)(()=>{Z.current&&clearTimeout(Z.current),se(!0)},[]),a=(0,V.useCallback)(()=>{Z.current=setTimeout(()=>se(!1),400)},[]);(0,V.useEffect)(()=>{n==="autohide"&&l.minimized.length>_.current&&(Z.current&&clearTimeout(Z.current),se(!0),Z.current=setTimeout(()=>se(!1),2e3)),_.current=l.minimized.length},[l.minimized.length,n]);let $=rn();return(0,V.useEffect)(()=>(e?document.documentElement.setAttribute("data-workspace-skin",e):document.documentElement.removeAttribute("data-workspace-skin"),()=>{document.documentElement.removeAttribute("data-workspace-skin")}),[e]),(0,V.useEffect)(()=>($==="light"?document.documentElement.setAttribute("data-color-scheme","light"):document.documentElement.removeAttribute("data-color-scheme"),()=>{document.documentElement.removeAttribute("data-color-scheme")}),[$]),(0,V.useEffect)(()=>(g?document.documentElement.classList.remove("rdd-no-animations"):document.documentElement.classList.add("rdd-no-animations"),()=>{document.documentElement.classList.remove("rdd-no-animations")}),[g]),(0,f.jsxs)("div",{className:`rdd-workspace${g?"":" rdd-no-animations"}`,"data-workspace-skin":e,"data-color-scheme":$,style:{display:"flex",flexDirection:"column",position:"relative",width:"100%",height:"100%",overflow:"hidden",userSelect:"none"},dir:l.dir,children:[(0,f.jsxs)("div",{ref:bt,className:l.draggedPanelId?"rdd-dragging-active":void 0,style:{flexGrow:1,width:"100%",position:"relative",overflow:"hidden"},children:[l.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:()=>Pe("left"),onPointerLeave:()=>Pe(null)}),(0,f.jsx)("div",{"data-edge-trigger":"right",className:"rdd-workspace-edge-trigger rdd-edge-trigger-right",onPointerEnter:()=>Pe("right"),onPointerLeave:()=>Pe(null)}),(0,f.jsx)("div",{"data-edge-trigger":"top",className:"rdd-workspace-edge-trigger rdd-edge-trigger-top",onPointerEnter:()=>Pe("top"),onPointerLeave:()=>Pe(null)}),(0,f.jsx)("div",{"data-edge-trigger":"bottom",className:"rdd-workspace-edge-trigger rdd-edge-trigger-bottom",onPointerEnter:()=>Pe("bottom"),onPointerLeave:()=>Pe(null)})]}),l.draggedPanelId!==null&&["top-left","top-right","bottom-left","bottom-right"].map(r=>(0,f.jsx)("div",{className:`rdd-corner-zone rdd-corner-zone--${r}${ft===r?" rdd-corner-zone--hovered":""}`,onPointerEnter:()=>{Ze(r),Pe(null)},onPointerLeave:()=>Ze(null),"aria-hidden":"true"},r)),l.draggedPanelId!==null&&Ie!==null&&(0,f.jsx)("div",{className:"rdd-workspace-edge-preview",style:(()=>{let r=`${l.edgeSplitRatio*100}%`;switch(Ie){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:l.gridRoot?(0,f.jsx)(Jn,{node:l.gridRoot,path:[],onTabRightClick:Dt,activeDropZone:De,onHoverDropZone:Xt,onTabDragStart:Vt,hoveredTab:Gt,onTabHover:Yt,defaultPanelIcon:t,onRequestClosePanel:z}):(0,f.jsx)("div",{className:"rdd-empty-workspace-grid",children:"Grid Empty"})}),l.floating.map(r=>{let x=l.panels[r.id];if(!x)return null;let u=r.maximized,p=l.draggedPanelId===r.id,h=l.activePanelId===r.id,A=D.get(x.component)?.defaultOptions;return(0,f.jsxs)("div",{"data-window-id":r.id,dir:l.dir,onPointerDownCapture:()=>{w(r.id),S(r.id)},className:`rdd-floating-window ${u?"rdd-maximized":""} ${h?"rdd-window-focused":""} ${Y??""}`,style:(()=>{let re=typeof r.width=="number"?`${r.width}px`:r.width,q=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 oe=l.floating.filter(Te=>Te.anchor===r.anchor&&!Te.maximized),ce=oe.findIndex(Te=>Te.id===r.id),ie=8;for(let Te=0;Te<ce;Te++){let dt=typeof oe[Te].height=="number"?oe[Te].height:parseFloat(oe[Te].height);ie+=dt+8}let de=r.anchor.startsWith("top");return{position:"absolute",[r.anchor.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]:8,[de?"top":"bottom"]:ie,width:re,height:q,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:re,height:q,zIndex:r.z,pointerEvents:p?"none":"auto"}})(),children:[(0,f.jsxs)("div",{onDoubleClick:()=>C(r.id),onPointerDown:F=>{A?.canDrag!==!1&&pn(r.id,F)},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:[me(x.title,B),x.dirty?" *":""]})]}),(0,f.jsxs)("div",{className:"rdd-titlebar-actions",style:{gap:"var(--rdd-header-button-gap, 4px)"},onPointerDown:F=>F.stopPropagation(),children:[A?.renderHeaderActions&&(0,f.jsx)("div",{className:"rdd-window-header-actions",children:A.renderHeaderActions(r.id)}),k(r.id).length>0&&(0,f.jsx)("button",{type:"button",className:"rdd-custom-tab-btn rdd-btn-more-actions",title:"More actions",onClick:F=>{F.stopPropagation();let U=k(r.id);U.length!==0&&m({event:F,items:U})},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?me(s.restoreSize,B):me(s.maximize,B),onClick:()=>C(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:me(s.minimize,B),onClick:()=>M(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:me(s.close,B),onClick:()=>z(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:K??void 0,style:{flexGrow:1,width:"100%",overflow:"hidden",position:"relative",isolation:"isolate"},children:(0,f.jsx)(Un,{panelId:r.id},r.id)}),!u&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"n",F),className:"rdd-resize-handle rdd-resize-n"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"ne",F),className:"rdd-resize-handle rdd-resize-ne"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"e",F),className:"rdd-resize-handle rdd-resize-e"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"se",F),className:"rdd-resize-handle rdd-resize-se"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"s",F),className:"rdd-resize-handle rdd-resize-s"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"sw",F),className:"rdd-resize-handle rdd-resize-sw"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"w",F),className:"rdd-resize-handle rdd-resize-w"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"nw",F),className:"rdd-resize-handle rdd-resize-nw"})]})]},r.id)})]}),(n==="always"||l.minimized.length>0)&&(0,f.jsxs)("div",{className:["rdd-taskbar-footer-container",`taskbar-mode-${n}`,n==="autohide"&&ye?"rdd-taskbar-expanded":""].filter(Boolean).join(" "),style:{height:"48px",zIndex:100},onPointerEnter:n==="autohide"?d: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:l.minimized.length>4?"block":"none"},children:"\u25C0"}),(0,f.jsx)("div",{ref:te,className:"rdd-taskbar-items-container",style:{scrollSnapType:"x mandatory"},children:l.minimized.map(r=>{let u=D.get(r.component)?.defaultOptions?.icon||t||Cn;return(0,f.jsx)("div",{onClick:()=>{ve.current!=="touch"&&(G(null),b(r.id))},onContextMenu:p=>at(r.id,p),onPointerDown:p=>{if(ve.current=p.pointerType,p.pointerType!=="touch")return;let h=p.currentTarget,T=p.clientX,A=p.clientY,F=p.pointerId,U=!1,re=()=>{U=!0,clearTimeout(ce),h.removeEventListener("pointermove",oe),h.removeEventListener("pointerup",q),h.removeEventListener("pointercancel",re)},q=()=>{re();let ie=h.getBoundingClientRect();I?.id===r.id?(b(r.id),G(null)):G({id:r.id,rect:ie,title:r.title,component:r.component,fromTouch:!0})},oe=ie=>{Math.hypot(ie.clientX-T,ie.clientY-A)>st&&re()},ce=setTimeout(()=>{if(U)return;h.removeEventListener("pointermove",oe),h.removeEventListener("pointerup",q),h.removeEventListener("pointercancel",re);try{h.setPointerCapture(F)}catch{return}navigator.vibrate&&navigator.vibrate(10);let ie=de=>{h.removeEventListener("pointerup",ie),h.removeEventListener("pointercancel",ie),at(r.id,de)};h.addEventListener("pointerup",ie),h.addEventListener("pointercancel",ie)},it);h.addEventListener("pointermove",oe),h.addEventListener("pointerup",q),h.addEventListener("pointercancel",re)},onPointerEnter:p=>{if(p.pointerType==="touch"||Re)return;J.current&&clearTimeout(J.current);let h=p.currentTarget.getBoundingClientRect();p.clientX>=h.left&&p.clientX<=h.right&&p.clientY>=h.top&&p.clientY<=h.bottom&&G({id:r.id,rect:h,title:r.title,component:r.component})},onPointerLeave:p=>{p.pointerType!=="touch"&&(J.current=setTimeout(()=>{G(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)})}),I&&(0,xn.createPortal)((0,f.jsxs)("div",{className:"rdd-taskbar-item-tooltip",dir:l.dir,style:{position:"fixed",left:`${I.rect.left+I.rect.width/2}px`,top:`${I.rect.top-8}px`,transform:"translateX(-50%) translateY(-100%)",opacity:1,pointerEvents:"auto",zIndex:999999},onPointerEnter:()=>{J.current&&clearTimeout(J.current)},onPointerLeave:r=>{r.pointerType!=="touch"&&G(null)},onClick:()=>{b(I.id),G(null)},onContextMenu:r=>at(I.id,r),onPointerDown:r=>{if(r.pointerType!=="touch")return;let x=I.id,u=r.currentTarget,p=r.clientX,h=r.clientY,T=r.pointerId,A=!1,F=()=>{A=!0,clearTimeout(re),u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F)},U=q=>{Math.hypot(q.clientX-p,q.clientY-h)>st&&F()},re=setTimeout(()=>{if(A)return;u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F);try{u.setPointerCapture(T)}catch{return}navigator.vibrate&&navigator.vibrate(10);let q=oe=>{u.removeEventListener("pointerup",q),u.removeEventListener("pointercancel",q),at(x,oe)};u.addEventListener("pointerup",q),u.addEventListener("pointercancel",q)},it);u.addEventListener("pointermove",U),u.addEventListener("pointerup",F),u.addEventListener("pointercancel",F)},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:[me(I.title,B),l.panels[I.id]?.dirty?" *":""]}),(0,f.jsx)("span",{onClick:r=>{r.stopPropagation(),z(I.id),G(null)},title:me(s.closePanel,B),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)(tr,{panelId:I.id})]}),document.body),(0,f.jsx)("button",{type:"button",onClick:()=>y("right"),className:"rdd-taskbar-nav-btn",style:{display:l.minimized.length>4?"block":"none"},children:"\u25B6"})]}),Object.keys(l.panels).map(r=>{let x=l.panels[r];if(!x)return null;let u=Zn(r);return(0,xn.createPortal)((0,f.jsx)(nr,{panelId:r,children:(0,f.jsx)("div",{style:{width:"100%",height:"100%"},dir:l.dir,children:er(r,x,D)})}),u,r)}),Q===null&&(0,f.jsx)(o.Component,{ref:ae,theme:"dark",formatMessageProvider:B,onShow:()=>we(!0),onHide:()=>we(!1)}),l.draggedPanelId!==null&&!l.floating.some(r=>r.id===l.draggedPanelId)&&(0,f.jsxs)("div",{className:"rdd-drag-ghost-tab",style:{left:ee.x+12,top:ee.y+12,zIndex:1e5},children:["\u{1F4C4} ",me(l.panels[l.draggedPanelId]?.title,B)||"Tab"]})]})},Qn=rr;var an=class{registry;initialState;config;_actions=null;_initialized=!1;_pendingCalls=[];_pendingOpenPanelIds=new Set;_pendingSubscriptions=[];_disconnectedWarnTimer=null;constructor(t={}){if(this.registry=new ut,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 g=this._pendingSubscriptions.indexOf(o);g!==-1&&this._pendingSubscriptions.splice(g,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(g=>g.dockPanelToGroup(t,n,o))}movePanelOrder(t,n,o){this._dispatch(g=>g.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(g=>g.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 so=require("react");var je=require("react"),to=require("react/jsx-runtime"),eo=(0,je.createContext)(null),Ht=({children:e})=>{let[t,n]=(0,je.useState)({}),[o,g]=(0,je.useState)({}),l=(0,je.useMemo)(()=>({getActiveInGroup:D=>t[D]??null,setActiveInGroup:(D,b)=>n(M=>({...M,[D]:b})),isModifierActive:D=>o[D]??!1,setModifierActive:(D,b)=>g(M=>({...M,[D]:b})),toggleModifier:D=>g(b=>({...b,[D]:!b[D]}))}),[t,o]);return(0,to.jsx)(eo.Provider,{value:l,children:e})};function Bt(){let e=(0,je.useContext)(eo);if(!e)throw new Error("useToolbar must be used within DockableDesktopProvider");return e}var Le=require("react");var io=require("react/jsx-runtime");function ir(){let e=new Map,t=new Set,n=()=>t.forEach(o=>o());return{publish(o,g){return e.set(o,g),n(),()=>{e.get(o)===g&&(e.delete(o),n())}},get(o){return e.get(o)??null},subscribe(o){return t.add(o),()=>t.delete(o)}}}var Rn=(0,Le.createContext)(null),ln=({children:e})=>{let t=(0,Le.useMemo)(()=>ir(),[]);return(0,io.jsx)(Rn.Provider,{value:t,children:e})};function no(e){let t=Ot(),n=(0,Le.useContext)(Rn),o=(0,Le.useRef)(null);if(!n)throw new Error("usePanelContribution must be used within PanelContributionProvider");(0,Le.useLayoutEffect)(()=>{if(n)return o.current?.(),o.current=n.publish(t,e),()=>{o.current?.(),o.current=null}},[n,t,e])}function dn(){let e=Ae(g=>g.activePanelId),t=(0,Le.useContext)(Rn);if(!t)throw new Error("useActivePanelContribution must be used within PanelContributionProvider");let n=(0,Le.useCallback)(g=>t?t.subscribe(g):()=>{},[t]),o=()=>t&&e?t.get(e):null;return(0,Le.useSyncExternalStore)(n,o,o)}function Mn(e,t=null){return{id:e.id,label:e.label,icon:e.icon??t,renderContent:()=>e.content}}function oo(e){let t=dn();return t?.toolbarItems?.length?[...e,{type:"separator"},...t.toolbarItems]:e}function ro(e,t=null){let n=dn();return n?.sidebarSections?.length?[...e,...n.sidebarSections.map(o=>Mn(o,t))]:e}var It=require("react/jsx-runtime"),ao=({contextMenuAdapter:e=gt,...t})=>{let n=(0,so.useContext)(St),o=(0,It.jsx)(Ht,{children:(0,It.jsx)(Ut,{...t,children:(0,It.jsx)(ln,{children:(0,It.jsx)(nn,{children:t.children})})})});return n!==null?o:(0,It.jsx)(en,{adapter:e,formatMessageProvider:t.formatMessage,children:o})};var Ne=require("react");var Se=require("react/jsx-runtime"),sr=({modal:e,index:t,isTopmost:n})=>{let{close:o,openModal:g,updateInstance:l,setDirty:D}=tt(),b=_e(),M=Be(),{dir:P}=Ae(),{modalClass:C,modalBodyClass:v}=Ve(),S=(0,Ne.useRef)(null),{id:L,Component:N,props:W,options:c,dirty:E,dirtyOptions:w}=e,k=c,[m,R]=(0,Ne.useState)(k.icon||null),H=(0,Ne.useRef)(k);H.current=k;let B=me(k.title,b),s=(0,Ne.useCallback)(async _=>{if(_?.force){o(L);return}if(S.current){if(!await S.current())return;o(L);return}if(E){g(nt,{title:w?.title||M.unsavedChangesTitle,message:w?.message||{id:M.unsavedChangesMessage.id,defaultMessage:M.unsavedChangesMessage.defaultMessage,values:{title:B}},alert:w?.alert,alertType:w?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(L)},{size:"small"});return}o(L)},[o,g,L,E,w,B,M]),z=(0,Ne.useCallback)((_,I)=>D(L,_,I),[D,L]),Y=(0,Ne.useCallback)(_=>l(L,{options:{...H.current,title:_}}),[l,L]),K=(0,Ne.useCallback)(_=>R(_),[]),Q=(0,Ne.useCallback)(_=>(S.current=_,()=>{S.current=null}),[]),ae=(0,Ne.useMemo)(()=>({requestClose:s,setDirty:z,setTitle:Y,setIcon:K,onCloseRequested:Q,containerType:"modal",instanceId:L}),[s,z,Y,K,Q,L]),te=E?`${B} *`:B,ye=k.size?`rdd-modal-size-${k.size}`:"rdd-modal-size-auto",se=k.closable!==!1;(0,Ne.useEffect)(()=>{if(!n||!se)return;let _=I=>{I.key==="Escape"&&(I.stopPropagation(),s())};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[s,se,n]);let Z=`calc(var(--rdd-z-base, 1000) + 9000 + ${t*10})`;return(0,Se.jsxs)("div",{className:"rdd-modal-overlay",style:{zIndex:Z},dir:P,children:[(0,Se.jsx)("div",{className:"rdd-modal-curtain",onClick:se?()=>s():void 0}),(0,Se.jsxs)("div",{className:`rdd-modal-window ${ye} ${C??""}`,children:[(0,Se.jsxs)("div",{className:"rdd-modal-header",children:[m&&(0,Se.jsx)("div",{className:"rdd-modal-icon",children:m}),(0,Se.jsx)("h4",{className:"rdd-modal-title",children:te}),se&&(0,Se.jsx)("button",{className:"rdd-modal-close-button",onClick:()=>s(),title:b(M.closeTooltip),type:"button",children:(0,Se.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,Se.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,Se.jsx)("div",{className:`rdd-modal-body ${v??""}`,children:(0,Se.jsx)(Qe,{value:ae,children:(0,Se.jsx)(N,{...W,panelId:L})})})]})]})},ar=()=>{let{modals:e}=Ke();return e.length===0?null:(0,Se.jsx)(Se.Fragment,{children:e.map((t,n)=>(0,Se.jsx)(sr,{modal:t,index:n,isTopmost:n===e.length-1},t.id))})},lo=ar;var Ee=require("react");var xe=require("react/jsx-runtime"),cn=({panel:e,position:t,defaultWidth:n})=>{let{close:o,openModal:g,updateInstance:l,setDirty:D,registerCloseHandler:b,unregisterCloseHandler:M}=tt(),{modals:P}=Ke(),C=_e(),v=Be(),{dir:S}=Ae(),{sidePanelClass:L,sidePanelBodyClass:N}=Ve(),W=(0,Ee.useRef)(null),{id:c,Component:E,props:w,options:k,dirty:m,dirtyOptions:R}=e,H=k,[B,s]=(0,Ee.useState)(H.icon||null),z=(0,Ee.useRef)(H);z.current=H;let Y=me(H.title,C),K=(0,Ee.useCallback)(async J=>{if(J?.force){o(c);return}if(W.current){if(!await W.current())return;o(c);return}if(m){g(nt,{title:R?.title||v.unsavedChangesTitle,message:R?.message||{id:v.unsavedChangesMessage.id,defaultMessage:v.unsavedChangesMessage.defaultMessage,values:{title:Y}},alert:R?.alert,alertType:R?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(c)},{size:"small"});return}o(c)},[o,g,c,m,R,Y,v]),Q=(0,Ee.useCallback)(async()=>W.current?await W.current():!m,[m]);(0,Ee.useEffect)(()=>(b(c,Q),()=>M(c)),[c,Q,b,M]);let ae=(0,Ee.useCallback)((J,ve)=>D(c,J,ve),[D,c]),te=(0,Ee.useCallback)(J=>l(c,{options:{...z.current,title:J}}),[l,c]),ye=(0,Ee.useCallback)(J=>s(J),[]),se=(0,Ee.useCallback)(J=>(W.current=J,()=>{W.current=null}),[]),Z=(0,Ee.useMemo)(()=>({requestClose:K,setDirty:ae,setTitle:te,setIcon:ye,onCloseRequested:se,containerType:t==="left"?"left-panel":"right-panel",instanceId:c}),[K,ae,te,ye,se,t,c]),_=m?`${Y} *`:Y;(0,Ee.useEffect)(()=>{let J=ve=>{ve.key==="Escape"&&P.length===0&&K()};return document.addEventListener("keydown",J),()=>document.removeEventListener("keydown",J)},[K,P.length]);let I=H.width||n||400,G=typeof I=="number"?`${I}px`:I;return(0,xe.jsx)("div",{className:`rdd-side-panel rdd-side-panel-${t} rdd-side-panel-visible ${L??""}`,style:{width:G},dir:S,children:(0,xe.jsxs)("div",{className:"rdd-side-panel-window",children:[(0,xe.jsxs)("div",{className:"rdd-side-panel-header",children:[B&&(0,xe.jsx)("div",{className:"rdd-side-panel-icon",children:B}),(0,xe.jsx)("h4",{className:"rdd-side-panel-title",children:_}),(0,xe.jsx)("button",{className:"rdd-side-panel-close-button",onClick:()=>K(),title:C(v.closeTooltip),type:"button",children:(0,xe.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,xe.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,xe.jsx)("div",{className:`rdd-side-panel-body ${N??""}`,children:(0,xe.jsx)(Qe,{value:Z,children:(0,xe.jsx)(E,{...w,panelId:c})})})]})})},lr=({defaultWidth:e})=>{let{leftPanel:t,rightPanel:n}=Ke();return(0,xe.jsxs)(xe.Fragment,{children:[t&&(0,xe.jsx)(cn,{panel:t,position:"left",defaultWidth:e},t.id),n&&(0,xe.jsx)(cn,{panel:n,position:"right",defaultWidth:e},n.id)]})},co=({defaultWidth:e})=>{let{leftPanel:t}=Ke();return t?(0,xe.jsx)(cn,{panel:t,position:"left",defaultWidth:e},t.id):null},uo=({defaultWidth:e})=>{let{rightPanel:t}=Ke();return t?(0,xe.jsx)(cn,{panel:t,position:"right",defaultWidth:e},t.id):null},po=lr;var ne=qt(require("react"),1);var pe=require("react/jsx-runtime");function Tn(e){return"renderContent"in e}function dr(e){return"render"in e}function go(e){return e==null?[]:Array.isArray(e)?e:[e]}var ho=(0,ne.createContext)(null),bo=(0,ne.createContext)(null);function cr({tabId:e,onClose:t,onOpen:n,setActiveTabId:o,children:g}){let l=(0,ne.useMemo)(()=>({tabId:e,onClose:t,onOpen:n,openTab:D=>o(D)}),[e,t,n,o]);return(0,pe.jsx)(bo.Provider,{value:l,children:g})}function mo(e,t,n,o){if(dr(e))return(0,pe.jsx)(ne.default.Fragment,{children:e.render()},e.id??t);if(Tn(e)){let g=n===e.id;return(0,pe.jsx)("button",{type:"button",onClick:()=>o(e.id),className:`rdd-sidebar-tab-btn${g?" rdd-active":""}`,title:e.label,"aria-pressed":g,children:e.icon},e.id)}return(0,pe.jsx)("button",{type:"button",onClick:e.onClick,disabled:e.disabled,className:"rdd-sidebar-tab-btn rdd-sidebar-header-action-btn",title:e.label,"aria-label":e.label,children:e.icon},e.id??t)}var fo=(0,ne.memo)(function({tabs:t,headerEntries:n,footerEntries:o,activeTabId:g,isVisible:l,position:D,onTabClick:b}){return(0,pe.jsx)("div",{style:{width:l?"56px":"0px",height:"100%",overflow:"hidden",transition:"width 0.25s cubic-bezier(0.4, 0, 0.2, 1)",flexShrink:0},children:(0,pe.jsxs)("div",{className:`rdd-sidebar-tabs-strip rdd-${D}${n.length?" rdd-sidebar-tabs-strip--has-header-action":""}${o.length?" rdd-sidebar-tabs-strip--has-footer-action":""}`,style:{width:"56px",height:"100%"},children:[n.length>0&&(0,pe.jsx)("div",{className:"rdd-sidebar-header-area",children:n.map((M,P)=>mo(M,P,g,b))}),(0,pe.jsx)("div",{className:"rdd-sidebar-tabs-list",children:t.map(M=>{let P=g===M.id;return(0,pe.jsx)("button",{type:"button",onClick:()=>b(M.id),className:`rdd-sidebar-tab-btn${P?" rdd-active":""}`,title:M.label,"aria-pressed":P,children:M.icon},M.id)})}),o.length>0&&(0,pe.jsx)("div",{className:"rdd-sidebar-footer-area",children:o.map((M,P)=>mo(M,P,g,b))})]})})});function ur({position:e,currentWidth:t,minWidth:n,maxWidth:o,onWidthChange:g,rootRef:l}){return(0,pe.jsx)("div",{className:"rdd-resizer-bar",style:{cursor:"col-resize",width:"1px",height:"100%",flexShrink:0,zIndex:20},onPointerDown:b=>{b.preventDefault();let M=b.currentTarget,P=[{el:M,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active","rdd-resizing-col-active"]}];l.current&&P.push({el:l.current,classes:["rdd-sidebar-resizing"]}),qe({element:M,pointerId:b.pointerId,startClientX:b.clientX,startClientY:b.clientY,captureStart:()=>t,activeClasses:P,onMove:(C,v,S)=>{let L=e==="right"?S-C:S+C;g(Math.max(n,Math.min(o,L)))}})}})}var vo=(0,ne.forwardRef)(function({position:t="right",tabs:n,headerAction:o,footerAction:g,defaultWidth:l,minWidth:D=150,maxWidth:b=600,onWidthChange:M,activeTabId:P,onActiveTabChange:C,visible:v,onVisibilityChange:S,stripVisible:L,onStripVisibilityChange:N,showCloseButton:W=!1,children:c},E){let w=P!==void 0,[k,m]=(0,ne.useState)(()=>l??280),R=(0,ne.useCallback)(ee=>{m(ee),M?.(ee)},[M]),[H,B]=(0,ne.useState)(null),s=w?P:H,z=(0,ne.useMemo)(()=>go(o),[o]),Y=(0,ne.useMemo)(()=>go(g),[g]),K=(0,ne.useMemo)(()=>z.filter(Tn),[z]),Q=(0,ne.useMemo)(()=>Y.filter(Tn),[Y]),ae=(0,ne.useMemo)(()=>[...K,...n,...Q],[K,n,Q]),[te,ye]=(0,ne.useState)(()=>new Set),se=(0,ne.useMemo)(()=>{let ee=new Set(te);s&&ee.add(s);for(let Me of ae)Me.eagerMount&&ee.add(Me.id);return ee},[te,s,ae]),Z=(0,ne.useRef)(s??null);(0,ne.useEffect)(()=>{Z.current=s??null},[s]);let _=(0,ne.useRef)(k);(0,ne.useEffect)(()=>{_.current=k},[k]);let I=(0,ne.useRef)(null),G=(0,ne.useCallback)(ee=>{ye(ee!==null?Me=>{if(Me.has(ee))return Me;let Ie=new Set(Me);return Ie.add(ee),Ie}:Me=>{let Ie=!1,$e=new Set(Me);for(let Ye of Me){let Pe=ae.find(ft=>ft.id===Ye);Pe&&!Pe.eagerMount&&!Pe.preserveState&&($e.delete(Ye),Ie=!0)}return Ie?$e:Me}),w||B(ee),C?.(ee)},[w,C,ae]);(0,ne.useEffect)(()=>{s!=null&&!ae.some(ee=>ee.id===s)&&G(null)},[s,ae,G]),(0,ne.useImperativeHandle)(E,()=>({openTab:ee=>G(ee),closeDrawer:()=>G(null),getActiveTab:()=>Z.current,show:()=>S?.(!0),hide:()=>S?.(!1),toggle:()=>S?.(v===!1),showStrip:()=>N?.(!0),hideStrip:()=>N?.(!1),setWidth:ee=>R(Math.max(D,Math.min(b,ee))),getWidth:()=>_.current}),[G,v,S,N,R,D,b]);let J=(0,ne.useCallback)(ee=>{G(s===ee?null:ee)},[s,G]),ve=(0,ne.useCallback)(()=>G(null),[G]),Ce=(0,ne.useMemo)(()=>({openTab:ee=>G(ee),closeDrawer:()=>G(null),getActiveTab:()=>Z.current}),[G]),we=v!==!1,Re=we&&L!==!1,De=we&&s!=null,Oe=(0,pe.jsx)("div",{className:`rdd-sidebar-content-drawer rdd-${t}`,style:{flexBasis:De?`${k}px`:"0px",flexShrink:1,flexGrow:0,minWidth:De?`${D}px`:"0px",maxWidth:De?`${b}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:ae.map(ee=>{if(!se.has(ee.id))return null;let Ie=s===ee.id,$e=()=>G(ee.id);return(0,pe.jsxs)("div",{style:{display:Ie?"flex":"none",flexDirection:"column",height:"100%",width:"100%"},children:[(0,pe.jsxs)("div",{className:"rdd-sidebar-drawer-header",children:[(0,pe.jsx)("span",{className:"rdd-sidebar-header-title",children:ee.label}),W&&(0,pe.jsx)("button",{type:"button",className:"rdd-sidebar-drawer-close-button",onClick:ve,title:"Close","aria-label":"Close",children:(0,pe.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,pe.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,pe.jsx)("div",{className:"rdd-sidebar-drawer-body",children:(0,pe.jsx)(cr,{tabId:ee.id,onClose:ve,onOpen:$e,setActiveTabId:G,children:ee.renderContent(ee.id,ve,$e)})})]},ee.id)})}),We=De?(0,pe.jsx)(ur,{position:t,currentWidth:k,minWidth:D,maxWidth:b,onWidthChange:R,rootRef:I}):null;return(0,pe.jsx)(ho.Provider,{value:Ce,children:(0,pe.jsxs)("div",{ref:I,style:{display:"flex",flexDirection:"row",width:"100%",height:"100%",overflow:"hidden"},children:[t==="left"&&(0,pe.jsx)(fo,{tabs:n,headerEntries:z,footerEntries:Y,activeTabId:s,isVisible:Re,position:t,onTabClick:J}),t==="left"&&Oe,t==="left"&&We,(0,pe.jsx)("div",{style:{flex:"1 1 0%",minWidth:0,overflow:"hidden"},children:c}),t==="right"&&We,t==="right"&&Oe,t==="right"&&(0,pe.jsx)(fo,{tabs:n,headerEntries:z,footerEntries:Y,activeTabId:s,isVisible:Re,position:t,onTabClick:J})]})})});function yo(){let e=(0,ne.useContext)(ho);if(!e)throw new Error("useSidebar must be used within Sidebar");return e}function Po(){let e=(0,ne.useContext)(bo);if(!e)throw new Error("useSidebarTab must be used within a Sidebar tab renderContent tree");return e}var ze=require("react"),xo=require("react-dom");var ke=require("react/jsx-runtime");function pr(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 gr({item:e,position:t,toolbar:n}){let[o,g]=(0,ze.useState)(!1),[l,D]=(0,ze.useState)(null),b=(0,ze.useRef)(null),M=(0,ze.useRef)(null),P=e.activeItemId!==void 0,C=P?e.activeItemId:n.getActiveInGroup(e.id),v=e.items.find(c=>!("type"in c)&&c.id===C),S=C!==null,L=v?.icon??e.defaultIcon,N=v?.label??e.label,W=()=>{e.disabled||(!o&&b.current&&D(b.current.getBoundingClientRect()),g(c=>!c))};return(0,ze.useLayoutEffect)(()=>{if(!o||!M.current)return;let c=M.current,E=c.getBoundingClientRect(),w=8;E.right>window.innerWidth-w&&(c.style.left=`${Math.max(w,window.innerWidth-E.width-w)}px`,c.style.right="auto"),E.left<w&&(c.style.left=`${w}px`,c.style.right="auto"),E.bottom>window.innerHeight-w&&(c.style.top=`${Math.max(w,window.innerHeight-E.height-w)}px`,c.style.bottom="auto"),E.top<w&&(c.style.top=`${w}px`,c.style.bottom="auto")},[o]),(0,ze.useEffect)(()=>{if(!o)return;let c=E=>{let w=E.target;b.current?.contains(w)||M.current?.contains(w)||g(!1)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[o]),(0,ze.useEffect)(()=>{if(!o)return;let c=E=>{E.key==="Escape"&&g(!1)};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[o]),(0,ke.jsxs)(ke.Fragment,{children:[(0,ke.jsx)("button",{ref:b,type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-group${S?" rdd-active":""}`,title:N,"aria-label":N,"aria-expanded":o,"aria-haspopup":"menu",disabled:e.disabled,onClick:W,children:L}),o&&l&&(0,xo.createPortal)((0,ke.jsx)("div",{ref:M,className:`rdd-toolbar-group-flyout rdd-${t}`,style:pr(l,t,document.documentElement.dir==="rtl"),role:"menu",children:e.items.map((c,E)=>{if("type"in c)return(0,ke.jsx)("div",{className:"rdd-toolbar-group-flyout-sep",role:"separator"},`sep-${E}`);let w=C===c.id;return(0,ke.jsxs)("button",{type:"button",className:`rdd-toolbar-group-flyout-item${w?" rdd-active":""}`,disabled:c.disabled,role:"menuitem","aria-pressed":w,onClick:()=>{P?e.onActiveItemChange?.(c.id):n.setActiveInGroup(e.id,c.id),c.onActivate?.(c.id),g(!1)},children:[(0,ke.jsx)("span",{className:"rdd-toolbar-group-flyout-icon",children:c.icon}),(0,ke.jsx)("span",{className:"rdd-toolbar-group-flyout-label",children:c.label}),c.shortcut&&(0,ke.jsx)("span",{className:"rdd-toolbar-group-flyout-shortcut",children:c.shortcut})]},c.id)})}),document.body)]})}function mr(e,t,n,o){switch(e.type){case"separator":return(0,ke.jsx)("div",{className:"rdd-toolbar-separator",role:"separator"},`sep-${t}`);case"action":return(0,ke.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 g=n.getActiveInGroup(e.group)===e.id;return(0,ke.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-radio${g?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":g,disabled:e.disabled,onClick:()=>{n.setActiveInGroup(e.group,e.id),e.onActivate?.(e.id)},children:e.icon},e.id)}case"toggle":{let g=e.active!==void 0,l=g?e.active:n.isModifierActive(e.id);return(0,ke.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-toggle${l?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":l,disabled:e.disabled,onClick:()=>{g||n.toggleModifier(e.id),e.onToggle?.(!l)},children:e.icon},e.id)}case"group":return(0,ke.jsx)(gr,{item:e,position:o,toolbar:n},e.id)}}var Co=(0,ze.forwardRef)(function({position:t="left",items:n,visible:o,onVisibilityChange:g,className:l,style:D},b){let M=Bt(),P=t==="left"||t==="right";(0,ze.useImperativeHandle)(b,()=>({show:()=>g?.(!0),hide:()=>g?.(!1),toggle:()=>g?.(o===!1)}),[o,g]);let C=o!==!1?{}:P?{width:"0px"}:{height:"0px"};return(0,ke.jsx)("div",{className:`rdd-toolbar-strip rdd-${t}${l?` ${l}`:""}`,role:"toolbar","aria-orientation":P?"vertical":"horizontal",style:{...C,...D},children:n.map((v,S)=>mr(v,S,M,t))})});var be=require("react"),kn=require("react-dom"),ge=require("react/jsx-runtime"),En=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))}},Fe=new En,wo=Object.assign((e,t)=>Fe.show(e,t),{info:(e,t)=>Fe.show(e,{...t,type:"info"}),success:(e,t)=>Fe.show(e,{...t,type:"success"}),warning:(e,t)=>Fe.show(e,{...t,type:"warning"}),error:(e,t)=>Fe.show(e,{...t,type:"error"}),dismiss:e=>Fe.dismiss(e),promise:(e,t,n)=>{let o=Fe.show(t.pending,{...n,type:"info",duration:0});return e.then(g=>{let l=typeof t.success=="function"?t.success(g):t.success;Fe.update(o,l,{type:"success",duration:n?.duration??5e3})},g=>{let l=typeof t.error=="function"?t.error(g):t.error;Fe.update(o,l,{type:"error",duration:n?.duration??5e3})}),e}}),fr=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ge.jsx)("path",{d:"M8 5v.01M8 7.5v3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),hr=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ge.jsx)("path",{d:"M5 8l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),br=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("path",{d:"M8 2.5L14 13.5H2L8 2.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),(0,ge.jsx)("path",{d:"M8 7v2.5M8 11.5v.01",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),vr=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ge.jsx)("path",{d:"M5.5 5.5l5 5M10.5 5.5l-5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),yr=()=>(0,ge.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:(0,ge.jsx)("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Pr={info:(0,ge.jsx)(fr,{}),success:(0,ge.jsx)(hr,{}),warning:(0,ge.jsx)(br,{}),error:(0,ge.jsx)(vr,{})};function xr({id:e,message:t,options:n,exiting:o,isLeft:g,showProgress:l,pauseOnHover:D,animation:b,onDismiss:M,onExited:P}){let C=(0,be.useRef)(null),v=(0,be.useRef)(null),S=(0,be.useRef)(n.duration),L=(0,be.useRef)(0),[N,W]=(0,be.useState)(!1),c=b==="none"?"rdd-toast--visible":b==="fade"?"rdd-toast--fade-entering":g?"rdd-toast--entering-left":"rdd-toast--entering",[E,w]=(0,be.useState)(c);(0,be.useLayoutEffect)(()=>{C.current&&(C.current.style.maxHeight=`${C.current.offsetHeight}px`)},[]),(0,be.useEffect)(()=>{if(b==="none")return;let s=requestAnimationFrame(()=>w("rdd-toast--visible"));return()=>cancelAnimationFrame(s)},[]);let k=(0,be.useCallback)(s=>{s<=0||(L.current=Date.now(),v.current=setTimeout(()=>M(e),s))},[e,M]);(0,be.useEffect)(()=>(v.current&&clearTimeout(v.current),S.current=n.duration,k(n.duration),()=>{v.current&&clearTimeout(v.current)}),[n.duration,k]),(0,be.useEffect)(()=>{if(!o)return;let s=C.current;if(!s||b==="none"){P(e);return}let z=K=>{K.propertyName==="max-height"&&P(e)};s.addEventListener("transitionend",z);let Y=setTimeout(()=>P(e),520);return()=>{s.removeEventListener("transitionend",z),clearTimeout(Y)}},[o,e,P,b]);let m=()=>{!D||n.duration===0||(v.current&&(clearTimeout(v.current),v.current=null,S.current=Math.max(0,S.current-(Date.now()-L.current))),W(!0))},R=()=>{!D||n.duration===0||(W(!1),k(S.current))},H=["rdd-toast",n.type&&`rdd-toast--${n.type}`,E,o&&"rdd-toast--exiting",N&&"rdd-toast--paused"].filter(Boolean).join(" "),B=n.icon!==void 0?n.icon:n.type?Pr[n.type]:null;return(0,ge.jsxs)("div",{ref:C,role:"status","aria-live":"polite",className:H,onMouseEnter:m,onMouseLeave:R,children:[B&&B,(0,ge.jsx)("div",{className:"rdd-toast__body",children:n.content!==void 0?n.content:t}),n.closable&&(0,ge.jsx)("button",{type:"button",className:"rdd-toast__close",onClick:()=>M(e),"aria-label":"Close notification",children:(0,ge.jsx)(yr,{})}),l&&n.duration>0&&(0,ge.jsx)("div",{className:"rdd-toast__progress",style:{animationDuration:`${n.duration}ms`}})]})}function Sn(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 Ro({position:e="top-right",maxVisible:t=3,defaultDuration:n=5e3,defaultClosable:o=!0,pauseOnHover:g=!0,animation:l="slide",newestOnTop:D=!1,progressBar:b=!1,width:M=320,adapter:P}){let[C,v]=(0,be.useState)([]),S=(0,be.useRef)([]),L=(0,be.useRef)(C);L.current=C;let N=(0,be.useCallback)(k=>{v(m=>m.map(R=>R.id===k?{...R,exiting:!0}:R)),L.current.find(m=>m.id===k)?.options.onClose?.()},[]),W=(0,be.useCallback)(k=>{let m=S.current.shift()??null;v(R=>{let H=R.filter(s=>s.id!==k);if(!m)return H;let B=Sn(m.rawOpts,n,o);return[...H,{id:m.id,message:m.message,options:B,exiting:!1}]})},[n,o]);if((0,be.useEffect)(()=>{if(P)return;let k=m=>{if(m.kind==="show"){let R=Sn(m.rawOpts,n,o),H={id:m.id,message:m.message,options:R,exiting:!1},B={id:m.id,message:m.message,rawOpts:m.rawOpts};v(s=>s.find(K=>K.id===m.id)?s.map(K=>K.id===m.id?{...K,message:m.message,options:R}:K):s.filter(K=>!K.exiting).length<t?[...s,H]:(S.current.some(K=>K.id===B.id)||S.current.push(B),s))}else m.kind==="update"?(v(R=>R.map(H=>{if(H.id!==m.id)return H;let B={...H.options,...m.patch,id:H.id};return{...H,message:m.message,options:B}})),S.current=S.current.map(R=>R.id!==m.id?R:{...R,message:m.message,rawOpts:{...R.rawOpts,...m.patch}})):m.kind==="dismiss"&&(m.id===void 0?(v(R=>R.map(H=>({...H,exiting:!0}))),S.current=[]):L.current.some(H=>H.id===m.id)?N(m.id):S.current=S.current.filter(H=>H.id!==m.id))};return Fe.subscribe(k),()=>Fe.unsubscribe(k)},[P,t,n,o,N]),(0,be.useEffect)(()=>{if(!P)return;let k=m=>{if(m.kind==="show"){let R=Sn(m.rawOpts,n,o);P.show(m.id,m.message,R)}else m.kind==="update"?P.update(m.id,m.message,m.patch):m.kind==="dismiss"&&P.dismiss(m.id)};return Fe.subscribe(k),()=>Fe.unsubscribe(k)},[P,n,o]),P){if(!P.Container)return null;let k=P.Container;return(0,kn.createPortal)((0,ge.jsx)(k,{position:e}),document.body)}let c=e.endsWith("left"),E="";D===!0&&(E="rdd-toast-container--newest-top"),D===!1&&(E="rdd-toast-container--newest-bottom");let w=["rdd-toast-container",`rdd-toast-container--${e}`,E].filter(Boolean).join(" ");return(0,kn.createPortal)((0,ge.jsx)("div",{className:w,style:{width:M},"aria-label":"Notifications","aria-live":"polite",children:C.map(k=>(0,ge.jsx)(xr,{id:k.id,message:k.message,options:k.options,exiting:k.exiting,isLeft:c,showProgress:b,pauseOnHover:g,animation:l,onDismiss:N,onExited:W},k.id))}),document.body)}var X=qt(require("react"),1),To=require("react-dom");var j=require("react/jsx-runtime"),Cr=["top-left","top-right","bottom-left","bottom-right"],So=(0,X.createContext)(null),ko=(0,X.createContext)(null),Eo=(0,X.createContext)(null),rt=80;function wr(e,t,n){let o=e.getBoundingClientRect(),g=t-o.left,l=n-o.top;return g<rt&&l<rt?"top-left":g>o.width-rt&&l<rt?"top-right":g<rt&&l>o.height-rt?"bottom-left":g>o.width-rt&&l>o.height-rt?"bottom-right":null}function Io({children:e,className:t,style:n}){let[o,g]=(0,X.useState)({}),[l,D]=(0,X.useState)({}),[b,M]=(0,X.useState)({"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]}),[P,C]=(0,X.useState)({}),[v,S]=(0,X.useState)(null),[L,N]=(0,X.useState)(null),[W,c]=(0,X.useState)(null),[E,w]=(0,X.useState)(()=>new Map),k=(0,X.useRef)(100),m=(0,X.useRef)(null),R=(0,X.useCallback)((Z,_)=>(g(I=>({...I,[Z]:_})),()=>g(I=>{let G={...I};return delete G[Z],G})),[]),H=(0,X.useCallback)(Z=>{k.current+=1;let _=k.current;D(I=>({...I,[Z]:_})),c(Z)},[]),B=(0,X.useCallback)((Z,_)=>{M(I=>{let G={"top-left":I["top-left"].filter(J=>J!==Z),"top-right":I["top-right"].filter(J=>J!==Z),"bottom-left":I["bottom-left"].filter(J=>J!==Z),"bottom-right":I["bottom-right"].filter(J=>J!==Z)};return G[_]=[...G[_],Z],G})},[]),s=(0,X.useCallback)(Z=>{M(_=>({"top-left":_["top-left"].filter(I=>I!==Z),"top-right":_["top-right"].filter(I=>I!==Z),"bottom-left":_["bottom-left"].filter(I=>I!==Z),"bottom-right":_["bottom-right"].filter(I=>I!==Z)}))},[]),z=(0,X.useCallback)((Z,_)=>{C(I=>I[Z]===_?I:{...I,[Z]:_})},[]),Y=(0,X.useCallback)((Z,_)=>{w(I=>{let G=new Map(I);return G.set(Z,_),G})},[]),K=(0,X.useCallback)(Z=>{w(_=>{let I=new Map(_);return I.delete(Z),I})},[]),Q=(0,X.useCallback)(()=>{w(new Map)},[]),ae=(0,X.useMemo)(()=>Array.from(E.keys()),[E]),te=(0,X.useMemo)(()=>({registerToolbar:R,insetTop:o.top??0,insetBottom:o.bottom??0}),[R,o]),ye=(0,X.useMemo)(()=>({managedWindowIds:ae,openManaged:Y,closeManaged:K,closeAllManaged:Q}),[ae,Y,K,Q]),se=(0,X.useMemo)(()=>({topId:W,zOrders:l,focusWindow:H,containerRef:m,stacks:b,dockedSizes:P,dockWindow:B,undockWindow:s,reportDockedSize:z,draggingId:v,setDraggingId:S,hoveredZone:L,setHoveredZone:N,insetTop:o.top??0,insetBottom:o.bottom??0}),[W,l,H,b,P,B,s,z,v,L,o]);return(0,j.jsx)(So.Provider,{value:te,children:(0,j.jsx)(ko.Provider,{value:ye,children:(0,j.jsx)(Eo.Provider,{value:se,children:(0,j.jsxs)("div",{ref:m,className:`rdd-panel-overlay-root${v!==null?" rdd-dragging-active":""}${t?" "+t:""}`,style:n,children:[e,v!==null&&(0,j.jsx)(Rr,{hoveredZone:L}),Array.from(E.entries()).map(([Z,_])=>(0,j.jsx)(In,{id:Z,title:_.title,icon:_.icon,open:!0,onClose:()=>K(Z),defaultAnchor:_.anchor??"top-right",defaultWidth:_.width??320,defaultHeight:_.height??240,children:_.content},Z))]})})})})}function Rr({hoveredZone:e}){return(0,j.jsx)(j.Fragment,{children:Cr.map(t=>(0,j.jsx)("div",{className:`rdd-panel-float-dropzone rdd-panel-float-dropzone--${t}${e===t?" rdd-panel-float-dropzone--hovered":""}`,"aria-hidden":"true"},t))})}function Lo({position:e,variant:t="transparent",buttonVariant:n="ghost",buttonSize:o,style:g,className:l,children:D}){let b=(0,X.useContext)(So),M=(0,X.useRef)(null),P=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>{let N=M.current;if(!N||!b)return;let W=()=>{let E=e==="top"||e==="bottom"?N.offsetHeight:N.offsetWidth;P.current?.(),P.current=b.registerToolbar(e,E)};W();let c=new ResizeObserver(W);return c.observe(N),()=>{c.disconnect(),P.current?.(),P.current=null}},[e,b?.registerToolbar]);let C={position:"absolute",zIndex:5,pointerEvents:"none",boxSizing:"border-box"};e==="top"?(C.top=0,C.left=0,C.right=0):e==="bottom"?(C.bottom=0,C.left=0,C.right=0):e==="left"?(C.insetInlineStart=0,C.top=b?.insetTop??0,C.bottom=b?.insetBottom??0):(C.insetInlineEnd=0,C.top=b?.insetTop??0,C.bottom=b?.insetBottom??0);let S=e==="left"||e==="right"?{...(b?.insetTop??0)>0?{paddingTop:0}:{},...(b?.insetBottom??0)>0?{paddingBottom:0}:{}}:{},L=o!=null?{"--rdd-panel-toolbar-btn-size":`${o}px`}:{};return(0,j.jsx)("div",{ref:M,className:`rdd-panel-toolbar rdd-panel-toolbar--${e}${l?" "+l:""}`,"data-variant":t,"data-btn-variant":n,style:{...C,...S,...L,...g},children:D})}function No({icon:e,onClick:t,disabled:n,title:o,variant:g}){return(0,j.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:t,disabled:n,title:o,"aria-label":o,...g?{"data-variant":g}:{},children:e})}function zo({icon:e,active:t,onToggle:n,disabled:o,title:g,variant:l}){return(0,j.jsx)("button",{type:"button",className:`rdd-panel-toolbar-btn${t?" rdd-panel-toolbar-btn--active":""}`,onClick:n,disabled:o,title:g,"aria-label":g,"aria-pressed":t,...l?{"data-variant":l}:{},children:e})}function Do(){return(0,j.jsx)("span",{className:"rdd-panel-toolbar__sep","aria-hidden":"true"})}function Wo(){return(0,j.jsx)("span",{className:"rdd-panel-toolbar__spacer","aria-hidden":"true"})}function Oo({children:e}){return(0,j.jsx)("span",{className:"rdd-panel-toolbar__item",children:e})}function Ao({children:e}){return(0,j.jsx)("div",{className:"rdd-panel-toolbar__center",children:e})}function Fo({placeholder:e="Search\u2026",onSearch:t,onSelect:n}){let[o,g]=(0,X.useState)(!1),[l,D]=(0,X.useState)(""),[b,M]=(0,X.useState)([]),[P,C]=(0,X.useState)(null),v=(0,X.useRef)(null),S=(0,X.useRef)(null),L=(0,X.useRef)(null),N=(0,X.useRef)(null),W=()=>{g(!0),setTimeout(()=>S.current?.focus(),0)},c=()=>{g(!1),D(""),M([]),C(null),L.current?.abort(),N.current&&clearTimeout(N.current)},E=B=>{let s=B.target.value;if(D(s),L.current?.abort(),N.current&&clearTimeout(N.current),!s.trim()){M([]),C(null);return}N.current=setTimeout(async()=>{let z=new AbortController;L.current=z;try{let Y=await t(s,z.signal);if(!z.signal.aborted){M(Y);let K=v.current;if(K&&Y.length>0){let Q=K.getBoundingClientRect(),ae=Math.max(Q.width,240),te=Q.left;te+ae>window.innerWidth-8&&(te=window.innerWidth-ae-8),C({top:Q.bottom+4,left:te,width:ae})}else C(null)}}catch{}},300)},w=B=>{n(B),c()},k=B=>{v.current?.contains(B.relatedTarget)||c()},m=B=>{B.key==="Escape"&&c()},R=(0,X.useMemo)(()=>{let B={};for(let s of b){let z=s.group??"";B[z]||(B[z]=[]),B[z].push(s)}return B},[b]),H=(0,j.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,j.jsx)("circle",{cx:"6.5",cy:"6.5",r:"4.5"}),(0,j.jsx)("line",{x1:"10",y1:"10",x2:"14",y2:"14"})]});return o?(0,j.jsxs)("div",{ref:v,className:"rdd-panel-toolbar-search rdd-panel-toolbar-search--open",onBlur:k,children:[(0,j.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:c,"aria-label":"Close search",title:"Close search",children:H}),(0,j.jsx)("input",{ref:S,className:"rdd-panel-toolbar-search__input",type:"text",value:l,onChange:E,onKeyDown:m,placeholder:e,autoComplete:"off"}),P&&b.length>0&&(0,To.createPortal)((0,j.jsx)("div",{className:"rdd-panel-toolbar-search__dropdown",style:{position:"fixed",top:P.top,left:P.left,width:P.width,zIndex:9502},onMouseDown:B=>B.preventDefault(),children:Object.entries(R).map(([B,s])=>(0,j.jsxs)(X.default.Fragment,{children:[B&&(0,j.jsx)("div",{className:"rdd-panel-toolbar-search__group",children:B}),s.map(z=>(0,j.jsxs)("button",{type:"button",className:"rdd-panel-toolbar-search__item",onClick:()=>w(z),children:[z.icon&&(0,j.jsx)("span",{className:"rdd-panel-toolbar-search__item-icon",children:z.icon}),(0,j.jsx)("span",{className:"rdd-panel-toolbar-search__item-label",children:z.label}),z.description&&(0,j.jsx)("span",{className:"rdd-panel-toolbar-search__item-desc",children:z.description})]},z.id))]},B||"__default__"))}),document.body)]}):(0,j.jsx)("div",{ref:v,className:"rdd-panel-toolbar-search",children:(0,j.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:W,title:"Search","aria-label":"Search",children:H})})}function In(e){let t=(0,X.useContext)(Eo);return e.open?(0,j.jsx)(kr,{ctx:t,...e},e.id):null}var Mr=120,Tr=60,Mo=8,Sr=8;function kr({id:e,title:t,icon:n,defaultAnchor:o,defaultWidth:g,defaultHeight:l,children:D,ctx:b,onClose:M}){let P=(0,X.useContext)(wt)?.isRtl??!1,[C,v]=(0,X.useState)("docked"),[S,L]=(0,X.useState)(o),[N,W]=(0,X.useState)(null),[c,E]=(0,X.useState)({w:g,h:l}),w=(0,X.useRef)(null),k=(0,X.useRef)(C);k.current=C;let m=(0,X.useRef)(N);m.current=N;let R=(0,X.useRef)(c);R.current=c;let H=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>(b?.dockWindow(e,o),()=>{b?.undockWindow(e)}),[]),(0,X.useEffect)(()=>{b?.reportDockedSize(e,c.h)},[c.h]);let B=b?.zOrders[e]??101,s=!b||b.topId===e,z=()=>{let _=w.current?.offsetParent;return{cw:_?.clientWidth??9999,ch:_?.clientHeight??9999}},Y=()=>{b?.focusWindow(e)},K=_=>{if(_.button!==0)return;_.preventDefault();let I,G;if(k.current==="docked"){let J=w.current,ve=b?.containerRef?.current;if(J&&ve){let Ce=J.getBoundingClientRect(),we=ve.getBoundingClientRect();I=Ce.left-we.left,G=Ce.top-we.top}else I=Mo,G=b?.insetTop??0;b?.undockWindow(e),v("free"),W({x:I,y:G})}else I=m.current?.x??0,G=m.current?.y??0;H.current={mouseX:_.clientX,mouseY:_.clientY,posX:I,posY:G,hasDragged:!1},w.current?.setPointerCapture(_.pointerId),document.body.classList.add("rdd-dragging-active")},Q=_=>I=>{if(I.button!==0)return;I.preventDefault(),I.stopPropagation();let G=0,J=0;if(k.current==="free")G=m.current?.x??0,J=m.current?.y??0;else{let Ce=w.current,we=Ce?.offsetParent;if(Ce&&we){let Re=Ce.getBoundingClientRect(),De=we.getBoundingClientRect();G=Re.left-De.left,J=Re.top-De.top}}let ve={x:G,y:J,w:R.current.w,h:R.current.h};qe({element:I.currentTarget,pointerId:I.pointerId,startClientX:I.clientX,startClientY:I.clientY,captureStart:()=>ve,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(Ce,we,Re)=>{let{cw:De,ch:Oe}=z(),{x:We,y:ee,w:Me,h:Ie}=kt(_,Ce,we,Re,{minW:Mr,minH:Tr,maxW:De-Re.x,maxH:Oe-Re.y,minX:0,minY:0});E({w:Me,h:Ie}),k.current==="free"&&W({x:We,y:ee})}})},ae=_=>{if(H.current){let I=H.current;if(!I.hasDragged){if(Math.abs(_.clientX-I.mouseX)+Math.abs(_.clientY-I.mouseY)<4)return;I.hasDragged=!0,b?.setDraggingId(e)}let{cw:G,ch:J}=z(),ve=Math.max(0,Math.min(I.posX+_.clientX-I.mouseX,G-R.current.w)),Ce=Math.max(0,Math.min(I.posY+_.clientY-I.mouseY,J-R.current.h));W({x:ve,y:Ce});let we=b?.containerRef?.current;if(we){let Re=wr(we,_.clientX,_.clientY);b?.setHoveredZone(Re&&P?Ft(Re):Re)}}},te=()=>{if(H.current){let _=b?.hoveredZone;_&&(b?.dockWindow(e,_),L(_),v("docked"),W(null)),b?.setHoveredZone(null),b?.setDraggingId(null)}document.body.classList.remove("rdd-dragging-active"),H.current=null},ye=()=>{H.current&&(b?.setHoveredZone(null),b?.setDraggingId(null)),document.body.classList.remove("rdd-dragging-active"),H.current=null},se;if(C==="docked"&&b){let _=b.stacks[S]??[],I=_.indexOf(e),G=0;for(let J=0;J<I;J++)G+=(b.dockedSizes[_[J]]??l)+Sr;se={width:c.w,height:c.h,zIndex:B,transition:"top 0.2s ease, bottom 0.2s ease",opacity:I===-1?0:void 0,pointerEvents:I===-1?"none":void 0},se[S.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]=Mo,S.startsWith("top-")?se.top=b.insetTop+G:se.bottom=b.insetBottom+G}else se={left:N?.x??0,top:N?.y??0,width:c.w,height:c.h,zIndex:B};return(0,j.jsxs)("div",{ref:w,dir:P?"rtl":"ltr",className:`rdd-panel-float${s?" rdd-panel-float--active":""}`,style:se,onPointerDown:Y,onPointerMove:ae,onPointerUp:te,onPointerCancel:ye,children:[(0,j.jsxs)("div",{className:"rdd-panel-float__header",onPointerDown:K,children:[n&&(0,j.jsx)("span",{className:"rdd-panel-float__icon",children:n}),(0,j.jsx)("span",{className:"rdd-panel-float__title",children:t}),(0,j.jsx)("button",{type:"button",className:"rdd-panel-float__close",onClick:M,onPointerDown:_=>_.stopPropagation(),title:"Close","aria-label":"Close",children:(0,j.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,j.jsx)("line",{x1:"1",y1:"1",x2:"9",y2:"9"}),(0,j.jsx)("line",{x1:"9",y1:"1",x2:"1",y2:"9"})]})})]}),(0,j.jsx)("div",{className:"rdd-panel-float__body",children:D}),C==="free"&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-n",onPointerDown:Q("n")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-ne",onPointerDown:Q("ne")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-nw",onPointerDown:Q("nw")})]}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-e",onPointerDown:Q("e")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-se",onPointerDown:Q("se")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-s",onPointerDown:Q("s")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-sw",onPointerDown:Q("sw")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-w",onPointerDown:Q("w")})]})}function _o(){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 Er=[];function Ho(){let e=(0,X.useContext)(ko),t=e?.managedWindowIds??Er;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.`)}pn({width:Math.max(100,h.width),height:Math.max(100,h.height)})});return u.observe(r),()=>{u.disconnect()}},[]),(0,V.useEffect)(()=>{let r=lt.width,x=lt.height;l.floating.forEach(u=>{let p=typeof u.width=="string"?parseFloat(u.width):u.width,h=typeof u.height=="string"?parseFloat(u.height):u.height,T=typeof u.x=="string"?parseFloat(u.x):u.x,A=typeof u.y=="string"?parseFloat(u.y):u.y,F=p,U=h,re=T,q=A,oe=!1;if(F>r&&(F=Math.max(200,r-20),oe=!0),U>x&&(U=Math.max(150,x-40),oe=!0),!u.anchor){let ce=r-100;re>ce&&(re=Math.max(0,ce),oe=!0);let ie=x-40;q>ie&&(q=Math.max(0,ie),oe=!0)}oe&&v(u.id,{x:re,y:q,width:F,height:U})})},[lt,l.floating,v]),(0,V.useEffect)(()=>{let r=x=>{if(x.button!==0)return;let u=x.target;if(!u||typeof u.closest!="function")return;let p=u.closest(".rdd-floating-window");if(p){let T=p.getAttribute("data-window-id");T&&(w(T),S(T));return}let h=u.closest(".rdd-workspace-panel");if(h){let T=h.getAttribute("data-active-panel-id");T&&w(T)}};return document.addEventListener("pointerdown",r),()=>{document.removeEventListener("pointerdown",r)}},[S,w]);let gn=(r,x)=>{x.preventDefault();let u=l.floating.find(q=>q.id===r);if(!u||u.maximized)return;S(r);let p=x.currentTarget,h=p.closest(".rdd-floating-window"),T=x.clientX,A=x.clientY,F=h?h.offsetLeft:0,U=h?h.offsetTop:0,re=()=>{let q=We.current,oe=Xe.current,ce=Ye.current,ie=ht.current;if(ie)v(r,{anchor:Lt?Ft(ie):ie});else if(ce)E(r,Je(ce));else if(oe){let de=oe.index;oe.side==="right"&&(de+=1),c(r,oe.leafId,de)}else q&&W(r,q.leafId,Je(q.position));Ze(null),Ge()};if(x.pointerType==="touch"){let q=x.pointerId,oe=!1,ce=()=>{oe=!0,clearTimeout(de),p.removeEventListener("pointermove",ie),p.removeEventListener("pointerup",ce),p.removeEventListener("pointercancel",ce)},ie=ue=>{Math.hypot(ue.clientX-T,ue.clientY-A)>st&&ce()},de=setTimeout(()=>{if(oe)return;p.removeEventListener("pointermove",ie),p.removeEventListener("pointerup",ce),p.removeEventListener("pointercancel",ce);try{p.setPointerCapture(q)}catch{return}p.classList.add("rdd-long-press-active"),document.body.classList.add("rdd-dragging-active"),N(r);let ue=vt=>{let yt=vt.clientX-T,Pt=vt.clientY-A;v(r,{x:F+yt,y:U+Pt,anchor:null}),Nt(vt.clientX,vt.clientY)},Te=()=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",ue),p.removeEventListener("pointerup",Te),p.removeEventListener("pointercancel",dt),re()},dt=()=>{p.classList.remove("rdd-long-press-active"),document.body.classList.remove("rdd-dragging-active"),p.removeEventListener("pointermove",ue),p.removeEventListener("pointerup",Te),p.removeEventListener("pointercancel",dt),Ge()};p.addEventListener("pointermove",ue),p.addEventListener("pointerup",Te),p.addEventListener("pointercancel",dt)},it);p.addEventListener("pointermove",ie),p.addEventListener("pointerup",ce),p.addEventListener("pointercancel",ce)}else{let q=!1,oe=de=>{let ue=de.clientX-T,Te=de.clientY-A;!q&&(Math.abs(ue)>5||Math.abs(Te)>5)&&(q=!0,N(r)),q&&v(r,{x:F+ue,y:U+Te,anchor:null})},ce=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",ce),window.removeEventListener("pointercancel",ie),q&&re()},ie=()=>{document.body.classList.remove("rdd-dragging-active"),window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",ce),window.removeEventListener("pointercancel",ie),q&&Ge()};document.body.classList.add("rdd-dragging-active"),window.addEventListener("pointermove",oe),window.addEventListener("pointerup",ce),window.addEventListener("pointercancel",ie)}},i=(r,x,u)=>{u.preventDefault(),u.stopPropagation();let p=l.floating.find(ue=>ue.id===r);if(!p||p.maximized)return;S(r);let h=u.currentTarget,T=h.closest(".rdd-floating-window"),A={x:T?T.offsetLeft:0,y:T?T.offsetTop:0,w:T?T.offsetWidth:400,h:T?T.offsetHeight:300},F=lt.width,U=lt.height,re=typeof p.x=="string"?parseFloat(p.x):p.x,q=typeof p.y=="string"?parseFloat(p.y):p.y,oe=typeof p.width=="string"?parseFloat(p.width):p.width,ce=typeof p.height=="string"?parseFloat(p.height):p.height,ie=x==="se"&&Math.abs(re+oe-F)<4,de=x==="se"&&Math.abs(q+ce-U)<4;qe({element:h,pointerId:u.pointerId,startClientX:u.clientX,startClientY:u.clientY,captureStart:()=>A,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(ue,Te,dt)=>{let vt=kt(x,ue,Te,dt,{minW:200,minH:150}),{x:yt,y:Pt,w:mn,h:fn}=vt;ie&&(yt=F-mn,yt<0&&(yt=0,mn=F)),de&&(Pt=U-fn,Pt<0&&(Pt=0,fn=U)),v(r,{x:yt,y:Pt,width:mn,height:fn})}})},y=r=>{if(te.current){let x=r==="left"?-150:150;te.current.scrollBy({left:x,behavior:"smooth"})}},d=(0,V.useCallback)(()=>{Z.current&&clearTimeout(Z.current),se(!0)},[]),a=(0,V.useCallback)(()=>{Z.current=setTimeout(()=>se(!1),400)},[]);(0,V.useEffect)(()=>{n==="autohide"&&l.minimized.length>_.current&&(Z.current&&clearTimeout(Z.current),se(!0),Z.current=setTimeout(()=>se(!1),2e3)),_.current=l.minimized.length},[l.minimized.length,n]);let $=rn();return(0,V.useEffect)(()=>(e?document.documentElement.setAttribute("data-workspace-skin",e):document.documentElement.removeAttribute("data-workspace-skin"),()=>{document.documentElement.removeAttribute("data-workspace-skin")}),[e]),(0,V.useEffect)(()=>($==="light"?document.documentElement.setAttribute("data-color-scheme","light"):document.documentElement.removeAttribute("data-color-scheme"),()=>{document.documentElement.removeAttribute("data-color-scheme")}),[$]),(0,V.useEffect)(()=>(g?document.documentElement.classList.remove("rdd-no-animations"):document.documentElement.classList.add("rdd-no-animations"),()=>{document.documentElement.classList.remove("rdd-no-animations")}),[g]),(0,f.jsxs)("div",{className:`rdd-workspace${g?"":" rdd-no-animations"}`,"data-workspace-skin":e,"data-color-scheme":$,style:{display:"flex",flexDirection:"column",position:"relative",width:"100%",height:"100%",overflow:"hidden",userSelect:"none"},dir:l.dir,children:[(0,f.jsxs)("div",{ref:bt,className:l.draggedPanelId?"rdd-dragging-active":void 0,style:{flexGrow:1,width:"100%",position:"relative",overflow:"hidden"},children:[l.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:()=>Pe("left"),onPointerLeave:()=>Pe(null)}),(0,f.jsx)("div",{"data-edge-trigger":"right",className:"rdd-workspace-edge-trigger rdd-edge-trigger-right",onPointerEnter:()=>Pe("right"),onPointerLeave:()=>Pe(null)}),(0,f.jsx)("div",{"data-edge-trigger":"top",className:"rdd-workspace-edge-trigger rdd-edge-trigger-top",onPointerEnter:()=>Pe("top"),onPointerLeave:()=>Pe(null)}),(0,f.jsx)("div",{"data-edge-trigger":"bottom",className:"rdd-workspace-edge-trigger rdd-edge-trigger-bottom",onPointerEnter:()=>Pe("bottom"),onPointerLeave:()=>Pe(null)})]}),l.draggedPanelId!==null&&["top-left","top-right","bottom-left","bottom-right"].map(r=>(0,f.jsx)("div",{className:`rdd-corner-zone rdd-corner-zone--${r}${ft===r?" rdd-corner-zone--hovered":""}`,onPointerEnter:()=>{Ze(r),Pe(null)},onPointerLeave:()=>Ze(null),"aria-hidden":"true"},r)),l.draggedPanelId!==null&&Ie!==null&&(0,f.jsx)("div",{className:"rdd-workspace-edge-preview",style:(()=>{let r=`${l.edgeSplitRatio*100}%`;switch(Ie){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:l.gridRoot?(0,f.jsx)(Qn,{node:l.gridRoot,path:[],onTabRightClick:Dt,activeDropZone:De,onHoverDropZone:Xt,onTabDragStart:Vt,hoveredTab:Gt,onTabHover:Yt,defaultPanelIcon:t,onRequestClosePanel:z}):(0,f.jsx)("div",{className:"rdd-empty-workspace-grid",children:"Grid Empty"})}),l.floating.map(r=>{let x=l.panels[r.id];if(!x)return null;let u=r.maximized,p=l.draggedPanelId===r.id,h=l.activePanelId===r.id,A=D.get(x.component)?.defaultOptions;return(0,f.jsxs)("div",{"data-window-id":r.id,dir:l.dir,onPointerDownCapture:()=>{w(r.id),S(r.id)},className:`rdd-floating-window ${u?"rdd-maximized":""} ${h?"rdd-window-focused":""} ${Y??""}`,style:(()=>{let re=typeof r.width=="number"?`${r.width}px`:r.width,q=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 oe=l.floating.filter(Te=>Te.anchor===r.anchor&&!Te.maximized),ce=oe.findIndex(Te=>Te.id===r.id),ie=8;for(let Te=0;Te<ce;Te++){let dt=typeof oe[Te].height=="number"?oe[Te].height:parseFloat(oe[Te].height);ie+=dt+8}let de=r.anchor.startsWith("top");return{position:"absolute",[r.anchor.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]:8,[de?"top":"bottom"]:ie,width:re,height:q,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:re,height:q,zIndex:r.z,pointerEvents:p?"none":"auto"}})(),children:[(0,f.jsxs)("div",{onDoubleClick:()=>C(r.id),onPointerDown:F=>{A?.canDrag!==!1&&gn(r.id,F)},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||wn}),(0,f.jsxs)("span",{children:[me(x.title,B),x.dirty?" *":""]})]}),(0,f.jsxs)("div",{className:"rdd-titlebar-actions",style:{gap:"var(--rdd-header-button-gap, 4px)"},onPointerDown:F=>F.stopPropagation(),children:[A?.renderHeaderActions&&(0,f.jsx)("div",{className:"rdd-window-header-actions",children:A.renderHeaderActions(r.id)}),k(r.id).length>0&&(0,f.jsx)("button",{type:"button",className:"rdd-custom-tab-btn rdd-btn-more-actions",title:"More actions",onClick:F=>{F.stopPropagation();let U=k(r.id);U.length!==0&&m({event:F,items:U})},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?me(s.restoreSize,B):me(s.maximize,B),onClick:()=>C(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:me(s.minimize,B),onClick:()=>M(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:me(s.close,B),onClick:()=>z(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:K??void 0,style:{flexGrow:1,width:"100%",overflow:"hidden",position:"relative",isolation:"isolate"},children:(0,f.jsx)(Jn,{panelId:r.id},r.id)}),!u&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"n",F),className:"rdd-resize-handle rdd-resize-n"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"ne",F),className:"rdd-resize-handle rdd-resize-ne"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"e",F),className:"rdd-resize-handle rdd-resize-e"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"se",F),className:"rdd-resize-handle rdd-resize-se"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"s",F),className:"rdd-resize-handle rdd-resize-s"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"sw",F),className:"rdd-resize-handle rdd-resize-sw"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"w",F),className:"rdd-resize-handle rdd-resize-w"}),(0,f.jsx)("div",{onPointerDown:F=>i(r.id,"nw",F),className:"rdd-resize-handle rdd-resize-nw"})]})]},r.id)})]}),(n==="always"||l.minimized.length>0)&&(0,f.jsxs)("div",{className:["rdd-taskbar-footer-container",`taskbar-mode-${n}`,n==="autohide"&&ye?"rdd-taskbar-expanded":""].filter(Boolean).join(" "),style:{height:"48px",zIndex:100},onPointerEnter:n==="autohide"?d: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:l.minimized.length>4?"block":"none"},children:"\u25C0"}),(0,f.jsx)("div",{ref:te,className:"rdd-taskbar-items-container",style:{scrollSnapType:"x mandatory"},children:l.minimized.map(r=>{let u=D.get(r.component)?.defaultOptions?.icon||t||wn;return(0,f.jsx)("div",{onClick:()=>{ve.current!=="touch"&&(G(null),b(r.id))},onContextMenu:p=>at(r.id,p),onPointerDown:p=>{if(ve.current=p.pointerType,p.pointerType!=="touch")return;let h=p.currentTarget,T=p.clientX,A=p.clientY,F=p.pointerId,U=!1,re=()=>{U=!0,clearTimeout(ce),h.removeEventListener("pointermove",oe),h.removeEventListener("pointerup",q),h.removeEventListener("pointercancel",re)},q=()=>{re();let ie=h.getBoundingClientRect();I?.id===r.id?(b(r.id),G(null)):G({id:r.id,rect:ie,title:r.title,component:r.component,fromTouch:!0})},oe=ie=>{Math.hypot(ie.clientX-T,ie.clientY-A)>st&&re()},ce=setTimeout(()=>{if(U)return;h.removeEventListener("pointermove",oe),h.removeEventListener("pointerup",q),h.removeEventListener("pointercancel",re);try{h.setPointerCapture(F)}catch{return}navigator.vibrate&&navigator.vibrate(10);let ie=de=>{h.removeEventListener("pointerup",ie),h.removeEventListener("pointercancel",ie),at(r.id,de)};h.addEventListener("pointerup",ie),h.addEventListener("pointercancel",ie)},it);h.addEventListener("pointermove",oe),h.addEventListener("pointerup",q),h.addEventListener("pointercancel",re)},onPointerEnter:p=>{if(p.pointerType==="touch"||Re)return;J.current&&clearTimeout(J.current);let h=p.currentTarget.getBoundingClientRect();p.clientX>=h.left&&p.clientX<=h.right&&p.clientY>=h.top&&p.clientY<=h.bottom&&G({id:r.id,rect:h,title:r.title,component:r.component})},onPointerLeave:p=>{p.pointerType!=="touch"&&(J.current=setTimeout(()=>{G(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)})}),I&&(0,Cn.createPortal)((0,f.jsxs)("div",{className:"rdd-taskbar-item-tooltip",dir:l.dir,style:{position:"fixed",left:`${I.rect.left+I.rect.width/2}px`,top:`${I.rect.top-8}px`,transform:"translateX(-50%) translateY(-100%)",opacity:1,pointerEvents:"auto",zIndex:999999},onPointerEnter:()=>{J.current&&clearTimeout(J.current)},onPointerLeave:r=>{r.pointerType!=="touch"&&G(null)},onClick:()=>{b(I.id),G(null)},onContextMenu:r=>at(I.id,r),onPointerDown:r=>{if(r.pointerType!=="touch")return;let x=I.id,u=r.currentTarget,p=r.clientX,h=r.clientY,T=r.pointerId,A=!1,F=()=>{A=!0,clearTimeout(re),u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F)},U=q=>{Math.hypot(q.clientX-p,q.clientY-h)>st&&F()},re=setTimeout(()=>{if(A)return;u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",F),u.removeEventListener("pointercancel",F);try{u.setPointerCapture(T)}catch{return}navigator.vibrate&&navigator.vibrate(10);let q=oe=>{u.removeEventListener("pointerup",q),u.removeEventListener("pointercancel",q),at(x,oe)};u.addEventListener("pointerup",q),u.addEventListener("pointercancel",q)},it);u.addEventListener("pointermove",U),u.addEventListener("pointerup",F),u.addEventListener("pointercancel",F)},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:[me(I.title,B),l.panels[I.id]?.dirty?" *":""]}),(0,f.jsx)("span",{onClick:r=>{r.stopPropagation(),z(I.id),G(null)},title:me(s.closePanel,B),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)(or,{panelId:I.id})]}),document.body),(0,f.jsx)("button",{type:"button",onClick:()=>y("right"),className:"rdd-taskbar-nav-btn",style:{display:l.minimized.length>4?"block":"none"},children:"\u25B6"})]}),Object.keys(l.panels).map(r=>{let x=l.panels[r];if(!x)return null;let u=Un(r);return(0,Cn.createPortal)((0,f.jsx)(rr,{panelId:r,children:(0,f.jsx)("div",{style:{width:"100%",height:"100%"},dir:l.dir,children:nr(r,x,D)})}),u,r)}),Q===null&&(0,f.jsx)(o.Component,{ref:ae,theme:"dark",formatMessageProvider:B,onShow:()=>we(!0),onHide:()=>we(!1)}),l.draggedPanelId!==null&&!l.floating.some(r=>r.id===l.draggedPanelId)&&(0,f.jsxs)("div",{className:"rdd-drag-ghost-tab",style:{left:ee.x+12,top:ee.y+12,zIndex:1e5},children:["\u{1F4C4} ",me(l.panels[l.draggedPanelId]?.title,B)||"Tab"]})]})},eo=sr;var an=class{registry;initialState;config;_actions=null;_initialized=!1;_pendingCalls=[];_pendingOpenPanelIds=new Set;_pendingSubscriptions=[];_disconnectedWarnTimer=null;constructor(t={}){if(this.registry=new ut,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 g=this._pendingSubscriptions.indexOf(o);g!==-1&&this._pendingSubscriptions.splice(g,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(g=>g.dockPanelToGroup(t,n,o))}movePanelOrder(t,n,o){this._dispatch(g=>g.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(g=>g.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 ao=require("react");var je=require("react"),no=require("react/jsx-runtime"),to=(0,je.createContext)(null),Ht=({children:e})=>{let[t,n]=(0,je.useState)({}),[o,g]=(0,je.useState)({}),l=(0,je.useMemo)(()=>({getActiveInGroup:D=>t[D]??null,setActiveInGroup:(D,b)=>n(M=>({...M,[D]:b})),isModifierActive:D=>o[D]??!1,setModifierActive:(D,b)=>g(M=>({...M,[D]:b})),toggleModifier:D=>g(b=>({...b,[D]:!b[D]}))}),[t,o]);return(0,no.jsx)(to.Provider,{value:l,children:e})};function Bt(){let e=(0,je.useContext)(to);if(!e)throw new Error("useToolbar must be used within DockableDesktopProvider");return e}var Le=require("react");var so=require("react/jsx-runtime");function ar(){let e=new Map,t=new Set,n=()=>t.forEach(o=>o());return{publish(o,g){return e.set(o,g),n(),()=>{e.get(o)===g&&(e.delete(o),n())}},get(o){return e.get(o)??null},subscribe(o){return t.add(o),()=>t.delete(o)}}}var Mn=(0,Le.createContext)(null),ln=({children:e})=>{let t=(0,Le.useMemo)(()=>ar(),[]);return(0,so.jsx)(Mn.Provider,{value:t,children:e})};function oo(e){let t=Ot(),n=(0,Le.useContext)(Mn),o=(0,Le.useRef)(null);if(!n)throw new Error("usePanelContribution must be used within PanelContributionProvider");(0,Le.useLayoutEffect)(()=>{if(n)return o.current?.(),o.current=n.publish(t,e),()=>{o.current?.(),o.current=null}},[n,t,e])}function dn(){let e=Ae(g=>g.activePanelId),t=(0,Le.useContext)(Mn);if(!t)throw new Error("useActivePanelContribution must be used within PanelContributionProvider");let n=(0,Le.useCallback)(g=>t?t.subscribe(g):()=>{},[t]),o=()=>t&&e?t.get(e):null;return(0,Le.useSyncExternalStore)(n,o,o)}function Tn(e,t=null){return{id:e.id,label:e.label,icon:e.icon??t,renderContent:()=>e.content}}function ro(e){let t=dn();return t?.toolbarItems?.length?[...e,{type:"separator"},...t.toolbarItems]:e}function io(e,t=null){let n=dn();return n?.sidebarSections?.length?[...e,...n.sidebarSections.map(o=>Tn(o,t))]:e}var It=require("react/jsx-runtime"),lo=({contextMenuAdapter:e=gt,...t})=>{let n=(0,ao.useContext)(St),o=(0,It.jsx)(Ht,{children:(0,It.jsx)(Ut,{...t,children:(0,It.jsx)(ln,{children:(0,It.jsx)(nn,{children:t.children})})})});return n!==null?o:(0,It.jsx)(en,{adapter:e,formatMessageProvider:t.formatMessage,children:o})};var Ne=require("react");var co=require("react");function cn(e){(0,co.useEffect)(()=>{let t=window.scrollX,n=window.scrollY,o=()=>window.scrollTo(t,n);window.addEventListener("scroll",o);let g=window.setTimeout(()=>{window.removeEventListener("scroll",o)},e);return()=>{window.clearTimeout(g),window.removeEventListener("scroll",o)}},[e])}var Se=require("react/jsx-runtime"),lr=({modal:e,index:t,isTopmost:n})=>{let{close:o,openModal:g,updateInstance:l,setDirty:D}=tt(),b=_e(),M=Be(),{dir:P}=Ae(),{modalClass:C,modalBodyClass:v}=Ve(),S=(0,Ne.useRef)(null),{id:L,Component:N,props:W,options:c,dirty:E,dirtyOptions:w}=e,k=c,[m,R]=(0,Ne.useState)(k.icon||null),H=(0,Ne.useRef)(k);H.current=k,cn(180);let B=me(k.title,b),s=(0,Ne.useCallback)(async _=>{if(_?.force){o(L);return}if(S.current){if(!await S.current())return;o(L);return}if(E){g(nt,{title:w?.title||M.unsavedChangesTitle,message:w?.message||{id:M.unsavedChangesMessage.id,defaultMessage:M.unsavedChangesMessage.defaultMessage,values:{title:B}},alert:w?.alert,alertType:w?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(L)},{size:"small"});return}o(L)},[o,g,L,E,w,B,M]),z=(0,Ne.useCallback)((_,I)=>D(L,_,I),[D,L]),Y=(0,Ne.useCallback)(_=>l(L,{options:{...H.current,title:_}}),[l,L]),K=(0,Ne.useCallback)(_=>R(_),[]),Q=(0,Ne.useCallback)(_=>(S.current=_,()=>{S.current=null}),[]),ae=(0,Ne.useMemo)(()=>({requestClose:s,setDirty:z,setTitle:Y,setIcon:K,onCloseRequested:Q,containerType:"modal",instanceId:L}),[s,z,Y,K,Q,L]),te=E?`${B} *`:B,ye=k.size?`rdd-modal-size-${k.size}`:"rdd-modal-size-auto",se=k.closable!==!1;(0,Ne.useEffect)(()=>{if(!n||!se)return;let _=I=>{I.key==="Escape"&&(I.stopPropagation(),s())};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[s,se,n]);let Z=`calc(var(--rdd-z-base, 1000) + 9000 + ${t*10})`;return(0,Se.jsxs)("div",{className:"rdd-modal-overlay",style:{zIndex:Z},dir:P,children:[(0,Se.jsx)("div",{className:"rdd-modal-curtain",onClick:se?()=>s():void 0}),(0,Se.jsxs)("div",{className:`rdd-modal-window ${ye} ${C??""}`,children:[(0,Se.jsxs)("div",{className:"rdd-modal-header",children:[m&&(0,Se.jsx)("div",{className:"rdd-modal-icon",children:m}),(0,Se.jsx)("h4",{className:"rdd-modal-title",children:te}),se&&(0,Se.jsx)("button",{className:"rdd-modal-close-button",onClick:()=>s(),title:b(M.closeTooltip),type:"button",children:(0,Se.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,Se.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,Se.jsx)("div",{className:`rdd-modal-body ${v??""}`,children:(0,Se.jsx)(Qe,{value:ae,children:(0,Se.jsx)(N,{...W,panelId:L})})})]})]})},dr=()=>{let{modals:e}=Ke();return e.length===0?null:(0,Se.jsx)(Se.Fragment,{children:e.map((t,n)=>(0,Se.jsx)(lr,{modal:t,index:n,isTopmost:n===e.length-1},t.id))})},uo=dr;var Ee=require("react");var xe=require("react/jsx-runtime"),un=({panel:e,position:t,defaultWidth:n})=>{let{close:o,openModal:g,updateInstance:l,setDirty:D,registerCloseHandler:b,unregisterCloseHandler:M}=tt(),{modals:P}=Ke(),C=_e(),v=Be(),{dir:S}=Ae(),{sidePanelClass:L,sidePanelBodyClass:N}=Ve(),W=(0,Ee.useRef)(null),{id:c,Component:E,props:w,options:k,dirty:m,dirtyOptions:R}=e,H=k,[B,s]=(0,Ee.useState)(H.icon||null),z=(0,Ee.useRef)(H);z.current=H,cn(250);let Y=me(H.title,C),K=(0,Ee.useCallback)(async J=>{if(J?.force){o(c);return}if(W.current){if(!await W.current())return;o(c);return}if(m){g(nt,{title:R?.title||v.unsavedChangesTitle,message:R?.message||{id:v.unsavedChangesMessage.id,defaultMessage:v.unsavedChangesMessage.defaultMessage,values:{title:Y}},alert:R?.alert,alertType:R?.alertType||"danger",useYesNoTitles:!0,onOK:()=>o(c)},{size:"small"});return}o(c)},[o,g,c,m,R,Y,v]),Q=(0,Ee.useCallback)(async()=>W.current?await W.current():!m,[m]);(0,Ee.useEffect)(()=>(b(c,Q),()=>M(c)),[c,Q,b,M]);let ae=(0,Ee.useCallback)((J,ve)=>D(c,J,ve),[D,c]),te=(0,Ee.useCallback)(J=>l(c,{options:{...z.current,title:J}}),[l,c]),ye=(0,Ee.useCallback)(J=>s(J),[]),se=(0,Ee.useCallback)(J=>(W.current=J,()=>{W.current=null}),[]),Z=(0,Ee.useMemo)(()=>({requestClose:K,setDirty:ae,setTitle:te,setIcon:ye,onCloseRequested:se,containerType:t==="left"?"left-panel":"right-panel",instanceId:c}),[K,ae,te,ye,se,t,c]),_=m?`${Y} *`:Y;(0,Ee.useEffect)(()=>{let J=ve=>{ve.key==="Escape"&&P.length===0&&K()};return document.addEventListener("keydown",J),()=>document.removeEventListener("keydown",J)},[K,P.length]);let I=H.width||n||400,G=typeof I=="number"?`${I}px`:I;return(0,xe.jsx)("div",{className:`rdd-side-panel rdd-side-panel-${t} rdd-side-panel-visible ${L??""}`,style:{width:G},dir:S,children:(0,xe.jsxs)("div",{className:"rdd-side-panel-window",children:[(0,xe.jsxs)("div",{className:"rdd-side-panel-header",children:[B&&(0,xe.jsx)("div",{className:"rdd-side-panel-icon",children:B}),(0,xe.jsx)("h4",{className:"rdd-side-panel-title",children:_}),(0,xe.jsx)("button",{className:"rdd-side-panel-close-button",onClick:()=>K(),title:C(v.closeTooltip),type:"button",children:(0,xe.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,xe.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,xe.jsx)("div",{className:`rdd-side-panel-body ${N??""}`,children:(0,xe.jsx)(Qe,{value:Z,children:(0,xe.jsx)(E,{...w,panelId:c})})})]})})},cr=({defaultWidth:e})=>{let{leftPanel:t,rightPanel:n}=Ke();return(0,xe.jsxs)(xe.Fragment,{children:[t&&(0,xe.jsx)(un,{panel:t,position:"left",defaultWidth:e},t.id),n&&(0,xe.jsx)(un,{panel:n,position:"right",defaultWidth:e},n.id)]})},po=({defaultWidth:e})=>{let{leftPanel:t}=Ke();return t?(0,xe.jsx)(un,{panel:t,position:"left",defaultWidth:e},t.id):null},go=({defaultWidth:e})=>{let{rightPanel:t}=Ke();return t?(0,xe.jsx)(un,{panel:t,position:"right",defaultWidth:e},t.id):null},mo=cr;var ne=qt(require("react"),1);var pe=require("react/jsx-runtime");function Sn(e){return"renderContent"in e}function ur(e){return"render"in e}function fo(e){return e==null?[]:Array.isArray(e)?e:[e]}var vo=(0,ne.createContext)(null),yo=(0,ne.createContext)(null);function pr({tabId:e,onClose:t,onOpen:n,setActiveTabId:o,children:g}){let l=(0,ne.useMemo)(()=>({tabId:e,onClose:t,onOpen:n,openTab:D=>o(D)}),[e,t,n,o]);return(0,pe.jsx)(yo.Provider,{value:l,children:g})}function ho(e,t,n,o){if(ur(e))return(0,pe.jsx)(ne.default.Fragment,{children:e.render()},e.id??t);if(Sn(e)){let g=n===e.id;return(0,pe.jsx)("button",{type:"button",onClick:()=>o(e.id),className:`rdd-sidebar-tab-btn${g?" rdd-active":""}`,title:e.label,"aria-pressed":g,children:e.icon},e.id)}return(0,pe.jsx)("button",{type:"button",onClick:e.onClick,disabled:e.disabled,className:"rdd-sidebar-tab-btn rdd-sidebar-header-action-btn",title:e.label,"aria-label":e.label,children:e.icon},e.id??t)}var bo=(0,ne.memo)(function({tabs:t,headerEntries:n,footerEntries:o,activeTabId:g,isVisible:l,position:D,onTabClick:b}){return(0,pe.jsx)("div",{style:{width:l?"56px":"0px",height:"100%",overflow:"hidden",transition:"width 0.25s cubic-bezier(0.4, 0, 0.2, 1)",flexShrink:0},children:(0,pe.jsxs)("div",{className:`rdd-sidebar-tabs-strip rdd-${D}${n.length?" rdd-sidebar-tabs-strip--has-header-action":""}${o.length?" rdd-sidebar-tabs-strip--has-footer-action":""}`,style:{width:"56px",height:"100%"},children:[n.length>0&&(0,pe.jsx)("div",{className:"rdd-sidebar-header-area",children:n.map((M,P)=>ho(M,P,g,b))}),(0,pe.jsx)("div",{className:"rdd-sidebar-tabs-list",children:t.map(M=>{let P=g===M.id;return(0,pe.jsx)("button",{type:"button",onClick:()=>b(M.id),className:`rdd-sidebar-tab-btn${P?" rdd-active":""}`,title:M.label,"aria-pressed":P,children:M.icon},M.id)})}),o.length>0&&(0,pe.jsx)("div",{className:"rdd-sidebar-footer-area",children:o.map((M,P)=>ho(M,P,g,b))})]})})});function gr({position:e,currentWidth:t,minWidth:n,maxWidth:o,onWidthChange:g,rootRef:l}){return(0,pe.jsx)("div",{className:"rdd-resizer-bar",style:{cursor:"col-resize",width:"1px",height:"100%",flexShrink:0,zIndex:20},onPointerDown:b=>{b.preventDefault();let M=b.currentTarget,P=[{el:M,classes:["rdd-active"]},{el:document.body,classes:["rdd-resizing-active","rdd-resizing-col-active"]}];l.current&&P.push({el:l.current,classes:["rdd-sidebar-resizing"]}),qe({element:M,pointerId:b.pointerId,startClientX:b.clientX,startClientY:b.clientY,captureStart:()=>t,activeClasses:P,onMove:(C,v,S)=>{let L=e==="right"?S-C:S+C;g(Math.max(n,Math.min(o,L)))}})}})}var Po=(0,ne.forwardRef)(function({position:t="right",tabs:n,headerAction:o,footerAction:g,defaultWidth:l,minWidth:D=150,maxWidth:b=600,onWidthChange:M,activeTabId:P,onActiveTabChange:C,visible:v,onVisibilityChange:S,stripVisible:L,onStripVisibilityChange:N,showCloseButton:W=!1,children:c},E){let w=P!==void 0,[k,m]=(0,ne.useState)(()=>l??280),R=(0,ne.useCallback)(ee=>{m(ee),M?.(ee)},[M]),[H,B]=(0,ne.useState)(null),s=w?P:H,z=(0,ne.useMemo)(()=>fo(o),[o]),Y=(0,ne.useMemo)(()=>fo(g),[g]),K=(0,ne.useMemo)(()=>z.filter(Sn),[z]),Q=(0,ne.useMemo)(()=>Y.filter(Sn),[Y]),ae=(0,ne.useMemo)(()=>[...K,...n,...Q],[K,n,Q]),[te,ye]=(0,ne.useState)(()=>new Set),se=(0,ne.useMemo)(()=>{let ee=new Set(te);s&&ee.add(s);for(let Me of ae)Me.eagerMount&&ee.add(Me.id);return ee},[te,s,ae]),Z=(0,ne.useRef)(s??null);(0,ne.useEffect)(()=>{Z.current=s??null},[s]);let _=(0,ne.useRef)(k);(0,ne.useEffect)(()=>{_.current=k},[k]);let I=(0,ne.useRef)(null),G=(0,ne.useCallback)(ee=>{ye(ee!==null?Me=>{if(Me.has(ee))return Me;let Ie=new Set(Me);return Ie.add(ee),Ie}:Me=>{let Ie=!1,$e=new Set(Me);for(let Ye of Me){let Pe=ae.find(ft=>ft.id===Ye);Pe&&!Pe.eagerMount&&!Pe.preserveState&&($e.delete(Ye),Ie=!0)}return Ie?$e:Me}),w||B(ee),C?.(ee)},[w,C,ae]);(0,ne.useEffect)(()=>{s!=null&&!ae.some(ee=>ee.id===s)&&G(null)},[s,ae,G]),(0,ne.useImperativeHandle)(E,()=>({openTab:ee=>G(ee),closeDrawer:()=>G(null),getActiveTab:()=>Z.current,show:()=>S?.(!0),hide:()=>S?.(!1),toggle:()=>S?.(v===!1),showStrip:()=>N?.(!0),hideStrip:()=>N?.(!1),setWidth:ee=>R(Math.max(D,Math.min(b,ee))),getWidth:()=>_.current}),[G,v,S,N,R,D,b]);let J=(0,ne.useCallback)(ee=>{G(s===ee?null:ee)},[s,G]),ve=(0,ne.useCallback)(()=>G(null),[G]),Ce=(0,ne.useMemo)(()=>({openTab:ee=>G(ee),closeDrawer:()=>G(null),getActiveTab:()=>Z.current}),[G]),we=v!==!1,Re=we&&L!==!1,De=we&&s!=null,Oe=(0,pe.jsx)("div",{className:`rdd-sidebar-content-drawer rdd-${t}`,style:{flexBasis:De?`${k}px`:"0px",flexShrink:1,flexGrow:0,minWidth:De?`${D}px`:"0px",maxWidth:De?`${b}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:ae.map(ee=>{if(!se.has(ee.id))return null;let Ie=s===ee.id,$e=()=>G(ee.id);return(0,pe.jsxs)("div",{style:{display:Ie?"flex":"none",flexDirection:"column",height:"100%",width:"100%"},children:[(0,pe.jsxs)("div",{className:"rdd-sidebar-drawer-header",children:[(0,pe.jsx)("span",{className:"rdd-sidebar-header-title",children:ee.label}),W&&(0,pe.jsx)("button",{type:"button",className:"rdd-sidebar-drawer-close-button",onClick:ve,title:"Close","aria-label":"Close",children:(0,pe.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,pe.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),(0,pe.jsx)("div",{className:"rdd-sidebar-drawer-body",children:(0,pe.jsx)(pr,{tabId:ee.id,onClose:ve,onOpen:$e,setActiveTabId:G,children:ee.renderContent(ee.id,ve,$e)})})]},ee.id)})}),We=De?(0,pe.jsx)(gr,{position:t,currentWidth:k,minWidth:D,maxWidth:b,onWidthChange:R,rootRef:I}):null;return(0,pe.jsx)(vo.Provider,{value:Ce,children:(0,pe.jsxs)("div",{ref:I,style:{display:"flex",flexDirection:"row",width:"100%",height:"100%",overflow:"hidden"},children:[t==="left"&&(0,pe.jsx)(bo,{tabs:n,headerEntries:z,footerEntries:Y,activeTabId:s,isVisible:Re,position:t,onTabClick:J}),t==="left"&&Oe,t==="left"&&We,(0,pe.jsx)("div",{style:{flex:"1 1 0%",minWidth:0,overflow:"hidden"},children:c}),t==="right"&&We,t==="right"&&Oe,t==="right"&&(0,pe.jsx)(bo,{tabs:n,headerEntries:z,footerEntries:Y,activeTabId:s,isVisible:Re,position:t,onTabClick:J})]})})});function xo(){let e=(0,ne.useContext)(vo);if(!e)throw new Error("useSidebar must be used within Sidebar");return e}function Co(){let e=(0,ne.useContext)(yo);if(!e)throw new Error("useSidebarTab must be used within a Sidebar tab renderContent tree");return e}var ze=require("react"),wo=require("react-dom");var ke=require("react/jsx-runtime");function mr(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 fr({item:e,position:t,toolbar:n}){let[o,g]=(0,ze.useState)(!1),[l,D]=(0,ze.useState)(null),b=(0,ze.useRef)(null),M=(0,ze.useRef)(null),P=e.activeItemId!==void 0,C=P?e.activeItemId:n.getActiveInGroup(e.id),v=e.items.find(c=>!("type"in c)&&c.id===C),S=C!==null,L=v?.icon??e.defaultIcon,N=v?.label??e.label,W=()=>{e.disabled||(!o&&b.current&&D(b.current.getBoundingClientRect()),g(c=>!c))};return(0,ze.useLayoutEffect)(()=>{if(!o||!M.current)return;let c=M.current,E=c.getBoundingClientRect(),w=8;E.right>window.innerWidth-w&&(c.style.left=`${Math.max(w,window.innerWidth-E.width-w)}px`,c.style.right="auto"),E.left<w&&(c.style.left=`${w}px`,c.style.right="auto"),E.bottom>window.innerHeight-w&&(c.style.top=`${Math.max(w,window.innerHeight-E.height-w)}px`,c.style.bottom="auto"),E.top<w&&(c.style.top=`${w}px`,c.style.bottom="auto")},[o]),(0,ze.useEffect)(()=>{if(!o)return;let c=E=>{let w=E.target;b.current?.contains(w)||M.current?.contains(w)||g(!1)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[o]),(0,ze.useEffect)(()=>{if(!o)return;let c=E=>{E.key==="Escape"&&g(!1)};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[o]),(0,ke.jsxs)(ke.Fragment,{children:[(0,ke.jsx)("button",{ref:b,type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-group${S?" rdd-active":""}`,title:N,"aria-label":N,"aria-expanded":o,"aria-haspopup":"menu",disabled:e.disabled,onClick:W,children:L}),o&&l&&(0,wo.createPortal)((0,ke.jsx)("div",{ref:M,className:`rdd-toolbar-group-flyout rdd-${t}`,style:mr(l,t,document.documentElement.dir==="rtl"),role:"menu",children:e.items.map((c,E)=>{if("type"in c)return(0,ke.jsx)("div",{className:"rdd-toolbar-group-flyout-sep",role:"separator"},`sep-${E}`);let w=C===c.id;return(0,ke.jsxs)("button",{type:"button",className:`rdd-toolbar-group-flyout-item${w?" rdd-active":""}`,disabled:c.disabled,role:"menuitem","aria-pressed":w,onClick:()=>{P?e.onActiveItemChange?.(c.id):n.setActiveInGroup(e.id,c.id),c.onActivate?.(c.id),g(!1)},children:[(0,ke.jsx)("span",{className:"rdd-toolbar-group-flyout-icon",children:c.icon}),(0,ke.jsx)("span",{className:"rdd-toolbar-group-flyout-label",children:c.label}),c.shortcut&&(0,ke.jsx)("span",{className:"rdd-toolbar-group-flyout-shortcut",children:c.shortcut})]},c.id)})}),document.body)]})}function hr(e,t,n,o){switch(e.type){case"separator":return(0,ke.jsx)("div",{className:"rdd-toolbar-separator",role:"separator"},`sep-${t}`);case"action":return(0,ke.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 g=n.getActiveInGroup(e.group)===e.id;return(0,ke.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-radio${g?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":g,disabled:e.disabled,onClick:()=>{n.setActiveInGroup(e.group,e.id),e.onActivate?.(e.id)},children:e.icon},e.id)}case"toggle":{let g=e.active!==void 0,l=g?e.active:n.isModifierActive(e.id);return(0,ke.jsx)("button",{type:"button",className:`rdd-toolbar-btn rdd-toolbar-btn-toggle${l?" rdd-active":""}`,title:e.label,"aria-label":e.label,"aria-pressed":l,disabled:e.disabled,onClick:()=>{g||n.toggleModifier(e.id),e.onToggle?.(!l)},children:e.icon},e.id)}case"group":return(0,ke.jsx)(fr,{item:e,position:o,toolbar:n},e.id)}}var Ro=(0,ze.forwardRef)(function({position:t="left",items:n,visible:o,onVisibilityChange:g,className:l,style:D},b){let M=Bt(),P=t==="left"||t==="right";(0,ze.useImperativeHandle)(b,()=>({show:()=>g?.(!0),hide:()=>g?.(!1),toggle:()=>g?.(o===!1)}),[o,g]);let C=o!==!1?{}:P?{width:"0px"}:{height:"0px"};return(0,ke.jsx)("div",{className:`rdd-toolbar-strip rdd-${t}${l?` ${l}`:""}`,role:"toolbar","aria-orientation":P?"vertical":"horizontal",style:{...C,...D},children:n.map((v,S)=>hr(v,S,M,t))})});var be=require("react"),En=require("react-dom"),ge=require("react/jsx-runtime"),In=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))}},Fe=new In,Mo=Object.assign((e,t)=>Fe.show(e,t),{info:(e,t)=>Fe.show(e,{...t,type:"info"}),success:(e,t)=>Fe.show(e,{...t,type:"success"}),warning:(e,t)=>Fe.show(e,{...t,type:"warning"}),error:(e,t)=>Fe.show(e,{...t,type:"error"}),dismiss:e=>Fe.dismiss(e),promise:(e,t,n)=>{let o=Fe.show(t.pending,{...n,type:"info",duration:0});return e.then(g=>{let l=typeof t.success=="function"?t.success(g):t.success;Fe.update(o,l,{type:"success",duration:n?.duration??5e3})},g=>{let l=typeof t.error=="function"?t.error(g):t.error;Fe.update(o,l,{type:"error",duration:n?.duration??5e3})}),e}}),br=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ge.jsx)("path",{d:"M8 5v.01M8 7.5v3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),vr=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ge.jsx)("path",{d:"M5 8l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),yr=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("path",{d:"M8 2.5L14 13.5H2L8 2.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),(0,ge.jsx)("path",{d:"M8 7v2.5M8 11.5v.01",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),Pr=()=>(0,ge.jsxs)("svg",{className:"rdd-toast__icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,ge.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),(0,ge.jsx)("path",{d:"M5.5 5.5l5 5M10.5 5.5l-5 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),xr=()=>(0,ge.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:(0,ge.jsx)("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),Cr={info:(0,ge.jsx)(br,{}),success:(0,ge.jsx)(vr,{}),warning:(0,ge.jsx)(yr,{}),error:(0,ge.jsx)(Pr,{})};function wr({id:e,message:t,options:n,exiting:o,isLeft:g,showProgress:l,pauseOnHover:D,animation:b,onDismiss:M,onExited:P}){let C=(0,be.useRef)(null),v=(0,be.useRef)(null),S=(0,be.useRef)(n.duration),L=(0,be.useRef)(0),[N,W]=(0,be.useState)(!1),c=b==="none"?"rdd-toast--visible":b==="fade"?"rdd-toast--fade-entering":g?"rdd-toast--entering-left":"rdd-toast--entering",[E,w]=(0,be.useState)(c);(0,be.useLayoutEffect)(()=>{C.current&&(C.current.style.maxHeight=`${C.current.offsetHeight}px`)},[]),(0,be.useEffect)(()=>{if(b==="none")return;let s=requestAnimationFrame(()=>w("rdd-toast--visible"));return()=>cancelAnimationFrame(s)},[]);let k=(0,be.useCallback)(s=>{s<=0||(L.current=Date.now(),v.current=setTimeout(()=>M(e),s))},[e,M]);(0,be.useEffect)(()=>(v.current&&clearTimeout(v.current),S.current=n.duration,k(n.duration),()=>{v.current&&clearTimeout(v.current)}),[n.duration,k]),(0,be.useEffect)(()=>{if(!o)return;let s=C.current;if(!s||b==="none"){P(e);return}let z=K=>{K.propertyName==="max-height"&&P(e)};s.addEventListener("transitionend",z);let Y=setTimeout(()=>P(e),520);return()=>{s.removeEventListener("transitionend",z),clearTimeout(Y)}},[o,e,P,b]);let m=()=>{!D||n.duration===0||(v.current&&(clearTimeout(v.current),v.current=null,S.current=Math.max(0,S.current-(Date.now()-L.current))),W(!0))},R=()=>{!D||n.duration===0||(W(!1),k(S.current))},H=["rdd-toast",n.type&&`rdd-toast--${n.type}`,E,o&&"rdd-toast--exiting",N&&"rdd-toast--paused"].filter(Boolean).join(" "),B=n.icon!==void 0?n.icon:n.type?Cr[n.type]:null;return(0,ge.jsxs)("div",{ref:C,role:"status","aria-live":"polite",className:H,onMouseEnter:m,onMouseLeave:R,children:[B&&B,(0,ge.jsx)("div",{className:"rdd-toast__body",children:n.content!==void 0?n.content:t}),n.closable&&(0,ge.jsx)("button",{type:"button",className:"rdd-toast__close",onClick:()=>M(e),"aria-label":"Close notification",children:(0,ge.jsx)(xr,{})}),l&&n.duration>0&&(0,ge.jsx)("div",{className:"rdd-toast__progress",style:{animationDuration:`${n.duration}ms`}})]})}function kn(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 To({position:e="top-right",maxVisible:t=3,defaultDuration:n=5e3,defaultClosable:o=!0,pauseOnHover:g=!0,animation:l="slide",newestOnTop:D=!1,progressBar:b=!1,width:M=320,adapter:P}){let[C,v]=(0,be.useState)([]),S=(0,be.useRef)([]),L=(0,be.useRef)(C);L.current=C;let N=(0,be.useCallback)(k=>{v(m=>m.map(R=>R.id===k?{...R,exiting:!0}:R)),L.current.find(m=>m.id===k)?.options.onClose?.()},[]),W=(0,be.useCallback)(k=>{let m=S.current.shift()??null;v(R=>{let H=R.filter(s=>s.id!==k);if(!m)return H;let B=kn(m.rawOpts,n,o);return[...H,{id:m.id,message:m.message,options:B,exiting:!1}]})},[n,o]);if((0,be.useEffect)(()=>{if(P)return;let k=m=>{if(m.kind==="show"){let R=kn(m.rawOpts,n,o),H={id:m.id,message:m.message,options:R,exiting:!1},B={id:m.id,message:m.message,rawOpts:m.rawOpts};v(s=>s.find(K=>K.id===m.id)?s.map(K=>K.id===m.id?{...K,message:m.message,options:R}:K):s.filter(K=>!K.exiting).length<t?[...s,H]:(S.current.some(K=>K.id===B.id)||S.current.push(B),s))}else m.kind==="update"?(v(R=>R.map(H=>{if(H.id!==m.id)return H;let B={...H.options,...m.patch,id:H.id};return{...H,message:m.message,options:B}})),S.current=S.current.map(R=>R.id!==m.id?R:{...R,message:m.message,rawOpts:{...R.rawOpts,...m.patch}})):m.kind==="dismiss"&&(m.id===void 0?(v(R=>R.map(H=>({...H,exiting:!0}))),S.current=[]):L.current.some(H=>H.id===m.id)?N(m.id):S.current=S.current.filter(H=>H.id!==m.id))};return Fe.subscribe(k),()=>Fe.unsubscribe(k)},[P,t,n,o,N]),(0,be.useEffect)(()=>{if(!P)return;let k=m=>{if(m.kind==="show"){let R=kn(m.rawOpts,n,o);P.show(m.id,m.message,R)}else m.kind==="update"?P.update(m.id,m.message,m.patch):m.kind==="dismiss"&&P.dismiss(m.id)};return Fe.subscribe(k),()=>Fe.unsubscribe(k)},[P,n,o]),P){if(!P.Container)return null;let k=P.Container;return(0,En.createPortal)((0,ge.jsx)(k,{position:e}),document.body)}let c=e.endsWith("left"),E="";D===!0&&(E="rdd-toast-container--newest-top"),D===!1&&(E="rdd-toast-container--newest-bottom");let w=["rdd-toast-container",`rdd-toast-container--${e}`,E].filter(Boolean).join(" ");return(0,En.createPortal)((0,ge.jsx)("div",{className:w,style:{width:M},"aria-label":"Notifications","aria-live":"polite",children:C.map(k=>(0,ge.jsx)(wr,{id:k.id,message:k.message,options:k.options,exiting:k.exiting,isLeft:c,showProgress:b,pauseOnHover:g,animation:l,onDismiss:N,onExited:W},k.id))}),document.body)}var X=qt(require("react"),1),ko=require("react-dom");var j=require("react/jsx-runtime"),Rr=["top-left","top-right","bottom-left","bottom-right"],Eo=(0,X.createContext)(null),Io=(0,X.createContext)(null),Lo=(0,X.createContext)(null),rt=80;function Mr(e,t,n){let o=e.getBoundingClientRect(),g=t-o.left,l=n-o.top;return g<rt&&l<rt?"top-left":g>o.width-rt&&l<rt?"top-right":g<rt&&l>o.height-rt?"bottom-left":g>o.width-rt&&l>o.height-rt?"bottom-right":null}function No({children:e,className:t,style:n}){let[o,g]=(0,X.useState)({}),[l,D]=(0,X.useState)({}),[b,M]=(0,X.useState)({"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]}),[P,C]=(0,X.useState)({}),[v,S]=(0,X.useState)(null),[L,N]=(0,X.useState)(null),[W,c]=(0,X.useState)(null),[E,w]=(0,X.useState)(()=>new Map),k=(0,X.useRef)(100),m=(0,X.useRef)(null),R=(0,X.useCallback)((Z,_)=>(g(I=>({...I,[Z]:_})),()=>g(I=>{let G={...I};return delete G[Z],G})),[]),H=(0,X.useCallback)(Z=>{k.current+=1;let _=k.current;D(I=>({...I,[Z]:_})),c(Z)},[]),B=(0,X.useCallback)((Z,_)=>{M(I=>{let G={"top-left":I["top-left"].filter(J=>J!==Z),"top-right":I["top-right"].filter(J=>J!==Z),"bottom-left":I["bottom-left"].filter(J=>J!==Z),"bottom-right":I["bottom-right"].filter(J=>J!==Z)};return G[_]=[...G[_],Z],G})},[]),s=(0,X.useCallback)(Z=>{M(_=>({"top-left":_["top-left"].filter(I=>I!==Z),"top-right":_["top-right"].filter(I=>I!==Z),"bottom-left":_["bottom-left"].filter(I=>I!==Z),"bottom-right":_["bottom-right"].filter(I=>I!==Z)}))},[]),z=(0,X.useCallback)((Z,_)=>{C(I=>I[Z]===_?I:{...I,[Z]:_})},[]),Y=(0,X.useCallback)((Z,_)=>{w(I=>{let G=new Map(I);return G.set(Z,_),G})},[]),K=(0,X.useCallback)(Z=>{w(_=>{let I=new Map(_);return I.delete(Z),I})},[]),Q=(0,X.useCallback)(()=>{w(new Map)},[]),ae=(0,X.useMemo)(()=>Array.from(E.keys()),[E]),te=(0,X.useMemo)(()=>({registerToolbar:R,insetTop:o.top??0,insetBottom:o.bottom??0}),[R,o]),ye=(0,X.useMemo)(()=>({managedWindowIds:ae,openManaged:Y,closeManaged:K,closeAllManaged:Q}),[ae,Y,K,Q]),se=(0,X.useMemo)(()=>({topId:W,zOrders:l,focusWindow:H,containerRef:m,stacks:b,dockedSizes:P,dockWindow:B,undockWindow:s,reportDockedSize:z,draggingId:v,setDraggingId:S,hoveredZone:L,setHoveredZone:N,insetTop:o.top??0,insetBottom:o.bottom??0}),[W,l,H,b,P,B,s,z,v,L,o]);return(0,j.jsx)(Eo.Provider,{value:te,children:(0,j.jsx)(Io.Provider,{value:ye,children:(0,j.jsx)(Lo.Provider,{value:se,children:(0,j.jsxs)("div",{ref:m,className:`rdd-panel-overlay-root${v!==null?" rdd-dragging-active":""}${t?" "+t:""}`,style:n,children:[e,v!==null&&(0,j.jsx)(Tr,{hoveredZone:L}),Array.from(E.entries()).map(([Z,_])=>(0,j.jsx)(Ln,{id:Z,title:_.title,icon:_.icon,open:!0,onClose:()=>K(Z),defaultAnchor:_.anchor??"top-right",defaultWidth:_.width??320,defaultHeight:_.height??240,children:_.content},Z))]})})})})}function Tr({hoveredZone:e}){return(0,j.jsx)(j.Fragment,{children:Rr.map(t=>(0,j.jsx)("div",{className:`rdd-panel-float-dropzone rdd-panel-float-dropzone--${t}${e===t?" rdd-panel-float-dropzone--hovered":""}`,"aria-hidden":"true"},t))})}function zo({position:e,variant:t="transparent",buttonVariant:n="ghost",buttonSize:o,style:g,className:l,children:D}){let b=(0,X.useContext)(Eo),M=(0,X.useRef)(null),P=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>{let N=M.current;if(!N||!b)return;let W=()=>{let E=e==="top"||e==="bottom"?N.offsetHeight:N.offsetWidth;P.current?.(),P.current=b.registerToolbar(e,E)};W();let c=new ResizeObserver(W);return c.observe(N),()=>{c.disconnect(),P.current?.(),P.current=null}},[e,b?.registerToolbar]);let C={position:"absolute",zIndex:5,pointerEvents:"none",boxSizing:"border-box"};e==="top"?(C.top=0,C.left=0,C.right=0):e==="bottom"?(C.bottom=0,C.left=0,C.right=0):e==="left"?(C.insetInlineStart=0,C.top=b?.insetTop??0,C.bottom=b?.insetBottom??0):(C.insetInlineEnd=0,C.top=b?.insetTop??0,C.bottom=b?.insetBottom??0);let S=e==="left"||e==="right"?{...(b?.insetTop??0)>0?{paddingTop:0}:{},...(b?.insetBottom??0)>0?{paddingBottom:0}:{}}:{},L=o!=null?{"--rdd-panel-toolbar-btn-size":`${o}px`}:{};return(0,j.jsx)("div",{ref:M,className:`rdd-panel-toolbar rdd-panel-toolbar--${e}${l?" "+l:""}`,"data-variant":t,"data-btn-variant":n,style:{...C,...S,...L,...g},children:D})}function Do({icon:e,onClick:t,disabled:n,title:o,variant:g}){return(0,j.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:t,disabled:n,title:o,"aria-label":o,...g?{"data-variant":g}:{},children:e})}function Wo({icon:e,active:t,onToggle:n,disabled:o,title:g,variant:l}){return(0,j.jsx)("button",{type:"button",className:`rdd-panel-toolbar-btn${t?" rdd-panel-toolbar-btn--active":""}`,onClick:n,disabled:o,title:g,"aria-label":g,"aria-pressed":t,...l?{"data-variant":l}:{},children:e})}function Oo(){return(0,j.jsx)("span",{className:"rdd-panel-toolbar__sep","aria-hidden":"true"})}function Ao(){return(0,j.jsx)("span",{className:"rdd-panel-toolbar__spacer","aria-hidden":"true"})}function Fo({children:e}){return(0,j.jsx)("span",{className:"rdd-panel-toolbar__item",children:e})}function _o({children:e}){return(0,j.jsx)("div",{className:"rdd-panel-toolbar__center",children:e})}function Ho({placeholder:e="Search\u2026",onSearch:t,onSelect:n}){let[o,g]=(0,X.useState)(!1),[l,D]=(0,X.useState)(""),[b,M]=(0,X.useState)([]),[P,C]=(0,X.useState)(null),v=(0,X.useRef)(null),S=(0,X.useRef)(null),L=(0,X.useRef)(null),N=(0,X.useRef)(null),W=()=>{g(!0),setTimeout(()=>S.current?.focus({preventScroll:!0}),0)},c=()=>{g(!1),D(""),M([]),C(null),L.current?.abort(),N.current&&clearTimeout(N.current)},E=B=>{let s=B.target.value;if(D(s),L.current?.abort(),N.current&&clearTimeout(N.current),!s.trim()){M([]),C(null);return}N.current=setTimeout(async()=>{let z=new AbortController;L.current=z;try{let Y=await t(s,z.signal);if(!z.signal.aborted){M(Y);let K=v.current;if(K&&Y.length>0){let Q=K.getBoundingClientRect(),ae=Math.max(Q.width,240),te=Q.left;te+ae>window.innerWidth-8&&(te=window.innerWidth-ae-8),C({top:Q.bottom+4,left:te,width:ae})}else C(null)}}catch{}},300)},w=B=>{n(B),c()},k=B=>{v.current?.contains(B.relatedTarget)||c()},m=B=>{B.key==="Escape"&&c()},R=(0,X.useMemo)(()=>{let B={};for(let s of b){let z=s.group??"";B[z]||(B[z]=[]),B[z].push(s)}return B},[b]),H=(0,j.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,j.jsx)("circle",{cx:"6.5",cy:"6.5",r:"4.5"}),(0,j.jsx)("line",{x1:"10",y1:"10",x2:"14",y2:"14"})]});return o?(0,j.jsxs)("div",{ref:v,className:"rdd-panel-toolbar-search rdd-panel-toolbar-search--open",onBlur:k,children:[(0,j.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:c,"aria-label":"Close search",title:"Close search",children:H}),(0,j.jsx)("input",{ref:S,className:"rdd-panel-toolbar-search__input",type:"text",value:l,onChange:E,onKeyDown:m,placeholder:e,autoComplete:"off"}),P&&b.length>0&&(0,ko.createPortal)((0,j.jsx)("div",{className:"rdd-panel-toolbar-search__dropdown",style:{position:"fixed",top:P.top,left:P.left,width:P.width,zIndex:9502},onMouseDown:B=>B.preventDefault(),children:Object.entries(R).map(([B,s])=>(0,j.jsxs)(X.default.Fragment,{children:[B&&(0,j.jsx)("div",{className:"rdd-panel-toolbar-search__group",children:B}),s.map(z=>(0,j.jsxs)("button",{type:"button",className:"rdd-panel-toolbar-search__item",onClick:()=>w(z),children:[z.icon&&(0,j.jsx)("span",{className:"rdd-panel-toolbar-search__item-icon",children:z.icon}),(0,j.jsx)("span",{className:"rdd-panel-toolbar-search__item-label",children:z.label}),z.description&&(0,j.jsx)("span",{className:"rdd-panel-toolbar-search__item-desc",children:z.description})]},z.id))]},B||"__default__"))}),document.body)]}):(0,j.jsx)("div",{ref:v,className:"rdd-panel-toolbar-search",children:(0,j.jsx)("button",{type:"button",className:"rdd-panel-toolbar-btn",onClick:W,title:"Search","aria-label":"Search",children:H})})}function Ln(e){let t=(0,X.useContext)(Lo);return e.open?(0,j.jsx)(Ir,{ctx:t,...e},e.id):null}var Sr=120,kr=60,So=8,Er=8;function Ir({id:e,title:t,icon:n,defaultAnchor:o,defaultWidth:g,defaultHeight:l,children:D,ctx:b,onClose:M}){let P=(0,X.useContext)(wt)?.isRtl??!1,[C,v]=(0,X.useState)("docked"),[S,L]=(0,X.useState)(o),[N,W]=(0,X.useState)(null),[c,E]=(0,X.useState)({w:g,h:l}),w=(0,X.useRef)(null),k=(0,X.useRef)(C);k.current=C;let m=(0,X.useRef)(N);m.current=N;let R=(0,X.useRef)(c);R.current=c;let H=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>(b?.dockWindow(e,o),()=>{b?.undockWindow(e)}),[]),(0,X.useEffect)(()=>{b?.reportDockedSize(e,c.h)},[c.h]);let B=b?.zOrders[e]??101,s=!b||b.topId===e,z=()=>{let _=w.current?.offsetParent;return{cw:_?.clientWidth??9999,ch:_?.clientHeight??9999}},Y=()=>{b?.focusWindow(e)},K=_=>{if(_.button!==0)return;_.preventDefault();let I,G;if(k.current==="docked"){let J=w.current,ve=b?.containerRef?.current;if(J&&ve){let Ce=J.getBoundingClientRect(),we=ve.getBoundingClientRect();I=Ce.left-we.left,G=Ce.top-we.top}else I=So,G=b?.insetTop??0;b?.undockWindow(e),v("free"),W({x:I,y:G})}else I=m.current?.x??0,G=m.current?.y??0;H.current={mouseX:_.clientX,mouseY:_.clientY,posX:I,posY:G,hasDragged:!1},w.current?.setPointerCapture(_.pointerId),document.body.classList.add("rdd-dragging-active")},Q=_=>I=>{if(I.button!==0)return;I.preventDefault(),I.stopPropagation();let G=0,J=0;if(k.current==="free")G=m.current?.x??0,J=m.current?.y??0;else{let Ce=w.current,we=Ce?.offsetParent;if(Ce&&we){let Re=Ce.getBoundingClientRect(),De=we.getBoundingClientRect();G=Re.left-De.left,J=Re.top-De.top}}let ve={x:G,y:J,w:R.current.w,h:R.current.h};qe({element:I.currentTarget,pointerId:I.pointerId,startClientX:I.clientX,startClientY:I.clientY,captureStart:()=>ve,activeClasses:[{el:document.body,classes:["rdd-resizing-active"]}],onMove:(Ce,we,Re)=>{let{cw:De,ch:Oe}=z(),{x:We,y:ee,w:Me,h:Ie}=kt(_,Ce,we,Re,{minW:Sr,minH:kr,maxW:De-Re.x,maxH:Oe-Re.y,minX:0,minY:0});E({w:Me,h:Ie}),k.current==="free"&&W({x:We,y:ee})}})},ae=_=>{if(H.current){let I=H.current;if(!I.hasDragged){if(Math.abs(_.clientX-I.mouseX)+Math.abs(_.clientY-I.mouseY)<4)return;I.hasDragged=!0,b?.setDraggingId(e)}let{cw:G,ch:J}=z(),ve=Math.max(0,Math.min(I.posX+_.clientX-I.mouseX,G-R.current.w)),Ce=Math.max(0,Math.min(I.posY+_.clientY-I.mouseY,J-R.current.h));W({x:ve,y:Ce});let we=b?.containerRef?.current;if(we){let Re=Mr(we,_.clientX,_.clientY);b?.setHoveredZone(Re&&P?Ft(Re):Re)}}},te=()=>{if(H.current){let _=b?.hoveredZone;_&&(b?.dockWindow(e,_),L(_),v("docked"),W(null)),b?.setHoveredZone(null),b?.setDraggingId(null)}document.body.classList.remove("rdd-dragging-active"),H.current=null},ye=()=>{H.current&&(b?.setHoveredZone(null),b?.setDraggingId(null)),document.body.classList.remove("rdd-dragging-active"),H.current=null},se;if(C==="docked"&&b){let _=b.stacks[S]??[],I=_.indexOf(e),G=0;for(let J=0;J<I;J++)G+=(b.dockedSizes[_[J]]??l)+Er;se={width:c.w,height:c.h,zIndex:B,transition:"top 0.2s ease, bottom 0.2s ease",opacity:I===-1?0:void 0,pointerEvents:I===-1?"none":void 0},se[S.endsWith("-right")?"insetInlineEnd":"insetInlineStart"]=So,S.startsWith("top-")?se.top=b.insetTop+G:se.bottom=b.insetBottom+G}else se={left:N?.x??0,top:N?.y??0,width:c.w,height:c.h,zIndex:B};return(0,j.jsxs)("div",{ref:w,dir:P?"rtl":"ltr",className:`rdd-panel-float${s?" rdd-panel-float--active":""}`,style:se,onPointerDown:Y,onPointerMove:ae,onPointerUp:te,onPointerCancel:ye,children:[(0,j.jsxs)("div",{className:"rdd-panel-float__header",onPointerDown:K,children:[n&&(0,j.jsx)("span",{className:"rdd-panel-float__icon",children:n}),(0,j.jsx)("span",{className:"rdd-panel-float__title",children:t}),(0,j.jsx)("button",{type:"button",className:"rdd-panel-float__close",onClick:M,onPointerDown:_=>_.stopPropagation(),title:"Close","aria-label":"Close",children:(0,j.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,j.jsx)("line",{x1:"1",y1:"1",x2:"9",y2:"9"}),(0,j.jsx)("line",{x1:"9",y1:"1",x2:"1",y2:"9"})]})})]}),(0,j.jsx)("div",{className:"rdd-panel-float__body",children:D}),C==="free"&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-n",onPointerDown:Q("n")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-ne",onPointerDown:Q("ne")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-nw",onPointerDown:Q("nw")})]}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-e",onPointerDown:Q("e")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-se",onPointerDown:Q("se")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-s",onPointerDown:Q("s")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-sw",onPointerDown:Q("sw")}),(0,j.jsx)("div",{className:"rdd-resize-handle rdd-resize-w",onPointerDown:Q("w")})]})}function Bo(){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 Lr=[];function $o(){let e=(0,X.useContext)(Io),t=e?.managedWindowIds??Lr;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