react-zeugma 6.1.1 → 6.1.3

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 CHANGED
@@ -359,6 +359,29 @@ When a tab is open in a separate window, render a custom placeholder inside the
359
359
  </div>
360
360
  ```
361
361
 
362
+ #### 3. Handling Portals, Popovers, and Dialogs in Popout Windows
363
+
364
+ When widgets are popped out, they render in a separate window document. However, standard library portals (like Radix UI popovers, dropdowns, dialogs, or custom `createPortal` implementations) target `document.body` by default, which refers to the **main window's document**.
365
+
366
+ ##### Automatic Redirection (Zero Configuration)
367
+
368
+ To make this transparent, `react-zeugma` automatically intercepts and redirects all DOM portal creation calls (like accesses to `document.body`, `document.documentElement`, and `document.createElement`) to the popped-out window's document during the tab's render phase. **Any standard dropdown, popover, or modal (e.g. Radix UI, shadcn/ui) will automatically open inside the correct window out of the box.**
369
+
370
+ ##### Manual DOM Operations (`useTabWindow`)
371
+
372
+ If you are performing custom manual DOM manipulations outside React or want to access the correct window environment directly, `react-zeugma` wraps all widgets in a `TabWindowContext` and provides a `useTabWindow()` hook. The hook returns the correct `window` and `document` references corresponding to the tab's current location (main or popup window):
373
+
374
+ ```tsx
375
+ import { useTabWindow } from 'react-zeugma'
376
+
377
+ export function MyWidget() {
378
+ const { document: tabDoc, window: tabWin } = useTabWindow()
379
+
380
+ // Access the current active document or window context:
381
+ // e.g., tabDoc.body or adding event listeners to tabWin
382
+ }
383
+ ```
384
+
362
385
  ---
363
386
 
364
387
  ## Custom Styling
@@ -270,6 +270,10 @@ interface ZeugmaContextValue extends ZeugmaStateValue, ZeugmaActionsValue {
270
270
  interface PortalRegistryValue {
271
271
  registerPortalTarget: (tabId: string, el: HTMLDivElement | null) => void;
272
272
  }
273
+ interface TabWindowValue {
274
+ window: Window | null;
275
+ document: Document | null;
276
+ }
273
277
 
274
278
  /**
275
279
  * Utility to copy stylesheets from source document to destination document.
@@ -280,4 +284,4 @@ declare function copyStyles(srcDoc: Document, destDoc: Document): void;
280
284
  */
281
285
  declare function getOrCreateHiddenContainer(id: string): HTMLElement;
282
286
 
283
- export { type PortalRegistryValue as P, type SplitDirection as S, type TreeNode as T, type UseZeugmaOptions as U, type ZeugmaActionsValue as Z, type ZeugmaDragStateValue as a, type ZeugmaStateValue as b, type ZeugmaController as c, type ZeugmaContextValue as d, type ZeugmaProps as e, type SplitNode as f, type PaneNode as g, type TabDetails as h, type ZeugmaClassNames as i, copyStyles as j, getOrCreateHiddenContainer as k };
287
+ export { type PortalRegistryValue as P, type SplitDirection as S, type TabWindowValue as T, type UseZeugmaOptions as U, type ZeugmaActionsValue as Z, type ZeugmaDragStateValue as a, type ZeugmaStateValue as b, type ZeugmaController as c, type ZeugmaContextValue as d, type ZeugmaProps as e, type TreeNode as f, type SplitNode as g, type PaneNode as h, type TabDetails as i, type ZeugmaClassNames as j, copyStyles as k, getOrCreateHiddenContainer as l };
@@ -270,6 +270,10 @@ interface ZeugmaContextValue extends ZeugmaStateValue, ZeugmaActionsValue {
270
270
  interface PortalRegistryValue {
271
271
  registerPortalTarget: (tabId: string, el: HTMLDivElement | null) => void;
272
272
  }
273
+ interface TabWindowValue {
274
+ window: Window | null;
275
+ document: Document | null;
276
+ }
273
277
 
274
278
  /**
275
279
  * Utility to copy stylesheets from source document to destination document.
@@ -280,4 +284,4 @@ declare function copyStyles(srcDoc: Document, destDoc: Document): void;
280
284
  */
281
285
  declare function getOrCreateHiddenContainer(id: string): HTMLElement;
282
286
 
283
- export { type PortalRegistryValue as P, type SplitDirection as S, type TreeNode as T, type UseZeugmaOptions as U, type ZeugmaActionsValue as Z, type ZeugmaDragStateValue as a, type ZeugmaStateValue as b, type ZeugmaController as c, type ZeugmaContextValue as d, type ZeugmaProps as e, type SplitNode as f, type PaneNode as g, type TabDetails as h, type ZeugmaClassNames as i, copyStyles as j, getOrCreateHiddenContainer as k };
287
+ export { type PortalRegistryValue as P, type SplitDirection as S, type TabWindowValue as T, type UseZeugmaOptions as U, type ZeugmaActionsValue as Z, type ZeugmaDragStateValue as a, type ZeugmaStateValue as b, type ZeugmaController as c, type ZeugmaContextValue as d, type ZeugmaProps as e, type TreeNode as f, type SplitNode as g, type PaneNode as h, type TabDetails as i, type ZeugmaClassNames as j, copyStyles as k, getOrCreateHiddenContainer as l };
package/dist/index.cjs CHANGED
@@ -1,7 +1,8 @@
1
- 'use strict';var Kt=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 Kt__default=/*#__PURE__*/_interopDefault(Kt);function rt(e,t){Array.from(e.styleSheets).forEach(n=>{try{if(n.cssRules){let o=t.createElement("style");Array.from(n.cssRules).forEach(r=>{o.appendChild(t.createTextNode(r.cssText));}),t.head.appendChild(o);}else if(n.href){let o=t.createElement("link");o.rel="stylesheet",o.href=n.href,t.head.appendChild(o);}}catch{if(n.href){let o=t.createElement("link");o.rel="stylesheet",o.href=n.href,t.head.appendChild(o);}}});}function Xe(e){let t=document.getElementById(e);return t||(t=document.createElement("div"),t.id=e,t.style.display="none",document.body.appendChild(t)),t}function it(e){let t=Kt.useRef(null);return Kt.useEffect(()=>{if(!e){t.current=null;return}let n=r=>{t.current={x:r.clientX,y:r.clientY};},o=r=>{let s=r.touches[0]||r.changedTouches[0];s&&(t.current={x:s.clientX,y:s.clientY});};return window.addEventListener("pointermove",n,{passive:true}),window.addEventListener("touchmove",o,{passive:true}),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("touchmove",o);}},[e]),t}function at(e){Kt.useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function lt(){let[e,t]=Kt.useState({}),n=Kt.useRef(true);Kt.useEffect(()=>(n.current=true,()=>{n.current=false;}),[]);let o=Kt.useCallback((r,s)=>{n.current&&t(i=>i[r]===s?i:{...i,[r]:s});},[]);return {portalTargets:e,registerPortalTarget:o}}function ct({tabId:e,isOpenedInNewWindow:t,onClose:n}){let o=Kt.useRef(null),[r,s]=Kt.useState(null);return Kt.useEffect(()=>{let i=null;if(t){if(!o.current||o.current.closed){let c=`zeugma-tab-${e.replace(/[^a-zA-Z0-9]/g,"_")}`,p=window.open("",c,"width=800,height=600,menubar=no,toolbar=no,location=no,status=no,resizable=yes");if(p){o.current=p;let f=e.includes("/")?e.split("/").pop():e;p.document.title=f,rt(document,p.document);let m=p.document.createElement("div");m.id="zeugma-popup-root",p.document.body.appendChild(m),s(m),p.addEventListener("beforeunload",n),i=setInterval(()=>{p.closed&&n();},300);}else console.warn("Popup window blocked or failed to open."),n();}}else o.current&&!o.current.closed&&o.current.close(),o.current=null,s(null);return ()=>{i&&clearInterval(i),o.current&&o.current.removeEventListener("beforeunload",n);}},[t,e,n]),Kt.useEffect(()=>()=>{o.current&&!o.current.closed&&o.current.close();},[]),{popupWindow:o.current,popupContainer:r}}var zt=8,At=8,Jn=4;function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function he(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=he(e.first,t),o=he(e.second,t);return n===null?o:o===null?n:{...e,first:n,second:o}}function fe(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let r=e.tabs.filter(c=>c!==t);if(r.length===0)return null;let s=e.activeTabId;e.activeTabId===t&&(s=r[0]);let i={...e.tabsMetadata};return delete i[t],{...e,tabs:r,activeTabId:s,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}let n=fe(e.first,t),o=fe(e.second,t);return n===null?o:o===null?n:{...e,first:n,second:o}}function Ce(e,t,n,o,r){if(e===null)return typeof r=="string"?{type:"pane",id:de(),tabs:[r],activeTabId:r}:r;if(e.type==="pane"){if(e.id===t){let s=typeof r=="string"?{type:"pane",id:de(),tabs:[r],activeTabId:r}:r,i=o==="left"||o==="top";return {type:"split",direction:n,first:i?s:e,second:i?e:s,splitPercentage:50}}return e}return {...e,first:Ce(e.first,t,n,o,r)||e.first,second:Ce(e.second,t,n,o,r)||e.second}}function ut(e,t,n){if(e===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0};function o(r,s){return r.type==="pane"?{type:"split",direction:s==="row"?"column":"row",splitPercentage:50,first:r,second:{type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0}}:{...r,second:o(r.second,r.direction)}}return o(e,null)}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:ee(e.first,t)??ee(e.second,t)}function U(e,t){return e===null?null:e.type==="pane"?e.tabs.includes(t)?e:null:U(e.first,t)??U(e.second,t)}function dt(e,t){let n=U(e,t);if(!n)return null;let o=n.tabs.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:o,metadata:n.tabsMetadata?.[t]}}function Me(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let o=e.tabsMetadata||{},r=o[t],s=n(r),i={...o};return s===void 0?delete i[t]:i[t]=s,{...e,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}return {...e,first:Me(e.first,t,n)??e.first,second:Me(e.second,t,n)??e.second}}function Ze(e,t,n,o){if(e===null)return null;if(e.type==="pane"){if(e.id===t){let r=[...e.tabs];r.includes(n)||r.push(n);let s=e.tabsMetadata;return o&&(s={...e.tabsMetadata,[n]:o}),{...e,tabs:r,activeTabId:n,tabsMetadata:s}}return e}return {...e,first:Ze(e.first,t,n,o)||e.first,second:Ze(e.second,t,n,o)||e.second}}function ke(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:o,...r}=e;return r}return {...e,locked:n}}return e}return {...e,first:ke(e.first,t,n)??e.first,second:ke(e.second,t,n)??e.second}}function Re(e,t,n){return e===null?null:e.type==="pane"?e.id===t?e.activeTabId===n?e:{...e,activeTabId:n}:e:{...e,first:Re(e.first,t,n)??e.first,second:Re(e.second,t,n)??e.second}}function pt(e,t,n){if(e===null)return null;let r=U(e,t)?.tabsMetadata?.[t],s=fe(e,t);if(s===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:r?{[t]:r}:void 0};function i(c){if(c.type==="pane"){if(c.id===n){let p=[...c.tabs];p.includes(t)||p.push(t);let f={...c.tabsMetadata};return r&&(f[t]=r),{...c,tabs:p,activeTabId:t,tabsMetadata:Object.keys(f).length>0?f:void 0}}return c}return {...c,first:i(c.first),second:i(c.second)}}return i(s)}function $e(e,t,n,o="before"){if(e===null)return null;let s=U(e,t)?.tabsMetadata?.[t],i=fe(e,t);if(i===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:s?{[t]:s}:void 0};function c(p){if(p.type==="pane"){if(p.tabs.includes(n)){let m=[...p.tabs].filter(v=>v!==t),b=m.indexOf(n);b<0&&(b=0),o==="after"&&(b+=1),m.splice(b,0,t);let P={...p.tabsMetadata};return s&&(P[t]=s),{...p,tabs:m,activeTabId:t,tabsMetadata:Object.keys(P).length>0?P:void 0}}return p}return {...p,first:c(p.first),second:c(p.second)}}return c(i)}function ge(e,t=0,n=0,o=100,r=100,s="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:o,height:r,node:e}],splitters:[]};let{direction:i,splitPercentage:c,first:p,second:f}=e,b={id:`splitter-${s}-${i}`,currentNode:e,direction:i,left:i==="row"?t+o*(c/100):t,top:i==="column"?n+r*(c/100):n,width:i==="row"?0:o,height:i==="column"?0:r,parentLeft:t,parentTop:n,parentWidth:o,parentHeight:r},P={panes:[],splitters:[]},v={panes:[],splitters:[]};if(i==="row"){let x=o*(c/100);P=ge(p,t,n,x,r,`${s}-L`),v=ge(f,t+x,n,o-x,r,`${s}-R`);}else {let x=r*(c/100);P=ge(p,t,n,o,x,`${s}-T`),v=ge(f,t,n+x,o,r-x,`${s}-B`);}return {panes:[...P.panes,...v.panes],splitters:[b,...P.splitters,...v.splitters]}}function ft(e,t,n,o){if(!(t==="tab"&&n&&e.includes(n))||!o)return -1;let i=e.indexOf(n);return o==="before"?i:i+1}function Le(e){try{return JSON.stringify(e)}catch{return ""}}function Ht(e){let{initialLayout:t,layout:n,onChange:o,fullscreenPaneId:r,onFullscreenChange:s,locked:i=false,dragActivationDistance:c=8,snapThreshold:p=8,minSplitPercentage:f=5,maxSplitPercentage:m=95,enableDragToDismiss:b=false,dismissThreshold:P=60,onRemove:v,onDragStart:x,onDragEnd:M,onResizeStart:A,onResize:N,onResizeEnd:d,onDismissIntentChange:T}=e,[E,D]=Kt.useState(()=>n!==void 0?n:t??null),[H,q]=Kt.useState(()=>Le(n!==void 0?n:null)),[G,X]=Kt.useState(r||null),[te,oe]=Kt.useState(i),[re,se]=Kt.useState(null),[le,w]=Kt.useState({}),F=Kt.useCallback((u,C)=>{w(L=>L[u]===C?L:{...L,[u]:C});},[]),[Z,k]=Kt.useState(null),[y,a]=Kt.useState(null),[h,R]=Kt.useState(null),g=Kt.useRef(null),K=Kt.useCallback(u=>{g.current=u;},[]),$=Kt.useRef(E);$.current=E;let O=Kt.useRef(o);O.current=o;let V=Kt.useRef(s);V.current=s;let Q=Kt.useCallback(u=>{X(u),V.current?.(u);},[]);if(Kt.useEffect(()=>{oe(i);},[i]),Kt.useEffect(()=>{r!==void 0&&X(r);},[r]),n!==void 0){let u=Le(n);u!==H&&(q(u),D(n));}let l=Kt.useCallback(u=>(...C)=>{let L=$.current,B=u(L,...C);Le(L)!==Le(B)&&($.current=B,D(B),O.current?.(B));},[]),I=Kt.useCallback(l((u,C)=>typeof C=="function"?C(u):C),[l]),ie=Kt.useCallback(l((u,C)=>he(u,C)),[l]),Y=Kt.useCallback(l((u,C,L)=>ut(u,C,L)),[l]),j=Kt.useCallback(l((u,C,L,B)=>{let pe=ee(u,C)??U(u,C);if(!pe)return u;let Ee=U(u,L),_e=Ee&&Ee.id===pe.id?u:fe(u,L)??u;return Ze(_e,pe.id,L,B)}),[l]),Ne=Kt.useCallback(l((u,C,L,B,pe)=>{let Ee=ee(u,C)??U(u,C);if(!Ee)return u;let ot=ee(u,pe)??U(u,pe)??{type:"pane",id:pe,tabs:[pe],activeTabId:pe},_e=he(u,pe);return Ce(_e,Ee.id,L,B,ot)}),[l]),ce=Kt.useCallback(l((u,C,L)=>Te(u,C,L)),[l]),ue=Kt.useCallback(l((u,C,L)=>Me(u,C,L)),[l]),J=Kt.useCallback(l((u,C,L)=>{let B=ee(u,C)??U(u,C);return B?ke(u,B.id,L):u}),[l]),me=Kt.useCallback(l((u,C,L)=>{let B=ee(u,C)??U(u,C);return B?Re(u,B.id,L):u}),[l]),z=Kt.useCallback(l((u,C,L)=>{let B=ee(u,L)??U(u,L);return B?pt(u,C,B.id):u}),[l]),ae=Kt.useCallback(l((u,C,L,B)=>$e(u,C,L,B)),[l]),W=Kt.useCallback(l((u,C)=>fe(u,C)),[l]),Pe=Kt.useCallback(u=>ee($.current,u),[]),nt=Kt.useCallback(u=>U($.current,u),[]),kt=Kt.useCallback(u=>dt($.current,u),[]);return {layout:E,setLayout:I,layoutBeforeDrag:re,setLayoutBeforeDrag:se,fullscreenPaneId:G,setFullscreenPaneId:Q,locked:te,setLocked:oe,popoutTabs:le,activeId:Z,setActiveId:k,activeType:y,setActiveType:a,dismissIntentId:h,setDismissIntentId:R,containerRef:g,setContainerRef:K,dragActivationDistance:c,snapThreshold:p,minSplitPercentage:f,maxSplitPercentage:m,enableDragToDismiss:b,dismissThreshold:P,onRemove:v,onDragStart:x,onDragEnd:M,onResizeStart:A,onResize:N,onResizeEnd:d,onDismissIntentChange:T,removePane:ie,addPane:Y,addTab:j,splitPane:Ne,updateSplitPercentage:ce,updateTabMetadata:ue,updatePaneLock:J,selectTab:me,mergeTab:z,moveTab:ae,removeTab:W,setTabPopout:F,findPaneById:Pe,findPaneContainingTab:nt,findTabById:kt}}function gt({cursor:e,resizerEl:t,onMove:n,onEnd:o}){document.body.classList.add("zeugma-resizing");let r=document.createElement("style");r.id="zeugma-global-cursor-style",r.textContent=`
1
+ 'use strict';var en=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 en__default=/*#__PURE__*/_interopDefault(en);function at(e,t){let n=e.documentElement,s=t.documentElement;Array.from(s.attributes).forEach(i=>{s.removeAttribute(i.name);}),Array.from(n.attributes).forEach(i=>{s.setAttribute(i.name,i.value);});let o=e.body,r=t.body;Array.from(r.attributes).forEach(i=>{r.removeAttribute(i.name);}),Array.from(o.attributes).forEach(i=>{r.setAttribute(i.name,i.value);}),Array.from(e.querySelectorAll('link[rel="stylesheet"], style')).forEach(i=>{try{let c=i.cloneNode(!0);if(i.tagName.toLowerCase()==="style"){let l=i;l.sheet&&l.sheet.cssRules&&l.sheet.cssRules.length>0&&(c.textContent=Array.from(l.sheet.cssRules).map(a=>a.cssText).join(`
2
+ `));}t.head.appendChild(c);}catch{try{t.head.appendChild(i.cloneNode(!0));}catch(c){console.error("Failed to copy style element:",c);}}});}function Ye(e){let t=document.getElementById(e);return t||(t=document.createElement("div"),t.id=e,t.style.display="none",document.body.appendChild(t)),t}function ct(e){let t=en.useRef(null);return en.useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},s=o=>{let r=o.touches[0]||o.changedTouches[0];r&&(t.current={x:r.clientX,y:r.clientY});};return window.addEventListener("pointermove",n,{passive:true}),window.addEventListener("touchmove",s,{passive:true}),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("touchmove",s);}},[e]),t}function ut(e){en.useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function dt(){let[e,t]=en.useState({}),n=en.useRef(true);en.useEffect(()=>(n.current=true,()=>{n.current=false;}),[]);let s=en.useCallback((o,r)=>{n.current&&t(i=>i[o]===r?i:{...i,[o]:r});},[]);return {portalTargets:e,registerPortalTarget:s}}function pt({tabId:e,isOpenedInNewWindow:t,onClose:n}){let s=en.useRef(null),[o,r]=en.useState(null);return en.useEffect(()=>{let i=null,c=null;if(t){if(!s.current||s.current.closed){let l=`zeugma-tab-${e.replace(/[^a-zA-Z0-9]/g,"_")}`,a=window.open("",l,"width=800,height=600,menubar=no,toolbar=no,location=no,status=no,resizable=yes");if(a){s.current=a;let d=e.includes("/")?e.split("/").pop():e;a.document.title=d,a.addEventListener("beforeunload",n),c=setTimeout(()=>{at(document,a.document),a.document.body.style.margin="0",a.document.body.style.padding="0";let g=a.document.getElementById("zeugma-popup-root");g||(g=a.document.createElement("div"),g.id="zeugma-popup-root",g.style.width="100%",g.style.height="100vh",a.document.body.appendChild(g)),r(g);},300),i=setInterval(()=>{a.closed&&n();},300);}else console.warn("Popup window blocked or failed to open."),n();}}else s.current&&!s.current.closed&&s.current.close(),s.current=null,r(null);return ()=>{i&&clearInterval(i),c&&clearTimeout(c),s.current&&s.current.removeEventListener("beforeunload",n);}},[t,e,n]),en.useEffect(()=>()=>{s.current&&!s.current.closed&&s.current.close();},[]),{popupWindow:s.current,popupContainer:o}}var _t=8,Ht=8,eo=4;function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function he(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=he(e.first,t),s=he(e.second,t);return n===null?s:s===null?n:{...e,first:n,second:s}}function fe(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let o=e.tabs.filter(c=>c!==t);if(o.length===0)return null;let r=e.activeTabId;e.activeTabId===t&&(r=o[0]);let i={...e.tabsMetadata};return delete i[t],{...e,tabs:o,activeTabId:r,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}let n=fe(e.first,t),s=fe(e.second,t);return n===null?s:s===null?n:{...e,first:n,second:s}}function we(e,t,n,s,o){if(e===null)return typeof o=="string"?{type:"pane",id:de(),tabs:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let r=typeof o=="string"?{type:"pane",id:de(),tabs:[o],activeTabId:o}:o,i=s==="left"||s==="top";return {type:"split",direction:n,first:i?r:e,second:i?e:r,splitPercentage:50}}return e}return {...e,first:we(e.first,t,n,s,o)||e.first,second:we(e.second,t,n,s,o)||e.second}}function ft(e,t,n){if(e===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0};function s(o,r){return o.type==="pane"?{type:"split",direction:r==="row"?"column":"row",splitPercentage:50,first:o,second:{type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0}}:{...o,second:s(o.second,o.direction)}}return s(e,null)}function Pe(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:Pe(e.first,t,n)||e.first,second:Pe(e.second,t,n)||e.second}:e}function Q(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:Q(e.first,t)??Q(e.second,t)}function X(e,t){return e===null?null:e.type==="pane"?e.tabs.includes(t)?e:null:X(e.first,t)??X(e.second,t)}function mt(e,t){let n=X(e,t);if(!n)return null;let s=n.tabs.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:s,metadata:n.tabsMetadata?.[t]}}function Ze(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let s=e.tabsMetadata||{},o=s[t],r=n(o),i={...s};return r===void 0?delete i[t]:i[t]=r,{...e,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}return {...e,first:Ze(e.first,t,n)??e.first,second:Ze(e.second,t,n)??e.second}}function ke(e,t,n,s){if(e===null)return null;if(e.type==="pane"){if(e.id===t){let o=[...e.tabs];o.includes(n)||o.push(n);let r=e.tabsMetadata;return s&&(r={...e.tabsMetadata,[n]:s}),{...e,tabs:o,activeTabId:n,tabsMetadata:r}}return e}return {...e,first:ke(e.first,t,n,s)||e.first,second:ke(e.second,t,n,s)||e.second}}function Oe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:s,...o}=e;return o}return {...e,locked:n}}return e}return {...e,first:Oe(e.first,t,n)??e.first,second:Oe(e.second,t,n)??e.second}}function De(e,t,n){return e===null?null:e.type==="pane"?e.id===t?e.activeTabId===n?e:{...e,activeTabId:n}:e:{...e,first:De(e.first,t,n)??e.first,second:De(e.second,t,n)??e.second}}function gt(e,t,n){if(e===null)return null;let o=X(e,t)?.tabsMetadata?.[t],r=fe(e,t);if(r===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function i(c){if(c.type==="pane"){if(c.id===n){let l=[...c.tabs];l.includes(t)||l.push(t);let a={...c.tabsMetadata};return o&&(a[t]=o),{...c,tabs:l,activeTabId:t,tabsMetadata:Object.keys(a).length>0?a:void 0}}return c}return {...c,first:i(c.first),second:i(c.second)}}return i(r)}function $e(e,t,n,s="before"){if(e===null)return null;let r=X(e,t)?.tabsMetadata?.[t],i=fe(e,t);if(i===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:r?{[t]:r}:void 0};function c(l){if(l.type==="pane"){if(l.tabs.includes(n)){let d=[...l.tabs].filter(x=>x!==t),g=d.indexOf(n);g<0&&(g=0),s==="after"&&(g+=1),d.splice(g,0,t);let P={...l.tabsMetadata};return r&&(P[t]=r),{...l,tabs:d,activeTabId:t,tabsMetadata:Object.keys(P).length>0?P:void 0}}return l}return {...l,first:c(l.first),second:c(l.second)}}return c(i)}function ge(e,t=0,n=0,s=100,o=100,r="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:s,height:o,node:e}],splitters:[]};let{direction:i,splitPercentage:c,first:l,second:a}=e,g={id:`splitter-${r}-${i}`,currentNode:e,direction:i,left:i==="row"?t+s*(c/100):t,top:i==="column"?n+o*(c/100):n,width:i==="row"?0:s,height:i==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:s,parentHeight:o},P={panes:[],splitters:[]},x={panes:[],splitters:[]};if(i==="row"){let v=s*(c/100);P=ge(l,t,n,v,o,`${r}-L`),x=ge(a,t+v,n,s-v,o,`${r}-R`);}else {let v=o*(c/100);P=ge(l,t,n,s,v,`${r}-T`),x=ge(a,t,n+v,s,o-v,`${r}-B`);}return {panes:[...P.panes,...x.panes],splitters:[g,...P.splitters,...x.splitters]}}function bt(e,t,n,s){if(!(t==="tab"&&n&&e.includes(n))||!s)return -1;let i=e.indexOf(n);return s==="before"?i:i+1}function Le(e){try{return JSON.stringify(e)}catch{return ""}}function Ft(e){let{initialLayout:t,layout:n,onChange:s,fullscreenPaneId:o,onFullscreenChange:r,locked:i=false,dragActivationDistance:c=8,snapThreshold:l=8,minSplitPercentage:a=5,maxSplitPercentage:d=95,enableDragToDismiss:g=false,dismissThreshold:P=60,onRemove:x,onDragStart:v,onDragEnd:S,onResizeStart:L,onResize:E,onResizeEnd:m,onDismissIntentChange:T}=e,[$,R]=en.useState(()=>n!==void 0?n:t??null),[A,V]=en.useState(()=>Le(n!==void 0?n:null)),[B,ee]=en.useState(o||null),[oe,te]=en.useState(i),[re,ie]=en.useState(null),[le,y]=en.useState({}),W=en.useCallback((f,D)=>{y(I=>I[f]===D?I:{...I,[f]:D});},[]),[z,M]=en.useState(null),[w,u]=en.useState(null),[Z,b]=en.useState(null),h=en.useRef(null),J=en.useCallback(f=>{h.current=f;},[]),k=en.useRef($);k.current=$;let _=en.useRef(s);_.current=s;let H=en.useRef(r);H.current=r;let j=en.useCallback(f=>{ee(f),H.current?.(f);},[]);if(en.useEffect(()=>{te(i);},[i]),en.useEffect(()=>{o!==void 0&&ee(o);},[o]),n!==void 0){let f=Le(n);f!==A&&(V(f),R(n));}let p=en.useCallback(f=>(...D)=>{let I=k.current,U=f(I,...D);Le(I)!==Le(U)&&(k.current=U,R(U),_.current?.(U));},[]),N=en.useCallback(p((f,D)=>typeof D=="function"?D(f):D),[p]),se=en.useCallback(p((f,D)=>he(f,D)),[p]),Y=en.useCallback(p((f,D,I)=>ft(f,D,I)),[p]),K=en.useCallback(p((f,D,I,U)=>{let pe=Q(f,D)??X(f,D);if(!pe)return f;let Ne=X(f,I),Ge=Ne&&Ne.id===pe.id?f:fe(f,I)??f;return ke(Ge,pe.id,I,U)}),[p]),Ee=en.useCallback(p((f,D,I,U,pe)=>{let Ne=Q(f,D)??X(f,D);if(!Ne)return f;let it=Q(f,pe)??X(f,pe)??{type:"pane",id:pe,tabs:[pe],activeTabId:pe},Ge=he(f,pe);return we(Ge,Ne.id,I,U,it)}),[p]),ce=en.useCallback(p((f,D,I)=>Pe(f,D,I)),[p]),ue=en.useCallback(p((f,D,I)=>Ze(f,D,I)),[p]),q=en.useCallback(p((f,D,I)=>{let U=Q(f,D)??X(f,D);return U?Oe(f,U.id,I):f}),[p]),me=en.useCallback(p((f,D,I)=>{let U=Q(f,D)??X(f,D);return U?De(f,U.id,I):f}),[p]),O=en.useCallback(p((f,D,I)=>{let U=Q(f,I)??X(f,I);return U?gt(f,D,U.id):f}),[p]),ae=en.useCallback(p((f,D,I,U)=>$e(f,D,I,U)),[p]),F=en.useCallback(p((f,D)=>fe(f,D)),[p]),Te=en.useCallback(f=>Q(k.current,f),[]),st=en.useCallback(f=>X(k.current,f),[]),zt=en.useCallback(f=>mt(k.current,f),[]);return {layout:$,setLayout:N,layoutBeforeDrag:re,setLayoutBeforeDrag:ie,fullscreenPaneId:B,setFullscreenPaneId:j,locked:oe,setLocked:te,popoutTabs:le,activeId:z,setActiveId:M,activeType:w,setActiveType:u,dismissIntentId:Z,setDismissIntentId:b,containerRef:h,setContainerRef:J,dragActivationDistance:c,snapThreshold:l,minSplitPercentage:a,maxSplitPercentage:d,enableDragToDismiss:g,dismissThreshold:P,onRemove:x,onDragStart:v,onDragEnd:S,onResizeStart:L,onResize:E,onResizeEnd:m,onDismissIntentChange:T,removePane:se,addPane:Y,addTab:K,splitPane:Ee,updateSplitPercentage:ce,updateTabMetadata:ue,updatePaneLock:q,selectTab:me,mergeTab:O,moveTab:ae,removeTab:F,setTabPopout:W,findPaneById:Te,findPaneContainingTab:st,findTabById:zt}}function vt({cursor:e,resizerEl:t,onMove:n,onEnd:s}){document.body.classList.add("zeugma-resizing");let o=document.createElement("style");o.id="zeugma-global-cursor-style",o.textContent=`
2
3
  * {
3
4
  cursor: ${e} !important;
4
5
  user-select: none !important;
5
6
  }
6
- `,document.head.appendChild(r),t.setAttribute("data-resizing","true");let s=c=>{n(c);},i=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let c=document.getElementById("zeugma-global-cursor-style");c&&c.remove(),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",i),o();};document.addEventListener("pointermove",s),document.addEventListener("pointerup",i);}var qe=Kt.createContext(void 0),Ge=Kt.createContext(void 0),He=Kt.createContext(void 0),Ke=Kt.createContext(void 0),ne=()=>{let e=Kt.useContext(qe);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},we=()=>{let e=Kt.useContext(Ge);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Oe=()=>{let e=Kt.useContext(Ke);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};var Ot=()=>{let e=ne(),t=we();return {...e,...t}};var Fe=class extends core.PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Ve=class extends core.TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function We(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 ht(e){let{layout:t,setLayout:n,layoutBeforeDrag:o,setLayoutBeforeDrag:r,activeId:s,setActiveId:i,setActiveType:c,dismissIntentId:p,setDismissIntentId:f,setOverTabId:m,setOverTabPosition:b,containerRef:P,dragActivationDistance:v,enableDragToDismiss:x,dismissThreshold:M,onRemove:A,onDragStart:N,onDragEnd:d,onDismissIntentChange:T,removeTab:E}=e,D=Kt.useRef(null),H=it(s),[q,G]=Kt.useState(false);at(q);let X=core.useSensors(core.useSensor(Fe,{activationConstraint:{distance:v}}),core.useSensor(Ve,{activationConstraint:{delay:250,tolerance:5}})),te=Kt.useCallback(w=>{let Z=w.active.id.toString().startsWith("tab-header-"),k=core.pointerWithin(w),y=Z?k:k.filter(a=>!a.id.toString().startsWith("tab-drop-"));if(y.length>0)return [...y].sort((h,R)=>{let g=h.id.toString(),K=R.id.toString();if(Z){let V=g.startsWith("tab-drop-"),Q=K.startsWith("tab-drop-");if(V&&!Q)return -1;if(!V&&Q)return 1}let $=g.startsWith("drop-root-"),O=K.startsWith("drop-root-");return $&&!O?-1:!$&&O?1:0});if(Z){let a=w.droppableContainers.filter(h=>h.id.toString().startsWith("tab-drop-"));return core.closestCenter({...w,droppableContainers:a})}return []},[]);return {sensors:X,collisionDetection:te,onDragStart:w=>{let F=w.active.id.toString(),Z=F.startsWith("tab-header-"),k=Z?F.substring(11):F;i(k),c(Z?"tab":"pane"),m(null),b(null);let y=w.activatorEvent;H.current=We(y),x&&P.current?D.current=P.current.getBoundingClientRect():D.current=null;let a=t;if(Z){let h=U(t,k);h&&(a=Re(t,h.id,k)||t);}r(a),Z&&a!==t&&n(a),N&&N(k);},onDragMove:w=>{let{over:F}=w,Z=F?.id.toString()||"",k=Z.startsWith("drop-locked-");G(l=>l===k?l:k);let y=w.active.id.toString(),a=y.startsWith("tab-header-"),h=a?y.substring(11):y,R=Z.match(/^tab-drop-(.+)$/);if(R&&F&&a){let[,l]=R;if(h!==l){let S="before",I=F.rect,ie=w.activatorEvent,Y=null;if(H.current)Y=H.current.x;else {let j=We(ie);j&&(Y=j.x+w.delta.x);}if(Y!==null){let j=I.left+I.width/2;Y>j&&(S="after");}m(j=>j===l?j:l),b(j=>j===S?j:S);}else m(S=>S===null?S:null),b(S=>S===null?S:null);}else m(l=>l===null?l:null),b(l=>l===null?l:null);if(!x)return;let g=D.current;if(!g){p!==null&&(f(null),T?.(null));return}let K=w.activatorEvent,$=null,O=null;if(H.current)$=H.current.x,O=H.current.y;else {let l=We(K);l&&($=l.x+w.delta.x,O=l.y+w.delta.y);}let V=0;if($!==null&&O!==null){let l=0,S=0;$<g.left?l=g.left-$:$>g.right&&(l=$-g.right),O<g.top?S=g.top-O:O>g.bottom&&(S=O-g.bottom),V=Math.sqrt(l*l+S*S);}else {let l=w.active.rect.current.translated;if(l){let S=l.left+l.width/2,I=l.top+l.height/2,ie=0,Y=0;S<g.left?ie=g.left-S:S>g.right&&(ie=S-g.right),I<g.top?Y=g.top-I:I>g.bottom&&(Y=I-g.bottom),V=Math.sqrt(ie*ie+Y*Y);}}V>M?p!==h&&(f(h),T?.(h)):p!==null&&(f(null),T?.(null));},onDragEnd:w=>{i(null),c(null),G(false),m(null),b(null);let{active:F,over:Z}=w,k=F.id.toString(),y=k.startsWith("tab-header-"),a=y?k.substring(11):k,h=x&&p===a;f(null),T?.(null),D.current=null;let R=o||t;if(r(null),h){A?A(a):E(a),d&&d(a,null,null);return}if(!Z){n(R),d&&d(a,null,null);return}let g=Z.id.toString();if(g.startsWith("drop-locked-")){n(R),d&&d(a,null,null);return}let K=g.match(/^tab-drop-(.+)$/);if(K){if(!y){n(R),d&&d(a,null,null);return}let[,ce]=K;if(a!==ce){let ue="before",J=Z.rect,me=w.activatorEvent,z=null;if(H.current)z=H.current.x;else {let W=We(me);W&&(z=W.x+w.delta.x);}if(z!==null){let W=J.left+J.width/2;z>W&&(ue="after");}let ae=$e(R,a,ce,ue);n(ae),d&&d(a,ce,{type:"move",position:"center"});}else n(R),d&&d(a,null,null);return}let $=g.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if($){let[,ce,ue]=$,J=ue;J==="start"&&(J="left"),J==="end"&&(J="right");let me=y?fe(R,a):he(R,a),z;if(y){let W=U(R,a)?.tabsMetadata?.[a];z={type:"pane",id:de(),tabs:[a],activeTabId:a,tabsMetadata:W?{[a]:W}:void 0};}else z=ee(R,a)??{type:"pane",id:de(),tabs:[a],activeTabId:a};if(me===null)n(z);else {let ae=J==="left"||J==="right",W=J==="left"||J==="top",Pe=50;ce==="1/4"?Pe=W?25:75:ce==="1/3"&&(Pe=W?100/3:200/3),n({type:"split",direction:ae?"row":"column",first:W?z:me,second:W?me:z,splitPercentage:Pe});}d&&d(a,"root",{type:"split",direction:J==="left"||J==="right"?"row":"column",position:J});return}let O=g.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!O){n(R),d&&d(a,null,null);return}let[,V,Q]=O,l=y?U(R,a):ee(R,a),S=l&&l.id===Q,I=l&&l.tabs.length===1;if(a===Q||S&&I){n(R),d&&d(a,null,null);return}let ie=V==="left"||V==="right"?"row":"column",Y;if(y){let ue=U(R,a)?.tabsMetadata?.[a];Y={type:"pane",id:de(),tabs:[a],activeTabId:a,tabsMetadata:ue?{[a]:ue}:void 0};}else Y=ee(R,a)??{type:"pane",id:de(),tabs:[a],activeTabId:a};let j=y?fe(R,a):he(R,a),Ne=Ce(j,Q,ie,V,Y);n(Ne),d&&d(a,Q,{type:"split",direction:ie,position:V});},onDragCancel:()=>{i(null),c(null),G(false),m(null),b(null),f(null),T?.(null),D.current=null,o!==null&&(n(o),r(null));}}}var vt=({activeId:e,render:t,className:n})=>{let o=Kt.useRef(null);return Kt.useEffect(()=>{let r=s=>{o.current&&(o.current.style.transform=`translate(${s.clientX+12}px, ${s.clientY+12}px)`);};return document.addEventListener("pointermove",r),()=>document.removeEventListener("pointermove",r)},[]),jsxRuntime.jsx("div",{ref:o,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var Pt=Kt__default.default.memo(({tabId:e,target:t,renderWidget:n})=>{let[o,r]=Kt.useState(false),s=Kt.useRef(null),{popoutTabs:i}=ne(),{setTabPopout:c}=we(),p=!!i[e];Kt.useEffect(()=>{r(true);},[]);let f=Kt.useCallback(()=>{s.current&&(document.adoptNode(s.current),Xe("zeugma-hidden-portal-container").appendChild(s.current)),c(e,false);},[e,c]),{popupWindow:m,popupContainer:b}=ct({tabId:e,isOpenedInNewWindow:p,onClose:f});if(Kt.useEffect(()=>{if(!o||!s.current)return;let v=s.current;p?b&&m&&(m.document.adoptNode(v),b.appendChild(v)):(document.adoptNode(v),t?t.appendChild(v):Xe("zeugma-hidden-portal-container").appendChild(v));},[t,o,p,b,m]),Kt.useEffect(()=>()=>{s.current&&s.current.remove();},[]),!o)return null;s.current||(s.current=document.createElement("div"),s.current.className=`zeugma-portal-wrapper-${e}`,s.current.style.width="100%",s.current.style.height="100%");let P=s.current;return !P||!n?null:reactDom.createPortal(n(e),P)});var on=e=>{let t=e,{renderPane:n,renderWidget:o,renderDragOverlay:r,classNames:s={},children:i,layout:c,setLayout:p,fullscreenPaneId:f,setFullscreenPaneId:m,locked:b,setLocked:P,popoutTabs:v,findPaneById:x,findPaneContainingTab:M,findTabById:A,activeId:N,activeType:d,dismissIntentId:T,setContainerRef:E,layoutBeforeDrag:D,snapThreshold:H,minSplitPercentage:q,maxSplitPercentage:G,onRemove:X,onResizeStart:te,onResize:oe,onResizeEnd:re,removePane:se,addPane:le,addTab:w,updateTabMetadata:F,updatePaneLock:Z,selectTab:k,mergeTab:y,removeTab:a,splitPane:h,updateSplitPercentage:R,moveTab:g,setTabPopout:K}=t,{portalTargets:$,registerPortalTarget:O}=lt(),[V,Q]=Kt.useState(null),[l,S]=Kt.useState(null),I=ht({...t,setOverTabId:Q,setOverTabPosition:S}),ie=Kt.useCallback(z=>n(z),[n]),Y=Kt.useMemo(()=>s,[s.dashboard,s.dashboardDismissActive,s.pane,s.paneLocked,s.dropPreview,s.dragOverlay,s.resizer,s.dismissPreview,s.dashboardLocked,s.lockedPreview,s.tabDropPreview,s.tabSeparator]),j=Kt.useCallback((z,ae)=>{re&&re(z,ae);},[re]),Ne=Kt.useMemo(()=>({layout:c,setLayout:p,renderPane:ie,activeId:N,activeType:d,dismissIntentId:T,setContainerRef:E,fullscreenPaneId:f,classNames:Y,onRemove:X,onFullscreenChange:m,snapThreshold:H,onResizeStart:te,onResize:oe,onResizeEnd:j,minSplitPercentage:q,maxSplitPercentage:G,locked:b,setLocked:P,popoutTabs:v,findPaneById:x,findPaneContainingTab:M,findTabById:A}),[c,N,d,T,E,f,Y,X,m,H,te,oe,q,G,p,ie,j,b,P,v,x,M,A]),ce=Kt.useMemo(()=>({overTabId:V,overTabPosition:l}),[V,l]),ue=Kt.useMemo(()=>({removePane:se,addPane:le,addTab:w,updateTabMetadata:F,updatePaneLock:Z,selectTab:k,mergeTab:y,removeTab:a,setFullscreenPaneId:m,setLocked:P,splitPane:h,updateSplitPercentage:R,moveTab:g,setTabPopout:K}),[se,le,w,F,Z,k,y,a,m,P,h,R,g,K]),J=Kt.useMemo(()=>{let z=new Set;function ae(W){W&&(W.type==="pane"?W.tabs.forEach(Pe=>{z.add(Pe);}):(ae(W.first),ae(W.second)));}return ae(c),D&&ae(D),Array.from(z).sort()},[c,N,D]),me=Kt.useMemo(()=>({registerPortalTarget:O}),[O]);return jsxRuntime.jsx(Ge.Provider,{value:ue,children:jsxRuntime.jsx(qe.Provider,{value:Ne,children:jsxRuntime.jsx(Ke.Provider,{value:ce,children:jsxRuntime.jsxs(He.Provider,{value:me,children:[jsxRuntime.jsx(core.DndContext,{id:"zeugma-dnd-context",...I,children:i}),N&&d&&r&&jsxRuntime.jsx(vt,{activeId:N,render:z=>r(z,d),className:`${s.dragOverlay||""} ${N===T&&s.dismissPreview||""}`.trim()}),jsxRuntime.jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:J.map(z=>jsxRuntime.jsx(Pt,{tabId:z,target:$[z]||null,renderWidget:o},z))})]})})})})};var an={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"}}},ln={top:{"1/4":{top:0,left:0,width:"100%",height:"25%"},"1/3":{top:0,left:0,width:"100%",height:"33.3333%"}},bottom:{"1/4":{bottom:0,left:0,width:"100%",height:"25%"},"1/3":{bottom:0,left:0,width:"100%",height:"33.3333%"}},left:{"1/4":{left:0,top:0,width:"25%",height:"100%"},"1/3":{left:0,top:0,width:"33.3333%",height:"100%"}},right:{"1/4":{right:0,top:0,width:"25%",height:"100%"},"1/3":{right:0,top:0,width:"33.3333%",height:"100%"}}},cn=({id:e,fraction:t,edge:n,activeClassName:o})=>{let{setNodeRef:r,isOver:s}=core.useDroppable({id:e}),i={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...ln[n][t]};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:r,style:an[n][t]}),s&&jsxRuntime.jsx("div",{className:o,style:i})]})},yt=({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/3-top",fraction:"1/3",edge:"top"},{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(cn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});function je({containerRef:e,isRow:t,direction:n,splitPercentage:o,resizerSize:r,snapThreshold:s,layout:i,currentNode:c,onLayoutChange:p,onResizeStart:f,onResizeEnd:m,parentLeft:b,parentTop:P,parentWidth:v,parentHeight:x}){let{onResizeStart:M,onResize:A,onResizeEnd:N,minSplitPercentage:d=5,maxSplitPercentage:T=95,locked:E=false}=ne();return Kt.useCallback(D=>{if(E)return;D.preventDefault();let H=e.current;if(!H)return;f&&f(),M&&M(c);let q=H.getBoundingClientRect(),G=D.clientX,X=D.clientY,te=o,oe=D.currentTarget,re=q.left+q.width*(b/100),se=q.top+q.height*(P/100),le=q.width*(v/100),w=q.height*(x/100),Z=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(y=>y!==oe&&y.getAttribute("data-direction")===n).map(y=>{let a=y.getBoundingClientRect();return t?a.left+a.width/2:a.top+a.height/2}),k=te;gt({cursor:t?"col-resize":"row-resize",resizerEl:oe,onMove:y=>{let a=t?(y.clientX-G)/le*100:(y.clientY-X)/w*100,h=te+a,R=t?re+(le-r)*(h/100)+r/2:se+(w-r)*(h/100)+r/2,g=1/0,K=null;for(let Q of Z){let l=Math.abs(R-Q);l<s&&l<g&&(g=l,K=Q);}let $=h;K!==null&&($=t?(K-r/2-re)/(le-r)*100:(K-r/2-se)/(w-r)*100);let O=Math.max(d,Math.min(T,$));k=O;let V=Te(i,c,O);if(V){let{panes:Q,splitters:l}=ge(V),S=e.current;if(S){for(let I of Q)S.style.setProperty(`--pane-left-${I.paneId}`,`${I.left}%`),S.style.setProperty(`--pane-top-${I.paneId}`,`${I.top}%`),S.style.setProperty(`--pane-width-${I.paneId}`,`${I.width}%`),S.style.setProperty(`--pane-height-${I.paneId}`,`${I.height}%`);for(let I of l)S.style.setProperty(`--splitter-pos-${I.id}`,`${I.direction==="row"?I.left:I.top}%`);}}A&&A(c,O);},onEnd:()=>{let y=Te(i,c,k),a=e.current;if(a){let{panes:h,splitters:R}=ge(y);for(let g of h)a.style.removeProperty(`--pane-left-${g.paneId}`),a.style.removeProperty(`--pane-top-${g.paneId}`),a.style.removeProperty(`--pane-width-${g.paneId}`),a.style.removeProperty(`--pane-height-${g.paneId}`);for(let g of R)a.style.removeProperty(`--splitter-pos-${g.id}`);}p(y),m&&m(),N&&N(c,k);}});},[e,t,n,o,r,s,i,c,p,f,m,M,A,N,d,T,b,P,v,x])}var hn=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:o})=>{let{layout:r,setLayout:s,classNames:i,locked:c}=ne(),[p,f]=Kt.useState(false),{currentNode:m,direction:b,left:P,top:v,width:x,height:M,parentLeft:A,parentTop:N,parentWidth:d,parentHeight:T}=e,E=b==="row",D=je({containerRef:o,isRow:E,direction:b,splitPercentage:m.splitPercentage,resizerSize:t,snapThreshold:n,layout:r,currentNode:m,onLayoutChange:s,onResizeStart:()=>f(true),onResizeEnd:()=>f(false),parentLeft:A,parentTop:N,parentWidth:d,parentHeight:T}),H=E?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${P}%) - ${t/2}px)`,top:`calc(${v}% + ${t/2}px)`,width:`${t}px`,height:`calc(${M}% - ${t}px)`,cursor:c?"default":"col-resize",pointerEvents:c?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${P}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${v}%) - ${t/2}px)`,width:`calc(${x}% - ${t}px)`,height:`${t}px`,cursor:c?"default":"row-resize",pointerEvents:c?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsxRuntime.jsx("div",{className:i.resizer||"","data-direction":b,"data-resizing":p||void 0,style:H,onPointerDown:D,role:"separator","aria-valuenow":m.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},vn=Kt__default.default.memo(({paneId:e,renderPane:t})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),Pn=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:o,renderPane:r,activeId:s,dismissIntentId:i,setContainerRef:c,fullscreenPaneId:p,snapThreshold:f,locked:m,classNames:b}=ne(),P=n!==void 0?n:f??8,v=e!==void 0?e:o,x=Kt.useRef(null),{panes:M,splitters:A}=Kt.useMemo(()=>v?ge(v):{panes:[],splitters:[]},[v]);if(!v)return null;let N=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[M.map(d=>{let T=p===d.paneId;return jsxRuntime.jsx("div",{style:{position:"absolute",left:T?"0%":`var(--pane-left-${d.paneId}, ${d.left}%)`,top:T?"0%":`var(--pane-top-${d.paneId}, ${d.top}%)`,width:T?"100%":`var(--pane-width-${d.paneId}, ${d.width}%)`,height:T?"100%":`var(--pane-height-${d.paneId}, ${d.height}%)`,overflow:"hidden",zIndex:T?20:1,display:p&&!T?"none":"block",padding:T?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsxRuntime.jsx(vn,{paneId:d.paneId,renderPane:r})},d.paneId)}),!p&&A.map(d=>jsxRuntime.jsx(hn,{splitter:d,resizerSize:t,snapThreshold:P,containerRef:x},d.id))]});if(e===void 0){let d=s!==null&&s===i,T=D=>{c(D),x.current=D;},E=`${b.dashboard||""} ${d&&b.dashboardDismissActive||""} ${m&&b.dashboardLocked||""}`.trim();return jsxRuntime.jsxs("div",{ref:T,className:E,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[N(),s!==null&&!m&&jsxRuntime.jsx(yt,{activeClassName:b.dropPreview})]})}return jsxRuntime.jsx("div",{ref:x,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:N()})};var Ue=Kt.createContext(null);var Sn={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"}},Nn={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"}},wt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:o,isOver:r}=core.useDroppable({id:e});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:o,style:Sn[t]}),r&&jsxRuntime.jsx("div",{className:n,style:Nn[t]})]})},En=({id:e,children:t,style:n,locked:o=false})=>{let r=Kt.useRef(null),{layout:s,activeId:i,classNames:c,fullscreenPaneId:p,onFullscreenChange:f,locked:m}=ne(),{removePane:b,updateTabMetadata:P,selectTab:v,removeTab:x}=we(),M=Kt.useContext(He);if(!M)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:A}=M,N=Kt.useMemo(()=>ee(s,e),[s,e]),d=N?.id??e,T=N?.tabs??[e],E=N?.activeTabId??e,D=N?.tabsMetadata,H=D?.[e],q=N?.locked??false,G=o||q,X=m||G,te=m||G,oe=i!==null&&i!==e&&(!T.includes(i)||T.length>1)&&!te,{attributes:re,listeners:se,setNodeRef:le}=core.useDraggable({id:e,disabled:X}),w=i!==null&&T.includes(i),F=p===e,Z=Kt.useCallback(()=>jsxRuntime.jsx("div",{ref:r,id:`zeugma-tab-target-${E}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[E]);Kt.useEffect(()=>{let h=r.current;return A(E,h),()=>{A(E,null);}},[E,A]);let k=Kt.useMemo(()=>({isDragging:w,isFullscreen:F,toggleFullscreen:()=>f?.(F?null:e),remove:()=>{F&&f?.(null),b(d);},metadata:H,updateMetadata:h=>{P(e,h);},locked:X,tabs:T,activeTabId:E,selectTab:h=>v(d,h),removeTab:h=>{F&&h===E&&f?.(null),x(h);},tabsMetadata:D,updateTabMetadata:(h,R)=>{P(h,R);},renderActiveTab:Z}),[w,F,f,e,x,H,P,X,T,E,v,d,D,Z]),y=Kt.useMemo(()=>X?{disabled:true}:{...se,...re},[se,re,X]),a=`${c.pane||""} ${G&&c.paneLocked||""}`.trim();return jsxRuntime.jsx(Ue.Provider,{value:y,children:jsxRuntime.jsxs("div",{ref:le,className:a,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(k),oe&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(h=>jsxRuntime.jsx(wt,{id:`drop-${h}-${e}`,position:h,activeClassName:c.dropPreview},h))}),i!==null&&i!==e&&te&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsxRuntime.jsx(wt,{id:`drop-locked-${e}`,position:"full",activeClassName:c.lockedPreview||""})})]})})};var Mn=({children:e,className:t,style:n})=>{let o=Kt.useContext(Ue);if(!o)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:r,...s}=o;return jsxRuntime.jsx("div",{className:t,style:{cursor:r?"default":"grab",userSelect:r?"auto":"none",touchAction:r?"auto":"none",...n},...r?{}:s,children:e})};var It=Kt.createContext(void 0),Hn=()=>{let e=Kt.useContext(It);if(!e)throw new Error("useTabContext must be used within a Tab component");return e},Lt=({id:e,locked:t=false,children:n,className:o,style:r})=>{let{locked:s,classNames:i={},activeType:c}=ne(),{overTabId:p}=Oe(),f=Kt.useContext(tt),m=t||s||(f?.locked??false),{attributes:b,listeners:P,setNodeRef:v,isDragging:x}=core.useDraggable({id:`tab-header-${e}`,disabled:m}),{setNodeRef:M,isOver:A}=core.useDroppable({id:`tab-drop-${e}`,disabled:m||c==="pane"}),N=se=>{v(se),M(se);},d=A&&p===e,T=f?.tabs||[],E=T.indexOf(e),D=f?.activeTabId,q=E>0&&e!==D&&T[E-1]!==D?jsxRuntime.jsx("div",{className:i.tabSeparator}):null,G=f?f.activeTabId===e:false,X=f?.tabsMetadata?.[e],te=Kt.useCallback(()=>{f?.selectTab(e);},[f,e]),oe=Kt.useCallback(()=>{f?.removeTab(e);},[f,e]),re=Kt.useMemo(()=>({tabId:e,isActive:G,isDragging:x,isOver:d,metadata:X,locked:m,selectTab:te,removeTab:oe}),[e,G,x,d,X,m,te,oe]);return jsxRuntime.jsx(It.Provider,{value:re,children:jsxRuntime.jsxs("div",{ref:N,className:o,style:{display:"inline-flex",position:"relative",cursor:m?"default":"grab",...r},...m?{}:P,...m?{}:b,children:[q,n({isDragging:x,isOver:d})]})})};var tt=Kt.createContext(void 0);var Mt=(e,t)=>typeof e=="function"?e(t):e,Bn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:o,selectTab:r,removeTab:s,renderTab:i,classNames:c,styles:p})=>{let{classNames:f={},activeType:m}=ne(),{overTabId:b,overTabPosition:P}=Oe(),v=Kt.useMemo(()=>({tabs:e,activeTabId:t,locked:n,tabsMetadata:o,selectTab:r,removeTab:s}),[e,t,n,o,r,s]),x=ft(e,m,b,P);return jsxRuntime.jsx(tt.Provider,{value:v,children:jsxRuntime.jsxs("div",{className:c?.container,style:{display:"flex",alignItems:"center",height:"100%",...p?.container},children:[e.map((M,A)=>{let N=o?.[M],d=Mt(c?.tab,M),T=Mt(p?.tab,M),E=A===x;return jsxRuntime.jsxs(Kt__default.default.Fragment,{children:[E&&f.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:f.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:A===0?"none":"translateX(-50%)"}})}),jsxRuntime.jsx(Lt,{id:M,locked:n,className:d,style:T,children:({isDragging:D,isOver:H})=>i({tabId:M,activeTabId:t,isDragging:D,isOver:H,metadata:N,selectTab:r,removeTab:s})})]},M)}),x===e.length&&f.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:f.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};exports.DEFAULT_DRAG_ACTIVATION_DISTANCE=At;exports.DEFAULT_RESIZER_SIZE=Jn;exports.DEFAULT_SNAP_THRESHOLD=zt;exports.DragHandle=Mn;exports.Pane=En;exports.PaneTree=Pn;exports.PortalRegistryContext=He;exports.Tabs=Bn;exports.Zeugma=on;exports.ZeugmaActionsContext=Ge;exports.ZeugmaDragContext=Ke;exports.ZeugmaStateContext=qe;exports.copyStyles=rt;exports.createDragSession=gt;exports.getOrCreateHiddenContainer=Xe;exports.safeJsonStringify=Le;exports.useResizer=je;exports.useTabContext=Hn;exports.useZeugma=Ht;exports.useZeugmaActions=we;exports.useZeugmaContext=Ot;exports.useZeugmaDrag=Oe;exports.useZeugmaState=ne;//# sourceMappingURL=index.cjs.map
7
+ `,document.head.appendChild(o),t.setAttribute("data-resizing","true");let r=c=>{n(c);},i=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let c=document.getElementById("zeugma-global-cursor-style");c&&c.remove(),document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),s();};document.addEventListener("pointermove",r),document.addEventListener("pointerup",i);}var Je=en.createContext(void 0),je=en.createContext(void 0),_e=en.createContext(void 0),Ke=en.createContext(void 0),ne=()=>{let e=en.useContext(Je);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},Ce=()=>{let e=en.useContext(je);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},He=()=>{let e=en.useContext(Ke);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e},Qe=en.createContext({window:typeof window<"u"?window:null,document:typeof document<"u"?document:null}),po=()=>en.useContext(Qe);var Vt=()=>{let e=ne(),t=Ce();return {...e,...t}};var Fe=class extends core.PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Ve=class extends core.TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function Be(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 Pt(e){let{layout:t,setLayout:n,layoutBeforeDrag:s,setLayoutBeforeDrag:o,activeId:r,setActiveId:i,setActiveType:c,dismissIntentId:l,setDismissIntentId:a,setOverTabId:d,setOverTabPosition:g,containerRef:P,dragActivationDistance:x,enableDragToDismiss:v,dismissThreshold:S,onRemove:L,onDragStart:E,onDragEnd:m,onDismissIntentChange:T,removeTab:$}=e,R=en.useRef(null),A=ct(r),[V,B]=en.useState(false);ut(V);let ee=core.useSensors(core.useSensor(Fe,{activationConstraint:{distance:x}}),core.useSensor(Ve,{activationConstraint:{delay:250,tolerance:5}})),oe=en.useCallback(y=>{let z=y.active.id.toString().startsWith("tab-header-"),M=core.pointerWithin(y),w=z?M:M.filter(u=>!u.id.toString().startsWith("tab-drop-"));if(w.length>0)return [...w].sort((Z,b)=>{let h=Z.id.toString(),J=b.id.toString();if(z){let H=h.startsWith("tab-drop-"),j=J.startsWith("tab-drop-");if(H&&!j)return -1;if(!H&&j)return 1}let k=h.startsWith("drop-root-"),_=J.startsWith("drop-root-");return k&&!_?-1:!k&&_?1:0});if(z){let u=y.droppableContainers.filter(Z=>Z.id.toString().startsWith("tab-drop-"));return core.closestCenter({...y,droppableContainers:u})}return []},[]);return {sensors:ee,collisionDetection:oe,onDragStart:y=>{let W=y.active.id.toString(),z=W.startsWith("tab-header-"),M=z?W.substring(11):W;i(M),c(z?"tab":"pane"),d(null),g(null);let w=y.activatorEvent;A.current=Be(w),v&&P.current?R.current=P.current.getBoundingClientRect():R.current=null;let u=t;if(z){let Z=X(t,M);Z&&(u=De(t,Z.id,M)||t);}o(u),z&&u!==t&&n(u),E&&E(M);},onDragMove:y=>{let{over:W}=y,z=W?.id.toString()||"",M=z.startsWith("drop-locked-");B(p=>p===M?p:M);let w=y.active.id.toString(),u=w.startsWith("tab-header-"),Z=u?w.substring(11):w,b=z.match(/^tab-drop-(.+)$/);if(b&&W&&u){let[,p]=b;if(Z!==p){let C="before",N=W.rect,se=y.activatorEvent,Y=null;if(A.current)Y=A.current.x;else {let K=Be(se);K&&(Y=K.x+y.delta.x);}if(Y!==null){let K=N.left+N.width/2;Y>K&&(C="after");}d(K=>K===p?K:p),g(K=>K===C?K:C);}else d(C=>C===null?C:null),g(C=>C===null?C:null);}else d(p=>p===null?p:null),g(p=>p===null?p:null);if(!v)return;let h=R.current;if(!h){l!==null&&(a(null),T?.(null));return}let J=y.activatorEvent,k=null,_=null;if(A.current)k=A.current.x,_=A.current.y;else {let p=Be(J);p&&(k=p.x+y.delta.x,_=p.y+y.delta.y);}let H=0;if(k!==null&&_!==null){let p=0,C=0;k<h.left?p=h.left-k:k>h.right&&(p=k-h.right),_<h.top?C=h.top-_:_>h.bottom&&(C=_-h.bottom),H=Math.sqrt(p*p+C*C);}else {let p=y.active.rect.current.translated;if(p){let C=p.left+p.width/2,N=p.top+p.height/2,se=0,Y=0;C<h.left?se=h.left-C:C>h.right&&(se=C-h.right),N<h.top?Y=h.top-N:N>h.bottom&&(Y=N-h.bottom),H=Math.sqrt(se*se+Y*Y);}}H>S?l!==Z&&(a(Z),T?.(Z)):l!==null&&(a(null),T?.(null));},onDragEnd:y=>{i(null),c(null),B(false),d(null),g(null);let{active:W,over:z}=y,M=W.id.toString(),w=M.startsWith("tab-header-"),u=w?M.substring(11):M,Z=v&&l===u;a(null),T?.(null),R.current=null;let b=s||t;if(o(null),Z){L?L(u):$(u),m&&m(u,null,null);return}if(!z){n(b),m&&m(u,null,null);return}let h=z.id.toString();if(h.startsWith("drop-locked-")){n(b),m&&m(u,null,null);return}let J=h.match(/^tab-drop-(.+)$/);if(J){if(!w){n(b),m&&m(u,null,null);return}let[,ce]=J;if(u!==ce){let ue="before",q=z.rect,me=y.activatorEvent,O=null;if(A.current)O=A.current.x;else {let F=Be(me);F&&(O=F.x+y.delta.x);}if(O!==null){let F=q.left+q.width/2;O>F&&(ue="after");}let ae=$e(b,u,ce,ue);n(ae),m&&m(u,ce,{type:"move",position:"center"});}else n(b),m&&m(u,null,null);return}let k=h.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(k){let[,ce,ue]=k,q=ue;q==="start"&&(q="left"),q==="end"&&(q="right");let me=w?fe(b,u):he(b,u),O;if(w){let F=X(b,u)?.tabsMetadata?.[u];O={type:"pane",id:de(),tabs:[u],activeTabId:u,tabsMetadata:F?{[u]:F}:void 0};}else O=Q(b,u)??{type:"pane",id:de(),tabs:[u],activeTabId:u};if(me===null)n(O);else {let ae=q==="left"||q==="right",F=q==="left"||q==="top",Te=50;ce==="1/4"?Te=F?25:75:ce==="1/3"&&(Te=F?100/3:200/3),n({type:"split",direction:ae?"row":"column",first:F?O:me,second:F?me:O,splitPercentage:Te});}m&&m(u,"root",{type:"split",direction:q==="left"||q==="right"?"row":"column",position:q});return}let _=h.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!_){n(b),m&&m(u,null,null);return}let[,H,j]=_,p=w?X(b,u):Q(b,u),C=p&&p.id===j,N=p&&p.tabs.length===1;if(u===j||C&&N){n(b),m&&m(u,null,null);return}let se=H==="left"||H==="right"?"row":"column",Y;if(w){let ue=X(b,u)?.tabsMetadata?.[u];Y={type:"pane",id:de(),tabs:[u],activeTabId:u,tabsMetadata:ue?{[u]:ue}:void 0};}else Y=Q(b,u)??{type:"pane",id:de(),tabs:[u],activeTabId:u};let K=w?fe(b,u):he(b,u),Ee=we(K,j,se,H,Y);n(Ee),m&&m(u,j,{type:"split",direction:se,position:H});},onDragCancel:()=>{i(null),c(null),B(false),d(null),g(null),a(null),T?.(null),R.current=null,s!==null&&(n(s),o(null));}}}var yt=({activeId:e,render:t,className:n})=>{let s=en.useRef(null);return en.useEffect(()=>{let o=r=>{s.current&&(s.current.style.transform=`translate(${r.clientX+12}px, ${r.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsxRuntime.jsx("div",{ref:s,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var We=globalThis;if(typeof window<"u"&&typeof Document<"u"){let e=Document.prototype,t=Node.prototype,n=()=>{if(We.__currentTabDocument)return We.__currentTabDocument;let l=window.event||(typeof event<"u"?event:null);if(l&&l.target){let a=l.target,d=a.ownerDocument||a.document;if(d&&d!==document)return d}return null},s=Object.getOwnPropertyDescriptor(e,"body");if(s&&s.get&&!s.get.__isZeugmaOverridden){let l=s.get,a=function(){let d=n();return d&&this===document?d.body:l.call(this)};a.__isZeugmaOverridden=true,Object.defineProperty(e,"body",{...s,get:a});}let o=Object.getOwnPropertyDescriptor(e,"documentElement");if(o&&o.get&&!o.get.__isZeugmaOverridden){let l=o.get,a=function(){let d=n();return d&&this===document?d.documentElement:l.call(this)};a.__isZeugmaOverridden=true,Object.defineProperty(e,"documentElement",{...o,get:a});}let r=e.createElement;if(r&&!r.__isZeugmaOverridden){let l=function(a,d){let g=n();return g&&this===document?r.call(g,a,d):r.call(this,a,d)};l.__isZeugmaOverridden=true,e.createElement=l;}let i=t.appendChild;if(i&&!i.__isZeugmaOverridden){let l=function(a){return a&&a.ownerDocument&&a.ownerDocument!==document&&(this===document.body||this===document.documentElement)?a.ownerDocument.body.appendChild(a):i.call(this,a)};l.__isZeugmaOverridden=true,t.appendChild=l;}let c=t.insertBefore;if(c&&!c.__isZeugmaOverridden){let l=function(a,d){return a&&a.ownerDocument&&a.ownerDocument!==document&&(this===document.body||this===document.documentElement)?a.ownerDocument.body.insertBefore(a,null):c.call(this,a,d)};l.__isZeugmaOverridden=true,t.insertBefore=l;}}var an=({doc:e,children:t})=>{e&&(We.__currentTabDocument=e);try{return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t})}finally{We.__currentTabDocument=null;}},xt=en__default.default.memo(({tabId:e,target:t,renderWidget:n})=>{let[s,o]=en.useState(false),r=en.useRef(null),{popoutTabs:i}=ne(),{setTabPopout:c}=Ce(),l=!!i[e];en.useEffect(()=>{o(true);},[]);let a=en.useCallback(()=>{r.current&&(document.adoptNode(r.current),Ye("zeugma-hidden-portal-container").appendChild(r.current)),c(e,false);},[e,c]),{popupWindow:d,popupContainer:g}=pt({tabId:e,isOpenedInNewWindow:l,onClose:a}),P=en.useMemo(()=>l&&d?{window:d,document:d.document}:{window:typeof window<"u"?window:null,document:typeof document<"u"?document:null},[l,d]);if(en.useEffect(()=>{if(!s||!r.current)return;let v=r.current;l?g&&d&&(d.document.adoptNode(v),g.appendChild(v)):(document.adoptNode(v),t?t.appendChild(v):Ye("zeugma-hidden-portal-container").appendChild(v));},[t,s,l,g,d]),en.useEffect(()=>()=>{r.current&&r.current.remove();},[]),!s)return null;r.current||(r.current=document.createElement("div"),r.current.className=`zeugma-portal-wrapper-${e}`,r.current.style.width="100%",r.current.style.height="100%");let x=r.current;return !x||!n?null:reactDom.createPortal(jsxRuntime.jsx(Qe.Provider,{value:P,children:jsxRuntime.jsx(an,{doc:P.document,children:n(e)})}),x)});var un=e=>{let t=e,{renderPane:n,renderWidget:s,renderDragOverlay:o,classNames:r={},children:i,layout:c,setLayout:l,fullscreenPaneId:a,setFullscreenPaneId:d,locked:g,setLocked:P,popoutTabs:x,findPaneById:v,findPaneContainingTab:S,findTabById:L,activeId:E,activeType:m,dismissIntentId:T,setContainerRef:$,layoutBeforeDrag:R,snapThreshold:A,minSplitPercentage:V,maxSplitPercentage:B,onRemove:ee,onResizeStart:oe,onResize:te,onResizeEnd:re,removePane:ie,addPane:le,addTab:y,updateTabMetadata:W,updatePaneLock:z,selectTab:M,mergeTab:w,removeTab:u,splitPane:Z,updateSplitPercentage:b,moveTab:h,setTabPopout:J}=t,{portalTargets:k,registerPortalTarget:_}=dt(),[H,j]=en.useState(null),[p,C]=en.useState(null),N=Pt({...t,setOverTabId:j,setOverTabPosition:C}),se=en.useCallback(O=>n(O),[n]),Y=en.useMemo(()=>r,[r.dashboard,r.dashboardDismissActive,r.pane,r.paneLocked,r.dropPreview,r.dragOverlay,r.resizer,r.dismissPreview,r.dashboardLocked,r.lockedPreview,r.tabDropPreview,r.tabSeparator]),K=en.useCallback((O,ae)=>{re&&re(O,ae);},[re]),Ee=en.useMemo(()=>({layout:c,setLayout:l,renderPane:se,activeId:E,activeType:m,dismissIntentId:T,setContainerRef:$,fullscreenPaneId:a,classNames:Y,onRemove:ee,onFullscreenChange:d,snapThreshold:A,onResizeStart:oe,onResize:te,onResizeEnd:K,minSplitPercentage:V,maxSplitPercentage:B,locked:g,setLocked:P,popoutTabs:x,findPaneById:v,findPaneContainingTab:S,findTabById:L}),[c,E,m,T,$,a,Y,ee,d,A,oe,te,V,B,l,se,K,g,P,x,v,S,L]),ce=en.useMemo(()=>({overTabId:H,overTabPosition:p}),[H,p]),ue=en.useMemo(()=>({removePane:ie,addPane:le,addTab:y,updateTabMetadata:W,updatePaneLock:z,selectTab:M,mergeTab:w,removeTab:u,setFullscreenPaneId:d,setLocked:P,splitPane:Z,updateSplitPercentage:b,moveTab:h,setTabPopout:J}),[ie,le,y,W,z,M,w,u,d,P,Z,b,h,J]),q=en.useMemo(()=>{let O=new Set;function ae(F){F&&(F.type==="pane"?F.tabs.forEach(Te=>{O.add(Te);}):(ae(F.first),ae(F.second)));}return ae(c),R&&ae(R),Array.from(O).sort()},[c,E,R]),me=en.useMemo(()=>({registerPortalTarget:_}),[_]);return jsxRuntime.jsx(je.Provider,{value:ue,children:jsxRuntime.jsx(Je.Provider,{value:Ee,children:jsxRuntime.jsx(Ke.Provider,{value:ce,children:jsxRuntime.jsxs(_e.Provider,{value:me,children:[jsxRuntime.jsx(core.DndContext,{id:"zeugma-dnd-context",...N,children:i}),E&&m&&o&&jsxRuntime.jsx(yt,{activeId:E,render:O=>o(O,m),className:`${r.dragOverlay||""} ${E===T&&r.dismissPreview||""}`.trim()}),jsxRuntime.jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:q.map(O=>jsxRuntime.jsx(xt,{tabId:O,target:k[O]||null,renderWidget:s},O))})]})})})})};var fn={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"}}},mn={top:{"1/4":{top:0,left:0,width:"100%",height:"25%"},"1/3":{top:0,left:0,width:"100%",height:"33.3333%"}},bottom:{"1/4":{bottom:0,left:0,width:"100%",height:"25%"},"1/3":{bottom:0,left:0,width:"100%",height:"33.3333%"}},left:{"1/4":{left:0,top:0,width:"25%",height:"100%"},"1/3":{left:0,top:0,width:"33.3333%",height:"100%"}},right:{"1/4":{right:0,top:0,width:"25%",height:"100%"},"1/3":{right:0,top:0,width:"33.3333%",height:"100%"}}},gn=({id:e,fraction:t,edge:n,activeClassName:s})=>{let{setNodeRef:o,isOver:r}=core.useDroppable({id:e}),i={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...mn[n][t]};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:o,style:fn[n][t]}),r&&jsxRuntime.jsx("div",{className:s,style:i})]})},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/3-top",fraction:"1/3",edge:"top"},{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(gn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});function nt({containerRef:e,isRow:t,direction:n,splitPercentage:s,resizerSize:o,snapThreshold:r,layout:i,currentNode:c,onLayoutChange:l,onResizeStart:a,onResizeEnd:d,parentLeft:g,parentTop:P,parentWidth:x,parentHeight:v}){let{onResizeStart:S,onResize:L,onResizeEnd:E,minSplitPercentage:m=5,maxSplitPercentage:T=95,locked:$=false}=ne();return en.useCallback(R=>{if($)return;R.preventDefault();let A=e.current;if(!A)return;a&&a(),S&&S(c);let V=A.getBoundingClientRect(),B=R.clientX,ee=R.clientY,oe=s,te=R.currentTarget,re=V.left+V.width*(g/100),ie=V.top+V.height*(P/100),le=V.width*(x/100),y=V.height*(v/100),z=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(w=>w!==te&&w.getAttribute("data-direction")===n).map(w=>{let u=w.getBoundingClientRect();return t?u.left+u.width/2:u.top+u.height/2}),M=oe;vt({cursor:t?"col-resize":"row-resize",resizerEl:te,onMove:w=>{let u=t?(w.clientX-B)/le*100:(w.clientY-ee)/y*100,Z=oe+u,b=t?re+(le-o)*(Z/100)+o/2:ie+(y-o)*(Z/100)+o/2,h=1/0,J=null;for(let j of z){let p=Math.abs(b-j);p<r&&p<h&&(h=p,J=j);}let k=Z;J!==null&&(k=t?(J-o/2-re)/(le-o)*100:(J-o/2-ie)/(y-o)*100);let _=Math.max(m,Math.min(T,k));M=_;let H=Pe(i,c,_);if(H){let{panes:j,splitters:p}=ge(H),C=e.current;if(C){for(let N of j)C.style.setProperty(`--pane-left-${N.paneId}`,`${N.left}%`),C.style.setProperty(`--pane-top-${N.paneId}`,`${N.top}%`),C.style.setProperty(`--pane-width-${N.paneId}`,`${N.width}%`),C.style.setProperty(`--pane-height-${N.paneId}`,`${N.height}%`);for(let N of p)C.style.setProperty(`--splitter-pos-${N.id}`,`${N.direction==="row"?N.left:N.top}%`);}}L&&L(c,_);},onEnd:()=>{let w=Pe(i,c,M),u=e.current;if(u){let{panes:Z,splitters:b}=ge(w);for(let h of Z)u.style.removeProperty(`--pane-left-${h.paneId}`),u.style.removeProperty(`--pane-top-${h.paneId}`),u.style.removeProperty(`--pane-width-${h.paneId}`),u.style.removeProperty(`--pane-height-${h.paneId}`);for(let h of b)u.style.removeProperty(`--splitter-pos-${h.id}`);}l(w),d&&d(),E&&E(c,M);}});},[e,t,n,s,o,r,i,c,l,a,d,S,L,E,m,T,g,P,x,v])}var wn=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:s})=>{let{layout:o,setLayout:r,classNames:i,locked:c}=ne(),[l,a]=en.useState(false),{currentNode:d,direction:g,left:P,top:x,width:v,height:S,parentLeft:L,parentTop:E,parentWidth:m,parentHeight:T}=e,$=g==="row",R=nt({containerRef:s,isRow:$,direction:g,splitPercentage:d.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:d,onLayoutChange:r,onResizeStart:()=>a(true),onResizeEnd:()=>a(false),parentLeft:L,parentTop:E,parentWidth:m,parentHeight:T}),A=$?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${P}%) - ${t/2}px)`,top:`calc(${x}% + ${t/2}px)`,width:`${t}px`,height:`calc(${S}% - ${t}px)`,cursor:c?"default":"col-resize",pointerEvents:c?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${P}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${x}%) - ${t/2}px)`,width:`calc(${v}% - ${t}px)`,height:`${t}px`,cursor:c?"default":"row-resize",pointerEvents:c?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsxRuntime.jsx("div",{className:i.resizer||"","data-direction":g,"data-resizing":l||void 0,style:A,onPointerDown:R,role:"separator","aria-valuenow":d.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},Dn=en__default.default.memo(({paneId:e,renderPane:t})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),Cn=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:s,renderPane:o,activeId:r,dismissIntentId:i,setContainerRef:c,fullscreenPaneId:l,snapThreshold:a,locked:d,classNames:g}=ne(),P=n!==void 0?n:a??8,x=e!==void 0?e:s,v=en.useRef(null),{panes:S,splitters:L}=en.useMemo(()=>x?ge(x):{panes:[],splitters:[]},[x]);if(!x)return null;let E=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[S.map(m=>{let T=l===m.paneId;return jsxRuntime.jsx("div",{style:{position:"absolute",left:T?"0%":`var(--pane-left-${m.paneId}, ${m.left}%)`,top:T?"0%":`var(--pane-top-${m.paneId}, ${m.top}%)`,width:T?"100%":`var(--pane-width-${m.paneId}, ${m.width}%)`,height:T?"100%":`var(--pane-height-${m.paneId}, ${m.height}%)`,overflow:"hidden",zIndex:T?20:1,display:l&&!T?"none":"block",padding:T?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsxRuntime.jsx(Dn,{paneId:m.paneId,renderPane:o})},m.paneId)}),!l&&L.map(m=>jsxRuntime.jsx(wn,{splitter:m,resizerSize:t,snapThreshold:P,containerRef:v},m.id))]});if(e===void 0){let m=r!==null&&r===i,T=R=>{c(R),v.current=R;},$=`${g.dashboard||""} ${m&&g.dashboardDismissActive||""} ${d&&g.dashboardLocked||""}`.trim();return jsxRuntime.jsxs("div",{ref:T,className:$,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[E(),r!==null&&!d&&jsxRuntime.jsx(Ct,{activeClassName:g.dropPreview})]})}return jsxRuntime.jsx("div",{ref:v,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:E()})};var Xe=en.createContext(null);var Zn={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"}},kn={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"}},Et=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:s,isOver:o}=core.useDroppable({id:e});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:s,style:Zn[t]}),o&&jsxRuntime.jsx("div",{className:n,style:kn[t]})]})},On=({id:e,children:t,style:n,locked:s=false})=>{let{layout:o,activeId:r,classNames:i,fullscreenPaneId:c,onFullscreenChange:l,locked:a}=ne(),{removePane:d,updateTabMetadata:g,selectTab:P,removeTab:x}=Ce(),v=en.useContext(_e);if(!v)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:S}=v,L=en.useMemo(()=>Q(o,e),[o,e]),E=L?.id??e,m=L?.tabs??[e],T=L?.activeTabId??e,$=L?.tabsMetadata,R=$?.[e],A=L?.locked??false,V=s||A,B=a||V,ee=a||V,oe=r!==null&&r!==e&&(!m.includes(r)||m.length>1)&&!ee,{attributes:te,listeners:re,setNodeRef:ie}=core.useDraggable({id:e,disabled:B}),le=r!==null&&m.includes(r),y=c===e,[W,z]=en.useState(null);en.useEffect(()=>(S(T,W),()=>{S(T,null);}),[T,W,S]);let M=en.useCallback(()=>jsxRuntime.jsx("div",{ref:z,id:`zeugma-tab-target-${T}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[T]),w=en.useMemo(()=>({isDragging:le,isFullscreen:y,toggleFullscreen:()=>l?.(y?null:e),remove:()=>{y&&l?.(null),d(E);},metadata:R,updateMetadata:b=>{g(e,b);},locked:B,tabs:m,activeTabId:T,selectTab:b=>P(E,b),removeTab:b=>{y&&b===T&&l?.(null),x(b);},tabsMetadata:$,updateTabMetadata:(b,h)=>{g(b,h);},renderActiveTab:M}),[le,y,l,e,x,R,g,B,m,T,P,E,$,M]),u=en.useMemo(()=>B?{disabled:true}:{...re,...te},[re,te,B]),Z=`${i.pane||""} ${V&&i.paneLocked||""}`.trim();return jsxRuntime.jsx(Xe.Provider,{value:u,children:jsxRuntime.jsxs("div",{ref:ie,className:Z,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(w),oe&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(b=>jsxRuntime.jsx(Et,{id:`drop-${b}-${e}`,position:b,activeClassName:i.dropPreview},b))}),r!==null&&r!==e&&ee&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsxRuntime.jsx(Et,{id:`drop-locked-${e}`,position:"full",activeClassName:i.lockedPreview||""})})]})})};var An=({children:e,className:t,style:n})=>{let s=en.useContext(Xe);if(!s)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...r}=s;return jsxRuntime.jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:r,children:e})};var Zt=en.createContext(void 0),Wn=()=>{let e=en.useContext(Zt);if(!e)throw new Error("useTabContext must be used within a Tab component");return e},kt=({id:e,locked:t=false,children:n,className:s,style:o})=>{let{locked:r,classNames:i={},activeType:c}=ne(),{overTabId:l}=He(),a=en.useContext(rt),d=t||r||(a?.locked??false),{attributes:g,listeners:P,setNodeRef:x,isDragging:v}=core.useDraggable({id:`tab-header-${e}`,disabled:d}),{setNodeRef:S,isOver:L}=core.useDroppable({id:`tab-drop-${e}`,disabled:d||c==="pane"}),E=ie=>{x(ie),S(ie);},m=L&&l===e,T=a?.tabs||[],$=T.indexOf(e),R=a?.activeTabId,V=$>0&&e!==R&&T[$-1]!==R?jsxRuntime.jsx("div",{className:i.tabSeparator}):null,B=a?a.activeTabId===e:false,ee=a?.tabsMetadata?.[e],oe=en.useCallback(()=>{a?.selectTab(e);},[a,e]),te=en.useCallback(()=>{a?.removeTab(e);},[a,e]),re=en.useMemo(()=>({tabId:e,isActive:B,isDragging:v,isOver:m,metadata:ee,locked:d,selectTab:oe,removeTab:te}),[e,B,v,m,ee,d,oe,te]);return jsxRuntime.jsx(Zt.Provider,{value:re,children:jsxRuntime.jsxs("div",{ref:E,className:s,style:{display:"inline-flex",position:"relative",cursor:d?"default":"grab",...o},...d?{}:P,...d?{}:g,children:[V,n({isDragging:v,isOver:m})]})})};var rt=en.createContext(void 0);var Ot=(e,t)=>typeof e=="function"?e(t):e,qn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:s,selectTab:o,removeTab:r,renderTab:i,classNames:c,styles:l})=>{let{classNames:a={},activeType:d}=ne(),{overTabId:g,overTabPosition:P}=He(),x=en.useMemo(()=>({tabs:e,activeTabId:t,locked:n,tabsMetadata:s,selectTab:o,removeTab:r}),[e,t,n,s,o,r]),v=bt(e,d,g,P);return jsxRuntime.jsx(rt.Provider,{value:x,children:jsxRuntime.jsxs("div",{className:c?.container,style:{display:"flex",alignItems:"center",height:"100%",...l?.container},children:[e.map((S,L)=>{let E=s?.[S],m=Ot(c?.tab,S),T=Ot(l?.tab,S),$=L===v;return jsxRuntime.jsxs(en__default.default.Fragment,{children:[$&&a.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:a.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:L===0?"none":"translateX(-50%)"}})}),jsxRuntime.jsx(kt,{id:S,locked:n,className:m,style:T,children:({isDragging:R,isOver:A})=>i({tabId:S,activeTabId:t,isDragging:R,isOver:A,metadata:E,selectTab:o,removeTab:r})})]},S)}),v===e.length&&a.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:a.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};exports.DEFAULT_DRAG_ACTIVATION_DISTANCE=Ht;exports.DEFAULT_RESIZER_SIZE=eo;exports.DEFAULT_SNAP_THRESHOLD=_t;exports.DragHandle=An;exports.Pane=On;exports.PaneTree=Cn;exports.PortalRegistryContext=_e;exports.TabWindowContext=Qe;exports.Tabs=qn;exports.Zeugma=un;exports.ZeugmaActionsContext=je;exports.ZeugmaDragContext=Ke;exports.ZeugmaStateContext=Je;exports.copyStyles=at;exports.createDragSession=vt;exports.getOrCreateHiddenContainer=Ye;exports.safeJsonStringify=Le;exports.useResizer=nt;exports.useTabContext=Wn;exports.useTabWindow=po;exports.useZeugma=Ft;exports.useZeugmaActions=Ce;exports.useZeugmaContext=Vt;exports.useZeugmaDrag=He;exports.useZeugmaState=ne;//# sourceMappingURL=index.cjs.map
7
8
  //# sourceMappingURL=index.cjs.map