react-zeugma 5.4.0 → 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -167,7 +167,7 @@ interface TabsProps {
167
167
  /** Callback when a tab is closed/removed. */
168
168
  removeTab: (id: string) => void;
169
169
  /** Render function for each individual tab content. */
170
- children: (props: {
170
+ renderTab: (props: {
171
171
  tabId: string;
172
172
  activeTabId: string;
173
173
  isDragging: boolean;
@@ -176,16 +176,10 @@ interface TabsProps {
176
176
  selectTab: (id: string) => void;
177
177
  removeTab: (id: string) => void;
178
178
  }) => React__default.ReactNode;
179
- /** Custom CSS classes for Tabs container and tab wrappers. */
180
- classNames?: {
181
- container?: string;
182
- tab?: string | ((tabId: string) => string);
183
- };
184
- /** Custom inline CSS styles for Tabs container and tab wrappers. */
185
- styles?: {
186
- container?: React__default.CSSProperties;
187
- tab?: React__default.CSSProperties | ((tabId: string) => React__default.CSSProperties);
188
- };
179
+ /** Custom CSS classes for Tabs container. */
180
+ className?: string;
181
+ /** Custom inline CSS styles for Tabs container. */
182
+ style?: React__default.CSSProperties;
189
183
  }
190
184
  declare const Tabs: React__default.FC<TabsProps>;
191
185
 
package/dist/index.d.ts CHANGED
@@ -167,7 +167,7 @@ interface TabsProps {
167
167
  /** Callback when a tab is closed/removed. */
168
168
  removeTab: (id: string) => void;
169
169
  /** Render function for each individual tab content. */
170
- children: (props: {
170
+ renderTab: (props: {
171
171
  tabId: string;
172
172
  activeTabId: string;
173
173
  isDragging: boolean;
@@ -176,16 +176,10 @@ interface TabsProps {
176
176
  selectTab: (id: string) => void;
177
177
  removeTab: (id: string) => void;
178
178
  }) => React__default.ReactNode;
179
- /** Custom CSS classes for Tabs container and tab wrappers. */
180
- classNames?: {
181
- container?: string;
182
- tab?: string | ((tabId: string) => string);
183
- };
184
- /** Custom inline CSS styles for Tabs container and tab wrappers. */
185
- styles?: {
186
- container?: React__default.CSSProperties;
187
- tab?: React__default.CSSProperties | ((tabId: string) => React__default.CSSProperties);
188
- };
179
+ /** Custom CSS classes for Tabs container. */
180
+ className?: string;
181
+ /** Custom inline CSS styles for Tabs container. */
182
+ style?: React__default.CSSProperties;
189
183
  }
190
184
  declare const Tabs: React__default.FC<TabsProps>;
191
185
 
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import _t,{createContext,useState,useRef,useCallback,useEffect,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 qe(e){let t=useRef(null);return useEffect(()=>{if(!e){t.current=null;return}let n=r=>{t.current={x:r.clientX,y:r.clientY};},s=r=>{let o=r.touches[0]||r.changedTouches[0];o&&(t.current={x:o.clientX,y:o.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 Je(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function Ge(){let[e,t]=useState({}),n=useRef(true);useEffect(()=>(n.current=true,()=>{n.current=false;}),[]);let s=useCallback((r,o)=>{n.current&&t(i=>i[r]===o?i:{...i,[r]:o});},[]);return {portalTargets:e,registerPortalTarget:s}}var Rt=8,St=8,Cn=4;function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function me(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=me(e.first,t),s=me(e.second,t);return n===null?s:s===null?n:{...e,first:n,second:s}}function pe(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let r=e.tabs.filter(a=>a!==t);if(r.length===0)return null;let o=e.activeTabId;e.activeTabId===t&&(o=r[0]);let i={...e.tabsMetadata};return delete i[t],{...e,tabs:r,activeTabId:o,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}let n=pe(e.first,t),s=pe(e.second,t);return n===null?s:s===null?n:{...e,first:n,second:s}}function Pe(e,t,n,s,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 o=typeof r=="string"?{type:"pane",id:de(),tabs:[r],activeTabId:r}:r,i=s==="left"||s==="top";return {type:"split",direction:n,first:i?o:e,second:i?e:o,splitPercentage:50}}return e}return {...e,first:Pe(e.first,t,n,s,r)||e.first,second:Pe(e.second,t,n,s,r)||e.second}}function Ke(e,t,n){if(e===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0};function s(r,o){return r.type==="pane"?{type:"split",direction:o==="row"?"column":"row",splitPercentage:50,first:r,second:{type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0}}:{...r,second:s(r.second,r.direction)}}return s(e,null)}function ge(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:ge(e.first,t,n)||e.first,second:ge(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 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 Qe(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 Se(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let s=e.tabsMetadata||{},r=s[t],o=n(r),i={...s};return o===void 0?delete i[t]:i[t]=o,{...e,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}return {...e,first:Se(e.first,t,n)??e.first,second:Se(e.second,t,n)??e.second}}function De(e,t,n,s){if(e===null)return null;if(e.type==="pane"){if(e.id===t){let r=[...e.tabs];r.includes(n)||r.push(n);let o=e.tabsMetadata;return s&&(o={...e.tabsMetadata,[n]:s}),{...e,tabs:r,activeTabId:n,tabsMetadata:o}}return e}return {...e,first:De(e.first,t,n,s)||e.first,second:De(e.second,t,n,s)||e.second}}function Ce(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:s,...r}=e;return r}return {...e,locked:n}}return e}return {...e,first:Ce(e.first,t,n)??e.first,second:Ce(e.second,t,n)??e.second}}function we(e,t,n){return e===null?null:e.type==="pane"?e.id===t?{...e,activeTabId:n}:e:{...e,first:we(e.first,t,n)??e.first,second:we(e.second,t,n)??e.second}}function je(e,t,n){if(e===null)return null;let r=Y(e,t)?.tabsMetadata?.[t],o=pe(e,t);if(o===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:r?{[t]:r}:void 0};function i(a){if(a.type==="pane"){if(a.id===n){let u=[...a.tabs];u.includes(t)||u.push(t);let d={...a.tabsMetadata};return r&&(d[t]=r),{...a,tabs:u,activeTabId:t,tabsMetadata:Object.keys(d).length>0?d:void 0}}return a}return {...a,first:i(a.first),second:i(a.second)}}return i(o)}function et(e,t,n,s="before"){if(e===null)return null;let o=Y(e,t)?.tabsMetadata?.[t],i=pe(e,t);if(i===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function a(u){if(u.type==="pane"){if(u.tabs.includes(n)){let y=[...u.tabs].filter(h=>h!==t),m=y.indexOf(n);m<0&&(m=0),s==="after"&&(m+=1),y.splice(m,0,t);let b={...u.tabsMetadata};return o&&(b[t]=o),{...u,tabs:y,activeTabId:t,tabsMetadata:Object.keys(b).length>0?b:void 0}}return u}return {...u,first:a(u.first),second:a(u.second)}}return a(i)}function ue(e,t=0,n=0,s=100,r=100,o="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:s,height:r,node:e}],splitters:[]};let{direction:i,splitPercentage:a,first:u,second:d}=e,m={id:`splitter-${o}-${i}`,currentNode:e,direction:i,left:i==="row"?t+s*(a/100):t,top:i==="column"?n+r*(a/100):n,width:i==="row"?0:s,height:i==="column"?0:r,parentLeft:t,parentTop:n,parentWidth:s,parentHeight:r},b={panes:[],splitters:[]},h={panes:[],splitters:[]};if(i==="row"){let T=s*(a/100);b=ue(u,t,n,T,r,`${o}-L`),h=ue(d,t+T,n,s-T,r,`${o}-R`);}else {let T=r*(a/100);b=ue(u,t,n,s,T,`${o}-T`),h=ue(d,t,n+T,s,r-T,`${o}-B`);}return {panes:[...b.panes,...h.panes],splitters:[m,...b.splitters,...h.splitters]}}function xe(e){try{return JSON.stringify(e)}catch{return ""}}function Dt(e){let{initialLayout:t,layout:n,onChange:s,fullscreenPaneId:r,onFullscreenChange:o,locked:i=false,dragActivationDistance:a=8,snapThreshold:u=8,minSplitPercentage:d=5,maxSplitPercentage:y=95,enableDragToDismiss:m=false,dismissThreshold:b=60,onRemove:h,onDragStart:T,onDragEnd:I,onResizeStart:f,onResize:D,onResizeEnd:g,onDismissIntentChange:C}=e,[x,L]=useState(()=>n!==void 0?n:t??null),[H,W]=useState(()=>xe(n!==void 0?n:null)),[q,Z]=useState(r||null),[G,V]=useState(i),[J,j]=useState(null),[ee,p]=useState(null),[R,k]=useState(null),E=useRef(null),S=useCallback(c=>{E.current=c;},[]),l=useRef(x);l.current=x;let M=useRef(s);M.current=s;let U=useRef(o);U.current=o;let P=useCallback(c=>{Z(c),U.current?.(c);},[]);if(useEffect(()=>{V(i);},[i]),useEffect(()=>{r!==void 0&&Z(r);},[r]),n!==void 0){let c=xe(n);c!==H&&(W(c),L(n));}let v=useCallback(c=>(...w)=>{let A=l.current,B=c(A,...w);xe(A)!==xe(B)&&(l.current=B,L(B),M.current?.(B));},[]),O=useCallback(v((c,w)=>typeof w=="function"?w(c):w),[v]),K=useCallback(v((c,w)=>me(c,w)),[v]),oe=useCallback(v((c,w,A)=>Ke(c,w,A)),[v]),N=useCallback(v((c,w,A,B)=>{let ce=Q(c,w)??Y(c,w);if(!ce)return c;let ye=Y(c,A),Ae=ye&&ye.id===ce.id?c:pe(c,A)??c;return De(Ae,ce.id,A,B)}),[v]),z=useCallback(v((c,w,A,B,ce)=>{let ye=Q(c,w)??Y(c,w);if(!ye)return c;let Ye=Q(c,ce)??Y(c,ce)??{type:"pane",id:ce,tabs:[ce],activeTabId:ce},Ae=me(c,ce);return Pe(Ae,ye.id,A,B,Ye)}),[v]),$=useCallback(v((c,w,A)=>ge(c,w,A)),[v]),se=useCallback(v((c,w,A)=>Se(c,w,A)),[v]),ne=useCallback(v((c,w,A)=>{let B=Q(c,w)??Y(c,w);return B?Ce(c,B.id,A):c}),[v]),ie=useCallback(v((c,w,A)=>{let B=Q(c,w)??Y(c,w);return B?we(c,B.id,A):c}),[v]),ae=useCallback(v((c,w,A)=>{let B=Q(c,A)??Y(c,A);return B?je(c,w,B.id):c}),[v]),F=useCallback(v((c,w,A,B)=>et(c,w,A,B)),[v]),te=useCallback(v((c,w)=>pe(c,w)),[v]),re=useCallback(c=>Q(l.current,c),[]),he=useCallback(c=>Y(l.current,c),[]),Tt=useCallback(c=>Qe(l.current,c),[]);return {layout:x,setLayout:O,fullscreenPaneId:q,setFullscreenPaneId:P,locked:G,setLocked:V,activeId:J,setActiveId:j,activeType:ee,setActiveType:p,dismissIntentId:R,setDismissIntentId:k,containerRef:E,setContainerRef:S,dragActivationDistance:a,snapThreshold:u,minSplitPercentage:d,maxSplitPercentage:y,enableDragToDismiss:m,dismissThreshold:b,onRemove:h,onDragStart:T,onDragEnd:I,onResizeStart:f,onResize:D,onResizeEnd:g,onDismissIntentChange:C,removePane:K,addPane:oe,addTab:N,splitPane:z,updateSplitPercentage:$,updateTabMetadata:se,updatePaneLock:ne,selectTab:ie,mergeTab:ae,moveTab:F,removeTab:te,findPaneById:re,findPaneContainingTab:he,findTabById:Tt}}function Ne({cursor:e,resizerEl:t,onMove:n,onEnd:s}){document.body.classList.add("zeugma-resizing");let r=document.createElement("style");r.id="zeugma-global-cursor-style",r.textContent=`
1
+ import ht,{createContext,useState,useRef,useCallback,useEffect,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 qe(e){let t=useRef(null);return useEffect(()=>{if(!e){t.current=null;return}let n=r=>{t.current={x:r.clientX,y:r.clientY};},s=r=>{let o=r.touches[0]||r.changedTouches[0];o&&(t.current={x:o.clientX,y:o.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 Je(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function Ge(){let[e,t]=useState({}),n=useRef(true);useEffect(()=>(n.current=true,()=>{n.current=false;}),[]);let s=useCallback((r,o)=>{n.current&&t(i=>i[r]===o?i:{...i,[r]:o});},[]);return {portalTargets:e,registerPortalTarget:s}}var St=8,Dt=8,wn=4;function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function me(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=me(e.first,t),s=me(e.second,t);return n===null?s:s===null?n:{...e,first:n,second:s}}function pe(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let r=e.tabs.filter(a=>a!==t);if(r.length===0)return null;let o=e.activeTabId;e.activeTabId===t&&(o=r[0]);let i={...e.tabsMetadata};return delete i[t],{...e,tabs:r,activeTabId:o,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}let n=pe(e.first,t),s=pe(e.second,t);return n===null?s:s===null?n:{...e,first:n,second:s}}function Pe(e,t,n,s,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 o=typeof r=="string"?{type:"pane",id:de(),tabs:[r],activeTabId:r}:r,i=s==="left"||s==="top";return {type:"split",direction:n,first:i?o:e,second:i?e:o,splitPercentage:50}}return e}return {...e,first:Pe(e.first,t,n,s,r)||e.first,second:Pe(e.second,t,n,s,r)||e.second}}function Ke(e,t,n){if(e===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0};function s(r,o){return r.type==="pane"?{type:"split",direction:o==="row"?"column":"row",splitPercentage:50,first:r,second:{type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:n?{[t]:n}:void 0}}:{...r,second:s(r.second,r.direction)}}return s(e,null)}function ge(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:ge(e.first,t,n)||e.first,second:ge(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 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 je(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 Se(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabs.includes(t)){let s=e.tabsMetadata||{},r=s[t],o=n(r),i={...s};return o===void 0?delete i[t]:i[t]=o,{...e,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}return {...e,first:Se(e.first,t,n)??e.first,second:Se(e.second,t,n)??e.second}}function De(e,t,n,s){if(e===null)return null;if(e.type==="pane"){if(e.id===t){let r=[...e.tabs];r.includes(n)||r.push(n);let o=e.tabsMetadata;return s&&(o={...e.tabsMetadata,[n]:s}),{...e,tabs:r,activeTabId:n,tabsMetadata:o}}return e}return {...e,first:De(e.first,t,n,s)||e.first,second:De(e.second,t,n,s)||e.second}}function Ce(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:s,...r}=e;return r}return {...e,locked:n}}return e}return {...e,first:Ce(e.first,t,n)??e.first,second:Ce(e.second,t,n)??e.second}}function we(e,t,n){return e===null?null:e.type==="pane"?e.id===t?{...e,activeTabId:n}:e:{...e,first:we(e.first,t,n)??e.first,second:we(e.second,t,n)??e.second}}function Qe(e,t,n){if(e===null)return null;let r=Y(e,t)?.tabsMetadata?.[t],o=pe(e,t);if(o===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:r?{[t]:r}:void 0};function i(a){if(a.type==="pane"){if(a.id===n){let u=[...a.tabs];u.includes(t)||u.push(t);let p={...a.tabsMetadata};return r&&(p[t]=r),{...a,tabs:u,activeTabId:t,tabsMetadata:Object.keys(p).length>0?p:void 0}}return a}return {...a,first:i(a.first),second:i(a.second)}}return i(o)}function et(e,t,n,s="before"){if(e===null)return null;let o=Y(e,t)?.tabsMetadata?.[t],i=pe(e,t);if(i===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function a(u){if(u.type==="pane"){if(u.tabs.includes(n)){let y=[...u.tabs].filter(S=>S!==t),m=y.indexOf(n);m<0&&(m=0),s==="after"&&(m+=1),y.splice(m,0,t);let b={...u.tabsMetadata};return o&&(b[t]=o),{...u,tabs:y,activeTabId:t,tabsMetadata:Object.keys(b).length>0?b:void 0}}return u}return {...u,first:a(u.first),second:a(u.second)}}return a(i)}function ue(e,t=0,n=0,s=100,r=100,o="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:s,height:r,node:e}],splitters:[]};let{direction:i,splitPercentage:a,first:u,second:p}=e,m={id:`splitter-${o}-${i}`,currentNode:e,direction:i,left:i==="row"?t+s*(a/100):t,top:i==="column"?n+r*(a/100):n,width:i==="row"?0:s,height:i==="column"?0:r,parentLeft:t,parentTop:n,parentWidth:s,parentHeight:r},b={panes:[],splitters:[]},S={panes:[],splitters:[]};if(i==="row"){let D=s*(a/100);b=ue(u,t,n,D,r,`${o}-L`),S=ue(p,t+D,n,s-D,r,`${o}-R`);}else {let D=r*(a/100);b=ue(u,t,n,s,D,`${o}-T`),S=ue(p,t,n+D,s,r-D,`${o}-B`);}return {panes:[...b.panes,...S.panes],splitters:[m,...b.splitters,...S.splitters]}}function xe(e){try{return JSON.stringify(e)}catch{return ""}}function Ct(e){let{initialLayout:t,layout:n,onChange:s,fullscreenPaneId:r,onFullscreenChange:o,locked:i=false,dragActivationDistance:a=8,snapThreshold:u=8,minSplitPercentage:p=5,maxSplitPercentage:y=95,enableDragToDismiss:m=false,dismissThreshold:b=60,onRemove:S,onDragStart:D,onDragEnd:Z,onResizeStart:f,onResize:C,onResizeEnd:g,onDismissIntentChange:T}=e,[h,w]=useState(()=>n!==void 0?n:t??null),[k,E]=useState(()=>xe(n!==void 0?n:null)),[q,A]=useState(r||null),[G,B]=useState(i),[J,Q]=useState(null),[ee,d]=useState(null),[x,H]=useState(null),I=useRef(null),R=useCallback(c=>{I.current=c;},[]),l=useRef(h);l.current=h;let L=useRef(s);L.current=s;let U=useRef(o);U.current=o;let P=useCallback(c=>{A(c),U.current?.(c);},[]);if(useEffect(()=>{B(i);},[i]),useEffect(()=>{r!==void 0&&A(r);},[r]),n!==void 0){let c=xe(n);c!==k&&(E(c),w(n));}let v=useCallback(c=>(...N)=>{let F=l.current,W=c(F,...N);xe(F)!==xe(W)&&(l.current=W,w(W),L.current?.(W));},[]),V=useCallback(v((c,N)=>typeof N=="function"?N(c):N),[v]),K=useCallback(v((c,N)=>me(c,N)),[v]),oe=useCallback(v((c,N,F)=>Ke(c,N,F)),[v]),M=useCallback(v((c,N,F,W)=>{let ce=j(c,N)??Y(c,N);if(!ce)return c;let ye=Y(c,F),He=ye&&ye.id===ce.id?c:pe(c,F)??c;return De(He,ce.id,F,W)}),[v]),z=useCallback(v((c,N,F,W,ce)=>{let ye=j(c,N)??Y(c,N);if(!ye)return c;let Ye=j(c,ce)??Y(c,ce)??{type:"pane",id:ce,tabs:[ce],activeTabId:ce},He=me(c,ce);return Pe(He,ye.id,F,W,Ye)}),[v]),$=useCallback(v((c,N,F)=>ge(c,N,F)),[v]),se=useCallback(v((c,N,F)=>Se(c,N,F)),[v]),ne=useCallback(v((c,N,F)=>{let W=j(c,N)??Y(c,N);return W?Ce(c,W.id,F):c}),[v]),ie=useCallback(v((c,N,F)=>{let W=j(c,N)??Y(c,N);return W?we(c,W.id,F):c}),[v]),ae=useCallback(v((c,N,F)=>{let W=j(c,F)??Y(c,F);return W?Qe(c,N,W.id):c}),[v]),O=useCallback(v((c,N,F,W)=>et(c,N,F,W)),[v]),te=useCallback(v((c,N)=>pe(c,N)),[v]),re=useCallback(c=>j(l.current,c),[]),he=useCallback(c=>Y(l.current,c),[]),yt=useCallback(c=>je(l.current,c),[]);return {layout:h,setLayout:V,fullscreenPaneId:q,setFullscreenPaneId:P,locked:G,setLocked:B,activeId:J,setActiveId:Q,activeType:ee,setActiveType:d,dismissIntentId:x,setDismissIntentId:H,containerRef:I,setContainerRef:R,dragActivationDistance:a,snapThreshold:u,minSplitPercentage:p,maxSplitPercentage:y,enableDragToDismiss:m,dismissThreshold:b,onRemove:S,onDragStart:D,onDragEnd:Z,onResizeStart:f,onResize:C,onResizeEnd:g,onDismissIntentChange:T,removePane:K,addPane:oe,addTab:M,splitPane:z,updateSplitPercentage:$,updateTabMetadata:se,updatePaneLock:ne,selectTab:ie,mergeTab:ae,moveTab:O,removeTab:te,findPaneById:re,findPaneContainingTab:he,findTabById:yt}}function Ne({cursor:e,resizerEl:t,onMove:n,onEnd:s}){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(r),t.setAttribute("data-resizing","true");let o=a=>{n(a);},i=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let a=document.getElementById("zeugma-global-cursor-style");a&&a.remove(),document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",i),s();};document.addEventListener("pointermove",o),document.addEventListener("pointerup",i);}var Ve=createContext(void 0),Be=createContext(void 0),Ie=createContext(void 0),le=()=>{let e=useContext(Ve);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},Me=()=>{let e=useContext(Be);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e};var Ct=()=>{let e=le(),t=Me();return {...e,...t}};var Le=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},ze=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function $e(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 ot(e){let{layout:t,setLayout:n,activeId:s,setActiveId:r,setActiveType:o,dismissIntentId:i,setDismissIntentId:a,setOverTabId:u,setOverTabPosition:d,containerRef:y,dragActivationDistance:m,enableDragToDismiss:b,dismissThreshold:h,onRemove:T,onDragStart:I,onDragEnd:f,onDismissIntentChange:D,removeTab:g,moveTab:C,selectTab:x}=e,L=useRef(null),H=qe(s),[W,q]=useState(false);Je(W);let Z=useSensors(useSensor(Le,{activationConstraint:{distance:m}}),useSensor(ze,{activationConstraint:{delay:250,tolerance:5}})),G=useCallback(p=>{let R=pointerWithin(p);if(R.length>0)return R;if(p.active.id.toString().startsWith("tab-header-")){let E=p.droppableContainers.filter(S=>S.id.toString().startsWith("tab-drop-"));return closestCenter({...p,droppableContainers:E})}return []},[]);return {sensors:Z,collisionDetection:G,onDragStart:p=>{let R=p.active.id.toString(),k=R.startsWith("tab-header-"),E=k?R.substring(11):R;r(E),o(k?"tab":"pane"),u(null),d(null);let S=p.activatorEvent;if(H.current=$e(S),b&&y.current?L.current=y.current.getBoundingClientRect():L.current=null,k){let l=Y(t,E);l&&x(l.id,E);}I&&I(E);},onDragMove:p=>{let{over:R}=p,k=R?.id.toString()||"",E=k.startsWith("drop-locked-");q(E);let S=k.match(/^tab-drop-(.+)$/);if(S&&R){let[,N]=S,z=p.active.id.toString();if((z.startsWith("tab-header-")?z.substring(11):z)!==N){let ne="before",ie=R.rect,ae=p.activatorEvent,F=null;if(H.current)F=H.current.x;else {let te=$e(ae);te&&(F=te.x+p.delta.x);}if(F!==null){let te=ie.left+ie.width/2;F>te&&(ne="after");}u(N),d(ne);}else u(null),d(null);}else u(null),d(null);if(!b)return;let l=p.active.id.toString(),U=l.startsWith("tab-header-")?l.substring(11):l,P=L.current;if(!P){i!==null&&(a(null),D?.(null));return}let v=p.activatorEvent,_=null,O=null;if(H.current)_=H.current.x,O=H.current.y;else {let N=$e(v);N&&(_=N.x+p.delta.x,O=N.y+p.delta.y);}let K=0;if(_!==null&&O!==null){let N=0,z=0;_<P.left?N=P.left-_:_>P.right&&(N=_-P.right),O<P.top?z=P.top-O:O>P.bottom&&(z=O-P.bottom),K=Math.sqrt(N*N+z*z);}else {let N=p.active.rect.current.translated;if(N){let z=N.left+N.width/2,$=N.top+N.height/2,se=0,ne=0;z<P.left?se=P.left-z:z>P.right&&(se=z-P.right),$<P.top?ne=P.top-$:$>P.bottom&&(ne=$-P.bottom),K=Math.sqrt(se*se+ne*ne);}}K>h?i!==U&&(a(U),D?.(U)):i!==null&&(a(null),D?.(null));},onDragEnd:p=>{r(null),o(null),q(false),u(null),d(null);let{active:R,over:k}=p,E=R.id.toString(),S=E.startsWith("tab-header-"),l=S?E.substring(11):E,M=b&&i===l;if(a(null),D?.(null),L.current=null,M){T?T(l):g(l),f&&f(l,null,null);return}if(!k){f&&f(l,null,null);return}let U=k.id.toString();if(U.startsWith("drop-locked-")){f&&f(l,null,null);return}let P=U.match(/^tab-drop-(.+)$/);if(P){let[,ie]=P;if(l!==ie){let ae="before",F=k.rect,te=p.activatorEvent,re=null;if(H.current)re=H.current.x;else {let he=$e(te);he&&(re=he.x+p.delta.x);}if(re!==null){let he=F.left+F.width/2;re>he&&(ae="after");}C(l,ie,ae),f&&f(l,ie,{type:"move",position:"center"});}else f&&f(l,null,null);return}let v=U.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!v){f&&f(l,null,null);return}let[,_,O]=v,K=S?Y(t,l):Q(t,l),oe=K&&K.id===O,N=K&&K.tabs.length===1;if(l===O||oe&&N){f&&f(l,null,null);return}let z=_==="left"||_==="right"?"row":"column",$;if(S){let ae=Y(t,l)?.tabsMetadata?.[l];$={type:"pane",id:de(),tabs:[l],activeTabId:l,tabsMetadata:ae?{[l]:ae}:void 0};}else $=Q(t,l)??{type:"pane",id:de(),tabs:[l],activeTabId:l};let se=S?pe(t,l):me(t,l),ne=Pe(se,O,z,_,$);n(ne),f&&f(l,O,{type:"split",direction:z,position:_});},onDragCancel:()=>{r(null),o(null),q(false),u(null),d(null),a(null),D?.(null),L.current=null;}}}var st=({activeId:e,render:t,className:n})=>{let s=useRef(null);return useEffect(()=>{let r=o=>{s.current&&(s.current.style.transform=`translate(${o.clientX+12}px, ${o.clientY+12}px)`);};return document.addEventListener("pointermove",r),()=>document.removeEventListener("pointermove",r)},[]),jsx("div",{ref:s,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var it=({tabId:e,target:t,renderWidget:n})=>{let[s,r]=useState(false),o=useRef(null);if(useEffect(()=>{r(true);},[]),useEffect(()=>{if(!s||!o.current)return;let a=o.current;if(t)t.appendChild(a);else {let u=document.getElementById("zeugma-hidden-portal-container");u||(u=document.createElement("div"),u.id="zeugma-hidden-portal-container",u.style.display="none",document.body.appendChild(u)),u.appendChild(a);}},[t,s]),useEffect(()=>()=>{o.current&&o.current.remove();},[]),!s)return null;o.current||(o.current=document.createElement("div"),o.current.className=`zeugma-portal-wrapper-${e}`,o.current.style.width="100%",o.current.style.height="100%");let i=o.current;return !i||!n?null:createPortal(n(e),i)};var Bt=e=>{let t=e,{renderPane:n,renderWidget:s,renderDragOverlay:r,classNames:o={},children:i,layout:a,setLayout:u,fullscreenPaneId:d,setFullscreenPaneId:y,locked:m,setLocked:b,findPaneById:h,findPaneContainingTab:T,findTabById:I,activeId:f,activeType:D,dismissIntentId:g,setContainerRef:C,snapThreshold:x,minSplitPercentage:L,maxSplitPercentage:H,onRemove:W,onResizeStart:q,onResize:Z,onResizeEnd:G,removePane:V,addPane:J,addTab:j,updateTabMetadata:ee,updatePaneLock:p,selectTab:R,mergeTab:k,removeTab:E,splitPane:S,updateSplitPercentage:l,moveTab:M}=t,{portalTargets:U,registerPortalTarget:P}=Ge(),[v,_]=useState(null),[O,K]=useState(null),oe=ot({...t,setOverTabId:_,setOverTabPosition:K}),N=useCallback(F=>n(F),[n]),z=useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.dragOverlay,o.resizer,o.dismissPreview,o.dashboardLocked,o.lockedPreview,o.tabDropPreview]),$=useCallback((F,te)=>{G&&G(F,te);},[G]),se=useMemo(()=>({layout:a,setLayout:u,renderPane:N,activeId:f,dismissIntentId:g,overTabId:v,overTabPosition:O,setContainerRef:C,fullscreenPaneId:d,classNames:z,onRemove:W,onFullscreenChange:y,snapThreshold:x,onResizeStart:q,onResize:Z,onResizeEnd:$,minSplitPercentage:L,maxSplitPercentage:H,locked:m,setLocked:b,findPaneById:h,findPaneContainingTab:T,findTabById:I}),[a,f,g,v,O,C,d,z,W,y,x,q,Z,L,H,u,N,$,m,b,h,T,I]),ne=useMemo(()=>({removePane:V,addPane:J,addTab:j,updateTabMetadata:ee,updatePaneLock:p,selectTab:R,mergeTab:k,removeTab:E,setFullscreenPaneId:y,setLocked:b,splitPane:S,updateSplitPercentage:l,moveTab:M}),[V,J,j,ee,p,R,k,E,y,b,S,l,M]),ie=useMemo(()=>{let F=[];function te(re){re&&(re.type==="pane"?F.push(...re.tabs):(te(re.first),te(re.second)));}return te(a),F},[a]),ae=useMemo(()=>({registerPortalTarget:P}),[P]);return jsx(Be.Provider,{value:ne,children:jsx(Ve.Provider,{value:se,children:jsxs(Ie.Provider,{value:ae,children:[jsx(DndContext,{id:"zeugma-dnd-context",...oe,children:i}),f&&D&&r&&jsx(st,{activeId:f,render:F=>r(F,D),className:`${o.dragOverlay||""} ${f===g&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:ie.map(F=>jsx(it,{tabId:F,target:U[F]||null,renderWidget:s},F))})]})})})};function Ue({containerRef:e,isRow:t,direction:n,splitPercentage:s,resizerSize:r,snapThreshold:o,layout:i,currentNode:a,onLayoutChange:u,onResizeStart:d,onResizeEnd:y,parentLeft:m,parentTop:b,parentWidth:h,parentHeight:T}){let{onResizeStart:I,onResize:f,onResizeEnd:D,minSplitPercentage:g=5,maxSplitPercentage:C=95,locked:x=false}=le();return useCallback(L=>{if(x)return;L.preventDefault();let H=e.current;if(!H)return;d&&d(),I&&I(a);let W=H.getBoundingClientRect(),q=L.clientX,Z=L.clientY,G=s,V=L.currentTarget,J=W.left+W.width*(m/100),j=W.top+W.height*(b/100),ee=W.width*(h/100),p=W.height*(T/100),k=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(S=>S!==V&&S.getAttribute("data-direction")===n).map(S=>{let l=S.getBoundingClientRect();return t?l.left+l.width/2:l.top+l.height/2}),E=G;Ne({cursor:t?"col-resize":"row-resize",resizerEl:V,onMove:S=>{let l=t?(S.clientX-q)/ee*100:(S.clientY-Z)/p*100,M=G+l,U=t?J+(ee-r)*(M/100)+r/2:j+(p-r)*(M/100)+r/2,P=1/0,v=null;for(let oe of k){let N=Math.abs(U-oe);N<o&&N<P&&(P=N,v=oe);}let _=M;v!==null&&(_=t?(v-r/2-J)/(ee-r)*100:(v-r/2-j)/(p-r)*100);let O=Math.max(g,Math.min(C,_));E=O;let K=ge(i,a,O);if(K){let{panes:oe,splitters:N}=ue(K),z=e.current;if(z){for(let $ of oe)z.style.setProperty(`--pane-left-${$.paneId}`,`${$.left}%`),z.style.setProperty(`--pane-top-${$.paneId}`,`${$.top}%`),z.style.setProperty(`--pane-width-${$.paneId}`,`${$.width}%`),z.style.setProperty(`--pane-height-${$.paneId}`,`${$.height}%`);for(let $ of N)z.style.setProperty(`--splitter-pos-${$.id}`,`${$.direction==="row"?$.left:$.top}%`);}}f&&f(a,O);},onEnd:()=>{let S=ge(i,a,E),l=e.current;if(l){let{panes:M,splitters:U}=ue(S);for(let P of M)l.style.removeProperty(`--pane-left-${P.paneId}`),l.style.removeProperty(`--pane-top-${P.paneId}`),l.style.removeProperty(`--pane-width-${P.paneId}`),l.style.removeProperty(`--pane-height-${P.paneId}`);for(let P of U)l.style.removeProperty(`--splitter-pos-${P.id}`);}u(S),y&&y(),D&&D(a,E);}});},[e,t,n,s,r,o,i,a,u,d,y,I,f,D,g,C,m,b,h,T])}var Jt=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:s})=>{let{layout:r,setLayout:o,classNames:i,locked:a}=le(),[u,d]=useState(false),{currentNode:y,direction:m,left:b,top:h,width:T,height:I,parentLeft:f,parentTop:D,parentWidth:g,parentHeight:C}=e,x=m==="row",L=Ue({containerRef:s,isRow:x,direction:m,splitPercentage:y.splitPercentage,resizerSize:t,snapThreshold:n,layout:r,currentNode:y,onLayoutChange:o,onResizeStart:()=>d(true),onResizeEnd:()=>d(false),parentLeft:f,parentTop:D,parentWidth:g,parentHeight:C}),H=x?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${b}%) - ${t/2}px)`,top:`calc(${h}% + ${t/2}px)`,width:`${t}px`,height:`calc(${I}% - ${t}px)`,cursor:a?"default":"col-resize",pointerEvents:a?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${b}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${h}%) - ${t/2}px)`,width:`calc(${T}% - ${t}px)`,height:`${t}px`,cursor:a?"default":"row-resize",pointerEvents:a?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:i.resizer||"","data-direction":m,"data-resizing":u||void 0,style:H,onPointerDown:L,role:"separator","aria-valuenow":y.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},Gt=_t.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),Kt=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:s,renderPane:r,activeId:o,dismissIntentId:i,setContainerRef:a,fullscreenPaneId:u,snapThreshold:d,locked:y,classNames:m}=le(),b=n!==void 0?n:d??8,h=e!==void 0?e:s,T=useRef(null),{panes:I,splitters:f}=useMemo(()=>h?ue(h):{panes:[],splitters:[]},[h]);if(!h)return null;let D=()=>jsxs(Fragment,{children:[I.map(g=>{let C=u===g.paneId;return jsx("div",{style:{position:"absolute",left:C?"0%":`var(--pane-left-${g.paneId}, ${g.left}%)`,top:C?"0%":`var(--pane-top-${g.paneId}, ${g.top}%)`,width:C?"100%":`var(--pane-width-${g.paneId}, ${g.width}%)`,height:C?"100%":`var(--pane-height-${g.paneId}, ${g.height}%)`,overflow:"hidden",zIndex:C?20:1,display:u&&!C?"none":"block",padding:C?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsx(Gt,{paneId:g.paneId,renderPane:r})},g.paneId)}),!u&&f.map(g=>jsx(Jt,{splitter:g,resizerSize:t,snapThreshold:b,containerRef:T},g.id))]});if(e===void 0){let g=o!==null&&o===i,C=L=>{a(L),T.current=L;},x=`${m.dashboard||""} ${g&&m.dashboardDismissActive||""} ${y&&m.dashboardLocked||""}`.trim();return jsx("div",{ref:C,className:x,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:D()})}return jsx("div",{ref:T,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:D()})};var ft="zeugma-height:",tn="default-pane";function nn(e){try{let t=localStorage.getItem(ft+e);if(t!==null){let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}catch{}return null}function pt(e,t){try{localStorage.setItem(ft+e,String(Math.round(t)));}catch{}}var mt=({children:e,active:t=true,height:n,onHeightChange:s,minHeight:r=100,maxHeight:o=1/0,persist:i,localStorageKey:a,resizerHeight:u=6,className:d,resizerClassName:y})=>{let m=i?a||tn:null,b=()=>{let x=(m?nn(m):null)??n??400;return Ze(x,r,o)},[h,T]=useState(b),I=useRef(null),f=m?h:n??h,D=useRef(n);useEffect(()=>{if(n!==void 0&&n!==D.current){let x=Ze(n,r,o);T(x),m&&pt(m,x);}D.current=n;},[n,r,o,m]);let g=useCallback(()=>o,[o]),C=useCallback(x=>{x.preventDefault();let L=x.clientY,H=f,W=g(),q=x.currentTarget,Z=gt(I.current),G=Z?Z.scrollTop:0,V=L,J=null,j=(p,R)=>{let k=R-G,S=p-L+k,l=Ze(H+S,r,W);return I.current&&(I.current.style.height=`${l}px`),l},ee=()=>{if(!Z)return;let p=Z===document.documentElement||Z===document.body?{top:0,bottom:window.innerHeight}:Z.getBoundingClientRect(),R=40,k=10,E=0;V>p.bottom-R?E=Math.min(1,(V-(p.bottom-R))/R)*k:V<p.top+R&&(E=-Math.min(1,(p.top+R-V)/R)*k),E!==0&&(Z.scrollTop+=E,j(V,Z.scrollTop)),J=requestAnimationFrame(ee);};J=requestAnimationFrame(ee),Ne({cursor:"row-resize",resizerEl:q,onMove:p=>{V=p.clientY,Z&&j(V,Z.scrollTop);},onEnd:()=>{J!==null&&cancelAnimationFrame(J);let p=H;I.current&&(p=I.current.getBoundingClientRect().height),p=Ze(p,r,W),T(p),s&&s(p),m&&pt(m,p);}});},[f,r,g,s,m]);return t?jsxs("div",{ref:I,className:`zeugma-resizable-container ${d||""}`.trim(),style:{height:`${f}px`,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:[jsx("div",{style:{height:`calc(100% - ${u}px)`,overflow:"hidden"},children:e}),jsx("div",{className:`zeugma-resizable-handle ${y||""}`.trim(),style:{height:`${u}px`,cursor:"row-resize",position:"relative",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box",flexShrink:0},onPointerDown:C,role:"separator","aria-orientation":"horizontal","aria-valuenow":Math.round(f),"aria-valuemin":r,"aria-valuemax":o===1/0?void 0:o})]}):jsx("div",{className:`zeugma-resizable-container disabled ${d||""}`.trim(),style:{height:"100%",position:"relative",overflow:"hidden",boxSizing:"border-box"},children:jsx("div",{style:{height:"100%",overflow:"hidden"},children:e})})};function Ze(e,t,n){return Math.max(t,Math.min(n,e))}function gt(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:gt(t)}var He=createContext(null);var pn={top:{position:"absolute",top:0,left:"25%",width:"50%",height:"25%",zIndex:20,pointerEvents:"auto"},bottom:{position:"absolute",bottom:0,left:"25%",width:"50%",height:"25%",zIndex:20,pointerEvents:"auto"},left:{position:"absolute",top:"25%",left:0,width:"25%",height:"50%",zIndex:20,pointerEvents:"auto"},right:{position:"absolute",top:"25%",right:0,width:"25%",height:"50%",zIndex:20,pointerEvents:"auto"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:20,pointerEvents:"auto",cursor:"not-allowed"}},fn={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"}},bt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:s,isOver:r}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:s,style:pn[t]}),r&&jsx("div",{className:n,style:fn[t]})]})},mn=({id:e,children:t,style:n,locked:s=false})=>{let r=useRef(null),{layout:o,activeId:i,classNames:a,fullscreenPaneId:u,onFullscreenChange:d,locked:y}=le(),{removePane:m,updateTabMetadata:b,selectTab:h,removeTab:T}=Me(),I=useContext(Ie);if(!I)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:f}=I,D=useMemo(()=>Q(o,e),[o,e]),g=D?.id??e,C=D?.tabs??[e],x=D?.activeTabId??e,L=D?.tabsMetadata,H=L?.[e],W=D?.locked??false,q=s||W,Z=y||q,G=y||q,V=i!==null&&i!==e&&(!C.includes(i)||C.length>1)&&!G,{attributes:J,listeners:j,setNodeRef:ee}=useDraggable({id:e,disabled:Z}),p=i!==null&&C.includes(i),R=u===e,k=useCallback(()=>jsx("div",{ref:r,id:`zeugma-tab-target-${x}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[x]);useEffect(()=>{let M=r.current;return f(x,M),()=>{f(x,null);}},[x,f]);let E=useMemo(()=>({isDragging:p,isFullscreen:R,toggleFullscreen:()=>d?.(R?null:e),remove:()=>{R&&d?.(null),m(g);},metadata:H,updateMetadata:M=>{b(e,M);},locked:Z,tabs:C,activeTabId:x,selectTab:M=>h(g,M),removeTab:M=>{R&&M===x&&d?.(null),T(M);},tabsMetadata:L,updateTabMetadata:(M,U)=>{b(M,U);},renderActiveTab:k}),[p,R,d,e,T,H,b,Z,C,x,h,g,L,k]),S=useMemo(()=>Z?{disabled:true}:{...j,...J},[j,J,Z]),l=`${a.pane||""} ${q&&a.paneLocked||""}`.trim();return jsx(He.Provider,{value:S,children:jsxs("div",{ref:ee,className:l,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(E),V&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(M=>jsx(bt,{id:`drop-${M}-${e}`,position:M,activeClassName:a.dropPreview},M))}),i!==null&&i!==e&&G&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(bt,{id:`drop-locked-${e}`,position:"full",activeClassName:a.lockedPreview||""})})]})})};var vn=({children:e,className:t,style:n})=>{let s=useContext(He);if(!s)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:r,...o}=s;return jsx("div",{className:t,style:{cursor:r?"default":"grab",userSelect:r?"auto":"none",touchAction:r?"auto":"none",...n},...r?{}:o,children:e})};var ht=({id:e,locked:t=false,children:n,className:s,style:r})=>{let{locked:o,classNames:i={},overTabId:a,overTabPosition:u}=le(),d=t||o,{attributes:y,listeners:m,setNodeRef:b,isDragging:h}=useDraggable({id:`tab-header-${e}`,disabled:d}),{setNodeRef:T,isOver:I}=useDroppable({id:`tab-drop-${e}`,disabled:d}),f=C=>{b(C),T(C);},D=I&&a===e,g=D?u:null;return jsxs("div",{ref:f,className:s,style:{display:"inline-flex",position:"relative",cursor:d?"default":"grab",...r},...d?{}:m,...d?{}:y,children:[n({isDragging:h,isOver:D}),D&&g&&jsx("div",{className:i.tabDropPreview||"",style:{position:"absolute",top:0,bottom:0,width:"2px",backgroundColor:"#6366f1",left:g==="before"?0:void 0,right:g==="after"?0:void 0,pointerEvents:"none",zIndex:10}})]})};var Rn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:s,selectTab:r,removeTab:o,children:i,classNames:a,styles:u})=>jsx("div",{className:a?.container,style:{display:"flex",alignItems:"center",height:"100%",...u?.container},children:e.map(d=>{let y=s?.[d],m=a?.tab,b=typeof m=="function"?m(d):m,h=u?.tab,T=typeof h=="function"?h(d):h;return jsx(ht,{id:d,locked:n,className:b,style:T,children:({isDragging:I,isOver:f})=>i({tabId:d,activeTabId:t,isDragging:I,isOver:f,metadata:y,selectTab:r,removeTab:o})},d)})});export{St as DEFAULT_DRAG_ACTIVATION_DISTANCE,Cn as DEFAULT_RESIZER_SIZE,Rt as DEFAULT_SNAP_THRESHOLD,vn as DragHandle,mn as Pane,Kt as PaneTree,Ie as PortalRegistryContext,mt as ResizableContainer,Rn as Tabs,Bt as Zeugma,Be as ZeugmaActionsContext,Ve as ZeugmaStateContext,Ne as createDragSession,xe as safeJsonStringify,Ue as useResizer,Dt as useZeugma,Me as useZeugmaActions,Ct as useZeugmaContext,le as useZeugmaState};//# sourceMappingURL=index.js.map
6
+ `,document.head.appendChild(r),t.setAttribute("data-resizing","true");let o=a=>{n(a);},i=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let a=document.getElementById("zeugma-global-cursor-style");a&&a.remove(),document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",i),s();};document.addEventListener("pointermove",o),document.addEventListener("pointerup",i);}var Ve=createContext(void 0),Be=createContext(void 0),Ie=createContext(void 0),le=()=>{let e=useContext(Ve);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},Me=()=>{let e=useContext(Be);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e};var wt=()=>{let e=le(),t=Me();return {...e,...t}};var Le=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},ze=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function $e(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 ot(e){let{layout:t,setLayout:n,activeId:s,setActiveId:r,setActiveType:o,dismissIntentId:i,setDismissIntentId:a,setOverTabId:u,setOverTabPosition:p,containerRef:y,dragActivationDistance:m,enableDragToDismiss:b,dismissThreshold:S,onRemove:D,onDragStart:Z,onDragEnd:f,onDismissIntentChange:C,removeTab:g,moveTab:T,selectTab:h}=e,w=useRef(null),k=qe(s),[E,q]=useState(false);Je(E);let A=useSensors(useSensor(Le,{activationConstraint:{distance:m}}),useSensor(ze,{activationConstraint:{delay:250,tolerance:5}})),G=useCallback(d=>{let x=pointerWithin(d);if(x.length>0)return x;if(d.active.id.toString().startsWith("tab-header-")){let I=d.droppableContainers.filter(R=>R.id.toString().startsWith("tab-drop-"));return closestCenter({...d,droppableContainers:I})}return []},[]);return {sensors:A,collisionDetection:G,onDragStart:d=>{let x=d.active.id.toString(),H=x.startsWith("tab-header-"),I=H?x.substring(11):x;r(I),o(H?"tab":"pane"),u(null),p(null);let R=d.activatorEvent;if(k.current=$e(R),b&&y.current?w.current=y.current.getBoundingClientRect():w.current=null,H){let l=Y(t,I);l&&h(l.id,I);}Z&&Z(I);},onDragMove:d=>{let{over:x}=d,H=x?.id.toString()||"",I=H.startsWith("drop-locked-");q(I);let R=H.match(/^tab-drop-(.+)$/);if(R&&x){let[,M]=R,z=d.active.id.toString();if((z.startsWith("tab-header-")?z.substring(11):z)!==M){let ne="before",ie=x.rect,ae=d.activatorEvent,O=null;if(k.current)O=k.current.x;else {let te=$e(ae);te&&(O=te.x+d.delta.x);}if(O!==null){let te=ie.left+ie.width/2;O>te&&(ne="after");}u(M),p(ne);}else u(null),p(null);}else u(null),p(null);if(!b)return;let l=d.active.id.toString(),U=l.startsWith("tab-header-")?l.substring(11):l,P=w.current;if(!P){i!==null&&(a(null),C?.(null));return}let v=d.activatorEvent,_=null,V=null;if(k.current)_=k.current.x,V=k.current.y;else {let M=$e(v);M&&(_=M.x+d.delta.x,V=M.y+d.delta.y);}let K=0;if(_!==null&&V!==null){let M=0,z=0;_<P.left?M=P.left-_:_>P.right&&(M=_-P.right),V<P.top?z=P.top-V:V>P.bottom&&(z=V-P.bottom),K=Math.sqrt(M*M+z*z);}else {let M=d.active.rect.current.translated;if(M){let z=M.left+M.width/2,$=M.top+M.height/2,se=0,ne=0;z<P.left?se=P.left-z:z>P.right&&(se=z-P.right),$<P.top?ne=P.top-$:$>P.bottom&&(ne=$-P.bottom),K=Math.sqrt(se*se+ne*ne);}}K>S?i!==U&&(a(U),C?.(U)):i!==null&&(a(null),C?.(null));},onDragEnd:d=>{r(null),o(null),q(false),u(null),p(null);let{active:x,over:H}=d,I=x.id.toString(),R=I.startsWith("tab-header-"),l=R?I.substring(11):I,L=b&&i===l;if(a(null),C?.(null),w.current=null,L){D?D(l):g(l),f&&f(l,null,null);return}if(!H){f&&f(l,null,null);return}let U=H.id.toString();if(U.startsWith("drop-locked-")){f&&f(l,null,null);return}let P=U.match(/^tab-drop-(.+)$/);if(P){let[,ie]=P;if(l!==ie){let ae="before",O=H.rect,te=d.activatorEvent,re=null;if(k.current)re=k.current.x;else {let he=$e(te);he&&(re=he.x+d.delta.x);}if(re!==null){let he=O.left+O.width/2;re>he&&(ae="after");}T(l,ie,ae),f&&f(l,ie,{type:"move",position:"center"});}else f&&f(l,null,null);return}let v=U.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!v){f&&f(l,null,null);return}let[,_,V]=v,K=R?Y(t,l):j(t,l),oe=K&&K.id===V,M=K&&K.tabs.length===1;if(l===V||oe&&M){f&&f(l,null,null);return}let z=_==="left"||_==="right"?"row":"column",$;if(R){let ae=Y(t,l)?.tabsMetadata?.[l];$={type:"pane",id:de(),tabs:[l],activeTabId:l,tabsMetadata:ae?{[l]:ae}:void 0};}else $=j(t,l)??{type:"pane",id:de(),tabs:[l],activeTabId:l};let se=R?pe(t,l):me(t,l),ne=Pe(se,V,z,_,$);n(ne),f&&f(l,V,{type:"split",direction:z,position:_});},onDragCancel:()=>{r(null),o(null),q(false),u(null),p(null),a(null),C?.(null),w.current=null;}}}var st=({activeId:e,render:t,className:n})=>{let s=useRef(null);return useEffect(()=>{let r=o=>{s.current&&(s.current.style.transform=`translate(${o.clientX+12}px, ${o.clientY+12}px)`);};return document.addEventListener("pointermove",r),()=>document.removeEventListener("pointermove",r)},[]),jsx("div",{ref:s,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var it=({tabId:e,target:t,renderWidget:n})=>{let[s,r]=useState(false),o=useRef(null);if(useEffect(()=>{r(true);},[]),useEffect(()=>{if(!s||!o.current)return;let a=o.current;if(t)t.appendChild(a);else {let u=document.getElementById("zeugma-hidden-portal-container");u||(u=document.createElement("div"),u.id="zeugma-hidden-portal-container",u.style.display="none",document.body.appendChild(u)),u.appendChild(a);}},[t,s]),useEffect(()=>()=>{o.current&&o.current.remove();},[]),!s)return null;o.current||(o.current=document.createElement("div"),o.current.className=`zeugma-portal-wrapper-${e}`,o.current.style.width="100%",o.current.style.height="100%");let i=o.current;return !i||!n?null:createPortal(n(e),i)};var Wt=e=>{let t=e,{renderPane:n,renderWidget:s,renderDragOverlay:r,classNames:o={},children:i,layout:a,setLayout:u,fullscreenPaneId:p,setFullscreenPaneId:y,locked:m,setLocked:b,findPaneById:S,findPaneContainingTab:D,findTabById:Z,activeId:f,activeType:C,dismissIntentId:g,setContainerRef:T,snapThreshold:h,minSplitPercentage:w,maxSplitPercentage:k,onRemove:E,onResizeStart:q,onResize:A,onResizeEnd:G,removePane:B,addPane:J,addTab:Q,updateTabMetadata:ee,updatePaneLock:d,selectTab:x,mergeTab:H,removeTab:I,splitPane:R,updateSplitPercentage:l,moveTab:L}=t,{portalTargets:U,registerPortalTarget:P}=Ge(),[v,_]=useState(null),[V,K]=useState(null),oe=ot({...t,setOverTabId:_,setOverTabPosition:K}),M=useCallback(O=>n(O),[n]),z=useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.dragOverlay,o.resizer,o.dismissPreview,o.dashboardLocked,o.lockedPreview,o.tabDropPreview]),$=useCallback((O,te)=>{G&&G(O,te);},[G]),se=useMemo(()=>({layout:a,setLayout:u,renderPane:M,activeId:f,dismissIntentId:g,overTabId:v,overTabPosition:V,setContainerRef:T,fullscreenPaneId:p,classNames:z,onRemove:E,onFullscreenChange:y,snapThreshold:h,onResizeStart:q,onResize:A,onResizeEnd:$,minSplitPercentage:w,maxSplitPercentage:k,locked:m,setLocked:b,findPaneById:S,findPaneContainingTab:D,findTabById:Z}),[a,f,g,v,V,T,p,z,E,y,h,q,A,w,k,u,M,$,m,b,S,D,Z]),ne=useMemo(()=>({removePane:B,addPane:J,addTab:Q,updateTabMetadata:ee,updatePaneLock:d,selectTab:x,mergeTab:H,removeTab:I,setFullscreenPaneId:y,setLocked:b,splitPane:R,updateSplitPercentage:l,moveTab:L}),[B,J,Q,ee,d,x,H,I,y,b,R,l,L]),ie=useMemo(()=>{let O=[];function te(re){re&&(re.type==="pane"?O.push(...re.tabs):(te(re.first),te(re.second)));}return te(a),O},[a]),ae=useMemo(()=>({registerPortalTarget:P}),[P]);return jsx(Be.Provider,{value:ne,children:jsx(Ve.Provider,{value:se,children:jsxs(Ie.Provider,{value:ae,children:[jsx(DndContext,{id:"zeugma-dnd-context",...oe,children:i}),f&&C&&r&&jsx(st,{activeId:f,render:O=>r(O,C),className:`${o.dragOverlay||""} ${f===g&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:ie.map(O=>jsx(it,{tabId:O,target:U[O]||null,renderWidget:s},O))})]})})})};function Ue({containerRef:e,isRow:t,direction:n,splitPercentage:s,resizerSize:r,snapThreshold:o,layout:i,currentNode:a,onLayoutChange:u,onResizeStart:p,onResizeEnd:y,parentLeft:m,parentTop:b,parentWidth:S,parentHeight:D}){let{onResizeStart:Z,onResize:f,onResizeEnd:C,minSplitPercentage:g=5,maxSplitPercentage:T=95,locked:h=false}=le();return useCallback(w=>{if(h)return;w.preventDefault();let k=e.current;if(!k)return;p&&p(),Z&&Z(a);let E=k.getBoundingClientRect(),q=w.clientX,A=w.clientY,G=s,B=w.currentTarget,J=E.left+E.width*(m/100),Q=E.top+E.height*(b/100),ee=E.width*(S/100),d=E.height*(D/100),H=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(R=>R!==B&&R.getAttribute("data-direction")===n).map(R=>{let l=R.getBoundingClientRect();return t?l.left+l.width/2:l.top+l.height/2}),I=G;Ne({cursor:t?"col-resize":"row-resize",resizerEl:B,onMove:R=>{let l=t?(R.clientX-q)/ee*100:(R.clientY-A)/d*100,L=G+l,U=t?J+(ee-r)*(L/100)+r/2:Q+(d-r)*(L/100)+r/2,P=1/0,v=null;for(let oe of H){let M=Math.abs(U-oe);M<o&&M<P&&(P=M,v=oe);}let _=L;v!==null&&(_=t?(v-r/2-J)/(ee-r)*100:(v-r/2-Q)/(d-r)*100);let V=Math.max(g,Math.min(T,_));I=V;let K=ge(i,a,V);if(K){let{panes:oe,splitters:M}=ue(K),z=e.current;if(z){for(let $ of oe)z.style.setProperty(`--pane-left-${$.paneId}`,`${$.left}%`),z.style.setProperty(`--pane-top-${$.paneId}`,`${$.top}%`),z.style.setProperty(`--pane-width-${$.paneId}`,`${$.width}%`),z.style.setProperty(`--pane-height-${$.paneId}`,`${$.height}%`);for(let $ of M)z.style.setProperty(`--splitter-pos-${$.id}`,`${$.direction==="row"?$.left:$.top}%`);}}f&&f(a,V);},onEnd:()=>{let R=ge(i,a,I),l=e.current;if(l){let{panes:L,splitters:U}=ue(R);for(let P of L)l.style.removeProperty(`--pane-left-${P.paneId}`),l.style.removeProperty(`--pane-top-${P.paneId}`),l.style.removeProperty(`--pane-width-${P.paneId}`),l.style.removeProperty(`--pane-height-${P.paneId}`);for(let P of U)l.style.removeProperty(`--splitter-pos-${P.id}`);}u(R),y&&y(),C&&C(a,I);}});},[e,t,n,s,r,o,i,a,u,p,y,Z,f,C,g,T,m,b,S,D])}var Gt=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:s})=>{let{layout:r,setLayout:o,classNames:i,locked:a}=le(),[u,p]=useState(false),{currentNode:y,direction:m,left:b,top:S,width:D,height:Z,parentLeft:f,parentTop:C,parentWidth:g,parentHeight:T}=e,h=m==="row",w=Ue({containerRef:s,isRow:h,direction:m,splitPercentage:y.splitPercentage,resizerSize:t,snapThreshold:n,layout:r,currentNode:y,onLayoutChange:o,onResizeStart:()=>p(true),onResizeEnd:()=>p(false),parentLeft:f,parentTop:C,parentWidth:g,parentHeight:T}),k=h?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${b}%) - ${t/2}px)`,top:`calc(${S}% + ${t/2}px)`,width:`${t}px`,height:`calc(${Z}% - ${t}px)`,cursor:a?"default":"col-resize",pointerEvents:a?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${b}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${S}%) - ${t/2}px)`,width:`calc(${D}% - ${t}px)`,height:`${t}px`,cursor:a?"default":"row-resize",pointerEvents:a?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:i.resizer||"","data-direction":m,"data-resizing":u||void 0,style:k,onPointerDown:w,role:"separator","aria-valuenow":y.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},Kt=ht.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),jt=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:s,renderPane:r,activeId:o,dismissIntentId:i,setContainerRef:a,fullscreenPaneId:u,snapThreshold:p,locked:y,classNames:m}=le(),b=n!==void 0?n:p??8,S=e!==void 0?e:s,D=useRef(null),{panes:Z,splitters:f}=useMemo(()=>S?ue(S):{panes:[],splitters:[]},[S]);if(!S)return null;let C=()=>jsxs(Fragment,{children:[Z.map(g=>{let T=u===g.paneId;return jsx("div",{style:{position:"absolute",left:T?"0%":`var(--pane-left-${g.paneId}, ${g.left}%)`,top:T?"0%":`var(--pane-top-${g.paneId}, ${g.top}%)`,width:T?"100%":`var(--pane-width-${g.paneId}, ${g.width}%)`,height:T?"100%":`var(--pane-height-${g.paneId}, ${g.height}%)`,overflow:"hidden",zIndex:T?20:1,display:u&&!T?"none":"block",padding:T?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsx(Kt,{paneId:g.paneId,renderPane:r})},g.paneId)}),!u&&f.map(g=>jsx(Gt,{splitter:g,resizerSize:t,snapThreshold:b,containerRef:D},g.id))]});if(e===void 0){let g=o!==null&&o===i,T=w=>{a(w),D.current=w;},h=`${m.dashboard||""} ${g&&m.dashboardDismissActive||""} ${y&&m.dashboardLocked||""}`.trim();return jsx("div",{ref:T,className:h,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:C()})}return jsx("div",{ref:D,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:C()})};var ft="zeugma-height:",nn="default-pane";function rn(e){try{let t=localStorage.getItem(ft+e);if(t!==null){let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}catch{}return null}function pt(e,t){try{localStorage.setItem(ft+e,String(Math.round(t)));}catch{}}var mt=({children:e,active:t=true,height:n,onHeightChange:s,minHeight:r=100,maxHeight:o=1/0,persist:i,localStorageKey:a,resizerHeight:u=6,className:p,resizerClassName:y})=>{let m=i?a||nn:null,b=()=>{let h=(m?rn(m):null)??n??400;return Ze(h,r,o)},[S,D]=useState(b),Z=useRef(null),f=m?S:n??S,C=useRef(n);useEffect(()=>{if(n!==void 0&&n!==C.current){let h=Ze(n,r,o);D(h),m&&pt(m,h);}C.current=n;},[n,r,o,m]);let g=useCallback(()=>o,[o]),T=useCallback(h=>{h.preventDefault();let w=h.clientY,k=f,E=g(),q=h.currentTarget,A=gt(Z.current),G=A?A.scrollTop:0,B=w,J=null,Q=(d,x)=>{let H=x-G,R=d-w+H,l=Ze(k+R,r,E);return Z.current&&(Z.current.style.height=`${l}px`),l},ee=()=>{if(!A)return;let d=A===document.documentElement||A===document.body?{top:0,bottom:window.innerHeight}:A.getBoundingClientRect(),x=40,H=10,I=0;B>d.bottom-x?I=Math.min(1,(B-(d.bottom-x))/x)*H:B<d.top+x&&(I=-Math.min(1,(d.top+x-B)/x)*H),I!==0&&(A.scrollTop+=I,Q(B,A.scrollTop)),J=requestAnimationFrame(ee);};J=requestAnimationFrame(ee),Ne({cursor:"row-resize",resizerEl:q,onMove:d=>{B=d.clientY,A&&Q(B,A.scrollTop);},onEnd:()=>{J!==null&&cancelAnimationFrame(J);let d=k;Z.current&&(d=Z.current.getBoundingClientRect().height),d=Ze(d,r,E),D(d),s&&s(d),m&&pt(m,d);}});},[f,r,g,s,m]);return t?jsxs("div",{ref:Z,className:`zeugma-resizable-container ${p||""}`.trim(),style:{height:`${f}px`,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:[jsx("div",{style:{height:`calc(100% - ${u}px)`,overflow:"hidden"},children:e}),jsx("div",{className:`zeugma-resizable-handle ${y||""}`.trim(),style:{height:`${u}px`,cursor:"row-resize",position:"relative",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box",flexShrink:0},onPointerDown:T,role:"separator","aria-orientation":"horizontal","aria-valuenow":Math.round(f),"aria-valuemin":r,"aria-valuemax":o===1/0?void 0:o})]}):jsx("div",{className:`zeugma-resizable-container disabled ${p||""}`.trim(),style:{height:"100%",position:"relative",overflow:"hidden",boxSizing:"border-box"},children:jsx("div",{style:{height:"100%",overflow:"hidden"},children:e})})};function Ze(e,t,n){return Math.max(t,Math.min(n,e))}function gt(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:gt(t)}var Ae=createContext(null);var fn={top:{position:"absolute",top:0,left:"25%",width:"50%",height:"25%",zIndex:20,pointerEvents:"auto"},bottom:{position:"absolute",bottom:0,left:"25%",width:"50%",height:"25%",zIndex:20,pointerEvents:"auto"},left:{position:"absolute",top:"25%",left:0,width:"25%",height:"50%",zIndex:20,pointerEvents:"auto"},right:{position:"absolute",top:"25%",right:0,width:"25%",height:"50%",zIndex:20,pointerEvents:"auto"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:20,pointerEvents:"auto",cursor:"not-allowed"}},mn={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"}},bt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:s,isOver:r}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:s,style:fn[t]}),r&&jsx("div",{className:n,style:mn[t]})]})},gn=({id:e,children:t,style:n,locked:s=false})=>{let r=useRef(null),{layout:o,activeId:i,classNames:a,fullscreenPaneId:u,onFullscreenChange:p,locked:y}=le(),{removePane:m,updateTabMetadata:b,selectTab:S,removeTab:D}=Me(),Z=useContext(Ie);if(!Z)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:f}=Z,C=useMemo(()=>j(o,e),[o,e]),g=C?.id??e,T=C?.tabs??[e],h=C?.activeTabId??e,w=C?.tabsMetadata,k=w?.[e],E=C?.locked??false,q=s||E,A=y||q,G=y||q,B=i!==null&&i!==e&&(!T.includes(i)||T.length>1)&&!G,{attributes:J,listeners:Q,setNodeRef:ee}=useDraggable({id:e,disabled:A}),d=i!==null&&T.includes(i),x=u===e,H=useCallback(()=>jsx("div",{ref:r,id:`zeugma-tab-target-${h}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[h]);useEffect(()=>{let L=r.current;return f(h,L),()=>{f(h,null);}},[h,f]);let I=useMemo(()=>({isDragging:d,isFullscreen:x,toggleFullscreen:()=>p?.(x?null:e),remove:()=>{x&&p?.(null),m(g);},metadata:k,updateMetadata:L=>{b(e,L);},locked:A,tabs:T,activeTabId:h,selectTab:L=>S(g,L),removeTab:L=>{x&&L===h&&p?.(null),D(L);},tabsMetadata:w,updateTabMetadata:(L,U)=>{b(L,U);},renderActiveTab:H}),[d,x,p,e,D,k,b,A,T,h,S,g,w,H]),R=useMemo(()=>A?{disabled:true}:{...Q,...J},[Q,J,A]),l=`${a.pane||""} ${q&&a.paneLocked||""}`.trim();return jsx(Ae.Provider,{value:R,children:jsxs("div",{ref:ee,className:l,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(I),B&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(L=>jsx(bt,{id:`drop-${L}-${e}`,position:L,activeClassName:a.dropPreview},L))}),i!==null&&i!==e&&G&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(bt,{id:`drop-locked-${e}`,position:"full",activeClassName:a.lockedPreview||""})})]})})};var hn=({children:e,className:t,style:n})=>{let s=useContext(Ae);if(!s)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:r,...o}=s;return jsx("div",{className:t,style:{cursor:r?"default":"grab",userSelect:r?"auto":"none",touchAction:r?"auto":"none",...n},...r?{}:o,children:e})};var Pt=({id:e,locked:t=false,children:n,className:s,style:r})=>{let{locked:o,classNames:i={},overTabId:a,overTabPosition:u}=le(),p=t||o,{attributes:y,listeners:m,setNodeRef:b,isDragging:S}=useDraggable({id:`tab-header-${e}`,disabled:p}),{setNodeRef:D,isOver:Z}=useDroppable({id:`tab-drop-${e}`,disabled:p}),f=E=>{b(E),D(E);},C=Z&&a===e,g=C?u:null,T=n({isDragging:S,isOver:C}),h=s,w=r,k=T;if(ht.isValidElement(T)){let E=T.props;E&&typeof E=="object"&&("className"in E&&typeof E.className=="string"&&(h=`${s||""} ${E.className}`.trim()),"style"in E&&E.style&&typeof E.style=="object"&&(w={...r,...E.style})),k=ht.cloneElement(T,{className:void 0,style:void 0});}return jsxs("div",{ref:f,className:h,style:{display:"inline-flex",position:"relative",cursor:p?"default":"grab",...w},...p?{}:m,...p?{}:y,children:[k,C&&g&&jsx("div",{className:i.tabDropPreview||"",style:{position:"absolute",top:0,bottom:0,width:"2px",backgroundColor:"#6366f1",left:g==="before"?0:void 0,right:g==="after"?0:void 0,pointerEvents:"none",zIndex:10}})]})};var Sn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:s,selectTab:r,removeTab:o,renderTab:i,className:a,style:u})=>jsx("div",{className:a,style:{display:"flex",alignItems:"center",height:"100%",...u},children:e.map(p=>{let y=s?.[p];return jsx(Pt,{id:p,locked:n,children:({isDragging:m,isOver:b})=>i({tabId:p,activeTabId:t,isDragging:m,isOver:b,metadata:y,selectTab:r,removeTab:o})},p)})});export{Dt as DEFAULT_DRAG_ACTIVATION_DISTANCE,wn as DEFAULT_RESIZER_SIZE,St as DEFAULT_SNAP_THRESHOLD,hn as DragHandle,gn as Pane,jt as PaneTree,Ie as PortalRegistryContext,mt as ResizableContainer,Sn as Tabs,Wt as Zeugma,Be as ZeugmaActionsContext,Ve as ZeugmaStateContext,Ne as createDragSession,xe as safeJsonStringify,Ue as useResizer,Ct as useZeugma,Me as useZeugmaActions,wt as useZeugmaContext,le as useZeugmaState};//# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map