react-zeugma 5.7.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -4
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/{types-ByBIeqg_.d.cts → types-Kf7gkm94.d.cts} +32 -39
- package/dist/{types-ByBIeqg_.d.ts → types-Kf7gkm94.d.ts} +32 -39
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +7 -2
- package/dist/utils.d.ts +7 -2
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PortalRegistryValue, Z as ZeugmaActionsValue, a as ZeugmaDragStateValue, b as
|
|
2
|
-
export {
|
|
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';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import React__default, { ReactNode } from 'react';
|
|
5
5
|
|
|
@@ -34,7 +34,7 @@ declare function createDragSession({ cursor, resizerEl, onMove, onEnd }: DragSes
|
|
|
34
34
|
|
|
35
35
|
declare function safeJsonStringify(val: unknown): string;
|
|
36
36
|
|
|
37
|
-
declare const ZeugmaStateContext: React.Context<
|
|
37
|
+
declare const ZeugmaStateContext: React.Context<ZeugmaStateValue | undefined>;
|
|
38
38
|
declare const ZeugmaActionsContext: React.Context<ZeugmaActionsValue | undefined>;
|
|
39
39
|
declare const PortalRegistryContext: React.Context<PortalRegistryValue | undefined>;
|
|
40
40
|
declare const ZeugmaDragContext: React.Context<ZeugmaDragStateValue | undefined>;
|
|
@@ -207,4 +207,4 @@ interface TabRenderProps {
|
|
|
207
207
|
isOver: boolean;
|
|
208
208
|
}
|
|
209
209
|
|
|
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,
|
|
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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PortalRegistryValue, Z as ZeugmaActionsValue, a as ZeugmaDragStateValue, b as
|
|
2
|
-
export {
|
|
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';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import React__default, { ReactNode } from 'react';
|
|
5
5
|
|
|
@@ -34,7 +34,7 @@ declare function createDragSession({ cursor, resizerEl, onMove, onEnd }: DragSes
|
|
|
34
34
|
|
|
35
35
|
declare function safeJsonStringify(val: unknown): string;
|
|
36
36
|
|
|
37
|
-
declare const ZeugmaStateContext: React.Context<
|
|
37
|
+
declare const ZeugmaStateContext: React.Context<ZeugmaStateValue | undefined>;
|
|
38
38
|
declare const ZeugmaActionsContext: React.Context<ZeugmaActionsValue | undefined>;
|
|
39
39
|
declare const PortalRegistryContext: React.Context<PortalRegistryValue | undefined>;
|
|
40
40
|
declare const ZeugmaDragContext: React.Context<ZeugmaDragStateValue | undefined>;
|
|
@@ -207,4 +207,4 @@ interface TabRenderProps {
|
|
|
207
207
|
isOver: boolean;
|
|
208
208
|
}
|
|
209
209
|
|
|
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,
|
|
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 };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Gt,{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){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 ot(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function rt(){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 zt=8,$t=8,Un=4;function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function ge(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=ge(e.first,t),s=ge(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 o=e.tabs.filter(i=>i!==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=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,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:Pe(e.first,t,n,s,o)||e.first,second:Pe(e.second,t,n,s,o)||e.second}}function st(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 be(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:be(e.first,t,n)||e.first,second:be(e.second,t,n)||e.second}:e}function ne(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:ne(e.first,t)??ne(e.second,t)}function q(e,t){return e===null?null:e.type==="pane"?e.tabs.includes(t)?e:null:q(e.first,t)??q(e.second,t)}function at(e,t){let n=q(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 we(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:we(e.first,t,n)??e.first,second:we(e.second,t,n)??e.second}}function Ee(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:Ee(e.first,t,n,s)||e.first,second:Ee(e.second,t,n,s)||e.second}}function Ne(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:Ne(e.first,t,n)??e.first,second:Ne(e.second,t,n)??e.second}}function ye(e,t,n){return e===null?null:e.type==="pane"?e.id===t?{...e,activeTabId:n}:e:{...e,first:ye(e.first,t,n)??e.first,second:ye(e.second,t,n)??e.second}}function it(e,t,n){if(e===null)return null;let o=q(e,t)?.tabsMetadata?.[t],r=pe(e,t);if(r===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function a(i){if(i.type==="pane"){if(i.id===n){let d=[...i.tabs];d.includes(t)||d.push(t);let p={...i.tabsMetadata};return o&&(p[t]=o),{...i,tabs:d,activeTabId:t,tabsMetadata:Object.keys(p).length>0?p:void 0}}return i}return {...i,first:a(i.first),second:a(i.second)}}return a(r)}function Me(e,t,n,s="before"){if(e===null)return null;let r=q(e,t)?.tabsMetadata?.[t],a=pe(e,t);if(a===null)return {type:"pane",id:de(),tabs:[t],activeTabId:t,tabsMetadata:r?{[t]:r}:void 0};function i(d){if(d.type==="pane"){if(d.tabs.includes(n)){let g=[...d.tabs].filter(C=>C!==t),m=g.indexOf(n);m<0&&(m=0),s==="after"&&(m+=1),g.splice(m,0,t);let y={...d.tabsMetadata};return r&&(y[t]=r),{...d,tabs:g,activeTabId:t,tabsMetadata:Object.keys(y).length>0?y:void 0}}return d}return {...d,first:i(d.first),second:i(d.second)}}return i(a)}function ue(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:i,first:d,second:p}=e,m={id:`splitter-${r}-${a}`,currentNode:e,direction:a,left:a==="row"?t+s*(i/100):t,top:a==="column"?n+o*(i/100):n,width:a==="row"?0:s,height:a==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:s,parentHeight:o},y={panes:[],splitters:[]},C={panes:[],splitters:[]};if(a==="row"){let T=s*(i/100);y=ue(d,t,n,T,o,`${r}-L`),C=ue(p,t+T,n,s-T,o,`${r}-R`);}else {let T=o*(i/100);y=ue(d,t,n,s,T,`${r}-T`),C=ue(p,t,n+T,s,o-T,`${r}-B`);}return {panes:[...y.panes,...C.panes],splitters:[m,...y.splitters,...C.splitters]}}function lt(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 Se(e){try{return JSON.stringify(e)}catch{return ""}}function Ht(e){let{initialLayout:t,layout:n,onChange:s,fullscreenPaneId:o,onFullscreenChange:r,locked:a=false,dragActivationDistance:i=8,snapThreshold:d=8,minSplitPercentage:p=5,maxSplitPercentage:g=95,enableDragToDismiss:m=false,dismissThreshold:y=60,onRemove:C,onDragStart:T,onDragEnd:S,onResizeStart:w,onResize:L,onResizeEnd:c,onDismissIntentChange:P}=e,[v,E]=useState(()=>n!==void 0?n:t??null),[A,V]=useState(()=>Se(n!==void 0?n:null)),[B,z]=useState(o||null),[G,F]=useState(a),[Y,K]=useState(null),[oe,f]=useState(null),[Z,$]=useState(null),[N,D]=useState(null),l=useRef(null),x=useCallback(u=>{l.current=u;},[]),M=useRef(v);M.current=v;let R=useRef(s);R.current=s;let Q=useRef(r);Q.current=r;let X=useCallback(u=>{z(u),Q.current?.(u);},[]);if(useEffect(()=>{F(a);},[a]),useEffect(()=>{o!==void 0&&z(o);},[o]),n!==void 0){let u=Se(n);u!==A&&(V(u),E(n));}let b=useCallback(u=>(...k)=>{let O=M.current,_=u(O,...k);Se(O)!==Se(_)&&(M.current=_,E(_),R.current?.(_));},[]),re=useCallback(b((u,k)=>typeof k=="function"?k(u):k),[b]),h=useCallback(b((u,k)=>ge(u,k)),[b]),I=useCallback(b((u,k,O)=>st(u,k,O)),[b]),H=useCallback(b((u,k,O,_)=>{let le=ne(u,k)??q(u,k);if(!le)return u;let Ce=q(u,O),Ue=Ce&&Ce.id===le.id?u:pe(u,O)??u;return Ee(Ue,le.id,O,_)}),[b]),ee=useCallback(b((u,k,O,_,le)=>{let Ce=ne(u,k)??q(u,k);if(!Ce)return u;let et=ne(u,le)??q(u,le)??{type:"pane",id:le,tabs:[le],activeTabId:le},Ue=ge(u,le);return Pe(Ue,Ce.id,O,_,et)}),[b]),te=useCallback(b((u,k,O)=>be(u,k,O)),[b]),W=useCallback(b((u,k,O)=>we(u,k,O)),[b]),ce=useCallback(b((u,k,O)=>{let _=ne(u,k)??q(u,k);return _?Ne(u,_.id,O):u}),[b]),Te=useCallback(b((u,k,O)=>{let _=ne(u,k)??q(u,k);return _?ye(u,_.id,O):u}),[b]),De=useCallback(b((u,k,O)=>{let _=ne(u,O)??q(u,O);return _?it(u,k,_.id):u}),[b]),U=useCallback(b((u,k,O,_)=>Me(u,k,O,_)),[b]),ie=useCallback(b((u,k)=>pe(u,k)),[b]),ae=useCallback(u=>ne(M.current,u),[]),We=useCallback(u=>q(M.current,u),[]),Lt=useCallback(u=>at(M.current,u),[]);return {layout:v,setLayout:re,layoutBeforeDrag:Y,setLayoutBeforeDrag:K,fullscreenPaneId:B,setFullscreenPaneId:X,locked:G,setLocked:F,activeId:oe,setActiveId:f,activeType:Z,setActiveType:$,dismissIntentId:N,setDismissIntentId:D,containerRef:l,setContainerRef:x,dragActivationDistance:i,snapThreshold:d,minSplitPercentage:p,maxSplitPercentage:g,enableDragToDismiss:m,dismissThreshold:y,onRemove:C,onDragStart:T,onDragEnd:S,onResizeStart:w,onResize:L,onResizeEnd:c,onDismissIntentChange:P,removePane:h,addPane:I,addTab:H,splitPane:ee,updateSplitPercentage:te,updateTabMetadata:W,updatePaneLock:ce,selectTab:Te,mergeTab:De,moveTab:U,removeTab:ie,findPaneById:ae,findPaneContainingTab:We,findTabById:Lt}}function Le({cursor:e,resizerEl:t,onMove:n,onEnd:s}){document.body.classList.add("zeugma-resizing");let o=document.createElement("style");o.id="zeugma-global-cursor-style",o.textContent=`
|
|
2
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=i=>{n(i);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let i=document.getElementById("zeugma-global-cursor-style");i&&i.remove(),document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",a),s();};document.addEventListener("pointermove",o),document.addEventListener("pointerup",a);}var Be=createContext(void 0),We=createContext(void 0),Me=createContext(void 0),Ue=createContext(void 0),ie=()=>{let e=useContext(Be);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},Le=()=>{let e=useContext(We);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},it=()=>{let e=useContext(Ue);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};var kt=()=>{let e=ie(),t=Le();return {...e,...t}};var Ze=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},ke=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 ct(e){let{layout:t,setLayout:n,activeId:s,setActiveId:r,setActiveType:o,dismissIntentId:a,setDismissIntentId:i,setOverTabId:u,setOverTabPosition:g,containerRef:p,dragActivationDistance:f,enableDragToDismiss:h,dismissThreshold:C,onRemove:D,onDragStart:M,onDragEnd:m,onDismissIntentChange:N,removeTab:v,moveTab:y,selectTab:P}=e,Z=useRef(null),z=je(s),[F,B]=useState(false);et(F);let A=useSensors(useSensor(Ze,{activationConstraint:{distance:f}}),useSensor(ke,{activationConstraint:{delay:250,tolerance:5}})),J=useCallback(d=>{let $=d.active.id.toString().startsWith("tab-header-"),I=pointerWithin(d),x=$?I:I.filter(l=>!l.id.toString().startsWith("tab-drop-"));if(x.length>0)return x;if($){let l=d.droppableContainers.filter(S=>S.id.toString().startsWith("tab-drop-"));return closestCenter({...d,droppableContainers:l})}return []},[]);return {sensors:A,collisionDetection:J,onDragStart:d=>{let w=d.active.id.toString(),$=w.startsWith("tab-header-"),I=$?w.substring(11):w;r(I),o($?"tab":"pane"),u(null),g(null);let x=d.activatorEvent;if(z.current=$e(x),h&&p.current?Z.current=p.current.getBoundingClientRect():Z.current=null,$){let l=X(t,I);l&&P(l.id,I);}M&&M(I);},onDragMove:d=>{let{over:w}=d,$=w?.id.toString()||"",I=$.startsWith("drop-locked-");B(b=>b===I?b:I);let x=d.active.id.toString(),l=x.startsWith("tab-header-"),S=l?x.substring(11):x,Q=$.match(/^tab-drop-(.+)$/);if(Q&&w&&l){let[,b]=Q;if(S!==b){let E="before",k=w.rect,re=d.activatorEvent,te=null;if(z.current)te=z.current.x;else {let U=$e(re);U&&(te=U.x+d.delta.x);}if(te!==null){let U=k.left+k.width/2;te>U&&(E="after");}u(U=>U===b?U:b),g(U=>U===E?U:E);}else u(E=>E===null?E:null),g(E=>E===null?E:null);}else u(b=>b===null?b:null),g(b=>b===null?b:null);if(!h)return;let R=Z.current;if(!R){a!==null&&(i(null),N?.(null));return}let T=d.activatorEvent,Y=null,O=null;if(z.current)Y=z.current.x,O=z.current.y;else {let b=$e(T);b&&(Y=b.x+d.delta.x,O=b.y+d.delta.y);}let ee=0;if(Y!==null&&O!==null){let b=0,E=0;Y<R.left?b=R.left-Y:Y>R.right&&(b=Y-R.right),O<R.top?E=R.top-O:O>R.bottom&&(E=O-R.bottom),ee=Math.sqrt(b*b+E*E);}else {let b=d.active.rect.current.translated;if(b){let E=b.left+b.width/2,k=b.top+b.height/2,re=0,te=0;E<R.left?re=R.left-E:E>R.right&&(re=E-R.right),k<R.top?te=R.top-k:k>R.bottom&&(te=k-R.bottom),ee=Math.sqrt(re*re+te*te);}}ee>C?a!==S&&(i(S),N?.(S)):a!==null&&(i(null),N?.(null));},onDragEnd:d=>{r(null),o(null),B(false),u(null),g(null);let{active:w,over:$}=d,I=w.id.toString(),x=I.startsWith("tab-header-"),l=x?I.substring(11):I,S=h&&a===l;if(i(null),N?.(null),Z.current=null,S){D?D(l):v(l),m&&m(l,null,null);return}if(!$){m&&m(l,null,null);return}let Q=$.id.toString();if(Q.startsWith("drop-locked-")){m&&m(l,null,null);return}let R=Q.match(/^tab-drop-(.+)$/);if(R){if(!x){m&&m(l,null,null);return}let[,U]=R;if(l!==U){let ce="before",Pe=$.rect,j=d.activatorEvent,oe=null;if(z.current)oe=z.current.x;else {let se=$e(j);se&&(oe=se.x+d.delta.x);}if(oe!==null){let se=Pe.left+Pe.width/2;oe>se&&(ce="after");}y(l,U,ce),m&&m(l,U,{type:"move",position:"center"});}else m&&m(l,null,null);return}let T=Q.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!T){m&&m(l,null,null);return}let[,Y,O]=T,ee=x?X(t,l):ne(t,l),ae=ee&&ee.id===O,b=ee&&ee.tabs.length===1;if(l===O||ae&&b){m&&m(l,null,null);return}let E=Y==="left"||Y==="right"?"row":"column",k;if(x){let ce=X(t,l)?.tabsMetadata?.[l];k={type:"pane",id:de(),tabs:[l],activeTabId:l,tabsMetadata:ce?{[l]:ce}:void 0};}else k=ne(t,l)??{type:"pane",id:de(),tabs:[l],activeTabId:l};let re=x?pe(t,l):me(t,l),te=Te(re,O,E,Y,k);n(te),m&&m(l,O,{type:"split",direction:E,position:Y});},onDragCancel:()=>{r(null),o(null),B(false),u(null),g(null),i(null),N?.(null),Z.current=null;}}}var ut=({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 dt=Yt.memo(({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 i=o.current;if(t)t.appendChild(i);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(i);}},[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 a=o.current;return !a||!n?null:createPortal(n(e),a)});var Kt=e=>{let t=e,{renderPane:n,renderWidget:s,renderDragOverlay:r,classNames:o={},children:a,layout:i,setLayout:u,fullscreenPaneId:g,setFullscreenPaneId:p,locked:f,setLocked:h,findPaneById:C,findPaneContainingTab:D,findTabById:M,activeId:m,activeType:N,dismissIntentId:v,setContainerRef:y,snapThreshold:P,minSplitPercentage:Z,maxSplitPercentage:z,onRemove:F,onResizeStart:B,onResize:A,onResizeEnd:J,removePane:V,addPane:W,addTab:G,updateTabMetadata:K,updatePaneLock:d,selectTab:w,mergeTab:$,removeTab:I,splitPane:x,updateSplitPercentage:l,moveTab:S}=t,{portalTargets:Q,registerPortalTarget:R}=tt(),[T,Y]=useState(null),[O,ee]=useState(null),ae=ct({...t,setOverTabId:Y,setOverTabPosition:ee}),b=useCallback(j=>n(j),[n]),E=useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.dragOverlay,o.resizer,o.dismissPreview,o.dashboardLocked,o.lockedPreview,o.tabDropPreview,o.tabSeparator]),k=useCallback((j,oe)=>{J&&J(j,oe);},[J]),re=useMemo(()=>({layout:i,setLayout:u,renderPane:b,activeId:m,activeType:N,dismissIntentId:v,setContainerRef:y,fullscreenPaneId:g,classNames:E,onRemove:F,onFullscreenChange:p,snapThreshold:P,onResizeStart:B,onResize:A,onResizeEnd:k,minSplitPercentage:Z,maxSplitPercentage:z,locked:f,setLocked:h,findPaneById:C,findPaneContainingTab:D,findTabById:M}),[i,m,N,v,y,g,E,F,p,P,B,A,Z,z,u,b,k,f,h,C,D,M]),te=useMemo(()=>({overTabId:T,overTabPosition:O}),[T,O]),U=useMemo(()=>({removePane:V,addPane:W,addTab:G,updateTabMetadata:K,updatePaneLock:d,selectTab:w,mergeTab:$,removeTab:I,setFullscreenPaneId:p,setLocked:h,splitPane:x,updateSplitPercentage:l,moveTab:S}),[V,W,G,K,d,w,$,I,p,h,x,l,S]),ce=useMemo(()=>{let j=[];function oe(se){se&&(se.type==="pane"?j.push(...se.tabs):(oe(se.first),oe(se.second)));}return oe(i),j},[i]),Pe=useMemo(()=>({registerPortalTarget:R}),[R]);return jsx(We.Provider,{value:U,children:jsx(Be.Provider,{value:re,children:jsx(Ue.Provider,{value:te,children:jsxs(Me.Provider,{value:Pe,children:[jsx(DndContext,{id:"zeugma-dnd-context",...ae,children:a}),m&&N&&r&&jsx(ut,{activeId:m,render:j=>r(j,N),className:`${o.dragOverlay||""} ${m===v&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:ce.map(j=>jsx(dt,{tabId:j,target:Q[j]||null,renderWidget:s},j))})]})})})})};function Ye({containerRef:e,isRow:t,direction:n,splitPercentage:s,resizerSize:r,snapThreshold:o,layout:a,currentNode:i,onLayoutChange:u,onResizeStart:g,onResizeEnd:p,parentLeft:f,parentTop:h,parentWidth:C,parentHeight:D}){let{onResizeStart:M,onResize:m,onResizeEnd:N,minSplitPercentage:v=5,maxSplitPercentage:y=95,locked:P=false}=ie();return useCallback(Z=>{if(P)return;Z.preventDefault();let z=e.current;if(!z)return;g&&g(),M&&M(i);let F=z.getBoundingClientRect(),B=Z.clientX,A=Z.clientY,J=s,V=Z.currentTarget,W=F.left+F.width*(f/100),G=F.top+F.height*(h/100),K=F.width*(C/100),d=F.height*(D/100),$=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(x=>x!==V&&x.getAttribute("data-direction")===n).map(x=>{let l=x.getBoundingClientRect();return t?l.left+l.width/2:l.top+l.height/2}),I=J;Ne({cursor:t?"col-resize":"row-resize",resizerEl:V,onMove:x=>{let l=t?(x.clientX-B)/K*100:(x.clientY-A)/d*100,S=J+l,Q=t?W+(K-r)*(S/100)+r/2:G+(d-r)*(S/100)+r/2,R=1/0,T=null;for(let ae of $){let b=Math.abs(Q-ae);b<o&&b<R&&(R=b,T=ae);}let Y=S;T!==null&&(Y=t?(T-r/2-W)/(K-r)*100:(T-r/2-G)/(d-r)*100);let O=Math.max(v,Math.min(y,Y));I=O;let ee=ge(a,i,O);if(ee){let{panes:ae,splitters:b}=ue(ee),E=e.current;if(E){for(let k of ae)E.style.setProperty(`--pane-left-${k.paneId}`,`${k.left}%`),E.style.setProperty(`--pane-top-${k.paneId}`,`${k.top}%`),E.style.setProperty(`--pane-width-${k.paneId}`,`${k.width}%`),E.style.setProperty(`--pane-height-${k.paneId}`,`${k.height}%`);for(let k of b)E.style.setProperty(`--splitter-pos-${k.id}`,`${k.direction==="row"?k.left:k.top}%`);}}m&&m(i,O);},onEnd:()=>{let x=ge(a,i,I),l=e.current;if(l){let{panes:S,splitters:Q}=ue(x);for(let R of S)l.style.removeProperty(`--pane-left-${R.paneId}`),l.style.removeProperty(`--pane-top-${R.paneId}`),l.style.removeProperty(`--pane-width-${R.paneId}`),l.style.removeProperty(`--pane-height-${R.paneId}`);for(let R of Q)l.style.removeProperty(`--splitter-pos-${R.id}`);}u(x),p&&p(),N&&N(i,I);}});},[e,t,n,s,r,o,a,i,u,g,p,M,m,N,v,y,f,h,C,D])}var on=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:s})=>{let{layout:r,setLayout:o,classNames:a,locked:i}=ie(),[u,g]=useState(false),{currentNode:p,direction:f,left:h,top:C,width:D,height:M,parentLeft:m,parentTop:N,parentWidth:v,parentHeight:y}=e,P=f==="row",Z=Ye({containerRef:s,isRow:P,direction:f,splitPercentage:p.splitPercentage,resizerSize:t,snapThreshold:n,layout:r,currentNode:p,onLayoutChange:o,onResizeStart:()=>g(true),onResizeEnd:()=>g(false),parentLeft:m,parentTop:N,parentWidth:v,parentHeight:y}),z=P?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${h}%) - ${t/2}px)`,top:`calc(${C}% + ${t/2}px)`,width:`${t}px`,height:`calc(${M}% - ${t}px)`,cursor:i?"default":"col-resize",pointerEvents:i?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${h}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${C}%) - ${t/2}px)`,width:`calc(${D}% - ${t}px)`,height:`${t}px`,cursor:i?"default":"row-resize",pointerEvents:i?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:a.resizer||"","data-direction":f,"data-resizing":u||void 0,style:z,onPointerDown:Z,role:"separator","aria-valuenow":p.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},sn=Yt.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),an=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:s,renderPane:r,activeId:o,dismissIntentId:a,setContainerRef:i,fullscreenPaneId:u,snapThreshold:g,locked:p,classNames:f}=ie(),h=n!==void 0?n:g??8,C=e!==void 0?e:s,D=useRef(null),{panes:M,splitters:m}=useMemo(()=>C?ue(C):{panes:[],splitters:[]},[C]);if(!C)return null;let N=()=>jsxs(Fragment,{children:[M.map(v=>{let y=u===v.paneId;return jsx("div",{style:{position:"absolute",left:y?"0%":`var(--pane-left-${v.paneId}, ${v.left}%)`,top:y?"0%":`var(--pane-top-${v.paneId}, ${v.top}%)`,width:y?"100%":`var(--pane-width-${v.paneId}, ${v.width}%)`,height:y?"100%":`var(--pane-height-${v.paneId}, ${v.height}%)`,overflow:"hidden",zIndex:y?20:1,display:u&&!y?"none":"block",padding:y?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsx(sn,{paneId:v.paneId,renderPane:r})},v.paneId)}),!u&&m.map(v=>jsx(on,{splitter:v,resizerSize:t,snapThreshold:h,containerRef:D},v.id))]});if(e===void 0){let v=o!==null&&o===a,y=Z=>{i(Z),D.current=Z;},P=`${f.dashboard||""} ${v&&f.dashboardDismissActive||""} ${p&&f.dashboardLocked||""}`.trim();return jsx("div",{ref:y,className:P,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:N()})}return jsx("div",{ref:D,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:N()})};var ht="zeugma-height:",dn="default-pane";function pn(e){try{let t=localStorage.getItem(ht+e);if(t!==null){let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}catch{}return null}function vt(e,t){try{localStorage.setItem(ht+e,String(Math.round(t)));}catch{}}var Pt=({children:e,active:t=true,height:n,onHeightChange:s,minHeight:r=100,maxHeight:o=1/0,persist:a,localStorageKey:i,resizerHeight:u=6,className:g,resizerClassName:p})=>{let f=a?i||dn:null,h=()=>{let P=(f?pn(f):null)??n??400;return ze(P,r,o)},[C,D]=useState(h),M=useRef(null),m=f?C:n??C,N=useRef(n);useEffect(()=>{if(n!==void 0&&n!==N.current){let P=ze(n,r,o);D(P),f&&vt(f,P);}N.current=n;},[n,r,o,f]);let v=useCallback(()=>o,[o]),y=useCallback(P=>{P.preventDefault();let Z=P.clientY,z=m,F=v(),B=P.currentTarget,A=Tt(M.current),J=A?A.scrollTop:0,V=Z,W=null,G=(d,w)=>{let $=w-J,x=d-Z+$,l=ze(z+x,r,F);return M.current&&(M.current.style.height=`${l}px`),l},K=()=>{if(!A)return;let d=A===document.documentElement||A===document.body?{top:0,bottom:window.innerHeight}:A.getBoundingClientRect(),w=40,$=10,I=0;V>d.bottom-w?I=Math.min(1,(V-(d.bottom-w))/w)*$:V<d.top+w&&(I=-Math.min(1,(d.top+w-V)/w)*$),I!==0&&(A.scrollTop+=I,G(V,A.scrollTop)),W=requestAnimationFrame(K);};W=requestAnimationFrame(K),Ne({cursor:"row-resize",resizerEl:B,onMove:d=>{V=d.clientY,A&&G(V,A.scrollTop);},onEnd:()=>{W!==null&&cancelAnimationFrame(W);let d=z;M.current&&(d=M.current.getBoundingClientRect().height),d=ze(d,r,F),D(d),s&&s(d),f&&vt(f,d);}});},[m,r,v,s,f]);return t?jsxs("div",{ref:M,className:g,style:{height:`${m}px`,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:[jsx("div",{style:{height:`calc(100% - ${u}px)`,overflow:"hidden"},children:e}),jsx("div",{className:p,style:{height:`${u}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(m),"aria-valuemin":r,"aria-valuemax":o===1/0?void 0:o})]}):jsx("div",{className:g,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 Tt(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:Tt(t)}var He=createContext(null);var xn={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"}},yn={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"}},xt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:s,isOver:r}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:s,style:xn[t]}),r&&jsx("div",{className:n,style:yn[t]})]})},Sn=({id:e,children:t,style:n,locked:s=false})=>{let r=useRef(null),{layout:o,activeId:a,classNames:i,fullscreenPaneId:u,onFullscreenChange:g,locked:p}=ie(),{removePane:f,updateTabMetadata:h,selectTab:C,removeTab:D}=Le(),M=useContext(Me);if(!M)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:m}=M,N=useMemo(()=>ne(o,e),[o,e]),v=N?.id??e,y=N?.tabs??[e],P=N?.activeTabId??e,Z=N?.tabsMetadata,z=Z?.[e],F=N?.locked??false,B=s||F,A=p||B,J=p||B,V=a!==null&&a!==e&&(!y.includes(a)||y.length>1)&&!J,{attributes:W,listeners:G,setNodeRef:K}=useDraggable({id:e,disabled:A}),d=a!==null&&y.includes(a),w=u===e,$=useCallback(()=>jsx("div",{ref:r,id:`zeugma-tab-target-${P}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[P]);useEffect(()=>{let S=r.current;return m(P,S),()=>{m(P,null);}},[P,m]);let I=useMemo(()=>({isDragging:d,isFullscreen:w,toggleFullscreen:()=>g?.(w?null:e),remove:()=>{w&&g?.(null),f(v);},metadata:z,updateMetadata:S=>{h(e,S);},locked:A,tabs:y,activeTabId:P,selectTab:S=>C(v,S),removeTab:S=>{w&&S===P&&g?.(null),D(S);},tabsMetadata:Z,updateTabMetadata:(S,Q)=>{h(S,Q);},renderActiveTab:$}),[d,w,g,e,D,z,h,A,y,P,C,v,Z,$]),x=useMemo(()=>A?{disabled:true}:{...G,...W},[G,W,A]),l=`${i.pane||""} ${B&&i.paneLocked||""}`.trim();return jsx(He.Provider,{value:x,children:jsxs("div",{ref:K,className:l,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(I),V&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(S=>jsx(xt,{id:`drop-${S}-${e}`,position:S,activeClassName:i.dropPreview},S))}),a!==null&&a!==e&&J&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(xt,{id:`drop-locked-${e}`,position:"full",activeClassName:i.lockedPreview||""})})]})})};var Dn=({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 Ct=createContext(void 0),Ln=()=>{let e=useContext(Ct);if(!e)throw new Error("useTabContext must be used within a Tab component");return e},Dt=({id:e,locked:t=false,children:n,className:s,style:r})=>{let{locked:o,classNames:a={},activeType:i}=ie(),{overTabId:u,overTabPosition:g}=it(),p=useContext(Je),f=t||o||(p?.locked??false),{attributes:h,listeners:C,setNodeRef:D,isDragging:M}=useDraggable({id:`tab-header-${e}`,disabled:f}),{setNodeRef:m,isOver:N}=useDroppable({id:`tab-drop-${e}`,disabled:f||i==="pane"}),v=w=>{D(w),m(w);},y=N&&u===e,P=y?g:null,Z=y&&P?jsx("div",{className:a.tabDropPreview,style:{left:P==="before"?0:void 0,right:P==="after"?0:void 0}}):null,z=p?.tabs||[],F=z.indexOf(e),B=p?.activeTabId,J=F>0&&e!==B&&z[F-1]!==B?jsx("div",{className:a.tabSeparator}):null,V=p?p.activeTabId===e:false,W=p?.tabsMetadata?.[e],G=useCallback(()=>{p?.selectTab(e);},[p,e]),K=useCallback(()=>{p?.removeTab(e);},[p,e]),d=useMemo(()=>({tabId:e,isActive:V,isDragging:M,isOver:y,metadata:W,locked:f,selectTab:G,removeTab:K}),[e,V,M,y,W,f,G,K]);return jsx(Ct.Provider,{value:d,children:jsxs("div",{ref:v,className:s,style:{display:"inline-flex",position:"relative",cursor:f?"default":"grab",...r},...f?{}:C,...f?{}:h,children:[J,n({isDragging:M,isOver:y}),Z]})})};var Je=createContext(void 0);var wt=(e,t)=>typeof e=="function"?e(t):e,zn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:s,selectTab:r,removeTab:o,renderTab:a,classNames:i,styles:u})=>{let g=useMemo(()=>({tabs:e,activeTabId:t,locked:n,tabsMetadata:s,selectTab:r,removeTab:o}),[e,t,n,s,r,o]);return jsx(Je.Provider,{value:g,children:jsx("div",{className:i?.container,style:{display:"flex",alignItems:"center",height:"100%",...u?.container},children:e.map(p=>{let f=s?.[p],h=wt(i?.tab,p),C=wt(u?.tab,p);return jsx(Dt,{id:p,locked:n,className:h,style:C,children:({isDragging:D,isOver:M})=>a({tabId:p,activeTabId:t,isDragging:D,isOver:M,metadata:f,selectTab:r,removeTab:o})},p)})})})};export{Lt as DEFAULT_DRAG_ACTIVATION_DISTANCE,Vn as DEFAULT_RESIZER_SIZE,Mt as DEFAULT_SNAP_THRESHOLD,Dn as DragHandle,Sn as Pane,an as PaneTree,Me as PortalRegistryContext,Pt as ResizableContainer,zn as Tabs,Kt as Zeugma,We as ZeugmaActionsContext,Ue as ZeugmaDragContext,Be as ZeugmaStateContext,Ne as createDragSession,Se as safeJsonStringify,Ye as useResizer,Ln as useTabContext,Zt as useZeugma,Le as useZeugmaActions,kt as useZeugmaContext,it as useZeugmaDrag,ie as useZeugmaState};//# sourceMappingURL=index.js.map
|
|
6
|
+
`,document.head.appendChild(o),t.setAttribute("data-resizing","true");let r=i=>{n(i);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let i=document.getElementById("zeugma-global-cursor-style");i&&i.remove(),document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",a),s();};document.addEventListener("pointermove",r),document.addEventListener("pointerup",a);}var Xe=createContext(void 0),qe=createContext(void 0),ke=createContext(void 0),Je=createContext(void 0),se=()=>{let e=useContext(Xe);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},ze=()=>{let e=useContext(qe);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},$e=()=>{let e=useContext(Je);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};var At=()=>{let e=se(),t=ze();return {...e,...t}};var He=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Ae=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};function Fe(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 dt(e){let{layout:t,setLayout:n,layoutBeforeDrag:s,setLayoutBeforeDrag:o,activeId:r,setActiveId:a,setActiveType:i,dismissIntentId:d,setDismissIntentId:p,setOverTabId:g,setOverTabPosition:m,containerRef:y,dragActivationDistance:C,enableDragToDismiss:T,dismissThreshold:S,onRemove:w,onDragStart:L,onDragEnd:c,onDismissIntentChange:P,removeTab:v}=e,E=useRef(null),A=nt(r),[V,B]=useState(false);ot(V);let z=useSensors(useSensor(He,{activationConstraint:{distance:C}}),useSensor(Ae,{activationConstraint:{delay:250,tolerance:5}})),G=useCallback(f=>{let $=f.active.id.toString().startsWith("tab-header-"),N=pointerWithin(f),D=$?N:N.filter(l=>!l.id.toString().startsWith("tab-drop-"));if(D.length>0)return D;if($){let l=f.droppableContainers.filter(x=>x.id.toString().startsWith("tab-drop-"));return closestCenter({...f,droppableContainers:l})}return []},[]);return {sensors:z,collisionDetection:G,onDragStart:f=>{let Z=f.active.id.toString(),$=Z.startsWith("tab-header-"),N=$?Z.substring(11):Z;a(N),i($?"tab":"pane"),g(null),m(null);let D=f.activatorEvent;A.current=Fe(D),T&&y.current?E.current=y.current.getBoundingClientRect():E.current=null;let l=t;if($){let M=q(t,N);M&&(l=ye(t,M.id,N)||t);}o(l);let x=$?pe(l,N):ge(l,N);n(x),L&&L(N);},onDragMove:f=>{let{over:Z}=f,$=Z?.id.toString()||"",N=$.startsWith("drop-locked-");B(h=>h===N?h:N);let D=f.active.id.toString(),l=D.startsWith("tab-header-"),x=l?D.substring(11):D,M=$.match(/^tab-drop-(.+)$/);if(M&&Z&&l){let[,h]=M;if(x!==h){let I="before",H=Z.rect,ee=f.activatorEvent,te=null;if(A.current)te=A.current.x;else {let W=Fe(ee);W&&(te=W.x+f.delta.x);}if(te!==null){let W=H.left+H.width/2;te>W&&(I="after");}g(W=>W===h?W:h),m(W=>W===I?W: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(!T)return;let R=E.current;if(!R){d!==null&&(p(null),P?.(null));return}let Q=f.activatorEvent,X=null,b=null;if(A.current)X=A.current.x,b=A.current.y;else {let h=Fe(Q);h&&(X=h.x+f.delta.x,b=h.y+f.delta.y);}let j=0;if(X!==null&&b!==null){let h=0,I=0;X<R.left?h=R.left-X:X>R.right&&(h=X-R.right),b<R.top?I=R.top-b:b>R.bottom&&(I=b-R.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,H=h.top+h.height/2,ee=0,te=0;I<R.left?ee=R.left-I:I>R.right&&(ee=I-R.right),H<R.top?te=R.top-H:H>R.bottom&&(te=H-R.bottom),j=Math.sqrt(ee*ee+te*te);}}j>S?d!==x&&(p(x),P?.(x)):d!==null&&(p(null),P?.(null));},onDragEnd:f=>{a(null),i(null),B(false),g(null),m(null);let{active:Z,over:$}=f,N=Z.id.toString(),D=N.startsWith("tab-header-"),l=D?N.substring(11):N,x=T&&d===l;p(null),P?.(null),E.current=null;let M=s||t;if(o(null),x){w?w(l):v(l),c&&c(l,null,null);return}if(!$){n(M),c&&c(l,null,null);return}let R=$.id.toString();if(R.startsWith("drop-locked-")){n(M),c&&c(l,null,null);return}let Q=R.match(/^tab-drop-(.+)$/);if(Q){if(!D){n(M),c&&c(l,null,null);return}let[,W]=Q;if(l!==W){let ce="before",Te=$.rect,De=f.activatorEvent,U=null;if(A.current)U=A.current.x;else {let ae=Fe(De);ae&&(U=ae.x+f.delta.x);}if(U!==null){let ae=Te.left+Te.width/2;U>ae&&(ce="after");}let ie=Me(M,l,W,ce);n(ie),c&&c(l,W,{type:"move",position:"center"});}else n(M),c&&c(l,null,null);return}let X=R.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!X){n(M),c&&c(l,null,null);return}let[,b,j]=X,re=D?q(M,l):ne(M,l),h=re&&re.id===j,I=re&&re.tabs.length===1;if(l===j||h&&I){n(M),c&&c(l,null,null);return}let H=b==="left"||b==="right"?"row":"column",ee;if(D){let ce=q(M,l)?.tabsMetadata?.[l];ee={type:"pane",id:de(),tabs:[l],activeTabId:l,tabsMetadata:ce?{[l]:ce}:void 0};}else ee=ne(M,l)??{type:"pane",id:de(),tabs:[l],activeTabId:l};let te=Pe(t,j,H,b,ee);n(te),c&&c(l,j,{type:"split",direction:H,position:b});},onDragCancel:()=>{a(null),i(null),B(false),g(null),m(null),p(null),P?.(null),E.current=null,s!==null&&(n(s),o(null));}}}var pt=({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 ft=Gt.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 i=r.current;if(t)t.appendChild(i);else {let d=document.getElementById("zeugma-hidden-portal-container");d||(d=document.createElement("div"),d.id="zeugma-hidden-portal-container",d.style.display="none",document.body.appendChild(d)),d.appendChild(i);}},[t,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 tn=e=>{let t=e,{renderPane:n,renderWidget:s,renderDragOverlay:o,classNames:r={},children:a,layout:i,setLayout:d,fullscreenPaneId:p,setFullscreenPaneId:g,locked:m,setLocked:y,findPaneById:C,findPaneContainingTab:T,findTabById:S,activeId:w,activeType:L,dismissIntentId:c,setContainerRef:P,layoutBeforeDrag:v,snapThreshold:E,minSplitPercentage:A,maxSplitPercentage:V,onRemove:B,onResizeStart:z,onResize:G,onResizeEnd:F,removePane:Y,addPane:K,addTab:oe,updateTabMetadata:f,updatePaneLock:Z,selectTab:$,mergeTab:N,removeTab:D,splitPane:l,updateSplitPercentage:x,moveTab:M}=t,{portalTargets:R,registerPortalTarget:Q}=rt(),[X,b]=useState(null),[j,re]=useState(null),h=dt({...t,setOverTabId:b,setOverTabPosition:re}),I=useCallback(U=>n(U),[n]),H=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]),ee=useCallback((U,ie)=>{F&&F(U,ie);},[F]),te=useMemo(()=>({layout:i,setLayout:d,renderPane:I,activeId:w,activeType:L,dismissIntentId:c,setContainerRef:P,fullscreenPaneId:p,classNames:H,onRemove:B,onFullscreenChange:g,snapThreshold:E,onResizeStart:z,onResize:G,onResizeEnd:ee,minSplitPercentage:A,maxSplitPercentage:V,locked:m,setLocked:y,findPaneById:C,findPaneContainingTab:T,findTabById:S}),[i,w,L,c,P,p,H,B,g,E,z,G,A,V,d,I,ee,m,y,C,T,S]),W=useMemo(()=>({overTabId:X,overTabPosition:j}),[X,j]),ce=useMemo(()=>({removePane:Y,addPane:K,addTab:oe,updateTabMetadata:f,updatePaneLock:Z,selectTab:$,mergeTab:N,removeTab:D,setFullscreenPaneId:g,setLocked:y,splitPane:l,updateSplitPercentage:x,moveTab:M}),[Y,K,oe,f,Z,$,N,D,g,y,l,x,M]),Te=useMemo(()=>{let U=new Set;function ie(ae){ae&&(ae.type==="pane"?ae.tabs.forEach(We=>{U.add(We);}):(ie(ae.first),ie(ae.second)));}return ie(i),v&&ie(v),Array.from(U).sort()},[i,w,v]),De=useMemo(()=>({registerPortalTarget:Q}),[Q]);return jsx(qe.Provider,{value:ce,children:jsx(Xe.Provider,{value:te,children:jsx(Je.Provider,{value:W,children:jsxs(ke.Provider,{value:De,children:[jsx(DndContext,{id:"zeugma-dnd-context",...h,children:a}),w&&L&&o&&jsx(pt,{activeId:w,render:U=>o(U,L),className:`${r.dragOverlay||""} ${w===c&&r.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:Te.map(U=>jsx(ft,{tabId:U,target:R[U]||null,renderWidget:s},U))})]})})})})};function Ke({containerRef:e,isRow:t,direction:n,splitPercentage:s,resizerSize:o,snapThreshold:r,layout:a,currentNode:i,onLayoutChange:d,onResizeStart:p,onResizeEnd:g,parentLeft:m,parentTop:y,parentWidth:C,parentHeight:T}){let{onResizeStart:S,onResize:w,onResizeEnd:L,minSplitPercentage:c=5,maxSplitPercentage:P=95,locked:v=false}=se();return useCallback(E=>{if(v)return;E.preventDefault();let A=e.current;if(!A)return;p&&p(),S&&S(i);let V=A.getBoundingClientRect(),B=E.clientX,z=E.clientY,G=s,F=E.currentTarget,Y=V.left+V.width*(m/100),K=V.top+V.height*(y/100),oe=V.width*(C/100),f=V.height*(T/100),$=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(D=>D!==F&&D.getAttribute("data-direction")===n).map(D=>{let l=D.getBoundingClientRect();return t?l.left+l.width/2:l.top+l.height/2}),N=G;Le({cursor:t?"col-resize":"row-resize",resizerEl:F,onMove:D=>{let l=t?(D.clientX-B)/oe*100:(D.clientY-z)/f*100,x=G+l,M=t?Y+(oe-o)*(x/100)+o/2:K+(f-o)*(x/100)+o/2,R=1/0,Q=null;for(let re of $){let h=Math.abs(M-re);h<r&&h<R&&(R=h,Q=re);}let X=x;Q!==null&&(X=t?(Q-o/2-Y)/(oe-o)*100:(Q-o/2-K)/(f-o)*100);let b=Math.max(c,Math.min(P,X));N=b;let j=be(a,i,b);if(j){let{panes:re,splitters:h}=ue(j),I=e.current;if(I){for(let H of re)I.style.setProperty(`--pane-left-${H.paneId}`,`${H.left}%`),I.style.setProperty(`--pane-top-${H.paneId}`,`${H.top}%`),I.style.setProperty(`--pane-width-${H.paneId}`,`${H.width}%`),I.style.setProperty(`--pane-height-${H.paneId}`,`${H.height}%`);for(let H of h)I.style.setProperty(`--splitter-pos-${H.id}`,`${H.direction==="row"?H.left:H.top}%`);}}w&&w(i,b);},onEnd:()=>{let D=be(a,i,N),l=e.current;if(l){let{panes:x,splitters:M}=ue(D);for(let R of x)l.style.removeProperty(`--pane-left-${R.paneId}`),l.style.removeProperty(`--pane-top-${R.paneId}`),l.style.removeProperty(`--pane-width-${R.paneId}`),l.style.removeProperty(`--pane-height-${R.paneId}`);for(let R of M)l.style.removeProperty(`--splitter-pos-${R.id}`);}d(D),g&&g(),L&&L(i,N);}});},[e,t,n,s,o,r,a,i,d,p,g,S,w,L,c,P,m,y,C,T])}var cn=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:s})=>{let{layout:o,setLayout:r,classNames:a,locked:i}=se(),[d,p]=useState(false),{currentNode:g,direction:m,left:y,top:C,width:T,height:S,parentLeft:w,parentTop:L,parentWidth:c,parentHeight:P}=e,v=m==="row",E=Ke({containerRef:s,isRow:v,direction:m,splitPercentage:g.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:g,onLayoutChange:r,onResizeStart:()=>p(true),onResizeEnd:()=>p(false),parentLeft:w,parentTop:L,parentWidth:c,parentHeight:P}),A=v?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${y}%) - ${t/2}px)`,top:`calc(${C}% + ${t/2}px)`,width:`${t}px`,height:`calc(${S}% - ${t}px)`,cursor:i?"default":"col-resize",pointerEvents:i?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${y}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${C}%) - ${t/2}px)`,width:`calc(${T}% - ${t}px)`,height:`${t}px`,cursor:i?"default":"row-resize",pointerEvents:i?"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:A,onPointerDown:E,role:"separator","aria-valuenow":g.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},un=Gt.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane),dn=({tree:e,resizerSize:t=4,snapThreshold:n})=>{let{layout:s,renderPane:o,activeId:r,dismissIntentId:a,setContainerRef:i,fullscreenPaneId:d,snapThreshold:p,locked:g,classNames:m}=se(),y=n!==void 0?n:p??8,C=e!==void 0?e:s,T=useRef(null),{panes:S,splitters:w}=useMemo(()=>C?ue(C):{panes:[],splitters:[]},[C]);if(!C)return null;let L=()=>jsxs(Fragment,{children:[S.map(c=>{let P=d===c.paneId;return jsx("div",{style:{position:"absolute",left:P?"0%":`var(--pane-left-${c.paneId}, ${c.left}%)`,top:P?"0%":`var(--pane-top-${c.paneId}, ${c.top}%)`,width:P?"100%":`var(--pane-width-${c.paneId}, ${c.width}%)`,height:P?"100%":`var(--pane-height-${c.paneId}, ${c.height}%)`,overflow:"hidden",zIndex:P?20:1,display:d&&!P?"none":"block",padding:P?"0px":`${t/2}px`,boxSizing:"border-box"},children:jsx(un,{paneId:c.paneId,renderPane:o})},c.paneId)}),!d&&w.map(c=>jsx(cn,{splitter:c,resizerSize:t,snapThreshold:y,containerRef:T},c.id))]});if(e===void 0){let c=r!==null&&r===a,P=E=>{i(E),T.current=E;},v=`${m.dashboard||""} ${c&&m.dashboardDismissActive||""} ${g&&m.dashboardLocked||""}`.trim();return jsx("div",{ref:P,className:v,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:L()})}return jsx("div",{ref:T,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:L()})};var Pt="zeugma-height:",gn="default-pane";function bn(e){try{let t=localStorage.getItem(Pt+e);if(t!==null){let n=Number(t);if(Number.isFinite(n)&&n>0)return n}}catch{}return null}function Tt(e,t){try{localStorage.setItem(Pt+e,String(Math.round(t)));}catch{}}var yt=({children:e,active:t=true,height:n,onHeightChange:s,minHeight:o=100,maxHeight:r=1/0,persist:a,localStorageKey:i,resizerHeight:d=6,className:p,resizerClassName:g})=>{let m=a?i||gn:null,y=()=>{let v=(m?bn(m):null)??n??400;return Oe(v,o,r)},[C,T]=useState(y),S=useRef(null),w=m?C:n??C,L=useRef(n);useEffect(()=>{if(n!==void 0&&n!==L.current){let v=Oe(n,o,r);T(v),m&&Tt(m,v);}L.current=n;},[n,o,r,m]);let c=useCallback(()=>r,[r]),P=useCallback(v=>{v.preventDefault();let E=v.clientY,A=w,V=c(),B=v.currentTarget,z=xt(S.current),G=z?z.scrollTop:0,F=E,Y=null,K=(f,Z)=>{let $=Z-G,D=f-E+$,l=Oe(A+D,o,V);return S.current&&(S.current.style.height=`${l}px`),l},oe=()=>{if(!z)return;let f=z===document.documentElement||z===document.body?{top:0,bottom:window.innerHeight}:z.getBoundingClientRect(),Z=40,$=10,N=0;F>f.bottom-Z?N=Math.min(1,(F-(f.bottom-Z))/Z)*$:F<f.top+Z&&(N=-Math.min(1,(f.top+Z-F)/Z)*$),N!==0&&(z.scrollTop+=N,K(F,z.scrollTop)),Y=requestAnimationFrame(oe);};Y=requestAnimationFrame(oe),Le({cursor:"row-resize",resizerEl:B,onMove:f=>{F=f.clientY,z&&K(F,z.scrollTop);},onEnd:()=>{Y!==null&&cancelAnimationFrame(Y);let f=A;S.current&&(f=S.current.getBoundingClientRect().height),f=Oe(f,o,V),T(f),s&&s(f),m&&Tt(m,f);}});},[w,o,c,s,m]);return t?jsxs("div",{ref:S,className:p,style:{height:`${w}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:P,role:"separator","aria-orientation":"horizontal","aria-valuenow":Math.round(w),"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 Oe(e,t,n){return Math.max(t,Math.min(n,e))}function xt(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:xt(t)}var Be=createContext(null);var Cn={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"}},Sn={top:{position:"absolute",top:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},bottom:{position:"absolute",bottom:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},left:{position:"absolute",top:0,bottom:0,left:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},right:{position:"absolute",top:0,bottom:0,right:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:21,pointerEvents:"none",boxSizing:"border-box"}},Rt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:s,isOver:o}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:s,style:Cn[t]}),o&&jsx("div",{className:n,style:Sn[t]})]})},wn=({id:e,children:t,style:n,locked:s=false})=>{let o=useRef(null),{layout:r,activeId:a,classNames:i,fullscreenPaneId:d,onFullscreenChange:p,locked:g}=se(),{removePane:m,updateTabMetadata:y,selectTab:C,removeTab:T}=ze(),S=useContext(ke);if(!S)throw new Error("Pane must be used within a Zeugma provider");let{registerPortalTarget:w}=S,L=useMemo(()=>ne(r,e),[r,e]),c=L?.id??e,P=L?.tabs??[e],v=L?.activeTabId??e,E=L?.tabsMetadata,A=E?.[e],V=L?.locked??false,B=s||V,z=g||B,G=g||B,F=a!==null&&a!==e&&(!P.includes(a)||P.length>1)&&!G,{attributes:Y,listeners:K,setNodeRef:oe}=useDraggable({id:e,disabled:z}),f=a!==null&&P.includes(a),Z=d===e,$=useCallback(()=>jsx("div",{ref:o,id:`zeugma-tab-target-${v}`,className:"zeugma-tab-content-wrapper",style:{height:"100%",width:"100%"}}),[v]);useEffect(()=>{let x=o.current;return w(v,x),()=>{w(v,null);}},[v,w]);let N=useMemo(()=>({isDragging:f,isFullscreen:Z,toggleFullscreen:()=>p?.(Z?null:e),remove:()=>{Z&&p?.(null),m(c);},metadata:A,updateMetadata:x=>{y(e,x);},locked:z,tabs:P,activeTabId:v,selectTab:x=>C(c,x),removeTab:x=>{Z&&x===v&&p?.(null),T(x);},tabsMetadata:E,updateTabMetadata:(x,M)=>{y(x,M);},renderActiveTab:$}),[f,Z,p,e,T,A,y,z,P,v,C,c,E,$]),D=useMemo(()=>z?{disabled:true}:{...K,...Y},[K,Y,z]),l=`${i.pane||""} ${B&&i.paneLocked||""}`.trim();return jsx(Be.Provider,{value:D,children:jsxs("div",{ref:oe,className:l,style:{position:"relative",width:"100%",height:"100%",...n},children:[t(N),F&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(x=>jsx(Rt,{id:`drop-${x}-${e}`,position:x,activeClassName:i.dropPreview},x))}),a!==null&&a!==e&&G&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(Rt,{id:`drop-locked-${e}`,position:"full",activeClassName:i.lockedPreview||""})})]})})};var Mn=({children:e,className:t,style:n})=>{let s=useContext(Be);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 Et=createContext(void 0),$n=()=>{let e=useContext(Et);if(!e)throw new Error("useTabContext must be used within a Tab component");return e},Nt=({id:e,locked:t=false,children:n,className:s,style:o})=>{let{locked:r,classNames:a={},activeType:i}=se(),{overTabId:d}=$e(),p=useContext(je),g=t||r||(p?.locked??false),{attributes:m,listeners:y,setNodeRef:C,isDragging:T}=useDraggable({id:`tab-header-${e}`,disabled:g}),{setNodeRef:S,isOver:w}=useDroppable({id:`tab-drop-${e}`,disabled:g||i==="pane"}),L=K=>{C(K),S(K);},c=w&&d===e,P=p?.tabs||[],v=P.indexOf(e),E=p?.activeTabId,V=v>0&&e!==E&&P[v-1]!==E?jsx("div",{className:a.tabSeparator}):null,B=p?p.activeTabId===e:false,z=p?.tabsMetadata?.[e],G=useCallback(()=>{p?.selectTab(e);},[p,e]),F=useCallback(()=>{p?.removeTab(e);},[p,e]),Y=useMemo(()=>({tabId:e,isActive:B,isDragging:T,isOver:c,metadata:z,locked:g,selectTab:G,removeTab:F}),[e,B,T,c,z,g,G,F]);return jsx(Et.Provider,{value:Y,children:jsxs("div",{ref:L,className:s,style:{display:"inline-flex",position:"relative",cursor:g?"default":"grab",...o},...g?{}:y,...g?{}:m,children:[V,n({isDragging:T,isOver:c})]})})};var je=createContext(void 0);var Mt=(e,t)=>typeof e=="function"?e(t):e,Vn=({tabs:e,activeTabId:t,locked:n=false,tabsMetadata:s,selectTab:o,removeTab:r,renderTab:a,classNames:i,styles:d})=>{let{classNames:p={},activeType:g}=se(),{overTabId:m,overTabPosition:y}=$e(),C=useMemo(()=>({tabs:e,activeTabId:t,locked:n,tabsMetadata:s,selectTab:o,removeTab:r}),[e,t,n,s,o,r]),T=lt(e,g,m,y);return jsx(je.Provider,{value:C,children:jsxs("div",{className:i?.container,style:{display:"flex",alignItems:"center",height:"100%",...d?.container},children:[e.map((S,w)=>{let L=s?.[S],c=Mt(i?.tab,S),P=Mt(d?.tab,S),v=w===T;return jsxs(Gt.Fragment,{children:[v&&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:w===0?"none":"translateX(-50%)"}})}),jsx(Nt,{id:S,locked:n,className:c,style:P,children:({isDragging:E,isOver:A})=>a({tabId:S,activeTabId:t,isDragging:E,isOver:A,metadata:L,selectTab:o,removeTab:r})})]},S)}),T===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{$t as DEFAULT_DRAG_ACTIVATION_DISTANCE,Un as DEFAULT_RESIZER_SIZE,zt as DEFAULT_SNAP_THRESHOLD,Mn as DragHandle,wn as Pane,dn as PaneTree,ke as PortalRegistryContext,yt as ResizableContainer,Vn as Tabs,tn as Zeugma,qe as ZeugmaActionsContext,Je as ZeugmaDragContext,Xe as ZeugmaStateContext,Le as createDragSession,Se as safeJsonStringify,Ke as useResizer,$n as useTabContext,Ht as useZeugma,ze as useZeugmaActions,At as useZeugmaContext,$e as useZeugmaDrag,se as useZeugmaState};//# sourceMappingURL=index.js.map
|
|
7
7
|
//# sourceMappingURL=index.js.map
|