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