react-zeugma 6.9.1 → 6.9.2
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 +73 -70
- package/dist/index.cjs +4 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/{types-V7PXu-Mo.d.cts → types-DFl4yzkP.d.cts} +8 -8
- package/dist/{types-V7PXu-Mo.d.ts → types-DFl4yzkP.d.ts} +8 -8
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-
|
|
2
|
-
export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-
|
|
1
|
+
import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-DFl4yzkP.cjs';
|
|
2
|
+
export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-DFl4yzkP.cjs';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
5
5
|
declare function useZeugma(options: UseZeugmaOptions): ZeugmaController;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-
|
|
2
|
-
export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-
|
|
1
|
+
import { U as UseZeugmaOptions, Z as ZeugmaController, a as ZeugmaProps, S as SplitDirection, T as TreeNode, b as SplitNode, R as RenderTabProps, c as TabDetails } from './types-DFl4yzkP.js';
|
|
2
|
+
export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-DFl4yzkP.js';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
5
5
|
declare function useZeugma(options: UseZeugmaOptions): ZeugmaController;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import ge,{createContext,useState,useRef,useEffect,useContext,useCallback,useMemo}from'react';import {useDraggable,DndContext,useDroppable,useSensors,useSensor,pointerWithin,closestCenter,PointerSensor,TouchSensor}from'@dnd-kit/core';import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {createPortal}from'react-dom';function Nt({cursor:e,resizerEl:t,onMove:n,onEnd:a}){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,6 +6,7 @@ import me,{createContext,useState,useRef,useEffect,useContext,useCallback,useMem
|
|
|
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 s=a=>{n(a);},l=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let a=document.getElementById("zeugma-global-cursor-style");a&&a.remove(),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",l),r();};document.addEventListener("pointermove",s),document.addEventListener("pointerup",l);}function Me(e){try{return JSON.stringify(e)}catch{return ""}}var ct=createContext(void 0),xe=createContext(void 0),ye=createContext(void 0),ut=createContext(void 0),re=()=>{let e=useContext(ct);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},ze=()=>{let e=useContext(xe);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},qe=()=>{let e=useContext(ut);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function St(e){let t=useRef(null);return useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},r=o=>{let s=o.touches[0]||o.changedTouches[0];s&&(t.current={x:s.clientX,y:s.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 Nt(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function It(){let[e,t]=useState({}),[n,r]=useState({}),o=useRef({}),s=useRef(null),l=useRef({}),a=useRef(null),c=useRef(true);useEffect(()=>(c.current=true,()=>{c.current=false;}),[]);let f=useCallback((u,m,y)=>{c.current&&t(b=>{if(!m){if(y&&b[u]!==y||!b[u])return b;let S={...b};return delete S[u],S}return b[u]===m?b:{...b,[u]:m}});},[]),i=useCallback((u,m)=>{c.current&&r(y=>{if(!m){if(!y[u])return y;let b={...y};return delete b[u],b}return y[u]===m?y:{...y,[u]:m}});},[]),h=useCallback((u,m)=>{o.current[u]=m;},[]),v=useCallback(u=>{s.current=u;},[]),g=useCallback((u,m)=>{l.current[u]=m;},[]);return {portalTargets:useMemo(()=>({...e,...n}),[e,n]),registerPortalTarget:f,registerPopoutTarget:i,registerRenderCallback:h,renderCallbacksRef:o,registerRenderPane:v,renderPaneRef:s,registerTabHeader:g,tabHeadersRef:l,activeIdRef:a}}function Ln(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 Lt(e){return useMemo(()=>Ln(e),[e])}function kt(e){let{onDragStart:t,onDragEnd:n}=e,[r,o]=useState(null),[s,l]=useState(null),a=useCallback(f=>{t&&t(f);},[t]),c=useCallback((f,i,h)=>{n&&n(f,i,h);},[n]);return {overTabId:r,setOverTabId:o,overTabPosition:s,setOverTabPosition:l,handleDragStartInternal:a,handleDragEndInternal:c}}function Mt(e){let n=useContext(ye)?.registerRenderPane;useEffect(()=>{n&&e&&n(e);},[n,e]);}function pe(){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),r=ge(e.second,t);return n===null?r:r===null?n:{...e,first:n,second:r}}function fe(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let o=e.tabIds.filter(a=>a!==t);if(o.length===0)return null;let s=e.activeTabId;e.activeTabId===t&&(s=o[0]);let l={...e.tabsMetadata};return delete l[t],{...e,tabIds:o,activeTabId:s,tabsMetadata:Object.keys(l).length>0?l:void 0}}return 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 Ee(e,t,n,r,o){if(e===null)return typeof o=="string"?{type:"pane",id:pe(),tabIds:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let s=typeof o=="string"?{type:"pane",id:pe(),tabIds:[o],activeTabId:o}:o,l=r==="left"||r==="top";return {type:"split",direction:n,first:l?s:e,second:l?e:s,splitPercentage:50}}return e}return {...e,first:Ee(e.first,t,n,r,o)||e.first,second:Ee(e.second,t,n,r,o)||e.second}}function kn(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 zt(e,t,n,r){if(e===null)return {type:"pane",id:pe(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};let o=t?te(e,t):null;if(o&&o.type==="pane"){let a=function(c){if(c.type==="pane"&&c.id===t){let f=[...c.tabIds];f.includes(n)||f.push(n);let i=c.tabsMetadata;return r&&(i={...c.tabsMetadata,[n]:r}),{...c,tabIds:f,activeTabId:n,tabsMetadata:i}}return c.type==="split"?{...c,first:a(c.first),second:a(c.second)}:c};return a(e)}let s={type:"pane",id:pe(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};return kn(e,s)}function we(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:we(e.first,t,n)||e.first,second:we(e.second,t,n)||e.second}:e}function te(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:e.type==="split"?te(e.first,t)??te(e.second,t):null}function q(e,t){return e===null?null:e.type==="pane"?e.tabIds.includes(t)?e:null:e.type==="split"?q(e.first,t)??q(e.second,t):null}function At(e,t){return te(e,t)??q(e,t)}function Zt(e,t){let n=q(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],remountOnPopout:n.tabsMetadata?.[t]?.remountOnPopout}}function Ot(e,t){return q(e,t)?.tabsMetadata?.[t]}function $t(e,t){let n=te(e,t);return n?.tabsMetadata?.[n.activeTabId]}function Xe(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let r=e.tabsMetadata||{},o=r[t],s=n(o),l={...r};return s===void 0?delete l[t]:l[t]=s,{...e,tabsMetadata:Object.keys(l).length>0?l:void 0}}return e}return e.type==="split"?{...e,first:Xe(e.first,t,n)??e.first,second:Xe(e.second,t,n)??e.second}:e}function Je(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:Je(e.first,t,n)??e.first,second:Je(e.second,t,n)??e.second}:e}function Se(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:Se(e.first,t,n)??e.first,second:Se(e.second,t,n)??e.second}:e}function Ht(e,t,n){if(e===null)return null;let o=q(e,t)?.tabsMetadata?.[t],s=fe(e,t);if(s===null)return {type:"pane",id:pe(),tabIds:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function l(a){if(a.type==="pane"){if(a.id===n){let c=[...a.tabIds];c.includes(t)||c.push(t);let f={...a.tabsMetadata};return o&&(f[t]=o),{...a,tabIds:c,activeTabId:t,tabsMetadata:Object.keys(f).length>0?f:void 0}}return a}return a.type==="split"?{...a,first:l(a.first),second:l(a.second)}:a}return l(s)}function Mn(e,t,n){if(e===null)return null;if(t===n)return e;let r=q(e,t),o=q(e,n);if(!r||!o)return e;let s=r.id,l=o.id,a=r.tabsMetadata?.[t],c=o.tabsMetadata?.[n];function f(i){if(i.type==="pane"){let h=false,v=[...i.tabIds],g=i.activeTabId,d=i.tabsMetadata?{...i.tabsMetadata}:{};if(s===l){if(i.id===s){let u=v.indexOf(t),m=v.indexOf(n);u!==-1&&m!==-1&&(v[u]=n,v[m]=t),g=t,h=true;}}else i.id===s&&(v=v.map(u=>u===t?n:u),g===t&&(g=n),delete d[t],c&&(d[n]=c),h=true),i.id===l&&(v=v.map(u=>u===n?t:u),g===n&&(g=t),delete d[n],a&&(d[t]=a),h=true);return h?{...i,tabIds:v,activeTabId:g,tabsMetadata:Object.keys(d).length>0?d:void 0}:i}return i.type==="split"?{...i,first:f(i.first),second:f(i.second)}:i}return f(e)}function Ae(e,t,n,r="before"){if(e===null)return null;if(t===n)return e;if(r==="center")return Mn(e,t,n);let s=q(e,t)?.tabsMetadata?.[t],l=fe(e,t);if(l===null)return {type:"pane",id:pe(),tabIds:[t],activeTabId:t,tabsMetadata:s?{[t]:s}:void 0};function a(c){if(c.type==="pane"){if(c.tabIds.includes(n)){let i=[...c.tabIds].filter(g=>g!==t),h=i.indexOf(n);h<0&&(h=0),r==="after"&&(h+=1),i.splice(h,0,t);let v={...c.tabsMetadata};return s&&(v[t]=s),{...c,tabIds:i,activeTabId:t,tabsMetadata:Object.keys(v).length>0?v:void 0}}return c}return c.type==="split"?{...c,first:a(c.first),second:a(c.second)}:c}return a(l)}function ve(e,t=0,n=0,r=100,o=100,s="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:l,splitPercentage:a,first:c,second:f}=e,h={id:`splitter-${s}-${l}`,currentNode:e,direction:l,left:l==="row"?t+r*(a/100):t,top:l==="column"?n+o*(a/100):n,width:l==="row"?0:r,height:l==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:r,parentHeight:o},v={panes:[],splitters:[]},g={panes:[],splitters:[]};if(l==="row"){let d=r*(a/100);v=ve(c,t,n,d,o,`${s}-L`),g=ve(f,t+d,n,r-d,o,`${s}-R`);}else {let d=o*(a/100);v=ve(c,t,n,r,d,`${s}-T`),g=ve(f,t,n+d,r,o-d,`${s}-B`);}return {panes:[...v.panes,...g.panes],splitters:[h,...v.splitters,...g.splitters]}}function _t(e,t,n,r="before"){if(e===null)return null;let o=te(e,t);if(!o)return e;let s=o.tabIds,l=o.activeTabId,a=o.tabsMetadata||{},c=ge(e,t);if(c===null)return o;function f(i){if(i.type==="pane"){if(i.tabIds.includes(n)){let v=[...i.tabIds].filter(u=>!s.includes(u)),g=v.indexOf(n);g<0&&(g=0),r==="after"&&(g+=1),v.splice(g,0,...s);let d={...i.tabsMetadata};for(let u of s)a[u]&&(d[u]=a[u]);return {...i,tabIds:v,activeTabId:l,tabsMetadata:Object.keys(d).length>0?d:void 0}}return i}return i.type==="split"?{...i,first:f(i.first),second:f(i.second)}:i}return f(c)}function Bt(e,t,n,r){if(!((t==="tab"||t==="pane")&&n&&e.includes(n))||!r)return -1;let l=e.indexOf(n);return r==="before"?l:l+1}function zn(e){let{initialLayout:t,layout:n,onChange:r,fullscreenPaneId:o,onFullscreenChange:s,locked:l=false}=e,[a,c]=useState(()=>n!==void 0?n:t??null),[f,i]=useState(()=>n!==void 0?n:t??null),[h,v]=useState(()=>Me(n!==void 0?n:null)),[g,d]=useState(o||null),[u,m]=useState(l),[y,b]=useState([]),[S,N]=useState(null),[z,A]=useState(null),[x,L]=useState(null),F=useRef(null),j=useCallback(p=>{F.current=p;},[]),H=useRef(a);H.current=a;let J=useRef(r);J.current=r;let ne=useRef(s);ne.current=s;let Y=useCallback(p=>{d(p),ne.current?.(p);},[]);if(useEffect(()=>{m(l);},[l]),useEffect(()=>{o!==void 0&&d(o);},[o]),n!==void 0){let p=Me(n);p!==h&&(v(p),c(n),i(n));}let k=useCallback(p=>(...P)=>{let R=H.current,O=p(R,...P);Me(R)!==Me(O)&&(H.current=O,c(O),i(O),J.current?.(O));},[]),Z=useCallback(k((p,P)=>typeof P=="function"?P(p):P),[k]),V=useCallback(p=>{i(P=>typeof p=="function"?p(P):p);},[]),_=useCallback(p=>{d(null),ne.current?.(null),N(null),A(null),L(null),Z(p),i(()=>typeof p=="function"?p(H.current):p);},[Z]),$=useCallback(k((p,P)=>ge(p,P)),[k]),C=useCallback(k((p,P,R,O)=>{let B=fe(p,P)??p;return zt(B,R,P,O)}),[k]),T=useCallback(k((p,P,R,O,B)=>{let le=te(p,P)??q(p,P);if(!le)return p;let W=te(p,B)??q(p,B)??{type:"pane",id:B,tabIds:[B],activeTabId:B},Pe=ge(p,W.id);return Ee(Pe,le.id,R,O,W)}),[k]),M=useCallback(k((p,P,R)=>we(p,P,R)),[k]),w=useCallback(k((p,P,R)=>Xe(p,P,R)),[k]),I=useCallback(k((p,P,R)=>{let O=te(p,P)??q(p,P);return O?Je(p,O.id,R):p}),[k]),ue=useCallback(k((p,P,R)=>{let O=te(p,P)??q(p,P);return O?Se(p,O.id,R):p}),[k]),Q=useCallback(k((p,P,R)=>{let O=te(p,R)??q(p,R);return O?Ht(p,P,O.id):p}),[k]),K=useCallback(k((p,P,R,O)=>Ae(p,P,R,O)),[k]),X=useCallback(k((p,P)=>fe(p,P)),[k]),ee=useCallback(p=>te(H.current,p),[]),D=useCallback(p=>q(H.current,p),[]),E=useCallback(p=>Zt(H.current,p),[]),ae=useCallback(p=>Ot(H.current,p),[]),ie=useCallback(p=>$t(H.current,p),[]),G=useCallback(p=>{b(P=>P.includes(p)?P:[...P,p]);},[]),oe=useCallback(p=>{b(P=>P.includes(p)?P.filter(R=>R!==p):P);},[]);return {layout:a,setLayout:_,_internalSetLayout:V,renderingLayout:f,fullscreenPaneId:g,setFullscreenPaneId:Y,locked:u,setLocked:m,poppedOutTabIds:y,activeId:S,setActiveId:N,activeType:z,setActiveType:A,dismissIntentId:x,setDismissIntentId:L,containerRef:F,setContainerRef:j,removePane:$,addTab:C,updateMetadata:w,updatePaneLock:I,selectTab:ue,mergeTab:Q,moveTab:K,removeTab:X,splitPane:T,updateSplitPercentage:M,popoutTab:G,dockTab:oe,findPaneById:ee,findPaneContainingTab:D,findTabById:E,getTabMetadata:ae,getActiveTabMetadata:ie}}var An=()=>{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,poppedOutTabIds:e.poppedOutTabIds,popoutTab:t.popoutTab,dockTab:t.dockTab}};var Ge=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},Qe=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var Vt=e=>{let n=e.active.id.toString().startsWith("tab-header-"),o=pointerWithin(e);if(o.length>0)return [...o].sort((l,a)=>{let c=l.id.toString(),f=a.id.toString(),i=c.startsWith("tab-drop-"),h=f.startsWith("tab-drop-");if(i&&!h)return -1;if(!i&&h)return 1;let v=c.startsWith("drop-root-"),g=f.startsWith("drop-root-");return v&&!g?-1:!v&&g?1:0});if(n){let s=e.droppableContainers.filter(l=>l.id.toString().startsWith("tab-drop-"));return closestCenter({...e,droppableContainers:s})}return []};function Ze(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 Ut(e){let{layout:t,_internalSetLayout:n,setLayout:r,activeId:o,setActiveId:s,activeType:l,setActiveType:a,dismissIntentId:c,setDismissIntentId:f,setOverTabId:i,setOverTabPosition:h,containerRef:v,dragActivationDistance:g,enableDragToDismiss:d,dismissThreshold:u,onRemove:m,onDragStart:y,onDragEnd:b,onDismissIntentChange:S,removeTab:N,removePane:z}=e,A=useRef(null),x=St(o),L=useRef(null),[F,j]=useState(false);return Nt(F),{sensors:useSensors(useSensor(Ge,{activationConstraint:{distance:g}}),useSensor(Qe,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:Vt,onDragStart:Z=>{let V=Z.active.id.toString(),_=V.startsWith("tab-header-"),$=_?V.substring(11):V;s($),a(_?"tab":"pane"),i(null),h(null);let C=Z.activatorEvent;x.current=Ze(C),d&&v.current?A.current=v.current.getBoundingClientRect():A.current=null;let T=t;if(_){let w=q(t,$);w&&(T=Se(t,w.id,$)||t);}L.current=T;let M=_?fe(T,$):ge(T,$);n(M),y&&y($);},onDragMove:Z=>{let{over:V}=Z,_=V?.id.toString()||"",$=_.startsWith("drop-locked-");j(D=>D===$?D:$);let C=Z.active.id.toString(),T=C.startsWith("tab-header-"),M=T?C.substring(11):C,w=_.match(/^tab-drop-(.+)$/);if(w&&V&&(T||l==="pane")){let[,D]=w;if(M!==D){let E="before",ae=V.rect,ie=Z.activatorEvent,G=null;if(x.current)G=x.current.x;else {let oe=Ze(ie);oe&&(G=oe.x+Z.delta.x);}if(G!==null){let oe=ae.left+ae.width/2;G>oe&&(E="after");}i(oe=>oe===D?oe:D),h(oe=>oe===E?oe:E);}else i(E=>E===null?E:null),h(E=>E===null?E:null);}else i(D=>D===null?D:null),h(D=>D===null?D:null);if(!d)return;let I=A.current;if(!I){c!==null&&(f(null),S?.(null));return}let ue=Z.activatorEvent,Q=null,K=null;if(x.current)Q=x.current.x,K=x.current.y;else {let D=Ze(ue);D&&(Q=D.x+Z.delta.x,K=D.y+Z.delta.y);}let X=0;if(Q!==null&&K!==null){let D=0,E=0;Q<I.left?D=I.left-Q:Q>I.right&&(D=Q-I.right),K<I.top?E=I.top-K:K>I.bottom&&(E=K-I.bottom),X=Math.sqrt(D*D+E*E);}else {let D=Z.active.rect.current.translated;if(D){let E=D.left+D.width/2,ae=D.top+D.height/2,ie=0,G=0;E<I.left?ie=I.left-E:E>I.right&&(ie=E-I.right),ae<I.top?G=I.top-ae:ae>I.bottom&&(G=ae-I.bottom),X=Math.sqrt(ie*ie+G*G);}}X>u?c!==M&&(f(M),S?.(M)):c!==null&&(f(null),S?.(null));},onDragEnd:Z=>{s(null),a(null),j(false),i(null),h(null);let{active:V,over:_}=Z,$=V.id.toString(),C=$.startsWith("tab-header-"),T=C?$.substring(11):$,M=d&&c===T;f(null),S?.(null),A.current=null;let w=L.current||t;if(L.current=null,M){m?m(T):C?N(T):z(T),b&&b(T,null,null);return}if(!_){n(w),b&&b(T,null,null);return}let I=_.id.toString();if(I.startsWith("drop-locked-")){n(w),b&&b(T,null,null);return}let ue=I.match(/^tab-drop-(.+)$/);if(ue){let[,p]=ue;if(C)if(T!==p){let P="before",R=_.rect,O=Z.activatorEvent,B=null;if(x.current)B=x.current.x;else {let W=Ze(O);W&&(B=W.x+Z.delta.x);}if(B!==null){let W=R.left+R.width/2;B>W&&(P="after");}let le=Ae(w,T,p,P);r(le),b&&b(T,p,{type:"move",position:"center"});}else n(w),b&&b(T,null,null);else {let P="before",R=_.rect,O=Z.activatorEvent,B=null;if(x.current)B=x.current.x;else {let W=Ze(O);W&&(B=W.x+Z.delta.x);}if(B!==null){let W=R.left+R.width/2;B>W&&(P="after");}let le=_t(w,T,p,P);r(le),b&&b(T,p,{type:"move",position:"center"});}return}let Q=I.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(Q){let[,p,P]=Q,R=P;R==="start"&&(R="left"),R==="end"&&(R="right");let O=C?fe(w,T):ge(w,T),B;if(C){let W=q(w,T)?.tabsMetadata?.[T];B={type:"pane",id:pe(),tabIds:[T],activeTabId:T,tabsMetadata:W?{[T]:W}:void 0};}else B=te(w,T)??{type:"pane",id:pe(),tabIds:[T],activeTabId:T};if(O===null)r(B);else {let le=R==="left"||R==="right",W=R==="left"||R==="top",Pe=50;p==="1/4"?Pe=W?25:75:p==="1/3"&&(Pe=W?100/3:200/3),r({type:"split",direction:le?"row":"column",first:W?B:O,second:W?O:B,splitPercentage:Pe});}b&&b(T,"root",{type:"split",direction:R==="left"||R==="right"?"row":"column",position:R});return}let K=I.match(/^drop-(left|right|top|bottom|center)-(.+)$/);if(!K){n(w),b&&b(T,null,null);return}let[,X,ee]=K;if(X==="center"){if(C){let p=te(w,ee);if(p&&p.activeTabId){let P=p.activeTabId,R=Ae(w,T,P,"center");r(R),b&&b(T,ee,{type:"move",position:"center"});}else n(w),b&&b(T,null,null);}else n(w),b&&b(T,null,null);return}let D=C?q(w,T):te(w,T),E=D&&D.id===ee,ae=D&&D.tabIds.length===1;if(T===ee||E&&ae){n(w),b&&b(T,null,null);return}let ie=X==="left"||X==="right"?"row":"column",G;if(C){let P=q(w,T)?.tabsMetadata?.[T];G={type:"pane",id:pe(),tabIds:[T],activeTabId:T,tabsMetadata:P?{[T]:P}:void 0};}else G=te(w,T)??{type:"pane",id:pe(),tabIds:[T],activeTabId:T};let oe=C?fe(w,T):ge(w,T),ke=Ee(oe,ee,ie,X,G);r(ke),b&&b(T,ee,{type:"split",direction:ie,position:X});},onDragCancel:()=>{s(null),a(null),j(false),i(null),h(null),f(null),S?.(null),A.current=null;let Z=L.current||t;L.current=null,n(Z),Z!==t&&r(Z);}}}function Xt({persist:e,layout:t,setLayout:n}){let r=typeof e=="object"?e.enabled!==false:!!e,o=typeof e=="object"&&e.key||"zeugma-layout",[s,l]=useState(false);useEffect(()=>{if(r){let a=localStorage.getItem(o);if(a)try{let c=JSON.parse(a);c&&n(c);}catch(c){console.error("Failed to parse persisted zeugma layout",c);}}l(true);},[r,o,n]),useEffect(()=>{r&&s&&(t?localStorage.setItem(o,JSON.stringify(t)):localStorage.removeItem(o));},[r,o,t,s]);}var De=null,Yt=false,se=new Set,Ne=null;function Wn(){typeof window>"u"||Ne||(Ne=new MutationObserver(e=>{e.forEach(t=>{t.addedNodes.forEach(n=>{n instanceof HTMLElement&&(n.tagName.toLowerCase()==="style"||n.tagName.toLowerCase()==="link")&&se.forEach(r=>{try{let o=n.cloneNode(!0);if(o.tagName.toLowerCase()==="link"){let s=n.href;s&&o.setAttribute("href",s);}r.head.appendChild(o);}catch(o){console.warn("Failed to mirror style node to popout:",o);}});});});}),Ne.observe(document.head,{childList:true}));}function dt(){Ne&&(Ne.disconnect(),Ne=null);}var Gt=e=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(e):setTimeout(e,0);};function be(){if(typeof window>"u")return document;if(De&&De.target){let t=De.target.ownerDocument;if(t&&t!==document)return t}let e=window.event;if(e&&e.target){let n=e.target.ownerDocument;if(n&&n!==document)return n}return window.__zeugmaActivePopoutDocument?window.__zeugmaActivePopoutDocument:document}function qn(){if(typeof window>"u"||Yt)return;Yt=true;let e=()=>{De=null,globalThis.__zeugmaActivePopoutDocument=null;};["pointerdown","mousedown","click","keydown","focus","touchstart"].forEach(d=>{window.addEventListener(d,e,true);});let n=document.createElement;document.createElement=function(d,u){let m=be();return m&&m!==document?m.createElement(d,u):n.call(document,d,u)};let r=document.body.appendChild;document.body.appendChild=function(d){let u=be();return u&&u!==document?u.body.appendChild(d):r.call(document.body,d)};let o=document.body.removeChild;document.body.removeChild=function(d){let u=be();return u&&u!==document?u.body.removeChild(d):o.call(document.body,d)};let s=document.body.insertBefore;document.body.insertBefore=function(d,u){let m=be();return m&&m!==document?m.body.insertBefore(d,u):s.call(document.body,d,u)};let l=document.body.replaceChild;document.body.replaceChild=function(d,u){let m=be();return m&&m!==document?m.body.replaceChild(d,u):l.call(document.body,d,u)};let a=document.addEventListener;document.addEventListener=function(d,u,m){let y=be();return y&&y!==document?y.addEventListener(d,u,m):a.call(document,d,u,m)};let c=document.removeEventListener;document.removeEventListener=function(d,u,m){c.call(document,d,u,m),se.forEach(y=>{try{y.removeEventListener(d,u,m);}catch{}});};let f=window.addEventListener;window.addEventListener=function(d,u,m){let y=be();return y&&y!==document&&y.defaultView?y.defaultView.addEventListener(d,u,m):f.call(window,d,u,m)};let i=window.removeEventListener;window.removeEventListener=function(d,u,m){i.call(window,d,u,m),se.forEach(y=>{try{y.defaultView&&y.defaultView.removeEventListener(d,u,m);}catch{}});};let h=document.getElementById;document.getElementById=function(d){let u=be();if(u&&u!==document)return u.getElementById(d);let m=h.call(document,d);if(m)return m;for(let y of se)try{let b=y.getElementById(d);if(b)return b}catch{}return null};let v=document.querySelector;document.querySelector=function(d){let u=be();if(u&&u!==document)return u.querySelector(d);let m=v.call(document,d);if(m)return m;for(let y of se)try{let b=y.querySelector(d);if(b)return b}catch{}return null};let g=document.querySelectorAll;document.querySelectorAll=function(d){let u=be();if(u&&u!==document)return u.querySelectorAll(d);let m=g.call(document,d);if(m.length>0)return m;for(let y of se)try{let b=y.querySelectorAll(d);if(b.length>0)return b}catch{}return m};}function Qt(e){let{poppedOutTabIds:t,registerPopoutTarget:n,findTabById:r,dockTab:o}=e,s=useRef({});useEffect(()=>{let l=s.current;t.forEach(a=>{if(l[a]){try{l[a].focus();}catch{}return}qn();let f=r(a)?.metadata?.title||`Tab ${a}`,i=window.open("",`zeugma-popout-${a}`,"width=800,height=600");if(!i){console.warn("Failed to open popout window. Check popup blocker."),o(a);return}l[a]=i,se.add(i.document),Wn(),i.document.title=f,i.document.head.innerHTML="",Array.from(document.querySelectorAll('style, link[rel="stylesheet"]')).forEach(x=>{let L=x.cloneNode(true);if(x.tagName.toLowerCase()==="link"){let F=x.href;F&&L.setAttribute("href",F);}else if(x.tagName.toLowerCase()==="style")try{let F=x.sheet?.cssRules;if(F&&F.length>0){let j=Array.from(F).map(H=>H.cssText).join(`
|
|
10
|
-
`);L.textContent=j;}}catch{}i.document.head.appendChild(L);}),i.document.documentElement.className=document.documentElement.className,i.document.body.className=document.body.className,i.document.body.style.margin="0",i.document.body.style.padding="0",i.document.body.style.height="100vh",i.document.body.style.overflow="hidden";let h=document.getElementById(`zeugma-tab-target-${a}`),v="";h&&(v=window.getComputedStyle(h).backgroundColor,(!v||v==="transparent"||v==="rgba(0, 0, 0, 0)")&&h.parentElement&&(v=window.getComputedStyle(h.parentElement).backgroundColor));let g=window.getComputedStyle(document.documentElement),d=window.getComputedStyle(document.body),u=d.backgroundColor,y=!u||u==="transparent"||u==="rgba(0, 0, 0, 0)"?g.backgroundColor:u,b=v&&v!=="transparent"&&v!=="rgba(0, 0, 0, 0)"?v:y&&y!=="transparent"&&y!=="rgba(0, 0, 0, 0)"?y:"#181b1f";i.document.documentElement.style.backgroundColor=b,i.document.body.style.backgroundColor=b,i.document.body.style.color=d.color||g.color,i.document.body.style.fontFamily=d.fontFamily||g.fontFamily;let S=i.document.createElement("div");S.id=`zeugma-popout-container-${a}`,S.className="grafana-panel h-full w-full overflow-hidden",S.style.width="100%",S.style.height="100%",S.style.border="none",i.document.body.appendChild(S),n?.(a,S);let N=["pointerdown","mousedown","click","keydown","focus","touchstart"],z=x=>{De=x,globalThis.__zeugmaActivePopoutDocument=i.document,queueMicrotask(()=>{De===x&&(De=null,globalThis.__zeugmaActivePopoutDocument=null);});};N.forEach(x=>{i.addEventListener(x,z,true);});let A=()=>{se.delete(i.document),se.size===0&&dt(),o(a);};i.addEventListener("beforeunload",A),i.__zeugmaCleanup=()=>{N.forEach(x=>{i.removeEventListener(x,z,true);}),i.removeEventListener("beforeunload",A);};}),Object.keys(l).forEach(a=>{if(!t.includes(a)){let c=l[a];if(delete l[a],n?.(a,null),c){se.delete(c.document),se.size===0&&dt();try{let f=c;f.__zeugmaCleanup&&f.__zeugmaCleanup(),Gt(()=>{try{f.close();}catch{}});}catch{}}}});},[t,n,r,o]),useEffect(()=>()=>{let l=s.current;Object.keys(l).forEach(a=>{let c=l[a];if(c){se.delete(c.document);try{let f=c;f.__zeugmaCleanup&&f.__zeugmaCleanup(),Gt(()=>{try{f.close();}catch{}});}catch{}}}),se.size===0&&dt();},[]);}var Kt=({activeId:e,render:t,className:n})=>{let r=useRef(null);return useEffect(()=>{let o=s=>{r.current&&(r.current.style.transform=`translate(${s.clientX+12}px, ${s.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsx("div",{ref:r,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var Qn=({popoutDoc:e,children:t})=>{if(e===document)return jsx(Fragment,{children:t});let n=me.useEffect,r=me.useLayoutEffect,o=me.useInsertionEffect;me.useEffect=(s,l)=>n(()=>{window.__zeugmaActivePopoutDocument=e;try{let a=s();return typeof a=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return a()}finally{window.__zeugmaActivePopoutDocument=null;}}:a}finally{window.__zeugmaActivePopoutDocument=null;}},l),me.useLayoutEffect=(s,l)=>r(()=>{window.__zeugmaActivePopoutDocument=e;try{let a=s();return typeof a=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return a()}finally{window.__zeugmaActivePopoutDocument=null;}}:a}finally{window.__zeugmaActivePopoutDocument=null;}},l),o&&(me.useInsertionEffect=(s,l)=>o(()=>{window.__zeugmaActivePopoutDocument=e;try{let a=s();return typeof a=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return a()}finally{window.__zeugmaActivePopoutDocument=null;}}:a}finally{window.__zeugmaActivePopoutDocument=null;}},l)),window.__zeugmaActivePopoutDocument=e;try{return jsx(Fragment,{children:t})}finally{window.__zeugmaActivePopoutDocument=null,me.useEffect=n,me.useLayoutEffect=r,o&&(me.useInsertionEffect=o);}},tn=me.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,{renderPopoutWrapper:o}=re(),[s,l]=useState(false),a=useRef(null);if(useEffect(()=>{l(true);},[]),useEffect(()=>{if(!s||!a.current)return;let v=a.current;if(t)t.ownerDocument.adoptNode(v),t.appendChild(v);else {let g=document.getElementById("zeugma-hidden-portal-container");g||(g=document.createElement("div"),g.id="zeugma-hidden-portal-container",g.style.display="none",document.body.appendChild(g)),document.adoptNode(v),g.appendChild(v);}},[t,s]),useEffect(()=>()=>{a.current&&a.current.remove();},[]),!s)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 c=a.current;if(!c||!n)return null;let f=!!(t&&t.ownerDocument&&t.ownerDocument!==document),i=e.remountOnPopout?f?"-popped":"-docked":"",h=jsx(me.Fragment,{children:n(e)},`${r}${i}`);return f&&t&&t.ownerDocument&&o&&(h=o({tabId:r,document:t.ownerDocument,window:t.ownerDocument.defaultView||window,children:h})),createPortal(jsx(Qn,{popoutDoc:f&&t?t.ownerDocument:document,children:h}),c)},(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 nn=({activeId:e,activeType:t,dismissIntentId:n,renderDragOverlay:r,renderPaneRef:o,renderPane:s,tabHeadersRef:l,classNames:a})=>{if(r)return jsx(Fragment,{children:r({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let c=o.current||s;if(c)return jsx("div",{className:a.paneDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:c(e)})}else if(t==="tab"){let c=o.current||s;if(c)return jsx("div",{className:a.tabDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:c(e)});let f=l.current[e];if(f){let i=a.tab?typeof a.tab=="function"?a.tab(e):a.tab:"";return jsx("div",{className:`${a.tabDragPreview||""} ${i}`.trim(),style:{display:"inline-flex",position:"relative",pointerEvents:"none",overflow:"hidden"},children:f({isDragging:true,isOver:false})})}}return jsx("div",{style:{pointerEvents:"none",overflow:"hidden",width:"100%",height:"100%"}})};function ft({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:s,layout:l,currentNode:a,onLayoutChange:c,onResizeStart:f,onResizeEnd:i,parentLeft:h,parentTop:v,parentWidth:g,parentHeight:d}){let{onResizeStart:u,onResize:m,onResizeEnd:y,minSplitPercentage:b=5,maxSplitPercentage:S=95,locked:N=false}=re();return useCallback(z=>{if(N)return;z.preventDefault();let A=e.current;if(!A)return;f&&f(),u&&u(a);let x=A.getBoundingClientRect(),L=z.clientX,F=z.clientY,j=r,H=z.currentTarget,J=x.left+x.width*(h/100),ne=x.top+x.height*(v/100),Y=x.width*(g/100),k=x.height*(d/100),V=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter($=>$!==H&&$.getAttribute("data-direction")===n).map($=>{let C=$.getBoundingClientRect();return t?C.left+C.width/2:C.top+C.height/2}),_=j;Ct({cursor:t?"col-resize":"row-resize",resizerEl:H,onMove:$=>{let C=t?($.clientX-L)/Y*100:($.clientY-F)/k*100,T=j+C,M=t?J+(Y-o)*(T/100)+o/2:ne+(k-o)*(T/100)+o/2,w=1/0,I=null;for(let X of V){let ee=Math.abs(M-X);ee<s&&ee<w&&(w=ee,I=X);}let ue=T;I!==null&&(ue=t?(I-o/2-J)/(Y-o)*100:(I-o/2-ne)/(k-o)*100);let Q=Math.max(b,Math.min(S,ue));_=Q;let K=we(l,a,Q);if(K){let{panes:X,splitters:ee}=ve(K),D=e.current;if(D){for(let E of X)D.style.setProperty(`--pane-left-${E.paneId}`,`${E.left}%`),D.style.setProperty(`--pane-top-${E.paneId}`,`${E.top}%`),D.style.setProperty(`--pane-width-${E.paneId}`,`${E.width}%`),D.style.setProperty(`--pane-height-${E.paneId}`,`${E.height}%`);for(let E of ee)D.style.setProperty(`--splitter-pos-${E.id}`,`${E.direction==="row"?E.left:E.top}%`);}}m&&m(a,Q);},onEnd:()=>{let $=we(l,a,_),C=e.current;if(C){let{panes:T,splitters:M}=ve($);for(let w of T)C.style.removeProperty(`--pane-left-${w.paneId}`),C.style.removeProperty(`--pane-top-${w.paneId}`),C.style.removeProperty(`--pane-width-${w.paneId}`),C.style.removeProperty(`--pane-height-${w.paneId}`);for(let w of M)C.style.removeProperty(`--splitter-pos-${w.id}`);}c($),i&&i(),y&&y(a,_);}});},[e,t,n,r,o,s,l,a,c,f,i,u,m,y,b,S,h,v,g,d])}var on=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{renderingLayout:o,setLayout:s,classNames:l,locked:a}=re(),[c,f]=useState(false),{currentNode:i,direction:h,left:v,top:g,width:d,height:u,parentLeft:m,parentTop:y,parentWidth:b,parentHeight:S}=e,N=h==="row",z=ft({containerRef:r,isRow:N,direction:h,splitPercentage:i.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:i,onLayoutChange:s,onResizeStart:()=>f(true),onResizeEnd:()=>f(false),parentLeft:m,parentTop:y,parentWidth:b,parentHeight:S}),A=N?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${v}%) - ${t/2}px)`,top:`calc(${g}% + ${t/2}px)`,width:`${t}px`,height:`calc(${u}% - ${t}px)`,cursor:a?"default":"col-resize",pointerEvents:a?"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}, ${g}%) - ${t/2}px)`,width:`calc(${d}% - ${t}px)`,height:`${t}px`,cursor:a?"default":"row-resize",pointerEvents:a?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:l.resizer||"","data-direction":h,"data-resizing":c||void 0,style:A,onPointerDown:z,role:"separator","aria-valuenow":i.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},rn=me.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var mt=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{Mt(e);let{renderingLayout:o,activeId:s,dismissIntentId:l,setContainerRef:a,fullscreenPaneId:c,snapThreshold:f,locked:i,classNames:h,resizerSize:v}=re(),g=r!==void 0?r:f??8,d=n!==void 0?n:v??4,u=t!==void 0?t:o,m=useRef(null),{panes:y,splitters:b}=useMemo(()=>u?ve(u):{panes:[],splitters:[]},[u]);if(!u&&t!==void 0)return null;let S=()=>jsxs(Fragment,{children:[y.map(N=>{let z=c===N.paneId;return jsx("div",{style:{position:"absolute",left:z?"0%":`var(--pane-left-${N.paneId}, ${N.left}%)`,top:z?"0%":`var(--pane-top-${N.paneId}, ${N.top}%)`,width:z?"100%":`var(--pane-width-${N.paneId}, ${N.width}%)`,height:z?"100%":`var(--pane-height-${N.paneId}, ${N.height}%)`,overflow:"hidden",zIndex:z?20:1,display:c&&!z?"none":"block",padding:z?"0px":`${d/2}px`,boxSizing:"border-box"},children:jsx(rn,{paneId:N.paneId,renderPane:e})},N.paneId)}),!c&&b.map(N=>jsx(on,{splitter:N,resizerSize:d,snapThreshold:g,containerRef:m},N.id))]});if(t===void 0){let N=s!==null&&s===l,z=x=>{a(x),m.current=x;},A=`${h.dashboard||""} ${N&&h.dashboardDismissActive||""} ${i&&h.dashboardLocked||""}`.trim();return jsxs("div",{ref:z,className:A,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[S(),s!==null&&!i&&jsx(ln,{activeClassName:h.rootDropPreview??h.dropPreview})]})}return jsx("div",{ref:m,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:S()})};var lo=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:s,resizerSize:l,dragActivationDistance:a=8,snapThreshold:c=8,minSplitPercentage:f=5,maxSplitPercentage:i=95,enableDragToDismiss:h=false,dismissThreshold:v=60,onRemove:g,onDragStart:d,onDragEnd:u,onResizeStart:m,onResize:y,onResizeEnd:b,onDismissIntentChange:S,persist:N=false,renderPopoutWrapper:z}=e,A=t,{layout:x,setLayout:L,_internalSetLayout:F,renderingLayout:j,fullscreenPaneId:H,setFullscreenPaneId:J,locked:ne,setLocked:Y,findPaneById:k,findPaneContainingTab:Z,findTabById:V,getTabMetadata:_,getActiveTabMetadata:$,activeId:C,setActiveId:T,activeType:M,setActiveType:w,dismissIntentId:I,setDismissIntentId:ue,containerRef:Q,setContainerRef:K,removePane:X,addTab:ee,updateMetadata:D,updatePaneLock:E,selectTab:ae,mergeTab:ie,removeTab:G,splitPane:oe,updateSplitPercentage:ke,moveTab:p,poppedOutTabIds:P=[],popoutTab:R,dockTab:O}=A;Xt({persist:N,layout:x,setLayout:L});let{portalTargets:B,registerPortalTarget:le,registerPopoutTarget:W,registerRenderCallback:Pe,renderCallbacksRef:Be,registerRenderPane:Tt,renderPaneRef:at,registerTabHeader:Pt,tabHeadersRef:it,activeIdRef:Fe}=It();Qt({poppedOutTabIds:P,registerPopoutTarget:W,findTabById:V,dockTab:O});let yt=useCallback(de=>P.includes(de),[P]),{overTabId:xt,setOverTabId:Pn,overTabPosition:Rt,setOverTabPosition:yn,handleDragStartInternal:xn,handleDragEndInternal:Rn}=kt({onDragStart:d,onDragEnd:u}),wn=Ut({layout:x,_internalSetLayout:F,setLayout:L,activeId:C,setActiveId:T,activeType:M,setActiveType:w,dismissIntentId:I,setDismissIntentId:ue,setOverTabId:Pn,setOverTabPosition:yn,containerRef:Q,dragActivationDistance:a,enableDragToDismiss:h,dismissThreshold:v,onRemove:g,onDragStart:xn,onDragEnd:Rn,onDismissIntentChange:S,removeTab:G,removePane:X}),st=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]),wt=useCallback((de,Ve)=>{b&&b(de,Ve);},[b]),Dn=useMemo(()=>({layout:x,renderingLayout:j,setLayout:L,activeId:C,activeType:M,dismissIntentId:I,setContainerRef:K,fullscreenPaneId:H,classNames:st,onRemove:g,onFullscreenChange:J,snapThreshold:c,onResizeStart:m,onResize:y,onResizeEnd:wt,minSplitPercentage:f,maxSplitPercentage:i,locked:ne,setLocked:Y,findPaneById:k,findPaneContainingTab:Z,findTabById:V,getTabMetadata:_,getActiveTabMetadata:$,renderPane:s,resizerSize:l,poppedOutTabIds:P,isTabPoppedOut:yt,renderPopoutWrapper:z}),[x,j,C,M,I,K,H,st,g,J,c,m,y,f,i,L,wt,ne,Y,k,Z,V,_,$,s,l,P,yt,z]),Cn=useMemo(()=>({overTabId:xt,overTabPosition:Rt}),[xt,Rt]),En=useMemo(()=>({removePane:X,addTab:ee,updateMetadata:D,updatePaneLock:E,selectTab:ae,mergeTab:ie,removeTab:G,setFullscreenPaneId:J,setLocked:Y,splitPane:oe,updateSplitPercentage:ke,moveTab:p,popoutTab:R,dockTab:O}),[X,ee,D,E,ae,ie,G,J,Y,oe,ke,p,R,O]),Sn=Lt(x),Nn=useMemo(()=>({registerPortalTarget:le,registerRenderCallback:Pe,renderCallbacksRef:Be,registerRenderPane:Tt,renderPaneRef:at,registerTabHeader:Pt,tabHeadersRef:it,activeIdRef:Fe,registerPopoutTarget:W}),[le,Pe,Be,Tt,at,Pt,it,Fe,W]);return Fe&&(Fe.current=C),jsx(xe.Provider,{value:En,children:jsx(ct.Provider,{value:Dn,children:jsx(ut.Provider,{value:Cn,children:jsxs(ye.Provider,{value:Nn,children:[jsx(DndContext,{id:"zeugma-dnd-context",...wn,children:n}),C&&M&&jsx(Kt,{activeId:C,render:de=>jsx("div",{style:{transition:"transform 150ms cubic-bezier(0.2, 0, 0, 1)",transform:de===I?"scale(0.8)":"scale(1)",transformOrigin:"top left"},children:jsx(nn,{activeId:de,activeType:M,dismissIntentId:I,renderDragOverlay:r,renderPaneRef:at,renderPane:s,tabHeadersRef:it,classNames:st})}),className:`${o.dragOverlay||""} ${C===I&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:Sn.map(de=>{let Ve=B[de],Dt=V(de);return Dt?jsx(tn,{tabDetails:Dt,target:Ve||null,renderWidget:Be.current[de]},de):null})})]})})})})},co=({renderPane:e,resizerSize:t,snapThreshold:n})=>{if(!e)throw new Error("Zeugma component requires a renderPane prop when used as a standalone renderer.");return jsx(mt,{renderPane:e,resizerSize:t,snapThreshold:n})},uo=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsx(lo,{...e,children:t!==void 0?t:jsx(co,{...n})})};var mo={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"}}},go={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"}}},bo=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:s}=useDroppable({id:e}),l={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...go[n][t]};return jsxs(Fragment,{children:[jsx("div",{ref:o,style:mo[n][t]}),s&&jsx("div",{className:r,style:l})]})},ln=({activeClassName:e})=>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=>jsx(bo,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var tt=createContext(null);var yo={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"},center:{position:"absolute",top:"25%",left:"25%",width:"50%",height:"50%",zIndex:22,pointerEvents:"auto"}},xo={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"},center:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:21,pointerEvents:"none",boxSizing:"border-box"}},nt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:r,style:yo[t]}),o&&jsx("div",{className:n,style:xo[t]})]})};var dn=({children:e,className:t,style:n})=>{let r=useContext(tt);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...s}=r;return jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:s,children:e})};var ko=createContext(void 0);var _e=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:s,classNames:l={},fullscreenPaneId:a,poppedOutTabIds:c=[]}=re(),f=useContext(xe),{overTabId:i}=qe(),h=useContext(ye);useEffect(()=>(h?.registerTabHeader&&h.registerTabHeader(e,n),()=>{h?.registerTabHeader&&h.activeIdRef?.current!==e&&h.registerTabHeader(e,()=>null);}),[e,n,h]);let v=c.includes(e),g=useContext(bt),d=t||s||(g?.locked??false)||a!==null,{attributes:u,listeners:m,setNodeRef:y,isDragging:b}=useDraggable({id:`tab-header-${e}`,disabled:d}),{setNodeRef:S,isOver:N}=useDroppable({id:`tab-drop-${e}`,disabled:d}),z=V=>{y(V),S(V);},A=N&&i===e,x=g?.tabIds||[],L=x.indexOf(e),F=g?.activeTabId,H=L>0&&e!==F&&x[L-1]!==F?jsx("div",{className:l.tabSeparator}):null,J=g?g.activeTabId===e:false,ne=g?.tabsMetadata?.[e],Y=useCallback(()=>{g?.selectTab(e);},[g,e]),k=useCallback(()=>{g?.removeTab(e);},[g,e]),Z=useMemo(()=>({tabId:e,isActive:J,isDragging:b,isOver:A,metadata:ne,locked:d,selectTab:Y,removeTab:k,isPoppedOut:v,popoutTab:()=>f?.popoutTab(e),dockTab:()=>f?.dockTab(e)}),[e,J,b,A,ne,d,Y,k,v,f]);return jsx(ko.Provider,{value:Z,children:jsxs("div",{ref:z,id:`tab-header-${e}`,className:r,style:{display:"inline-flex",position:"relative",cursor:d?"default":"grab",...o},...d?{}:m,...d?{}:u,children:[H,n({isDragging:b,isOver:A})]})})};var bt=createContext(void 0);var gn=(e,t)=>typeof e=="function"?e(t):e,vt=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:s,renderTab:l,classNames:a,styles:c})=>{let f=useContext(ot),i=e??f?.tabIds??[],h=t??f?.activeTabId??"",v=n??f?.locked??false,g=r??f?.tabsMetadata,d=o??f?.selectTab??(()=>{}),u=s??f?.removeTab??(()=>{}),{classNames:m={},activeType:y,poppedOutTabIds:b=[]}=re(),S=useContext(xe),{overTabId:N,overTabPosition:z}=qe(),A=useMemo(()=>({tabIds:i,activeTabId:h,locked:v,tabsMetadata:g,selectTab:d,removeTab:u}),[i,h,v,g,d,u]),x=Bt(i,y,N,z);return jsx(bt.Provider,{value:A,children:jsxs("div",{className:a?.container,style:{display:"flex",alignItems:"center",height:"100%",...c?.container},children:[i.map((L,F)=>{let j=g?.[L],H=gn(a?.tab,L),J=gn(c?.tab,L),ne=F===x;return jsxs(me.Fragment,{children:[ne&&m.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:m.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:F===0?"none":"translateX(-50%)"}})}),jsx(_e,{id:L,locked:v,className:H,style:J,children:({isDragging:Y,isOver:k})=>l({id:L,paneId:f?.id??"",isActive:L===h,index:F,isDragging:Y,isOver:k,metadata:j,onSelect:()=>d(L),onRemove:()=>u(L),isPoppedOut:b.includes(L),popout:()=>S?.popoutTab(L),dock:()=>S?.dockTab(L)})})]},L)}),x===i.length&&m.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:m.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};vt.Tab=_e;var vn=({className:e,style:t,children:n})=>jsx("div",{className:e,style:t,children:n});var ot=createContext(void 0),Tn=()=>{let e=useContext(ot);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},Fo=({children:e,className:t,style:n})=>{let{activeTabId:r}=Tn(),{classNames:o,isTabPoppedOut:s}=re(),{dockTab:l}=ze(),a=useRef(null),c=useContext(ye);if(!c)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:f,registerRenderCallback:i}=c,h=useMemo(()=>typeof e=="function"?e:()=>e,[e]);i(r,h),useEffect(()=>{let g=a.current;return f(r,g),()=>{f(r,null,g);}},[r,f]);let v=s(r);return jsx("div",{ref:a,id:`zeugma-tab-target-${r}`,className:`${o.tabContentWrapper||""} ${t||""}`.trim(),style:{height:"100%",width:"100%",position:"relative",...n},children:v&&jsxs("div",{className:"zeugma-popout-placeholder",style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"12px",padding:"24px",textAlign:"center",backgroundColor:"#161719",color:"#94a3b8",fontSize:"13px",fontWeight:500},children:[jsx("div",{children:"This panel is open in a new window"}),jsx("button",{onClick:()=>l(r),style:{padding:"6px 12px",fontSize:"11px",fontWeight:600,borderRadius:"4px",backgroundColor:"#2563eb",color:"#ffffff",border:"none",cursor:"pointer",boxShadow:"0 1px 3px rgba(0,0,0,0.1)"},onMouseOver:g=>{g.currentTarget.style.backgroundColor="#1d4ed8";},onMouseOut:g=>{g.currentTarget.style.backgroundColor="#2563eb";},children:"Dock Back"})]})})},Le=({id:e,children:t,style:n,locked:r=false})=>{let{layout:o,renderingLayout:s,activeId:l,activeType:a,classNames:c,fullscreenPaneId:f,onFullscreenChange:i,locked:h,poppedOutTabIds:v=[]}=re(),{removePane:g,updateMetadata:d,selectTab:u,removeTab:m,popoutTab:y,dockTab:b}=ze(),S=useMemo(()=>{if(a==="tab"&&e===l){let I=q(o,e)?.tabsMetadata?.[e];return {type:"pane",id:e,tabIds:[e],activeTabId:e,tabsMetadata:I?{[e]:I}:void 0}}return At(e===l?o:s,e)},[o,s,e,l,a]),N=S?.id??e,z=S?.tabIds??[e],A=S?.activeTabId??e,x=S?.tabsMetadata,L=x?.[e],F=S?.locked??false,j=r||F,H=h||j||f!==null,J=h||j||f!==null,ne=l!==null&&l!==e&&(!z.includes(l)||z.length>1)&&!J,{attributes:Y,listeners:k,setNodeRef:Z}=useDraggable({id:e,disabled:H}),V=l!==null&&z.includes(l),_=f===e,$=useMemo(()=>({isDragging:V,isFullscreen:_,toggleFullscreen:()=>i?.(_?null:e),remove:()=>{_&&i?.(null),g(N);},metadata:L,updateMetadata:M=>{d(e,M);},locked:H,tabIds:z,activeTabId:A,selectTab:M=>u(N,M),removeTab:M=>{_&&M===A&&i?.(null),m(M);},tabsMetadata:x,updateTabMetadata:(M,w)=>{d(M,w);},isActiveTabPoppedOut:v.includes(A),popoutTab:M=>y(M||A),dockTab:M=>b(M||A)}),[V,_,i,e,m,L,d,H,z,A,u,N,x,v,y,b]),C=useMemo(()=>H?{disabled:true}:{...k,...Y},[k,Y,H]),T=`${c.pane||""} ${j&&c.paneLocked||""}`.trim();return jsx(ot.Provider,{value:{id:e,...$},children:jsx(tt.Provider,{value:C,children:jsxs("div",{ref:Z,id:e,className:T,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,ne&&jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:[["top","bottom","left","right"].map(M=>jsx(nt,{id:`drop-${M}-${e}`,position:M,activeClassName:c.dropPreview},M)),a==="tab"&&jsx(nt,{id:`drop-center-${e}`,position:"center",activeClassName:c.swapPreview??c.dropPreview})]}),l!==null&&l!==e&&J&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(nt,{id:`drop-locked-${e}`,position:"full",activeClassName:c.lockedPreview||""})})]})})})};Le.Content=Fo;Le.DragHandle=dn;Le.Tabs=vt;Le.Tab=_e;Le.Controls=vn;export{Le as Pane,mt as PaneTree,uo as Zeugma,Tn as usePaneContext,ft as useResizer,zn as useZeugma,An as useZeugmaContext};//# sourceMappingURL=index.js.map
|
|
9
|
+
`,document.head.appendChild(o),t.setAttribute("data-resizing","true");let c=i=>{n(i);},u=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let i=document.getElementById("zeugma-global-cursor-style");i&&i.remove(),document.removeEventListener("pointermove",c),document.removeEventListener("pointerup",u),a();};document.addEventListener("pointermove",c),document.addEventListener("pointerup",u);}function Ae(e){try{return JSON.stringify(e)}catch{return ""}}var dt=createContext(void 0),we=createContext(void 0),Pe=createContext(void 0),pt=createContext(void 0),re=()=>{let e=useContext(dt);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},ze=()=>{let e=useContext(we);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Ue=()=>{let e=useContext(pt);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function Lt(e){let t=useRef(null);return useEffect(()=>{if(!e){t.current=null;return}let n=o=>{t.current={x:o.clientX,y:o.clientY};},a=o=>{let c=o.touches[0]||o.changedTouches[0];c&&(t.current={x:c.clientX,y:c.clientY});};return window.addEventListener("pointermove",n,{passive:true}),window.addEventListener("touchmove",a,{passive:true}),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("touchmove",a);}},[e]),t}function Mt(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function kt(){let[e,t]=useState({}),[n,a]=useState({}),o=useRef({}),c=useRef(null),u=useRef({}),i=useRef(null),d=useRef(true);useEffect(()=>(d.current=true,()=>{d.current=false;}),[]);let f=useCallback((T,x,L)=>{d.current&&t(h=>{if(!x){if(L&&h[T]!==L||!h[T])return h;let H={...h};return delete H[T],H}return h[T]===x?h:{...h,[T]:x}});},[]),s=useCallback((T,x)=>{d.current&&a(L=>{if(!x){if(!L[T])return L;let h={...L};return delete h[T],h}return L[T]===x?L:{...L,[T]:x}});},[]),b=useCallback((T,x)=>{o.current[T]=x;},[]),g=useCallback(T=>{c.current=T;},[]),m=useCallback((T,x)=>{u.current[T]=x;},[]);return {portalTargets:useMemo(()=>({...e,...n}),[e,n]),registerPortalTarget:f,registerPopoutTarget:s,registerRenderCallback:b,renderCallbacksRef:o,registerRenderPane:g,renderPaneRef:c,registerTabHeader:m,tabHeadersRef:u,activeIdRef:i}}function An(e){let t=new Set;function n(a){a&&(a.type==="pane"?a.tabIds.forEach(o=>{t.add(o);}):a.type==="split"&&(n(a.first),n(a.second)));}return n(e),Array.from(t).sort()}function Ot(e){return useMemo(()=>An(e),[e])}function At(e){let{onDragStart:t,onDragEnd:n}=e,[a,o]=useState(null),[c,u]=useState(null),i=useCallback(f=>{t&&t(f);},[t]),d=useCallback((f,s,b)=>{n&&n(f,s,b);},[n]);return {overTabId:a,setOverTabId:o,overTabPosition:c,setOverTabPosition:u,handleDragStartInternal:i,handleDragEndInternal:d}}function zt(e){let n=useContext(Pe)?.registerRenderPane;useEffect(()=>{n&&e&&n(e);},[n,e]);}function pe(){return "pane-"+Math.random().toString(36).substring(2,11)}function be(e,t){if(e===null)return null;if(e.type==="pane")return e.id===t?null:e;let n=be(e.first,t),a=be(e.second,t);return n===null?a:a===null?n:{...e,first:n,second:a}}function fe(e,t){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let o=e.tabIds.filter(i=>i!==t);if(o.length===0)return null;let c=e.activeTabId;e.activeTabId===t&&(c=o[0]);let u={...e.tabsMetadata};return delete u[t],{...e,tabIds:o,activeTabId:c,tabsMetadata:Object.keys(u).length>0?u:void 0}}return e}let n=fe(e.first,t),a=fe(e.second,t);return n===null?a:a===null?n:{...e,first:n,second:a}}function Se(e,t,n,a,o){if(e===null)return typeof o=="string"?{type:"pane",id:pe(),tabIds:[o],activeTabId:o}:o;if(e.type==="pane"){if(e.id===t){let c=typeof o=="string"?{type:"pane",id:pe(),tabIds:[o],activeTabId:o}:o,u=a==="left"||a==="top";return {type:"split",direction:n,first:u?c:e,second:u?e:c,splitPercentage:50}}return e}return {...e,first:Se(e.first,t,n,a,o)||e.first,second:Se(e.second,t,n,a,o)||e.second}}function zn(e,t){if(e===null)return t;function n(a,o){return a.type==="pane"?{type:"split",direction:o==="row"?"column":"row",splitPercentage:50,first:a,second:t}:{...a,second:n(a.second,a.direction)}}return n(e,null)}function Zt(e,t,n,a){if(e===null)return {type:"pane",id:pe(),tabIds:[n],activeTabId:n,tabsMetadata:a?{[n]:a}:void 0};let o=t?te(e,t):null;if(o&&o.type==="pane"){let i=function(d){if(d.type==="pane"&&d.id===t){let f=[...d.tabIds];f.includes(n)||f.push(n);let s=d.tabsMetadata;return a&&(s={...d.tabsMetadata,[n]:a}),{...d,tabIds:f,activeTabId:n,tabsMetadata:s}}return d.type==="split"?{...d,first:i(d.first),second:i(d.second)}:d};return i(e)}let c={type:"pane",id:pe(),tabIds:[n],activeTabId:n,tabsMetadata:a?{[n]:a}:void 0};return zn(e,c)}function xe(e,t,n){return e===null?null:e===t?{...e,splitPercentage:n}:e.type==="split"?{...e,first:xe(e.first,t,n)||e.first,second:xe(e.second,t,n)||e.second}:e}function te(e,t){return e===null?null:e.type==="pane"?e.id===t?e:null:e.type==="split"?te(e.first,t)??te(e.second,t):null}function U(e,t){return e===null?null:e.type==="pane"?e.tabIds.includes(t)?e:null:e.type==="split"?U(e.first,t)??U(e.second,t):null}function Ht(e,t){return te(e,t)??U(e,t)}function $t(e,t){let n=U(e,t);if(!n)return null;let a=n.tabIds.indexOf(t);return {id:t,paneId:n.id,isActive:n.activeTabId===t,index:a,metadata:n.tabsMetadata?.[t],remountOnPopout:n.tabsMetadata?.[t]?.remountOnPopout}}function _t(e,t){return U(e,t)?.tabsMetadata?.[t]}function Bt(e,t){let n=te(e,t);return n?.tabsMetadata?.[n.activeTabId]}function Je(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let a=e.tabsMetadata||{},o=a[t],c=n(o),u={...a};return c===void 0?delete u[t]:u[t]=c,{...e,tabsMetadata:Object.keys(u).length>0?u:void 0}}return e}return e.type==="split"?{...e,first:Je(e.first,t,n)??e.first,second:Je(e.second,t,n)??e.second}:e}function Ge(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.id===t){if(n===false){let{locked:a,...o}=e;return o}return {...e,locked:n}}return e}return e.type==="split"?{...e,first:Ge(e.first,t,n)??e.first,second:Ge(e.second,t,n)??e.second}:e}function Ne(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:Ne(e.first,t,n)??e.first,second:Ne(e.second,t,n)??e.second}:e}function Ft(e,t,n){if(e===null)return null;let o=U(e,t)?.tabsMetadata?.[t],c=fe(e,t);if(c===null)return {type:"pane",id:pe(),tabIds:[t],activeTabId:t,tabsMetadata:o?{[t]:o}:void 0};function u(i){if(i.type==="pane"){if(i.id===n){let d=[...i.tabIds];d.includes(t)||d.push(t);let f={...i.tabsMetadata};return o&&(f[t]=o),{...i,tabIds:d,activeTabId:t,tabsMetadata:Object.keys(f).length>0?f:void 0}}return i}return i.type==="split"?{...i,first:u(i.first),second:u(i.second)}:i}return u(c)}function Zn(e,t,n){if(e===null)return null;if(t===n)return e;let a=U(e,t),o=U(e,n);if(!a||!o)return e;let c=a.id,u=o.id,i=a.tabsMetadata?.[t],d=o.tabsMetadata?.[n];function f(s){if(s.type==="pane"){let b=false,g=[...s.tabIds],m=s.activeTabId,y=s.tabsMetadata?{...s.tabsMetadata}:{};if(c===u){if(s.id===c){let T=g.indexOf(t),x=g.indexOf(n);T!==-1&&x!==-1&&(g[T]=n,g[x]=t),m=t,b=true;}}else s.id===c&&(g=g.map(T=>T===t?n:T),m===t&&(m=n),delete y[t],d&&(y[n]=d),b=true),s.id===u&&(g=g.map(T=>T===n?t:T),m===n&&(m=t),delete y[n],i&&(y[t]=i),b=true);return b?{...s,tabIds:g,activeTabId:m,tabsMetadata:Object.keys(y).length>0?y:void 0}:s}return s.type==="split"?{...s,first:f(s.first),second:f(s.second)}:s}return f(e)}function Ze(e,t,n,a="before"){if(e===null)return null;if(t===n)return e;if(a==="center")return Zn(e,t,n);let c=U(e,t)?.tabsMetadata?.[t],u=fe(e,t);if(u===null)return {type:"pane",id:pe(),tabIds:[t],activeTabId:t,tabsMetadata:c?{[t]:c}:void 0};function i(d){if(d.type==="pane"){if(d.tabIds.includes(n)){let s=[...d.tabIds].filter(m=>m!==t),b=s.indexOf(n);b<0&&(b=0),a==="after"&&(b+=1),s.splice(b,0,t);let g={...d.tabsMetadata};return c&&(g[t]=c),{...d,tabIds:s,activeTabId:t,tabsMetadata:Object.keys(g).length>0?g:void 0}}return d}return d.type==="split"?{...d,first:i(d.first),second:i(d.second)}:d}return i(u)}function ve(e,t=0,n=0,a=100,o=100,c="root"){if(e===null)return {panes:[],splitters:[]};if(e.type==="pane")return {panes:[{paneId:e.id,left:t,top:n,width:a,height:o,node:e}],splitters:[]};let{direction:u,splitPercentage:i,first:d,second:f}=e,b={id:`splitter-${c}-${u}`,currentNode:e,direction:u,left:u==="row"?t+a*(i/100):t,top:u==="column"?n+o*(i/100):n,width:u==="row"?0:a,height:u==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:a,parentHeight:o},g={panes:[],splitters:[]},m={panes:[],splitters:[]};if(u==="row"){let y=a*(i/100);g=ve(d,t,n,y,o,`${c}-L`),m=ve(f,t+y,n,a-y,o,`${c}-R`);}else {let y=o*(i/100);g=ve(d,t,n,a,y,`${c}-T`),m=ve(f,t,n+y,a,o-y,`${c}-B`);}return {panes:[...g.panes,...m.panes],splitters:[b,...g.splitters,...m.splitters]}}function Vt(e,t,n,a="before"){if(e===null)return null;let o=te(e,t);if(!o)return e;let c=o.tabIds,u=o.activeTabId,i=o.tabsMetadata||{},d=be(e,t);if(d===null)return o;function f(s){if(s.type==="pane"){if(s.tabIds.includes(n)){let g=[...s.tabIds].filter(T=>!c.includes(T)),m=g.indexOf(n);m<0&&(m=0),a==="after"&&(m+=1),g.splice(m,0,...c);let y={...s.tabsMetadata};for(let T of c)i[T]&&(y[T]=i[T]);return {...s,tabIds:g,activeTabId:u,tabsMetadata:Object.keys(y).length>0?y:void 0}}return s}return s.type==="split"?{...s,first:f(s.first),second:f(s.second)}:s}return f(d)}function Wt(e,t,n,a){if(!((t==="tab"||t==="pane")&&n&&e.includes(n))||!a)return -1;let u=e.indexOf(n);return a==="before"?u:u+1}function Hn(e){let{initialLayout:t,layout:n,onChange:a,fullscreenPaneId:o,onFullscreenChange:c,locked:u=false}=e,[i,d]=useState(()=>n!==void 0?n:t??null),[f,s]=useState(()=>n!==void 0?n:t??null),[b,g]=useState(()=>Ae(n!==void 0?n:null)),[m,y]=useState(o||null),[T,x]=useState(u),[L,h]=useState([]),[H,D]=useState(null),[O,Z]=useState(null),[r,l]=useState(null),v=useRef(null),R=useCallback(p=>{v.current=p;},[]),M=useRef(i);M.current=i;let q=useRef(a);q.current=a;let ne=useRef(c);ne.current=c;let J=useCallback(p=>{y(p),ne.current?.(p);},[]);if(useEffect(()=>{x(u);},[u]),useEffect(()=>{o!==void 0&&y(o);},[o]),n!==void 0){let p=Ae(n);p!==b&&(g(p),d(n),s(n));}let A=useCallback(p=>(...w)=>{let E=M.current,_=p(E,...w);Ae(E)!==Ae(_)&&(M.current=_,d(_),s(_),q.current?.(_));},[]),$=useCallback(A((p,w)=>typeof w=="function"?w(p):w),[A]),W=useCallback(p=>{s(w=>typeof p=="function"?p(w):p);},[]),F=useCallback(p=>{y(null),ne.current?.(null),D(null),Z(null),l(null),$(p),s(()=>typeof p=="function"?p(M.current):p);},[$]),B=useCallback(A((p,w)=>be(p,w)),[A]),N=useCallback(A((p,w,E,_)=>{let V=fe(p,w)??p;return Zt(V,E,w,_)}),[A]),P=useCallback(A((p,w,E,_,V)=>{let le=te(p,w)??U(p,w);if(!le)return p;let j=te(p,V)??U(p,V)??{type:"pane",id:V,tabIds:[V],activeTabId:V},Te=be(p,j.id);return Se(Te,le.id,E,_,j)}),[A]),z=useCallback(A((p,w,E)=>xe(p,w,E)),[A]),C=useCallback(A((p,w,E)=>Je(p,w,E)),[A]),k=useCallback(A((p,w,E)=>{let _=te(p,w)??U(p,w);return _?Ge(p,_.id,E):p}),[A]),ue=useCallback(A((p,w,E)=>{let _=te(p,w)??U(p,w);return _?Ne(p,_.id,E):p}),[A]),Q=useCallback(A((p,w,E)=>{let _=te(p,E)??U(p,E);return _?Ft(p,w,_.id):p}),[A]),K=useCallback(A((p,w,E,_)=>Ze(p,w,E,_)),[A]),Y=useCallback(A((p,w)=>fe(p,w)),[A]),ee=useCallback(p=>te(M.current,p),[]),S=useCallback(p=>U(M.current,p),[]),I=useCallback(p=>$t(M.current,p),[]),ie=useCallback(p=>_t(M.current,p),[]),se=useCallback(p=>Bt(M.current,p),[]),G=useCallback(p=>{h(w=>w.includes(p)?w:[...w,p]);},[]),oe=useCallback(p=>{h(w=>w.includes(p)?w.filter(E=>E!==p):w);},[]);return {layout:i,setLayout:F,_internalSetLayout:W,renderingLayout:f,fullscreenPaneId:m,setFullscreenPaneId:J,locked:T,setLocked:x,poppedOutTabIds:L,activeId:H,setActiveId:D,activeType:O,setActiveType:Z,dismissIntentId:r,setDismissIntentId:l,containerRef:v,setContainerRef:R,removePane:B,addTab:N,updateMetadata:C,updatePaneLock:k,selectTab:ue,mergeTab:Q,moveTab:K,removeTab:Y,splitPane:P,updateSplitPercentage:z,popoutTab:G,dockTab:oe,findPaneById:ee,findPaneContainingTab:S,findTabById:I,getTabMetadata:ie,getActiveTabMetadata:se}}var $n=()=>{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,poppedOutTabIds:e.poppedOutTabIds,popoutTab:t.popoutTab,dockTab:t.dockTab}};var Ke=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},et=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var qt=e=>{let n=e.active.id.toString().startsWith("tab-header-"),o=pointerWithin(e);if(o.length>0)return [...o].sort((u,i)=>{let d=u.id.toString(),f=i.id.toString(),s=d.startsWith("tab-drop-"),b=f.startsWith("tab-drop-");if(s&&!b)return -1;if(!s&&b)return 1;let g=d.startsWith("drop-root-"),m=f.startsWith("drop-root-");return g&&!m?-1:!g&&m?1:0});if(n){let c=e.droppableContainers.filter(u=>u.id.toString().startsWith("tab-drop-"));return closestCenter({...e,droppableContainers:c})}return []};function He(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 Yt(e){let{layout:t,_internalSetLayout:n,setLayout:a,activeId:o,setActiveId:c,activeType:u,setActiveType:i,dismissIntentId:d,setDismissIntentId:f,setOverTabId:s,setOverTabPosition:b,containerRef:g,dragActivationDistance:m,enableDragToDismiss:y,dismissThreshold:T,onRemove:x,onDragStart:L,onDragEnd:h,onDismissIntentChange:H,removeTab:D,removePane:O}=e,Z=useRef(null),r=Lt(o),l=useRef(null),[v,R]=useState(false);return Mt(v),{sensors:useSensors(useSensor(Ke,{activationConstraint:{distance:m}}),useSensor(et,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:qt,onDragStart:$=>{let W=$.active.id.toString(),F=W.startsWith("tab-header-"),B=F?W.substring(11):W;c(B),i(F?"tab":"pane"),s(null),b(null);let N=$.activatorEvent;r.current=He(N),y&&g.current?Z.current=g.current.getBoundingClientRect():Z.current=null;let P=t;if(F){let C=U(t,B);C&&(P=Ne(t,C.id,B)||t);}l.current=P;let z=F?fe(P,B):be(P,B);n(z),L&&L(B);},onDragMove:$=>{let{over:W}=$,F=W?.id.toString()||"",B=F.startsWith("drop-locked-");R(S=>S===B?S:B);let N=$.active.id.toString(),P=N.startsWith("tab-header-"),z=P?N.substring(11):N,C=F.match(/^tab-drop-(.+)$/);if(C&&W&&(P||u==="pane")){let[,S]=C;if(z!==S){let I="before",ie=W.rect,se=$.activatorEvent,G=null;if(r.current)G=r.current.x;else {let oe=He(se);oe&&(G=oe.x+$.delta.x);}if(G!==null){let oe=ie.left+ie.width/2;G>oe&&(I="after");}s(oe=>oe===S?oe:S),b(oe=>oe===I?oe:I);}else s(I=>I===null?I:null),b(I=>I===null?I:null);}else s(S=>S===null?S:null),b(S=>S===null?S:null);if(!y)return;let k=Z.current;if(!k){d!==null&&(f(null),H?.(null));return}let ue=$.activatorEvent,Q=null,K=null;if(r.current)Q=r.current.x,K=r.current.y;else {let S=He(ue);S&&(Q=S.x+$.delta.x,K=S.y+$.delta.y);}let Y=0;if(Q!==null&&K!==null){let S=0,I=0;Q<k.left?S=k.left-Q:Q>k.right&&(S=Q-k.right),K<k.top?I=k.top-K:K>k.bottom&&(I=K-k.bottom),Y=Math.sqrt(S*S+I*I);}else {let S=$.active.rect.current.translated;if(S){let I=S.left+S.width/2,ie=S.top+S.height/2,se=0,G=0;I<k.left?se=k.left-I:I>k.right&&(se=I-k.right),ie<k.top?G=k.top-ie:ie>k.bottom&&(G=ie-k.bottom),Y=Math.sqrt(se*se+G*G);}}Y>T?d!==z&&(f(z),H?.(z)):d!==null&&(f(null),H?.(null));},onDragEnd:$=>{c(null),i(null),R(false),s(null),b(null);let{active:W,over:F}=$,B=W.id.toString(),N=B.startsWith("tab-header-"),P=N?B.substring(11):B,z=y&&d===P;f(null),H?.(null),Z.current=null;let C=l.current||t;if(l.current=null,z){x?x(P):N?D(P):O(P),h&&h(P,null,null);return}if(!F){n(C),h&&h(P,null,null);return}let k=F.id.toString();if(k.startsWith("drop-locked-")){n(C),h&&h(P,null,null);return}let ue=k.match(/^tab-drop-(.+)$/);if(ue){let[,p]=ue;if(N)if(P!==p){let w="before",E=F.rect,_=$.activatorEvent,V=null;if(r.current)V=r.current.x;else {let j=He(_);j&&(V=j.x+$.delta.x);}if(V!==null){let j=E.left+E.width/2;V>j&&(w="after");}let le=Ze(C,P,p,w);a(le),h&&h(P,p,{type:"move",position:"center"});}else n(C),h&&h(P,null,null);else {let w="before",E=F.rect,_=$.activatorEvent,V=null;if(r.current)V=r.current.x;else {let j=He(_);j&&(V=j.x+$.delta.x);}if(V!==null){let j=E.left+E.width/2;V>j&&(w="after");}let le=Vt(C,P,p,w);a(le),h&&h(P,p,{type:"move",position:"center"});}return}let Q=k.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(Q){let[,p,w]=Q,E=w;E==="start"&&(E="left"),E==="end"&&(E="right");let _=N?fe(C,P):be(C,P),V;if(N){let j=U(C,P)?.tabsMetadata?.[P];V={type:"pane",id:pe(),tabIds:[P],activeTabId:P,tabsMetadata:j?{[P]:j}:void 0};}else V=te(C,P)??{type:"pane",id:pe(),tabIds:[P],activeTabId:P};if(_===null)a(V);else {let le=E==="left"||E==="right",j=E==="left"||E==="top",Te=50;p==="1/4"?Te=j?25:75:p==="1/3"&&(Te=j?100/3:200/3),a({type:"split",direction:le?"row":"column",first:j?V:_,second:j?_:V,splitPercentage:Te});}h&&h(P,"root",{type:"split",direction:E==="left"||E==="right"?"row":"column",position:E});return}let K=k.match(/^drop-(left|right|top|bottom|center)-(.+)$/);if(!K){n(C),h&&h(P,null,null);return}let[,Y,ee]=K;if(Y==="center"){if(N){let p=te(C,ee);if(p&&p.activeTabId){let w=p.activeTabId,E=Ze(C,P,w,"center");a(E),h&&h(P,ee,{type:"move",position:"center"});}else n(C),h&&h(P,null,null);}else n(C),h&&h(P,null,null);return}let S=N?U(C,P):te(C,P),I=S&&S.id===ee,ie=S&&S.tabIds.length===1;if(P===ee||I&&ie){n(C),h&&h(P,null,null);return}let se=Y==="left"||Y==="right"?"row":"column",G;if(N){let w=U(C,P)?.tabsMetadata?.[P];G={type:"pane",id:pe(),tabIds:[P],activeTabId:P,tabsMetadata:w?{[P]:w}:void 0};}else G=te(C,P)??{type:"pane",id:pe(),tabIds:[P],activeTabId:P};let oe=N?fe(C,P):be(C,P),Oe=Se(oe,ee,se,Y,G);a(Oe),h&&h(P,ee,{type:"split",direction:se,position:Y});},onDragCancel:()=>{c(null),i(null),R(false),s(null),b(null),f(null),H?.(null),Z.current=null;let $=l.current||t;l.current=null,n($),$!==t&&a($);}}}function Gt({persist:e,layout:t,setLayout:n}){let a=typeof e=="object"?e.enabled!==false:!!e,o=typeof e=="object"&&e.key||"zeugma-layout",[c,u]=useState(false);useEffect(()=>{if(a){let i=localStorage.getItem(o);if(i)try{let d=JSON.parse(i);d&&n(d);}catch(d){console.error("Failed to parse persisted zeugma layout",d);}}u(true);},[a,o,n]),useEffect(()=>{a&&c&&(t?localStorage.setItem(o,JSON.stringify(t)):localStorage.removeItem(o));},[a,o,t,c]);}var Ee=null,Kt=false,ae=new Set,De=new Set,Ie=null;function Xn(){typeof window>"u"||Ie||(Ie=new MutationObserver(e=>{e.forEach(t=>{t.addedNodes.forEach(n=>{n instanceof HTMLElement&&(n.tagName.toLowerCase()==="style"||n.tagName.toLowerCase()==="link")&&ae.forEach(a=>{try{let o=n.cloneNode(!0);if(o.tagName.toLowerCase()==="link"){let c=n.href;c&&o.setAttribute("href",c);}a.head.appendChild(o);}catch(o){console.warn("Failed to mirror style node to popout:",o);}});});});}),Ie.observe(document.head,{childList:true}));}function ft(){Ie&&(Ie.disconnect(),Ie=null);}var Le=null;function Yn(){typeof window>"u"||Le||(Le=new MutationObserver(e=>{e.forEach(t=>{if(t.type==="attributes"&&t.attributeName){let n=document.documentElement.getAttribute(t.attributeName);ae.forEach(a=>{try{a&&a.documentElement&&(n!==null?a.documentElement.setAttribute(t.attributeName,n):a.documentElement.removeAttribute(t.attributeName));}catch(o){console.warn("Failed to sync documentElement attribute:",o);}});}});}),Le.observe(document.documentElement,{attributes:true}));}function mt(){Le&&(Le.disconnect(),Le=null);}var en=e=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(e):setTimeout(e,0);};function me(){if(typeof window>"u")return document;if(Ee&&Ee.target){let t=Ee.target.ownerDocument;if(t&&t!==document)return t}let e=window.event;if(e&&e.target){let n=e.target.ownerDocument;if(n&&n!==document)return n}return window.__zeugmaActivePopoutDocument?window.__zeugmaActivePopoutDocument:document}function tn(){if(typeof window>"u"||Kt)return;Kt=true;let e=(r,l)=>{if(!r||!l)return false;try{let v=Object.getPrototypeOf(r);for(;v;){if(v===l)return !0;v=Object.getPrototypeOf(v);}}catch{}return false},t=(r,l)=>{try{Object.defineProperty(r,Symbol.hasInstance,{value:function(v){return v?e(v,r.prototype)?!0:l(v):!1},configurable:!0,writable:!0});}catch(v){console.warn("Failed to patch Symbol.hasInstance on",r,v);}};typeof Node<"u"&&t(Node,r=>typeof r.nodeType=="number"&&typeof r.nodeName=="string"),typeof Element<"u"&&t(Element,r=>r.nodeType===1),typeof HTMLElement<"u"&&t(HTMLElement,r=>r.nodeType===1&&typeof r.style=="object"),typeof HTMLBodyElement<"u"&&t(HTMLBodyElement,r=>r.nodeType===1&&r.tagName==="BODY"),typeof HTMLHtmlElement<"u"&&t(HTMLHtmlElement,r=>r.nodeType===1&&r.tagName==="HTML"),typeof HTMLInputElement<"u"&&t(HTMLInputElement,r=>r.nodeType===1&&r.tagName==="INPUT"),typeof HTMLTextAreaElement<"u"&&t(HTMLTextAreaElement,r=>r.nodeType===1&&r.tagName==="TEXTAREA"),typeof ShadowRoot<"u"&&t(ShadowRoot,r=>r.nodeType===11&&r.host!==void 0),typeof SVGElement<"u"&&t(SVGElement,r=>r.nodeType===1&&typeof r.getBBox=="function"),typeof Document<"u"&&t(Document,r=>r.nodeType===9),typeof Window<"u"&&t(Window,r=>r&&typeof r.document=="object"&&typeof r.location=="object");let n=Document.prototype,a=Object.getOwnPropertyDescriptor(n,"body"),o=Object.getOwnPropertyDescriptor(n,"documentElement"),c=Object.getOwnPropertyDescriptor(n,"head"),u=Object.getOwnPropertyDescriptor(n,"activeElement"),i=Object.getOwnPropertyDescriptor(n,"defaultView"),d=Object.getOwnPropertyDescriptor(n,"scrollingElement");Object.defineProperties(document,{body:{get(){let r=me();return r&&r!==document?r.body:a?.get?.call(document)||document.body},configurable:true},documentElement:{get(){let r=me();return r&&r!==document?r.documentElement:o?.get?.call(document)||document.documentElement},configurable:true},head:{get(){let r=me();return r&&r!==document?r.head:c?.get?.call(document)||document.head},configurable:true},activeElement:{get(){let r=me();return r&&r!==document?r.activeElement:u?.get?.call(document)||document.activeElement},configurable:true},defaultView:{get(){let r=me();return r&&r!==document?r.defaultView:i?.get?.call(document)||document.defaultView},configurable:true},scrollingElement:{get(){let r=me();return r&&r!==document?r.scrollingElement:d?.get?.call(document)||document.scrollingElement},configurable:true}});let f=Window.prototype,s=["innerWidth","innerHeight","pageXOffset","pageYOffset","scrollX","scrollY","screenX","screenY","outerWidth","outerHeight","devicePixelRatio"],b={};s.forEach(r=>{let l=Object.getOwnPropertyDescriptor(f,r)||Object.getOwnPropertyDescriptor(window,r);l&&l.get&&(b[r]=l.get);}),s.forEach(r=>{Object.defineProperty(window,r,{get(){let l=me();if(l&&l!==document&&l.defaultView)try{return l.defaultView[r]}catch{}let v=b[r];return v?v.call(window):window[r]},configurable:true});});let g=Node.prototype.contains;Node.prototype.contains=function(r){if(!r)return false;if(g.call(this,r))return true;if(this===document||this===document.body||this===document.documentElement)for(let l of ae)try{if(l.contains(r))return !0}catch{}return false};let m=()=>{Ee=null,globalThis.__zeugmaActivePopoutDocument=null;};["pointerdown","mousedown","click","keydown","focus","touchstart"].forEach(r=>{window.addEventListener(r,m,true);});let T=document.createElement;document.createElement=function(r,l){let v=me();return v&&v!==document?v.createElement(r,l):T.call(document,r,l)};let x=document.addEventListener;document.addEventListener=function(r,l,v){De.add({target:"document",type:r,listener:l,options:v}),x.call(document,r,l,v),ae.forEach(R=>{try{R.addEventListener(r,l,v);}catch{}});};let L=document.removeEventListener;document.removeEventListener=function(r,l,v){for(let R of De)if(R.target==="document"&&R.type===r&&R.listener===l){De.delete(R);break}L.call(document,r,l,v),ae.forEach(R=>{try{R.removeEventListener(r,l,v);}catch{}});};let h=window.addEventListener;window.addEventListener=function(r,l,v){De.add({target:"window",type:r,listener:l,options:v}),h.call(window,r,l,v),ae.forEach(R=>{try{R.defaultView&&R.defaultView.addEventListener(r,l,v);}catch{}});};let H=window.removeEventListener;window.removeEventListener=function(r,l,v){for(let R of De)if(R.target==="window"&&R.type===r&&R.listener===l){De.delete(R);break}H.call(window,r,l,v),ae.forEach(R=>{try{R.defaultView&&R.defaultView.removeEventListener(r,l,v);}catch{}});};let D=document.getElementById;document.getElementById=function(r){let l=me();if(l&&l!==document)return l.getElementById(r);let v=D.call(document,r);if(v)return v;for(let R of ae)try{let M=R.getElementById(r);if(M)return M}catch{}return null};let O=document.querySelector;document.querySelector=function(r){let l=me();if(l&&l!==document)return l.querySelector(r);let v=O.call(document,r);if(v)return v;for(let R of ae)try{let M=R.querySelector(r);if(M)return M}catch{}return null};let Z=document.querySelectorAll;document.querySelectorAll=function(r){let l=me();if(l&&l!==document)return l.querySelectorAll(r);let v=Z.call(document,r);if(v.length>0)return v;for(let R of ae)try{let M=R.querySelectorAll(r);if(M.length>0)return M}catch{}return v};}function nn(e){let{poppedOutTabIds:t,registerPopoutTarget:n,findTabById:a,dockTab:o}=e,c=useRef({});useEffect(()=>{let u=c.current;t.forEach(i=>{if(u[i]){try{u[i].focus();}catch{}return}tn();let f=a(i)?.metadata?.title||`Tab ${i}`,s=window.open("",`zeugma-popout-${i}`,"width=800,height=600");if(!s){console.warn("Failed to open popout window. Check popup blocker."),o(i);return}u[i]=s,ae.add(s.document),De.forEach(l=>{try{l.target==="window"?s.addEventListener(l.type,l.listener,l.options):s.document.addEventListener(l.type,l.listener,l.options);}catch{}}),Xn(),Yn(),s.document.title=f,s.document.head.innerHTML="";try{let l=s.document.createElement("base");l.setAttribute("href",window.location.origin+"/"),s.document.head.appendChild(l);}catch{}if(Array.from(document.querySelectorAll('style, link[rel="stylesheet"]')).forEach(l=>{let v=l.cloneNode(true);if(l.tagName.toLowerCase()==="link"){let R=l.href;R&&v.setAttribute("href",R);}else if(l.tagName.toLowerCase()==="style")try{let R=l.sheet?.cssRules;if(R&&R.length>0){let M=Array.from(R).map(q=>q.cssText).join(`
|
|
10
|
+
`);v.textContent=M;}}catch{}s.document.head.appendChild(v);}),typeof document.adoptedStyleSheets<"u"&&typeof s.document.adoptedStyleSheets<"u")try{let l=Array.from(document.adoptedStyleSheets).map(v=>{try{let R=new s.CSSStyleSheet,M=Array.from(v.cssRules).map(q=>q.cssText).join(`
|
|
11
|
+
`);return R.replaceSync(M),R}catch{return null}}).filter(v=>v!==null);s.document.adoptedStyleSheets=l;}catch(l){console.warn("Failed to copy adoptedStyleSheets:",l);}s.document.documentElement.className=document.documentElement.className,s.document.body.className=document.body.className,Array.from(document.documentElement.attributes).forEach(l=>{s.document.documentElement.setAttribute(l.name,l.value);}),s.document.body.style.margin="0",s.document.body.style.padding="0",s.document.body.style.height="100vh",s.document.body.style.overflow="hidden";let b=document.getElementById(`zeugma-tab-target-${i}`),g="";b&&(g=window.getComputedStyle(b).backgroundColor,(!g||g==="transparent"||g==="rgba(0, 0, 0, 0)")&&b.parentElement&&(g=window.getComputedStyle(b.parentElement).backgroundColor));let m=window.getComputedStyle(document.documentElement),y=window.getComputedStyle(document.body),T=y.backgroundColor,L=!T||T==="transparent"||T==="rgba(0, 0, 0, 0)"?m.backgroundColor:T,h=g&&g!=="transparent"&&g!=="rgba(0, 0, 0, 0)"?g:L&&L!=="transparent"&&L!=="rgba(0, 0, 0, 0)"?L:"#181b1f";document.documentElement.getAttribute("data-theme")||(s.document.documentElement.style.backgroundColor=h,s.document.body.style.backgroundColor=h),s.document.body.style.color=y.color||m.color,s.document.body.style.fontFamily=y.fontFamily||m.fontFamily;let D=s.document.createElement("div");D.id=`zeugma-popout-container-${i}`,D.className="grafana-panel h-full w-full overflow-hidden",D.style.width="100%",D.style.height="100%",D.style.border="none",s.document.body.appendChild(D),n?.(i,D);let O=["pointerdown","mousedown","click","keydown","focus","touchstart"],Z=l=>{Ee=l,globalThis.__zeugmaActivePopoutDocument=s.document,setTimeout(()=>{Ee===l&&(Ee=null,globalThis.__zeugmaActivePopoutDocument=null);},0);};O.forEach(l=>{s.addEventListener(l,Z,true);});let r=()=>{ae.delete(s.document),ae.size===0&&(ft(),mt()),o(i);};s.addEventListener("beforeunload",r),s.__zeugmaCleanup=()=>{O.forEach(l=>{s.removeEventListener(l,Z,true);}),s.removeEventListener("beforeunload",r);};}),Object.keys(u).forEach(i=>{if(!t.includes(i)){let d=u[i];if(delete u[i],n?.(i,null),d){ae.delete(d.document),ae.size===0&&(ft(),mt());try{let f=d;f.__zeugmaCleanup&&f.__zeugmaCleanup(),en(()=>{try{f.close();}catch{}});}catch{}}}});},[t,n,a,o]),useEffect(()=>()=>{let u=c.current;Object.keys(u).forEach(i=>{let d=u[i];if(d){ae.delete(d.document);try{let f=d;f.__zeugmaCleanup&&f.__zeugmaCleanup(),en(()=>{try{f.close();}catch{}});}catch{}}}),ae.size===0&&(ft(),mt());},[]);}typeof window<"u"&&tn();var on=({activeId:e,render:t,className:n})=>{let a=useRef(null);return useEffect(()=>{let o=c=>{a.current&&(a.current.style.transform=`translate(${c.clientX+12}px, ${c.clientY+12}px)`);};return document.addEventListener("pointermove",o),()=>document.removeEventListener("pointermove",o)},[]),jsx("div",{ref:a,className:n,style:{position:"fixed",top:0,left:0,zIndex:9999,pointerEvents:"none"},children:t(e)})};var no=({popoutDoc:e,children:t})=>{if(e===document)return jsx(Fragment,{children:t});let n=ge.useEffect,a=ge.useLayoutEffect,o=ge.useInsertionEffect;ge.useEffect=(c,u)=>n(()=>{window.__zeugmaActivePopoutDocument=e;try{let i=c();return typeof i=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return i()}finally{window.__zeugmaActivePopoutDocument=null;}}:i}finally{window.__zeugmaActivePopoutDocument=null;}},u),ge.useLayoutEffect=(c,u)=>a(()=>{window.__zeugmaActivePopoutDocument=e;try{let i=c();return typeof i=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return i()}finally{window.__zeugmaActivePopoutDocument=null;}}:i}finally{window.__zeugmaActivePopoutDocument=null;}},u),o&&(ge.useInsertionEffect=(c,u)=>o(()=>{window.__zeugmaActivePopoutDocument=e;try{let i=c();return typeof i=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return i()}finally{window.__zeugmaActivePopoutDocument=null;}}:i}finally{window.__zeugmaActivePopoutDocument=null;}},u)),window.__zeugmaActivePopoutDocument=e;try{return jsx(Fragment,{children:t})}finally{window.__zeugmaActivePopoutDocument=null,ge.useEffect=n,ge.useLayoutEffect=a,o&&(ge.useInsertionEffect=o);}},an=ge.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:a}=e,{renderPopoutWrapper:o}=re(),[c,u]=useState(false),i=useRef(null);if(useEffect(()=>{u(true);},[]),useEffect(()=>{if(!c||!i.current)return;let m=i.current;if(t)t.ownerDocument.adoptNode(m),t.appendChild(m);else {let y=document.getElementById("zeugma-hidden-portal-container");y||(y=document.createElement("div"),y.id="zeugma-hidden-portal-container",y.style.display="none",document.body.appendChild(y)),document.adoptNode(m),y.appendChild(m);}},[t,c]),useEffect(()=>()=>{i.current&&i.current.remove();},[]),!c)return null;let d=t?t.ownerDocument:document;i.current&&i.current.ownerDocument!==d&&(i.current.remove(),i.current=null),i.current||(i.current=d.createElement("div"),i.current.className=`zeugma-portal-wrapper-${a}`,i.current.style.width="100%",i.current.style.height="100%");let f=i.current;if(!f||!n)return null;let s=!!(t&&t.ownerDocument&&t.ownerDocument!==document),b=e.remountOnPopout?s?"-popped":"-docked":"",g=jsx(ge.Fragment,{children:n(e)},`${a}${b}`);return s&&t&&t.ownerDocument&&o&&(g=o({tabId:a,document:t.ownerDocument,window:t.ownerDocument.defaultView||window,children:g})),createPortal(jsx(no,{popoutDoc:s&&t?t.ownerDocument:document,children:g}),f)},(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 sn=({activeId:e,activeType:t,dismissIntentId:n,renderDragOverlay:a,renderPaneRef:o,renderPane:c,tabHeadersRef:u,classNames:i})=>{if(a)return jsx(Fragment,{children:a({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let d=o.current||c;if(d)return jsx("div",{className:i.paneDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:d(e)})}else if(t==="tab"){let d=o.current||c;if(d)return jsx("div",{className:i.tabDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:d(e)});let f=u.current[e];if(f){let s=i.tab?typeof i.tab=="function"?i.tab(e):i.tab:"";return jsx("div",{className:`${i.tabDragPreview||""} ${s}`.trim(),style:{display:"inline-flex",position:"relative",pointerEvents:"none",overflow:"hidden"},children:f({isDragging:true,isOver:false})})}}return jsx("div",{style:{pointerEvents:"none",overflow:"hidden",width:"100%",height:"100%"}})};function bt({containerRef:e,isRow:t,direction:n,splitPercentage:a,resizerSize:o,snapThreshold:c,layout:u,currentNode:i,onLayoutChange:d,onResizeStart:f,onResizeEnd:s,parentLeft:b,parentTop:g,parentWidth:m,parentHeight:y}){let{onResizeStart:T,onResize:x,onResizeEnd:L,minSplitPercentage:h=5,maxSplitPercentage:H=95,locked:D=false}=re();return useCallback(O=>{if(D)return;O.preventDefault();let Z=e.current;if(!Z)return;f&&f(),T&&T(i);let r=Z.getBoundingClientRect(),l=O.clientX,v=O.clientY,R=a,M=O.currentTarget,q=r.left+r.width*(b/100),ne=r.top+r.height*(g/100),J=r.width*(m/100),A=r.height*(y/100),W=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(B=>B!==M&&B.getAttribute("data-direction")===n).map(B=>{let N=B.getBoundingClientRect();return t?N.left+N.width/2:N.top+N.height/2}),F=R;Nt({cursor:t?"col-resize":"row-resize",resizerEl:M,onMove:B=>{let N=t?(B.clientX-l)/J*100:(B.clientY-v)/A*100,P=R+N,z=t?q+(J-o)*(P/100)+o/2:ne+(A-o)*(P/100)+o/2,C=1/0,k=null;for(let Y of W){let ee=Math.abs(z-Y);ee<c&&ee<C&&(C=ee,k=Y);}let ue=P;k!==null&&(ue=t?(k-o/2-q)/(J-o)*100:(k-o/2-ne)/(A-o)*100);let Q=Math.max(h,Math.min(H,ue));F=Q;let K=xe(u,i,Q);if(K){let{panes:Y,splitters:ee}=ve(K),S=e.current;if(S){for(let I of Y)S.style.setProperty(`--pane-left-${I.paneId}`,`${I.left}%`),S.style.setProperty(`--pane-top-${I.paneId}`,`${I.top}%`),S.style.setProperty(`--pane-width-${I.paneId}`,`${I.width}%`),S.style.setProperty(`--pane-height-${I.paneId}`,`${I.height}%`);for(let I of ee)S.style.setProperty(`--splitter-pos-${I.id}`,`${I.direction==="row"?I.left:I.top}%`);}}x&&x(i,Q);},onEnd:()=>{let B=xe(u,i,F),N=e.current;if(N){let{panes:P,splitters:z}=ve(B);for(let C of P)N.style.removeProperty(`--pane-left-${C.paneId}`),N.style.removeProperty(`--pane-top-${C.paneId}`),N.style.removeProperty(`--pane-width-${C.paneId}`),N.style.removeProperty(`--pane-height-${C.paneId}`);for(let C of z)N.style.removeProperty(`--splitter-pos-${C.id}`);}d(B),s&&s(),L&&L(i,F);}});},[e,t,n,a,o,c,u,i,d,f,s,T,x,L,h,H,b,g,m,y])}var ln=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:a})=>{let{renderingLayout:o,setLayout:c,classNames:u,locked:i}=re(),[d,f]=useState(false),{currentNode:s,direction:b,left:g,top:m,width:y,height:T,parentLeft:x,parentTop:L,parentWidth:h,parentHeight:H}=e,D=b==="row",O=bt({containerRef:a,isRow:D,direction:b,splitPercentage:s.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:s,onLayoutChange:c,onResizeStart:()=>f(true),onResizeEnd:()=>f(false),parentLeft:x,parentTop:L,parentWidth:h,parentHeight:H}),Z=D?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${g}%) - ${t/2}px)`,top:`calc(${m}% + ${t/2}px)`,width:`${t}px`,height:`calc(${T}% - ${t}px)`,cursor:i?"default":"col-resize",pointerEvents:i?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"}:{position:"absolute",left:`calc(${g}% + ${t/2}px)`,top:`calc(var(--splitter-pos-${e.id}, ${m}%) - ${t/2}px)`,width:`calc(${y}% - ${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:u.resizer||"","data-direction":b,"data-resizing":d||void 0,style:Z,onPointerDown:O,role:"separator","aria-valuenow":s.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},cn=ge.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var vt=({renderPane:e,tree:t,resizerSize:n,snapThreshold:a})=>{zt(e);let{renderingLayout:o,activeId:c,dismissIntentId:u,setContainerRef:i,fullscreenPaneId:d,snapThreshold:f,locked:s,classNames:b,resizerSize:g}=re(),m=a!==void 0?a:f??8,y=n!==void 0?n:g??4,T=t!==void 0?t:o,x=useRef(null),{panes:L,splitters:h}=useMemo(()=>T?ve(T):{panes:[],splitters:[]},[T]);if(!T&&t!==void 0)return null;let H=()=>jsxs(Fragment,{children:[L.map(D=>{let O=d===D.paneId;return jsx("div",{style:{position:"absolute",left:O?"0%":`var(--pane-left-${D.paneId}, ${D.left}%)`,top:O?"0%":`var(--pane-top-${D.paneId}, ${D.top}%)`,width:O?"100%":`var(--pane-width-${D.paneId}, ${D.width}%)`,height:O?"100%":`var(--pane-height-${D.paneId}, ${D.height}%)`,overflow:"hidden",zIndex:O?20:1,display:d&&!O?"none":"block",padding:O?"0px":`${y/2}px`,boxSizing:"border-box"},children:jsx(cn,{paneId:D.paneId,renderPane:e})},D.paneId)}),!d&&h.map(D=>jsx(ln,{splitter:D,resizerSize:y,snapThreshold:m,containerRef:x},D.id))]});if(t===void 0){let D=c!==null&&c===u,O=r=>{i(r),x.current=r;},Z=`${b.dashboard||""} ${D&&b.dashboardDismissActive||""} ${s&&b.dashboardLocked||""}`.trim();return jsxs("div",{ref:O,className:Z,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[H(),c!==null&&!s&&jsx(pn,{activeClassName:b.rootDropPreview??b.dropPreview})]})}return jsx("div",{ref:x,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:H()})};var fo=e=>{let{controller:t,children:n,renderDragOverlay:a,classNames:o={},renderPane:c,resizerSize:u,dragActivationDistance:i=8,snapThreshold:d=8,minSplitPercentage:f=5,maxSplitPercentage:s=95,enableDragToDismiss:b=false,dismissThreshold:g=60,onRemove:m,onDragStart:y,onDragEnd:T,onResizeStart:x,onResize:L,onResizeEnd:h,onDismissIntentChange:H,persist:D=false,renderPopoutWrapper:O}=e,Z=t,{layout:r,setLayout:l,_internalSetLayout:v,renderingLayout:R,fullscreenPaneId:M,setFullscreenPaneId:q,locked:ne,setLocked:J,findPaneById:A,findPaneContainingTab:$,findTabById:W,getTabMetadata:F,getActiveTabMetadata:B,activeId:N,setActiveId:P,activeType:z,setActiveType:C,dismissIntentId:k,setDismissIntentId:ue,containerRef:Q,setContainerRef:K,removePane:Y,addTab:ee,updateMetadata:S,updatePaneLock:I,selectTab:ie,mergeTab:se,removeTab:G,splitPane:oe,updateSplitPercentage:Oe,moveTab:p,poppedOutTabIds:w=[],popoutTab:E,dockTab:_}=Z;Gt({persist:D,layout:r,setLayout:l});let{portalTargets:V,registerPortalTarget:le,registerPopoutTarget:j,registerRenderCallback:Te,renderCallbacksRef:Ve,registerRenderPane:wt,renderPaneRef:st,registerTabHeader:Rt,tabHeadersRef:lt,activeIdRef:We}=kt();nn({poppedOutTabIds:w,registerPopoutTarget:j,findTabById:W,dockTab:_});let xt=useCallback(de=>w.includes(de),[w]),{overTabId:Dt,setOverTabId:xn,overTabPosition:Et,setOverTabPosition:Dn,handleDragStartInternal:En,handleDragEndInternal:Cn}=At({onDragStart:y,onDragEnd:T}),Sn=Yt({layout:r,_internalSetLayout:v,setLayout:l,activeId:N,setActiveId:P,activeType:z,setActiveType:C,dismissIntentId:k,setDismissIntentId:ue,setOverTabId:xn,setOverTabPosition:Dn,containerRef:Q,dragActivationDistance:i,enableDragToDismiss:b,dismissThreshold:g,onRemove:m,onDragStart:En,onDragEnd:Cn,onDismissIntentChange:H,removeTab:G,removePane:Y}),ct=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=useCallback((de,je)=>{h&&h(de,je);},[h]),Nn=useMemo(()=>({layout:r,renderingLayout:R,setLayout:l,activeId:N,activeType:z,dismissIntentId:k,setContainerRef:K,fullscreenPaneId:M,classNames:ct,onRemove:m,onFullscreenChange:q,snapThreshold:d,onResizeStart:x,onResize:L,onResizeEnd:Ct,minSplitPercentage:f,maxSplitPercentage:s,locked:ne,setLocked:J,findPaneById:A,findPaneContainingTab:$,findTabById:W,getTabMetadata:F,getActiveTabMetadata:B,renderPane:c,resizerSize:u,poppedOutTabIds:w,isTabPoppedOut:xt,renderPopoutWrapper:O}),[r,R,N,z,k,K,M,ct,m,q,d,x,L,f,s,l,Ct,ne,J,A,$,W,F,B,c,u,w,xt,O]),In=useMemo(()=>({overTabId:Dt,overTabPosition:Et}),[Dt,Et]),Ln=useMemo(()=>({removePane:Y,addTab:ee,updateMetadata:S,updatePaneLock:I,selectTab:ie,mergeTab:se,removeTab:G,setFullscreenPaneId:q,setLocked:J,splitPane:oe,updateSplitPercentage:Oe,moveTab:p,popoutTab:E,dockTab:_}),[Y,ee,S,I,ie,se,G,q,J,oe,Oe,p,E,_]),Mn=Ot(r),kn=useMemo(()=>({registerPortalTarget:le,registerRenderCallback:Te,renderCallbacksRef:Ve,registerRenderPane:wt,renderPaneRef:st,registerTabHeader:Rt,tabHeadersRef:lt,activeIdRef:We,registerPopoutTarget:j}),[le,Te,Ve,wt,st,Rt,lt,We,j]);return We&&(We.current=N),jsx(we.Provider,{value:Ln,children:jsx(dt.Provider,{value:Nn,children:jsx(pt.Provider,{value:In,children:jsxs(Pe.Provider,{value:kn,children:[jsx(DndContext,{id:"zeugma-dnd-context",...Sn,children:n}),N&&z&&jsx(on,{activeId:N,render:de=>jsx("div",{style:{transition:"transform 150ms cubic-bezier(0.2, 0, 0, 1)",transform:de===k?"scale(0.8)":"scale(1)",transformOrigin:"top left"},children:jsx(sn,{activeId:de,activeType:z,dismissIntentId:k,renderDragOverlay:a,renderPaneRef:st,renderPane:c,tabHeadersRef:lt,classNames:ct})}),className:`${o.dragOverlay||""} ${N===k&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:Mn.map(de=>{let je=V[de],St=W(de);return St?jsx(an,{tabDetails:St,target:je||null,renderWidget:Ve.current[de]},de):null})})]})})})})},mo=({renderPane:e,resizerSize:t,snapThreshold:n})=>{if(!e)throw new Error("Zeugma component requires a renderPane prop when used as a standalone renderer.");return jsx(vt,{renderPane:e,resizerSize:t,snapThreshold:n})},go=e=>{let{children:t,...n}=e,{controller:a}=e;if(!a)throw new Error("Zeugma component requires a controller.");return jsx(fo,{...e,children:t!==void 0?t:jsx(mo,{...n})})};var ho={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"}}},yo={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"}}},To=({id:e,fraction:t,edge:n,activeClassName:a})=>{let{setNodeRef:o,isOver:c}=useDroppable({id:e}),u={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...yo[n][t]};return jsxs(Fragment,{children:[jsx("div",{ref:o,style:ho[n][t]}),c&&jsx("div",{className:a,style:u})]})},pn=({activeClassName:e})=>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=>jsx(To,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var ot=createContext(null);var Do={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"},center:{position:"absolute",top:"25%",left:"25%",width:"50%",height:"50%",zIndex:22,pointerEvents:"auto"}},Eo={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"},center:{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:a,isOver:o}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:a,style:Do[t]}),o&&jsx("div",{className:n,style:Eo[t]})]})};var gn=({children:e,className:t,style:n})=>{let a=useContext(ot);if(!a)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...c}=a;return jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:c,children:e})};var zo=createContext(void 0);var Fe=({id:e,locked:t=false,children:n,className:a,style:o})=>{let{locked:c,classNames:u={},fullscreenPaneId:i,poppedOutTabIds:d=[]}=re(),f=useContext(we),{overTabId:s}=Ue(),b=useContext(Pe);useEffect(()=>(b?.registerTabHeader&&b.registerTabHeader(e,n),()=>{b?.registerTabHeader&&b.activeIdRef?.current!==e&&b.registerTabHeader(e,()=>null);}),[e,n,b]);let g=d.includes(e),m=useContext(yt),y=t||c||(m?.locked??false)||i!==null,{attributes:T,listeners:x,setNodeRef:L,isDragging:h}=useDraggable({id:`tab-header-${e}`,disabled:y}),{setNodeRef:H,isOver:D}=useDroppable({id:`tab-drop-${e}`,disabled:y}),O=W=>{L(W),H(W);},Z=D&&s===e,r=m?.tabIds||[],l=r.indexOf(e),v=m?.activeTabId,M=l>0&&e!==v&&r[l-1]!==v?jsx("div",{className:u.tabSeparator}):null,q=m?m.activeTabId===e:false,ne=m?.tabsMetadata?.[e],J=useCallback(()=>{m?.selectTab(e);},[m,e]),A=useCallback(()=>{m?.removeTab(e);},[m,e]),$=useMemo(()=>({tabId:e,isActive:q,isDragging:h,isOver:Z,metadata:ne,locked:y,selectTab:J,removeTab:A,isPoppedOut:g,popoutTab:()=>f?.popoutTab(e),dockTab:()=>f?.dockTab(e)}),[e,q,h,Z,ne,y,J,A,g,f]);return jsx(zo.Provider,{value:$,children:jsxs("div",{ref:O,id:`tab-header-${e}`,className:a,style:{display:"inline-flex",position:"relative",cursor:y?"default":"grab",...o},...y?{}:x,...y?{}:T,children:[M,n({isDragging:h,isOver:Z})]})})};var yt=createContext(void 0);var yn=(e,t)=>typeof e=="function"?e(t):e,Tt=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:a,selectTab:o,removeTab:c,renderTab:u,classNames:i,styles:d})=>{let f=useContext(at),s=e??f?.tabIds??[],b=t??f?.activeTabId??"",g=n??f?.locked??false,m=a??f?.tabsMetadata,y=o??f?.selectTab??(()=>{}),T=c??f?.removeTab??(()=>{}),{classNames:x={},activeType:L,poppedOutTabIds:h=[]}=re(),H=useContext(we),{overTabId:D,overTabPosition:O}=Ue(),Z=useMemo(()=>({tabIds:s,activeTabId:b,locked:g,tabsMetadata:m,selectTab:y,removeTab:T}),[s,b,g,m,y,T]),r=Wt(s,L,D,O);return jsx(yt.Provider,{value:Z,children:jsxs("div",{className:i?.container,style:{display:"flex",alignItems:"center",height:"100%",...d?.container},children:[s.map((l,v)=>{let R=m?.[l],M=yn(i?.tab,l),q=yn(d?.tab,l),ne=v===r;return jsxs(ge.Fragment,{children:[ne&&x.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:x.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:v===0?"none":"translateX(-50%)"}})}),jsx(Fe,{id:l,locked:g,className:M,style:q,children:({isDragging:J,isOver:A})=>u({id:l,paneId:f?.id??"",isActive:l===b,index:v,isDragging:J,isOver:A,metadata:R,onSelect:()=>y(l),onRemove:()=>T(l),isPoppedOut:h.includes(l),popout:()=>H?.popoutTab(l),dock:()=>H?.dockTab(l)})})]},l)}),r===s.length&&x.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:x.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};Tt.Tab=Fe;var Pn=({className:e,style:t,children:n})=>jsx("div",{className:e,style:t,children:n});var at=createContext(void 0),Rn=()=>{let e=useContext(at);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},qo=({children:e,className:t,style:n})=>{let{activeTabId:a}=Rn(),{classNames:o,isTabPoppedOut:c}=re(),{dockTab:u}=ze(),i=useRef(null),d=useContext(Pe);if(!d)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:f,registerRenderCallback:s}=d,b=useMemo(()=>typeof e=="function"?e:()=>e,[e]);s(a,b),useEffect(()=>{let m=i.current;return f(a,m),()=>{f(a,null,m);}},[a,f]);let g=c(a);return jsx("div",{ref:i,id:`zeugma-tab-target-${a}`,className:`${o.tabContentWrapper||""} ${t||""}`.trim(),style:{height:"100%",width:"100%",position:"relative",...n},children:g&&jsxs("div",{className:"zeugma-popout-placeholder",style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"12px",padding:"24px",textAlign:"center",backgroundColor:"#161719",color:"#94a3b8",fontSize:"13px",fontWeight:500},children:[jsx("div",{children:"This panel is open in a new window"}),jsx("button",{onClick:()=>u(a),style:{padding:"6px 12px",fontSize:"11px",fontWeight:600,borderRadius:"4px",backgroundColor:"#2563eb",color:"#ffffff",border:"none",cursor:"pointer",boxShadow:"0 1px 3px rgba(0,0,0,0.1)"},onMouseOver:m=>{m.currentTarget.style.backgroundColor="#1d4ed8";},onMouseOut:m=>{m.currentTarget.style.backgroundColor="#2563eb";},children:"Dock Back"})]})})},ke=({id:e,children:t,style:n,locked:a=false})=>{let{layout:o,renderingLayout:c,activeId:u,activeType:i,classNames:d,fullscreenPaneId:f,onFullscreenChange:s,locked:b,poppedOutTabIds:g=[]}=re(),{removePane:m,updateMetadata:y,selectTab:T,removeTab:x,popoutTab:L,dockTab:h}=ze(),H=useMemo(()=>{if(i==="tab"&&e===u){let k=U(o,e)?.tabsMetadata?.[e];return {type:"pane",id:e,tabIds:[e],activeTabId:e,tabsMetadata:k?{[e]:k}:void 0}}return Ht(e===u?o:c,e)},[o,c,e,u,i]),D=H?.id??e,O=H?.tabIds??[e],Z=H?.activeTabId??e,r=H?.tabsMetadata,l=r?.[e],v=H?.locked??false,R=a||v,M=b||R||f!==null,q=b||R||f!==null,ne=u!==null&&u!==e&&(!O.includes(u)||O.length>1)&&!q,{attributes:J,listeners:A,setNodeRef:$}=useDraggable({id:e,disabled:M}),W=u!==null&&O.includes(u),F=f===e,B=useMemo(()=>({isDragging:W,isFullscreen:F,toggleFullscreen:()=>s?.(F?null:e),remove:()=>{F&&s?.(null),m(D);},metadata:l,updateMetadata:z=>{y(e,z);},locked:M,tabIds:O,activeTabId:Z,selectTab:z=>T(D,z),removeTab:z=>{F&&z===Z&&s?.(null),x(z);},tabsMetadata:r,updateTabMetadata:(z,C)=>{y(z,C);},isActiveTabPoppedOut:g.includes(Z),popoutTab:z=>L(z||Z),dockTab:z=>h(z||Z)}),[W,F,s,e,x,l,y,M,O,Z,T,D,r,g,L,h]),N=useMemo(()=>M?{disabled:true}:{...A,...J},[A,J,M]),P=`${d.pane||""} ${R&&d.paneLocked||""}`.trim();return jsx(at.Provider,{value:{id:e,...B},children:jsx(ot.Provider,{value:N,children:jsxs("div",{ref:$,id:e,className:P,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,ne&&jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:[["top","bottom","left","right"].map(z=>jsx(rt,{id:`drop-${z}-${e}`,position:z,activeClassName:d.dropPreview},z)),i==="tab"&&jsx(rt,{id:`drop-center-${e}`,position:"center",activeClassName:d.swapPreview??d.dropPreview})]}),u!==null&&u!==e&&q&&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:d.lockedPreview||""})})]})})})};ke.Content=qo;ke.DragHandle=gn;ke.Tabs=Tt;ke.Tab=Fe;ke.Controls=Pn;export{ke as Pane,vt as PaneTree,go as Zeugma,Rn as usePaneContext,bt as useResizer,Hn as useZeugma,$n as useZeugmaContext};//# sourceMappingURL=index.js.map
|
|
11
12
|
//# sourceMappingURL=index.js.map
|