react-zeugma 6.7.3 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-RzetLsAH.cjs';
2
- export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-RzetLsAH.cjs';
1
+ import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-DeeEm3Ls.cjs';
2
+ export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-DeeEm3Ls.cjs';
3
3
  import React from 'react';
4
4
 
5
5
  declare function useZeugma(options: UseZeugmaOptions): ZeugmaController;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-RzetLsAH.js';
2
- export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-RzetLsAH.js';
1
+ import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-DeeEm3Ls.js';
2
+ export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-DeeEm3Ls.js';
3
3
  import React from 'react';
4
4
 
5
5
  declare function useZeugma(options: UseZeugmaOptions): ZeugmaController;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import Dn,{createContext,useState,useRef,useEffect,useCallback,useMemo,useContext}from'react';import {useDraggable,DndContext,useDroppable,useSensors,useSensor,pointerWithin,closestCenter,PointerSensor,TouchSensor}from'@dnd-kit/core';import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {createPortal}from'react-dom';function ut({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=`
1
+ import Sn,{createContext,useState,useRef,useEffect,useCallback,useMemo,useContext}from'react';import {useDraggable,DndContext,useDroppable,useSensors,useSensor,pointerWithin,closestCenter,PointerSensor,TouchSensor}from'@dnd-kit/core';import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {createPortal}from'react-dom';function dt({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;
@@ -6,5 +6,5 @@ import Dn,{createContext,useState,useRef,useEffect,useCallback,useMemo,useContex
6
6
  .zeugma-resizing *:not([role="separator"]) {
7
7
  pointer-events: none !important;
8
8
  }
9
- `,document.head.appendChild(o),t.setAttribute("data-resizing","true");let l=s=>{n(s);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let s=document.getElementById("zeugma-global-cursor-style");s&&s.remove(),document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",a),r();};document.addEventListener("pointermove",l),document.addEventListener("pointerup",a);}function we(e){try{return JSON.stringify(e)}catch{return ""}}var je=createContext(void 0),Ke=createContext(void 0),be=createContext(void 0),Qe=createContext(void 0),re=()=>{let e=useContext(je);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},$e=()=>{let e=useContext(Ke);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Ae=()=>{let e=useContext(Qe);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function pt(e){let t=useRef(null);return useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},r=o=>{let l=o.touches[0]||o.changedTouches[0];l&&(t.current={x:l.clientX,y:l.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 ft(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function gt(){let[e,t]=useState({}),n=useRef({}),r=useRef(null),o=useRef({}),l=useRef(null),a=useRef(true);useEffect(()=>(a.current=true,()=>{a.current=false;}),[]);let s=useCallback((f,v,P)=>{a.current&&t(g=>{if(!v){if(P&&g[f]!==P||!g[f])return g;let w={...g};return delete w[f],w}return g[f]===v?g:{...g,[f]:v}});},[]),i=useCallback((f,v)=>{n.current[f]=v;},[]),d=useCallback(f=>{r.current=f;},[]),u=useCallback((f,v)=>{o.current[f]=v;},[]);return {portalTargets:e,registerPortalTarget:s,registerRenderCallback:i,renderCallbacksRef:n,registerRenderPane:d,renderPaneRef:r,registerTabHeader:u,tabHeadersRef:o,activeIdRef:l}}function dn(e){let t=new Set;function n(r){r&&(r.type==="pane"?r.tabIds.forEach(o=>{t.add(o);}):r.type==="split"&&(n(r.first),n(r.second)));}return n(e),Array.from(t).sort()}function mt(e){return useMemo(()=>dn(e),[e])}function bt(e){let{onDragStart:t,onDragEnd:n}=e,[r,o]=useState(null),[l,a]=useState(null),s=useCallback(d=>{t&&t(d);},[t]),i=useCallback((d,u,f)=>{n&&n(d,u,f);},[n]);return {overTabId:r,setOverTabId:o,overTabPosition:l,setOverTabPosition:a,handleDragStartInternal:s,handleDragEndInternal:i}}function vt(e){let n=useContext(be)?.registerRenderPane;useEffect(()=>{n&&e&&n(e);},[n,e]);}function de(){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.tabIds.includes(t)){let o=e.tabIds.filter(s=>s!==t);if(o.length===0)return null;let l=e.activeTabId;e.activeTabId===t&&(l=o[0]);let a={...e.tabsMetadata};return delete a[t],{...e,tabIds:o,activeTabId:l,tabsMetadata:Object.keys(a).length>0?a: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:de(),tabIds:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let l=typeof o=="string"?{type:"pane",id:de(),tabIds:[o],activeTabId:o}:o,a=r==="left"||r==="top";return {type:"split",direction:n,first:a?l:e,second:a?e:l,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 un(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 ht(e,t,n,r){if(e===null)return {type:"pane",id:de(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};let o=t?K(e,t):null;if(o&&o.type==="pane"){let s=function(i){if(i.type==="pane"&&i.id===t){let d=[...i.tabIds];d.includes(n)||d.push(n);let u=i.tabsMetadata;return r&&(u={...i.tabsMetadata,[n]:r}),{...i,tabIds:d,activeTabId:n,tabsMetadata:u}}return i.type==="split"?{...i,first:s(i.first),second:s(i.second)}:i};return s(e)}let l={type:"pane",id:de(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};return un(e,l)}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 K(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:e.type==="split"?K(e.first,t)??K(e.second,t):null}function B(e,t){return e===null?null:e.type==="pane"?e.tabIds.includes(t)?e:null:e.type==="split"?B(e.first,t)??B(e.second,t):null}function Tt(e,t){return K(e,t)??B(e,t)}function Pt(e,t){let n=B(e,t);if(!n)return null;let r=n.tabIds.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:r,metadata:n.tabsMetadata?.[t]}}function Rt(e,t){return B(e,t)?.tabsMetadata?.[t]}function xt(e,t){let n=K(e,t);return n?.tabsMetadata?.[n.activeTabId]}function Oe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let r=e.tabsMetadata||{},o=r[t],l=n(o),a={...r};return l===void 0?delete a[t]:a[t]=l,{...e,tabsMetadata:Object.keys(a).length>0?a:void 0}}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 Fe(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:Fe(e.first,t,n)??e.first,second:Fe(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 yt(e,t,n){if(e===null)return null;let o=B(e,t)?.tabsMetadata?.[t],l=ue(e,t);if(l===null)return {type:"pane",id:de(),tabIds:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function a(s){if(s.type==="pane"){if(s.id===n){let i=[...s.tabIds];i.includes(t)||i.push(t);let d={...s.tabsMetadata};return o&&(d[t]=o),{...s,tabIds:i,activeTabId:t,tabsMetadata:Object.keys(d).length>0?d:void 0}}return s}return s.type==="split"?{...s,first:a(s.first),second:a(s.second)}:s}return a(l)}function Be(e,t,n,r="before"){if(e===null)return null;let l=B(e,t)?.tabsMetadata?.[t],a=ue(e,t);if(a===null)return {type:"pane",id:de(),tabIds:[t],activeTabId:t,tabsMetadata:l?{[t]:l}:void 0};function s(i){if(i.type==="pane"){if(i.tabIds.includes(n)){let u=[...i.tabIds].filter(P=>P!==t),f=u.indexOf(n);f<0&&(f=0),r==="after"&&(f+=1),u.splice(f,0,t);let v={...i.tabsMetadata};return l&&(v[t]=l),{...i,tabIds:u,activeTabId:t,tabsMetadata:Object.keys(v).length>0?v:void 0}}return i}return i.type==="split"?{...i,first:s(i.first),second:s(i.second)}:i}return s(a)}function me(e,t=0,n=0,r=100,o=100,l="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:a,splitPercentage:s,first:i,second:d}=e,f={id:`splitter-${l}-${a}`,currentNode:e,direction:a,left:a==="row"?t+r*(s/100):t,top:a==="column"?n+o*(s/100):n,width:a==="row"?0:r,height:a==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:r,parentHeight:o},v={panes:[],splitters:[]},P={panes:[],splitters:[]};if(a==="row"){let g=r*(s/100);v=me(i,t,n,g,o,`${l}-L`),P=me(d,t+g,n,r-g,o,`${l}-R`);}else {let g=o*(s/100);v=me(i,t,n,r,g,`${l}-T`),P=me(d,t,n+g,r,o-g,`${l}-B`);}return {panes:[...v.panes,...P.panes],splitters:[f,...v.splitters,...P.splitters]}}function Dt(e,t,n,r="before"){if(e===null)return null;let o=K(e,t);if(!o)return e;let l=o.tabIds,a=o.activeTabId,s=o.tabsMetadata||{},i=fe(e,t);if(i===null)return o;function d(u){if(u.type==="pane"){if(u.tabIds.includes(n)){let v=[...u.tabIds].filter(w=>!l.includes(w)),P=v.indexOf(n);P<0&&(P=0),r==="after"&&(P+=1),v.splice(P,0,...l);let g={...u.tabsMetadata};for(let w of l)s[w]&&(g[w]=s[w]);return {...u,tabIds:v,activeTabId:a,tabsMetadata:Object.keys(g).length>0?g:void 0}}return u}return u.type==="split"?{...u,first:d(u.first),second:d(u.second)}:u}return d(i)}function Ct(e,t,n,r){if(!((t==="tab"||t==="pane")&&n&&e.includes(n))||!r)return -1;let a=e.indexOf(n);return r==="before"?a:a+1}function pn(e){let{initialLayout:t,layout:n,onChange:r,fullscreenPaneId:o,onFullscreenChange:l,locked:a=false}=e,[s,i]=useState(()=>n!==void 0?n:t??null),[d,u]=useState(()=>n!==void 0?n:t??null),[f,v]=useState(()=>we(n!==void 0?n:null)),[P,g]=useState(o||null),[w,M]=useState(a),[A,h]=useState(null),[k,C]=useState(null),[E,N]=useState(null),y=useRef(null),F=useCallback(c=>{y.current=c;},[]),$=useRef(s);$.current=s;let X=useRef(r);X.current=r;let W=useRef(l);W.current=l;let ne=useCallback(c=>{g(c),W.current?.(c);},[]);if(useEffect(()=>{M(a);},[a]),useEffect(()=>{o!==void 0&&g(o);},[o]),n!==void 0){let c=we(n);c!==f&&(v(c),i(n),u(n));}let D=useCallback(c=>(...m)=>{let I=$.current,z=c(I,...m);we(I)!==we(z)&&($.current=z,i(z),u(z),X.current?.(z));},[]),ae=useCallback(D((c,m)=>typeof m=="function"?m(c):m),[D]),oe=useCallback(c=>{u(m=>typeof c=="function"?c(m):c);},[]),Z=useCallback(c=>{g(null),W.current?.(null),h(null),C(null),N(null),ae(c),u(()=>typeof c=="function"?c($.current):c);},[ae]),_=useCallback(D((c,m)=>fe(c,m)),[D]),H=useCallback(D((c,m,I,z)=>{let q=ue(c,m)??c;return ht(q,I,m,z)}),[D]),b=useCallback(D((c,m,I,z,q)=>{let te=K(c,m)??B(c,m);if(!te)return c;let O=K(c,q)??B(c,q)??{type:"pane",id:q,tabIds:[q],activeTabId:q},ie=fe(c,O.id);return ye(ie,te.id,I,z,O)}),[D]),S=useCallback(D((c,m,I)=>Te(c,m,I)),[D]),p=useCallback(D((c,m,I)=>Oe(c,m,I)),[D]),Q=useCallback(D((c,m,I)=>{let z=K(c,m)??B(c,m);return z?Fe(c,z.id,I):c}),[D]),R=useCallback(D((c,m,I)=>{let z=K(c,m)??B(c,m);return z?De(c,z.id,I):c}),[D]),L=useCallback(D((c,m,I)=>{let z=K(c,I)??B(c,I);return z?yt(c,m,z.id):c}),[D]),ce=useCallback(D((c,m,I,z)=>Be(c,m,I,z)),[D]),J=useCallback(D((c,m)=>ue(c,m)),[D]),Y=useCallback(c=>K($.current,c),[]),G=useCallback(c=>B($.current,c),[]),ee=useCallback(c=>Pt($.current,c),[]),T=useCallback(c=>Rt($.current,c),[]),x=useCallback(c=>xt($.current,c),[]);return {layout:s,setLayout:Z,_internalSetLayout:oe,renderingLayout:d,fullscreenPaneId:P,setFullscreenPaneId:ne,locked:w,setLocked:M,activeId:A,setActiveId:h,activeType:k,setActiveType:C,dismissIntentId:E,setDismissIntentId:N,containerRef:y,setContainerRef:F,removePane:_,addTab:H,updateMetadata:p,updatePaneLock:Q,selectTab:R,mergeTab:L,moveTab:ce,removeTab:J,splitPane:b,updateSplitPercentage:S,findPaneById:Y,findPaneContainingTab:G,findTabById:ee,getTabMetadata:T,getActiveTabMetadata:x}}var fn=()=>{let e=re(),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 We=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Ue=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var St=e=>{let n=e.active.id.toString().startsWith("tab-header-"),o=pointerWithin(e);if(o.length>0)return [...o].sort((a,s)=>{let i=a.id.toString(),d=s.id.toString(),u=i.startsWith("tab-drop-"),f=d.startsWith("tab-drop-");if(u&&!f)return -1;if(!u&&f)return 1;let v=i.startsWith("drop-root-"),P=d.startsWith("drop-root-");return v&&!P?-1:!v&&P?1:0});if(n){let l=e.droppableContainers.filter(a=>a.id.toString().startsWith("tab-drop-"));return closestCenter({...e,droppableContainers:l})}return []};function Ne(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 Mt(e){let{layout:t,_internalSetLayout:n,setLayout:r,activeId:o,setActiveId:l,activeType:a,setActiveType:s,dismissIntentId:i,setDismissIntentId:d,setOverTabId:u,setOverTabPosition:f,containerRef:v,dragActivationDistance:P,enableDragToDismiss:g,dismissThreshold:w,onRemove:M,onDragStart:A,onDragEnd:h,onDismissIntentChange:k,removeTab:C,removePane:E}=e,N=useRef(null),y=pt(o),F=useRef(null),[$,X]=useState(false);return ft($),{sensors:useSensors(useSensor(We,{activationConstraint:{distance:P}}),useSensor(Ue,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:St,onDragStart:Z=>{let _=Z.active.id.toString(),H=_.startsWith("tab-header-"),b=H?_.substring(11):_;l(b),s(H?"tab":"pane"),u(null),f(null);let S=Z.activatorEvent;y.current=Ne(S),g&&v.current?N.current=v.current.getBoundingClientRect():N.current=null;let p=t;if(H){let R=B(t,b);R&&(p=De(t,R.id,b)||t);}F.current=p;let Q=H?ue(p,b):fe(p,b);n(Q),A&&A(b);},onDragMove:Z=>{let{over:_}=Z,H=_?.id.toString()||"",b=H.startsWith("drop-locked-");X(T=>T===b?T:b);let S=Z.active.id.toString(),p=S.startsWith("tab-header-"),Q=p?S.substring(11):S,R=H.match(/^tab-drop-(.+)$/);if(R&&_&&(p||a==="pane")){let[,T]=R;if(Q!==T){let x="before",se=_.rect,c=Z.activatorEvent,m=null;if(y.current)m=y.current.x;else {let I=Ne(c);I&&(m=I.x+Z.delta.x);}if(m!==null){let I=se.left+se.width/2;m>I&&(x="after");}u(I=>I===T?I:T),f(I=>I===x?I:x);}else u(x=>x===null?x:null),f(x=>x===null?x:null);}else u(T=>T===null?T:null),f(T=>T===null?T:null);if(!g)return;let L=N.current;if(!L){i!==null&&(d(null),k?.(null));return}let ce=Z.activatorEvent,J=null,Y=null;if(y.current)J=y.current.x,Y=y.current.y;else {let T=Ne(ce);T&&(J=T.x+Z.delta.x,Y=T.y+Z.delta.y);}let G=0;if(J!==null&&Y!==null){let T=0,x=0;J<L.left?T=L.left-J:J>L.right&&(T=J-L.right),Y<L.top?x=L.top-Y:Y>L.bottom&&(x=Y-L.bottom),G=Math.sqrt(T*T+x*x);}else {let T=Z.active.rect.current.translated;if(T){let x=T.left+T.width/2,se=T.top+T.height/2,c=0,m=0;x<L.left?c=L.left-x:x>L.right&&(c=x-L.right),se<L.top?m=L.top-se:se>L.bottom&&(m=se-L.bottom),G=Math.sqrt(c*c+m*m);}}G>w?i!==Q&&(d(Q),k?.(Q)):i!==null&&(d(null),k?.(null));},onDragEnd:Z=>{l(null),s(null),X(false),u(null),f(null);let{active:_,over:H}=Z,b=_.id.toString(),S=b.startsWith("tab-header-"),p=S?b.substring(11):b,Q=g&&i===p;d(null),k?.(null),N.current=null;let R=F.current||t;if(F.current=null,Q){M?M(p):S?C(p):E(p),h&&h(p,null,null);return}if(!H){n(R),h&&h(p,null,null);return}let L=H.id.toString();if(L.startsWith("drop-locked-")){n(R),h&&h(p,null,null);return}let ce=L.match(/^tab-drop-(.+)$/);if(ce){let[,q]=ce;if(S)if(p!==q){let te="before",O=H.rect,ie=Z.activatorEvent,j=null;if(y.current)j=y.current.x;else {let U=Ne(ie);U&&(j=U.x+Z.delta.x);}if(j!==null){let U=O.left+O.width/2;j>U&&(te="after");}let pe=Be(R,p,q,te);r(pe),h&&h(p,q,{type:"move",position:"center"});}else n(R),h&&h(p,null,null);else {let te="before",O=H.rect,ie=Z.activatorEvent,j=null;if(y.current)j=y.current.x;else {let U=Ne(ie);U&&(j=U.x+Z.delta.x);}if(j!==null){let U=O.left+O.width/2;j>U&&(te="after");}let pe=Dt(R,p,q,te);r(pe),h&&h(p,q,{type:"move",position:"center"});}return}let J=L.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(J){let[,q,te]=J,O=te;O==="start"&&(O="left"),O==="end"&&(O="right");let ie=S?ue(R,p):fe(R,p),j;if(S){let U=B(R,p)?.tabsMetadata?.[p];j={type:"pane",id:de(),tabIds:[p],activeTabId:p,tabsMetadata:U?{[p]:U}:void 0};}else j=K(R,p)??{type:"pane",id:de(),tabIds:[p],activeTabId:p};if(ie===null)r(j);else {let pe=O==="left"||O==="right",U=O==="left"||O==="top",he=50;q==="1/4"?he=U?25:75:q==="1/3"&&(he=U?100/3:200/3),r({type:"split",direction:pe?"row":"column",first:U?j:ie,second:U?ie:j,splitPercentage:he});}h&&h(p,"root",{type:"split",direction:O==="left"||O==="right"?"row":"column",position:O});return}let Y=L.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!Y){n(R),h&&h(p,null,null);return}let[,G,ee]=Y,T=S?B(R,p):K(R,p),x=T&&T.id===ee,se=T&&T.tabIds.length===1;if(p===ee||x&&se){n(R),h&&h(p,null,null);return}let c=G==="left"||G==="right"?"row":"column",m;if(S){let te=B(R,p)?.tabsMetadata?.[p];m={type:"pane",id:de(),tabIds:[p],activeTabId:p,tabsMetadata:te?{[p]:te}:void 0};}else m=K(R,p)??{type:"pane",id:de(),tabIds:[p],activeTabId:p};let I=S?ue(R,p):fe(R,p),z=ye(I,ee,c,G,m);r(z),h&&h(p,ee,{type:"split",direction:c,position:G});},onDragCancel:()=>{l(null),s(null),X(false),u(null),f(null),d(null),k?.(null),N.current=null;let Z=F.current||t;F.current=null,n(Z),Z!==t&&r(Z);}}}function Lt({persist:e,layout:t,setLayout:n}){let r=typeof e=="object"?e.enabled!==false:!!e,o=typeof e=="object"&&e.key||"zeugma-layout",[l,a]=useState(false);useEffect(()=>{if(r){let s=localStorage.getItem(o);if(s)try{let i=JSON.parse(s);i&&n(i);}catch(i){console.error("Failed to parse persisted zeugma layout",i);}}a(true);},[r,o,n]),useEffect(()=>{r&&l&&(t?localStorage.setItem(o,JSON.stringify(t)):localStorage.removeItem(o));},[r,o,t,l]);}var Zt=({activeId:e,render:t,className:n})=>{let r=useRef(null);return useEffect(()=>{let o=l=>{r.current&&(r.current.style.transform=`translate(${l.clientX+12}px, ${l.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsx("div",{ref:r,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var kt=Dn.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,[o,l]=useState(false),a=useRef(null);if(useEffect(()=>{l(true);},[]),useEffect(()=>{if(!o||!a.current)return;let i=a.current;if(t)t.appendChild(i);else {let d=document.getElementById("zeugma-hidden-portal-container");d||(d=document.createElement("div"),d.id="zeugma-hidden-portal-container",d.style.display="none",document.body.appendChild(d)),d.appendChild(i);}},[t,o]),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 s=a.current;return !s||!n?null:createPortal(n(e),s)},(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 zt=({activeId:e,activeType:t,dismissIntentId:n,renderDragOverlay:r,renderPaneRef:o,renderPane:l,tabHeadersRef:a,classNames:s})=>{if(r)return jsx(Fragment,{children:r({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let i=o.current||l;if(i)return jsx("div",{className:s.paneDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:i(e)})}else if(t==="tab"){let i=o.current||l;if(i)return jsx("div",{className:s.tabDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:i(e)});let d=a.current[e];if(d){let u=s.tab?typeof s.tab=="function"?s.tab(e):s.tab:"";return jsx("div",{className:`${s.tabDragPreview||""} ${u}`.trim(),style:{display:"inline-flex",position:"relative",pointerEvents:"none",overflow:"hidden"},children:d({isDragging:true,isOver:false})})}}return jsx("div",{style:{pointerEvents:"none",overflow:"hidden",width:"100%",height:"100%"}})};function nt({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:l,layout:a,currentNode:s,onLayoutChange:i,onResizeStart:d,onResizeEnd:u,parentLeft:f,parentTop:v,parentWidth:P,parentHeight:g}){let{onResizeStart:w,onResize:M,onResizeEnd:A,minSplitPercentage:h=5,maxSplitPercentage:k=95,locked:C=false}=re();return useCallback(E=>{if(C)return;E.preventDefault();let N=e.current;if(!N)return;d&&d(),w&&w(s);let y=N.getBoundingClientRect(),F=E.clientX,$=E.clientY,X=r,W=E.currentTarget,ne=y.left+y.width*(f/100),D=y.top+y.height*(v/100),ae=y.width*(P/100),oe=y.height*(g/100),_=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(b=>b!==W&&b.getAttribute("data-direction")===n).map(b=>{let S=b.getBoundingClientRect();return t?S.left+S.width/2:S.top+S.height/2}),H=X;ut({cursor:t?"col-resize":"row-resize",resizerEl:W,onMove:b=>{let S=t?(b.clientX-F)/ae*100:(b.clientY-$)/oe*100,p=X+S,Q=t?ne+(ae-o)*(p/100)+o/2:D+(oe-o)*(p/100)+o/2,R=1/0,L=null;for(let G of _){let ee=Math.abs(Q-G);ee<l&&ee<R&&(R=ee,L=G);}let ce=p;L!==null&&(ce=t?(L-o/2-ne)/(ae-o)*100:(L-o/2-D)/(oe-o)*100);let J=Math.max(h,Math.min(k,ce));H=J;let Y=Te(a,s,J);if(Y){let{panes:G,splitters:ee}=me(Y),T=e.current;if(T){for(let x of G)T.style.setProperty(`--pane-left-${x.paneId}`,`${x.left}%`),T.style.setProperty(`--pane-top-${x.paneId}`,`${x.top}%`),T.style.setProperty(`--pane-width-${x.paneId}`,`${x.width}%`),T.style.setProperty(`--pane-height-${x.paneId}`,`${x.height}%`);for(let x of ee)T.style.setProperty(`--splitter-pos-${x.id}`,`${x.direction==="row"?x.left:x.top}%`);}}M&&M(s,J);},onEnd:()=>{let b=Te(a,s,H),S=e.current;if(S){let{panes:p,splitters:Q}=me(b);for(let R of p)S.style.removeProperty(`--pane-left-${R.paneId}`),S.style.removeProperty(`--pane-top-${R.paneId}`),S.style.removeProperty(`--pane-width-${R.paneId}`),S.style.removeProperty(`--pane-height-${R.paneId}`);for(let R of Q)S.style.removeProperty(`--splitter-pos-${R.id}`);}i(b),u&&u(),A&&A(s,H);}});},[e,t,n,r,o,l,a,s,i,d,u,w,M,A,h,k,f,v,P,g])}var $t=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{renderingLayout:o,setLayout:l,classNames:a,locked:s}=re(),[i,d]=useState(false),{currentNode:u,direction:f,left:v,top:P,width:g,height:w,parentLeft:M,parentTop:A,parentWidth:h,parentHeight:k}=e,C=f==="row",E=nt({containerRef:r,isRow:C,direction:f,splitPercentage:u.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:u,onLayoutChange:l,onResizeStart:()=>d(true),onResizeEnd:()=>d(false),parentLeft:M,parentTop:A,parentWidth:h,parentHeight:k}),N=C?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${v}%) - ${t/2}px)`,top:`calc(${P}% + ${t/2}px)`,width:`${t}px`,height:`calc(${w}% - ${t}px)`,cursor:s?"default":"col-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${v}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${P}%) - ${t/2}px)`,width:`calc(${g}% - ${t}px)`,height:`${t}px`,cursor:s?"default":"row-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:a.resizer||"","data-direction":f,"data-resizing":i||void 0,style:N,onPointerDown:E,role:"separator","aria-valuenow":u.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},At=Dn.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var ot=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{vt(e);let{renderingLayout:o,activeId:l,dismissIntentId:a,setContainerRef:s,fullscreenPaneId:i,snapThreshold:d,locked:u,classNames:f,resizerSize:v}=re(),P=r!==void 0?r:d??8,g=n!==void 0?n:v??4,w=t!==void 0?t:o,M=useRef(null),{panes:A,splitters:h}=useMemo(()=>w?me(w):{panes:[],splitters:[]},[w]);if(!w&&t!==void 0)return null;let k=()=>jsxs(Fragment,{children:[A.map(C=>{let E=i===C.paneId;return jsx("div",{style:{position:"absolute",left:E?"0%":`var(--pane-left-${C.paneId}, ${C.left}%)`,top:E?"0%":`var(--pane-top-${C.paneId}, ${C.top}%)`,width:E?"100%":`var(--pane-width-${C.paneId}, ${C.width}%)`,height:E?"100%":`var(--pane-height-${C.paneId}, ${C.height}%)`,overflow:"hidden",zIndex:E?20:1,display:i&&!E?"none":"block",padding:E?"0px":`${g/2}px`,boxSizing:"border-box"},children:jsx(At,{paneId:C.paneId,renderPane:e})},C.paneId)}),!i&&h.map(C=>jsx($t,{splitter:C,resizerSize:g,snapThreshold:P,containerRef:M},C.id))]});if(t===void 0){let C=l!==null&&l===a,E=y=>{s(y),M.current=y;},N=`${f.dashboard||""} ${C&&f.dashboardDismissActive||""} ${u&&f.dashboardLocked||""}`.trim();return jsxs("div",{ref:E,className:N,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[k(),l!==null&&!u&&jsx(Ft,{activeClassName:f.rootDropPreview??f.dropPreview})]})}return jsx("div",{ref:M,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:k()})};var Hn=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:l,resizerSize:a,dragActivationDistance:s=8,snapThreshold:i=8,minSplitPercentage:d=5,maxSplitPercentage:u=95,enableDragToDismiss:f=false,dismissThreshold:v=60,onRemove:P,onDragStart:g,onDragEnd:w,onResizeStart:M,onResize:A,onResizeEnd:h,onDismissIntentChange:k,persist:C=false}=e,E=t,{layout:N,setLayout:y,_internalSetLayout:F,renderingLayout:$,fullscreenPaneId:X,setFullscreenPaneId:W,locked:ne,setLocked:D,findPaneById:ae,findPaneContainingTab:oe,findTabById:Z,getTabMetadata:_,getActiveTabMetadata:H,activeId:b,setActiveId:S,activeType:p,setActiveType:Q,dismissIntentId:R,setDismissIntentId:L,containerRef:ce,setContainerRef:J,removePane:Y,addTab:G,updateMetadata:ee,updatePaneLock:T,selectTab:x,mergeTab:se,removeTab:c,splitPane:m,updateSplitPercentage:I,moveTab:z}=E;Lt({persist:C,layout:N,setLayout:y});let{portalTargets:q,registerPortalTarget:te,registerRenderCallback:O,renderCallbacksRef:ie,registerRenderPane:j,renderPaneRef:pe,registerTabHeader:U,tabHeadersRef:he,activeIdRef:Se}=gt(),{overTabId:it,setOverTabId:jt,overTabPosition:lt,setOverTabPosition:Kt,handleDragStartInternal:Qt,handleDragEndInternal:en}=bt({onDragStart:g,onDragEnd:w}),tn=Mt({layout:N,_internalSetLayout:F,setLayout:y,activeId:b,setActiveId:S,activeType:p,setActiveType:Q,dismissIntentId:R,setDismissIntentId:L,setOverTabId:jt,setOverTabPosition:Kt,containerRef:ce,dragActivationDistance:s,enableDragToDismiss:f,dismissThreshold:v,onRemove:P,onDragStart:Qt,onDragEnd:en,onDismissIntentChange:k,removeTab:c,removePane:Y}),_e=useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.rootDropPreview,o.dragOverlay,o.paneDragPreview,o.tabDragPreview,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]),ct=useCallback((ge,ke)=>{h&&h(ge,ke);},[h]),nn=useMemo(()=>({layout:N,renderingLayout:$,setLayout:y,activeId:b,activeType:p,dismissIntentId:R,setContainerRef:J,fullscreenPaneId:X,classNames:_e,onRemove:P,onFullscreenChange:W,snapThreshold:i,onResizeStart:M,onResize:A,onResizeEnd:ct,minSplitPercentage:d,maxSplitPercentage:u,locked:ne,setLocked:D,findPaneById:ae,findPaneContainingTab:oe,findTabById:Z,getTabMetadata:_,getActiveTabMetadata:H,renderPane:l,resizerSize:a}),[N,$,b,p,R,J,X,_e,P,W,i,M,A,d,u,y,ct,ne,D,ae,oe,Z,_,H,l,a]),on=useMemo(()=>({overTabId:it,overTabPosition:lt}),[it,lt]),rn=useMemo(()=>({removePane:Y,addTab:G,updateMetadata:ee,updatePaneLock:T,selectTab:x,mergeTab:se,removeTab:c,setFullscreenPaneId:W,setLocked:D,splitPane:m,updateSplitPercentage:I,moveTab:z}),[Y,G,ee,T,x,se,c,W,D,m,I,z]),an=mt(N),sn=useMemo(()=>({registerPortalTarget:te,registerRenderCallback:O,renderCallbacksRef:ie,registerRenderPane:j,renderPaneRef:pe,registerTabHeader:U,tabHeadersRef:he,activeIdRef:Se}),[te,O,ie,j,pe,U,he,Se]);return Se&&(Se.current=b),jsx(Ke.Provider,{value:rn,children:jsx(je.Provider,{value:nn,children:jsx(Qe.Provider,{value:on,children:jsxs(be.Provider,{value:sn,children:[jsx(DndContext,{id:"zeugma-dnd-context",...tn,children:n}),b&&p&&jsx(Zt,{activeId:b,render:ge=>jsx("div",{style:{transition:"transform 150ms cubic-bezier(0.2, 0, 0, 1)",transform:ge===R?"scale(0.8)":"scale(1)",transformOrigin:"top left"},children:jsx(zt,{activeId:ge,activeType:p,dismissIntentId:R,renderDragOverlay:r,renderPaneRef:pe,renderPane:l,tabHeadersRef:he,classNames:_e})}),className:`${o.dragOverlay||""} ${b===R&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:an.map(ge=>{let ke=q[ge],dt=Z(ge);return dt?jsx(kt,{tabDetails:dt,target:ke||null,renderWidget:ie.current[ge]},ge):null})})]})})})})},On=({renderPane:e,resizerSize:t,snapThreshold:n})=>{if(!e)throw new Error("Zeugma component requires a renderPane prop when used as a standalone renderer.");return jsx(ot,{renderPane:e,resizerSize:t,snapThreshold:n})},Fn=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsx(Hn,{...e,children:t!==void 0?t:jsx(On,{...n})})};var Wn={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"}}},Un={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"}}},Xn=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:l}=useDroppable({id:e}),a={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...Un[n][t]};return jsxs(Fragment,{children:[jsx("div",{ref:o,style:Wn[n][t]}),l&&jsx("div",{className:r,style:a})]})},Ft=({activeClassName:e})=>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=>jsx(Xn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var Je=createContext(null);var Gn={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"}},jn={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"}},rt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:r,style:Gn[t]}),o&&jsx("div",{className:n,style:jn[t]})]})};var Vt=({children:e,className:t,style:n})=>{let r=useContext(Je);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...l}=r;return jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:l,children:e})};var io=createContext(void 0);var Ze=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:l,classNames:a={}}=re(),{overTabId:s}=Ae(),i=useContext(be);useEffect(()=>(i?.registerTabHeader&&i.registerTabHeader(e,n),()=>{i?.registerTabHeader&&i.activeIdRef?.current!==e&&i.registerTabHeader(e,()=>null);}),[e,n,i]);let d=useContext(at),u=t||l||(d?.locked??false),{attributes:f,listeners:v,setNodeRef:P,isDragging:g}=useDraggable({id:`tab-header-${e}`,disabled:u}),{setNodeRef:w,isOver:M}=useDroppable({id:`tab-drop-${e}`,disabled:u}),A=D=>{P(D),w(D);},h=M&&s===e,k=d?.tabIds||[],C=k.indexOf(e),E=d?.activeTabId,y=C>0&&e!==E&&k[C-1]!==E?jsx("div",{className:a.tabSeparator}):null,F=d?d.activeTabId===e:false,$=d?.tabsMetadata?.[e],X=useCallback(()=>{d?.selectTab(e);},[d,e]),W=useCallback(()=>{d?.removeTab(e);},[d,e]),ne=useMemo(()=>({tabId:e,isActive:F,isDragging:g,isOver:h,metadata:$,locked:u,selectTab:X,removeTab:W}),[e,F,g,h,$,u,X,W]);return jsx(io.Provider,{value:ne,children:jsxs("div",{ref:A,id:`tab-header-${e}`,className:r,style:{display:"inline-flex",position:"relative",cursor:u?"default":"grab",...o},...u?{}:v,...u?{}:f,children:[y,n({isDragging:g,isOver:h})]})})};var at=createContext(void 0);var Jt=(e,t)=>typeof e=="function"?e(t):e,st=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:l,renderTab:a,classNames:s,styles:i})=>{let d=useContext(Ye),u=e??d?.tabIds??[],f=t??d?.activeTabId??"",v=n??d?.locked??false,P=r??d?.tabsMetadata,g=o??d?.selectTab??(()=>{}),w=l??d?.removeTab??(()=>{}),{classNames:M={},activeType:A}=re(),{overTabId:h,overTabPosition:k}=Ae(),C=useMemo(()=>({tabIds:u,activeTabId:f,locked:v,tabsMetadata:P,selectTab:g,removeTab:w}),[u,f,v,P,g,w]),E=Ct(u,A,h,k);return jsx(at.Provider,{value:C,children:jsxs("div",{className:s?.container,style:{display:"flex",alignItems:"center",height:"100%",...i?.container},children:[u.map((N,y)=>{let F=P?.[N],$=Jt(s?.tab,N),X=Jt(i?.tab,N),W=y===E;return jsxs(Dn.Fragment,{children:[W&&M.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:M.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:y===0?"none":"translateX(-50%)"}})}),jsx(Ze,{id:N,locked:v,className:$,style:X,children:({isDragging:ne,isOver:D})=>a({id:N,paneId:d?.id??"",isActive:N===f,index:y,isDragging:ne,isOver:D,metadata:F,onSelect:()=>g(N),onRemove:()=>w(N)})})]},N)}),E===u.length&&M.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:M.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};st.Tab=Ze;var qt=({className:e,style:t,children:n})=>jsx("div",{className:e,style:t,children:n});var Ye=createContext(void 0),Gt=()=>{let e=useContext(Ye);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},To=({children:e,className:t,style:n})=>{let{activeTabId:r}=Gt(),{classNames:o}=re(),l=useRef(null),a=useContext(be);if(!a)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:s,registerRenderCallback:i}=a,d=useMemo(()=>typeof e=="function"?e:()=>e,[e]);return i(r,d),useEffect(()=>{let u=l.current;return s(r,u),()=>{s(r,null,u);}},[r,s]),jsx("div",{ref:l,id:`zeugma-tab-target-${r}`,className:`${o.tabContentWrapper||""} ${t||""}`.trim(),style:{height:"100%",width:"100%",...n}})},Ie=({id:e,children:t,style:n,locked:r=false})=>{let{layout:o,renderingLayout:l,activeId:a,activeType:s,classNames:i,fullscreenPaneId:d,onFullscreenChange:u,locked:f}=re(),{removePane:v,updateMetadata:P,selectTab:g,removeTab:w}=$e(),M=useMemo(()=>{if(s==="tab"&&e===a){let p=B(o,e)?.tabsMetadata?.[e];return {type:"pane",id:e,tabIds:[e],activeTabId:e,tabsMetadata:p?{[e]:p}:void 0}}return Tt(e===a?o:l,e)},[o,l,e,a,s]),A=M?.id??e,h=M?.tabIds??[e],k=M?.activeTabId??e,C=M?.tabsMetadata,E=C?.[e],N=M?.locked??false,y=r||N,F=f||y,$=f||y,X=a!==null&&a!==e&&(!h.includes(a)||h.length>1)&&!$,{attributes:W,listeners:ne,setNodeRef:D}=useDraggable({id:e,disabled:F}),ae=a!==null&&h.includes(a),oe=d===e,Z=useMemo(()=>({isDragging:ae,isFullscreen:oe,toggleFullscreen:()=>u?.(oe?null:e),remove:()=>{oe&&u?.(null),v(A);},metadata:E,updateMetadata:b=>{P(e,b);},locked:F,tabIds:h,activeTabId:k,selectTab:b=>g(A,b),removeTab:b=>{oe&&b===k&&u?.(null),w(b);},tabsMetadata:C,updateTabMetadata:(b,S)=>{P(b,S);}}),[ae,oe,u,e,w,E,P,F,h,k,g,A,C]),_=useMemo(()=>F?{disabled:true}:{...ne,...W},[ne,W,F]),H=`${i.pane||""} ${y&&i.paneLocked||""}`.trim();return jsx(Ye.Provider,{value:{id:e,...Z},children:jsx(Je.Provider,{value:_,children:jsxs("div",{ref:D,id:e,className:H,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,X&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(b=>jsx(rt,{id:`drop-${b}-${e}`,position:b,activeClassName:i.dropPreview},b))}),a!==null&&a!==e&&$&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(rt,{id:`drop-locked-${e}`,position:"full",activeClassName:i.lockedPreview||""})})]})})})};Ie.Content=To;Ie.DragHandle=Vt;Ie.Tabs=st;Ie.Tab=Ze;Ie.Controls=qt;export{Ie as Pane,ot as PaneTree,Fn as Zeugma,Gt as usePaneContext,nt as useResizer,pn as useZeugma,fn as useZeugmaContext};//# sourceMappingURL=index.js.map
9
+ `,document.head.appendChild(o),t.setAttribute("data-resizing","true");let l=s=>{n(s);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let s=document.getElementById("zeugma-global-cursor-style");s&&s.remove(),document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",a),r();};document.addEventListener("pointermove",l),document.addEventListener("pointerup",a);}function Ie(e){try{return JSON.stringify(e)}catch{return ""}}var Ke=createContext(void 0),Qe=createContext(void 0),be=createContext(void 0),et=createContext(void 0),ae=()=>{let e=useContext(Ke);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},Ae=()=>{let e=useContext(Qe);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Oe=()=>{let e=useContext(et);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function pt(e){let t=useRef(null);return useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},r=o=>{let l=o.touches[0]||o.changedTouches[0];l&&(t.current={x:l.clientX,y:l.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 ft(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function gt(){let[e,t]=useState({}),n=useRef({}),r=useRef(null),o=useRef({}),l=useRef(null),a=useRef(true);useEffect(()=>(a.current=true,()=>{a.current=false;}),[]);let s=useCallback((f,g,b)=>{a.current&&t(m=>{if(!g){if(b&&m[f]!==b||!m[f])return m;let x={...m};return delete x[f],x}return m[f]===g?m:{...m,[f]:g}});},[]),c=useCallback((f,g)=>{n.current[f]=g;},[]),u=useCallback(f=>{r.current=f;},[]),i=useCallback((f,g)=>{o.current[f]=g;},[]);return {portalTargets:e,registerPortalTarget:s,registerRenderCallback:c,renderCallbacksRef:n,registerRenderPane:u,renderPaneRef:r,registerTabHeader:i,tabHeadersRef:o,activeIdRef:l}}function dn(e){let t=new Set;function n(r){r&&(r.type==="pane"?r.tabIds.forEach(o=>{t.add(o);}):r.type==="split"&&(n(r.first),n(r.second)));}return n(e),Array.from(t).sort()}function mt(e){return useMemo(()=>dn(e),[e])}function bt(e){let{onDragStart:t,onDragEnd:n}=e,[r,o]=useState(null),[l,a]=useState(null),s=useCallback(u=>{t&&t(u);},[t]),c=useCallback((u,i,f)=>{n&&n(u,i,f);},[n]);return {overTabId:r,setOverTabId:o,overTabPosition:l,setOverTabPosition:a,handleDragStartInternal:s,handleDragEndInternal:c}}function vt(e){let n=useContext(be)?.registerRenderPane;useEffect(()=>{n&&e&&n(e);},[n,e]);}function ue(){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 de(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let o=e.tabIds.filter(s=>s!==t);if(o.length===0)return null;let l=e.activeTabId;e.activeTabId===t&&(l=o[0]);let a={...e.tabsMetadata};return delete a[t],{...e,tabIds:o,activeTabId:l,tabsMetadata:Object.keys(a).length>0?a:void 0}}return e}let n=de(e.first,t),r=de(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:ue(),tabIds:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let l=typeof o=="string"?{type:"pane",id:ue(),tabIds:[o],activeTabId:o}:o,a=r==="left"||r==="top";return {type:"split",direction:n,first:a?l:e,second:a?e:l,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 pn(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 ht(e,t,n,r){if(e===null)return {type:"pane",id:ue(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};let o=t?ee(e,t):null;if(o&&o.type==="pane"){let s=function(c){if(c.type==="pane"&&c.id===t){let u=[...c.tabIds];u.includes(n)||u.push(n);let i=c.tabsMetadata;return r&&(i={...c.tabsMetadata,[n]:r}),{...c,tabIds:u,activeTabId:n,tabsMetadata:i}}return c.type==="split"?{...c,first:s(c.first),second:s(c.second)}:c};return s(e)}let l={type:"pane",id:ue(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};return pn(e,l)}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 B(e,t){return e===null?null:e.type==="pane"?e.tabIds.includes(t)?e:null:e.type==="split"?B(e.first,t)??B(e.second,t):null}function Tt(e,t){return ee(e,t)??B(e,t)}function Pt(e,t){let n=B(e,t);if(!n)return null;let r=n.tabIds.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:r,metadata:n.tabsMetadata?.[t]}}function xt(e,t){return B(e,t)?.tabsMetadata?.[t]}function Rt(e,t){let n=ee(e,t);return n?.tabsMetadata?.[n.activeTabId]}function Fe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let r=e.tabsMetadata||{},o=r[t],l=n(o),a={...r};return l===void 0?delete a[t]:a[t]=l,{...e,tabsMetadata:Object.keys(a).length>0?a:void 0}}return e}return e.type==="split"?{...e,first:Fe(e.first,t,n)??e.first,second:Fe(e.second,t,n)??e.second}:e}function Be(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:Be(e.first,t,n)??e.first,second:Be(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 yt(e,t,n){if(e===null)return null;let o=B(e,t)?.tabsMetadata?.[t],l=de(e,t);if(l===null)return {type:"pane",id:ue(),tabIds:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function a(s){if(s.type==="pane"){if(s.id===n){let c=[...s.tabIds];c.includes(t)||c.push(t);let u={...s.tabsMetadata};return o&&(u[t]=o),{...s,tabIds:c,activeTabId:t,tabsMetadata:Object.keys(u).length>0?u:void 0}}return s}return s.type==="split"?{...s,first:a(s.first),second:a(s.second)}:s}return a(l)}function fn(e,t,n){if(e===null)return null;if(t===n)return e;let r=B(e,t),o=B(e,n);if(!r||!o)return e;let l=r.id,a=o.id,s=r.tabsMetadata?.[t],c=o.tabsMetadata?.[n];function u(i){if(i.type==="pane"){let f=false,g=[...i.tabIds],b=i.activeTabId,m=i.tabsMetadata?{...i.tabsMetadata}:{};if(l===a){if(i.id===l){let x=g.indexOf(t),M=g.indexOf(n);x!==-1&&M!==-1&&(g[x]=n,g[M]=t),b=t,f=true;}}else i.id===l&&(g=g.map(x=>x===t?n:x),b===t&&(b=n),delete m[t],c&&(m[n]=c),f=true),i.id===a&&(g=g.map(x=>x===n?t:x),b===n&&(b=t),delete m[n],s&&(m[t]=s),f=true);return f?{...i,tabIds:g,activeTabId:b,tabsMetadata:Object.keys(m).length>0?m:void 0}:i}return i.type==="split"?{...i,first:u(i.first),second:u(i.second)}:i}return u(e)}function Ne(e,t,n,r="before"){if(e===null)return null;if(t===n)return e;if(r==="center")return fn(e,t,n);let l=B(e,t)?.tabsMetadata?.[t],a=de(e,t);if(a===null)return {type:"pane",id:ue(),tabIds:[t],activeTabId:t,tabsMetadata:l?{[t]:l}:void 0};function s(c){if(c.type==="pane"){if(c.tabIds.includes(n)){let i=[...c.tabIds].filter(b=>b!==t),f=i.indexOf(n);f<0&&(f=0),r==="after"&&(f+=1),i.splice(f,0,t);let g={...c.tabsMetadata};return l&&(g[t]=l),{...c,tabIds:i,activeTabId:t,tabsMetadata:Object.keys(g).length>0?g:void 0}}return c}return c.type==="split"?{...c,first:s(c.first),second:s(c.second)}:c}return s(a)}function me(e,t=0,n=0,r=100,o=100,l="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:a,splitPercentage:s,first:c,second:u}=e,f={id:`splitter-${l}-${a}`,currentNode:e,direction:a,left:a==="row"?t+r*(s/100):t,top:a==="column"?n+o*(s/100):n,width:a==="row"?0:r,height:a==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:r,parentHeight:o},g={panes:[],splitters:[]},b={panes:[],splitters:[]};if(a==="row"){let m=r*(s/100);g=me(c,t,n,m,o,`${l}-L`),b=me(u,t+m,n,r-m,o,`${l}-R`);}else {let m=o*(s/100);g=me(c,t,n,r,m,`${l}-T`),b=me(u,t,n+m,r,o-m,`${l}-B`);}return {panes:[...g.panes,...b.panes],splitters:[f,...g.splitters,...b.splitters]}}function Dt(e,t,n,r="before"){if(e===null)return null;let o=ee(e,t);if(!o)return e;let l=o.tabIds,a=o.activeTabId,s=o.tabsMetadata||{},c=fe(e,t);if(c===null)return o;function u(i){if(i.type==="pane"){if(i.tabIds.includes(n)){let g=[...i.tabIds].filter(x=>!l.includes(x)),b=g.indexOf(n);b<0&&(b=0),r==="after"&&(b+=1),g.splice(b,0,...l);let m={...i.tabsMetadata};for(let x of l)s[x]&&(m[x]=s[x]);return {...i,tabIds:g,activeTabId:a,tabsMetadata:Object.keys(m).length>0?m:void 0}}return i}return i.type==="split"?{...i,first:u(i.first),second:u(i.second)}:i}return u(c)}function Ct(e,t,n,r){if(!((t==="tab"||t==="pane")&&n&&e.includes(n))||!r)return -1;let a=e.indexOf(n);return r==="before"?a:a+1}function gn(e){let{initialLayout:t,layout:n,onChange:r,fullscreenPaneId:o,onFullscreenChange:l,locked:a=false}=e,[s,c]=useState(()=>n!==void 0?n:t??null),[u,i]=useState(()=>n!==void 0?n:t??null),[f,g]=useState(()=>Ie(n!==void 0?n:null)),[b,m]=useState(o||null),[x,M]=useState(a),[O,v]=useState(null),[k,D]=useState(null),[E,w]=useState(null),C=useRef(null),V=useCallback(d=>{C.current=d;},[]),A=useRef(s);A.current=s;let J=useRef(r);J.current=r;let U=useRef(l);U.current=l;let te=useCallback(d=>{m(d),U.current?.(d);},[]);if(useEffect(()=>{M(a);},[a]),useEffect(()=>{o!==void 0&&m(o);},[o]),n!==void 0){let d=Ie(n);d!==f&&(g(d),c(n),i(n));}let S=useCallback(d=>(...h)=>{let N=A.current,z=d(N,...h);Ie(N)!==Ie(z)&&(A.current=z,c(z),i(z),J.current?.(z));},[]),ne=useCallback(S((d,h)=>typeof h=="function"?h(d):h),[S]),re=useCallback(d=>{i(h=>typeof d=="function"?d(h):d);},[]),Z=useCallback(d=>{m(null),U.current?.(null),v(null),D(null),w(null),ne(d),i(()=>typeof d=="function"?d(A.current):d);},[ne]),j=useCallback(S((d,h)=>fe(d,h)),[S]),H=useCallback(S((d,h,N,z)=>{let F=de(d,h)??d;return ht(F,N,h,z)}),[S]),T=useCallback(S((d,h,N,z,F)=>{let K=ee(d,h)??B(d,h);if(!K)return d;let $=ee(d,F)??B(d,F)??{type:"pane",id:F,tabIds:[F],activeTabId:F},ie=fe(d,$.id);return ye(ie,K.id,N,z,$)}),[S]),I=useCallback(S((d,h,N)=>Te(d,h,N)),[S]),p=useCallback(S((d,h,N)=>Fe(d,h,N)),[S]),oe=useCallback(S((d,h,N)=>{let z=ee(d,h)??B(d,h);return z?Be(d,z.id,N):d}),[S]),P=useCallback(S((d,h,N)=>{let z=ee(d,h)??B(d,h);return z?De(d,z.id,N):d}),[S]),L=useCallback(S((d,h,N)=>{let z=ee(d,N)??B(d,N);return z?yt(d,h,z.id):d}),[S]),ce=useCallback(S((d,h,N,z)=>Ne(d,h,N,z)),[S]),Y=useCallback(S((d,h)=>de(d,h)),[S]),q=useCallback(d=>ee(A.current,d),[]),_=useCallback(d=>B(A.current,d),[]),G=useCallback(d=>Pt(A.current,d),[]),R=useCallback(d=>xt(A.current,d),[]),y=useCallback(d=>Rt(A.current,d),[]);return {layout:s,setLayout:Z,_internalSetLayout:re,renderingLayout:u,fullscreenPaneId:b,setFullscreenPaneId:te,locked:x,setLocked:M,activeId:O,setActiveId:v,activeType:k,setActiveType:D,dismissIntentId:E,setDismissIntentId:w,containerRef:C,setContainerRef:V,removePane:j,addTab:H,updateMetadata:p,updatePaneLock:oe,selectTab:P,mergeTab:L,moveTab:ce,removeTab:Y,splitPane:T,updateSplitPercentage:I,findPaneById:q,findPaneContainingTab:_,findTabById:G,getTabMetadata:R,getActiveTabMetadata:y}}var mn=()=>{let e=ae(),t=Ae();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 We=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Ue=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var wt=e=>{let n=e.active.id.toString().startsWith("tab-header-"),o=pointerWithin(e);if(o.length>0)return [...o].sort((a,s)=>{let c=a.id.toString(),u=s.id.toString(),i=c.startsWith("tab-drop-"),f=u.startsWith("tab-drop-");if(i&&!f)return -1;if(!i&&f)return 1;let g=c.startsWith("drop-root-"),b=u.startsWith("drop-root-");return g&&!b?-1:!g&&b?1:0});if(n){let l=e.droppableContainers.filter(a=>a.id.toString().startsWith("tab-drop-"));return closestCenter({...e,droppableContainers:l})}return []};function Me(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 Mt(e){let{layout:t,_internalSetLayout:n,setLayout:r,activeId:o,setActiveId:l,activeType:a,setActiveType:s,dismissIntentId:c,setDismissIntentId:u,setOverTabId:i,setOverTabPosition:f,containerRef:g,dragActivationDistance:b,enableDragToDismiss:m,dismissThreshold:x,onRemove:M,onDragStart:O,onDragEnd:v,onDismissIntentChange:k,removeTab:D,removePane:E}=e,w=useRef(null),C=pt(o),V=useRef(null),[A,J]=useState(false);return ft(A),{sensors:useSensors(useSensor(We,{activationConstraint:{distance:b}}),useSensor(Ue,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:wt,onDragStart:Z=>{let j=Z.active.id.toString(),H=j.startsWith("tab-header-"),T=H?j.substring(11):j;l(T),s(H?"tab":"pane"),i(null),f(null);let I=Z.activatorEvent;C.current=Me(I),m&&g.current?w.current=g.current.getBoundingClientRect():w.current=null;let p=t;if(H){let P=B(t,T);P&&(p=De(t,P.id,T)||t);}V.current=p;let oe=H?de(p,T):fe(p,T);n(oe),O&&O(T);},onDragMove:Z=>{let{over:j}=Z,H=j?.id.toString()||"",T=H.startsWith("drop-locked-");J(R=>R===T?R:T);let I=Z.active.id.toString(),p=I.startsWith("tab-header-"),oe=p?I.substring(11):I,P=H.match(/^tab-drop-(.+)$/);if(P&&j&&(p||a==="pane")){let[,R]=P;if(oe!==R){let y="before",se=j.rect,d=Z.activatorEvent,h=null;if(C.current)h=C.current.x;else {let N=Me(d);N&&(h=N.x+Z.delta.x);}if(h!==null){let N=se.left+se.width/2;h>N&&(y="after");}i(N=>N===R?N:R),f(N=>N===y?N:y);}else i(y=>y===null?y:null),f(y=>y===null?y:null);}else i(R=>R===null?R:null),f(R=>R===null?R:null);if(!m)return;let L=w.current;if(!L){c!==null&&(u(null),k?.(null));return}let ce=Z.activatorEvent,Y=null,q=null;if(C.current)Y=C.current.x,q=C.current.y;else {let R=Me(ce);R&&(Y=R.x+Z.delta.x,q=R.y+Z.delta.y);}let _=0;if(Y!==null&&q!==null){let R=0,y=0;Y<L.left?R=L.left-Y:Y>L.right&&(R=Y-L.right),q<L.top?y=L.top-q:q>L.bottom&&(y=q-L.bottom),_=Math.sqrt(R*R+y*y);}else {let R=Z.active.rect.current.translated;if(R){let y=R.left+R.width/2,se=R.top+R.height/2,d=0,h=0;y<L.left?d=L.left-y:y>L.right&&(d=y-L.right),se<L.top?h=L.top-se:se>L.bottom&&(h=se-L.bottom),_=Math.sqrt(d*d+h*h);}}_>x?c!==oe&&(u(oe),k?.(oe)):c!==null&&(u(null),k?.(null));},onDragEnd:Z=>{l(null),s(null),J(false),i(null),f(null);let{active:j,over:H}=Z,T=j.id.toString(),I=T.startsWith("tab-header-"),p=I?T.substring(11):T,oe=m&&c===p;u(null),k?.(null),w.current=null;let P=V.current||t;if(V.current=null,oe){M?M(p):I?D(p):E(p),v&&v(p,null,null);return}if(!H){n(P),v&&v(p,null,null);return}let L=H.id.toString();if(L.startsWith("drop-locked-")){n(P),v&&v(p,null,null);return}let ce=L.match(/^tab-drop-(.+)$/);if(ce){let[,F]=ce;if(I)if(p!==F){let K="before",$=H.rect,ie=Z.activatorEvent,Q=null;if(C.current)Q=C.current.x;else {let X=Me(ie);X&&(Q=X.x+Z.delta.x);}if(Q!==null){let X=$.left+$.width/2;Q>X&&(K="after");}let pe=Ne(P,p,F,K);r(pe),v&&v(p,F,{type:"move",position:"center"});}else n(P),v&&v(p,null,null);else {let K="before",$=H.rect,ie=Z.activatorEvent,Q=null;if(C.current)Q=C.current.x;else {let X=Me(ie);X&&(Q=X.x+Z.delta.x);}if(Q!==null){let X=$.left+$.width/2;Q>X&&(K="after");}let pe=Dt(P,p,F,K);r(pe),v&&v(p,F,{type:"move",position:"center"});}return}let Y=L.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(Y){let[,F,K]=Y,$=K;$==="start"&&($="left"),$==="end"&&($="right");let ie=I?de(P,p):fe(P,p),Q;if(I){let X=B(P,p)?.tabsMetadata?.[p];Q={type:"pane",id:ue(),tabIds:[p],activeTabId:p,tabsMetadata:X?{[p]:X}:void 0};}else Q=ee(P,p)??{type:"pane",id:ue(),tabIds:[p],activeTabId:p};if(ie===null)r(Q);else {let pe=$==="left"||$==="right",X=$==="left"||$==="top",he=50;F==="1/4"?he=X?25:75:F==="1/3"&&(he=X?100/3:200/3),r({type:"split",direction:pe?"row":"column",first:X?Q:ie,second:X?ie:Q,splitPercentage:he});}v&&v(p,"root",{type:"split",direction:$==="left"||$==="right"?"row":"column",position:$});return}let q=L.match(/^drop-(left|right|top|bottom|center)-(.+)$/);if(!q){n(P),v&&v(p,null,null);return}let[,_,G]=q;if(_==="center"){if(I){let F=ee(P,G);if(F&&F.activeTabId){let K=F.activeTabId,$=Ne(P,p,K,"center");r($),v&&v(p,G,{type:"move",position:"center"});}else n(P),v&&v(p,null,null);}else n(P),v&&v(p,null,null);return}let R=I?B(P,p):ee(P,p),y=R&&R.id===G,se=R&&R.tabIds.length===1;if(p===G||y&&se){n(P),v&&v(p,null,null);return}let d=_==="left"||_==="right"?"row":"column",h;if(I){let K=B(P,p)?.tabsMetadata?.[p];h={type:"pane",id:ue(),tabIds:[p],activeTabId:p,tabsMetadata:K?{[p]:K}:void 0};}else h=ee(P,p)??{type:"pane",id:ue(),tabIds:[p],activeTabId:p};let N=I?de(P,p):fe(P,p),z=ye(N,G,d,_,h);r(z),v&&v(p,G,{type:"split",direction:d,position:_});},onDragCancel:()=>{l(null),s(null),J(false),i(null),f(null),u(null),k?.(null),w.current=null;let Z=V.current||t;V.current=null,n(Z),Z!==t&&r(Z);}}}function Lt({persist:e,layout:t,setLayout:n}){let r=typeof e=="object"?e.enabled!==false:!!e,o=typeof e=="object"&&e.key||"zeugma-layout",[l,a]=useState(false);useEffect(()=>{if(r){let s=localStorage.getItem(o);if(s)try{let c=JSON.parse(s);c&&n(c);}catch(c){console.error("Failed to parse persisted zeugma layout",c);}}a(true);},[r,o,n]),useEffect(()=>{r&&l&&(t?localStorage.setItem(o,JSON.stringify(t)):localStorage.removeItem(o));},[r,o,t,l]);}var Zt=({activeId:e,render:t,className:n})=>{let r=useRef(null);return useEffect(()=>{let o=l=>{r.current&&(r.current.style.transform=`translate(${l.clientX+12}px, ${l.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsx("div",{ref:r,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var kt=Sn.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,[o,l]=useState(false),a=useRef(null);if(useEffect(()=>{l(true);},[]),useEffect(()=>{if(!o||!a.current)return;let c=a.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]),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 s=a.current;return !s||!n?null:createPortal(n(e),s)},(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 zt=({activeId:e,activeType:t,dismissIntentId:n,renderDragOverlay:r,renderPaneRef:o,renderPane:l,tabHeadersRef:a,classNames:s})=>{if(r)return jsx(Fragment,{children:r({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let c=o.current||l;if(c)return jsx("div",{className:s.paneDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:c(e)})}else if(t==="tab"){let c=o.current||l;if(c)return jsx("div",{className:s.tabDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:c(e)});let u=a.current[e];if(u){let i=s.tab?typeof s.tab=="function"?s.tab(e):s.tab:"";return jsx("div",{className:`${s.tabDragPreview||""} ${i}`.trim(),style:{display:"inline-flex",position:"relative",pointerEvents:"none",overflow:"hidden"},children:u({isDragging:true,isOver:false})})}}return jsx("div",{style:{pointerEvents:"none",overflow:"hidden",width:"100%",height:"100%"}})};function ot({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:l,layout:a,currentNode:s,onLayoutChange:c,onResizeStart:u,onResizeEnd:i,parentLeft:f,parentTop:g,parentWidth:b,parentHeight:m}){let{onResizeStart:x,onResize:M,onResizeEnd:O,minSplitPercentage:v=5,maxSplitPercentage:k=95,locked:D=false}=ae();return useCallback(E=>{if(D)return;E.preventDefault();let w=e.current;if(!w)return;u&&u(),x&&x(s);let C=w.getBoundingClientRect(),V=E.clientX,A=E.clientY,J=r,U=E.currentTarget,te=C.left+C.width*(f/100),S=C.top+C.height*(g/100),ne=C.width*(b/100),re=C.height*(m/100),j=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(T=>T!==U&&T.getAttribute("data-direction")===n).map(T=>{let I=T.getBoundingClientRect();return t?I.left+I.width/2:I.top+I.height/2}),H=J;dt({cursor:t?"col-resize":"row-resize",resizerEl:U,onMove:T=>{let I=t?(T.clientX-V)/ne*100:(T.clientY-A)/re*100,p=J+I,oe=t?te+(ne-o)*(p/100)+o/2:S+(re-o)*(p/100)+o/2,P=1/0,L=null;for(let _ of j){let G=Math.abs(oe-_);G<l&&G<P&&(P=G,L=_);}let ce=p;L!==null&&(ce=t?(L-o/2-te)/(ne-o)*100:(L-o/2-S)/(re-o)*100);let Y=Math.max(v,Math.min(k,ce));H=Y;let q=Te(a,s,Y);if(q){let{panes:_,splitters:G}=me(q),R=e.current;if(R){for(let y of _)R.style.setProperty(`--pane-left-${y.paneId}`,`${y.left}%`),R.style.setProperty(`--pane-top-${y.paneId}`,`${y.top}%`),R.style.setProperty(`--pane-width-${y.paneId}`,`${y.width}%`),R.style.setProperty(`--pane-height-${y.paneId}`,`${y.height}%`);for(let y of G)R.style.setProperty(`--splitter-pos-${y.id}`,`${y.direction==="row"?y.left:y.top}%`);}}M&&M(s,Y);},onEnd:()=>{let T=Te(a,s,H),I=e.current;if(I){let{panes:p,splitters:oe}=me(T);for(let P of p)I.style.removeProperty(`--pane-left-${P.paneId}`),I.style.removeProperty(`--pane-top-${P.paneId}`),I.style.removeProperty(`--pane-width-${P.paneId}`),I.style.removeProperty(`--pane-height-${P.paneId}`);for(let P of oe)I.style.removeProperty(`--splitter-pos-${P.id}`);}c(T),i&&i(),O&&O(s,H);}});},[e,t,n,r,o,l,a,s,c,u,i,x,M,O,v,k,f,g,b,m])}var $t=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{renderingLayout:o,setLayout:l,classNames:a,locked:s}=ae(),[c,u]=useState(false),{currentNode:i,direction:f,left:g,top:b,width:m,height:x,parentLeft:M,parentTop:O,parentWidth:v,parentHeight:k}=e,D=f==="row",E=ot({containerRef:r,isRow:D,direction:f,splitPercentage:i.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:i,onLayoutChange:l,onResizeStart:()=>u(true),onResizeEnd:()=>u(false),parentLeft:M,parentTop:O,parentWidth:v,parentHeight:k}),w=D?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${g}%) - ${t/2}px)`,top:`calc(${b}% + ${t/2}px)`,width:`${t}px`,height:`calc(${x}% - ${t}px)`,cursor:s?"default":"col-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${g}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${b}%) - ${t/2}px)`,width:`calc(${m}% - ${t}px)`,height:`${t}px`,cursor:s?"default":"row-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:a.resizer||"","data-direction":f,"data-resizing":c||void 0,style:w,onPointerDown:E,role:"separator","aria-valuenow":i.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},At=Sn.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var rt=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{vt(e);let{renderingLayout:o,activeId:l,dismissIntentId:a,setContainerRef:s,fullscreenPaneId:c,snapThreshold:u,locked:i,classNames:f,resizerSize:g}=ae(),b=r!==void 0?r:u??8,m=n!==void 0?n:g??4,x=t!==void 0?t:o,M=useRef(null),{panes:O,splitters:v}=useMemo(()=>x?me(x):{panes:[],splitters:[]},[x]);if(!x&&t!==void 0)return null;let k=()=>jsxs(Fragment,{children:[O.map(D=>{let E=c===D.paneId;return jsx("div",{style:{position:"absolute",left:E?"0%":`var(--pane-left-${D.paneId}, ${D.left}%)`,top:E?"0%":`var(--pane-top-${D.paneId}, ${D.top}%)`,width:E?"100%":`var(--pane-width-${D.paneId}, ${D.width}%)`,height:E?"100%":`var(--pane-height-${D.paneId}, ${D.height}%)`,overflow:"hidden",zIndex:E?20:1,display:c&&!E?"none":"block",padding:E?"0px":`${m/2}px`,boxSizing:"border-box"},children:jsx(At,{paneId:D.paneId,renderPane:e})},D.paneId)}),!c&&v.map(D=>jsx($t,{splitter:D,resizerSize:m,snapThreshold:b,containerRef:M},D.id))]});if(t===void 0){let D=l!==null&&l===a,E=C=>{s(C),M.current=C;},w=`${f.dashboard||""} ${D&&f.dashboardDismissActive||""} ${i&&f.dashboardLocked||""}`.trim();return jsxs("div",{ref:E,className:w,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[k(),l!==null&&!i&&jsx(Ft,{activeClassName:f.rootDropPreview??f.dropPreview})]})}return jsx("div",{ref:M,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:k()})};var Fn=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:l,resizerSize:a,dragActivationDistance:s=8,snapThreshold:c=8,minSplitPercentage:u=5,maxSplitPercentage:i=95,enableDragToDismiss:f=false,dismissThreshold:g=60,onRemove:b,onDragStart:m,onDragEnd:x,onResizeStart:M,onResize:O,onResizeEnd:v,onDismissIntentChange:k,persist:D=false}=e,E=t,{layout:w,setLayout:C,_internalSetLayout:V,renderingLayout:A,fullscreenPaneId:J,setFullscreenPaneId:U,locked:te,setLocked:S,findPaneById:ne,findPaneContainingTab:re,findTabById:Z,getTabMetadata:j,getActiveTabMetadata:H,activeId:T,setActiveId:I,activeType:p,setActiveType:oe,dismissIntentId:P,setDismissIntentId:L,containerRef:ce,setContainerRef:Y,removePane:q,addTab:_,updateMetadata:G,updatePaneLock:R,selectTab:y,mergeTab:se,removeTab:d,splitPane:h,updateSplitPercentage:N,moveTab:z}=E;Lt({persist:D,layout:w,setLayout:C});let{portalTargets:F,registerPortalTarget:K,registerRenderCallback:$,renderCallbacksRef:ie,registerRenderPane:Q,renderPaneRef:pe,registerTabHeader:X,tabHeadersRef:he,activeIdRef:we}=gt(),{overTabId:it,setOverTabId:Kt,overTabPosition:lt,setOverTabPosition:Qt,handleDragStartInternal:en,handleDragEndInternal:tn}=bt({onDragStart:m,onDragEnd:x}),nn=Mt({layout:w,_internalSetLayout:V,setLayout:C,activeId:T,setActiveId:I,activeType:p,setActiveType:oe,dismissIntentId:P,setDismissIntentId:L,setOverTabId:Kt,setOverTabPosition:Qt,containerRef:ce,dragActivationDistance:s,enableDragToDismiss:f,dismissThreshold:g,onRemove:b,onDragStart:en,onDragEnd:tn,onDismissIntentChange:k,removeTab:d,removePane:q}),je=useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.rootDropPreview,o.dragOverlay,o.paneDragPreview,o.tabDragPreview,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]),ct=useCallback((ge,ze)=>{v&&v(ge,ze);},[v]),on=useMemo(()=>({layout:w,renderingLayout:A,setLayout:C,activeId:T,activeType:p,dismissIntentId:P,setContainerRef:Y,fullscreenPaneId:J,classNames:je,onRemove:b,onFullscreenChange:U,snapThreshold:c,onResizeStart:M,onResize:O,onResizeEnd:ct,minSplitPercentage:u,maxSplitPercentage:i,locked:te,setLocked:S,findPaneById:ne,findPaneContainingTab:re,findTabById:Z,getTabMetadata:j,getActiveTabMetadata:H,renderPane:l,resizerSize:a}),[w,A,T,p,P,Y,J,je,b,U,c,M,O,u,i,C,ct,te,S,ne,re,Z,j,H,l,a]),rn=useMemo(()=>({overTabId:it,overTabPosition:lt}),[it,lt]),an=useMemo(()=>({removePane:q,addTab:_,updateMetadata:G,updatePaneLock:R,selectTab:y,mergeTab:se,removeTab:d,setFullscreenPaneId:U,setLocked:S,splitPane:h,updateSplitPercentage:N,moveTab:z}),[q,_,G,R,y,se,d,U,S,h,N,z]),sn=mt(w),ln=useMemo(()=>({registerPortalTarget:K,registerRenderCallback:$,renderCallbacksRef:ie,registerRenderPane:Q,renderPaneRef:pe,registerTabHeader:X,tabHeadersRef:he,activeIdRef:we}),[K,$,ie,Q,pe,X,he,we]);return we&&(we.current=T),jsx(Qe.Provider,{value:an,children:jsx(Ke.Provider,{value:on,children:jsx(et.Provider,{value:rn,children:jsxs(be.Provider,{value:ln,children:[jsx(DndContext,{id:"zeugma-dnd-context",...nn,children:n}),T&&p&&jsx(Zt,{activeId:T,render:ge=>jsx("div",{style:{transition:"transform 150ms cubic-bezier(0.2, 0, 0, 1)",transform:ge===P?"scale(0.8)":"scale(1)",transformOrigin:"top left"},children:jsx(zt,{activeId:ge,activeType:p,dismissIntentId:P,renderDragOverlay:r,renderPaneRef:pe,renderPane:l,tabHeadersRef:he,classNames:je})}),className:`${o.dragOverlay||""} ${T===P&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:sn.map(ge=>{let ze=F[ge],ut=Z(ge);return ut?jsx(kt,{tabDetails:ut,target:ze||null,renderWidget:ie.current[ge]},ge):null})})]})})})})},Bn=({renderPane:e,resizerSize:t,snapThreshold:n})=>{if(!e)throw new Error("Zeugma component requires a renderPane prop when used as a standalone renderer.");return jsx(rt,{renderPane:e,resizerSize:t,snapThreshold:n})},Vn=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsx(Fn,{...e,children:t!==void 0?t:jsx(Bn,{...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"}}},Jn={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"}}},Yn=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:l}=useDroppable({id:e}),a={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...Jn[n][t]};return jsxs(Fragment,{children:[jsx("div",{ref:o,style:Xn[n][t]}),l&&jsx("div",{className:r,style:a})]})},Ft=({activeClassName:e})=>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=>jsx(Yn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var Je=createContext(null);var Kn={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"},center:{position:"absolute",top:"25%",left:"25%",width:"50%",height:"50%",zIndex:22,pointerEvents:"auto"}},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"},center:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:21,pointerEvents:"none",boxSizing:"border-box"}},Ye=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:r,style:Kn[t]}),o&&jsx("div",{className:n,style:Qn[t]})]})};var Vt=({children:e,className:t,style:n})=>{let r=useContext(Je);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...l}=r;return jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:l,children:e})};var co=createContext(void 0);var ke=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:l,classNames:a={},fullscreenPaneId:s}=ae(),{overTabId:c}=Oe(),u=useContext(be);useEffect(()=>(u?.registerTabHeader&&u.registerTabHeader(e,n),()=>{u?.registerTabHeader&&u.activeIdRef?.current!==e&&u.registerTabHeader(e,()=>null);}),[e,n,u]);let i=useContext(at),f=t||l||(i?.locked??false)||s!==null,{attributes:g,listeners:b,setNodeRef:m,isDragging:x}=useDraggable({id:`tab-header-${e}`,disabled:f}),{setNodeRef:M,isOver:O}=useDroppable({id:`tab-drop-${e}`,disabled:f}),v=ne=>{m(ne),M(ne);},k=O&&c===e,D=i?.tabIds||[],E=D.indexOf(e),w=i?.activeTabId,V=E>0&&e!==w&&D[E-1]!==w?jsx("div",{className:a.tabSeparator}):null,A=i?i.activeTabId===e:false,J=i?.tabsMetadata?.[e],U=useCallback(()=>{i?.selectTab(e);},[i,e]),te=useCallback(()=>{i?.removeTab(e);},[i,e]),S=useMemo(()=>({tabId:e,isActive:A,isDragging:x,isOver:k,metadata:J,locked:f,selectTab:U,removeTab:te}),[e,A,x,k,J,f,U,te]);return jsx(co.Provider,{value:S,children:jsxs("div",{ref:v,id:`tab-header-${e}`,className:r,style:{display:"inline-flex",position:"relative",cursor:f?"default":"grab",...o},...f?{}:b,...f?{}:g,children:[V,n({isDragging:x,isOver:k})]})})};var at=createContext(void 0);var Jt=(e,t)=>typeof e=="function"?e(t):e,st=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:l,renderTab:a,classNames:s,styles:c})=>{let u=useContext(qe),i=e??u?.tabIds??[],f=t??u?.activeTabId??"",g=n??u?.locked??false,b=r??u?.tabsMetadata,m=o??u?.selectTab??(()=>{}),x=l??u?.removeTab??(()=>{}),{classNames:M={},activeType:O}=ae(),{overTabId:v,overTabPosition:k}=Oe(),D=useMemo(()=>({tabIds:i,activeTabId:f,locked:g,tabsMetadata:b,selectTab:m,removeTab:x}),[i,f,g,b,m,x]),E=Ct(i,O,v,k);return jsx(at.Provider,{value:D,children:jsxs("div",{className:s?.container,style:{display:"flex",alignItems:"center",height:"100%",...c?.container},children:[i.map((w,C)=>{let V=b?.[w],A=Jt(s?.tab,w),J=Jt(c?.tab,w),U=C===E;return jsxs(Sn.Fragment,{children:[U&&M.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:M.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:C===0?"none":"translateX(-50%)"}})}),jsx(ke,{id:w,locked:g,className:A,style:J,children:({isDragging:te,isOver:S})=>a({id:w,paneId:u?.id??"",isActive:w===f,index:C,isDragging:te,isOver:S,metadata:V,onSelect:()=>m(w),onRemove:()=>x(w)})})]},w)}),E===i.length&&M.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:M.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};st.Tab=ke;var qt=({className:e,style:t,children:n})=>jsx("div",{className:e,style:t,children:n});var qe=createContext(void 0),Gt=()=>{let e=useContext(qe);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},xo=({children:e,className:t,style:n})=>{let{activeTabId:r}=Gt(),{classNames:o}=ae(),l=useRef(null),a=useContext(be);if(!a)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:s,registerRenderCallback:c}=a,u=useMemo(()=>typeof e=="function"?e:()=>e,[e]);return c(r,u),useEffect(()=>{let i=l.current;return s(r,i),()=>{s(r,null,i);}},[r,s]),jsx("div",{ref:l,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,renderingLayout:l,activeId:a,activeType:s,classNames:c,fullscreenPaneId:u,onFullscreenChange:i,locked:f}=ae(),{removePane:g,updateMetadata:b,selectTab:m,removeTab:x}=Ae(),M=useMemo(()=>{if(s==="tab"&&e===a){let p=B(o,e)?.tabsMetadata?.[e];return {type:"pane",id:e,tabIds:[e],activeTabId:e,tabsMetadata:p?{[e]:p}:void 0}}return Tt(e===a?o:l,e)},[o,l,e,a,s]),O=M?.id??e,v=M?.tabIds??[e],k=M?.activeTabId??e,D=M?.tabsMetadata,E=D?.[e],w=M?.locked??false,C=r||w,V=f||C||u!==null,A=f||C||u!==null,J=a!==null&&a!==e&&(!v.includes(a)||v.length>1)&&!A,{attributes:U,listeners:te,setNodeRef:S}=useDraggable({id:e,disabled:V}),ne=a!==null&&v.includes(a),re=u===e,Z=useMemo(()=>({isDragging:ne,isFullscreen:re,toggleFullscreen:()=>i?.(re?null:e),remove:()=>{re&&i?.(null),g(O);},metadata:E,updateMetadata:T=>{b(e,T);},locked:V,tabIds:v,activeTabId:k,selectTab:T=>m(O,T),removeTab:T=>{re&&T===k&&i?.(null),x(T);},tabsMetadata:D,updateTabMetadata:(T,I)=>{b(T,I);}}),[ne,re,i,e,x,E,b,V,v,k,m,O,D]),j=useMemo(()=>V?{disabled:true}:{...te,...U},[te,U,V]),H=`${c.pane||""} ${C&&c.paneLocked||""}`.trim();return jsx(qe.Provider,{value:{id:e,...Z},children:jsx(Je.Provider,{value:j,children:jsxs("div",{ref:S,id:e,className:H,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,J&&jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:[["top","bottom","left","right"].map(T=>jsx(Ye,{id:`drop-${T}-${e}`,position:T,activeClassName:c.dropPreview},T)),s==="tab"&&jsx(Ye,{id:`drop-center-${e}`,position:"center",activeClassName:c.swapPreview??c.dropPreview})]}),a!==null&&a!==e&&A&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(Ye,{id:`drop-locked-${e}`,position:"full",activeClassName:c.lockedPreview||""})})]})})})};Se.Content=xo;Se.DragHandle=Vt;Se.Tabs=st;Se.Tab=ke;Se.Controls=qt;export{Se as Pane,rt as PaneTree,Vn as Zeugma,Gt as usePaneContext,ot as useResizer,gn as useZeugma,mn as useZeugmaContext};//# sourceMappingURL=index.js.map
10
10
  //# sourceMappingURL=index.js.map