react-zeugma 6.0.4 → 6.1.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 { P as PortalRegistryValue, Z as ZeugmaActionsValue, a as ZeugmaDragStateValue, b as ZeugmaStateValue, U as UseZeugmaOptions, c as ZeugmaController, d as ZeugmaContextValue, e as ZeugmaProps, S as SplitDirection, T as TreeNode, f as SplitNode } from './types-Kf7gkm94.cjs';
2
- export { g as PaneNode, h as TabDetails, i as ZeugmaClassNames } from './types-Kf7gkm94.cjs';
1
+ import { P as PortalRegistryValue, Z as ZeugmaActionsValue, a as ZeugmaDragStateValue, b as ZeugmaStateValue, U as UseZeugmaOptions, c as ZeugmaController, d as ZeugmaContextValue, e as ZeugmaProps, S as SplitDirection, T as TreeNode, f as SplitNode } from './dom-DrgwRi7G.cjs';
2
+ export { g as PaneNode, h as TabDetails, i as ZeugmaClassNames, j as copyStyles, k as getOrCreateHiddenContainer } from './dom-DrgwRi7G.cjs';
3
3
  import * as React from 'react';
4
4
  import React__default, { ReactNode } from 'react';
5
5
 
@@ -77,31 +77,6 @@ interface PaneTreeProps {
77
77
  }
78
78
  declare const PaneTree: React__default.FC<PaneTreeProps>;
79
79
 
80
- interface ResizableContainerProps {
81
- children: React__default.ReactNode;
82
- /** Whether the resizable container is active. When false, acts as a normal 100% height container. */
83
- active?: boolean;
84
- /** Current height in pixels (controlled mode) or default/initial height */
85
- height?: number;
86
- /** Called when the height changes during or after a drag */
87
- onHeightChange?: (height: number) => void;
88
- /** Minimum height in pixels (default: 100) */
89
- minHeight?: number;
90
- /** Maximum height in pixels (default: Infinity — bounded by parent) */
91
- maxHeight?: number;
92
- /** Whether to persist height in localStorage */
93
- persist?: boolean;
94
- /** Custom localStorage key to save the height under (default: 'default-pane') */
95
- localStorageKey?: string;
96
- /** Height of the resizer handle in pixels (default: 6) */
97
- resizerHeight?: number;
98
- /** CSS class applied to the outer container div */
99
- className?: string;
100
- /** CSS class applied to the resizer handle */
101
- resizerClassName?: string;
102
- }
103
- declare const ResizableContainer: React__default.FC<ResizableContainerProps>;
104
-
105
80
  interface PaneRenderProps {
106
81
  /** True if the pane is actively being dragged. */
107
82
  isDragging: boolean;
@@ -207,4 +182,4 @@ interface TabRenderProps {
207
182
  isOver: boolean;
208
183
  }
209
184
 
210
- export { DEFAULT_DRAG_ACTIVATION_DISTANCE, DEFAULT_RESIZER_SIZE, DEFAULT_SNAP_THRESHOLD, DragHandle, type DragHandleProps, type DragSessionConfig, Pane, type PaneProps, type PaneRenderProps, PaneTree, PortalRegistryContext, PortalRegistryValue, ResizableContainer, type ResizableContainerProps, SplitDirection, SplitNode, type TabContextValue, type TabRenderProps, Tabs, type TabsProps, TreeNode, UseZeugmaOptions, Zeugma, ZeugmaActionsContext, ZeugmaActionsValue, ZeugmaContextValue, ZeugmaController, ZeugmaDragContext, ZeugmaDragStateValue, ZeugmaProps, ZeugmaStateContext, ZeugmaStateValue, createDragSession, safeJsonStringify, useResizer, useTabContext, useZeugma, useZeugmaActions, useZeugmaContext, useZeugmaDrag, useZeugmaState };
185
+ export { DEFAULT_DRAG_ACTIVATION_DISTANCE, DEFAULT_RESIZER_SIZE, DEFAULT_SNAP_THRESHOLD, DragHandle, type DragHandleProps, type DragSessionConfig, Pane, type PaneProps, type PaneRenderProps, PaneTree, PortalRegistryContext, PortalRegistryValue, SplitDirection, SplitNode, type TabContextValue, type TabRenderProps, Tabs, type TabsProps, TreeNode, UseZeugmaOptions, Zeugma, ZeugmaActionsContext, ZeugmaActionsValue, ZeugmaContextValue, ZeugmaController, ZeugmaDragContext, ZeugmaDragStateValue, ZeugmaProps, ZeugmaStateContext, ZeugmaStateValue, createDragSession, safeJsonStringify, useResizer, useTabContext, useZeugma, useZeugmaActions, useZeugmaContext, useZeugmaDrag, useZeugmaState };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PortalRegistryValue, Z as ZeugmaActionsValue, a as ZeugmaDragStateValue, b as ZeugmaStateValue, U as UseZeugmaOptions, c as ZeugmaController, d as ZeugmaContextValue, e as ZeugmaProps, S as SplitDirection, T as TreeNode, f as SplitNode } from './types-Kf7gkm94.js';
2
- export { g as PaneNode, h as TabDetails, i as ZeugmaClassNames } from './types-Kf7gkm94.js';
1
+ import { P as PortalRegistryValue, Z as ZeugmaActionsValue, a as ZeugmaDragStateValue, b as ZeugmaStateValue, U as UseZeugmaOptions, c as ZeugmaController, d as ZeugmaContextValue, e as ZeugmaProps, S as SplitDirection, T as TreeNode, f as SplitNode } from './dom-DrgwRi7G.js';
2
+ export { g as PaneNode, h as TabDetails, i as ZeugmaClassNames, j as copyStyles, k as getOrCreateHiddenContainer } from './dom-DrgwRi7G.js';
3
3
  import * as React from 'react';
4
4
  import React__default, { ReactNode } from 'react';
5
5
 
@@ -77,31 +77,6 @@ interface PaneTreeProps {
77
77
  }
78
78
  declare const PaneTree: React__default.FC<PaneTreeProps>;
79
79
 
80
- interface ResizableContainerProps {
81
- children: React__default.ReactNode;
82
- /** Whether the resizable container is active. When false, acts as a normal 100% height container. */
83
- active?: boolean;
84
- /** Current height in pixels (controlled mode) or default/initial height */
85
- height?: number;
86
- /** Called when the height changes during or after a drag */
87
- onHeightChange?: (height: number) => void;
88
- /** Minimum height in pixels (default: 100) */
89
- minHeight?: number;
90
- /** Maximum height in pixels (default: Infinity — bounded by parent) */
91
- maxHeight?: number;
92
- /** Whether to persist height in localStorage */
93
- persist?: boolean;
94
- /** Custom localStorage key to save the height under (default: 'default-pane') */
95
- localStorageKey?: string;
96
- /** Height of the resizer handle in pixels (default: 6) */
97
- resizerHeight?: number;
98
- /** CSS class applied to the outer container div */
99
- className?: string;
100
- /** CSS class applied to the resizer handle */
101
- resizerClassName?: string;
102
- }
103
- declare const ResizableContainer: React__default.FC<ResizableContainerProps>;
104
-
105
80
  interface PaneRenderProps {
106
81
  /** True if the pane is actively being dragged. */
107
82
  isDragging: boolean;
@@ -207,4 +182,4 @@ interface TabRenderProps {
207
182
  isOver: boolean;
208
183
  }
209
184
 
210
- export { DEFAULT_DRAG_ACTIVATION_DISTANCE, DEFAULT_RESIZER_SIZE, DEFAULT_SNAP_THRESHOLD, DragHandle, type DragHandleProps, type DragSessionConfig, Pane, type PaneProps, type PaneRenderProps, PaneTree, PortalRegistryContext, PortalRegistryValue, ResizableContainer, type ResizableContainerProps, SplitDirection, SplitNode, type TabContextValue, type TabRenderProps, Tabs, type TabsProps, TreeNode, UseZeugmaOptions, Zeugma, ZeugmaActionsContext, ZeugmaActionsValue, ZeugmaContextValue, ZeugmaController, ZeugmaDragContext, ZeugmaDragStateValue, ZeugmaProps, ZeugmaStateContext, ZeugmaStateValue, createDragSession, safeJsonStringify, useResizer, useTabContext, useZeugma, useZeugmaActions, useZeugmaContext, useZeugmaDrag, useZeugmaState };
185
+ export { DEFAULT_DRAG_ACTIVATION_DISTANCE, DEFAULT_RESIZER_SIZE, DEFAULT_SNAP_THRESHOLD, DragHandle, type DragHandleProps, type DragSessionConfig, Pane, type PaneProps, type PaneRenderProps, PaneTree, PortalRegistryContext, PortalRegistryValue, SplitDirection, SplitNode, type TabContextValue, type TabRenderProps, Tabs, type TabsProps, TreeNode, UseZeugmaOptions, Zeugma, ZeugmaActionsContext, ZeugmaActionsValue, ZeugmaContextValue, ZeugmaController, ZeugmaDragContext, ZeugmaDragStateValue, ZeugmaProps, ZeugmaStateContext, ZeugmaStateValue, createDragSession, safeJsonStringify, useResizer, useTabContext, useZeugma, useZeugmaActions, useZeugmaContext, useZeugmaDrag, useZeugmaState };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import jt,{createContext,useState,useRef,useEffect,useCallback,useContext,useMemo}from'react';import {DndContext,useDraggable,useSensors,useSensor,pointerWithin,closestCenter,useDroppable,PointerSensor,TouchSensor}from'@dnd-kit/core';import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {createPortal}from'react-dom';function rt(e){let t=useRef(null);return 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 st(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function it(){let[e,t]=useState({}),n=useRef(true);useEffect(()=>(n.current=true,()=>{n.current=false;}),[]);let s=useCallback((o,r)=>{n.current&&t(a=>a[o]===r?a:{...a,[o]:r});},[]);return {portalTargets:e,registerPortalTarget:s}}var At=8,Ft=8,Qn=4;function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function be(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=be(e.first,t),s=be(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(l=>l!==t);if(o.length===0)return null;let r=e.activeTabId;e.activeTabId===t&&(r=o[0]);let a={...e.tabsMetadata};return delete a[t],{...e,tabs:o,activeTabId:r,tabsMetadata:Object.keys(a).length>0?a: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 ye(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,a=s==="left"||s==="top";return {type:"split",direction:n,first:a?r:e,second:a?e:r,splitPercentage:50}}return e}return {...e,first:ye(e.first,t,n,s,o)||e.first,second:ye(e.second,t,n,s,o)||e.second}}function at(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 oe(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:oe(e.first,t)??oe(e.second,t)}function Y(e,t){return e===null?null:e.type==="pane"?e.tabs.includes(t)?e:null:Y(e.first,t)??Y(e.second,t)}function lt(e,t){let n=Y(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 Ne(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),a={...s};return r===void 0?delete a[t]:a[t]=r,{...e,tabsMetadata:Object.keys(a).length>0?a:void 0}}return e}return {...e,first:Ne(e.first,t,n)??e.first,second:Ne(e.second,t,n)??e.second}}function Ie(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:Ie(e.first,t,n,s)||e.first,second:Ie(e.second,t,n,s)||e.second}}function Me(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:Me(e.first,t,n)??e.first,second:Me(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 ct(e,t,n){if(e===null)return null;let o=Y(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 a(l){if(l.type==="pane"){if(l.id===n){let d=[...l.tabs];d.includes(t)||d.push(t);let p={...l.tabsMetadata};return o&&(p[t]=o),{...l,tabs:d,activeTabId:t,tabsMetadata:Object.keys(p).length>0?p:void 0}}return l}return {...l,first:a(l.first),second:a(l.second)}}return a(r)}function Le(e,t,n,s="before"){if(e===null)return null;let r=Y(e,t)?.tabsMetadata?.[t],a=fe(e,t);if(a===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:r?{[t]:r}:void 0};function l(d){if(d.type==="pane"){if(d.tabs.includes(n)){let g=[...d.tabs].filter(S=>S!==t),m=g.indexOf(n);m<0&&(m=0),s==="after"&&(m+=1),g.splice(m,0,t);let D={...d.tabsMetadata};return r&&(D[t]=r),{...d,tabs:g,activeTabId:t,tabsMetadata:Object.keys(D).length>0?D:void 0}}return d}return {...d,first:l(d.first),second:l(d.second)}}return l(a)}function me(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:a,splitPercentage:l,first:d,second:p}=e,m={id:`splitter-${r}-${a}`,currentNode:e,direction:a,left:a==="row"?t+s*(l/100):t,top:a==="column"?n+o*(l/100):n,width:a==="row"?0:s,height:a==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:s,parentHeight:o},D={panes:[],splitters:[]},S={panes:[],splitters:[]};if(a==="row"){let x=s*(l/100);D=me(d,t,n,x,o,`${r}-L`),S=me(p,t+x,n,s-x,o,`${r}-R`);}else {let x=o*(l/100);D=me(d,t,n,s,x,`${r}-T`),S=me(p,t,n+x,s,o-x,`${r}-B`);}return {panes:[...D.panes,...S.panes],splitters:[m,...D.splitters,...S.splitters]}}function ut(e,t,n,s){if(!(t==="tab"&&n&&e.includes(n))||!s)return -1;let a=e.indexOf(n);return s==="before"?a:a+1}function Ee(e){try{return JSON.stringify(e)}catch{return ""}}function Ot(e){let{initialLayout:t,layout:n,onChange:s,fullscreenPaneId:o,onFullscreenChange:r,locked:a=false,dragActivationDistance:l=8,snapThreshold:d=8,minSplitPercentage:p=5,maxSplitPercentage:g=95,enableDragToDismiss:m=false,dismissThreshold:D=60,onRemove:S,onDragStart:x,onDragEnd:w,onResizeStart:E,onResize:L,onResizeEnd:u,onDismissIntentChange:y}=e,[P,N]=useState(()=>n!==void 0?n:t??null),[F,W]=useState(()=>Ee(n!==void 0?n:null)),[U,$]=useState(o||null),[Q,O]=useState(a),[X,j]=useState(null),[re,f]=useState(null),[z,k]=useState(null),[Z,R]=useState(null),i=useRef(null),T=useCallback(c=>{i.current=c;},[]),C=useRef(P);C.current=P;let v=useRef(s);v.current=s;let q=useRef(r);q.current=r;let B=useCallback(c=>{$(c),q.current?.(c);},[]);if(useEffect(()=>{O(a);},[a]),useEffect(()=>{o!==void 0&&$(o);},[o]),n!==void 0){let c=Ee(n);c!==F&&(W(c),N(n));}let b=useCallback(c=>(...M)=>{let V=C.current,_=c(V,...M);Ee(V)!==Ee(_)&&(C.current=_,N(_),v.current?.(_));},[]),ee=useCallback(b((c,M)=>typeof M=="function"?M(c):M),[b]),h=useCallback(b((c,M)=>be(c,M)),[b]),I=useCallback(b((c,M,V)=>at(c,M,V)),[b]),A=useCallback(b((c,M,V,_)=>{let pe=oe(c,M)??Y(c,M);if(!pe)return c;let we=Y(c,V),Ye=we&&we.id===pe.id?c:fe(c,V)??c;return Ie(Ye,pe.id,V,_)}),[b]),se=useCallback(b((c,M,V,_,pe)=>{let we=oe(c,M)??Y(c,M);if(!we)return c;let nt=oe(c,pe)??Y(c,pe)??{type:"pane",id:pe,tabs:[pe],activeTabId:pe},Ye=be(c,pe);return ye(Ye,we.id,V,_,nt)}),[b]),te=useCallback(b((c,M,V)=>Pe(c,M,V)),[b]),ne=useCallback(b((c,M,V)=>Ne(c,M,V)),[b]),Se=useCallback(b((c,M,V)=>{let _=oe(c,M)??Y(c,M);return _?Me(c,_.id,V):c}),[b]),ce=useCallback(b((c,M,V)=>{let _=oe(c,M)??Y(c,M);return _?Re(c,_.id,V):c}),[b]),ue=useCallback(b((c,M,V)=>{let _=oe(c,V)??Y(c,V);return _?ct(c,M,_.id):c}),[b]),H=useCallback(b((c,M,V,_)=>Le(c,M,V,_)),[b]),ie=useCallback(b((c,M)=>fe(c,M)),[b]),G=useCallback(c=>oe(C.current,c),[]),ge=useCallback(c=>Y(C.current,c),[]),ae=useCallback(c=>lt(C.current,c),[]);return {layout:P,setLayout:ee,layoutBeforeDrag:X,setLayoutBeforeDrag:j,fullscreenPaneId:U,setFullscreenPaneId:B,locked:Q,setLocked:O,activeId:re,setActiveId:f,activeType:z,setActiveType:k,dismissIntentId:Z,setDismissIntentId:R,containerRef:i,setContainerRef:T,dragActivationDistance:l,snapThreshold:d,minSplitPercentage:p,maxSplitPercentage:g,enableDragToDismiss:m,dismissThreshold:D,onRemove:S,onDragStart:x,onDragEnd:w,onResizeStart:E,onResize:L,onResizeEnd:u,onDismissIntentChange:y,removePane:h,addPane:I,addTab:A,splitPane:se,updateSplitPercentage:te,updateTabMetadata:ne,updatePaneLock:Se,selectTab:ce,mergeTab:ue,moveTab:H,removeTab:ie,findPaneById:G,findPaneContainingTab:ge,findTabById:ae}}function Ze({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=`
1
+ import Jt,{createContext,useState,useRef,useEffect,useCallback,useContext,useMemo}from'react';import {DndContext,useDraggable,useSensors,useSensor,pointerWithin,closestCenter,useDroppable,PointerSensor,TouchSensor}from'@dnd-kit/core';import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {createPortal}from'react-dom';function nt(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 _e(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 rt(e){let t=useRef(null);return 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 st(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function it(){let[e,t]=useState({}),n=useRef(true);useEffect(()=>(n.current=true,()=>{n.current=false;}),[]);let o=useCallback((r,s)=>{n.current&&t(i=>i[r]===s?i:{...i,[r]:s});},[]);return {portalTargets:e,registerPortalTarget:o}}function at({tabId:e,isOpenedInNewWindow:t,onClose:n}){let o=useRef(null),[r,s]=useState(null);return useEffect(()=>{let i=null;if(t){if(!o.current||o.current.closed){let l=`zeugma-tab-${e.replace(/[^a-zA-Z0-9]/g,"_")}`,p=window.open("",l,"width=800,height=600,menubar=no,toolbar=no,location=no,status=no,resizable=yes");if(p){o.current=p;let d=e.includes("/")?e.split("/").pop():e;p.document.title=d,nt(document,p.document);let f=p.document.createElement("div");f.id="zeugma-popup-root",p.document.body.appendChild(f),s(f),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]),useEffect(()=>()=>{o.current&&!o.current.closed&&o.current.close();},[]),{popupWindow:o.current,popupContainer:r}}var Zt=8,kt=8,_n=4;function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function be(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=be(e.first,t),o=be(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(l=>l!==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 ye(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:ye(e.first,t,n,o,r)||e.first,second:ye(e.second,t,n,o,r)||e.second}}function lt(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 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 j(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:j(e.first,t)??j(e.second,t)}function W(e,t){return e===null?null:e.type==="pane"?e.tabs.includes(t)?e:null:W(e.first,t)??W(e.second,t)}function ct(e,t){let n=W(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 Le(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:Le(e.first,t,n)??e.first,second:Le(e.second,t,n)??e.second}}function Me(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:Me(e.first,t,n,o)||e.first,second:Me(e.second,t,n,o)||e.second}}function Ze(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:Ze(e.first,t,n)??e.first,second:Ze(e.second,t,n)??e.second}}function Ce(e,t,n){return e===null?null:e.type==="pane"?e.id===t?e.activeTabId===n?e:{...e,activeTabId:n}:e:{...e,first:Ce(e.first,t,n)??e.first,second:Ce(e.second,t,n)??e.second}}function ut(e,t,n){if(e===null)return null;let r=W(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(l){if(l.type==="pane"){if(l.id===n){let p=[...l.tabs];p.includes(t)||p.push(t);let d={...l.tabsMetadata};return r&&(d[t]=r),{...l,tabs:p,activeTabId:t,tabsMetadata:Object.keys(d).length>0?d:void 0}}return l}return {...l,first:i(l.first),second:i(l.second)}}return i(s)}function ke(e,t,n,o="before"){if(e===null)return null;let s=W(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 l(p){if(p.type==="pane"){if(p.tabs.includes(n)){let f=[...p.tabs].filter(C=>C!==t),h=f.indexOf(n);h<0&&(h=0),o==="after"&&(h+=1),f.splice(h,0,t);let T={...p.tabsMetadata};return s&&(T[t]=s),{...p,tabs:f,activeTabId:t,tabsMetadata:Object.keys(T).length>0?T:void 0}}return p}return {...p,first:l(p.first),second:l(p.second)}}return l(i)}function me(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:l,first:p,second:d}=e,h={id:`splitter-${s}-${i}`,currentNode:e,direction:i,left:i==="row"?t+o*(l/100):t,top:i==="column"?n+r*(l/100):n,width:i==="row"?0:o,height:i==="column"?0:r,parentLeft:t,parentTop:n,parentWidth:o,parentHeight:r},T={panes:[],splitters:[]},C={panes:[],splitters:[]};if(i==="row"){let m=o*(l/100);T=me(p,t,n,m,r,`${s}-L`),C=me(d,t+m,n,o-m,r,`${s}-R`);}else {let m=r*(l/100);T=me(p,t,n,o,m,`${s}-T`),C=me(d,t,n+m,o,r-m,`${s}-B`);}return {panes:[...T.panes,...C.panes],splitters:[h,...T.splitters,...C.splitters]}}function dt(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 Ie(e){try{return JSON.stringify(e)}catch{return ""}}function $t(e){let{initialLayout:t,layout:n,onChange:o,fullscreenPaneId:r,onFullscreenChange:s,locked:i=false,dragActivationDistance:l=8,snapThreshold:p=8,minSplitPercentage:d=5,maxSplitPercentage:f=95,enableDragToDismiss:h=false,dismissThreshold:T=60,onRemove:C,onDragStart:m,onDragEnd:k,onResizeStart:L,onResize:M,onResizeEnd:u,onDismissIntentChange:y}=e,[N,E]=useState(()=>n!==void 0?n:t??null),[A,J]=useState(()=>Ie(n!==void 0?n:null)),[q,B]=useState(r||null),[ee,te]=useState(i),[ae,oe]=useState(null),[le,D]=useState(null),[O,$]=useState(null),[z,R]=useState(null),a=useRef(null),P=useCallback(c=>{a.current=c;},[]),x=useRef(N);x.current=N;let v=useRef(o);v.current=o;let U=useRef(s);U.current=s;let F=useCallback(c=>{B(c),U.current?.(c);},[]);if(useEffect(()=>{te(i);},[i]),useEffect(()=>{r!==void 0&&B(r);},[r]),n!==void 0){let c=Ie(n);c!==A&&(J(c),E(n));}let g=useCallback(c=>(...S)=>{let H=x.current,V=c(H,...S);Ie(H)!==Ie(V)&&(x.current=V,E(V),v.current?.(V));},[]),G=useCallback(g((c,S)=>typeof S=="function"?S(c):S),[g]),b=useCallback(g((c,S)=>be(c,S)),[g]),w=useCallback(g((c,S,H)=>lt(c,S,H)),[g]),Z=useCallback(g((c,S,H,V)=>{let pe=j(c,S)??W(c,S);if(!pe)return c;let Ne=W(c,H),Ue=Ne&&Ne.id===pe.id?c:fe(c,H)??c;return Me(Ue,pe.id,H,V)}),[g]),re=useCallback(g((c,S,H,V,pe)=>{let Ne=j(c,S)??W(c,S);if(!Ne)return c;let tt=j(c,pe)??W(c,pe)??{type:"pane",id:pe,tabs:[pe],activeTabId:pe},Ue=be(c,pe);return ye(Ue,Ne.id,H,V,tt)}),[g]),K=useCallback(g((c,S,H)=>Pe(c,S,H)),[g]),Q=useCallback(g((c,S,H)=>Le(c,S,H)),[g]),Se=useCallback(g((c,S,H)=>{let V=j(c,S)??W(c,S);return V?Ze(c,V.id,H):c}),[g]),ce=useCallback(g((c,S,H)=>{let V=j(c,S)??W(c,S);return V?Ce(c,V.id,H):c}),[g]),ue=useCallback(g((c,S,H)=>{let V=j(c,H)??W(c,H);return V?ut(c,S,V.id):c}),[g]),I=useCallback(g((c,S,H,V)=>ke(c,S,H,V)),[g]),se=useCallback(g((c,S)=>fe(c,S)),[g]),X=useCallback(c=>j(x.current,c),[]),ge=useCallback(c=>W(x.current,c),[]),ie=useCallback(c=>ct(x.current,c),[]);return {layout:N,setLayout:G,layoutBeforeDrag:ae,setLayoutBeforeDrag:oe,fullscreenPaneId:q,setFullscreenPaneId:F,locked:ee,setLocked:te,activeId:le,setActiveId:D,activeType:O,setActiveType:$,dismissIntentId:z,setDismissIntentId:R,containerRef:a,setContainerRef:P,dragActivationDistance:l,snapThreshold:p,minSplitPercentage:d,maxSplitPercentage:f,enableDragToDismiss:h,dismissThreshold:T,onRemove:C,onDragStart:m,onDragEnd:k,onResizeStart:L,onResize:M,onResizeEnd:u,onDismissIntentChange:y,removePane:b,addPane:w,addTab:Z,splitPane:re,updateSplitPercentage:K,updateTabMetadata:Q,updatePaneLock:Se,selectTab:ce,mergeTab:ue,moveTab:I,removeTab:se,findPaneById:X,findPaneContainingTab:ge,findTabById:ie}}function ft({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=`
2
2
  * {
3
3
  cursor: ${e} !important;
4
4
  user-select: none !important;
5
5
  }
6
- `,document.head.appendChild(o),t.setAttribute("data-resizing","true");let r=l=>{n(l);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let l=document.getElementById("zeugma-global-cursor-style");l&&l.remove(),document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",a),s();};document.addEventListener("pointermove",r),document.addEventListener("pointerup",a);}var Je=createContext(void 0),Ge=createContext(void 0),$e=createContext(void 0),Ke=createContext(void 0),le=()=>{let e=useContext(Je);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},He=()=>{let e=useContext(Ge);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Ae=()=>{let e=useContext(Ke);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};var Vt=()=>{let e=le(),t=He();return {...e,...t}};var Fe=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Oe=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function Ve(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 ft(e){let{layout:t,setLayout:n,layoutBeforeDrag:s,setLayoutBeforeDrag:o,activeId:r,setActiveId:a,setActiveType:l,dismissIntentId:d,setDismissIntentId:p,setOverTabId:g,setOverTabPosition:m,containerRef:D,dragActivationDistance:S,enableDragToDismiss:x,dismissThreshold:w,onRemove:E,onDragStart:L,onDragEnd:u,onDismissIntentChange:y,removeTab:P}=e,N=useRef(null),F=rt(r),[W,U]=useState(false);st(W);let $=useSensors(useSensor(Fe,{activationConstraint:{distance:S}}),useSensor(Oe,{activationConstraint:{delay:250,tolerance:5}})),Q=useCallback(f=>{let k=f.active.id.toString().startsWith("tab-header-"),Z=pointerWithin(f),R=k?Z:Z.filter(i=>!i.id.toString().startsWith("tab-drop-"));if(R.length>0)return [...R].sort((T,C)=>{let v=T.id.toString(),q=C.id.toString();if(k){let J=v.startsWith("tab-drop-"),ee=q.startsWith("tab-drop-");if(J&&!ee)return -1;if(!J&&ee)return 1}let B=v.startsWith("drop-root-"),b=q.startsWith("drop-root-");return B&&!b?-1:!B&&b?1:0});if(k){let i=f.droppableContainers.filter(T=>T.id.toString().startsWith("tab-drop-"));return closestCenter({...f,droppableContainers:i})}return []},[]);return {sensors:$,collisionDetection:Q,onDragStart:f=>{let z=f.active.id.toString(),k=z.startsWith("tab-header-"),Z=k?z.substring(11):z;a(Z),l(k?"tab":"pane"),g(null),m(null);let R=f.activatorEvent;F.current=Ve(R),x&&D.current?N.current=D.current.getBoundingClientRect():N.current=null;let i=t;if(k){let T=Y(t,Z);T&&(i=Re(t,T.id,Z)||t);}o(i),k&&i!==t&&n(i),L&&L(Z);},onDragMove:f=>{let{over:z}=f,k=z?.id.toString()||"",Z=k.startsWith("drop-locked-");U(h=>h===Z?h:Z);let R=f.active.id.toString(),i=R.startsWith("tab-header-"),T=i?R.substring(11):R,C=k.match(/^tab-drop-(.+)$/);if(C&&z&&i){let[,h]=C;if(T!==h){let I="before",A=z.rect,se=f.activatorEvent,te=null;if(F.current)te=F.current.x;else {let ne=Ve(se);ne&&(te=ne.x+f.delta.x);}if(te!==null){let ne=A.left+A.width/2;te>ne&&(I="after");}g(ne=>ne===h?ne:h),m(ne=>ne===I?ne:I);}else g(I=>I===null?I:null),m(I=>I===null?I:null);}else g(h=>h===null?h:null),m(h=>h===null?h:null);if(!x)return;let v=N.current;if(!v){d!==null&&(p(null),y?.(null));return}let q=f.activatorEvent,B=null,b=null;if(F.current)B=F.current.x,b=F.current.y;else {let h=Ve(q);h&&(B=h.x+f.delta.x,b=h.y+f.delta.y);}let J=0;if(B!==null&&b!==null){let h=0,I=0;B<v.left?h=v.left-B:B>v.right&&(h=B-v.right),b<v.top?I=v.top-b:b>v.bottom&&(I=b-v.bottom),J=Math.sqrt(h*h+I*I);}else {let h=f.active.rect.current.translated;if(h){let I=h.left+h.width/2,A=h.top+h.height/2,se=0,te=0;I<v.left?se=v.left-I:I>v.right&&(se=I-v.right),A<v.top?te=v.top-A:A>v.bottom&&(te=A-v.bottom),J=Math.sqrt(se*se+te*te);}}J>w?d!==T&&(p(T),y?.(T)):d!==null&&(p(null),y?.(null));},onDragEnd:f=>{a(null),l(null),U(false),g(null),m(null);let{active:z,over:k}=f,Z=z.id.toString(),R=Z.startsWith("tab-header-"),i=R?Z.substring(11):Z,T=x&&d===i;p(null),y?.(null),N.current=null;let C=s||t;if(o(null),T){E?E(i):P(i),u&&u(i,null,null);return}if(!k){n(C),u&&u(i,null,null);return}let v=k.id.toString();if(v.startsWith("drop-locked-")){n(C),u&&u(i,null,null);return}let q=v.match(/^tab-drop-(.+)$/);if(q){if(!R){n(C),u&&u(i,null,null);return}let[,ce]=q;if(i!==ce){let ue="before",H=k.rect,ie=f.activatorEvent,G=null;if(F.current)G=F.current.x;else {let ae=Ve(ie);ae&&(G=ae.x+f.delta.x);}if(G!==null){let ae=H.left+H.width/2;G>ae&&(ue="after");}let ge=Le(C,i,ce,ue);n(ge),u&&u(i,ce,{type:"move",position:"center"});}else n(C),u&&u(i,null,null);return}let B=v.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(B){let[,ce,ue]=B,H=ue;H==="start"&&(H="left"),H==="end"&&(H="right");let ie=R?fe(C,i):be(C,i),G;if(R){let ae=Y(C,i)?.tabsMetadata?.[i];G={type:"pane",id:de(),tabs:[i],activeTabId:i,tabsMetadata:ae?{[i]:ae}:void 0};}else G=oe(C,i)??{type:"pane",id:de(),tabs:[i],activeTabId:i};if(ie===null)n(G);else {let ge=H==="left"||H==="right",ae=H==="left"||H==="top",c=50;ce==="1/4"?c=ae?25:75:ce==="1/3"&&(c=ae?100/3:200/3),n({type:"split",direction:ge?"row":"column",first:ae?G:ie,second:ae?ie:G,splitPercentage:c});}u&&u(i,"root",{type:"split",direction:H==="left"||H==="right"?"row":"column",position:H});return}let b=v.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!b){n(C),u&&u(i,null,null);return}let[,J,ee]=b,h=R?Y(C,i):oe(C,i),I=h&&h.id===ee,A=h&&h.tabs.length===1;if(i===ee||I&&A){n(C),u&&u(i,null,null);return}let se=J==="left"||J==="right"?"row":"column",te;if(R){let ue=Y(C,i)?.tabsMetadata?.[i];te={type:"pane",id:de(),tabs:[i],activeTabId:i,tabsMetadata:ue?{[i]:ue}:void 0};}else te=oe(C,i)??{type:"pane",id:de(),tabs:[i],activeTabId:i};let ne=R?fe(C,i):be(C,i),Se=ye(ne,ee,se,J,te);n(Se),u&&u(i,ee,{type:"split",direction:se,position:J});},onDragCancel:()=>{a(null),l(null),U(false),g(null),m(null),p(null),y?.(null),N.current=null,s!==null&&(n(s),o(null));}}}var mt=({activeId:e,render:t,className:n})=>{let s=useRef(null);return 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)},[]),jsx("div",{ref:s,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var gt=jt.memo(({tabId:e,target:t,renderWidget:n})=>{let[s,o]=useState(false),r=useRef(null);if(useEffect(()=>{o(true);},[]),useEffect(()=>{if(!s||!r.current)return;let l=r.current;if(t)t.appendChild(l);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(l);}},[t,s]),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 a=r.current;return !a||!n?null:createPortal(n(e),a)});var rn=e=>{let t=e,{renderPane:n,renderWidget:s,renderDragOverlay:o,classNames:r={},children:a,layout:l,setLayout:d,fullscreenPaneId:p,setFullscreenPaneId:g,locked:m,setLocked:D,findPaneById:S,findPaneContainingTab:x,findTabById:w,activeId:E,activeType:L,dismissIntentId:u,setContainerRef:y,layoutBeforeDrag:P,snapThreshold:N,minSplitPercentage:F,maxSplitPercentage:W,onRemove:U,onResizeStart:$,onResize:Q,onResizeEnd:O,removePane:X,addPane:j,addTab:re,updateTabMetadata:f,updatePaneLock:z,selectTab:k,mergeTab:Z,removeTab:R,splitPane:i,updateSplitPercentage:T,moveTab:C}=t,{portalTargets:v,registerPortalTarget:q}=it(),[B,b]=useState(null),[J,ee]=useState(null),h=ft({...t,setOverTabId:b,setOverTabPosition:ee}),I=useCallback(H=>n(H),[n]),A=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]),se=useCallback((H,ie)=>{O&&O(H,ie);},[O]),te=useMemo(()=>({layout:l,setLayout:d,renderPane:I,activeId:E,activeType:L,dismissIntentId:u,setContainerRef:y,fullscreenPaneId:p,classNames:A,onRemove:U,onFullscreenChange:g,snapThreshold:N,onResizeStart:$,onResize:Q,onResizeEnd:se,minSplitPercentage:F,maxSplitPercentage:W,locked:m,setLocked:D,findPaneById:S,findPaneContainingTab:x,findTabById:w}),[l,E,L,u,y,p,A,U,g,N,$,Q,F,W,d,I,se,m,D,S,x,w]),ne=useMemo(()=>({overTabId:B,overTabPosition:J}),[B,J]),Se=useMemo(()=>({removePane:X,addPane:j,addTab:re,updateTabMetadata:f,updatePaneLock:z,selectTab:k,mergeTab:Z,removeTab:R,setFullscreenPaneId:g,setLocked:D,splitPane:i,updateSplitPercentage:T,moveTab:C}),[X,j,re,f,z,k,Z,R,g,D,i,T,C]),ce=useMemo(()=>{let H=new Set;function ie(G){G&&(G.type==="pane"?G.tabs.forEach(ge=>{H.add(ge);}):(ie(G.first),ie(G.second)));}return ie(l),P&&ie(P),Array.from(H).sort()},[l,E,P]),ue=useMemo(()=>({registerPortalTarget:q}),[q]);return jsx(Ge.Provider,{value:Se,children:jsx(Je.Provider,{value:te,children:jsx(Ke.Provider,{value:ne,children:jsxs($e.Provider,{value:ue,children:[jsx(DndContext,{id:"zeugma-dnd-context",...h,children:a}),E&&L&&o&&jsx(mt,{activeId:E,render:H=>o(H,L),className:`${r.dragOverlay||""} ${E===u&&r.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:ce.map(H=>jsx(gt,{tabId:H,target:v[H]||null,renderWidget:s},H))})]})})})})};var ln={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"}}},cn={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%"}}},un=({id:e,fraction:t,edge:n,activeClassName:s})=>{let{setNodeRef:o,isOver:r}=useDroppable({id:e}),a={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...cn[n][t]};return jsxs(Fragment,{children:[jsx("div",{ref:o,style:ln[n][t]}),r&&jsx("div",{className:s,style:a})]})},vt=({activeClassName:e})=>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=>jsx(un,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});function je({containerRef:e,isRow:t,direction:n,splitPercentage:s,resizerSize:o,snapThreshold:r,layout:a,currentNode:l,onLayoutChange:d,onResizeStart:p,onResizeEnd:g,parentLeft:m,parentTop:D,parentWidth:S,parentHeight:x}){let{onResizeStart:w,onResize:E,onResizeEnd:L,minSplitPercentage:u=5,maxSplitPercentage:y=95,locked:P=false}=le();return useCallback(N=>{if(P)return;N.preventDefault();let F=e.current;if(!F)return;p&&p(),w&&w(l);let W=F.getBoundingClientRect(),U=N.clientX,$=N.clientY,Q=s,O=N.currentTarget,X=W.left+W.width*(m/100),j=W.top+W.height*(D/100),re=W.width*(S/100),f=W.height*(x/100),k=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(R=>R!==O&&R.getAttribute("data-direction")===n).map(R=>{let i=R.getBoundingClientRect();return t?i.left+i.width/2:i.top+i.height/2}),Z=Q;Ze({cursor:t?"col-resize":"row-resize",resizerEl:O,onMove:R=>{let i=t?(R.clientX-U)/re*100:(R.clientY-$)/f*100,T=Q+i,C=t?X+(re-o)*(T/100)+o/2:j+(f-o)*(T/100)+o/2,v=1/0,q=null;for(let ee of k){let h=Math.abs(C-ee);h<r&&h<v&&(v=h,q=ee);}let B=T;q!==null&&(B=t?(q-o/2-X)/(re-o)*100:(q-o/2-j)/(f-o)*100);let b=Math.max(u,Math.min(y,B));Z=b;let J=Pe(a,l,b);if(J){let{panes:ee,splitters:h}=me(J),I=e.current;if(I){for(let A of ee)I.style.setProperty(`--pane-left-${A.paneId}`,`${A.left}%`),I.style.setProperty(`--pane-top-${A.paneId}`,`${A.top}%`),I.style.setProperty(`--pane-width-${A.paneId}`,`${A.width}%`),I.style.setProperty(`--pane-height-${A.paneId}`,`${A.height}%`);for(let A of h)I.style.setProperty(`--splitter-pos-${A.id}`,`${A.direction==="row"?A.left:A.top}%`);}}E&&E(l,b);},onEnd:()=>{let R=Pe(a,l,Z),i=e.current;if(i){let{panes:T,splitters:C}=me(R);for(let v of T)i.style.removeProperty(`--pane-left-${v.paneId}`),i.style.removeProperty(`--pane-top-${v.paneId}`),i.style.removeProperty(`--pane-width-${v.paneId}`),i.style.removeProperty(`--pane-height-${v.paneId}`);for(let v of C)i.style.removeProperty(`--splitter-pos-${v.id}`);}d(R),g&&g(),L&&L(l,Z);}});},[e,t,n,s,o,r,a,l,d,p,g,w,E,L,u,y,m,D,S,x])}var vn=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:s})=>{let{layout:o,setLayout:r,classNames:a,locked:l}=le(),[d,p]=useState(false),{currentNode:g,direction:m,left:D,top:S,width:x,height:w,parentLeft:E,parentTop:L,parentWidth:u,parentHeight:y}=e,P=m==="row",N=je({containerRef:s,isRow:P,direction:m,splitPercentage:g.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:g,onLayoutChange:r,onResizeStart:()=>p(true),onResizeEnd:()=>p(false),parentLeft:E,parentTop:L,parentWidth:u,parentHeight:y}),F=P?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${D}%) - ${t/2}px)`,top:`calc(${S}% + ${t/2}px)`,width:`${t}px`,height:`calc(${w}% - ${t}px)`,cursor:l?"default":"col-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${D}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${S}%) - ${t/2}px)`,width:`calc(${x}% - ${t}px)`,height:`${t}px`,cursor:l?"default":"row-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:a.resizer||"","data-direction":m,"data-resizing":d||void 0,style:F,onPointerDown:N,role:"separator","aria-valuenow":g.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},Pn=jt.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),Tn=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:s,renderPane:o,activeId:r,dismissIntentId:a,setContainerRef:l,fullscreenPaneId:d,snapThreshold:p,locked:g,classNames:m}=le(),D=n!==void 0?n:p??8,S=e!==void 0?e:s,x=useRef(null),{panes:w,splitters:E}=useMemo(()=>S?me(S):{panes:[],splitters:[]},[S]);if(!S)return null;let L=()=>jsxs(Fragment,{children:[w.map(u=>{let y=d===u.paneId;return jsx("div",{style:{position:"absolute",left:y?"0%":`var(--pane-left-${u.paneId}, ${u.left}%)`,top:y?"0%":`var(--pane-top-${u.paneId}, ${u.top}%)`,width:y?"100%":`var(--pane-width-${u.paneId}, ${u.width}%)`,height:y?"100%":`var(--pane-height-${u.paneId}, ${u.height}%)`,overflow:"hidden",zIndex:y?20:1,display:d&&!y?"none":"block",padding:y?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsx(Pn,{paneId:u.paneId,renderPane:o})},u.paneId)}),!d&&E.map(u=>jsx(vn,{splitter:u,resizerSize:t,snapThreshold:D,containerRef:x},u.id))]});if(e===void 0){let u=r!==null&&r===a,y=N=>{l(N),x.current=N;},P=`${m.dashboard||""} ${u&&m.dashboardDismissActive||""} ${g&&m.dashboardLocked||""}`.trim();return jsxs("div",{ref:y,className:P,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[L(),r!==null&&!g&&jsx(vt,{activeClassName:m.dropPreview})]})}return jsx("div",{ref:x,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:L()})};var Ct="zeugma-height:",Rn="default-pane";function Cn(e){try{let t=localStorage.getItem(Ct+e);if(t!==null){let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}catch{}return null}function Rt(e,t){try{localStorage.setItem(Ct+e,String(Math.round(t)));}catch{}}var Dt=({children:e,active:t=true,height:n,onHeightChange:s,minHeight:o=100,maxHeight:r=1/0,persist:a,localStorageKey:l,resizerHeight:d=6,className:p,resizerClassName:g})=>{let m=a?l||Rn:null,D=()=>{let P=(m?Cn(m):null)??n??400;return We(P,o,r)},[S,x]=useState(D),w=useRef(null),E=m?S:n??S,L=useRef(n);useEffect(()=>{if(n!==void 0&&n!==L.current){let P=We(n,o,r);x(P),m&&Rt(m,P);}L.current=n;},[n,o,r,m]);let u=useCallback(()=>r,[r]),y=useCallback(P=>{P.preventDefault();let N=P.clientY,F=E,W=u(),U=P.currentTarget,$=St(w.current),Q=$?$.scrollTop:0,O=N,X=null,j=(f,z)=>{let k=z-Q,R=f-N+k,i=We(F+R,o,W);return w.current&&(w.current.style.height=`${i}px`),i},re=()=>{if(!$)return;let f=$===document.documentElement||$===document.body?{top:0,bottom:window.innerHeight}:$.getBoundingClientRect(),z=40,k=10,Z=0;O>f.bottom-z?Z=Math.min(1,(O-(f.bottom-z))/z)*k:O<f.top+z&&(Z=-Math.min(1,(f.top+z-O)/z)*k),Z!==0&&($.scrollTop+=Z,j(O,$.scrollTop)),X=requestAnimationFrame(re);};X=requestAnimationFrame(re),Ze({cursor:"row-resize",resizerEl:U,onMove:f=>{O=f.clientY,$&&j(O,$.scrollTop);},onEnd:()=>{X!==null&&cancelAnimationFrame(X);let f=F;w.current&&(f=w.current.getBoundingClientRect().height),f=We(f,o,W),x(f),s&&s(f),m&&Rt(m,f);}});},[E,o,u,s,m]);return t?jsxs("div",{ref:w,className:p,style:{height:`${E}px`,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:[jsx("div",{style:{height:`calc(100% - ${d}px)`,overflow:"hidden"},children:e}),jsx("div",{className:g,style:{height:`${d}px`,cursor:"row-resize",position:"relative",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box",flexShrink:0},onPointerDown:y,role:"separator","aria-orientation":"horizontal","aria-valuenow":Math.round(E),"aria-valuemin":o,"aria-valuemax":r===1/0?void 0:r})]}):jsx("div",{className:p,style:{height:"100%",position:"relative",overflow:"hidden",boxSizing:"border-box"},children:jsx("div",{style:{height:"100%",overflow:"hidden"},children:e})})};function We(e,t,n){return Math.max(t,Math.min(n,e))}function St(e){if(typeof window>"u"||!e)return null;let t=e.parentElement;if(!t)return document.documentElement;let s=window.getComputedStyle(t).overflowY;return s==="auto"||s==="scroll"?t:St(t)}var _e=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"}},Zn={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:s,isOver:o}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:s,style:zn[t]}),o&&jsx("div",{className:n,style:Zn[t]})]})},kn=({id:e,children:t,style:n,locked:s=false})=>{let o=useRef(null),{layout:r,activeId:a,classNames:l,fullscreenPaneId:d,onFullscreenChange:p,locked:g}=le(),{removePane:m,updateTabMetadata:D,selectTab:S,removeTab:x}=He(),w=useContext($e);if(!w)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:E}=w,L=useMemo(()=>oe(r,e),[r,e]),u=L?.id??e,y=L?.tabs??[e],P=L?.activeTabId??e,N=L?.tabsMetadata,F=N?.[e],W=L?.locked??false,U=s||W,$=g||U,Q=g||U,O=a!==null&&a!==e&&(!y.includes(a)||y.length>1)&&!Q,{attributes:X,listeners:j,setNodeRef:re}=useDraggable({id:e,disabled:$}),f=a!==null&&y.includes(a),z=d===e,k=useCallback(()=>jsx("div",{ref:o,id:`zeugma-tab-target-${P}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[P]);useEffect(()=>{let T=o.current;return E(P,T),()=>{E(P,null);}},[P,E]);let Z=useMemo(()=>({isDragging:f,isFullscreen:z,toggleFullscreen:()=>p?.(z?null:e),remove:()=>{z&&p?.(null),m(u);},metadata:F,updateMetadata:T=>{D(e,T);},locked:$,tabs:y,activeTabId:P,selectTab:T=>S(u,T),removeTab:T=>{z&&T===P&&p?.(null),x(T);},tabsMetadata:N,updateTabMetadata:(T,C)=>{D(T,C);},renderActiveTab:k}),[f,z,p,e,x,F,D,$,y,P,S,u,N,k]),R=useMemo(()=>$?{disabled:true}:{...j,...X},[j,X,$]),i=`${l.pane||""} ${U&&l.paneLocked||""}`.trim();return jsx(_e.Provider,{value:R,children:jsxs("div",{ref:re,className:i,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(Z),O&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(T=>jsx(wt,{id:`drop-${T}-${e}`,position:T,activeClassName:l.dropPreview},T))}),a!==null&&a!==e&&Q&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(wt,{id:`drop-locked-${e}`,position:"full",activeClassName:l.lockedPreview||""})})]})})};var An=({children:e,className:t,style:n})=>{let s=useContext(_e);if(!s)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...r}=s;return jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:r,children:e})};var Lt=createContext(void 0),Un=()=>{let e=useContext(Lt);if(!e)throw new Error("useTabContext must be used within a Tab component");return e},zt=({id:e,locked:t=false,children:n,className:s,style:o})=>{let{locked:r,classNames:a={},activeType:l}=le(),{overTabId:d}=Ae(),p=useContext(tt),g=t||r||(p?.locked??false),{attributes:m,listeners:D,setNodeRef:S,isDragging:x}=useDraggable({id:`tab-header-${e}`,disabled:g}),{setNodeRef:w,isOver:E}=useDroppable({id:`tab-drop-${e}`,disabled:g||l==="pane"}),L=j=>{S(j),w(j);},u=E&&d===e,y=p?.tabs||[],P=y.indexOf(e),N=p?.activeTabId,W=P>0&&e!==N&&y[P-1]!==N?jsx("div",{className:a.tabSeparator}):null,U=p?p.activeTabId===e:false,$=p?.tabsMetadata?.[e],Q=useCallback(()=>{p?.selectTab(e);},[p,e]),O=useCallback(()=>{p?.removeTab(e);},[p,e]),X=useMemo(()=>({tabId:e,isActive:U,isDragging:x,isOver:u,metadata:$,locked:g,selectTab:Q,removeTab:O}),[e,U,x,u,$,g,Q,O]);return jsx(Lt.Provider,{value:X,children:jsxs("div",{ref:L,className:s,style:{display:"inline-flex",position:"relative",cursor:g?"default":"grab",...o},...g?{}:D,...g?{}:m,children:[W,n({isDragging:x,isOver:u})]})})};var tt=createContext(void 0);var Zt=(e,t)=>typeof e=="function"?e(t):e,Jn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:s,selectTab:o,removeTab:r,renderTab:a,classNames:l,styles:d})=>{let{classNames:p={},activeType:g}=le(),{overTabId:m,overTabPosition:D}=Ae(),S=useMemo(()=>({tabs:e,activeTabId:t,locked:n,tabsMetadata:s,selectTab:o,removeTab:r}),[e,t,n,s,o,r]),x=ut(e,g,m,D);return jsx(tt.Provider,{value:S,children:jsxs("div",{className:l?.container,style:{display:"flex",alignItems:"center",height:"100%",...d?.container},children:[e.map((w,E)=>{let L=s?.[w],u=Zt(l?.tab,w),y=Zt(d?.tab,w),P=E===x;return jsxs(jt.Fragment,{children:[P&&p.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:p.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:E===0?"none":"translateX(-50%)"}})}),jsx(zt,{id:w,locked:n,className:u,style:y,children:({isDragging:N,isOver:F})=>a({tabId:w,activeTabId:t,isDragging:N,isOver:F,metadata:L,selectTab:o,removeTab:r})})]},w)}),x===e.length&&p.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:p.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};export{Ft as DEFAULT_DRAG_ACTIVATION_DISTANCE,Qn as DEFAULT_RESIZER_SIZE,At as DEFAULT_SNAP_THRESHOLD,An as DragHandle,kn as Pane,Tn as PaneTree,$e as PortalRegistryContext,Dt as ResizableContainer,Jn as Tabs,rn as Zeugma,Ge as ZeugmaActionsContext,Ke as ZeugmaDragContext,Je as ZeugmaStateContext,Ze as createDragSession,Ee as safeJsonStringify,je as useResizer,Un as useTabContext,Ot as useZeugma,He as useZeugmaActions,Vt as useZeugmaContext,Ae as useZeugmaDrag,le as useZeugmaState};//# sourceMappingURL=index.js.map
6
+ `,document.head.appendChild(r),t.setAttribute("data-resizing","true");let s=l=>{n(l);},i=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let l=document.getElementById("zeugma-global-cursor-style");l&&l.remove(),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",i),o();};document.addEventListener("pointermove",s),document.addEventListener("pointerup",i);}var Je=createContext(void 0),qe=createContext(void 0),Ae=createContext(void 0),Ge=createContext(void 0),ne=()=>{let e=useContext(Je);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},Re=()=>{let e=useContext(qe);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},He=()=>{let e=useContext(Ge);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};var zt=()=>{let e=ne(),t=Re();return {...e,...t}};var Oe=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Fe=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function Ve(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 gt(e){let{layout:t,setLayout:n,layoutBeforeDrag:o,setLayoutBeforeDrag:r,activeId:s,setActiveId:i,setActiveType:l,dismissIntentId:p,setDismissIntentId:d,setOverTabId:f,setOverTabPosition:h,containerRef:T,dragActivationDistance:C,enableDragToDismiss:m,dismissThreshold:k,onRemove:L,onDragStart:M,onDragEnd:u,onDismissIntentChange:y,removeTab:N}=e,E=useRef(null),A=rt(s),[J,q]=useState(false);st(J);let B=useSensors(useSensor(Oe,{activationConstraint:{distance:C}}),useSensor(Fe,{activationConstraint:{delay:250,tolerance:5}})),ee=useCallback(D=>{let $=D.active.id.toString().startsWith("tab-header-"),z=pointerWithin(D),R=$?z:z.filter(a=>!a.id.toString().startsWith("tab-drop-"));if(R.length>0)return [...R].sort((P,x)=>{let v=P.id.toString(),U=x.id.toString();if($){let _=v.startsWith("tab-drop-"),G=U.startsWith("tab-drop-");if(_&&!G)return -1;if(!_&&G)return 1}let F=v.startsWith("drop-root-"),g=U.startsWith("drop-root-");return F&&!g?-1:!F&&g?1:0});if($){let a=D.droppableContainers.filter(P=>P.id.toString().startsWith("tab-drop-"));return closestCenter({...D,droppableContainers:a})}return []},[]);return {sensors:B,collisionDetection:ee,onDragStart:D=>{let O=D.active.id.toString(),$=O.startsWith("tab-header-"),z=$?O.substring(11):O;i(z),l($?"tab":"pane"),f(null),h(null);let R=D.activatorEvent;A.current=Ve(R),m&&T.current?E.current=T.current.getBoundingClientRect():E.current=null;let a=t;if($){let P=W(t,z);P&&(a=Ce(t,P.id,z)||t);}r(a),$&&a!==t&&n(a),M&&M(z);},onDragMove:D=>{let{over:O}=D,$=O?.id.toString()||"",z=$.startsWith("drop-locked-");q(b=>b===z?b:z);let R=D.active.id.toString(),a=R.startsWith("tab-header-"),P=a?R.substring(11):R,x=$.match(/^tab-drop-(.+)$/);if(x&&O&&a){let[,b]=x;if(P!==b){let w="before",Z=O.rect,re=D.activatorEvent,K=null;if(A.current)K=A.current.x;else {let Q=Ve(re);Q&&(K=Q.x+D.delta.x);}if(K!==null){let Q=Z.left+Z.width/2;K>Q&&(w="after");}f(Q=>Q===b?Q:b),h(Q=>Q===w?Q:w);}else f(w=>w===null?w:null),h(w=>w===null?w:null);}else f(b=>b===null?b:null),h(b=>b===null?b:null);if(!m)return;let v=E.current;if(!v){p!==null&&(d(null),y?.(null));return}let U=D.activatorEvent,F=null,g=null;if(A.current)F=A.current.x,g=A.current.y;else {let b=Ve(U);b&&(F=b.x+D.delta.x,g=b.y+D.delta.y);}let _=0;if(F!==null&&g!==null){let b=0,w=0;F<v.left?b=v.left-F:F>v.right&&(b=F-v.right),g<v.top?w=v.top-g:g>v.bottom&&(w=g-v.bottom),_=Math.sqrt(b*b+w*w);}else {let b=D.active.rect.current.translated;if(b){let w=b.left+b.width/2,Z=b.top+b.height/2,re=0,K=0;w<v.left?re=v.left-w:w>v.right&&(re=w-v.right),Z<v.top?K=v.top-Z:Z>v.bottom&&(K=Z-v.bottom),_=Math.sqrt(re*re+K*K);}}_>k?p!==P&&(d(P),y?.(P)):p!==null&&(d(null),y?.(null));},onDragEnd:D=>{i(null),l(null),q(false),f(null),h(null);let{active:O,over:$}=D,z=O.id.toString(),R=z.startsWith("tab-header-"),a=R?z.substring(11):z,P=m&&p===a;d(null),y?.(null),E.current=null;let x=o||t;if(r(null),P){L?L(a):N(a),u&&u(a,null,null);return}if(!$){n(x),u&&u(a,null,null);return}let v=$.id.toString();if(v.startsWith("drop-locked-")){n(x),u&&u(a,null,null);return}let U=v.match(/^tab-drop-(.+)$/);if(U){if(!R){n(x),u&&u(a,null,null);return}let[,ce]=U;if(a!==ce){let ue="before",I=$.rect,se=D.activatorEvent,X=null;if(A.current)X=A.current.x;else {let ie=Ve(se);ie&&(X=ie.x+D.delta.x);}if(X!==null){let ie=I.left+I.width/2;X>ie&&(ue="after");}let ge=ke(x,a,ce,ue);n(ge),u&&u(a,ce,{type:"move",position:"center"});}else n(x),u&&u(a,null,null);return}let F=v.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(F){let[,ce,ue]=F,I=ue;I==="start"&&(I="left"),I==="end"&&(I="right");let se=R?fe(x,a):be(x,a),X;if(R){let ie=W(x,a)?.tabsMetadata?.[a];X={type:"pane",id:de(),tabs:[a],activeTabId:a,tabsMetadata:ie?{[a]:ie}:void 0};}else X=j(x,a)??{type:"pane",id:de(),tabs:[a],activeTabId:a};if(se===null)n(X);else {let ge=I==="left"||I==="right",ie=I==="left"||I==="top",c=50;ce==="1/4"?c=ie?25:75:ce==="1/3"&&(c=ie?100/3:200/3),n({type:"split",direction:ge?"row":"column",first:ie?X:se,second:ie?se:X,splitPercentage:c});}u&&u(a,"root",{type:"split",direction:I==="left"||I==="right"?"row":"column",position:I});return}let g=v.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!g){n(x),u&&u(a,null,null);return}let[,_,G]=g,b=R?W(x,a):j(x,a),w=b&&b.id===G,Z=b&&b.tabs.length===1;if(a===G||w&&Z){n(x),u&&u(a,null,null);return}let re=_==="left"||_==="right"?"row":"column",K;if(R){let ue=W(x,a)?.tabsMetadata?.[a];K={type:"pane",id:de(),tabs:[a],activeTabId:a,tabsMetadata:ue?{[a]:ue}:void 0};}else K=j(x,a)??{type:"pane",id:de(),tabs:[a],activeTabId:a};let Q=R?fe(x,a):be(x,a),Se=ye(Q,G,re,_,K);n(Se),u&&u(a,G,{type:"split",direction:re,position:_});},onDragCancel:()=>{i(null),l(null),q(false),f(null),h(null),d(null),y?.(null),E.current=null,o!==null&&(n(o),r(null));}}}var bt=({activeId:e,render:t,className:n})=>{let o=useRef(null);return 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)},[]),jsx("div",{ref:o,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var ht=Jt.memo(({tabId:e,target:t,renderWidget:n})=>{let[o,r]=useState(false),s=useRef(null),{findTabById:i}=ne(),{updateTabMetadata:l}=Re(),d=!!i(e)?.metadata?.openInNewWindow;useEffect(()=>{r(true);},[]);let f=useCallback(()=>{s.current&&(document.adoptNode(s.current),_e("zeugma-hidden-portal-container").appendChild(s.current)),l(e,m=>{if(m)return {...m,openInNewWindow:false}});},[e,l]),{popupWindow:h,popupContainer:T}=at({tabId:e,isOpenedInNewWindow:d,onClose:f});if(useEffect(()=>{if(!o||!s.current)return;let m=s.current;d?T&&h&&(h.document.adoptNode(m),T.appendChild(m)):(document.adoptNode(m),t?t.appendChild(m):_e("zeugma-hidden-portal-container").appendChild(m));},[t,o,d,T,h]),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 C=s.current;return !C||!n?null:createPortal(n(e),C)});var en=e=>{let t=e,{renderPane:n,renderWidget:o,renderDragOverlay:r,classNames:s={},children:i,layout:l,setLayout:p,fullscreenPaneId:d,setFullscreenPaneId:f,locked:h,setLocked:T,findPaneById:C,findPaneContainingTab:m,findTabById:k,activeId:L,activeType:M,dismissIntentId:u,setContainerRef:y,layoutBeforeDrag:N,snapThreshold:E,minSplitPercentage:A,maxSplitPercentage:J,onRemove:q,onResizeStart:B,onResize:ee,onResizeEnd:te,removePane:ae,addPane:oe,addTab:le,updateTabMetadata:D,updatePaneLock:O,selectTab:$,mergeTab:z,removeTab:R,splitPane:a,updateSplitPercentage:P,moveTab:x}=t,{portalTargets:v,registerPortalTarget:U}=it(),[F,g]=useState(null),[_,G]=useState(null),b=gt({...t,setOverTabId:g,setOverTabPosition:G}),w=useCallback(I=>n(I),[n]),Z=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]),re=useCallback((I,se)=>{te&&te(I,se);},[te]),K=useMemo(()=>({layout:l,setLayout:p,renderPane:w,activeId:L,activeType:M,dismissIntentId:u,setContainerRef:y,fullscreenPaneId:d,classNames:Z,onRemove:q,onFullscreenChange:f,snapThreshold:E,onResizeStart:B,onResize:ee,onResizeEnd:re,minSplitPercentage:A,maxSplitPercentage:J,locked:h,setLocked:T,findPaneById:C,findPaneContainingTab:m,findTabById:k}),[l,L,M,u,y,d,Z,q,f,E,B,ee,A,J,p,w,re,h,T,C,m,k]),Q=useMemo(()=>({overTabId:F,overTabPosition:_}),[F,_]),Se=useMemo(()=>({removePane:ae,addPane:oe,addTab:le,updateTabMetadata:D,updatePaneLock:O,selectTab:$,mergeTab:z,removeTab:R,setFullscreenPaneId:f,setLocked:T,splitPane:a,updateSplitPercentage:P,moveTab:x}),[ae,oe,le,D,O,$,z,R,f,T,a,P,x]),ce=useMemo(()=>{let I=new Set;function se(X){X&&(X.type==="pane"?X.tabs.forEach(ge=>{I.add(ge);}):(se(X.first),se(X.second)));}return se(l),N&&se(N),Array.from(I).sort()},[l,L,N]),ue=useMemo(()=>({registerPortalTarget:U}),[U]);return jsx(qe.Provider,{value:Se,children:jsx(Je.Provider,{value:K,children:jsx(Ge.Provider,{value:Q,children:jsxs(Ae.Provider,{value:ue,children:[jsx(DndContext,{id:"zeugma-dnd-context",...b,children:i}),L&&M&&r&&jsx(bt,{activeId:L,render:I=>r(I,M),className:`${s.dragOverlay||""} ${L===u&&s.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:ce.map(I=>jsx(ht,{tabId:I,target:v[I]||null,renderWidget:o},I))})]})})})})};var on={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"}}},rn={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%"}}},sn=({id:e,fraction:t,edge:n,activeClassName:o})=>{let{setNodeRef:r,isOver:s}=useDroppable({id:e}),i={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...rn[n][t]};return jsxs(Fragment,{children:[jsx("div",{ref:r,style:on[n][t]}),s&&jsx("div",{className:o,style:i})]})},Tt=({activeClassName:e})=>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=>jsx(sn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});function Qe({containerRef:e,isRow:t,direction:n,splitPercentage:o,resizerSize:r,snapThreshold:s,layout:i,currentNode:l,onLayoutChange:p,onResizeStart:d,onResizeEnd:f,parentLeft:h,parentTop:T,parentWidth:C,parentHeight:m}){let{onResizeStart:k,onResize:L,onResizeEnd:M,minSplitPercentage:u=5,maxSplitPercentage:y=95,locked:N=false}=ne();return useCallback(E=>{if(N)return;E.preventDefault();let A=e.current;if(!A)return;d&&d(),k&&k(l);let J=A.getBoundingClientRect(),q=E.clientX,B=E.clientY,ee=o,te=E.currentTarget,ae=J.left+J.width*(h/100),oe=J.top+J.height*(T/100),le=J.width*(C/100),D=J.height*(m/100),$=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(R=>R!==te&&R.getAttribute("data-direction")===n).map(R=>{let a=R.getBoundingClientRect();return t?a.left+a.width/2:a.top+a.height/2}),z=ee;ft({cursor:t?"col-resize":"row-resize",resizerEl:te,onMove:R=>{let a=t?(R.clientX-q)/le*100:(R.clientY-B)/D*100,P=ee+a,x=t?ae+(le-r)*(P/100)+r/2:oe+(D-r)*(P/100)+r/2,v=1/0,U=null;for(let G of $){let b=Math.abs(x-G);b<s&&b<v&&(v=b,U=G);}let F=P;U!==null&&(F=t?(U-r/2-ae)/(le-r)*100:(U-r/2-oe)/(D-r)*100);let g=Math.max(u,Math.min(y,F));z=g;let _=Pe(i,l,g);if(_){let{panes:G,splitters:b}=me(_),w=e.current;if(w){for(let Z of G)w.style.setProperty(`--pane-left-${Z.paneId}`,`${Z.left}%`),w.style.setProperty(`--pane-top-${Z.paneId}`,`${Z.top}%`),w.style.setProperty(`--pane-width-${Z.paneId}`,`${Z.width}%`),w.style.setProperty(`--pane-height-${Z.paneId}`,`${Z.height}%`);for(let Z of b)w.style.setProperty(`--splitter-pos-${Z.id}`,`${Z.direction==="row"?Z.left:Z.top}%`);}}L&&L(l,g);},onEnd:()=>{let R=Pe(i,l,z),a=e.current;if(a){let{panes:P,splitters:x}=me(R);for(let v of P)a.style.removeProperty(`--pane-left-${v.paneId}`),a.style.removeProperty(`--pane-top-${v.paneId}`),a.style.removeProperty(`--pane-width-${v.paneId}`),a.style.removeProperty(`--pane-height-${v.paneId}`);for(let v of x)a.style.removeProperty(`--splitter-pos-${v.id}`);}p(R),f&&f(),M&&M(l,z);}});},[e,t,n,o,r,s,i,l,p,d,f,k,L,M,u,y,h,T,C,m])}var mn=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:o})=>{let{layout:r,setLayout:s,classNames:i,locked:l}=ne(),[p,d]=useState(false),{currentNode:f,direction:h,left:T,top:C,width:m,height:k,parentLeft:L,parentTop:M,parentWidth:u,parentHeight:y}=e,N=h==="row",E=Qe({containerRef:o,isRow:N,direction:h,splitPercentage:f.splitPercentage,resizerSize:t,snapThreshold:n,layout:r,currentNode:f,onLayoutChange:s,onResizeStart:()=>d(true),onResizeEnd:()=>d(false),parentLeft:L,parentTop:M,parentWidth:u,parentHeight:y}),A=N?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${T}%) - ${t/2}px)`,top:`calc(${C}% + ${t/2}px)`,width:`${t}px`,height:`calc(${k}% - ${t}px)`,cursor:l?"default":"col-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${T}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${C}%) - ${t/2}px)`,width:`calc(${m}% - ${t}px)`,height:`${t}px`,cursor:l?"default":"row-resize",pointerEvents:l?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:i.resizer||"","data-direction":h,"data-resizing":p||void 0,style:A,onPointerDown:E,role:"separator","aria-valuenow":f.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},gn=Jt.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),bn=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:o,renderPane:r,activeId:s,dismissIntentId:i,setContainerRef:l,fullscreenPaneId:p,snapThreshold:d,locked:f,classNames:h}=ne(),T=n!==void 0?n:d??8,C=e!==void 0?e:o,m=useRef(null),{panes:k,splitters:L}=useMemo(()=>C?me(C):{panes:[],splitters:[]},[C]);if(!C)return null;let M=()=>jsxs(Fragment,{children:[k.map(u=>{let y=p===u.paneId;return jsx("div",{style:{position:"absolute",left:y?"0%":`var(--pane-left-${u.paneId}, ${u.left}%)`,top:y?"0%":`var(--pane-top-${u.paneId}, ${u.top}%)`,width:y?"100%":`var(--pane-width-${u.paneId}, ${u.width}%)`,height:y?"100%":`var(--pane-height-${u.paneId}, ${u.height}%)`,overflow:"hidden",zIndex:y?20:1,display:p&&!y?"none":"block",padding:y?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsx(gn,{paneId:u.paneId,renderPane:r})},u.paneId)}),!p&&L.map(u=>jsx(mn,{splitter:u,resizerSize:t,snapThreshold:T,containerRef:m},u.id))]});if(e===void 0){let u=s!==null&&s===i,y=E=>{l(E),m.current=E;},N=`${h.dashboard||""} ${u&&h.dashboardDismissActive||""} ${f&&h.dashboardLocked||""}`.trim();return jsxs("div",{ref:y,className:N,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[M(),s!==null&&!f&&jsx(Tt,{activeClassName:h.dropPreview})]})}return jsx("div",{ref:m,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:M()})};var Be=createContext(null);var Rn={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"}},wn={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"}},Ct=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:o,isOver:r}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:o,style:Rn[t]}),r&&jsx("div",{className:n,style:wn[t]})]})},Dn=({id:e,children:t,style:n,locked:o=false})=>{let r=useRef(null),{layout:s,activeId:i,classNames:l,fullscreenPaneId:p,onFullscreenChange:d,locked:f}=ne(),{removePane:h,updateTabMetadata:T,selectTab:C,removeTab:m}=Re(),k=useContext(Ae);if(!k)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:L}=k,M=useMemo(()=>j(s,e),[s,e]),u=M?.id??e,y=M?.tabs??[e],N=M?.activeTabId??e,E=M?.tabsMetadata,A=E?.[e],J=M?.locked??false,q=o||J,B=f||q,ee=f||q,te=i!==null&&i!==e&&(!y.includes(i)||y.length>1)&&!ee,{attributes:ae,listeners:oe,setNodeRef:le}=useDraggable({id:e,disabled:B}),D=i!==null&&y.includes(i),O=p===e,$=useCallback(()=>jsx("div",{ref:r,id:`zeugma-tab-target-${N}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[N]);useEffect(()=>{let P=r.current;return L(N,P),()=>{L(N,null);}},[N,L]);let z=useMemo(()=>({isDragging:D,isFullscreen:O,toggleFullscreen:()=>d?.(O?null:e),remove:()=>{O&&d?.(null),h(u);},metadata:A,updateMetadata:P=>{T(e,P);},locked:B,tabs:y,activeTabId:N,selectTab:P=>C(u,P),removeTab:P=>{O&&P===N&&d?.(null),m(P);},tabsMetadata:E,updateTabMetadata:(P,x)=>{T(P,x);},renderActiveTab:$}),[D,O,d,e,m,A,T,B,y,N,C,u,E,$]),R=useMemo(()=>B?{disabled:true}:{...oe,...ae},[oe,ae,B]),a=`${l.pane||""} ${q&&l.paneLocked||""}`.trim();return jsx(Be.Provider,{value:R,children:jsxs("div",{ref:le,className:a,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(z),te&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(P=>jsx(Ct,{id:`drop-${P}-${e}`,position:P,activeClassName:l.dropPreview},P))}),i!==null&&i!==e&&ee&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(Ct,{id:`drop-locked-${e}`,position:"full",activeClassName:l.lockedPreview||""})})]})})};var En=({children:e,className:t,style:n})=>{let o=useContext(Be);if(!o)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:r,...s}=o;return jsx("div",{className:t,style:{cursor:r?"default":"grab",userSelect:r?"auto":"none",touchAction:r?"auto":"none",...n},...r?{}:s,children:e})};var Nt=createContext(void 0),$n=()=>{let e=useContext(Nt);if(!e)throw new Error("useTabContext must be used within a Tab component");return e},Et=({id:e,locked:t=false,children:n,className:o,style:r})=>{let{locked:s,classNames:i={},activeType:l}=ne(),{overTabId:p}=He(),d=useContext(et),f=t||s||(d?.locked??false),{attributes:h,listeners:T,setNodeRef:C,isDragging:m}=useDraggable({id:`tab-header-${e}`,disabled:f}),{setNodeRef:k,isOver:L}=useDroppable({id:`tab-drop-${e}`,disabled:f||l==="pane"}),M=oe=>{C(oe),k(oe);},u=L&&p===e,y=d?.tabs||[],N=y.indexOf(e),E=d?.activeTabId,J=N>0&&e!==E&&y[N-1]!==E?jsx("div",{className:i.tabSeparator}):null,q=d?d.activeTabId===e:false,B=d?.tabsMetadata?.[e],ee=useCallback(()=>{d?.selectTab(e);},[d,e]),te=useCallback(()=>{d?.removeTab(e);},[d,e]),ae=useMemo(()=>({tabId:e,isActive:q,isDragging:m,isOver:u,metadata:B,locked:f,selectTab:ee,removeTab:te}),[e,q,m,u,B,f,ee,te]);return jsx(Nt.Provider,{value:ae,children:jsxs("div",{ref:M,className:o,style:{display:"inline-flex",position:"relative",cursor:f?"default":"grab",...r},...f?{}:T,...f?{}:h,children:[J,n({isDragging:m,isOver:u})]})})};var et=createContext(void 0);var It=(e,t)=>typeof e=="function"?e(t):e,Fn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:o,selectTab:r,removeTab:s,renderTab:i,classNames:l,styles:p})=>{let{classNames:d={},activeType:f}=ne(),{overTabId:h,overTabPosition:T}=He(),C=useMemo(()=>({tabs:e,activeTabId:t,locked:n,tabsMetadata:o,selectTab:r,removeTab:s}),[e,t,n,o,r,s]),m=dt(e,f,h,T);return jsx(et.Provider,{value:C,children:jsxs("div",{className:l?.container,style:{display:"flex",alignItems:"center",height:"100%",...p?.container},children:[e.map((k,L)=>{let M=o?.[k],u=It(l?.tab,k),y=It(p?.tab,k),N=L===m;return jsxs(Jt.Fragment,{children:[N&&d.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:d.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:L===0?"none":"translateX(-50%)"}})}),jsx(Et,{id:k,locked:n,className:u,style:y,children:({isDragging:E,isOver:A})=>i({tabId:k,activeTabId:t,isDragging:E,isOver:A,metadata:M,selectTab:r,removeTab:s})})]},k)}),m===e.length&&d.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:d.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};export{kt as DEFAULT_DRAG_ACTIVATION_DISTANCE,_n as DEFAULT_RESIZER_SIZE,Zt as DEFAULT_SNAP_THRESHOLD,En as DragHandle,Dn as Pane,bn as PaneTree,Ae as PortalRegistryContext,Fn as Tabs,en as Zeugma,qe as ZeugmaActionsContext,Ge as ZeugmaDragContext,Je as ZeugmaStateContext,nt as copyStyles,ft as createDragSession,_e as getOrCreateHiddenContainer,Ie as safeJsonStringify,Qe as useResizer,$n as useTabContext,$t as useZeugma,Re as useZeugmaActions,zt as useZeugmaContext,He as useZeugmaDrag,ne as useZeugmaState};//# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map