react-zeugma 6.5.1 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +340 -394
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/{types-DO2k-HLr.d.cts → types-CqFrNqQ6.d.cts} +11 -6
- package/dist/{types-DO2k-HLr.d.ts → types-CqFrNqQ6.d.ts} +11 -6
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var Pn=require('react'),core=require('@dnd-kit/core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Pn__default=/*#__PURE__*/_interopDefault(Pn);function gt({cursor:e,resizerEl:t,onMove:n,onEnd:r}){document.body.classList.add("zeugma-resizing");let o=document.createElement("style");o.id="zeugma-global-cursor-style",o.textContent=`
|
|
2
2
|
* {
|
|
3
3
|
cursor: ${e} !important;
|
|
4
4
|
user-select: none !important;
|
|
5
5
|
}
|
|
6
|
-
`,document.head.appendChild(o),t.setAttribute("data-resizing","true");let i=l=>{n(l);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let l=document.getElementById("zeugma-global-cursor-style");l&&l.remove(),document.removeEventListener("pointermove",i),document.removeEventListener("pointerup",a),r();};document.addEventListener("pointermove",i),document.addEventListener("pointerup",a);}var Ke=nn.createContext(void 0),Qe=nn.createContext(void 0),ze=nn.createContext(void 0),je=nn.createContext(void 0),se=()=>{let e=nn.useContext(Ke);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},$e=()=>{let e=nn.useContext(Qe);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Ae=()=>{let e=nn.useContext(je);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};var Ut=()=>{let e=se(),t=$e();return {layout:e.layout,setLayout:e.setLayout,fullscreenPaneId:e.fullscreenPaneId,setFullscreenPaneId:t.setFullscreenPaneId,locked:e.locked,setLocked:t.setLocked,removePane:t.removePane,addTab:t.addTab,updateMetadata:t.updateMetadata,updatePaneLock:t.updatePaneLock,selectTab:t.selectTab,mergeTab:t.mergeTab,removeTab:t.removeTab,splitPane:t.splitPane,updateSplitPercentage:t.updateSplitPercentage,moveTab:t.moveTab,findPaneById:e.findPaneById,findPaneContainingTab:e.findPaneContainingTab,findTabById:e.findTabById,getTabMetadata:e.getTabMetadata,getActiveTabMetadata:e.getActiveTabMetadata}};var Be=class extends core.PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},He=class extends core.TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function Oe(e){if(e instanceof MouseEvent||e instanceof PointerEvent)return {x:e.clientX,y:e.clientY};if(typeof TouchEvent<"u"&&e instanceof TouchEvent){let t=e.touches[0]||e.changedTouches[0];if(t)return {x:t.clientX,y:t.clientY}}return null}function Tt(e){let{layout:t,_internalSetLayout:n,layoutBeforeDrag:r,setLayoutBeforeDrag:o,activeId:i,setActiveId:a,setActiveType:l,dismissIntentId:c,setDismissIntentId:p,setOverTabId:g,setOverTabPosition:v,containerRef:D,dragActivationDistance:N,enableDragToDismiss:P,dismissThreshold:z,onRemove:I,onDragStart:$,onDragEnd:m,onDismissIntentChange:B,removeTab:U,removePane:E}=e,f=nn.useRef(null),T=ut(i),[j,L]=nn.useState(false);dt(j);let Z=core.useSensors(core.useSensor(Be,{activationConstraint:{distance:N}}),core.useSensor(He,{activationConstraint:{delay:250,tolerance:5}})),q=nn.useCallback(k=>{let A=k.active.id.toString().startsWith("tab-header-"),w=core.pointerWithin(k),R=A?w:w.filter(u=>!u.id.toString().startsWith("tab-drop-"));if(R.length>0)return [...R].sort((F,y)=>{let C=F.id.toString(),te=y.id.toString();if(A){let W=C.startsWith("tab-drop-"),_=te.startsWith("tab-drop-");if(W&&!_)return -1;if(!W&&_)return 1}let V=C.startsWith("drop-root-"),O=te.startsWith("drop-root-");return V&&!O?-1:!V&&O?1:0});if(A){let u=k.droppableContainers.filter(F=>F.id.toString().startsWith("tab-drop-"));return core.closestCenter({...k,droppableContainers:u})}return []},[]);return {sensors:Z,collisionDetection:q,onDragStart:k=>{let x=k.active.id.toString(),A=x.startsWith("tab-header-"),w=A?x.substring(11):x;a(w),l(A?"tab":"pane"),g(null),v(null);let R=k.activatorEvent;T.current=Oe(R),P&&D.current?f.current=D.current.getBoundingClientRect():f.current=null;let u=t;if(A){let F=K(t,w);F&&(u=Re(t,F.id,w)||t);}o(u),A&&u!==t&&n(u),$&&$(w);},onDragMove:k=>{let{over:x}=k,A=x?.id.toString()||"",w=A.startsWith("drop-locked-");L(b=>b===w?b:w);let R=k.active.id.toString(),u=R.startsWith("tab-header-"),F=u?R.substring(11):R,y=A.match(/^tab-drop-(.+)$/);if(y&&x&&u){let[,b]=y;if(F!==b){let h="before",re=x.rect,ae=k.activatorEvent,s=null;if(T.current)s=T.current.x;else {let d=Oe(ae);d&&(s=d.x+k.delta.x);}if(s!==null){let d=re.left+re.width/2;s>d&&(h="after");}g(d=>d===b?d:b),v(d=>d===h?d:h);}else g(h=>h===null?h:null),v(h=>h===null?h:null);}else g(b=>b===null?b:null),v(b=>b===null?b:null);if(!P)return;let C=f.current;if(!C){c!==null&&(p(null),B?.(null));return}let te=k.activatorEvent,V=null,O=null;if(T.current)V=T.current.x,O=T.current.y;else {let b=Oe(te);b&&(V=b.x+k.delta.x,O=b.y+k.delta.y);}let W=0;if(V!==null&&O!==null){let b=0,h=0;V<C.left?b=C.left-V:V>C.right&&(b=V-C.right),O<C.top?h=C.top-O:O>C.bottom&&(h=O-C.bottom),W=Math.sqrt(b*b+h*h);}else {let b=k.active.rect.current.translated;if(b){let h=b.left+b.width/2,re=b.top+b.height/2,ae=0,s=0;h<C.left?ae=C.left-h:h>C.right&&(ae=h-C.right),re<C.top?s=C.top-re:re>C.bottom&&(s=re-C.bottom),W=Math.sqrt(ae*ae+s*s);}}W>z?c!==F&&(p(F),B?.(F)):c!==null&&(p(null),B?.(null));},onDragEnd:k=>{a(null),l(null),L(false),g(null),v(null);let{active:x,over:A}=k,w=x.id.toString(),R=w.startsWith("tab-header-"),u=R?w.substring(11):w,F=P&&c===u;p(null),B?.(null),f.current=null;let y=r||t;if(o(null),F){I?I(u):R?U(u):E(u),m&&m(u,null,null);return}if(!A){n(y),m&&m(u,null,null);return}let C=A.id.toString();if(C.startsWith("drop-locked-")){n(y),m&&m(u,null,null);return}let te=C.match(/^tab-drop-(.+)$/);if(te){if(!R){n(y),m&&m(u,null,null);return}let[,M]=te;if(u!==M){let G="before",X=A.rect,le=k.activatorEvent,ne=null;if(T.current)ne=T.current.x;else {let oe=Oe(le);oe&&(ne=oe.x+k.delta.x);}if(ne!==null){let oe=X.left+X.width/2;ne>oe&&(G="after");}let xe=ke(y,u,M,G);n(xe),m&&m(u,M,{type:"move",position:"center"});}else n(y),m&&m(u,null,null);return}let V=C.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(V){let[,M,G]=V,X=G;X==="start"&&(X="left"),X==="end"&&(X="right");let le=R?de(y,u):be(y,u),ne;if(R){let oe=K(y,u)?.tabsMetadata?.[u];ne={type:"pane",id:ue(),tabs:[u],activeTabId:u,tabsMetadata:oe?{[u]:oe}:void 0};}else ne=Q(y,u)??{type:"pane",id:ue(),tabs:[u],activeTabId:u};if(le===null)n(ne);else {let xe=X==="left"||X==="right",oe=X==="left"||X==="top",we=50;M==="1/4"?we=oe?25:75:M==="1/3"&&(we=oe?100/3:200/3),n({type:"split",direction:xe?"row":"column",first:oe?ne:le,second:oe?le:ne,splitPercentage:we});}m&&m(u,"root",{type:"split",direction:X==="left"||X==="right"?"row":"column",position:X});return}let O=C.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!O){n(y),m&&m(u,null,null);return}let[,W,_]=O,b=R?K(y,u):Q(y,u),h=b&&b.id===_,re=b&&b.tabs.length===1;if(u===_||h&&re){n(y),m&&m(u,null,null);return}let ae=W==="left"||W==="right"?"row":"column",s;if(R){let G=K(y,u)?.tabsMetadata?.[u];s={type:"pane",id:ue(),tabs:[u],activeTabId:u,tabsMetadata:G?{[u]:G}:void 0};}else s=Q(y,u)??{type:"pane",id:ue(),tabs:[u],activeTabId:u};let d=R?de(y,u):be(y,u),H=ye(d,_,ae,W,s);n(H),m&&m(u,_,{type:"split",direction:ae,position:W});},onDragCancel:()=>{a(null),l(null),L(false),g(null),v(null),p(null),B?.(null),f.current=null,r!==null&&(n(r),o(null));}}}var Pt=({activeId:e,render:t,className:n})=>{let r=nn.useRef(null);return nn.useEffect(()=>{let o=i=>{r.current&&(r.current.style.transform=`translate(${i.clientX+12}px, ${i.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsxRuntime.jsx("div",{ref:r,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var xt=nn__default.default.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,[o,i]=nn.useState(false),a=nn.useRef(null);if(nn.useEffect(()=>{i(true);},[]),nn.useEffect(()=>{if(!o||!a.current)return;let c=a.current;if(t)t.appendChild(c);else {let p=document.getElementById("zeugma-hidden-portal-container");p||(p=document.createElement("div"),p.id="zeugma-hidden-portal-container",p.style.display="none",document.body.appendChild(p)),p.appendChild(c);}},[t,o]),nn.useEffect(()=>()=>{a.current&&a.current.remove();},[]),!o)return null;a.current||(a.current=document.createElement("div"),a.current.className=`zeugma-portal-wrapper-${r}`,a.current.style.width="100%",a.current.style.height="100%");let l=a.current;return !l||!n?null:reactDom.createPortal(n(e),l)},(e,t)=>e.target===t.target&&e.renderWidget===t.renderWidget&&e.tabDetails.id===t.tabDetails.id&&e.tabDetails.paneId===t.tabDetails.paneId&&e.tabDetails.isActive===t.tabDetails.isActive&&e.tabDetails.index===t.tabDetails.index&&e.tabDetails.metadata===t.tabDetails.metadata);function tt({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:i,layout:a,currentNode:l,onLayoutChange:c,onResizeStart:p,onResizeEnd:g,parentLeft:v,parentTop:D,parentWidth:N,parentHeight:P}){let{onResizeStart:z,onResize:I,onResizeEnd:$,minSplitPercentage:m=5,maxSplitPercentage:B=95,locked:U=false}=se();return nn.useCallback(E=>{if(U)return;E.preventDefault();let f=e.current;if(!f)return;p&&p(),z&&z(l);let T=f.getBoundingClientRect(),j=E.clientX,L=E.clientY,Z=r,q=E.currentTarget,ee=T.left+T.width*(v/100),J=T.top+T.height*(D/100),S=T.width*(N/100),ie=T.height*(P/100),x=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(w=>w!==q&&w.getAttribute("data-direction")===n).map(w=>{let R=w.getBoundingClientRect();return t?R.left+R.width/2:R.top+R.height/2}),A=Z;vt({cursor:t?"col-resize":"row-resize",resizerEl:q,onMove:w=>{let R=t?(w.clientX-j)/S*100:(w.clientY-L)/ie*100,u=Z+R,F=t?ee+(S-o)*(u/100)+o/2:J+(ie-o)*(u/100)+o/2,y=1/0,C=null;for(let W of x){let _=Math.abs(F-W);_<i&&_<y&&(y=_,C=W);}let te=u;C!==null&&(te=t?(C-o/2-ee)/(S-o)*100:(C-o/2-J)/(ie-o)*100);let V=Math.max(m,Math.min(B,te));A=V;let O=he(a,l,V);if(O){let{panes:W,splitters:_}=ge(O),b=e.current;if(b){for(let h of W)b.style.setProperty(`--pane-left-${h.paneId}`,`${h.left}%`),b.style.setProperty(`--pane-top-${h.paneId}`,`${h.top}%`),b.style.setProperty(`--pane-width-${h.paneId}`,`${h.width}%`),b.style.setProperty(`--pane-height-${h.paneId}`,`${h.height}%`);for(let h of _)b.style.setProperty(`--splitter-pos-${h.id}`,`${h.direction==="row"?h.left:h.top}%`);}}I&&I(l,V);},onEnd:()=>{let w=he(a,l,A),R=e.current;if(R){let{panes:u,splitters:F}=ge(w);for(let y of u)R.style.removeProperty(`--pane-left-${y.paneId}`),R.style.removeProperty(`--pane-top-${y.paneId}`),R.style.removeProperty(`--pane-width-${y.paneId}`),R.style.removeProperty(`--pane-height-${y.paneId}`);for(let y of F)R.style.removeProperty(`--splitter-pos-${y.id}`);}c(w),g&&g(),$&&$(l,A);}});},[e,t,n,r,o,i,a,l,c,p,g,z,I,$,m,B,v,D,N,P])}var pn=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{layout:o,setLayout:i,classNames:a,locked:l}=se(),[c,p]=nn.useState(false),{currentNode:g,direction:v,left:D,top:N,width:P,height:z,parentLeft:I,parentTop:$,parentWidth:m,parentHeight:B}=e,U=v==="row",E=tt({containerRef:r,isRow:U,direction:v,splitPercentage:g.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:g,onLayoutChange:i,onResizeStart:()=>p(true),onResizeEnd:()=>p(false),parentLeft:I,parentTop:$,parentWidth:m,parentHeight:B}),f=U?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${D}%) - ${t/2}px)`,top:`calc(${N}% + ${t/2}px)`,width:`${t}px`,height:`calc(${z}% - ${t}px)`,cursor:l?"default":"col-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${D}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${N}%) - ${t/2}px)`,width:`calc(${P}% - ${t}px)`,height:`${t}px`,cursor:l?"default":"row-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsxRuntime.jsx("div",{className:a.resizer||"","data-direction":v,"data-resizing":c||void 0,style:f,onPointerDown:E,role:"separator","aria-valuenow":g.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},fn=nn__default.default.memo(({paneId:e,renderPane:t})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),nt=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{let{layout:o,activeId:i,dismissIntentId:a,setContainerRef:l,fullscreenPaneId:c,snapThreshold:p,locked:g,classNames:v,renderPane:D,resizerSize:N}=se(),P=r!==void 0?r:p??8,z=n!==void 0?n:N??4,I=e!==void 0?e:D;if(!I)throw new Error("PaneTree must be provided a renderPane prop or used within a Zeugma provider with renderPane.");let $=t!==void 0?t:o,m=nn.useRef(null),{panes:B,splitters:U}=nn.useMemo(()=>$?ge($):{panes:[],splitters:[]},[$]);if(!$)return null;let E=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[B.map(f=>{let T=c===f.paneId;return jsxRuntime.jsx("div",{style:{position:"absolute",left:T?"0%":`var(--pane-left-${f.paneId}, ${f.left}%)`,top:T?"0%":`var(--pane-top-${f.paneId}, ${f.top}%)`,width:T?"100%":`var(--pane-width-${f.paneId}, ${f.width}%)`,height:T?"100%":`var(--pane-height-${f.paneId}, ${f.height}%)`,overflow:"hidden",zIndex:T?20:1,display:c&&!T?"none":"block",padding:T?"0px":`${z/2}px`,boxSizing:"border-box"},children:jsxRuntime.jsx(fn,{paneId:f.paneId,renderPane:I})},f.paneId)}),!c&&U.map(f=>jsxRuntime.jsx(pn,{splitter:f,resizerSize:z,snapThreshold:P,containerRef:m},f.id))]});if(t===void 0){let f=i!==null&&i===a,T=L=>{l(L),m.current=L;},j=`${v.dashboard||""} ${f&&v.dashboardDismissActive||""} ${g&&v.dashboardLocked||""}`.trim();return jsxRuntime.jsxs("div",{ref:T,className:j,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[E(),i!==null&&!g&&jsxRuntime.jsx(Ct,{activeClassName:v.rootDropPreview??v.dropPreview})]})}return jsxRuntime.jsx("div",{ref:m,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:E()})};var bn=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:i,resizerSize:a,dragActivationDistance:l=8,snapThreshold:c=8,minSplitPercentage:p=5,maxSplitPercentage:g=95,enableDragToDismiss:v=false,dismissThreshold:D=60,onRemove:N,onDragStart:P,onDragEnd:z,onResizeStart:I,onResize:$,onResizeEnd:m,onDismissIntentChange:B}=e,U=t,{layout:E,setLayout:f,_internalSetLayout:T,fullscreenPaneId:j,setFullscreenPaneId:L,locked:Z,setLocked:q,findPaneById:ee,findPaneContainingTab:J,findTabById:S,getTabMetadata:ie,getActiveTabMetadata:k,activeId:x,setActiveId:A,activeType:w,setActiveType:R,dismissIntentId:u,setDismissIntentId:F,containerRef:y,setContainerRef:C,layoutBeforeDrag:te,setLayoutBeforeDrag:V,removePane:O,addTab:W,updateMetadata:_,updatePaneLock:b,selectTab:h,mergeTab:re,removeTab:ae,splitPane:s,updateSplitPercentage:d,moveTab:H}=U,{portalTargets:M,registerPortalTarget:G,registerRenderCallback:X,renderCallbacksRef:le}=pt(),[ne,xe]=nn.useState(null),[oe,we]=nn.useState(null),st=Tt({layout:E,_internalSetLayout:T,layoutBeforeDrag:te,setLayoutBeforeDrag:V,activeId:x,setActiveId:A,setActiveType:R,dismissIntentId:u,setDismissIntentId:F,setOverTabId:xe,setOverTabPosition:we,containerRef:y,dragActivationDistance:l,enableDragToDismiss:v,dismissThreshold:D,onRemove:N,onDragStart:P,onDragEnd:z,onDismissIntentChange:B,removeTab:ae,removePane:O}),it=nn.useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.rootDropPreview,o.dragOverlay,o.resizer,o.dismissPreview,o.dashboardLocked,o.lockedPreview,o.tabDropPreview,o.tabSeparator,o.tabsContainer,o.tab,o.paneContainer,o.paneHeader,o.paneControls,o.paneButton,o.tabCloseButton,o.dragHandle]),lt=nn.useCallback((ce,me)=>{m&&m(ce,me);},[m]),zt=nn.useMemo(()=>({layout:E,setLayout:f,activeId:x,activeType:w,dismissIntentId:u,setContainerRef:C,fullscreenPaneId:j,classNames:it,onRemove:N,onFullscreenChange:L,snapThreshold:c,onResizeStart:I,onResize:$,onResizeEnd:lt,minSplitPercentage:p,maxSplitPercentage:g,locked:Z,setLocked:q,findPaneById:ee,findPaneContainingTab:J,findTabById:S,getTabMetadata:ie,getActiveTabMetadata:k,renderPane:i,resizerSize:a}),[E,x,w,u,C,j,it,N,L,c,I,$,p,g,f,lt,Z,q,ee,J,S,ie,k,i,a]),$t=nn.useMemo(()=>({overTabId:ne,overTabPosition:oe}),[ne,oe]),At=nn.useMemo(()=>({removePane:O,addTab:W,updateMetadata:_,updatePaneLock:b,selectTab:h,mergeTab:re,removeTab:ae,setFullscreenPaneId:L,setLocked:q,splitPane:s,updateSplitPercentage:d,moveTab:H}),[O,W,_,b,h,re,ae,L,q,s,d,H]),Bt=nn.useMemo(()=>{let ce=new Set;function me(fe){fe&&(fe.type==="pane"?fe.tabs.forEach(Ot=>{ce.add(Ot);}):fe.type==="split"&&(me(fe.first),me(fe.second)));}return me(E),te&&me(te),Array.from(ce).sort()},[E,x,te]),Ht=nn.useMemo(()=>({registerPortalTarget:G,registerRenderCallback:X,renderCallbacksRef:le}),[G,X,le]);return jsxRuntime.jsx(Qe.Provider,{value:At,children:jsxRuntime.jsx(Ke.Provider,{value:zt,children:jsxRuntime.jsx(je.Provider,{value:$t,children:jsxRuntime.jsxs(ze.Provider,{value:Ht,children:[jsxRuntime.jsx(core.DndContext,{id:"zeugma-dnd-context",...st,children:n}),x&&w&&r&&jsxRuntime.jsx(Pt,{activeId:x,render:ce=>r({type:w,id:ce,isDismissing:x===u}),className:`${o.dragOverlay||""} ${x===u&&o.dismissPreview||""}`.trim()}),jsxRuntime.jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:Bt.map(ce=>{let me=M[ce],fe=S(ce);return fe?jsxRuntime.jsx(xt,{tabDetails:fe,target:me||null,renderWidget:le.current[ce]},ce):null})})]})})})})},vn=({renderPane:e,resizerSize:t,snapThreshold:n})=>jsxRuntime.jsx(nt,{renderPane:e,resizerSize:t,snapThreshold:n}),hn=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsxRuntime.jsx(bn,{...e,children:t!==void 0?t:jsxRuntime.jsx(vn,{...n})})};var xn={top:{"1/4":{position:"absolute",top:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",top:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},bottom:{"1/4":{position:"absolute",bottom:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",bottom:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},left:{"1/4":{position:"absolute",left:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",left:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}},right:{"1/4":{position:"absolute",right:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",right:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}}},yn={top:{"1/4":{top:0,left:0,width:"100%",height:"60px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"},"1/3":{top:0,left:0,width:"100%",height:"96px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"}},bottom:{"1/4":{bottom:0,left:0,width:"100%",height:"60px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{bottom:0,left:0,width:"100%",height:"96px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"}},left:{"1/4":{left:0,top:0,width:"60px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"},"1/3":{left:0,top:0,width:"96px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"}},right:{"1/4":{right:0,top:0,width:"60px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{right:0,top:0,width:"96px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"}}},Rn=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:i}=core.useDroppable({id:e}),a={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...yn[n][t]};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:o,style:xn[n][t]}),i&&jsxRuntime.jsx("div",{className:r,style:a})]})},Ct=({activeClassName:e})=>jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:99,pointerEvents:"none"},children:[{id:"drop-root-1/4-top",fraction:"1/4",edge:"top"},{id:"drop-root-1/3-top",fraction:"1/3",edge:"top"},{id:"drop-root-1/4-bottom",fraction:"1/4",edge:"bottom"},{id:"drop-root-1/3-bottom",fraction:"1/3",edge:"bottom"},{id:"drop-root-1/4-left",fraction:"1/4",edge:"left"},{id:"drop-root-1/3-left",fraction:"1/3",edge:"left"},{id:"drop-root-1/4-right",fraction:"1/4",edge:"right"},{id:"drop-root-1/3-right",fraction:"1/3",edge:"right"}].map(n=>jsxRuntime.jsx(Rn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var Ve=nn.createContext(null);var Nn={top:{position:"absolute",top:0,left:0,width:"100%",height:"25%",zIndex:20,pointerEvents:"auto"},bottom:{position:"absolute",bottom:0,left:0,width:"100%",height:"25%",zIndex:20,pointerEvents:"auto"},left:{position:"absolute",top:"25%",left:0,width:"50%",height:"50%",zIndex:20,pointerEvents:"auto"},right:{position:"absolute",top:"25%",right:0,width:"50%",height:"50%",zIndex:20,pointerEvents:"auto"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:20,pointerEvents:"auto",cursor:"not-allowed"}},In={top:{position:"absolute",top:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},bottom:{position:"absolute",bottom:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},left:{position:"absolute",top:0,bottom:0,left:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},right:{position:"absolute",top:0,bottom:0,right:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:21,pointerEvents:"none",boxSizing:"border-box"}},ot=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=core.useDroppable({id:e});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:r,style:Nn[t]}),o&&jsxRuntime.jsx("div",{className:n,style:In[t]})]})};var wt=({children:e,className:t,style:n})=>{let r=nn.useContext(Ve);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...i}=r;return jsxRuntime.jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:i,children:e})};var Hn=nn.createContext(void 0);var Le=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:i,classNames:a={},activeType:l}=se(),{overTabId:c}=Ae(),p=nn.useContext(rt),g=t||i||(p?.locked??false),{attributes:v,listeners:D,setNodeRef:N,isDragging:P}=core.useDraggable({id:`tab-header-${e}`,disabled:g}),{setNodeRef:z,isOver:I}=core.useDroppable({id:`tab-drop-${e}`,disabled:g||l==="pane"}),$=J=>{N(J),z(J);},m=I&&c===e,B=p?.tabs||[],U=B.indexOf(e),E=p?.activeTabId,T=U>0&&e!==E&&B[U-1]!==E?jsxRuntime.jsx("div",{className:a.tabSeparator}):null,j=p?p.activeTabId===e:false,L=p?.tabsMetadata?.[e],Z=nn.useCallback(()=>{p?.selectTab(e);},[p,e]),q=nn.useCallback(()=>{p?.removeTab(e);},[p,e]),ee=nn.useMemo(()=>({tabId:e,isActive:j,isDragging:P,isOver:m,metadata:L,locked:g,selectTab:Z,removeTab:q}),[e,j,P,m,L,g,Z,q]);return jsxRuntime.jsx(Hn.Provider,{value:ee,children:jsxRuntime.jsxs("div",{ref:$,className:r,style:{display:"inline-flex",position:"relative",cursor:g?"default":"grab",...o},...g?{}:D,...g?{}:v,children:[T,n({isDragging:P,isOver:m})]})})};var rt=nn.createContext(void 0);var Lt=(e,t)=>typeof e=="function"?e(t):e,at=({tabs:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:i,renderTab:a,classNames:l,styles:c})=>{let p=nn.useContext(We),g=e??p?.tabs??[],v=t??p?.activeTabId??"",D=n??p?.locked??false,N=r??p?.tabsMetadata,P=o??p?.selectTab??(()=>{}),z=i??p?.removeTab??(()=>{}),{classNames:I={},activeType:$}=se(),{overTabId:m,overTabPosition:B}=Ae(),U=nn.useMemo(()=>({tabs:g,activeTabId:v,locked:D,tabsMetadata:N,selectTab:P,removeTab:z}),[g,v,D,N,P,z]),E=mt(g,$,m,B);return jsxRuntime.jsx(rt.Provider,{value:U,children:jsxRuntime.jsxs("div",{className:l?.container,style:{display:"flex",alignItems:"center",height:"100%",...c?.container},children:[g.map((f,T)=>{let j=N?.[f],L=Lt(l?.tab,f),Z=Lt(c?.tab,f),q=T===E;return jsxRuntime.jsxs(nn__default.default.Fragment,{children:[q&&I.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:I.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:T===0?"none":"translateX(-50%)"}})}),jsxRuntime.jsx(Le,{id:f,locked:D,className:L,style:Z,children:({isDragging:ee,isOver:J})=>a({tabId:f,activeTabId:v,isDragging:ee,isOver:J,metadata:j,onSelect:()=>P(f),onRemove:()=>z(f)})})]},f)}),E===g.length&&I.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:I.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};at.Tab=Le;var Mt=({className:e,style:t,children:n})=>jsxRuntime.jsx("div",{className:e,style:t,children:n});var We=nn.createContext(void 0),Zt=()=>{let e=nn.useContext(We);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},Gn=({children:e,className:t,style:n})=>{let{activeTabId:r}=Zt(),{classNames:o}=se(),i=nn.useRef(null),a=nn.useContext(ze);if(!a)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:l,registerRenderCallback:c}=a,p=nn.useMemo(()=>typeof e=="function"?e:()=>e,[e]);return c(r,p),nn.useEffect(()=>{let g=i.current;return l(r,g),()=>{l(r,null);}},[r,l]),jsxRuntime.jsx("div",{ref:i,id:`zeugma-tab-target-${r}`,className:`${o.tabContentWrapper||""} ${t||""}`.trim(),style:{height:"100%",width:"100%",...n}})},Se=({id:e,children:t,style:n,locked:r=false})=>{let{layout:o,activeId:i,classNames:a,fullscreenPaneId:l,onFullscreenChange:c,locked:p}=se(),{removePane:g,updateMetadata:v,selectTab:D,removeTab:N}=$e(),P=nn.useMemo(()=>Q(o,e),[o,e]),z=P?.id??e,I=P?.tabs??[e],$=P?.activeTabId??e,m=P?.tabsMetadata,B=m?.[e],U=P?.locked??false,E=r||U,f=p||E,T=p||E,j=i!==null&&i!==e&&(!I.includes(i)||I.length>1)&&!T,{attributes:L,listeners:Z,setNodeRef:q}=core.useDraggable({id:e,disabled:f}),ee=i!==null&&I.includes(i),J=l===e,S=nn.useMemo(()=>({isDragging:ee,isFullscreen:J,toggleFullscreen:()=>c?.(J?null:e),remove:()=>{J&&c?.(null),g(z);},metadata:B,updateMetadata:x=>{v(e,x);},locked:f,tabs:I,activeTabId:$,selectTab:x=>D(z,x),removeTab:x=>{J&&x===$&&c?.(null),N(x);},tabsMetadata:m,updateTabMetadata:(x,A)=>{v(x,A);}}),[ee,J,c,e,N,B,v,f,I,$,D,z,m]),ie=nn.useMemo(()=>f?{disabled:true}:{...Z,...L},[Z,L,f]),k=`${a.pane||""} ${E&&a.paneLocked||""}`.trim();return jsxRuntime.jsx(We.Provider,{value:{id:e,...S},children:jsxRuntime.jsx(Ve.Provider,{value:ie,children:jsxRuntime.jsxs("div",{ref:q,className:k,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,j&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(x=>jsxRuntime.jsx(ot,{id:`drop-${x}-${e}`,position:x,activeClassName:a.dropPreview},x))}),i!==null&&i!==e&&T&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsxRuntime.jsx(ot,{id:`drop-locked-${e}`,position:"full",activeClassName:a.lockedPreview||""})})]})})})};Se.Content=Gn;Se.DragHandle=wt;Se.Tabs=at;Se.Tab=Le;Se.Controls=Mt;exports.Pane=Se;exports.PaneTree=nt;exports.Zeugma=hn;exports.usePaneContext=Zt;exports.useResizer=tt;exports.useZeugma=Wt;exports.useZeugmaContext=Ut;//# sourceMappingURL=index.cjs.map
|
|
6
|
+
`,document.head.appendChild(o),t.setAttribute("data-resizing","true");let a=l=>{n(l);},i=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let l=document.getElementById("zeugma-global-cursor-style");l&&l.remove(),document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",i),r();};document.addEventListener("pointermove",a),document.addEventListener("pointerup",i);}function Ne(e){try{return JSON.stringify(e)}catch{return ""}}var Ke=Pn.createContext(void 0),Qe=Pn.createContext(void 0),be=Pn.createContext(void 0),je=Pn.createContext(void 0),oe=()=>{let e=Pn.useContext(Ke);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},ze=()=>{let e=Pn.useContext(Qe);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Ae=()=>{let e=Pn.useContext(je);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function mt(e){let t=Pn.useRef(null);return Pn.useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},r=o=>{let a=o.touches[0]||o.changedTouches[0];a&&(t.current={x:a.clientX,y:a.clientY});};return window.addEventListener("pointermove",n,{passive:true}),window.addEventListener("touchmove",r,{passive:true}),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("touchmove",r);}},[e]),t}function bt(e){Pn.useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function vt(){let[e,t]=Pn.useState({}),n=Pn.useRef({}),r=Pn.useRef(null),o=Pn.useRef({}),a=Pn.useRef(null),i=Pn.useRef(true);Pn.useEffect(()=>(i.current=true,()=>{i.current=false;}),[]);let l=Pn.useCallback((g,m)=>{i.current&&t(b=>{if(!m){if(!b[g])return b;let y={...b};return delete y[g],y}return b[g]===m?b:{...b,[g]:m}});},[]),c=Pn.useCallback((g,m)=>{n.current[g]=m;},[]),u=Pn.useCallback(g=>{r.current=g;},[]),p=Pn.useCallback((g,m)=>{o.current[g]=m;},[]);return {portalTargets:e,registerPortalTarget:l,registerRenderCallback:c,renderCallbacksRef:n,registerRenderPane:u,renderPaneRef:r,registerTabHeader:p,tabHeadersRef:o,activeIdRef:a}}function an(e,t){let n=new Set;function r(o){o&&(o.type==="pane"?o.tabs.forEach(a=>{n.add(a);}):o.type==="split"&&(r(o.first),r(o.second)));}return r(e),t&&r(t),Array.from(n).sort()}function ht(e,t){return Pn.useMemo(()=>an(e,t),[e,t])}function Tt(e){let{activeId:t,findPaneContainingTab:n,onDragStart:r,onDragEnd:o}=e,[a,i]=Pn.useState(null),[l,c]=Pn.useState(null),[u,p]=Pn.useState(null),g=Pn.useCallback(b=>{let y=n(b),T=null;if(y?T=document.getElementById(y.id):T=document.getElementById(b),T){let E=T.getBoundingClientRect();p({width:E.width,height:E.height});}else p(null);r&&r(b);},[r,n]),m=Pn.useCallback((b,y,T)=>{p(null),o&&o(b,y,T);},[o]);return Pn.useEffect(()=>{t||p(null);},[t]),{overTabId:a,setOverTabId:i,overTabPosition:l,setOverTabPosition:c,draggedSize:u,setDraggedSize:p,handleDragStartInternal:g,handleDragEndInternal:m}}function Pt(e){let n=Pn.useContext(be)?.registerRenderPane;Pn.useEffect(()=>{n&&e&&n(e);},[n,e]);}function ce(){return "pane-"+Math.random().toString(36).substring(2,11)}function fe(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=fe(e.first,t),r=fe(e.second,t);return n===null?r:r===null?n:{...e,first:n,second:r}}function ue(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let o=e.tabs.filter(l=>l!==t);if(o.length===0)return null;let a=e.activeTabId;e.activeTabId===t&&(a=o[0]);let i={...e.tabsMetadata};return delete i[t],{...e,tabs:o,activeTabId:a,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}let n=ue(e.first,t),r=ue(e.second,t);return n===null?r:r===null?n:{...e,first:n,second:r}}function ye(e,t,n,r,o){if(e===null)return typeof o=="string"?{type:"pane",id:ce(),tabs:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let a=typeof o=="string"?{type:"pane",id:ce(),tabs:[o],activeTabId:o}:o,i=r==="left"||r==="top";return {type:"split",direction:n,first:i?a:e,second:i?e:a,splitPercentage:50}}return e}return {...e,first:ye(e.first,t,n,r,o)||e.first,second:ye(e.second,t,n,r,o)||e.second}}function sn(e,t){if(e===null)return t;function n(r,o){return r.type==="pane"?{type:"split",direction:o==="row"?"column":"row",splitPercentage:50,first:r,second:t}:{...r,second:n(r.second,r.direction)}}return n(e,null)}function Rt(e,t,n,r){if(e===null)return {type:"pane",id:ce(),tabs:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};let o=t?ee(e,t):null;if(o&&o.type==="pane"){let l=function(c){if(c.type==="pane"&&c.id===t){let u=[...c.tabs];u.includes(n)||u.push(n);let p=c.tabsMetadata;return r&&(p={...c.tabsMetadata,[n]:r}),{...c,tabs:u,activeTabId:n,tabsMetadata:p}}return c.type==="split"?{...c,first:l(c.first),second:l(c.second)}:c};return l(e)}let a={type:"pane",id:ce(),tabs:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};return sn(e,a)}function Te(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:Te(e.first,t,n)||e.first,second:Te(e.second,t,n)||e.second}:e}function ee(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:e.type==="split"?ee(e.first,t)??ee(e.second,t):null}function q(e,t){return e===null?null:e.type==="pane"?e.tabs.includes(t)?e:null:e.type==="split"?q(e.first,t)??q(e.second,t):null}function et(e,t){let n=q(e,t);if(!n)return null;let r=n.tabs.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:r,metadata:n.tabsMetadata?.[t]}}function tt(e,t){return q(e,t)?.tabsMetadata?.[t]}function nt(e,t){let n=ee(e,t);return n?.tabsMetadata?.[n.activeTabId]}function Be(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let r=e.tabsMetadata||{},o=r[t],a=n(o),i={...r};return a===void 0?delete i[t]:i[t]=a,{...e,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}return e.type==="split"?{...e,first:Be(e.first,t,n)??e.first,second:Be(e.second,t,n)??e.second}:e}function Oe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:r,...o}=e;return o}return {...e,locked:n}}return e}return e.type==="split"?{...e,first:Oe(e.first,t,n)??e.first,second:Oe(e.second,t,n)??e.second}:e}function De(e,t,n){return e===null?null:e.type==="pane"?e.id===t?e.activeTabId===n?e:{...e,activeTabId:n}:e:e.type==="split"?{...e,first:De(e.first,t,n)??e.first,second:De(e.second,t,n)??e.second}:e}function xt(e,t,n){if(e===null)return null;let o=q(e,t)?.tabsMetadata?.[t],a=ue(e,t);if(a===null)return {type:"pane",id:ce(),tabs:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function i(l){if(l.type==="pane"){if(l.id===n){let c=[...l.tabs];c.includes(t)||c.push(t);let u={...l.tabsMetadata};return o&&(u[t]=o),{...l,tabs:c,activeTabId:t,tabsMetadata:Object.keys(u).length>0?u:void 0}}return l}return l.type==="split"?{...l,first:i(l.first),second:i(l.second)}:l}return i(a)}function Fe(e,t,n,r="before"){if(e===null)return null;let a=q(e,t)?.tabsMetadata?.[t],i=ue(e,t);if(i===null)return {type:"pane",id:ce(),tabs:[t],activeTabId:t,tabsMetadata:a?{[t]:a}:void 0};function l(c){if(c.type==="pane"){if(c.tabs.includes(n)){let p=[...c.tabs].filter(b=>b!==t),g=p.indexOf(n);g<0&&(g=0),r==="after"&&(g+=1),p.splice(g,0,t);let m={...c.tabsMetadata};return a&&(m[t]=a),{...c,tabs:p,activeTabId:t,tabsMetadata:Object.keys(m).length>0?m:void 0}}return c}return c.type==="split"?{...c,first:l(c.first),second:l(c.second)}:c}return l(i)}function pe(e,t=0,n=0,r=100,o=100,a="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:r,height:o,node:e}],splitters:[]};let{direction:i,splitPercentage:l,first:c,second:u}=e,g={id:`splitter-${a}-${i}`,currentNode:e,direction:i,left:i==="row"?t+r*(l/100):t,top:i==="column"?n+o*(l/100):n,width:i==="row"?0:r,height:i==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:r,parentHeight:o},m={panes:[],splitters:[]},b={panes:[],splitters:[]};if(i==="row"){let y=r*(l/100);m=pe(c,t,n,y,o,`${a}-L`),b=pe(u,t+y,n,r-y,o,`${a}-R`);}else {let y=o*(l/100);m=pe(c,t,n,r,y,`${a}-T`),b=pe(u,t,n+y,r,o-y,`${a}-B`);}return {panes:[...m.panes,...b.panes],splitters:[g,...m.splitters,...b.splitters]}}function yt(e,t,n,r){if(!(t==="tab"&&n&&e.includes(n))||!r)return -1;let i=e.indexOf(n);return r==="before"?i:i+1}function ln(e){let{initialLayout:t,layout:n,onChange:r,fullscreenPaneId:o,onFullscreenChange:a,locked:i=false}=e,[l,c]=Pn.useState(()=>n!==void 0?n:t??null),[u,p]=Pn.useState(()=>Ne(n!==void 0?n:null)),[g,m]=Pn.useState(o||null),[b,y]=Pn.useState(i),[T,E]=Pn.useState(null),[z,H]=Pn.useState(null),[h,P]=Pn.useState(null),[S,M]=Pn.useState(null),L=Pn.useRef(null),F=Pn.useCallback(s=>{L.current=s;},[]),A=Pn.useRef(l);A.current=l;let Z=Pn.useRef(T);Z.current=T;let U=Pn.useRef(r);U.current=r;let G=Pn.useRef(a);G.current=a;let K=Pn.useCallback(s=>{m(s),G.current?.(s);},[]);if(Pn.useEffect(()=>{y(i);},[i]),Pn.useEffect(()=>{o!==void 0&&m(o);},[o]),n!==void 0){let s=Ne(n);s!==u&&(p(s),c(n));}let R=Pn.useCallback(s=>(...d)=>{let $=A.current,k=s($,...d);Ne($)!==Ne(k)&&(A.current=k,c(k),U.current?.(k));},[]),ie=Pn.useCallback(R((s,d)=>typeof d=="function"?d(s):d),[R]),O=Pn.useCallback(s=>{c(d=>{let $=typeof s=="function"?s(d):s;return A.current=$,$});},[]),B=Pn.useCallback(s=>{m(null),G.current?.(null),E(null),H(null),P(null),M(null),ie(s);},[ie]),w=Pn.useCallback(R((s,d)=>fe(s,d)),[R]),C=Pn.useCallback(R((s,d,$,k)=>{let Y=ue(s,d)??s;return Rt(Y,$,d,k)}),[R]),N=Pn.useCallback(R((s,d,$,k,Y)=>{let W=ee(s,d)??q(s,d);if(!W)return s;let le=ee(s,Y)??q(s,Y)??{type:"pane",id:Y,tabs:[Y],activeTabId:Y},te=fe(s,Y);return ye(te,W.id,$,k,le)}),[R]),f=Pn.useCallback(R((s,d,$)=>Te(s,d,$)),[R]),Q=Pn.useCallback(R((s,d,$)=>Be(s,d,$)),[R]),D=Pn.useCallback(R((s,d,$)=>{let k=ee(s,d)??q(s,d);return k?Oe(s,k.id,$):s}),[R]),I=Pn.useCallback(R((s,d,$)=>{let k=ee(s,d)??q(s,d);return k?De(s,k.id,$):s}),[R]),se=Pn.useCallback(R((s,d,$)=>{let k=ee(s,$)??q(s,$);return k?xt(s,d,k.id):s}),[R]),J=Pn.useCallback(R((s,d,$,k)=>Fe(s,d,$,k)),[R]),X=Pn.useCallback(R((s,d)=>ue(s,d)),[R]),_=Pn.useCallback(s=>{let d=ee(A.current,s);return !d&&Z.current&&(d=ee(Z.current,s)),d},[]),j=Pn.useCallback(s=>{let d=q(A.current,s);return !d&&Z.current&&(d=q(Z.current,s)),d},[]),v=Pn.useCallback(s=>{let d=et(A.current,s);return !d&&Z.current&&(d=et(Z.current,s)),d},[]),x=Pn.useCallback(s=>{let d=tt(A.current,s);return !d&&Z.current&&(d=tt(Z.current,s)),d},[]),re=Pn.useCallback(s=>{let d=nt(A.current,s);return !d&&Z.current&&(d=nt(Z.current,s)),d},[]);return {layout:l,setLayout:B,_internalSetLayout:O,layoutBeforeDrag:T,setLayoutBeforeDrag:E,fullscreenPaneId:g,setFullscreenPaneId:K,locked:b,setLocked:y,activeId:z,setActiveId:H,activeType:h,setActiveType:P,dismissIntentId:S,setDismissIntentId:M,containerRef:L,setContainerRef:F,removePane:w,addTab:C,updateMetadata:Q,updatePaneLock:D,selectTab:I,mergeTab:se,moveTab:J,removeTab:X,splitPane:N,updateSplitPercentage:f,findPaneById:_,findPaneContainingTab:j,findTabById:v,getTabMetadata:x,getActiveTabMetadata:re}}var cn=()=>{let e=oe(),t=ze();return {layout:e.layout,setLayout:e.setLayout,fullscreenPaneId:e.fullscreenPaneId,setFullscreenPaneId:t.setFullscreenPaneId,locked:e.locked,setLocked:t.setLocked,removePane:t.removePane,addTab:t.addTab,updateMetadata:t.updateMetadata,updatePaneLock:t.updatePaneLock,selectTab:t.selectTab,mergeTab:t.mergeTab,removeTab:t.removeTab,splitPane:t.splitPane,updateSplitPercentage:t.updateSplitPercentage,moveTab:t.moveTab,findPaneById:e.findPaneById,findPaneContainingTab:e.findPaneContainingTab,findTabById:e.findTabById,getTabMetadata:e.getTabMetadata,getActiveTabMetadata:e.getActiveTabMetadata}};var Ve=class extends core.PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},We=class extends core.TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var Ct=e=>{let n=e.active.id.toString().startsWith("tab-header-"),r=core.pointerWithin(e),o=n?r:r.filter(a=>!a.id.toString().startsWith("tab-drop-"));if(o.length>0)return [...o].sort((i,l)=>{let c=i.id.toString(),u=l.id.toString();if(n){let m=c.startsWith("tab-drop-"),b=u.startsWith("tab-drop-");if(m&&!b)return -1;if(!m&&b)return 1}let p=c.startsWith("drop-root-"),g=u.startsWith("drop-root-");return p&&!g?-1:!p&&g?1:0});if(n){let a=e.droppableContainers.filter(i=>i.id.toString().startsWith("tab-drop-"));return core.closestCenter({...e,droppableContainers:a})}return []};function Ue(e){if(e instanceof MouseEvent||e instanceof PointerEvent)return {x:e.clientX,y:e.clientY};if(typeof TouchEvent<"u"&&e instanceof TouchEvent){let t=e.touches[0]||e.changedTouches[0];if(t)return {x:t.clientX,y:t.clientY}}return null}function wt(e){let{layout:t,_internalSetLayout:n,setLayout:r,layoutBeforeDrag:o,setLayoutBeforeDrag:a,activeId:i,setActiveId:l,setActiveType:c,dismissIntentId:u,setDismissIntentId:p,setOverTabId:g,setOverTabPosition:m,containerRef:b,dragActivationDistance:y,enableDragToDismiss:T,dismissThreshold:E,onRemove:z,onDragStart:H,onDragEnd:h,onDismissIntentChange:P,removeTab:S,removePane:M}=e,L=Pn.useRef(null),F=mt(i),[A,Z]=Pn.useState(false);return bt(A),{sensors:core.useSensors(core.useSensor(Ve,{activationConstraint:{distance:y}}),core.useSensor(We,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:Ct,onDragStart:O=>{let B=O.active.id.toString(),w=B.startsWith("tab-header-"),C=w?B.substring(11):B;l(C),c(w?"tab":"pane"),g(null),m(null);let N=O.activatorEvent;F.current=Ue(N),T&&b.current?L.current=b.current.getBoundingClientRect():L.current=null;let f=t;if(w){let D=q(t,C);D&&(f=De(t,D.id,C)||t);}a(f);let Q=w?ue(f,C):fe(f,C);n(Q),H&&H(C);},onDragMove:O=>{let{over:B}=O,w=B?.id.toString()||"",C=w.startsWith("drop-locked-");Z(v=>v===C?v:C);let N=O.active.id.toString(),f=N.startsWith("tab-header-"),Q=f?N.substring(11):N,D=w.match(/^tab-drop-(.+)$/);if(D&&B&&f){let[,v]=D;if(Q!==v){let x="before",re=B.rect,ae=O.activatorEvent,s=null;if(F.current)s=F.current.x;else {let d=Ue(ae);d&&(s=d.x+O.delta.x);}if(s!==null){let d=re.left+re.width/2;s>d&&(x="after");}g(d=>d===v?d:v),m(d=>d===x?d:x);}else g(x=>x===null?x:null),m(x=>x===null?x:null);}else g(v=>v===null?v:null),m(v=>v===null?v:null);if(!T)return;let I=L.current;if(!I){u!==null&&(p(null),P?.(null));return}let se=O.activatorEvent,J=null,X=null;if(F.current)J=F.current.x,X=F.current.y;else {let v=Ue(se);v&&(J=v.x+O.delta.x,X=v.y+O.delta.y);}let _=0;if(J!==null&&X!==null){let v=0,x=0;J<I.left?v=I.left-J:J>I.right&&(v=J-I.right),X<I.top?x=I.top-X:X>I.bottom&&(x=X-I.bottom),_=Math.sqrt(v*v+x*x);}else {let v=O.active.rect.current.translated;if(v){let x=v.left+v.width/2,re=v.top+v.height/2,ae=0,s=0;x<I.left?ae=I.left-x:x>I.right&&(ae=x-I.right),re<I.top?s=I.top-re:re>I.bottom&&(s=re-I.bottom),_=Math.sqrt(ae*ae+s*s);}}_>E?u!==Q&&(p(Q),P?.(Q)):u!==null&&(p(null),P?.(null));},onDragEnd:O=>{l(null),c(null),Z(false),g(null),m(null);let{active:B,over:w}=O,C=B.id.toString(),N=C.startsWith("tab-header-"),f=N?C.substring(11):C,Q=T&&u===f;p(null),P?.(null),L.current=null;let D=o||t;if(a(null),Q){z?z(f):N?S(f):M(f),h&&h(f,null,null);return}if(!w){n(D),h&&h(f,null,null);return}let I=w.id.toString();if(I.startsWith("drop-locked-")){n(D),h&&h(f,null,null);return}let se=I.match(/^tab-drop-(.+)$/);if(se){if(!N){n(D),h&&h(f,null,null);return}let[,k]=se;if(f!==k){let Y="before",W=w.rect,le=O.activatorEvent,te=null;if(F.current)te=F.current.x;else {let ne=Ue(le);ne&&(te=ne.x+O.delta.x);}if(te!==null){let ne=W.left+W.width/2;te>ne&&(Y="after");}let ge=Fe(D,f,k,Y);r(ge),h&&h(f,k,{type:"move",position:"center"});}else n(D),h&&h(f,null,null);return}let J=I.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(J){let[,k,Y]=J,W=Y;W==="start"&&(W="left"),W==="end"&&(W="right");let le=N?ue(D,f):fe(D,f),te;if(N){let ne=q(D,f)?.tabsMetadata?.[f];te={type:"pane",id:ce(),tabs:[f],activeTabId:f,tabsMetadata:ne?{[f]:ne}:void 0};}else te=ee(D,f)??{type:"pane",id:ce(),tabs:[f],activeTabId:f};if(le===null)r(te);else {let ge=W==="left"||W==="right",ne=W==="left"||W==="top",he=50;k==="1/4"?he=ne?25:75:k==="1/3"&&(he=ne?100/3:200/3),r({type:"split",direction:ge?"row":"column",first:ne?te:le,second:ne?le:te,splitPercentage:he});}h&&h(f,"root",{type:"split",direction:W==="left"||W==="right"?"row":"column",position:W});return}let X=I.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!X){n(D),h&&h(f,null,null);return}let[,_,j]=X,v=N?q(D,f):ee(D,f),x=v&&v.id===j,re=v&&v.tabs.length===1;if(f===j||x&&re){n(D),h&&h(f,null,null);return}let ae=_==="left"||_==="right"?"row":"column",s;if(N){let Y=q(D,f)?.tabsMetadata?.[f];s={type:"pane",id:ce(),tabs:[f],activeTabId:f,tabsMetadata:Y?{[f]:Y}:void 0};}else s=ee(D,f)??{type:"pane",id:ce(),tabs:[f],activeTabId:f};let d=N?ue(D,f):fe(D,f),$=ye(d,j,ae,_,s);r($),h&&h(f,j,{type:"split",direction:ae,position:_});},onDragCancel:()=>{l(null),c(null),Z(false),g(null),m(null),p(null),P?.(null),L.current=null,o!==null&&(n(o),a(null));}}}var Nt=({activeId:e,render:t,className:n})=>{let r=Pn.useRef(null);return Pn.useEffect(()=>{let o=a=>{r.current&&(r.current.style.transform=`translate(${a.clientX+12}px, ${a.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsxRuntime.jsx("div",{ref:r,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var It=Pn__default.default.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,[o,a]=Pn.useState(false),i=Pn.useRef(null);if(Pn.useEffect(()=>{a(true);},[]),Pn.useEffect(()=>{if(!o||!i.current)return;let c=i.current;if(t)t.appendChild(c);else {let u=document.getElementById("zeugma-hidden-portal-container");u||(u=document.createElement("div"),u.id="zeugma-hidden-portal-container",u.style.display="none",document.body.appendChild(u)),u.appendChild(c);}},[t,o]),Pn.useEffect(()=>()=>{i.current&&i.current.remove();},[]),!o)return null;i.current||(i.current=document.createElement("div"),i.current.className=`zeugma-portal-wrapper-${r}`,i.current.style.width="100%",i.current.style.height="100%");let l=i.current;return !l||!n?null:reactDom.createPortal(n(e),l)},(e,t)=>e.target===t.target&&e.renderWidget===t.renderWidget&&e.tabDetails.id===t.tabDetails.id&&e.tabDetails.paneId===t.tabDetails.paneId&&e.tabDetails.isActive===t.tabDetails.isActive&&e.tabDetails.index===t.tabDetails.index&&e.tabDetails.metadata===t.tabDetails.metadata);var Et=({activeId:e,activeType:t,dismissIntentId:n,draggedSize:r,renderDragOverlay:o,renderPaneRef:a,renderPane:i,tabHeadersRef:l,classNames:c})=>{if(o)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:o({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let u=a.current||i;if(u)return jsxRuntime.jsx("div",{style:{pointerEvents:"none",width:r?`${r.width}px`:"auto",height:r?`${r.height}px`:"auto",overflow:"hidden"},children:u(e)})}else if(t==="tab"){let u=a.current||i;if(u)return jsxRuntime.jsx("div",{style:{pointerEvents:"none",width:r?`${r.width}px`:"auto",height:r?`${r.height}px`:"auto",overflow:"hidden"},children:u(e)});let p=l.current[e];if(p)return jsxRuntime.jsx("div",{className:c.tab?typeof c.tab=="function"?c.tab(e):c.tab:"",style:{display:"inline-flex",position:"relative",pointerEvents:"none",overflow:"hidden",width:r?`${r.width}px`:"auto",height:r?`${r.height}px`:"auto"},children:p({isDragging:true,isOver:false})})}return jsxRuntime.jsx("div",{style:{pointerEvents:"none",overflow:"hidden",minWidth:"200px",minHeight:"120px",width:"100%",height:"100%"}})};function rt({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:a,layout:i,currentNode:l,onLayoutChange:c,onResizeStart:u,onResizeEnd:p,parentLeft:g,parentTop:m,parentWidth:b,parentHeight:y}){let{onResizeStart:T,onResize:E,onResizeEnd:z,minSplitPercentage:H=5,maxSplitPercentage:h=95,locked:P=false}=oe();return Pn.useCallback(S=>{if(P)return;S.preventDefault();let M=e.current;if(!M)return;u&&u(),T&&T(l);let L=M.getBoundingClientRect(),F=S.clientX,A=S.clientY,Z=r,U=S.currentTarget,G=L.left+L.width*(g/100),K=L.top+L.height*(m/100),R=L.width*(b/100),ie=L.height*(y/100),B=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(C=>C!==U&&C.getAttribute("data-direction")===n).map(C=>{let N=C.getBoundingClientRect();return t?N.left+N.width/2:N.top+N.height/2}),w=Z;gt({cursor:t?"col-resize":"row-resize",resizerEl:U,onMove:C=>{let N=t?(C.clientX-F)/R*100:(C.clientY-A)/ie*100,f=Z+N,Q=t?G+(R-o)*(f/100)+o/2:K+(ie-o)*(f/100)+o/2,D=1/0,I=null;for(let _ of B){let j=Math.abs(Q-_);j<a&&j<D&&(D=j,I=_);}let se=f;I!==null&&(se=t?(I-o/2-G)/(R-o)*100:(I-o/2-K)/(ie-o)*100);let J=Math.max(H,Math.min(h,se));w=J;let X=Te(i,l,J);if(X){let{panes:_,splitters:j}=pe(X),v=e.current;if(v){for(let x of _)v.style.setProperty(`--pane-left-${x.paneId}`,`${x.left}%`),v.style.setProperty(`--pane-top-${x.paneId}`,`${x.top}%`),v.style.setProperty(`--pane-width-${x.paneId}`,`${x.width}%`),v.style.setProperty(`--pane-height-${x.paneId}`,`${x.height}%`);for(let x of j)v.style.setProperty(`--splitter-pos-${x.id}`,`${x.direction==="row"?x.left:x.top}%`);}}E&&E(l,J);},onEnd:()=>{let C=Te(i,l,w),N=e.current;if(N){let{panes:f,splitters:Q}=pe(C);for(let D of f)N.style.removeProperty(`--pane-left-${D.paneId}`),N.style.removeProperty(`--pane-top-${D.paneId}`),N.style.removeProperty(`--pane-width-${D.paneId}`),N.style.removeProperty(`--pane-height-${D.paneId}`);for(let D of Q)N.style.removeProperty(`--splitter-pos-${D.id}`);}c(C),p&&p(),z&&z(l,w);}});},[e,t,n,r,o,a,i,l,c,u,p,T,E,z,H,h,g,m,b,y])}var Mt=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{layout:o,setLayout:a,classNames:i,locked:l}=oe(),[c,u]=Pn.useState(false),{currentNode:p,direction:g,left:m,top:b,width:y,height:T,parentLeft:E,parentTop:z,parentWidth:H,parentHeight:h}=e,P=g==="row",S=rt({containerRef:r,isRow:P,direction:g,splitPercentage:p.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:p,onLayoutChange:a,onResizeStart:()=>u(true),onResizeEnd:()=>u(false),parentLeft:E,parentTop:z,parentWidth:H,parentHeight:h}),M=P?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${m}%) - ${t/2}px)`,top:`calc(${b}% + ${t/2}px)`,width:`${t}px`,height:`calc(${T}% - ${t}px)`,cursor:l?"default":"col-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${m}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${b}%) - ${t/2}px)`,width:`calc(${y}% - ${t}px)`,height:`${t}px`,cursor:l?"default":"row-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsxRuntime.jsx("div",{className:i.resizer||"","data-direction":g,"data-resizing":c||void 0,style:M,onPointerDown:S,role:"separator","aria-valuenow":p.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},Lt=Pn__default.default.memo(({paneId:e,renderPane:t})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var at=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{Pt(e);let{layout:o,activeId:a,dismissIntentId:i,setContainerRef:l,fullscreenPaneId:c,snapThreshold:u,locked:p,classNames:g,resizerSize:m}=oe(),b=r!==void 0?r:u??8,y=n!==void 0?n:m??4,T=t!==void 0?t:o,E=Pn.useRef(null),{panes:z,splitters:H}=Pn.useMemo(()=>T?pe(T):{panes:[],splitters:[]},[T]);if(!T&&t!==void 0)return null;let h=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[z.map(P=>{let S=c===P.paneId;return jsxRuntime.jsx("div",{style:{position:"absolute",left:S?"0%":`var(--pane-left-${P.paneId}, ${P.left}%)`,top:S?"0%":`var(--pane-top-${P.paneId}, ${P.top}%)`,width:S?"100%":`var(--pane-width-${P.paneId}, ${P.width}%)`,height:S?"100%":`var(--pane-height-${P.paneId}, ${P.height}%)`,overflow:"hidden",zIndex:S?20:1,display:c&&!S?"none":"block",padding:S?"0px":`${y/2}px`,boxSizing:"border-box"},children:jsxRuntime.jsx(Lt,{paneId:P.paneId,renderPane:e})},P.paneId)}),!c&&H.map(P=>jsxRuntime.jsx(Mt,{splitter:P,resizerSize:y,snapThreshold:b,containerRef:E},P.id))]});if(t===void 0){let P=a!==null&&a===i,S=L=>{l(L),E.current=L;},M=`${g.dashboard||""} ${P&&g.dashboardDismissActive||""} ${p&&g.dashboardLocked||""}`.trim();return jsxRuntime.jsxs("div",{ref:S,className:M,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[h(),a!==null&&!p&&jsxRuntime.jsx($t,{activeClassName:g.rootDropPreview??g.dropPreview})]})}return jsxRuntime.jsx("div",{ref:E,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:h()})};var kn=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:a,resizerSize:i,dragActivationDistance:l=8,snapThreshold:c=8,minSplitPercentage:u=5,maxSplitPercentage:p=95,enableDragToDismiss:g=false,dismissThreshold:m=60,onRemove:b,onDragStart:y,onDragEnd:T,onResizeStart:E,onResize:z,onResizeEnd:H,onDismissIntentChange:h}=e,P=t,{layout:S,setLayout:M,_internalSetLayout:L,fullscreenPaneId:F,setFullscreenPaneId:A,locked:Z,setLocked:U,findPaneById:G,findPaneContainingTab:K,findTabById:R,getTabMetadata:ie,getActiveTabMetadata:O,activeId:B,setActiveId:w,activeType:C,setActiveType:N,dismissIntentId:f,setDismissIntentId:Q,containerRef:D,setContainerRef:I,layoutBeforeDrag:se,setLayoutBeforeDrag:J,removePane:X,addTab:_,updateMetadata:j,updatePaneLock:v,selectTab:x,mergeTab:re,removeTab:ae,splitPane:s,updateSplitPercentage:d,moveTab:$}=P,{portalTargets:k,registerPortalTarget:Y,registerRenderCallback:W,renderCallbacksRef:le,registerRenderPane:te,renderPaneRef:ge,registerTabHeader:ne,tabHeadersRef:he,activeIdRef:we}=vt(),{overTabId:ct,setOverTabId:Yt,overTabPosition:ut,setOverTabPosition:qt,draggedSize:Jt,handleDragStartInternal:_t,handleDragEndInternal:Gt}=Tt({activeId:B,findPaneContainingTab:K,onDragStart:y,onDragEnd:T}),Kt=wt({layout:S,_internalSetLayout:L,setLayout:M,layoutBeforeDrag:se,setLayoutBeforeDrag:J,activeId:B,setActiveId:w,setActiveType:N,dismissIntentId:f,setDismissIntentId:Q,setOverTabId:Yt,setOverTabPosition:qt,containerRef:D,dragActivationDistance:l,enableDragToDismiss:g,dismissThreshold:m,onRemove:b,onDragStart:_t,onDragEnd:Gt,onDismissIntentChange:h,removeTab:ae,removePane:X}),dt=Pn.useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.rootDropPreview,o.dragOverlay,o.resizer,o.dismissPreview,o.dashboardLocked,o.lockedPreview,o.tabDropPreview,o.tabSeparator,o.tabsContainer,o.tab,o.paneContainer,o.paneHeader,o.paneControls,o.paneButton,o.tabCloseButton,o.dragHandle]),pt=Pn.useCallback((me,_e)=>{H&&H(me,_e);},[H]),Qt=Pn.useMemo(()=>({layout:S,setLayout:M,activeId:B,activeType:C,dismissIntentId:f,setContainerRef:I,fullscreenPaneId:F,classNames:dt,onRemove:b,onFullscreenChange:A,snapThreshold:c,onResizeStart:E,onResize:z,onResizeEnd:pt,minSplitPercentage:u,maxSplitPercentage:p,locked:Z,setLocked:U,findPaneById:G,findPaneContainingTab:K,findTabById:R,getTabMetadata:ie,getActiveTabMetadata:O,renderPane:a,resizerSize:i}),[S,B,C,f,I,F,dt,b,A,c,E,z,u,p,M,pt,Z,U,G,K,R,ie,O,a,i]),jt=Pn.useMemo(()=>({overTabId:ct,overTabPosition:ut}),[ct,ut]),en=Pn.useMemo(()=>({removePane:X,addTab:_,updateMetadata:j,updatePaneLock:v,selectTab:x,mergeTab:re,removeTab:ae,setFullscreenPaneId:A,setLocked:U,splitPane:s,updateSplitPercentage:d,moveTab:$}),[X,_,j,v,x,re,ae,A,U,s,d,$]),tn=ht(S,se),nn=Pn.useMemo(()=>({registerPortalTarget:Y,registerRenderCallback:W,renderCallbacksRef:le,registerRenderPane:te,renderPaneRef:ge,registerTabHeader:ne,tabHeadersRef:he,activeIdRef:we}),[Y,W,le,te,ge,ne,he,we]);return we&&(we.current=B),jsxRuntime.jsx(Qe.Provider,{value:en,children:jsxRuntime.jsx(Ke.Provider,{value:Qt,children:jsxRuntime.jsx(je.Provider,{value:jt,children:jsxRuntime.jsxs(be.Provider,{value:nn,children:[jsxRuntime.jsx(core.DndContext,{id:"zeugma-dnd-context",...Kt,children:n}),B&&C&&jsxRuntime.jsx(Nt,{activeId:B,render:me=>jsxRuntime.jsx(Et,{activeId:me,activeType:C,dismissIntentId:f,draggedSize:Jt,renderDragOverlay:r,renderPaneRef:ge,renderPane:a,tabHeadersRef:he,classNames:o}),className:`${o.dragOverlay||""} ${B===f&&o.dismissPreview||""}`.trim()}),jsxRuntime.jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:tn.map(me=>{let _e=k[me],ft=R(me);return ft?jsxRuntime.jsx(It,{tabDetails:ft,target:_e||null,renderWidget:le.current[me]},me):null})})]})})})})},$n=({renderPane:e,resizerSize:t,snapThreshold:n})=>{if(!e)throw new Error("Zeugma component requires a renderPane prop when used as a standalone renderer.");return jsxRuntime.jsx(at,{renderPane:e,resizerSize:t,snapThreshold:n})},zn=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsxRuntime.jsx(kn,{...e,children:t!==void 0?t:jsxRuntime.jsx($n,{...n})})};var Bn={top:{"1/4":{position:"absolute",top:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",top:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},bottom:{"1/4":{position:"absolute",bottom:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",bottom:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},left:{"1/4":{position:"absolute",left:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",left:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}},right:{"1/4":{position:"absolute",right:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",right:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}}},On={top:{"1/4":{top:0,left:0,width:"100%",height:"60px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"},"1/3":{top:0,left:0,width:"100%",height:"96px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"}},bottom:{"1/4":{bottom:0,left:0,width:"100%",height:"60px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{bottom:0,left:0,width:"100%",height:"96px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"}},left:{"1/4":{left:0,top:0,width:"60px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"},"1/3":{left:0,top:0,width:"96px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"}},right:{"1/4":{right:0,top:0,width:"60px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{right:0,top:0,width:"96px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"}}},Fn=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:a}=core.useDroppable({id:e}),i={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...On[n][t]};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:o,style:Bn[n][t]}),a&&jsxRuntime.jsx("div",{className:r,style:i})]})},$t=({activeClassName:e})=>jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:99,pointerEvents:"none"},children:[{id:"drop-root-1/4-top",fraction:"1/4",edge:"top"},{id:"drop-root-1/3-top",fraction:"1/3",edge:"top"},{id:"drop-root-1/4-bottom",fraction:"1/4",edge:"bottom"},{id:"drop-root-1/3-bottom",fraction:"1/3",edge:"bottom"},{id:"drop-root-1/4-left",fraction:"1/4",edge:"left"},{id:"drop-root-1/3-left",fraction:"1/3",edge:"left"},{id:"drop-root-1/4-right",fraction:"1/4",edge:"right"},{id:"drop-root-1/3-right",fraction:"1/3",edge:"right"}].map(n=>jsxRuntime.jsx(Fn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var Ye=Pn.createContext(null);var Yn={top:{position:"absolute",top:0,left:0,width:"100%",height:"25%",zIndex:20,pointerEvents:"auto"},bottom:{position:"absolute",bottom:0,left:0,width:"100%",height:"25%",zIndex:20,pointerEvents:"auto"},left:{position:"absolute",top:"25%",left:0,width:"50%",height:"50%",zIndex:20,pointerEvents:"auto"},right:{position:"absolute",top:"25%",right:0,width:"50%",height:"50%",zIndex:20,pointerEvents:"auto"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:20,pointerEvents:"auto",cursor:"not-allowed"}},qn={top:{position:"absolute",top:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},bottom:{position:"absolute",bottom:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},left:{position:"absolute",top:0,bottom:0,left:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},right:{position:"absolute",top:0,bottom:0,right:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:21,pointerEvents:"none",boxSizing:"border-box"}},it=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=core.useDroppable({id:e});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:r,style:Yn[t]}),o&&jsxRuntime.jsx("div",{className:n,style:qn[t]})]})};var At=({children:e,className:t,style:n})=>{let r=Pn.useContext(Ye);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...a}=r;return jsxRuntime.jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:a,children:e})};var oo=Pn.createContext(void 0);var ke=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:a,classNames:i={},activeType:l}=oe(),{overTabId:c}=Ae(),u=Pn.useContext(be);Pn.useEffect(()=>(u?.registerTabHeader&&u.registerTabHeader(e,n),()=>{u?.registerTabHeader&&u.activeIdRef?.current!==e&&u.registerTabHeader(e,()=>null);}),[e,n,u]);let p=Pn.useContext(st),g=t||a||(p?.locked??false),{attributes:m,listeners:b,setNodeRef:y,isDragging:T}=core.useDraggable({id:`tab-header-${e}`,disabled:g}),{setNodeRef:E,isOver:z}=core.useDroppable({id:`tab-drop-${e}`,disabled:g||l==="pane"}),H=R=>{y(R),E(R);},h=z&&c===e,P=p?.tabs||[],S=P.indexOf(e),M=p?.activeTabId,F=S>0&&e!==M&&P[S-1]!==M?jsxRuntime.jsx("div",{className:i.tabSeparator}):null,A=p?p.activeTabId===e:false,Z=p?.tabsMetadata?.[e],U=Pn.useCallback(()=>{p?.selectTab(e);},[p,e]),G=Pn.useCallback(()=>{p?.removeTab(e);},[p,e]),K=Pn.useMemo(()=>({tabId:e,isActive:A,isDragging:T,isOver:h,metadata:Z,locked:g,selectTab:U,removeTab:G}),[e,A,T,h,Z,g,U,G]);return jsxRuntime.jsx(oo.Provider,{value:K,children:jsxRuntime.jsxs("div",{ref:H,id:`tab-header-${e}`,className:r,style:{display:"inline-flex",position:"relative",cursor:g?"default":"grab",...o},...g?{}:b,...g?{}:m,children:[F,n({isDragging:T,isOver:h})]})})};var st=Pn.createContext(void 0);var Ft=(e,t)=>typeof e=="function"?e(t):e,lt=({tabs:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:a,renderTab:i,classNames:l,styles:c})=>{let u=Pn.useContext(qe),p=e??u?.tabs??[],g=t??u?.activeTabId??"",m=n??u?.locked??false,b=r??u?.tabsMetadata,y=o??u?.selectTab??(()=>{}),T=a??u?.removeTab??(()=>{}),{classNames:E={},activeType:z}=oe(),{overTabId:H,overTabPosition:h}=Ae(),P=Pn.useMemo(()=>({tabs:p,activeTabId:g,locked:m,tabsMetadata:b,selectTab:y,removeTab:T}),[p,g,m,b,y,T]),S=yt(p,z,H,h);return jsxRuntime.jsx(st.Provider,{value:P,children:jsxRuntime.jsxs("div",{className:l?.container,style:{display:"flex",alignItems:"center",height:"100%",...c?.container},children:[p.map((M,L)=>{let F=b?.[M],A=Ft(l?.tab,M),Z=Ft(c?.tab,M),U=L===S;return jsxRuntime.jsxs(Pn__default.default.Fragment,{children:[U&&E.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:E.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:L===0?"none":"translateX(-50%)"}})}),jsxRuntime.jsx(ke,{id:M,locked:m,className:A,style:Z,children:({isDragging:G,isOver:K})=>i({tabId:M,activeTabId:g,isDragging:G,isOver:K,metadata:F,onSelect:()=>y(M),onRemove:()=>T(M)})})]},M)}),S===p.length&&E.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:E.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};lt.Tab=ke;var Wt=({className:e,style:t,children:n})=>jsxRuntime.jsx("div",{className:e,style:t,children:n});var qe=Pn.createContext(void 0),Xt=()=>{let e=Pn.useContext(qe);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},mo=({children:e,className:t,style:n})=>{let{activeTabId:r}=Xt(),{classNames:o}=oe(),a=Pn.useRef(null),i=Pn.useContext(be);if(!i)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:l,registerRenderCallback:c}=i,u=Pn.useMemo(()=>typeof e=="function"?e:()=>e,[e]);return c(r,u),Pn.useEffect(()=>{let p=a.current;return l(r,p),()=>{l(r,null);}},[r,l]),jsxRuntime.jsx("div",{ref:a,id:`zeugma-tab-target-${r}`,className:`${o.tabContentWrapper||""} ${t||""}`.trim(),style:{height:"100%",width:"100%",...n}})},Se=({id:e,children:t,style:n,locked:r=false})=>{let{layout:o,activeId:a,classNames:i,fullscreenPaneId:l,onFullscreenChange:c,locked:u,findPaneById:p}=oe(),{removePane:g,updateMetadata:m,selectTab:b,removeTab:y}=ze(),T=Pn.useMemo(()=>p(e),[o,e,p]),E=T?.id??e,z=T?.tabs??[e],H=T?.activeTabId??e,h=T?.tabsMetadata,P=h?.[e],S=T?.locked??false,M=r||S,L=u||M,F=u||M,A=a!==null&&a!==e&&(!z.includes(a)||z.length>1)&&!F,{attributes:Z,listeners:U,setNodeRef:G}=core.useDraggable({id:e,disabled:L}),K=a!==null&&z.includes(a),R=l===e,ie=Pn.useMemo(()=>({isDragging:K,isFullscreen:R,toggleFullscreen:()=>c?.(R?null:e),remove:()=>{R&&c?.(null),g(E);},metadata:P,updateMetadata:w=>{m(e,w);},locked:L,tabs:z,activeTabId:H,selectTab:w=>b(E,w),removeTab:w=>{R&&w===H&&c?.(null),y(w);},tabsMetadata:h,updateTabMetadata:(w,C)=>{m(w,C);}}),[K,R,c,e,y,P,m,L,z,H,b,E,h]),O=Pn.useMemo(()=>L?{disabled:true}:{...U,...Z},[U,Z,L]),B=`${i.pane||""} ${M&&i.paneLocked||""}`.trim();return jsxRuntime.jsx(qe.Provider,{value:{id:e,...ie},children:jsxRuntime.jsx(Ye.Provider,{value:O,children:jsxRuntime.jsxs("div",{ref:G,id:e,className:B,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,A&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(w=>jsxRuntime.jsx(it,{id:`drop-${w}-${e}`,position:w,activeClassName:i.dropPreview},w))}),a!==null&&a!==e&&F&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsxRuntime.jsx(it,{id:`drop-locked-${e}`,position:"full",activeClassName:i.lockedPreview||""})})]})})})};Se.Content=mo;Se.DragHandle=At;Se.Tabs=lt;Se.Tab=ke;Se.Controls=Wt;exports.Pane=Se;exports.PaneTree=at;exports.Zeugma=zn;exports.usePaneContext=Xt;exports.useResizer=rt;exports.useZeugma=ln;exports.useZeugmaContext=cn;//# sourceMappingURL=index.cjs.map
|
|
7
7
|
//# sourceMappingURL=index.cjs.map
|