react-zeugma 6.7.2 → 6.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,8 +27,8 @@ const initialLayout: TreeNode = {
27
27
  type: 'split',
28
28
  direction: 'row',
29
29
  splitPercentage: 30,
30
- first: { type: 'pane', id: 'left-panel', tabs: ['left-panel'], activeTabId: 'left-panel' },
31
- second: { type: 'pane', id: 'right-panel', tabs: ['right-panel'], activeTabId: 'right-panel' },
30
+ first: { type: 'pane', id: 'left-panel', tabIds: ['left-panel'], activeTabId: 'left-panel' },
31
+ second: { type: 'pane', id: 'right-panel', tabIds: ['right-panel'], activeTabId: 'right-panel' },
32
32
  }
33
33
 
34
34
  // 2. Build your custom pane wrapper
@@ -201,7 +201,7 @@ A helper component to render and reorder a list of tabs inside a pane.
201
201
  ```tsx
202
202
  import { Tabs } from 'react-zeugma'
203
203
  ;<Tabs
204
- tabs={['tab1', 'tab2']}
204
+ tabIds={['tab1', 'tab2']}
205
205
  activeTabId="tab1"
206
206
  selectTab={(tabId) => console.log('Select tab:', tabId)}
207
207
  removeTab={(tabId) => console.log('Close tab:', tabId)}
@@ -229,7 +229,7 @@ import { Tabs } from 'react-zeugma'
229
229
 
230
230
  | Property | Description | Type | Default |
231
231
  | -------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
232
- | `tabs` | Array of tab IDs. | `string[]` | - |
232
+ | `tabIds` | Array of tab IDs. | `string[]` | - |
233
233
  | `activeTabId` | The currently active tab ID. | `string` | - |
234
234
  | `locked` | Whether tab dragging/reordering is disabled. | `boolean` | `false` |
235
235
  | `tabsMetadata` | Metadata mapping associated with each tab in the pane. | `Record<string, Record<string, unknown>>` | - |
@@ -327,7 +327,7 @@ import { usePaneContext } from 'react-zeugma'
327
327
 
328
328
  const {
329
329
  id,
330
- tabs,
330
+ tabIds,
331
331
  activeTabId,
332
332
  isDragging,
333
333
  isFullscreen,
@@ -344,7 +344,7 @@ const {
344
344
  | Property / Method | Description | Type |
345
345
  | ------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
346
346
  | `id` | The ID of the current pane. | `string` |
347
- | `tabs` | List of tab IDs inside the pane. | `string[]` |
347
+ | `tabIds` | List of tab IDs inside the pane. | `string[]` |
348
348
  | `activeTabId` | Currently active tab ID. | `string` |
349
349
  | `isDragging` | `true` if this pane is being dragged. | `boolean` |
350
350
  | `isFullscreen` | `true` if this pane is maximized. | `boolean` |
@@ -400,6 +400,7 @@ import {
400
400
  selectTab,
401
401
  mergeTab,
402
402
  moveTab,
403
+ movePaneTabs,
403
404
  findPaneById,
404
405
  findPaneContainingTab,
405
406
  findTabById,
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var yn=require('react'),core=require('@dnd-kit/core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var yn__default=/*#__PURE__*/_interopDefault(yn);function ut({cursor:e,resizerEl:t,onMove:n,onEnd:r}){document.body.classList.add("zeugma-resizing");let o=document.createElement("style");o.id="zeugma-global-cursor-style",o.textContent=`
1
+ 'use strict';var Dn=require('react'),core=require('@dnd-kit/core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Dn__default=/*#__PURE__*/_interopDefault(Dn);function ut({cursor:e,resizerEl:t,onMove:n,onEnd:r}){document.body.classList.add("zeugma-resizing");let o=document.createElement("style");o.id="zeugma-global-cursor-style",o.textContent=`
2
2
  * {
3
3
  cursor: ${e} !important;
4
4
  user-select: none !important;
@@ -6,5 +6,5 @@
6
6
  .zeugma-resizing *:not([role="separator"]) {
7
7
  pointer-events: none !important;
8
8
  }
9
- `,document.head.appendChild(o),t.setAttribute("data-resizing","true");let i=s=>{n(s);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let s=document.getElementById("zeugma-global-cursor-style");s&&s.remove(),document.removeEventListener("pointermove",i),document.removeEventListener("pointerup",a),r();};document.addEventListener("pointermove",i),document.addEventListener("pointerup",a);}function Se(e){try{return JSON.stringify(e)}catch{return ""}}var Ke=yn.createContext(void 0),je=yn.createContext(void 0),ge=yn.createContext(void 0),Qe=yn.createContext(void 0),re=()=>{let e=yn.useContext(Ke);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},ze=()=>{let e=yn.useContext(je);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},$e=()=>{let e=yn.useContext(Qe);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function pt(e){let t=yn.useRef(null);return yn.useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},r=o=>{let i=o.touches[0]||o.changedTouches[0];i&&(t.current={x:i.clientX,y:i.clientY});};return window.addEventListener("pointermove",n,{passive:true}),window.addEventListener("touchmove",r,{passive:true}),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("touchmove",r);}},[e]),t}function ft(e){yn.useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function gt(){let[e,t]=yn.useState({}),n=yn.useRef({}),r=yn.useRef(null),o=yn.useRef({}),i=yn.useRef(null),a=yn.useRef(true);yn.useEffect(()=>(a.current=true,()=>{a.current=false;}),[]);let s=yn.useCallback((f,v,R)=>{a.current&&t(h=>{if(!v){if(R&&h[f]!==R||!h[f])return h;let N={...h};return delete N[f],N}return h[f]===v?h:{...h,[f]:v}});},[]),l=yn.useCallback((f,v)=>{n.current[f]=v;},[]),d=yn.useCallback(f=>{r.current=f;},[]),p=yn.useCallback((f,v)=>{o.current[f]=v;},[]);return {portalTargets:e,registerPortalTarget:s,registerRenderCallback:l,renderCallbacksRef:n,registerRenderPane:d,renderPaneRef:r,registerTabHeader:p,tabHeadersRef:o,activeIdRef:i}}function cn(e){let t=new Set;function n(r){r&&(r.type==="pane"?r.tabIds.forEach(o=>{t.add(o);}):r.type==="split"&&(n(r.first),n(r.second)));}return n(e),Array.from(t).sort()}function mt(e){return yn.useMemo(()=>cn(e),[e])}function bt(e){let{onDragStart:t,onDragEnd:n}=e,[r,o]=yn.useState(null),[i,a]=yn.useState(null),s=yn.useCallback(d=>{t&&t(d);},[t]),l=yn.useCallback((d,p,f)=>{n&&n(d,p,f);},[n]);return {overTabId:r,setOverTabId:o,overTabPosition:i,setOverTabPosition:a,handleDragStartInternal:s,handleDragEndInternal:l}}function vt(e){let n=yn.useContext(ge)?.registerRenderPane;yn.useEffect(()=>{n&&e&&n(e);},[n,e]);}function le(){return "pane-"+Math.random().toString(36).substring(2,11)}function fe(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=fe(e.first,t),r=fe(e.second,t);return n===null?r:r===null?n:{...e,first:n,second:r}}function ce(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let o=e.tabIds.filter(s=>s!==t);if(o.length===0)return null;let i=e.activeTabId;e.activeTabId===t&&(i=o[0]);let a={...e.tabsMetadata};return delete a[t],{...e,tabIds:o,activeTabId:i,tabsMetadata:Object.keys(a).length>0?a:void 0}}return e}let n=ce(e.first,t),r=ce(e.second,t);return n===null?r:r===null?n:{...e,first:n,second:r}}function xe(e,t,n,r,o){if(e===null)return typeof o=="string"?{type:"pane",id:le(),tabIds:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let i=typeof o=="string"?{type:"pane",id:le(),tabIds:[o],activeTabId:o}:o,a=r==="left"||r==="top";return {type:"split",direction:n,first:a?i:e,second:a?e:i,splitPercentage:50}}return e}return {...e,first:xe(e.first,t,n,r,o)||e.first,second:xe(e.second,t,n,r,o)||e.second}}function dn(e,t){if(e===null)return t;function n(r,o){return r.type==="pane"?{type:"split",direction:o==="row"?"column":"row",splitPercentage:50,first:r,second:t}:{...r,second:n(r.second,r.direction)}}return n(e,null)}function ht(e,t,n,r){if(e===null)return {type:"pane",id:le(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};let o=t?ne(e,t):null;if(o&&o.type==="pane"){let s=function(l){if(l.type==="pane"&&l.id===t){let d=[...l.tabIds];d.includes(n)||d.push(n);let p=l.tabsMetadata;return r&&(p={...l.tabsMetadata,[n]:r}),{...l,tabIds:d,activeTabId:n,tabsMetadata:p}}return l.type==="split"?{...l,first:s(l.first),second:s(l.second)}:l};return s(e)}let i={type:"pane",id:le(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};return dn(e,i)}function ve(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:ve(e.first,t,n)||e.first,second:ve(e.second,t,n)||e.second}:e}function ne(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:e.type==="split"?ne(e.first,t)??ne(e.second,t):null}function F(e,t){return e===null?null:e.type==="pane"?e.tabIds.includes(t)?e:null:e.type==="split"?F(e.first,t)??F(e.second,t):null}function Tt(e,t){return ne(e,t)??F(e,t)}function Pt(e,t){let n=F(e,t);if(!n)return null;let r=n.tabIds.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:r,metadata:n.tabsMetadata?.[t]}}function Rt(e,t){return F(e,t)?.tabsMetadata?.[t]}function xt(e,t){let n=ne(e,t);return n?.tabsMetadata?.[n.activeTabId]}function He(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let r=e.tabsMetadata||{},o=r[t],i=n(o),a={...r};return i===void 0?delete a[t]:a[t]=i,{...e,tabsMetadata:Object.keys(a).length>0?a:void 0}}return e}return e.type==="split"?{...e,first:He(e.first,t,n)??e.first,second:He(e.second,t,n)??e.second}:e}function Oe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:r,...o}=e;return o}return {...e,locked:n}}return e}return e.type==="split"?{...e,first:Oe(e.first,t,n)??e.first,second:Oe(e.second,t,n)??e.second}:e}function ye(e,t,n){return e===null?null:e.type==="pane"?e.id===t?e.activeTabId===n?e:{...e,activeTabId:n}:e:e.type==="split"?{...e,first:ye(e.first,t,n)??e.first,second:ye(e.second,t,n)??e.second}:e}function yt(e,t,n){if(e===null)return null;let o=F(e,t)?.tabsMetadata?.[t],i=ce(e,t);if(i===null)return {type:"pane",id:le(),tabIds:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function a(s){if(s.type==="pane"){if(s.id===n){let l=[...s.tabIds];l.includes(t)||l.push(t);let d={...s.tabsMetadata};return o&&(d[t]=o),{...s,tabIds:l,activeTabId:t,tabsMetadata:Object.keys(d).length>0?d:void 0}}return s}return s.type==="split"?{...s,first:a(s.first),second:a(s.second)}:s}return a(i)}function Fe(e,t,n,r="before"){if(e===null)return null;let i=F(e,t)?.tabsMetadata?.[t],a=ce(e,t);if(a===null)return {type:"pane",id:le(),tabIds:[t],activeTabId:t,tabsMetadata:i?{[t]:i}:void 0};function s(l){if(l.type==="pane"){if(l.tabIds.includes(n)){let p=[...l.tabIds].filter(R=>R!==t),f=p.indexOf(n);f<0&&(f=0),r==="after"&&(f+=1),p.splice(f,0,t);let v={...l.tabsMetadata};return i&&(v[t]=i),{...l,tabIds:p,activeTabId:t,tabsMetadata:Object.keys(v).length>0?v:void 0}}return l}return l.type==="split"?{...l,first:s(l.first),second:s(l.second)}:l}return s(a)}function pe(e,t=0,n=0,r=100,o=100,i="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:r,height:o,node:e}],splitters:[]};let{direction:a,splitPercentage:s,first:l,second:d}=e,f={id:`splitter-${i}-${a}`,currentNode:e,direction:a,left:a==="row"?t+r*(s/100):t,top:a==="column"?n+o*(s/100):n,width:a==="row"?0:r,height:a==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:r,parentHeight:o},v={panes:[],splitters:[]},R={panes:[],splitters:[]};if(a==="row"){let h=r*(s/100);v=pe(l,t,n,h,o,`${i}-L`),R=pe(d,t+h,n,r-h,o,`${i}-R`);}else {let h=o*(s/100);v=pe(l,t,n,r,h,`${i}-T`),R=pe(d,t,n+h,r,o-h,`${i}-B`);}return {panes:[...v.panes,...R.panes],splitters:[f,...v.splitters,...R.splitters]}}function Dt(e,t,n,r){if(!(t==="tab"&&n&&e.includes(n))||!r)return -1;let a=e.indexOf(n);return r==="before"?a:a+1}function un(e){let{initialLayout:t,layout:n,onChange:r,fullscreenPaneId:o,onFullscreenChange:i,locked:a=false}=e,[s,l]=yn.useState(()=>n!==void 0?n:t??null),[d,p]=yn.useState(()=>n!==void 0?n:t??null),[f,v]=yn.useState(()=>Se(n!==void 0?n:null)),[R,h]=yn.useState(o||null),[N,E]=yn.useState(a),[T,Z]=yn.useState(null),[O,y]=yn.useState(null),[C,x]=yn.useState(null),w=yn.useRef(null),q=yn.useCallback(c=>{w.current=c;},[]),z=yn.useRef(s);z.current=s;let K=yn.useRef(r);K.current=r;let V=yn.useRef(i);V.current=i;let j=yn.useCallback(c=>{h(c),V.current?.(c);},[]);if(yn.useEffect(()=>{E(a);},[a]),yn.useEffect(()=>{o!==void 0&&h(o);},[o]),n!==void 0){let c=Se(n);c!==f&&(v(c),l(n),p(n));}let D=yn.useCallback(c=>(...m)=>{let A=z.current,L=c(A,...m);Se(A)!==Se(L)&&(z.current=L,l(L),p(L),K.current?.(L));},[]),Q=yn.useCallback(D((c,m)=>typeof m=="function"?m(c):m),[D]),S=yn.useCallback(c=>{p(m=>typeof c=="function"?c(m):c);},[]),J=yn.useCallback(c=>{h(null),V.current?.(null),Z(null),y(null),x(null),Q(c),p(()=>typeof c=="function"?c(z.current):c);},[Q]),W=yn.useCallback(D((c,m)=>fe(c,m)),[D]),H=yn.useCallback(D((c,m,A,L)=>{let Y=ce(c,m)??c;return ht(Y,A,m,L)}),[D]),g=yn.useCallback(D((c,m,A,L,Y)=>{let U=ne(c,m)??F(c,m);if(!U)return c;let de=ne(c,Y)??F(c,Y)??{type:"pane",id:Y,tabIds:[Y],activeTabId:Y},ee=fe(c,Y);return xe(ee,U.id,A,L,de)}),[D]),u=yn.useCallback(D((c,m,A)=>ve(c,m,A)),[D]),$=yn.useCallback(D((c,m,A)=>He(c,m,A)),[D]),M=yn.useCallback(D((c,m,A)=>{let L=ne(c,m)??F(c,m);return L?Oe(c,L.id,A):c}),[D]),P=yn.useCallback(D((c,m,A)=>{let L=ne(c,m)??F(c,m);return L?ye(c,L.id,A):c}),[D]),ae=yn.useCallback(D((c,m,A)=>{let L=ne(c,A)??F(c,A);return L?yt(c,m,L.id):c}),[D]),_=yn.useCallback(D((c,m,A,L)=>Fe(c,m,A,L)),[D]),X=yn.useCallback(D((c,m)=>ce(c,m)),[D]),G=yn.useCallback(c=>ne(z.current,c),[]),oe=yn.useCallback(c=>F(z.current,c),[]),b=yn.useCallback(c=>Pt(z.current,c),[]),I=yn.useCallback(c=>Rt(z.current,c),[]),k=yn.useCallback(c=>xt(z.current,c),[]);return {layout:s,setLayout:J,_internalSetLayout:S,renderingLayout:d,fullscreenPaneId:R,setFullscreenPaneId:j,locked:N,setLocked:E,activeId:T,setActiveId:Z,activeType:O,setActiveType:y,dismissIntentId:C,setDismissIntentId:x,containerRef:w,setContainerRef:q,removePane:W,addTab:H,updateMetadata:$,updatePaneLock:M,selectTab:P,mergeTab:ae,moveTab:_,removeTab:X,splitPane:g,updateSplitPercentage:u,findPaneById:G,findPaneContainingTab:oe,findTabById:b,getTabMetadata:I,getActiveTabMetadata:k}}var pn=()=>{let e=re(),t=ze();return {layout:e.layout,setLayout:e.setLayout,fullscreenPaneId:e.fullscreenPaneId,setFullscreenPaneId:t.setFullscreenPaneId,locked:e.locked,setLocked:t.setLocked,removePane:t.removePane,addTab:t.addTab,updateMetadata:t.updateMetadata,updatePaneLock:t.updatePaneLock,selectTab:t.selectTab,mergeTab:t.mergeTab,removeTab:t.removeTab,splitPane:t.splitPane,updateSplitPercentage:t.updateSplitPercentage,moveTab:t.moveTab,findPaneById:e.findPaneById,findPaneContainingTab:e.findPaneContainingTab,findTabById:e.findTabById,getTabMetadata:e.getTabMetadata,getActiveTabMetadata:e.getActiveTabMetadata}};var Ve=class extends core.PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},We=class extends core.TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var St=e=>{let n=e.active.id.toString().startsWith("tab-header-"),r=core.pointerWithin(e),o=n?r:r.filter(i=>!i.id.toString().startsWith("tab-drop-"));if(o.length>0)return [...o].sort((a,s)=>{let l=a.id.toString(),d=s.id.toString();if(n){let v=l.startsWith("tab-drop-"),R=d.startsWith("tab-drop-");if(v&&!R)return -1;if(!v&&R)return 1}let p=l.startsWith("drop-root-"),f=d.startsWith("drop-root-");return p&&!f?-1:!p&&f?1:0});if(n){let i=e.droppableContainers.filter(a=>a.id.toString().startsWith("tab-drop-"));return core.closestCenter({...e,droppableContainers:i})}return []};function Ue(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 Nt(e){let{layout:t,_internalSetLayout:n,setLayout:r,activeId:o,setActiveId:i,setActiveType:a,dismissIntentId:s,setDismissIntentId:l,setOverTabId:d,setOverTabPosition:p,containerRef:f,dragActivationDistance:v,enableDragToDismiss:R,dismissThreshold:h,onRemove:N,onDragStart:E,onDragEnd:T,onDismissIntentChange:Z,removeTab:O,removePane:y}=e,C=yn.useRef(null),x=pt(o),w=yn.useRef(null),[q,z]=yn.useState(false);return ft(q),{sensors:core.useSensors(core.useSensor(Ve,{activationConstraint:{distance:v}}),core.useSensor(We,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:St,onDragStart:S=>{let J=S.active.id.toString(),W=J.startsWith("tab-header-"),H=W?J.substring(11):J;i(H),a(W?"tab":"pane"),d(null),p(null);let g=S.activatorEvent;x.current=Ue(g),R&&f.current?C.current=f.current.getBoundingClientRect():C.current=null;let u=t;if(W){let M=F(t,H);M&&(u=ye(t,M.id,H)||t);}w.current=u;let $=W?ce(u,H):fe(u,H);n($),E&&E(H);},onDragMove:S=>{let{over:J}=S,W=J?.id.toString()||"",H=W.startsWith("drop-locked-");z(b=>b===H?b:H);let g=S.active.id.toString(),u=g.startsWith("tab-header-"),$=u?g.substring(11):g,M=W.match(/^tab-drop-(.+)$/);if(M&&J&&u){let[,b]=M;if($!==b){let I="before",k=J.rect,se=S.activatorEvent,c=null;if(x.current)c=x.current.x;else {let m=Ue(se);m&&(c=m.x+S.delta.x);}if(c!==null){let m=k.left+k.width/2;c>m&&(I="after");}d(m=>m===b?m:b),p(m=>m===I?m:I);}else d(I=>I===null?I:null),p(I=>I===null?I:null);}else d(b=>b===null?b:null),p(b=>b===null?b:null);if(!R)return;let P=C.current;if(!P){s!==null&&(l(null),Z?.(null));return}let ae=S.activatorEvent,_=null,X=null;if(x.current)_=x.current.x,X=x.current.y;else {let b=Ue(ae);b&&(_=b.x+S.delta.x,X=b.y+S.delta.y);}let G=0;if(_!==null&&X!==null){let b=0,I=0;_<P.left?b=P.left-_:_>P.right&&(b=_-P.right),X<P.top?I=P.top-X:X>P.bottom&&(I=X-P.bottom),G=Math.sqrt(b*b+I*I);}else {let b=S.active.rect.current.translated;if(b){let I=b.left+b.width/2,k=b.top+b.height/2,se=0,c=0;I<P.left?se=P.left-I:I>P.right&&(se=I-P.right),k<P.top?c=P.top-k:k>P.bottom&&(c=k-P.bottom),G=Math.sqrt(se*se+c*c);}}G>h?s!==$&&(l($),Z?.($)):s!==null&&(l(null),Z?.(null));},onDragEnd:S=>{i(null),a(null),z(false),d(null),p(null);let{active:J,over:W}=S,H=J.id.toString(),g=H.startsWith("tab-header-"),u=g?H.substring(11):H,$=R&&s===u;l(null),Z?.(null),C.current=null;let M=w.current||t;if(w.current=null,$){N?N(u):g?O(u):y(u),T&&T(u,null,null);return}if(!W){n(M),T&&T(u,null,null);return}let P=W.id.toString();if(P.startsWith("drop-locked-")){n(M),T&&T(u,null,null);return}let ae=P.match(/^tab-drop-(.+)$/);if(ae){if(!g){n(M),T&&T(u,null,null);return}let[,L]=ae;if(u!==L){let Y="before",U=W.rect,de=S.activatorEvent,ee=null;if(x.current)ee=x.current.x;else {let te=Ue(de);te&&(ee=te.x+S.delta.x);}if(ee!==null){let te=U.left+U.width/2;ee>te&&(Y="after");}let be=Fe(M,u,L,Y);r(be),T&&T(u,L,{type:"move",position:"center"});}else n(M),T&&T(u,null,null);return}let _=P.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(_){let[,L,Y]=_,U=Y;U==="start"&&(U="left"),U==="end"&&(U="right");let de=g?ce(M,u):fe(M,u),ee;if(g){let te=F(M,u)?.tabsMetadata?.[u];ee={type:"pane",id:le(),tabIds:[u],activeTabId:u,tabsMetadata:te?{[u]:te}:void 0};}else ee=ne(M,u)??{type:"pane",id:le(),tabIds:[u],activeTabId:u};if(de===null)r(ee);else {let be=U==="left"||U==="right",te=U==="left"||U==="top",Te=50;L==="1/4"?Te=te?25:75:L==="1/3"&&(Te=te?100/3:200/3),r({type:"split",direction:be?"row":"column",first:te?ee:de,second:te?de:ee,splitPercentage:Te});}T&&T(u,"root",{type:"split",direction:U==="left"||U==="right"?"row":"column",position:U});return}let X=P.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!X){n(M),T&&T(u,null,null);return}let[,G,oe]=X,b=g?F(M,u):ne(M,u),I=b&&b.id===oe,k=b&&b.tabIds.length===1;if(u===oe||I&&k){n(M),T&&T(u,null,null);return}let se=G==="left"||G==="right"?"row":"column",c;if(g){let Y=F(M,u)?.tabsMetadata?.[u];c={type:"pane",id:le(),tabIds:[u],activeTabId:u,tabsMetadata:Y?{[u]:Y}:void 0};}else c=ne(M,u)??{type:"pane",id:le(),tabIds:[u],activeTabId:u};let m=g?ce(M,u):fe(M,u),A=xe(m,oe,se,G,c);r(A),T&&T(u,oe,{type:"split",direction:se,position:G});},onDragCancel:()=>{i(null),a(null),z(false),d(null),p(null),l(null),Z?.(null),C.current=null;let S=w.current||t;w.current=null,n(S),S!==t&&r(S);}}}function Mt({persist:e,layout:t,setLayout:n}){let r=typeof e=="object"?e.enabled!==false:!!e,o=typeof e=="object"&&e.key||"zeugma-layout",[i,a]=yn.useState(false);yn.useEffect(()=>{if(r){let s=localStorage.getItem(o);if(s)try{let l=JSON.parse(s);l&&n(l);}catch(l){console.error("Failed to parse persisted zeugma layout",l);}}a(true);},[r,o,n]),yn.useEffect(()=>{r&&i&&(t?localStorage.setItem(o,JSON.stringify(t)):localStorage.removeItem(o));},[r,o,t,i]);}var Lt=({activeId:e,render:t,className:n})=>{let r=yn.useRef(null);return yn.useEffect(()=>{let o=i=>{r.current&&(r.current.style.transform=`translate(${i.clientX+12}px, ${i.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsxRuntime.jsx("div",{ref:r,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var Zt=yn__default.default.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,[o,i]=yn.useState(false),a=yn.useRef(null);if(yn.useEffect(()=>{i(true);},[]),yn.useEffect(()=>{if(!o||!a.current)return;let l=a.current;if(t)t.appendChild(l);else {let d=document.getElementById("zeugma-hidden-portal-container");d||(d=document.createElement("div"),d.id="zeugma-hidden-portal-container",d.style.display="none",document.body.appendChild(d)),d.appendChild(l);}},[t,o]),yn.useEffect(()=>()=>{a.current&&a.current.remove();},[]),!o)return null;a.current||(a.current=document.createElement("div"),a.current.className=`zeugma-portal-wrapper-${r}`,a.current.style.width="100%",a.current.style.height="100%");let s=a.current;return !s||!n?null:reactDom.createPortal(n(e),s)},(e,t)=>e.target===t.target&&e.renderWidget===t.renderWidget&&e.tabDetails.id===t.tabDetails.id&&e.tabDetails.paneId===t.tabDetails.paneId&&e.tabDetails.isActive===t.tabDetails.isActive&&e.tabDetails.index===t.tabDetails.index&&e.tabDetails.metadata===t.tabDetails.metadata);var kt=({activeId:e,activeType:t,dismissIntentId:n,renderDragOverlay:r,renderPaneRef:o,renderPane:i,tabHeadersRef:a,classNames:s})=>{if(r)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:r({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let l=o.current||i;if(l)return jsxRuntime.jsx("div",{className:s.paneDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:l(e)})}else if(t==="tab"){let l=o.current||i;if(l)return jsxRuntime.jsx("div",{className:s.tabDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:l(e)});let d=a.current[e];if(d){let p=s.tab?typeof s.tab=="function"?s.tab(e):s.tab:"";return jsxRuntime.jsx("div",{className:`${s.tabDragPreview||""} ${p}`.trim(),style:{display:"inline-flex",position:"relative",pointerEvents:"none",overflow:"hidden"},children:d({isDragging:true,isOver:false})})}}return jsxRuntime.jsx("div",{style:{pointerEvents:"none",overflow:"hidden",width:"100%",height:"100%"}})};function nt({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:i,layout:a,currentNode:s,onLayoutChange:l,onResizeStart:d,onResizeEnd:p,parentLeft:f,parentTop:v,parentWidth:R,parentHeight:h}){let{onResizeStart:N,onResize:E,onResizeEnd:T,minSplitPercentage:Z=5,maxSplitPercentage:O=95,locked:y=false}=re();return yn.useCallback(C=>{if(y)return;C.preventDefault();let x=e.current;if(!x)return;d&&d(),N&&N(s);let w=x.getBoundingClientRect(),q=C.clientX,z=C.clientY,K=r,V=C.currentTarget,j=w.left+w.width*(f/100),D=w.top+w.height*(v/100),Q=w.width*(R/100),S=w.height*(h/100),W=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(g=>g!==V&&g.getAttribute("data-direction")===n).map(g=>{let u=g.getBoundingClientRect();return t?u.left+u.width/2:u.top+u.height/2}),H=K;ut({cursor:t?"col-resize":"row-resize",resizerEl:V,onMove:g=>{let u=t?(g.clientX-q)/Q*100:(g.clientY-z)/S*100,$=K+u,M=t?j+(Q-o)*($/100)+o/2:D+(S-o)*($/100)+o/2,P=1/0,ae=null;for(let oe of W){let b=Math.abs(M-oe);b<i&&b<P&&(P=b,ae=oe);}let _=$;ae!==null&&(_=t?(ae-o/2-j)/(Q-o)*100:(ae-o/2-D)/(S-o)*100);let X=Math.max(Z,Math.min(O,_));H=X;let G=ve(a,s,X);if(G){let{panes:oe,splitters:b}=pe(G),I=e.current;if(I){for(let k of oe)I.style.setProperty(`--pane-left-${k.paneId}`,`${k.left}%`),I.style.setProperty(`--pane-top-${k.paneId}`,`${k.top}%`),I.style.setProperty(`--pane-width-${k.paneId}`,`${k.width}%`),I.style.setProperty(`--pane-height-${k.paneId}`,`${k.height}%`);for(let k of b)I.style.setProperty(`--splitter-pos-${k.id}`,`${k.direction==="row"?k.left:k.top}%`);}}E&&E(s,X);},onEnd:()=>{let g=ve(a,s,H),u=e.current;if(u){let{panes:$,splitters:M}=pe(g);for(let P of $)u.style.removeProperty(`--pane-left-${P.paneId}`),u.style.removeProperty(`--pane-top-${P.paneId}`),u.style.removeProperty(`--pane-width-${P.paneId}`),u.style.removeProperty(`--pane-height-${P.paneId}`);for(let P of M)u.style.removeProperty(`--splitter-pos-${P.id}`);}l(g),p&&p(),T&&T(s,H);}});},[e,t,n,r,o,i,a,s,l,d,p,N,E,T,Z,O,f,v,R,h])}var zt=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{renderingLayout:o,setLayout:i,classNames:a,locked:s}=re(),[l,d]=yn.useState(false),{currentNode:p,direction:f,left:v,top:R,width:h,height:N,parentLeft:E,parentTop:T,parentWidth:Z,parentHeight:O}=e,y=f==="row",C=nt({containerRef:r,isRow:y,direction:f,splitPercentage:p.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:p,onLayoutChange:i,onResizeStart:()=>d(true),onResizeEnd:()=>d(false),parentLeft:E,parentTop:T,parentWidth:Z,parentHeight:O}),x=y?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${v}%) - ${t/2}px)`,top:`calc(${R}% + ${t/2}px)`,width:`${t}px`,height:`calc(${N}% - ${t}px)`,cursor:s?"default":"col-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${v}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${R}%) - ${t/2}px)`,width:`calc(${h}% - ${t}px)`,height:`${t}px`,cursor:s?"default":"row-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsxRuntime.jsx("div",{className:a.resizer||"","data-direction":f,"data-resizing":l||void 0,style:x,onPointerDown:C,role:"separator","aria-valuenow":p.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},$t=yn__default.default.memo(({paneId:e,renderPane:t})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var ot=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{vt(e);let{renderingLayout:o,activeId:i,dismissIntentId:a,setContainerRef:s,fullscreenPaneId:l,snapThreshold:d,locked:p,classNames:f,resizerSize:v}=re(),R=r!==void 0?r:d??8,h=n!==void 0?n:v??4,N=t!==void 0?t:o,E=yn.useRef(null),{panes:T,splitters:Z}=yn.useMemo(()=>N?pe(N):{panes:[],splitters:[]},[N]);if(!N&&t!==void 0)return null;let O=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[T.map(y=>{let C=l===y.paneId;return jsxRuntime.jsx("div",{style:{position:"absolute",left:C?"0%":`var(--pane-left-${y.paneId}, ${y.left}%)`,top:C?"0%":`var(--pane-top-${y.paneId}, ${y.top}%)`,width:C?"100%":`var(--pane-width-${y.paneId}, ${y.width}%)`,height:C?"100%":`var(--pane-height-${y.paneId}, ${y.height}%)`,overflow:"hidden",zIndex:C?20:1,display:l&&!C?"none":"block",padding:C?"0px":`${h/2}px`,boxSizing:"border-box"},children:jsxRuntime.jsx($t,{paneId:y.paneId,renderPane:e})},y.paneId)}),!l&&Z.map(y=>jsxRuntime.jsx(zt,{splitter:y,resizerSize:h,snapThreshold:R,containerRef:E},y.id))]});if(t===void 0){let y=i!==null&&i===a,C=w=>{s(w),E.current=w;},x=`${f.dashboard||""} ${y&&f.dashboardDismissActive||""} ${p&&f.dashboardLocked||""}`.trim();return jsxRuntime.jsxs("div",{ref:C,className:x,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[O(),i!==null&&!p&&jsxRuntime.jsx(Ot,{activeClassName:f.rootDropPreview??f.dropPreview})]})}return jsxRuntime.jsx("div",{ref:E,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:O()})};var An=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:i,resizerSize:a,dragActivationDistance:s=8,snapThreshold:l=8,minSplitPercentage:d=5,maxSplitPercentage:p=95,enableDragToDismiss:f=false,dismissThreshold:v=60,onRemove:R,onDragStart:h,onDragEnd:N,onResizeStart:E,onResize:T,onResizeEnd:Z,onDismissIntentChange:O,persist:y=false}=e,C=t,{layout:x,setLayout:w,_internalSetLayout:q,renderingLayout:z,fullscreenPaneId:K,setFullscreenPaneId:V,locked:j,setLocked:D,findPaneById:Q,findPaneContainingTab:S,findTabById:J,getTabMetadata:W,getActiveTabMetadata:H,activeId:g,setActiveId:u,activeType:$,setActiveType:M,dismissIntentId:P,setDismissIntentId:ae,containerRef:_,setContainerRef:X,removePane:G,addTab:oe,updateMetadata:b,updatePaneLock:I,selectTab:k,mergeTab:se,removeTab:c,splitPane:m,updateSplitPercentage:A,moveTab:L}=C;Mt({persist:y,layout:x,setLayout:w});let{portalTargets:Y,registerPortalTarget:U,registerRenderCallback:de,renderCallbacksRef:ee,registerRenderPane:be,renderPaneRef:te,registerTabHeader:Te,tabHeadersRef:Me,activeIdRef:Le}=gt(),{overTabId:it,setOverTabId:Gt,overTabPosition:lt,setOverTabPosition:Kt,handleDragStartInternal:jt,handleDragEndInternal:Qt}=bt({onDragStart:h,onDragEnd:N}),en=Nt({layout:x,_internalSetLayout:q,setLayout:w,activeId:g,setActiveId:u,setActiveType:M,dismissIntentId:P,setDismissIntentId:ae,setOverTabId:Gt,setOverTabPosition:Kt,containerRef:_,dragActivationDistance:s,enableDragToDismiss:f,dismissThreshold:v,onRemove:R,onDragStart:jt,onDragEnd:Qt,onDismissIntentChange:O,removeTab:c,removePane:G}),_e=yn.useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.rootDropPreview,o.dragOverlay,o.paneDragPreview,o.tabDragPreview,o.resizer,o.dismissPreview,o.dashboardLocked,o.lockedPreview,o.tabDropPreview,o.tabSeparator,o.tabsContainer,o.tab,o.paneContainer,o.paneHeader,o.paneControls,o.paneButton,o.tabCloseButton,o.dragHandle]),ct=yn.useCallback((ue,Ze)=>{Z&&Z(ue,Ze);},[Z]),tn=yn.useMemo(()=>({layout:x,renderingLayout:z,setLayout:w,activeId:g,activeType:$,dismissIntentId:P,setContainerRef:X,fullscreenPaneId:K,classNames:_e,onRemove:R,onFullscreenChange:V,snapThreshold:l,onResizeStart:E,onResize:T,onResizeEnd:ct,minSplitPercentage:d,maxSplitPercentage:p,locked:j,setLocked:D,findPaneById:Q,findPaneContainingTab:S,findTabById:J,getTabMetadata:W,getActiveTabMetadata:H,renderPane:i,resizerSize:a}),[x,z,g,$,P,X,K,_e,R,V,l,E,T,d,p,w,ct,j,D,Q,S,J,W,H,i,a]),nn=yn.useMemo(()=>({overTabId:it,overTabPosition:lt}),[it,lt]),on=yn.useMemo(()=>({removePane:G,addTab:oe,updateMetadata:b,updatePaneLock:I,selectTab:k,mergeTab:se,removeTab:c,setFullscreenPaneId:V,setLocked:D,splitPane:m,updateSplitPercentage:A,moveTab:L}),[G,oe,b,I,k,se,c,V,D,m,A,L]),rn=mt(x),an=yn.useMemo(()=>({registerPortalTarget:U,registerRenderCallback:de,renderCallbacksRef:ee,registerRenderPane:be,renderPaneRef:te,registerTabHeader:Te,tabHeadersRef:Me,activeIdRef:Le}),[U,de,ee,be,te,Te,Me,Le]);return Le&&(Le.current=g),jsxRuntime.jsx(je.Provider,{value:on,children:jsxRuntime.jsx(Ke.Provider,{value:tn,children:jsxRuntime.jsx(Qe.Provider,{value:nn,children:jsxRuntime.jsxs(ge.Provider,{value:an,children:[jsxRuntime.jsx(core.DndContext,{id:"zeugma-dnd-context",...en,children:n}),g&&$&&jsxRuntime.jsx(Lt,{activeId:g,render:ue=>jsxRuntime.jsx("div",{style:{transition:"transform 150ms cubic-bezier(0.2, 0, 0, 1)",transform:ue===P?"scale(0.8)":"scale(1)",transformOrigin:"top left"},children:jsxRuntime.jsx(kt,{activeId:ue,activeType:$,dismissIntentId:P,renderDragOverlay:r,renderPaneRef:te,renderPane:i,tabHeadersRef:Me,classNames:_e})}),className:`${o.dragOverlay||""} ${g===P&&o.dismissPreview||""}`.trim()}),jsxRuntime.jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:rn.map(ue=>{let Ze=Y[ue],dt=J(ue);return dt?jsxRuntime.jsx(Zt,{tabDetails:dt,target:Ze||null,renderWidget:ee.current[ue]},ue):null})})]})})})})},Hn=({renderPane:e,resizerSize:t,snapThreshold:n})=>{if(!e)throw new Error("Zeugma component requires a renderPane prop when used as a standalone renderer.");return jsxRuntime.jsx(ot,{renderPane:e,resizerSize:t,snapThreshold:n})},On=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsxRuntime.jsx(An,{...e,children:t!==void 0?t:jsxRuntime.jsx(Hn,{...n})})};var Vn={top:{"1/4":{position:"absolute",top:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",top:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},bottom:{"1/4":{position:"absolute",bottom:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",bottom:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},left:{"1/4":{position:"absolute",left:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",left:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}},right:{"1/4":{position:"absolute",right:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",right:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}}},Wn={top:{"1/4":{top:0,left:0,width:"100%",height:"60px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"},"1/3":{top:0,left:0,width:"100%",height:"96px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"}},bottom:{"1/4":{bottom:0,left:0,width:"100%",height:"60px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{bottom:0,left:0,width:"100%",height:"96px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"}},left:{"1/4":{left:0,top:0,width:"60px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"},"1/3":{left:0,top:0,width:"96px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"}},right:{"1/4":{right:0,top:0,width:"60px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{right:0,top:0,width:"96px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"}}},Un=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:i}=core.useDroppable({id:e}),a={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...Wn[n][t]};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:o,style:Vn[n][t]}),i&&jsxRuntime.jsx("div",{className:r,style:a})]})},Ot=({activeClassName:e})=>jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:99,pointerEvents:"none"},children:[{id:"drop-root-1/4-top",fraction:"1/4",edge:"top"},{id:"drop-root-1/3-top",fraction:"1/3",edge:"top"},{id:"drop-root-1/4-bottom",fraction:"1/4",edge:"bottom"},{id:"drop-root-1/3-bottom",fraction:"1/3",edge:"bottom"},{id:"drop-root-1/4-left",fraction:"1/4",edge:"left"},{id:"drop-root-1/3-left",fraction:"1/3",edge:"left"},{id:"drop-root-1/4-right",fraction:"1/4",edge:"right"},{id:"drop-root-1/3-right",fraction:"1/3",edge:"right"}].map(n=>jsxRuntime.jsx(Un,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var Je=yn.createContext(null);var _n={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"}},Gn={top:{position:"absolute",top:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},bottom:{position:"absolute",bottom:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},left:{position:"absolute",top:0,bottom:0,left:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},right:{position:"absolute",top:0,bottom:0,right:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:21,pointerEvents:"none",boxSizing:"border-box"}},rt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=core.useDroppable({id:e});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:r,style:_n[t]}),o&&jsxRuntime.jsx("div",{className:n,style:Gn[t]})]})};var Bt=({children:e,className:t,style:n})=>{let r=yn.useContext(Je);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...i}=r;return jsxRuntime.jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:i,children:e})};var so=yn.createContext(void 0);var Ee=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:i,classNames:a={},activeType:s}=re(),{overTabId:l}=$e(),d=yn.useContext(ge);yn.useEffect(()=>(d?.registerTabHeader&&d.registerTabHeader(e,n),()=>{d?.registerTabHeader&&d.activeIdRef?.current!==e&&d.registerTabHeader(e,()=>null);}),[e,n,d]);let p=yn.useContext(at),f=t||i||(p?.locked??false),{attributes:v,listeners:R,setNodeRef:h,isDragging:N}=core.useDraggable({id:`tab-header-${e}`,disabled:f}),{setNodeRef:E,isOver:T}=core.useDroppable({id:`tab-drop-${e}`,disabled:f||s==="pane"}),Z=Q=>{h(Q),E(Q);},O=T&&l===e,y=p?.tabIds||[],C=y.indexOf(e),x=p?.activeTabId,q=C>0&&e!==x&&y[C-1]!==x?jsxRuntime.jsx("div",{className:a.tabSeparator}):null,z=p?p.activeTabId===e:false,K=p?.tabsMetadata?.[e],V=yn.useCallback(()=>{p?.selectTab(e);},[p,e]),j=yn.useCallback(()=>{p?.removeTab(e);},[p,e]),D=yn.useMemo(()=>({tabId:e,isActive:z,isDragging:N,isOver:O,metadata:K,locked:f,selectTab:V,removeTab:j}),[e,z,N,O,K,f,V,j]);return jsxRuntime.jsx(so.Provider,{value:D,children:jsxRuntime.jsxs("div",{ref:Z,id:`tab-header-${e}`,className:r,style:{display:"inline-flex",position:"relative",cursor:f?"default":"grab",...o},...f?{}:R,...f?{}:v,children:[q,n({isDragging:N,isOver:O})]})})};var at=yn.createContext(void 0);var Xt=(e,t)=>typeof e=="function"?e(t):e,st=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:i,renderTab:a,classNames:s,styles:l})=>{let d=yn.useContext(Ye),p=e??d?.tabIds??[],f=t??d?.activeTabId??"",v=n??d?.locked??false,R=r??d?.tabsMetadata,h=o??d?.selectTab??(()=>{}),N=i??d?.removeTab??(()=>{}),{classNames:E={},activeType:T}=re(),{overTabId:Z,overTabPosition:O}=$e(),y=yn.useMemo(()=>({tabIds:p,activeTabId:f,locked:v,tabsMetadata:R,selectTab:h,removeTab:N}),[p,f,v,R,h,N]),C=Dt(p,T,Z,O);return jsxRuntime.jsx(at.Provider,{value:y,children:jsxRuntime.jsxs("div",{className:s?.container,style:{display:"flex",alignItems:"center",height:"100%",...l?.container},children:[p.map((x,w)=>{let q=R?.[x],z=Xt(s?.tab,x),K=Xt(l?.tab,x),V=w===C;return jsxRuntime.jsxs(yn__default.default.Fragment,{children:[V&&E.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:E.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:w===0?"none":"translateX(-50%)"}})}),jsxRuntime.jsx(Ee,{id:x,locked:v,className:z,style:K,children:({isDragging:j,isOver:D})=>a({id:x,paneId:d?.id??"",isActive:x===f,index:w,isDragging:j,isOver:D,metadata:q,onSelect:()=>h(x),onRemove:()=>N(x)})})]},x)}),C===p.length&&E.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:E.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};st.Tab=Ee;var Yt=({className:e,style:t,children:n})=>jsxRuntime.jsx("div",{className:e,style:t,children:n});var Ye=yn.createContext(void 0),_t=()=>{let e=yn.useContext(Ye);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},ho=({children:e,className:t,style:n})=>{let{activeTabId:r}=_t(),{classNames:o}=re(),i=yn.useRef(null),a=yn.useContext(ge);if(!a)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:s,registerRenderCallback:l}=a,d=yn.useMemo(()=>typeof e=="function"?e:()=>e,[e]);return l(r,d),yn.useEffect(()=>{let p=i.current;return s(r,p),()=>{s(r,null,p);}},[r,s]),jsxRuntime.jsx("div",{ref:i,id:`zeugma-tab-target-${r}`,className:`${o.tabContentWrapper||""} ${t||""}`.trim(),style:{height:"100%",width:"100%",...n}})},Ce=({id:e,children:t,style:n,locked:r=false})=>{let{layout:o,renderingLayout:i,activeId:a,activeType:s,classNames:l,fullscreenPaneId:d,onFullscreenChange:p,locked:f}=re(),{removePane:v,updateMetadata:R,selectTab:h,removeTab:N}=ze(),E=yn.useMemo(()=>{if(s==="tab"&&e===a){let $=F(o,e)?.tabsMetadata?.[e];return {type:"pane",id:e,tabIds:[e],activeTabId:e,tabsMetadata:$?{[e]:$}:void 0}}return Tt(e===a?o:i,e)},[o,i,e,a,s]),T=E?.id??e,Z=E?.tabIds??[e],O=E?.activeTabId??e,y=E?.tabsMetadata,C=y?.[e],x=E?.locked??false,w=r||x,q=f||w,z=f||w,K=a!==null&&a!==e&&(!Z.includes(a)||Z.length>1)&&!z,{attributes:V,listeners:j,setNodeRef:D}=core.useDraggable({id:e,disabled:q}),Q=a!==null&&Z.includes(a),S=d===e,J=yn.useMemo(()=>({isDragging:Q,isFullscreen:S,toggleFullscreen:()=>p?.(S?null:e),remove:()=>{S&&p?.(null),v(T);},metadata:C,updateMetadata:g=>{R(e,g);},locked:q,tabIds:Z,activeTabId:O,selectTab:g=>h(T,g),removeTab:g=>{S&&g===O&&p?.(null),N(g);},tabsMetadata:y,updateTabMetadata:(g,u)=>{R(g,u);}}),[Q,S,p,e,N,C,R,q,Z,O,h,T,y]),W=yn.useMemo(()=>q?{disabled:true}:{...j,...V},[j,V,q]),H=`${l.pane||""} ${w&&l.paneLocked||""}`.trim();return jsxRuntime.jsx(Ye.Provider,{value:{id:e,...J},children:jsxRuntime.jsx(Je.Provider,{value:W,children:jsxRuntime.jsxs("div",{ref:D,id:e,className:H,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,K&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(g=>jsxRuntime.jsx(rt,{id:`drop-${g}-${e}`,position:g,activeClassName:l.dropPreview},g))}),a!==null&&a!==e&&z&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsxRuntime.jsx(rt,{id:`drop-locked-${e}`,position:"full",activeClassName:l.lockedPreview||""})})]})})})};Ce.Content=ho;Ce.DragHandle=Bt;Ce.Tabs=st;Ce.Tab=Ee;Ce.Controls=Yt;exports.Pane=Ce;exports.PaneTree=ot;exports.Zeugma=On;exports.usePaneContext=_t;exports.useResizer=nt;exports.useZeugma=un;exports.useZeugmaContext=pn;//# sourceMappingURL=index.cjs.map
9
+ `,document.head.appendChild(o),t.setAttribute("data-resizing","true");let i=s=>{n(s);},a=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let s=document.getElementById("zeugma-global-cursor-style");s&&s.remove(),document.removeEventListener("pointermove",i),document.removeEventListener("pointerup",a),r();};document.addEventListener("pointermove",i),document.addEventListener("pointerup",a);}function we(e){try{return JSON.stringify(e)}catch{return ""}}var je=Dn.createContext(void 0),Ke=Dn.createContext(void 0),be=Dn.createContext(void 0),Qe=Dn.createContext(void 0),ae=()=>{let e=Dn.useContext(je);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},$e=()=>{let e=Dn.useContext(Ke);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Ae=()=>{let e=Dn.useContext(Qe);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function pt(e){let t=Dn.useRef(null);return Dn.useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},r=o=>{let i=o.touches[0]||o.changedTouches[0];i&&(t.current={x:i.clientX,y:i.clientY});};return window.addEventListener("pointermove",n,{passive:true}),window.addEventListener("touchmove",r,{passive:true}),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("touchmove",r);}},[e]),t}function ft(e){Dn.useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function gt(){let[e,t]=Dn.useState({}),n=Dn.useRef({}),r=Dn.useRef(null),o=Dn.useRef({}),i=Dn.useRef(null),a=Dn.useRef(true);Dn.useEffect(()=>(a.current=true,()=>{a.current=false;}),[]);let s=Dn.useCallback((f,v,P)=>{a.current&&t(b=>{if(!v){if(P&&b[f]!==P||!b[f])return b;let I={...b};return delete I[f],I}return b[f]===v?b:{...b,[f]:v}});},[]),l=Dn.useCallback((f,v)=>{n.current[f]=v;},[]),u=Dn.useCallback(f=>{r.current=f;},[]),c=Dn.useCallback((f,v)=>{o.current[f]=v;},[]);return {portalTargets:e,registerPortalTarget:s,registerRenderCallback:l,renderCallbacksRef:n,registerRenderPane:u,renderPaneRef:r,registerTabHeader:c,tabHeadersRef:o,activeIdRef:i}}function dn(e){let t=new Set;function n(r){r&&(r.type==="pane"?r.tabIds.forEach(o=>{t.add(o);}):r.type==="split"&&(n(r.first),n(r.second)));}return n(e),Array.from(t).sort()}function mt(e){return Dn.useMemo(()=>dn(e),[e])}function bt(e){let{onDragStart:t,onDragEnd:n}=e,[r,o]=Dn.useState(null),[i,a]=Dn.useState(null),s=Dn.useCallback(u=>{t&&t(u);},[t]),l=Dn.useCallback((u,c,f)=>{n&&n(u,c,f);},[n]);return {overTabId:r,setOverTabId:o,overTabPosition:i,setOverTabPosition:a,handleDragStartInternal:s,handleDragEndInternal:l}}function vt(e){let n=Dn.useContext(be)?.registerRenderPane;Dn.useEffect(()=>{n&&e&&n(e);},[n,e]);}function de(){return "pane-"+Math.random().toString(36).substring(2,11)}function fe(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=fe(e.first,t),r=fe(e.second,t);return n===null?r:r===null?n:{...e,first:n,second:r}}function ue(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let o=e.tabIds.filter(s=>s!==t);if(o.length===0)return null;let i=e.activeTabId;e.activeTabId===t&&(i=o[0]);let a={...e.tabsMetadata};return delete a[t],{...e,tabIds:o,activeTabId:i,tabsMetadata:Object.keys(a).length>0?a:void 0}}return e}let n=ue(e.first,t),r=ue(e.second,t);return n===null?r:r===null?n:{...e,first:n,second:r}}function ye(e,t,n,r,o){if(e===null)return typeof o=="string"?{type:"pane",id:de(),tabIds:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let i=typeof o=="string"?{type:"pane",id:de(),tabIds:[o],activeTabId:o}:o,a=r==="left"||r==="top";return {type:"split",direction:n,first:a?i:e,second:a?e:i,splitPercentage:50}}return e}return {...e,first:ye(e.first,t,n,r,o)||e.first,second:ye(e.second,t,n,r,o)||e.second}}function un(e,t){if(e===null)return t;function n(r,o){return r.type==="pane"?{type:"split",direction:o==="row"?"column":"row",splitPercentage:50,first:r,second:t}:{...r,second:n(r.second,r.direction)}}return n(e,null)}function ht(e,t,n,r){if(e===null)return {type:"pane",id:de(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};let o=t?K(e,t):null;if(o&&o.type==="pane"){let s=function(l){if(l.type==="pane"&&l.id===t){let u=[...l.tabIds];u.includes(n)||u.push(n);let c=l.tabsMetadata;return r&&(c={...l.tabsMetadata,[n]:r}),{...l,tabIds:u,activeTabId:n,tabsMetadata:c}}return l.type==="split"?{...l,first:s(l.first),second:s(l.second)}:l};return s(e)}let i={type:"pane",id:de(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};return un(e,i)}function Te(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:Te(e.first,t,n)||e.first,second:Te(e.second,t,n)||e.second}:e}function K(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:e.type==="split"?K(e.first,t)??K(e.second,t):null}function B(e,t){return e===null?null:e.type==="pane"?e.tabIds.includes(t)?e:null:e.type==="split"?B(e.first,t)??B(e.second,t):null}function Tt(e,t){return K(e,t)??B(e,t)}function Pt(e,t){let n=B(e,t);if(!n)return null;let r=n.tabIds.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:r,metadata:n.tabsMetadata?.[t]}}function Rt(e,t){return B(e,t)?.tabsMetadata?.[t]}function xt(e,t){let n=K(e,t);return n?.tabsMetadata?.[n.activeTabId]}function Oe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let r=e.tabsMetadata||{},o=r[t],i=n(o),a={...r};return i===void 0?delete a[t]:a[t]=i,{...e,tabsMetadata:Object.keys(a).length>0?a:void 0}}return e}return e.type==="split"?{...e,first:Oe(e.first,t,n)??e.first,second:Oe(e.second,t,n)??e.second}:e}function Fe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:r,...o}=e;return o}return {...e,locked:n}}return e}return e.type==="split"?{...e,first:Fe(e.first,t,n)??e.first,second:Fe(e.second,t,n)??e.second}:e}function De(e,t,n){return e===null?null:e.type==="pane"?e.id===t?e.activeTabId===n?e:{...e,activeTabId:n}:e:e.type==="split"?{...e,first:De(e.first,t,n)??e.first,second:De(e.second,t,n)??e.second}:e}function yt(e,t,n){if(e===null)return null;let o=B(e,t)?.tabsMetadata?.[t],i=ue(e,t);if(i===null)return {type:"pane",id:de(),tabIds:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function a(s){if(s.type==="pane"){if(s.id===n){let l=[...s.tabIds];l.includes(t)||l.push(t);let u={...s.tabsMetadata};return o&&(u[t]=o),{...s,tabIds:l,activeTabId:t,tabsMetadata:Object.keys(u).length>0?u:void 0}}return s}return s.type==="split"?{...s,first:a(s.first),second:a(s.second)}:s}return a(i)}function Be(e,t,n,r="before"){if(e===null)return null;let i=B(e,t)?.tabsMetadata?.[t],a=ue(e,t);if(a===null)return {type:"pane",id:de(),tabIds:[t],activeTabId:t,tabsMetadata:i?{[t]:i}:void 0};function s(l){if(l.type==="pane"){if(l.tabIds.includes(n)){let c=[...l.tabIds].filter(P=>P!==t),f=c.indexOf(n);f<0&&(f=0),r==="after"&&(f+=1),c.splice(f,0,t);let v={...l.tabsMetadata};return i&&(v[t]=i),{...l,tabIds:c,activeTabId:t,tabsMetadata:Object.keys(v).length>0?v:void 0}}return l}return l.type==="split"?{...l,first:s(l.first),second:s(l.second)}:l}return s(a)}function me(e,t=0,n=0,r=100,o=100,i="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:r,height:o,node:e}],splitters:[]};let{direction:a,splitPercentage:s,first:l,second:u}=e,f={id:`splitter-${i}-${a}`,currentNode:e,direction:a,left:a==="row"?t+r*(s/100):t,top:a==="column"?n+o*(s/100):n,width:a==="row"?0:r,height:a==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:r,parentHeight:o},v={panes:[],splitters:[]},P={panes:[],splitters:[]};if(a==="row"){let b=r*(s/100);v=me(l,t,n,b,o,`${i}-L`),P=me(u,t+b,n,r-b,o,`${i}-R`);}else {let b=o*(s/100);v=me(l,t,n,r,b,`${i}-T`),P=me(u,t,n+b,r,o-b,`${i}-B`);}return {panes:[...v.panes,...P.panes],splitters:[f,...v.splitters,...P.splitters]}}function Dt(e,t,n,r="before"){if(e===null)return null;let o=K(e,t);if(!o)return e;let i=o.tabIds,a=o.activeTabId,s=o.tabsMetadata||{},l=fe(e,t);if(l===null)return o;function u(c){if(c.type==="pane"){if(c.tabIds.includes(n)){let v=[...c.tabIds].filter(I=>!i.includes(I)),P=v.indexOf(n);P<0&&(P=0),r==="after"&&(P+=1),v.splice(P,0,...i);let b={...c.tabsMetadata};for(let I of i)s[I]&&(b[I]=s[I]);return {...c,tabIds:v,activeTabId:a,tabsMetadata:Object.keys(b).length>0?b:void 0}}return c}return c.type==="split"?{...c,first:u(c.first),second:u(c.second)}:c}return u(l)}function Ct(e,t,n,r){if(!((t==="tab"||t==="pane")&&n&&e.includes(n))||!r)return -1;let a=e.indexOf(n);return r==="before"?a:a+1}function pn(e){let{initialLayout:t,layout:n,onChange:r,fullscreenPaneId:o,onFullscreenChange:i,locked:a=false}=e,[s,l]=Dn.useState(()=>n!==void 0?n:t??null),[u,c]=Dn.useState(()=>n!==void 0?n:t??null),[f,v]=Dn.useState(()=>we(n!==void 0?n:null)),[P,b]=Dn.useState(o||null),[I,M]=Dn.useState(a),[A,h]=Dn.useState(null),[k,y]=Dn.useState(null),[E,S]=Dn.useState(null),D=Dn.useRef(null),F=Dn.useCallback(d=>{D.current=d;},[]),$=Dn.useRef(s);$.current=s;let X=Dn.useRef(r);X.current=r;let W=Dn.useRef(i);W.current=i;let Q=Dn.useCallback(d=>{b(d),W.current?.(d);},[]);if(Dn.useEffect(()=>{M(a);},[a]),Dn.useEffect(()=>{o!==void 0&&b(o);},[o]),n!==void 0){let d=we(n);d!==f&&(v(d),l(n),c(n));}let C=Dn.useCallback(d=>(...g)=>{let w=$.current,z=d(w,...g);we(w)!==we(z)&&($.current=z,l(z),c(z),X.current?.(z));},[]),ee=Dn.useCallback(C((d,g)=>typeof g=="function"?g(d):g),[C]),re=Dn.useCallback(d=>{c(g=>typeof d=="function"?d(g):d);},[]),Z=Dn.useCallback(d=>{b(null),W.current?.(null),h(null),y(null),S(null),ee(d),c(()=>typeof d=="function"?d($.current):d);},[ee]),_=Dn.useCallback(C((d,g)=>fe(d,g)),[C]),H=Dn.useCallback(C((d,g,w,z)=>{let q=ue(d,g)??d;return ht(q,w,g,z)}),[C]),m=Dn.useCallback(C((d,g,w,z,q)=>{let oe=K(d,g)??B(d,g);if(!oe)return d;let O=K(d,q)??B(d,q)??{type:"pane",id:q,tabIds:[q],activeTabId:q},ie=fe(d,O.id);return ye(ie,oe.id,w,z,O)}),[C]),N=Dn.useCallback(C((d,g,w)=>Te(d,g,w)),[C]),p=Dn.useCallback(C((d,g,w)=>Oe(d,g,w)),[C]),te=Dn.useCallback(C((d,g,w)=>{let z=K(d,g)??B(d,g);return z?Fe(d,z.id,w):d}),[C]),R=Dn.useCallback(C((d,g,w)=>{let z=K(d,g)??B(d,g);return z?De(d,z.id,w):d}),[C]),L=Dn.useCallback(C((d,g,w)=>{let z=K(d,w)??B(d,w);return z?yt(d,g,z.id):d}),[C]),ce=Dn.useCallback(C((d,g,w,z)=>Be(d,g,w,z)),[C]),J=Dn.useCallback(C((d,g)=>ue(d,g)),[C]),Y=Dn.useCallback(d=>K($.current,d),[]),G=Dn.useCallback(d=>B($.current,d),[]),ne=Dn.useCallback(d=>Pt($.current,d),[]),T=Dn.useCallback(d=>Rt($.current,d),[]),x=Dn.useCallback(d=>xt($.current,d),[]);return {layout:s,setLayout:Z,_internalSetLayout:re,renderingLayout:u,fullscreenPaneId:P,setFullscreenPaneId:Q,locked:I,setLocked:M,activeId:A,setActiveId:h,activeType:k,setActiveType:y,dismissIntentId:E,setDismissIntentId:S,containerRef:D,setContainerRef:F,removePane:_,addTab:H,updateMetadata:p,updatePaneLock:te,selectTab:R,mergeTab:L,moveTab:ce,removeTab:J,splitPane:m,updateSplitPercentage:N,findPaneById:Y,findPaneContainingTab:G,findTabById:ne,getTabMetadata:T,getActiveTabMetadata:x}}var fn=()=>{let e=ae(),t=$e();return {layout:e.layout,setLayout:e.setLayout,fullscreenPaneId:e.fullscreenPaneId,setFullscreenPaneId:t.setFullscreenPaneId,locked:e.locked,setLocked:t.setLocked,removePane:t.removePane,addTab:t.addTab,updateMetadata:t.updateMetadata,updatePaneLock:t.updatePaneLock,selectTab:t.selectTab,mergeTab:t.mergeTab,removeTab:t.removeTab,splitPane:t.splitPane,updateSplitPercentage:t.updateSplitPercentage,moveTab:t.moveTab,findPaneById:e.findPaneById,findPaneContainingTab:e.findPaneContainingTab,findTabById:e.findTabById,getTabMetadata:e.getTabMetadata,getActiveTabMetadata:e.getActiveTabMetadata}};var We=class extends core.PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Ue=class extends core.TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var St=e=>{let n=e.active.id.toString().startsWith("tab-header-"),o=core.pointerWithin(e);if(o.length>0)return [...o].sort((a,s)=>{let l=a.id.toString(),u=s.id.toString(),c=l.startsWith("tab-drop-"),f=u.startsWith("tab-drop-");if(c&&!f)return -1;if(!c&&f)return 1;let v=l.startsWith("drop-root-"),P=u.startsWith("drop-root-");return v&&!P?-1:!v&&P?1:0});if(n){let i=e.droppableContainers.filter(a=>a.id.toString().startsWith("tab-drop-"));return core.closestCenter({...e,droppableContainers:i})}return []};function Ne(e){if(e instanceof MouseEvent||e instanceof PointerEvent)return {x:e.clientX,y:e.clientY};if(typeof TouchEvent<"u"&&e instanceof TouchEvent){let t=e.touches[0]||e.changedTouches[0];if(t)return {x:t.clientX,y:t.clientY}}return null}function Mt(e){let{layout:t,_internalSetLayout:n,setLayout:r,activeId:o,setActiveId:i,activeType:a,setActiveType:s,dismissIntentId:l,setDismissIntentId:u,setOverTabId:c,setOverTabPosition:f,containerRef:v,dragActivationDistance:P,enableDragToDismiss:b,dismissThreshold:I,onRemove:M,onDragStart:A,onDragEnd:h,onDismissIntentChange:k,removeTab:y,removePane:E}=e,S=Dn.useRef(null),D=pt(o),F=Dn.useRef(null),[$,X]=Dn.useState(false);return ft($),{sensors:core.useSensors(core.useSensor(We,{activationConstraint:{distance:P}}),core.useSensor(Ue,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:St,onDragStart:Z=>{let _=Z.active.id.toString(),H=_.startsWith("tab-header-"),m=H?_.substring(11):_;i(m),s(H?"tab":"pane"),c(null),f(null);let N=Z.activatorEvent;D.current=Ne(N),b&&v.current?S.current=v.current.getBoundingClientRect():S.current=null;let p=t;if(H){let R=B(t,m);R&&(p=De(t,R.id,m)||t);}F.current=p;let te=H?ue(p,m):fe(p,m);n(te),A&&A(m);},onDragMove:Z=>{let{over:_}=Z,H=_?.id.toString()||"",m=H.startsWith("drop-locked-");X(T=>T===m?T:m);let N=Z.active.id.toString(),p=N.startsWith("tab-header-"),te=p?N.substring(11):N,R=H.match(/^tab-drop-(.+)$/);if(R&&_&&(p||a==="pane")){let[,T]=R;if(te!==T){let x="before",se=_.rect,d=Z.activatorEvent,g=null;if(D.current)g=D.current.x;else {let w=Ne(d);w&&(g=w.x+Z.delta.x);}if(g!==null){let w=se.left+se.width/2;g>w&&(x="after");}c(w=>w===T?w:T),f(w=>w===x?w:x);}else c(x=>x===null?x:null),f(x=>x===null?x:null);}else c(T=>T===null?T:null),f(T=>T===null?T:null);if(!b)return;let L=S.current;if(!L){l!==null&&(u(null),k?.(null));return}let ce=Z.activatorEvent,J=null,Y=null;if(D.current)J=D.current.x,Y=D.current.y;else {let T=Ne(ce);T&&(J=T.x+Z.delta.x,Y=T.y+Z.delta.y);}let G=0;if(J!==null&&Y!==null){let T=0,x=0;J<L.left?T=L.left-J:J>L.right&&(T=J-L.right),Y<L.top?x=L.top-Y:Y>L.bottom&&(x=Y-L.bottom),G=Math.sqrt(T*T+x*x);}else {let T=Z.active.rect.current.translated;if(T){let x=T.left+T.width/2,se=T.top+T.height/2,d=0,g=0;x<L.left?d=L.left-x:x>L.right&&(d=x-L.right),se<L.top?g=L.top-se:se>L.bottom&&(g=se-L.bottom),G=Math.sqrt(d*d+g*g);}}G>I?l!==te&&(u(te),k?.(te)):l!==null&&(u(null),k?.(null));},onDragEnd:Z=>{i(null),s(null),X(false),c(null),f(null);let{active:_,over:H}=Z,m=_.id.toString(),N=m.startsWith("tab-header-"),p=N?m.substring(11):m,te=b&&l===p;u(null),k?.(null),S.current=null;let R=F.current||t;if(F.current=null,te){M?M(p):N?y(p):E(p),h&&h(p,null,null);return}if(!H){n(R),h&&h(p,null,null);return}let L=H.id.toString();if(L.startsWith("drop-locked-")){n(R),h&&h(p,null,null);return}let ce=L.match(/^tab-drop-(.+)$/);if(ce){let[,q]=ce;if(N)if(p!==q){let oe="before",O=H.rect,ie=Z.activatorEvent,j=null;if(D.current)j=D.current.x;else {let U=Ne(ie);U&&(j=U.x+Z.delta.x);}if(j!==null){let U=O.left+O.width/2;j>U&&(oe="after");}let pe=Be(R,p,q,oe);r(pe),h&&h(p,q,{type:"move",position:"center"});}else n(R),h&&h(p,null,null);else {let oe="before",O=H.rect,ie=Z.activatorEvent,j=null;if(D.current)j=D.current.x;else {let U=Ne(ie);U&&(j=U.x+Z.delta.x);}if(j!==null){let U=O.left+O.width/2;j>U&&(oe="after");}let pe=Dt(R,p,q,oe);r(pe),h&&h(p,q,{type:"move",position:"center"});}return}let J=L.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(J){let[,q,oe]=J,O=oe;O==="start"&&(O="left"),O==="end"&&(O="right");let ie=N?ue(R,p):fe(R,p),j;if(N){let U=B(R,p)?.tabsMetadata?.[p];j={type:"pane",id:de(),tabIds:[p],activeTabId:p,tabsMetadata:U?{[p]:U}:void 0};}else j=K(R,p)??{type:"pane",id:de(),tabIds:[p],activeTabId:p};if(ie===null)r(j);else {let pe=O==="left"||O==="right",U=O==="left"||O==="top",he=50;q==="1/4"?he=U?25:75:q==="1/3"&&(he=U?100/3:200/3),r({type:"split",direction:pe?"row":"column",first:U?j:ie,second:U?ie:j,splitPercentage:he});}h&&h(p,"root",{type:"split",direction:O==="left"||O==="right"?"row":"column",position:O});return}let Y=L.match(/^drop-(left|right|top|bottom)-(.+)$/);if(!Y){n(R),h&&h(p,null,null);return}let[,G,ne]=Y,T=N?B(R,p):K(R,p),x=T&&T.id===ne,se=T&&T.tabIds.length===1;if(p===ne||x&&se){n(R),h&&h(p,null,null);return}let d=G==="left"||G==="right"?"row":"column",g;if(N){let oe=B(R,p)?.tabsMetadata?.[p];g={type:"pane",id:de(),tabIds:[p],activeTabId:p,tabsMetadata:oe?{[p]:oe}:void 0};}else g=K(R,p)??{type:"pane",id:de(),tabIds:[p],activeTabId:p};let w=N?ue(R,p):fe(R,p),z=ye(w,ne,d,G,g);r(z),h&&h(p,ne,{type:"split",direction:d,position:G});},onDragCancel:()=>{i(null),s(null),X(false),c(null),f(null),u(null),k?.(null),S.current=null;let Z=F.current||t;F.current=null,n(Z),Z!==t&&r(Z);}}}function Lt({persist:e,layout:t,setLayout:n}){let r=typeof e=="object"?e.enabled!==false:!!e,o=typeof e=="object"&&e.key||"zeugma-layout",[i,a]=Dn.useState(false);Dn.useEffect(()=>{if(r){let s=localStorage.getItem(o);if(s)try{let l=JSON.parse(s);l&&n(l);}catch(l){console.error("Failed to parse persisted zeugma layout",l);}}a(true);},[r,o,n]),Dn.useEffect(()=>{r&&i&&(t?localStorage.setItem(o,JSON.stringify(t)):localStorage.removeItem(o));},[r,o,t,i]);}var Zt=({activeId:e,render:t,className:n})=>{let r=Dn.useRef(null);return Dn.useEffect(()=>{let o=i=>{r.current&&(r.current.style.transform=`translate(${i.clientX+12}px, ${i.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsxRuntime.jsx("div",{ref:r,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var kt=Dn__default.default.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,[o,i]=Dn.useState(false),a=Dn.useRef(null);if(Dn.useEffect(()=>{i(true);},[]),Dn.useEffect(()=>{if(!o||!a.current)return;let l=a.current;if(t)t.appendChild(l);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(l);}},[t,o]),Dn.useEffect(()=>()=>{a.current&&a.current.remove();},[]),!o)return null;a.current||(a.current=document.createElement("div"),a.current.className=`zeugma-portal-wrapper-${r}`,a.current.style.width="100%",a.current.style.height="100%");let s=a.current;return !s||!n?null:reactDom.createPortal(n(e),s)},(e,t)=>e.target===t.target&&e.renderWidget===t.renderWidget&&e.tabDetails.id===t.tabDetails.id&&e.tabDetails.paneId===t.tabDetails.paneId&&e.tabDetails.isActive===t.tabDetails.isActive&&e.tabDetails.index===t.tabDetails.index&&e.tabDetails.metadata===t.tabDetails.metadata);var zt=({activeId:e,activeType:t,dismissIntentId:n,renderDragOverlay:r,renderPaneRef:o,renderPane:i,tabHeadersRef:a,classNames:s})=>{if(r)return jsxRuntime.jsx(jsxRuntime.Fragment,{children:r({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let l=o.current||i;if(l)return jsxRuntime.jsx("div",{className:s.paneDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:l(e)})}else if(t==="tab"){let l=o.current||i;if(l)return jsxRuntime.jsx("div",{className:s.tabDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:l(e)});let u=a.current[e];if(u){let c=s.tab?typeof s.tab=="function"?s.tab(e):s.tab:"";return jsxRuntime.jsx("div",{className:`${s.tabDragPreview||""} ${c}`.trim(),style:{display:"inline-flex",position:"relative",pointerEvents:"none",overflow:"hidden"},children:u({isDragging:true,isOver:false})})}}return jsxRuntime.jsx("div",{style:{pointerEvents:"none",overflow:"hidden",width:"100%",height:"100%"}})};function nt({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:i,layout:a,currentNode:s,onLayoutChange:l,onResizeStart:u,onResizeEnd:c,parentLeft:f,parentTop:v,parentWidth:P,parentHeight:b}){let{onResizeStart:I,onResize:M,onResizeEnd:A,minSplitPercentage:h=5,maxSplitPercentage:k=95,locked:y=false}=ae();return Dn.useCallback(E=>{if(y)return;E.preventDefault();let S=e.current;if(!S)return;u&&u(),I&&I(s);let D=S.getBoundingClientRect(),F=E.clientX,$=E.clientY,X=r,W=E.currentTarget,Q=D.left+D.width*(f/100),C=D.top+D.height*(v/100),ee=D.width*(P/100),re=D.height*(b/100),_=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(m=>m!==W&&m.getAttribute("data-direction")===n).map(m=>{let N=m.getBoundingClientRect();return t?N.left+N.width/2:N.top+N.height/2}),H=X;ut({cursor:t?"col-resize":"row-resize",resizerEl:W,onMove:m=>{let N=t?(m.clientX-F)/ee*100:(m.clientY-$)/re*100,p=X+N,te=t?Q+(ee-o)*(p/100)+o/2:C+(re-o)*(p/100)+o/2,R=1/0,L=null;for(let G of _){let ne=Math.abs(te-G);ne<i&&ne<R&&(R=ne,L=G);}let ce=p;L!==null&&(ce=t?(L-o/2-Q)/(ee-o)*100:(L-o/2-C)/(re-o)*100);let J=Math.max(h,Math.min(k,ce));H=J;let Y=Te(a,s,J);if(Y){let{panes:G,splitters:ne}=me(Y),T=e.current;if(T){for(let x of G)T.style.setProperty(`--pane-left-${x.paneId}`,`${x.left}%`),T.style.setProperty(`--pane-top-${x.paneId}`,`${x.top}%`),T.style.setProperty(`--pane-width-${x.paneId}`,`${x.width}%`),T.style.setProperty(`--pane-height-${x.paneId}`,`${x.height}%`);for(let x of ne)T.style.setProperty(`--splitter-pos-${x.id}`,`${x.direction==="row"?x.left:x.top}%`);}}M&&M(s,J);},onEnd:()=>{let m=Te(a,s,H),N=e.current;if(N){let{panes:p,splitters:te}=me(m);for(let R of p)N.style.removeProperty(`--pane-left-${R.paneId}`),N.style.removeProperty(`--pane-top-${R.paneId}`),N.style.removeProperty(`--pane-width-${R.paneId}`),N.style.removeProperty(`--pane-height-${R.paneId}`);for(let R of te)N.style.removeProperty(`--splitter-pos-${R.id}`);}l(m),c&&c(),A&&A(s,H);}});},[e,t,n,r,o,i,a,s,l,u,c,I,M,A,h,k,f,v,P,b])}var $t=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{renderingLayout:o,setLayout:i,classNames:a,locked:s}=ae(),[l,u]=Dn.useState(false),{currentNode:c,direction:f,left:v,top:P,width:b,height:I,parentLeft:M,parentTop:A,parentWidth:h,parentHeight:k}=e,y=f==="row",E=nt({containerRef:r,isRow:y,direction:f,splitPercentage:c.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:c,onLayoutChange:i,onResizeStart:()=>u(true),onResizeEnd:()=>u(false),parentLeft:M,parentTop:A,parentWidth:h,parentHeight:k}),S=y?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${v}%) - ${t/2}px)`,top:`calc(${P}% + ${t/2}px)`,width:`${t}px`,height:`calc(${I}% - ${t}px)`,cursor:s?"default":"col-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${v}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${P}%) - ${t/2}px)`,width:`calc(${b}% - ${t}px)`,height:`${t}px`,cursor:s?"default":"row-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsxRuntime.jsx("div",{className:a.resizer||"","data-direction":f,"data-resizing":l||void 0,style:S,onPointerDown:E,role:"separator","aria-valuenow":c.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},At=Dn__default.default.memo(({paneId:e,renderPane:t})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var ot=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{vt(e);let{renderingLayout:o,activeId:i,dismissIntentId:a,setContainerRef:s,fullscreenPaneId:l,snapThreshold:u,locked:c,classNames:f,resizerSize:v}=ae(),P=r!==void 0?r:u??8,b=n!==void 0?n:v??4,I=t!==void 0?t:o,M=Dn.useRef(null),{panes:A,splitters:h}=Dn.useMemo(()=>I?me(I):{panes:[],splitters:[]},[I]);if(!I&&t!==void 0)return null;let k=()=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[A.map(y=>{let E=l===y.paneId;return jsxRuntime.jsx("div",{style:{position:"absolute",left:E?"0%":`var(--pane-left-${y.paneId}, ${y.left}%)`,top:E?"0%":`var(--pane-top-${y.paneId}, ${y.top}%)`,width:E?"100%":`var(--pane-width-${y.paneId}, ${y.width}%)`,height:E?"100%":`var(--pane-height-${y.paneId}, ${y.height}%)`,overflow:"hidden",zIndex:E?20:1,display:l&&!E?"none":"block",padding:E?"0px":`${b/2}px`,boxSizing:"border-box"},children:jsxRuntime.jsx(At,{paneId:y.paneId,renderPane:e})},y.paneId)}),!l&&h.map(y=>jsxRuntime.jsx($t,{splitter:y,resizerSize:b,snapThreshold:P,containerRef:M},y.id))]});if(t===void 0){let y=i!==null&&i===a,E=D=>{s(D),M.current=D;},S=`${f.dashboard||""} ${y&&f.dashboardDismissActive||""} ${c&&f.dashboardLocked||""}`.trim();return jsxRuntime.jsxs("div",{ref:E,className:S,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[k(),i!==null&&!c&&jsxRuntime.jsx(Ft,{activeClassName:f.rootDropPreview??f.dropPreview})]})}return jsxRuntime.jsx("div",{ref:M,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:k()})};var Hn=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:i,resizerSize:a,dragActivationDistance:s=8,snapThreshold:l=8,minSplitPercentage:u=5,maxSplitPercentage:c=95,enableDragToDismiss:f=false,dismissThreshold:v=60,onRemove:P,onDragStart:b,onDragEnd:I,onResizeStart:M,onResize:A,onResizeEnd:h,onDismissIntentChange:k,persist:y=false}=e,E=t,{layout:S,setLayout:D,_internalSetLayout:F,renderingLayout:$,fullscreenPaneId:X,setFullscreenPaneId:W,locked:Q,setLocked:C,findPaneById:ee,findPaneContainingTab:re,findTabById:Z,getTabMetadata:_,getActiveTabMetadata:H,activeId:m,setActiveId:N,activeType:p,setActiveType:te,dismissIntentId:R,setDismissIntentId:L,containerRef:ce,setContainerRef:J,removePane:Y,addTab:G,updateMetadata:ne,updatePaneLock:T,selectTab:x,mergeTab:se,removeTab:d,splitPane:g,updateSplitPercentage:w,moveTab:z}=E;Lt({persist:y,layout:S,setLayout:D});let{portalTargets:q,registerPortalTarget:oe,registerRenderCallback:O,renderCallbacksRef:ie,registerRenderPane:j,renderPaneRef:pe,registerTabHeader:U,tabHeadersRef:he,activeIdRef:Se}=gt(),{overTabId:it,setOverTabId:jt,overTabPosition:lt,setOverTabPosition:Kt,handleDragStartInternal:Qt,handleDragEndInternal:en}=bt({onDragStart:b,onDragEnd:I}),tn=Mt({layout:S,_internalSetLayout:F,setLayout:D,activeId:m,setActiveId:N,activeType:p,setActiveType:te,dismissIntentId:R,setDismissIntentId:L,setOverTabId:jt,setOverTabPosition:Kt,containerRef:ce,dragActivationDistance:s,enableDragToDismiss:f,dismissThreshold:v,onRemove:P,onDragStart:Qt,onDragEnd:en,onDismissIntentChange:k,removeTab:d,removePane:Y}),_e=Dn.useMemo(()=>o,[o.dashboard,o.dashboardDismissActive,o.pane,o.paneLocked,o.dropPreview,o.rootDropPreview,o.dragOverlay,o.paneDragPreview,o.tabDragPreview,o.resizer,o.dismissPreview,o.dashboardLocked,o.lockedPreview,o.tabDropPreview,o.tabSeparator,o.tabsContainer,o.tab,o.paneContainer,o.paneHeader,o.paneControls,o.paneButton,o.tabCloseButton,o.dragHandle]),ct=Dn.useCallback((ge,ke)=>{h&&h(ge,ke);},[h]),nn=Dn.useMemo(()=>({layout:S,renderingLayout:$,setLayout:D,activeId:m,activeType:p,dismissIntentId:R,setContainerRef:J,fullscreenPaneId:X,classNames:_e,onRemove:P,onFullscreenChange:W,snapThreshold:l,onResizeStart:M,onResize:A,onResizeEnd:ct,minSplitPercentage:u,maxSplitPercentage:c,locked:Q,setLocked:C,findPaneById:ee,findPaneContainingTab:re,findTabById:Z,getTabMetadata:_,getActiveTabMetadata:H,renderPane:i,resizerSize:a}),[S,$,m,p,R,J,X,_e,P,W,l,M,A,u,c,D,ct,Q,C,ee,re,Z,_,H,i,a]),on=Dn.useMemo(()=>({overTabId:it,overTabPosition:lt}),[it,lt]),rn=Dn.useMemo(()=>({removePane:Y,addTab:G,updateMetadata:ne,updatePaneLock:T,selectTab:x,mergeTab:se,removeTab:d,setFullscreenPaneId:W,setLocked:C,splitPane:g,updateSplitPercentage:w,moveTab:z}),[Y,G,ne,T,x,se,d,W,C,g,w,z]),an=mt(S),sn=Dn.useMemo(()=>({registerPortalTarget:oe,registerRenderCallback:O,renderCallbacksRef:ie,registerRenderPane:j,renderPaneRef:pe,registerTabHeader:U,tabHeadersRef:he,activeIdRef:Se}),[oe,O,ie,j,pe,U,he,Se]);return Se&&(Se.current=m),jsxRuntime.jsx(Ke.Provider,{value:rn,children:jsxRuntime.jsx(je.Provider,{value:nn,children:jsxRuntime.jsx(Qe.Provider,{value:on,children:jsxRuntime.jsxs(be.Provider,{value:sn,children:[jsxRuntime.jsx(core.DndContext,{id:"zeugma-dnd-context",...tn,children:n}),m&&p&&jsxRuntime.jsx(Zt,{activeId:m,render:ge=>jsxRuntime.jsx("div",{style:{transition:"transform 150ms cubic-bezier(0.2, 0, 0, 1)",transform:ge===R?"scale(0.8)":"scale(1)",transformOrigin:"top left"},children:jsxRuntime.jsx(zt,{activeId:ge,activeType:p,dismissIntentId:R,renderDragOverlay:r,renderPaneRef:pe,renderPane:i,tabHeadersRef:he,classNames:_e})}),className:`${o.dragOverlay||""} ${m===R&&o.dismissPreview||""}`.trim()}),jsxRuntime.jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:an.map(ge=>{let ke=q[ge],dt=Z(ge);return dt?jsxRuntime.jsx(kt,{tabDetails:dt,target:ke||null,renderWidget:ie.current[ge]},ge):null})})]})})})})},On=({renderPane:e,resizerSize:t,snapThreshold:n})=>{if(!e)throw new Error("Zeugma component requires a renderPane prop when used as a standalone renderer.");return jsxRuntime.jsx(ot,{renderPane:e,resizerSize:t,snapThreshold:n})},Fn=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsxRuntime.jsx(Hn,{...e,children:t!==void 0?t:jsxRuntime.jsx(On,{...n})})};var Wn={top:{"1/4":{position:"absolute",top:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",top:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},bottom:{"1/4":{position:"absolute",bottom:0,left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",bottom:"24px",left:0,width:"100%",height:"24px",zIndex:100,pointerEvents:"auto"}},left:{"1/4":{position:"absolute",left:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",left:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}},right:{"1/4":{position:"absolute",right:0,top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"},"1/3":{position:"absolute",right:"24px",top:"48px",width:"24px",height:"calc(100% - 96px)",zIndex:100,pointerEvents:"auto"}}},Un={top:{"1/4":{top:0,left:0,width:"100%",height:"60px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"},"1/3":{top:0,left:0,width:"100%",height:"96px",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderTopRightRadius:"0px"}},bottom:{"1/4":{bottom:0,left:0,width:"100%",height:"60px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{bottom:0,left:0,width:"100%",height:"96px",borderTopLeftRadius:"12px",borderTopRightRadius:"12px",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px"}},left:{"1/4":{left:0,top:0,width:"60px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"},"1/3":{left:0,top:0,width:"96px",height:"100%",borderTopRightRadius:"12px",borderBottomRightRadius:"12px",borderTopLeftRadius:"0px",borderBottomLeftRadius:"0px"}},right:{"1/4":{right:0,top:0,width:"60px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"},"1/3":{right:0,top:0,width:"96px",height:"100%",borderTopLeftRadius:"12px",borderBottomLeftRadius:"12px",borderTopRightRadius:"0px",borderBottomRightRadius:"0px"}}},Xn=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:i}=core.useDroppable({id:e}),a={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...Un[n][t]};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:o,style:Wn[n][t]}),i&&jsxRuntime.jsx("div",{className:r,style:a})]})},Ft=({activeClassName:e})=>jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:99,pointerEvents:"none"},children:[{id:"drop-root-1/4-top",fraction:"1/4",edge:"top"},{id:"drop-root-1/3-top",fraction:"1/3",edge:"top"},{id:"drop-root-1/4-bottom",fraction:"1/4",edge:"bottom"},{id:"drop-root-1/3-bottom",fraction:"1/3",edge:"bottom"},{id:"drop-root-1/4-left",fraction:"1/4",edge:"left"},{id:"drop-root-1/3-left",fraction:"1/3",edge:"left"},{id:"drop-root-1/4-right",fraction:"1/4",edge:"right"},{id:"drop-root-1/3-right",fraction:"1/3",edge:"right"}].map(n=>jsxRuntime.jsx(Xn,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var Je=Dn.createContext(null);var Gn={top:{position:"absolute",top:0,left:0,width:"100%",height:"25%",zIndex:20,pointerEvents:"auto"},bottom:{position:"absolute",bottom:0,left:0,width:"100%",height:"25%",zIndex:20,pointerEvents:"auto"},left:{position:"absolute",top:"25%",left:0,width:"50%",height:"50%",zIndex:20,pointerEvents:"auto"},right:{position:"absolute",top:"25%",right:0,width:"50%",height:"50%",zIndex:20,pointerEvents:"auto"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:20,pointerEvents:"auto",cursor:"not-allowed"}},jn={top:{position:"absolute",top:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},bottom:{position:"absolute",bottom:0,left:0,right:0,height:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},left:{position:"absolute",top:0,bottom:0,left:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},right:{position:"absolute",top:0,bottom:0,right:0,width:"50%",zIndex:21,pointerEvents:"none",boxSizing:"border-box"},full:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:21,pointerEvents:"none",boxSizing:"border-box"}},rt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=core.useDroppable({id:e});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{ref:r,style:Gn[t]}),o&&jsxRuntime.jsx("div",{className:n,style:jn[t]})]})};var Vt=({children:e,className:t,style:n})=>{let r=Dn.useContext(Je);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...i}=r;return jsxRuntime.jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:i,children:e})};var io=Dn.createContext(void 0);var Ze=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:i,classNames:a={},fullscreenPaneId:s}=ae(),{overTabId:l}=Ae(),u=Dn.useContext(be);Dn.useEffect(()=>(u?.registerTabHeader&&u.registerTabHeader(e,n),()=>{u?.registerTabHeader&&u.activeIdRef?.current!==e&&u.registerTabHeader(e,()=>null);}),[e,n,u]);let c=Dn.useContext(at),f=t||i||(c?.locked??false)||s!==null,{attributes:v,listeners:P,setNodeRef:b,isDragging:I}=core.useDraggable({id:`tab-header-${e}`,disabled:f}),{setNodeRef:M,isOver:A}=core.useDroppable({id:`tab-drop-${e}`,disabled:f}),h=ee=>{b(ee),M(ee);},k=A&&l===e,y=c?.tabIds||[],E=y.indexOf(e),S=c?.activeTabId,F=E>0&&e!==S&&y[E-1]!==S?jsxRuntime.jsx("div",{className:a.tabSeparator}):null,$=c?c.activeTabId===e:false,X=c?.tabsMetadata?.[e],W=Dn.useCallback(()=>{c?.selectTab(e);},[c,e]),Q=Dn.useCallback(()=>{c?.removeTab(e);},[c,e]),C=Dn.useMemo(()=>({tabId:e,isActive:$,isDragging:I,isOver:k,metadata:X,locked:f,selectTab:W,removeTab:Q}),[e,$,I,k,X,f,W,Q]);return jsxRuntime.jsx(io.Provider,{value:C,children:jsxRuntime.jsxs("div",{ref:h,id:`tab-header-${e}`,className:r,style:{display:"inline-flex",position:"relative",cursor:f?"default":"grab",...o},...f?{}:P,...f?{}:v,children:[F,n({isDragging:I,isOver:k})]})})};var at=Dn.createContext(void 0);var Jt=(e,t)=>typeof e=="function"?e(t):e,st=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:i,renderTab:a,classNames:s,styles:l})=>{let u=Dn.useContext(Ye),c=e??u?.tabIds??[],f=t??u?.activeTabId??"",v=n??u?.locked??false,P=r??u?.tabsMetadata,b=o??u?.selectTab??(()=>{}),I=i??u?.removeTab??(()=>{}),{classNames:M={},activeType:A}=ae(),{overTabId:h,overTabPosition:k}=Ae(),y=Dn.useMemo(()=>({tabIds:c,activeTabId:f,locked:v,tabsMetadata:P,selectTab:b,removeTab:I}),[c,f,v,P,b,I]),E=Ct(c,A,h,k);return jsxRuntime.jsx(at.Provider,{value:y,children:jsxRuntime.jsxs("div",{className:s?.container,style:{display:"flex",alignItems:"center",height:"100%",...l?.container},children:[c.map((S,D)=>{let F=P?.[S],$=Jt(s?.tab,S),X=Jt(l?.tab,S),W=D===E;return jsxRuntime.jsxs(Dn__default.default.Fragment,{children:[W&&M.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:M.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:D===0?"none":"translateX(-50%)"}})}),jsxRuntime.jsx(Ze,{id:S,locked:v,className:$,style:X,children:({isDragging:Q,isOver:C})=>a({id:S,paneId:u?.id??"",isActive:S===f,index:D,isDragging:Q,isOver:C,metadata:F,onSelect:()=>b(S),onRemove:()=>I(S)})})]},S)}),E===c.length&&M.tabDropPreview&&jsxRuntime.jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsxRuntime.jsx("div",{className:M.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};st.Tab=Ze;var qt=({className:e,style:t,children:n})=>jsxRuntime.jsx("div",{className:e,style:t,children:n});var Ye=Dn.createContext(void 0),Gt=()=>{let e=Dn.useContext(Ye);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},To=({children:e,className:t,style:n})=>{let{activeTabId:r}=Gt(),{classNames:o}=ae(),i=Dn.useRef(null),a=Dn.useContext(be);if(!a)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:s,registerRenderCallback:l}=a,u=Dn.useMemo(()=>typeof e=="function"?e:()=>e,[e]);return l(r,u),Dn.useEffect(()=>{let c=i.current;return s(r,c),()=>{s(r,null,c);}},[r,s]),jsxRuntime.jsx("div",{ref:i,id:`zeugma-tab-target-${r}`,className:`${o.tabContentWrapper||""} ${t||""}`.trim(),style:{height:"100%",width:"100%",...n}})},Ie=({id:e,children:t,style:n,locked:r=false})=>{let{layout:o,renderingLayout:i,activeId:a,activeType:s,classNames:l,fullscreenPaneId:u,onFullscreenChange:c,locked:f}=ae(),{removePane:v,updateMetadata:P,selectTab:b,removeTab:I}=$e(),M=Dn.useMemo(()=>{if(s==="tab"&&e===a){let p=B(o,e)?.tabsMetadata?.[e];return {type:"pane",id:e,tabIds:[e],activeTabId:e,tabsMetadata:p?{[e]:p}:void 0}}return Tt(e===a?o:i,e)},[o,i,e,a,s]),A=M?.id??e,h=M?.tabIds??[e],k=M?.activeTabId??e,y=M?.tabsMetadata,E=y?.[e],S=M?.locked??false,D=r||S,F=f||D||u!==null,$=f||D||u!==null,X=a!==null&&a!==e&&(!h.includes(a)||h.length>1)&&!$,{attributes:W,listeners:Q,setNodeRef:C}=core.useDraggable({id:e,disabled:F}),ee=a!==null&&h.includes(a),re=u===e,Z=Dn.useMemo(()=>({isDragging:ee,isFullscreen:re,toggleFullscreen:()=>c?.(re?null:e),remove:()=>{re&&c?.(null),v(A);},metadata:E,updateMetadata:m=>{P(e,m);},locked:F,tabIds:h,activeTabId:k,selectTab:m=>b(A,m),removeTab:m=>{re&&m===k&&c?.(null),I(m);},tabsMetadata:y,updateTabMetadata:(m,N)=>{P(m,N);}}),[ee,re,c,e,I,E,P,F,h,k,b,A,y]),_=Dn.useMemo(()=>F?{disabled:true}:{...Q,...W},[Q,W,F]),H=`${l.pane||""} ${D&&l.paneLocked||""}`.trim();return jsxRuntime.jsx(Ye.Provider,{value:{id:e,...Z},children:jsxRuntime.jsx(Je.Provider,{value:_,children:jsxRuntime.jsxs("div",{ref:C,id:e,className:H,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,X&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:["top","bottom","left","right"].map(m=>jsxRuntime.jsx(rt,{id:`drop-${m}-${e}`,position:m,activeClassName:l.dropPreview},m))}),a!==null&&a!==e&&$&&jsxRuntime.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsxRuntime.jsx(rt,{id:`drop-locked-${e}`,position:"full",activeClassName:l.lockedPreview||""})})]})})})};Ie.Content=To;Ie.DragHandle=Vt;Ie.Tabs=st;Ie.Tab=Ze;Ie.Controls=qt;exports.Pane=Ie;exports.PaneTree=ot;exports.Zeugma=Fn;exports.usePaneContext=Gt;exports.useResizer=nt;exports.useZeugma=pn;exports.useZeugmaContext=fn;//# sourceMappingURL=index.cjs.map
10
10
  //# sourceMappingURL=index.cjs.map