react-zeugma 6.9.4 → 6.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,15 +1,16 @@
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
- import React from 'react';
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-DQICRtw1.cjs';
2
+ export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-DQICRtw1.cjs';
3
+ import React__default from 'react';
4
+ export { R as RenderCounterBadge, a as RenderCounterBadgeProps, b as RenderCounterFooter, c as RenderCounterFooterProps, d as RenderCounterOptions, e as RenderCounterState, u as useRenderCounter } from './render-counter-footer-CYe6-Atc.cjs';
4
5
 
5
6
  declare function useZeugma(options: UseZeugmaOptions): ZeugmaController;
6
7
 
7
8
  declare const useZeugmaContext: () => ZeugmaController;
8
9
 
9
- declare const Zeugma: React.FC<ZeugmaProps>;
10
+ declare const Zeugma: React__default.FC<ZeugmaProps>;
10
11
 
11
12
  interface UseResizerProps {
12
- containerRef: React.RefObject<HTMLDivElement | null>;
13
+ containerRef: React__default.RefObject<HTMLDivElement | null>;
13
14
  isRow: boolean;
14
15
  direction: SplitDirection;
15
16
  splitPercentage: number;
@@ -25,11 +26,11 @@ interface UseResizerProps {
25
26
  parentWidth: number;
26
27
  parentHeight: number;
27
28
  }
28
- declare function useResizer({ containerRef, isRow, direction, splitPercentage, resizerSize, snapThreshold, layout, currentNode, onLayoutChange, onResizeStart: localOnResizeStart, onResizeEnd: localOnResizeEnd, parentLeft, parentTop, parentWidth, parentHeight, }: UseResizerProps): (e: React.PointerEvent<HTMLDivElement>) => void;
29
+ declare function useResizer({ containerRef, isRow, direction, splitPercentage, resizerSize, snapThreshold, layout, currentNode, onLayoutChange, onResizeStart: localOnResizeStart, onResizeEnd: localOnResizeEnd, parentLeft, parentTop, parentWidth, parentHeight, }: UseResizerProps): (e: React__default.PointerEvent<HTMLDivElement>) => void;
29
30
 
30
31
  interface PaneTreeProps {
31
32
  /** Render function mapping unique pane nodes to React elements. Usually renders a <Pane> wrapper. */
32
- renderPane: (paneId: string) => React.ReactNode;
33
+ renderPane: (paneId: string) => React__default.ReactNode;
33
34
  /** The layout subtree node to render. If not specified, defaults to the root layout tree from the Zeugma context. */
34
35
  tree?: TreeNode | null;
35
36
  /** Size/thickness of the split handle resizer bars in pixels (default 4). */
@@ -37,7 +38,7 @@ interface PaneTreeProps {
37
38
  /** Threshold distance in pixels to snap layout resizers to adjacent edges (default 8). */
38
39
  snapThreshold?: number;
39
40
  }
40
- declare const PaneTree: React.FC<PaneTreeProps>;
41
+ declare const PaneTree: React__default.FC<PaneTreeProps>;
41
42
 
42
43
  interface BaseLeafRenderProps {
43
44
  /** True if the leaf is actively being dragged. */
@@ -78,13 +79,13 @@ interface PaneRenderProps extends BaseLeafRenderProps {
78
79
 
79
80
  interface DragHandleProps {
80
81
  /** The children elements that will trigger dragging when held and dragged. */
81
- children?: React.ReactNode;
82
+ children?: React__default.ReactNode;
82
83
  /** Custom CSS class applied to the drag handle element. */
83
84
  className?: string;
84
85
  /** Optional inline CSS styles applied to the drag handle. */
85
- style?: React.CSSProperties;
86
+ style?: React__default.CSSProperties;
86
87
  }
87
- declare const DragHandle: React.FC<DragHandleProps>;
88
+ declare const DragHandle: React__default.FC<DragHandleProps>;
88
89
 
89
90
  interface TabRenderProps {
90
91
  isDragging: boolean;
@@ -96,13 +97,13 @@ interface TabProps {
96
97
  /** Whether dragging is locked on this tab. */
97
98
  locked?: boolean;
98
99
  /** Render prop child function. */
99
- children: (props: TabRenderProps) => React.ReactNode;
100
+ children: (props: TabRenderProps) => React__default.ReactNode;
100
101
  /** Custom CSS class applied to the tab wrapper. */
101
102
  className?: string;
102
103
  /** Custom inline CSS style applied to the tab wrapper. */
103
- style?: React.CSSProperties;
104
+ style?: React__default.CSSProperties;
104
105
  }
105
- declare const Tab: React.FC<TabProps>;
106
+ declare const Tab: React__default.FC<TabProps>;
106
107
 
107
108
  interface TabsProps {
108
109
  /** The list of tab IDs in this pane. */
@@ -118,7 +119,7 @@ interface TabsProps {
118
119
  /** Callback when a tab is closed/removed. */
119
120
  removeTab?: (id: string) => void;
120
121
  /** Render function for each individual tab content. */
121
- renderTab: (props: RenderTabProps) => React.ReactNode;
122
+ renderTab: (props: RenderTabProps) => React__default.ReactNode;
122
123
  /** Custom CSS classes for Tabs container and tab wrappers. */
123
124
  classNames?: {
124
125
  container?: string;
@@ -126,11 +127,11 @@ interface TabsProps {
126
127
  };
127
128
  /** Custom inline CSS styles for Tabs container and tab wrappers. */
128
129
  styles?: {
129
- container?: React.CSSProperties;
130
- tab?: React.CSSProperties | ((tabId: string) => React.CSSProperties);
130
+ container?: React__default.CSSProperties;
131
+ tab?: React__default.CSSProperties | ((tabId: string) => React__default.CSSProperties);
131
132
  };
132
133
  }
133
- declare const Tabs: React.FC<TabsProps> & {
134
+ declare const Tabs: React__default.FC<TabsProps> & {
134
135
  Tab: typeof Tab;
135
136
  };
136
137
 
@@ -138,11 +139,11 @@ interface PaneControlsProps {
138
139
  /** Custom CSS class applied to the controls container. */
139
140
  className?: string;
140
141
  /** Custom inline CSS style applied to the controls container. */
141
- style?: React.CSSProperties;
142
+ style?: React__default.CSSProperties;
142
143
  /** The children elements (e.g. close and fullscreen buttons) to render inside the controls container. */
143
- children?: React.ReactNode;
144
+ children?: React__default.ReactNode;
144
145
  }
145
- declare const PaneControls: React.FC<PaneControlsProps>;
146
+ declare const PaneControls: React__default.FC<PaneControlsProps>;
146
147
 
147
148
  interface PaneContextValue extends PaneRenderProps {
148
149
  id: string;
@@ -150,24 +151,24 @@ interface PaneContextValue extends PaneRenderProps {
150
151
  declare const usePaneContext: () => PaneContextValue;
151
152
  interface PaneContentProps {
152
153
  /** A render callback (tab) => ReactNode or static ReactNode content to render for the active tab. */
153
- children?: React.ReactNode | ((tab: TabDetails) => React.ReactNode);
154
+ children?: React__default.ReactNode | ((tab: TabDetails) => React__default.ReactNode);
154
155
  /** Custom CSS class applied to the tab content wrapper. */
155
156
  className?: string;
156
157
  /** Custom inline CSS style applied to the tab content wrapper. */
157
- style?: React.CSSProperties;
158
+ style?: React__default.CSSProperties;
158
159
  }
159
- declare const PaneContent: React.FC<PaneContentProps>;
160
+ declare const PaneContent: React__default.FC<PaneContentProps>;
160
161
  interface PaneProps {
161
162
  /** The unique ID of the pane, matching a `paneId` in the layout tree schema. */
162
163
  id: string;
163
164
  /** The children elements inside the pane (e.g. headers, tabs, content). */
164
- children: React.ReactNode;
165
+ children: React__default.ReactNode;
165
166
  /** Optional inline CSS styles applied to the pane outer container. */
166
- style?: React.CSSProperties;
167
+ style?: React__default.CSSProperties;
167
168
  /** Optional override to lock this specific pane. */
168
169
  locked?: boolean;
169
170
  }
170
- declare const Pane: React.FC<PaneProps> & {
171
+ declare const Pane: React__default.FC<PaneProps> & {
171
172
  Content: typeof PaneContent;
172
173
  DragHandle: typeof DragHandle;
173
174
  Tabs: typeof Tabs;
package/dist/index.d.ts CHANGED
@@ -1,15 +1,16 @@
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
- import React from 'react';
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-DQICRtw1.js';
2
+ export { D as DragOverlayActiveItem, P as PaneNode, d as ZeugmaClassNames } from './types-DQICRtw1.js';
3
+ import React__default from 'react';
4
+ export { R as RenderCounterBadge, a as RenderCounterBadgeProps, b as RenderCounterFooter, c as RenderCounterFooterProps, d as RenderCounterOptions, e as RenderCounterState, u as useRenderCounter } from './render-counter-footer-CYe6-Atc.js';
4
5
 
5
6
  declare function useZeugma(options: UseZeugmaOptions): ZeugmaController;
6
7
 
7
8
  declare const useZeugmaContext: () => ZeugmaController;
8
9
 
9
- declare const Zeugma: React.FC<ZeugmaProps>;
10
+ declare const Zeugma: React__default.FC<ZeugmaProps>;
10
11
 
11
12
  interface UseResizerProps {
12
- containerRef: React.RefObject<HTMLDivElement | null>;
13
+ containerRef: React__default.RefObject<HTMLDivElement | null>;
13
14
  isRow: boolean;
14
15
  direction: SplitDirection;
15
16
  splitPercentage: number;
@@ -25,11 +26,11 @@ interface UseResizerProps {
25
26
  parentWidth: number;
26
27
  parentHeight: number;
27
28
  }
28
- declare function useResizer({ containerRef, isRow, direction, splitPercentage, resizerSize, snapThreshold, layout, currentNode, onLayoutChange, onResizeStart: localOnResizeStart, onResizeEnd: localOnResizeEnd, parentLeft, parentTop, parentWidth, parentHeight, }: UseResizerProps): (e: React.PointerEvent<HTMLDivElement>) => void;
29
+ declare function useResizer({ containerRef, isRow, direction, splitPercentage, resizerSize, snapThreshold, layout, currentNode, onLayoutChange, onResizeStart: localOnResizeStart, onResizeEnd: localOnResizeEnd, parentLeft, parentTop, parentWidth, parentHeight, }: UseResizerProps): (e: React__default.PointerEvent<HTMLDivElement>) => void;
29
30
 
30
31
  interface PaneTreeProps {
31
32
  /** Render function mapping unique pane nodes to React elements. Usually renders a <Pane> wrapper. */
32
- renderPane: (paneId: string) => React.ReactNode;
33
+ renderPane: (paneId: string) => React__default.ReactNode;
33
34
  /** The layout subtree node to render. If not specified, defaults to the root layout tree from the Zeugma context. */
34
35
  tree?: TreeNode | null;
35
36
  /** Size/thickness of the split handle resizer bars in pixels (default 4). */
@@ -37,7 +38,7 @@ interface PaneTreeProps {
37
38
  /** Threshold distance in pixels to snap layout resizers to adjacent edges (default 8). */
38
39
  snapThreshold?: number;
39
40
  }
40
- declare const PaneTree: React.FC<PaneTreeProps>;
41
+ declare const PaneTree: React__default.FC<PaneTreeProps>;
41
42
 
42
43
  interface BaseLeafRenderProps {
43
44
  /** True if the leaf is actively being dragged. */
@@ -78,13 +79,13 @@ interface PaneRenderProps extends BaseLeafRenderProps {
78
79
 
79
80
  interface DragHandleProps {
80
81
  /** The children elements that will trigger dragging when held and dragged. */
81
- children?: React.ReactNode;
82
+ children?: React__default.ReactNode;
82
83
  /** Custom CSS class applied to the drag handle element. */
83
84
  className?: string;
84
85
  /** Optional inline CSS styles applied to the drag handle. */
85
- style?: React.CSSProperties;
86
+ style?: React__default.CSSProperties;
86
87
  }
87
- declare const DragHandle: React.FC<DragHandleProps>;
88
+ declare const DragHandle: React__default.FC<DragHandleProps>;
88
89
 
89
90
  interface TabRenderProps {
90
91
  isDragging: boolean;
@@ -96,13 +97,13 @@ interface TabProps {
96
97
  /** Whether dragging is locked on this tab. */
97
98
  locked?: boolean;
98
99
  /** Render prop child function. */
99
- children: (props: TabRenderProps) => React.ReactNode;
100
+ children: (props: TabRenderProps) => React__default.ReactNode;
100
101
  /** Custom CSS class applied to the tab wrapper. */
101
102
  className?: string;
102
103
  /** Custom inline CSS style applied to the tab wrapper. */
103
- style?: React.CSSProperties;
104
+ style?: React__default.CSSProperties;
104
105
  }
105
- declare const Tab: React.FC<TabProps>;
106
+ declare const Tab: React__default.FC<TabProps>;
106
107
 
107
108
  interface TabsProps {
108
109
  /** The list of tab IDs in this pane. */
@@ -118,7 +119,7 @@ interface TabsProps {
118
119
  /** Callback when a tab is closed/removed. */
119
120
  removeTab?: (id: string) => void;
120
121
  /** Render function for each individual tab content. */
121
- renderTab: (props: RenderTabProps) => React.ReactNode;
122
+ renderTab: (props: RenderTabProps) => React__default.ReactNode;
122
123
  /** Custom CSS classes for Tabs container and tab wrappers. */
123
124
  classNames?: {
124
125
  container?: string;
@@ -126,11 +127,11 @@ interface TabsProps {
126
127
  };
127
128
  /** Custom inline CSS styles for Tabs container and tab wrappers. */
128
129
  styles?: {
129
- container?: React.CSSProperties;
130
- tab?: React.CSSProperties | ((tabId: string) => React.CSSProperties);
130
+ container?: React__default.CSSProperties;
131
+ tab?: React__default.CSSProperties | ((tabId: string) => React__default.CSSProperties);
131
132
  };
132
133
  }
133
- declare const Tabs: React.FC<TabsProps> & {
134
+ declare const Tabs: React__default.FC<TabsProps> & {
134
135
  Tab: typeof Tab;
135
136
  };
136
137
 
@@ -138,11 +139,11 @@ interface PaneControlsProps {
138
139
  /** Custom CSS class applied to the controls container. */
139
140
  className?: string;
140
141
  /** Custom inline CSS style applied to the controls container. */
141
- style?: React.CSSProperties;
142
+ style?: React__default.CSSProperties;
142
143
  /** The children elements (e.g. close and fullscreen buttons) to render inside the controls container. */
143
- children?: React.ReactNode;
144
+ children?: React__default.ReactNode;
144
145
  }
145
- declare const PaneControls: React.FC<PaneControlsProps>;
146
+ declare const PaneControls: React__default.FC<PaneControlsProps>;
146
147
 
147
148
  interface PaneContextValue extends PaneRenderProps {
148
149
  id: string;
@@ -150,24 +151,24 @@ interface PaneContextValue extends PaneRenderProps {
150
151
  declare const usePaneContext: () => PaneContextValue;
151
152
  interface PaneContentProps {
152
153
  /** A render callback (tab) => ReactNode or static ReactNode content to render for the active tab. */
153
- children?: React.ReactNode | ((tab: TabDetails) => React.ReactNode);
154
+ children?: React__default.ReactNode | ((tab: TabDetails) => React__default.ReactNode);
154
155
  /** Custom CSS class applied to the tab content wrapper. */
155
156
  className?: string;
156
157
  /** Custom inline CSS style applied to the tab content wrapper. */
157
- style?: React.CSSProperties;
158
+ style?: React__default.CSSProperties;
158
159
  }
159
- declare const PaneContent: React.FC<PaneContentProps>;
160
+ declare const PaneContent: React__default.FC<PaneContentProps>;
160
161
  interface PaneProps {
161
162
  /** The unique ID of the pane, matching a `paneId` in the layout tree schema. */
162
163
  id: string;
163
164
  /** The children elements inside the pane (e.g. headers, tabs, content). */
164
- children: React.ReactNode;
165
+ children: React__default.ReactNode;
165
166
  /** Optional inline CSS styles applied to the pane outer container. */
166
- style?: React.CSSProperties;
167
+ style?: React__default.CSSProperties;
167
168
  /** Optional override to lock this specific pane. */
168
169
  locked?: boolean;
169
170
  }
170
- declare const Pane: React.FC<PaneProps> & {
171
+ declare const Pane: React__default.FC<PaneProps> & {
171
172
  Content: typeof PaneContent;
172
173
  DragHandle: typeof DragHandle;
173
174
  Tabs: typeof Tabs;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
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 It({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=`
1
+ import ge,{createContext,useState,useRef,useEffect,useCallback,useMemo,useContext,useId}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 Zt({cursor:e,resizerEl:t,onMove:n,onEnd:r}){document.body.classList.add("zeugma-resizing");let o=document.createElement("style");o.id="zeugma-global-cursor-style",o.textContent=`
2
2
  * {
3
3
  cursor: ${e} !important;
4
4
  user-select: none !important;
@@ -6,7 +6,7 @@ import ge,{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 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 pt=createContext(void 0),we=createContext(void 0),Pe=createContext(void 0),ft=createContext(void 0),re=()=>{let e=useContext(pt);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(ft);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function Mt(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 kt(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function Ot(){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((P,D,L)=>{d.current&&t(v=>{if(!D){if(L&&v[P]!==L||!v[P])return v;let $={...v};return delete $[P],$}return v[P]===D?v:{...v,[P]:D}});},[]),s=useCallback((P,D)=>{d.current&&a(L=>{if(!D){if(!L[P])return L;let v={...L};return delete v[P],v}return L[P]===D?L:{...L,[P]:D}});},[]),b=useCallback((P,D)=>{o.current[P]=D;},[]),g=useCallback(P=>{c.current=P;},[]),m=useCallback((P,D)=>{u.current[P]=D;},[]);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 At(e){return useMemo(()=>An(e),[e])}function zt(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 Ht(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 $t(e,t){return te(e,t)??U(e,t)}function Qe(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 P=g.indexOf(t),D=g.indexOf(n);P!==-1&&D!==-1&&(g[P]=n,g[D]=t),m=t,b=true;}}else s.id===c&&(g=g.map(P=>P===t?n:P),m===t&&(m=n),delete y[t],d&&(y[n]=d),b=true),s.id===u&&(g=g.map(P=>P===n?t:P),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(P=>!c.includes(P)),m=g.indexOf(n);m<0&&(m=0),a==="after"&&(m+=1),g.splice(m,0,...c);let y={...s.tabsMetadata};for(let P of c)i[P]&&(y[P]=i[P]);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),[P,D]=useState(u),[L,v]=useState([]),[$,E]=useState(null),[O,Z]=useState(null),[r,l]=useState(null),h=useRef(null),R=useCallback(p=>{h.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(()=>{D(u);},[u]),useEffect(()=>{o!==void 0&&y(o);},[o]),n!==void 0){let p=Ae(n);p!==b&&(g(p),d(n),s(n),v(T=>{if(T.length===0)return T;let x=T.filter(H=>Qe(n,H)!==null);return x.length===T.length?T:x}));}let A=useCallback(p=>(...T)=>{let x=M.current,H=p(x,...T);Ae(x)!==Ae(H)&&(M.current=H,d(H),s(H),v(F=>{if(F.length===0)return F;let ie=F.filter(W=>Qe(H,W)!==null);return ie.length===F.length?F:ie}),q.current?.(H));},[]),_=useCallback(A((p,T)=>typeof T=="function"?T(p):T),[A]),j=useCallback(p=>{s(T=>typeof p=="function"?p(T):p);},[]),V=useCallback(p=>{y(null),ne.current?.(null),E(null),Z(null),l(null),_(p),s(()=>typeof p=="function"?p(M.current):p);},[_]),B=useCallback(A((p,T)=>be(p,T)),[A]),N=useCallback(A((p,T,x,H)=>{let F=fe(p,T)??p;return Ht(F,x,T,H)}),[A]),w=useCallback(A((p,T,x,H,F)=>{let ie=te(p,T)??U(p,T);if(!ie)return p;let W=te(p,F)??U(p,F)??{type:"pane",id:F,tabIds:[F],activeTabId:F},Te=be(p,W.id);return Se(Te,ie.id,x,H,W)}),[A]),z=useCallback(A((p,T,x)=>xe(p,T,x)),[A]),C=useCallback(A((p,T,x)=>Je(p,T,x)),[A]),k=useCallback(A((p,T,x)=>{let H=te(p,T)??U(p,T);return H?Ge(p,H.id,x):p}),[A]),ue=useCallback(A((p,T,x)=>{let H=te(p,T)??U(p,T);return H?Ne(p,H.id,x):p}),[A]),Q=useCallback(A((p,T,x)=>{let H=te(p,x)??U(p,x);return H?Ft(p,T,H.id):p}),[A]),K=useCallback(A((p,T,x,H)=>Ze(p,T,x,H)),[A]),Y=useCallback(A((p,T)=>fe(p,T)),[A]),ee=useCallback(p=>te(M.current,p),[]),S=useCallback(p=>U(M.current,p),[]),I=useCallback(p=>Qe(M.current,p),[]),se=useCallback(p=>_t(M.current,p),[]),le=useCallback(p=>Bt(M.current,p),[]),G=useCallback(p=>{v(T=>T.includes(p)?T:[...T,p]);},[]),oe=useCallback(p=>{v(T=>T.includes(p)?T.filter(x=>x!==p):T);},[]);return {layout:i,setLayout:V,_internalSetLayout:j,renderingLayout:f,fullscreenPaneId:m,setFullscreenPaneId:J,locked:P,setLocked:D,poppedOutTabIds:L,activeId:$,setActiveId:E,activeType:O,setActiveType:Z,dismissIntentId:r,setDismissIntentId:l,containerRef:h,setContainerRef:R,removePane:B,addTab:N,updateMetadata:C,updatePaneLock:k,selectTab:ue,mergeTab:Q,moveTab:K,removeTab:Y,splitPane:w,updateSplitPercentage:z,popoutTab:G,dockTab:oe,findPaneById:ee,findPaneContainingTab:S,findTabById:I,getTabMetadata:se,getActiveTabMetadata:le}}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 et=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},tt=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:P,onRemove:D,onDragStart:L,onDragEnd:v,onDismissIntentChange:$,removeTab:E,removePane:O}=e,Z=useRef(null),r=Mt(o),l=useRef(null),[h,R]=useState(false);return kt(h),{sensors:useSensors(useSensor(et,{activationConstraint:{distance:m}}),useSensor(tt,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:qt,onDragStart:_=>{let j=_.active.id.toString(),V=j.startsWith("tab-header-"),B=V?j.substring(11):j;c(B),i(V?"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 w=t;if(V){let C=U(t,B);C&&(w=Ne(t,C.id,B)||t);}l.current=w;let z=V?fe(w,B):be(w,B);n(z),L&&L(B);},onDragMove:_=>{let{over:j}=_,V=j?.id.toString()||"",B=V.startsWith("drop-locked-");R(S=>S===B?S:B);let N=_.active.id.toString(),w=N.startsWith("tab-header-"),z=w?N.substring(11):N,C=V.match(/^tab-drop-(.+)$/);if(C&&j&&(w||u==="pane")){let[,S]=C;if(z!==S){let I="before",se=j.rect,le=_.activatorEvent,G=null;if(r.current)G=r.current.x;else {let oe=He(le);oe&&(G=oe.x+_.delta.x);}if(G!==null){let oe=se.left+se.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),$?.(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,se=S.top+S.height/2,le=0,G=0;I<k.left?le=k.left-I:I>k.right&&(le=I-k.right),se<k.top?G=k.top-se:se>k.bottom&&(G=se-k.bottom),Y=Math.sqrt(le*le+G*G);}}Y>P?d!==z&&(f(z),$?.(z)):d!==null&&(f(null),$?.(null));},onDragEnd:_=>{c(null),i(null),R(false),s(null),b(null);let{active:j,over:V}=_,B=j.id.toString(),N=B.startsWith("tab-header-"),w=N?B.substring(11):B,z=y&&d===w;f(null),$?.(null),Z.current=null;let C=l.current||t;if(l.current=null,z){D?D(w):N?E(w):O(w),v&&v(w,null,null);return}if(!V){n(C),v&&v(w,null,null);return}let k=V.id.toString();if(k.startsWith("drop-locked-")){n(C),v&&v(w,null,null);return}let ue=k.match(/^tab-drop-(.+)$/);if(ue){let[,p]=ue;if(N)if(w!==p){let T="before",x=V.rect,H=_.activatorEvent,F=null;if(r.current)F=r.current.x;else {let W=He(H);W&&(F=W.x+_.delta.x);}if(F!==null){let W=x.left+x.width/2;F>W&&(T="after");}let ie=Ze(C,w,p,T);a(ie),v&&v(w,p,{type:"move",position:"center"});}else n(C),v&&v(w,null,null);else {let T="before",x=V.rect,H=_.activatorEvent,F=null;if(r.current)F=r.current.x;else {let W=He(H);W&&(F=W.x+_.delta.x);}if(F!==null){let W=x.left+x.width/2;F>W&&(T="after");}let ie=Vt(C,w,p,T);a(ie),v&&v(w,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,T]=Q,x=T;x==="start"&&(x="left"),x==="end"&&(x="right");let H=N?fe(C,w):be(C,w),F;if(N){let W=U(C,w)?.tabsMetadata?.[w];F={type:"pane",id:pe(),tabIds:[w],activeTabId:w,tabsMetadata:W?{[w]:W}:void 0};}else F=te(C,w)??{type:"pane",id:pe(),tabIds:[w],activeTabId:w};if(H===null)a(F);else {let ie=x==="left"||x==="right",W=x==="left"||x==="top",Te=50;p==="1/4"?Te=W?25:75:p==="1/3"&&(Te=W?100/3:200/3),a({type:"split",direction:ie?"row":"column",first:W?F:H,second:W?H:F,splitPercentage:Te});}v&&v(w,"root",{type:"split",direction:x==="left"||x==="right"?"row":"column",position:x});return}let K=k.match(/^drop-(left|right|top|bottom|center)-(.+)$/);if(!K){n(C),v&&v(w,null,null);return}let[,Y,ee]=K;if(Y==="center"){if(N){let p=te(C,ee);if(p&&p.activeTabId){let T=p.activeTabId,x=Ze(C,w,T,"center");a(x),v&&v(w,ee,{type:"move",position:"center"});}else n(C),v&&v(w,null,null);}else n(C),v&&v(w,null,null);return}let S=N?U(C,w):te(C,w),I=S&&S.id===ee,se=S&&S.tabIds.length===1;if(w===ee||I&&se){n(C),v&&v(w,null,null);return}let le=Y==="left"||Y==="right"?"row":"column",G;if(N){let T=U(C,w)?.tabsMetadata?.[w];G={type:"pane",id:pe(),tabIds:[w],activeTabId:w,tabsMetadata:T?{[w]:T}:void 0};}else G=te(C,w)??{type:"pane",id:pe(),tabIds:[w],activeTabId:w};let oe=N?fe(C,w):be(C,w),Oe=Se(oe,ee,le,Y,G);a(Oe),v&&v(w,ee,{type:"split",direction:le,position:Y});},onDragCancel:()=>{c(null),i(null),R(false),s(null),b(null),f(null),$?.(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 mt(){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 gt(){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 h=Object.getPrototypeOf(r);for(;h;){if(h===l)return !0;h=Object.getPrototypeOf(h);}}catch{}return false},t=(r,l)=>{try{Object.defineProperty(r,Symbol.hasInstance,{value:function(h){return h?e(h,r.prototype)?!0:l(h):!1},configurable:!0,writable:!0});}catch(h){console.warn("Failed to patch Symbol.hasInstance on",r,h);}};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 h=b[r];return h?h.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 P=document.createElement;document.createElement=function(r,l){let h=me();return h&&h!==document?h.createElement(r,l):P.call(document,r,l)};let D=document.addEventListener;document.addEventListener=function(r,l,h){De.add({target:"document",type:r,listener:l,options:h}),D.call(document,r,l,h),ae.forEach(R=>{try{R.addEventListener(r,l,h);}catch{}});};let L=document.removeEventListener;document.removeEventListener=function(r,l,h){for(let R of De)if(R.target==="document"&&R.type===r&&R.listener===l){De.delete(R);break}L.call(document,r,l,h),ae.forEach(R=>{try{R.removeEventListener(r,l,h);}catch{}});};let v=window.addEventListener;window.addEventListener=function(r,l,h){De.add({target:"window",type:r,listener:l,options:h}),v.call(window,r,l,h),ae.forEach(R=>{try{R.defaultView&&R.defaultView.addEventListener(r,l,h);}catch{}});};let $=window.removeEventListener;window.removeEventListener=function(r,l,h){for(let R of De)if(R.target==="window"&&R.type===r&&R.listener===l){De.delete(R);break}$.call(window,r,l,h),ae.forEach(R=>{try{R.defaultView&&R.defaultView.removeEventListener(r,l,h);}catch{}});};let E=document.getElementById;document.getElementById=function(r){let l=me();if(l&&l!==document)return l.getElementById(r);let h=E.call(document,r);if(h)return h;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 h=O.call(document,r);if(h)return h;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 h=Z.call(document,r);if(h.length>0)return h;for(let R of ae)try{let M=R.querySelectorAll(r);if(M.length>0)return M}catch{}return h};}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 h=l.cloneNode(true);if(l.tagName.toLowerCase()==="link"){let R=l.href;R&&h.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
- `);h.textContent=M;}}catch{}s.document.head.appendChild(h);}),typeof document.adoptedStyleSheets<"u"&&typeof s.document.adoptedStyleSheets<"u")try{let l=Array.from(document.adoptedStyleSheets).map(h=>{try{let R=new s.CSSStyleSheet,M=Array.from(h.cssRules).map(q=>q.cssText).join(`
11
- `);return R.replaceSync(M),R}catch{return null}}).filter(h=>h!==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),P=y.backgroundColor,L=!P||P==="transparent"||P==="rgba(0, 0, 0, 0)"?m.backgroundColor:P,v=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=v,s.document.body.style.backgroundColor=v),s.document.body.style.color=y.color||m.color,s.document.body.style.fontFamily=y.fontFamily||m.fontFamily;let E=s.document.createElement("div");E.id=`zeugma-popout-container-${i}`,E.className="grafana-panel h-full w-full overflow-hidden",E.style.width="100%",E.style.height="100%",E.style.border="none",s.document.body.appendChild(E),n?.(i,E);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&&(mt(),gt()),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&&(mt(),gt());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&&(mt(),gt());},[]);}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&&d.adoptNode(i.current),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 vt({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:P,onResize:D,onResizeEnd:L,minSplitPercentage:v=5,maxSplitPercentage:$=95,locked:E=false}=re();return useCallback(O=>{if(E)return;O.preventDefault();let Z=e.current;if(!Z)return;f&&f(),P&&P(i);let r=Z.getBoundingClientRect(),l=O.clientX,h=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),j=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}),V=R;It({cursor:t?"col-resize":"row-resize",resizerEl:M,onMove:B=>{let N=t?(B.clientX-l)/J*100:(B.clientY-h)/A*100,w=R+N,z=t?q+(J-o)*(w/100)+o/2:ne+(A-o)*(w/100)+o/2,C=1/0,k=null;for(let Y of j){let ee=Math.abs(z-Y);ee<c&&ee<C&&(C=ee,k=Y);}let ue=w;k!==null&&(ue=t?(k-o/2-q)/(J-o)*100:(k-o/2-ne)/(A-o)*100);let Q=Math.max(v,Math.min($,ue));V=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}%`);}}D&&D(i,Q);},onEnd:()=>{let B=xe(u,i,V),N=e.current;if(N){let{panes:w,splitters:z}=ve(B);for(let C of w)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,V);}});},[e,t,n,a,o,c,u,i,d,f,s,P,D,L,v,$,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:P,parentLeft:D,parentTop:L,parentWidth:v,parentHeight:$}=e,E=b==="row",O=vt({containerRef:a,isRow:E,direction:b,splitPercentage:s.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:s,onLayoutChange:c,onResizeStart:()=>f(true),onResizeEnd:()=>f(false),parentLeft:D,parentTop:L,parentWidth:v,parentHeight:$}),Z=E?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${g}%) - ${t/2}px)`,top:`calc(${m}% + ${t/2}px)`,width:`${t}px`,height:`calc(${P}% - ${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 ht=({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,P=t!==void 0?t:o,D=useRef(null),{panes:L,splitters:v}=useMemo(()=>P?ve(P):{panes:[],splitters:[]},[P]);if(!P&&t!==void 0)return null;let $=()=>jsxs(Fragment,{children:[L.map(E=>{let O=d===E.paneId;return jsx("div",{style:{position:"absolute",left:O?"0%":`var(--pane-left-${E.paneId}, ${E.left}%)`,top:O?"0%":`var(--pane-top-${E.paneId}, ${E.top}%)`,width:O?"100%":`var(--pane-width-${E.paneId}, ${E.width}%)`,height:O?"100%":`var(--pane-height-${E.paneId}, ${E.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:E.paneId,renderPane:e})},E.paneId)}),!d&&v.map(E=>jsx(ln,{splitter:E,resizerSize:y,snapThreshold:m,containerRef:D},E.id))]});if(t===void 0){let E=c!==null&&c===u,O=r=>{i(r),D.current=r;},Z=`${b.dashboard||""} ${E&&b.dashboardDismissActive||""} ${s&&b.dashboardLocked||""}`.trim();return jsxs("div",{ref:O,className:Z,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[$(),c!==null&&!s&&jsx(pn,{activeClassName:b.rootDropPreview??b.dropPreview})]})}return jsx("div",{ref:D,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:$()})};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:P,onResizeStart:D,onResize:L,onResizeEnd:v,onDismissIntentChange:$,persist:E=false,renderPopoutWrapper:O}=e,Z=t,{layout:r,setLayout:l,_internalSetLayout:h,renderingLayout:R,fullscreenPaneId:M,setFullscreenPaneId:q,locked:ne,setLocked:J,findPaneById:A,findPaneContainingTab:_,findTabById:j,getTabMetadata:V,getActiveTabMetadata:B,activeId:N,setActiveId:w,activeType:z,setActiveType:C,dismissIntentId:k,setDismissIntentId:ue,containerRef:Q,setContainerRef:K,removePane:Y,addTab:ee,updateMetadata:S,updatePaneLock:I,selectTab:se,mergeTab:le,removeTab:G,splitPane:oe,updateSplitPercentage:Oe,moveTab:p,poppedOutTabIds:T=[],popoutTab:x,dockTab:H}=Z;Gt({persist:E,layout:r,setLayout:l});let{portalTargets:F,registerPortalTarget:ie,registerPopoutTarget:W,registerRenderCallback:Te,renderCallbacksRef:Ve,registerRenderPane:Rt,renderPaneRef:lt,registerTabHeader:xt,tabHeadersRef:ct,activeIdRef:We}=Ot();nn({poppedOutTabIds:T,registerPopoutTarget:W,findTabById:j,dockTab:H});let Dt=useCallback(de=>T.includes(de),[T]),{overTabId:Et,setOverTabId:xn,overTabPosition:Ct,setOverTabPosition:Dn,handleDragStartInternal:En,handleDragEndInternal:Cn}=zt({onDragStart:y,onDragEnd:P}),Sn=Yt({layout:r,_internalSetLayout:h,setLayout:l,activeId:N,setActiveId:w,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:$,removeTab:G,removePane:Y}),ut=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]),St=useCallback((de,je)=>{v&&v(de,je);},[v]),Nn=useMemo(()=>({layout:r,renderingLayout:R,setLayout:l,activeId:N,activeType:z,dismissIntentId:k,setContainerRef:K,fullscreenPaneId:M,classNames:ut,onRemove:m,onFullscreenChange:q,snapThreshold:d,onResizeStart:D,onResize:L,onResizeEnd:St,minSplitPercentage:f,maxSplitPercentage:s,locked:ne,setLocked:J,findPaneById:A,findPaneContainingTab:_,findTabById:j,getTabMetadata:V,getActiveTabMetadata:B,renderPane:c,resizerSize:u,poppedOutTabIds:T,isTabPoppedOut:Dt,renderPopoutWrapper:O}),[r,R,N,z,k,K,M,ut,m,q,d,D,L,f,s,l,St,ne,J,A,_,j,V,B,c,u,T,Dt,O]),In=useMemo(()=>({overTabId:Et,overTabPosition:Ct}),[Et,Ct]),Ln=useMemo(()=>({removePane:Y,addTab:ee,updateMetadata:S,updatePaneLock:I,selectTab:se,mergeTab:le,removeTab:G,setFullscreenPaneId:q,setLocked:J,splitPane:oe,updateSplitPercentage:Oe,moveTab:p,popoutTab:x,dockTab:H}),[Y,ee,S,I,se,le,G,q,J,oe,Oe,p,x,H]),Mn=At(r),kn=useMemo(()=>({registerPortalTarget:ie,registerRenderCallback:Te,renderCallbacksRef:Ve,registerRenderPane:Rt,renderPaneRef:lt,registerTabHeader:xt,tabHeadersRef:ct,activeIdRef:We,registerPopoutTarget:W}),[ie,Te,Ve,Rt,lt,xt,ct,We,W]);return We&&(We.current=N),jsx(we.Provider,{value:Ln,children:jsx(pt.Provider,{value:Nn,children:jsx(ft.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:lt,renderPane:c,tabHeadersRef:ct,classNames:ut})}),className:`${o.dragOverlay||""} ${N===k&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:Mn.map(de=>{let je=F[de],Nt=j(de);return Nt?jsx(an,{tabDetails:Nt,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(ht,{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 rt=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"}},at=({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(rt);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(Tt),y=t||c||(m?.locked??false)||i!==null,{attributes:P,listeners:D,setNodeRef:L,isDragging:v}=useDraggable({id:`tab-header-${e}`,disabled:y}),{setNodeRef:$,isOver:E}=useDroppable({id:`tab-drop-${e}`,disabled:y}),O=j=>{L(j),$(j);},Z=E&&s===e,r=m?.tabIds||[],l=r.indexOf(e),h=m?.activeTabId,M=l>0&&e!==h&&r[l-1]!==h?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:v,isOver:Z,metadata:ne,locked:y,selectTab:J,removeTab:A,isPoppedOut:g,popoutTab:()=>f?.popoutTab(e),dockTab:()=>f?.dockTab(e)}),[e,q,v,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?{}:D,...y?{}:P,children:[M,n({isDragging:v,isOver:Z})]})})};var Tt=createContext(void 0);var yn=(e,t)=>typeof e=="function"?e(t):e,Pt=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:a,selectTab:o,removeTab:c,renderTab:u,classNames:i,styles:d})=>{let f=useContext(it),s=e??f?.tabIds??[],b=t??f?.activeTabId??"",g=n??f?.locked??false,m=a??f?.tabsMetadata,y=o??f?.selectTab??(()=>{}),P=c??f?.removeTab??(()=>{}),{classNames:D={},activeType:L,poppedOutTabIds:v=[]}=re(),$=useContext(we),{overTabId:E,overTabPosition:O}=Ue(),Z=useMemo(()=>({tabIds:s,activeTabId:b,locked:g,tabsMetadata:m,selectTab:y,removeTab:P}),[s,b,g,m,y,P]),r=Wt(s,L,E,O);return jsx(Tt.Provider,{value:Z,children:jsxs("div",{className:i?.container,style:{display:"flex",alignItems:"center",height:"100%",...d?.container},children:[s.map((l,h)=>{let R=m?.[l],M=yn(i?.tab,l),q=yn(d?.tab,l),ne=h===r;return jsxs(ge.Fragment,{children:[ne&&D.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:D.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:h===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:h,isDragging:J,isOver:A,metadata:R,onSelect:()=>y(l),onRemove:()=>P(l),isPoppedOut:v.includes(l),popout:()=>$?.popoutTab(l),dock:()=>$?.dockTab(l)})})]},l)}),r===s.length&&D.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:D.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};Pt.Tab=Fe;var Pn=({className:e,style:t,children:n})=>jsx("div",{className:e,style:t,children:n});var it=createContext(void 0),Rn=()=>{let e=useContext(it);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:P,removeTab:D,popoutTab:L,dockTab:v}=ze(),$=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 $t(e===u?o:c,e)},[o,c,e,u,i]),E=$?.id??e,O=$?.tabIds??[e],Z=$?.activeTabId??e,r=$?.tabsMetadata,l=r?.[e],h=$?.locked??false,R=a||h,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}),j=u!==null&&O.includes(u),V=f===e,B=useMemo(()=>({isDragging:j,isFullscreen:V,toggleFullscreen:()=>s?.(V?null:e),remove:()=>{V&&s?.(null),m(E);},metadata:l,updateMetadata:z=>{y(e,z);},locked:M,tabIds:O,activeTabId:Z,selectTab:z=>P(E,z),removeTab:z=>{V&&z===Z&&s?.(null),D(z);},tabsMetadata:r,updateTabMetadata:(z,C)=>{y(z,C);},isActiveTabPoppedOut:g.includes(Z),popoutTab:z=>L(z||Z),dockTab:z=>v(z||Z)}),[j,V,s,e,D,l,y,M,O,Z,P,E,r,g,L,v]),N=useMemo(()=>M?{disabled:true}:{...A,...J},[A,J,M]),w=`${d.pane||""} ${R&&d.paneLocked||""}`.trim();return jsx(it.Provider,{value:{id:e,...B},children:jsx(rt.Provider,{value:N,children:jsxs("div",{ref:_,id:e,className:w,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(at,{id:`drop-${z}-${e}`,position:z,activeClassName:d.dropPreview},z)),i==="tab"&&jsx(at,{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(at,{id:`drop-locked-${e}`,position:"full",activeClassName:d.lockedPreview||""})})]})})})};ke.Content=qo;ke.DragHandle=gn;ke.Tabs=Pt;ke.Tab=Fe;ke.Controls=Pn;export{ke as Pane,ht as PaneTree,go as Zeugma,Rn as usePaneContext,vt as useResizer,Hn as useZeugma,$n as useZeugmaContext};//# sourceMappingURL=index.js.map
9
+ `,document.head.appendChild(o),t.setAttribute("data-resizing","true");let c=s=>{n(s);},i=()=>{document.body.classList.remove("zeugma-resizing"),t.removeAttribute("data-resizing");let s=document.getElementById("zeugma-global-cursor-style");s&&s.remove(),document.removeEventListener("pointermove",c),document.removeEventListener("pointerup",i),r();};document.addEventListener("pointermove",c),document.addEventListener("pointerup",i);}var vt=createContext(void 0),Re=createContext(void 0),Te=createContext(void 0),ht=createContext(void 0),ie=()=>{let e=useContext(vt);if(!e)throw new Error("useZeugmaState must be used within a Zeugma provider");return e},He=()=>{let e=useContext(Re);if(!e)throw new Error("useZeugmaActions must be used within a Zeugma provider");return e},Je=()=>{let e=useContext(ht);if(!e)throw new Error("useZeugmaDrag must be used within a Zeugma provider");return e};function $t(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 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",r,{passive:true}),()=>{window.removeEventListener("pointermove",n),window.removeEventListener("touchmove",r);}},[e]),t}function Bt(e){useEffect(()=>(e?document.body.style.setProperty("cursor","not-allowed","important"):document.body.style.removeProperty("cursor"),()=>{document.body.style.removeProperty("cursor");}),[e]);}function _t(){let[e,t]=useState({}),[n,r]=useState({}),o=useRef({}),c=useRef(null),i=useRef({}),s=useRef(null),u=useRef(true);useEffect(()=>(u.current=true,()=>{u.current=false;}),[]);let f=useCallback((y,D,I)=>{u.current&&t(T=>{if(!D){if(I&&T[y]!==I||!T[y])return T;let z={...T};return delete z[y],z}return T[y]===D?T:{...T,[y]:D}});},[]),l=useCallback((y,D)=>{u.current&&r(I=>{if(!D){if(!I[y])return I;let T={...I};return delete T[y],T}return I[y]===D?I:{...I,[y]:D}});},[]),b=useCallback((y,D)=>{o.current[y]=D;},[]),g=useCallback(y=>{c.current=y;},[]),m=useCallback((y,D)=>{i.current[y]=D;},[]);return {portalTargets:useMemo(()=>({...e,...n}),[e,n]),registerPortalTarget:f,registerPopoutTarget:l,registerRenderCallback:b,renderCallbacksRef:o,registerRenderPane:g,renderPaneRef:c,registerTabHeader:m,tabHeadersRef:i,activeIdRef:s}}function Yn(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 Ft(e){return useMemo(()=>Yn(e),[e])}function Vt(e){let{onDragStart:t,onDragEnd:n}=e,[r,o]=useState(null),[c,i]=useState(null),s=useCallback(f=>{t&&t(f);},[t]),u=useCallback((f,l,b)=>{n&&n(f,l,b);},[n]);return {overTabId:r,setOverTabId:o,overTabPosition:c,setOverTabPosition:i,handleDragStartInternal:s,handleDragEndInternal:u}}function jt(e){let n=useContext(Te)?.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),r=be(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(s=>s!==t);if(o.length===0)return null;let c=e.activeTabId;e.activeTabId===t&&(c=o[0]);let i={...e.tabsMetadata};return delete i[t],{...e,tabIds:o,activeTabId:c,tabsMetadata:Object.keys(i).length>0?i: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 Se(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 c=typeof o=="string"?{type:"pane",id:pe(),tabIds:[o],activeTabId:o}:o,i=r==="left"||r==="top";return {type:"split",direction:n,first:i?c:e,second:i?e:c,splitPercentage:50}}return e}return {...e,first:Se(e.first,t,n,r,o)||e.first,second:Se(e.second,t,n,r,o)||e.second}}function Gn(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 Wt(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 s=function(u){if(u.type==="pane"&&u.id===t){let f=[...u.tabIds];f.includes(n)||f.push(n);let l=u.tabsMetadata;return r&&(l={...u.tabsMetadata,[n]:r}),{...u,tabIds:f,activeTabId:n,tabsMetadata:l}}return u.type==="split"?{...u,first:s(u.first),second:s(u.second)}:u};return s(e)}let c={type:"pane",id:pe(),tabIds:[n],activeTabId:n,tabsMetadata:r?{[n]:r}:void 0};return Gn(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 W(e,t){return e===null?null:e.type==="pane"?e.tabIds.includes(t)?e:null:e.type==="split"?W(e.first,t)??W(e.second,t):null}function qt(e,t){return te(e,t)??W(e,t)}function nt(e,t){let n=W(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 Ut(e,t){return W(e,t)?.tabsMetadata?.[t]}function Xt(e,t){let n=te(e,t);return n?.tabsMetadata?.[n.activeTabId]}function et(e,t,n){if(e===null)return null;if(e.type==="pane"){if(e.tabIds.includes(t)){let r=e.tabsMetadata||{},o=r[t],c=n(o),i={...r};return c===void 0?delete i[t]:i[t]=c,{...e,tabsMetadata:Object.keys(i).length>0?i:void 0}}return e}return e.type==="split"?{...e,first:et(e.first,t,n)??e.first,second:et(e.second,t,n)??e.second}:e}function tt(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:tt(e.first,t,n)??e.first,second:tt(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 Yt(e,t,n){if(e===null)return null;let o=W(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 i(s){if(s.type==="pane"){if(s.id===n){let u=[...s.tabIds];u.includes(t)||u.push(t);let f={...s.tabsMetadata};return o&&(f[t]=o),{...s,tabIds:u,activeTabId:t,tabsMetadata:Object.keys(f).length>0?f:void 0}}return s}return s.type==="split"?{...s,first:i(s.first),second:i(s.second)}:s}return i(c)}function Jn(e,t,n){if(e===null)return null;if(t===n)return e;let r=W(e,t),o=W(e,n);if(!r||!o)return e;let c=r.id,i=o.id,s=r.tabsMetadata?.[t],u=o.tabsMetadata?.[n];function f(l){if(l.type==="pane"){let b=false,g=[...l.tabIds],m=l.activeTabId,w=l.tabsMetadata?{...l.tabsMetadata}:{};if(c===i){if(l.id===c){let y=g.indexOf(t),D=g.indexOf(n);y!==-1&&D!==-1&&(g[y]=n,g[D]=t),m=t,b=true;}}else l.id===c&&(g=g.map(y=>y===t?n:y),m===t&&(m=n),delete w[t],u&&(w[n]=u),b=true),l.id===i&&(g=g.map(y=>y===n?t:y),m===n&&(m=t),delete w[n],s&&(w[t]=s),b=true);return b?{...l,tabIds:g,activeTabId:m,tabsMetadata:Object.keys(w).length>0?w:void 0}:l}return l.type==="split"?{...l,first:f(l.first),second:f(l.second)}:l}return f(e)}function $e(e,t,n,r="before"){if(e===null)return null;if(t===n)return e;if(r==="center")return Jn(e,t,n);let c=W(e,t)?.tabsMetadata?.[t],i=fe(e,t);if(i===null)return {type:"pane",id:pe(),tabIds:[t],activeTabId:t,tabsMetadata:c?{[t]:c}:void 0};function s(u){if(u.type==="pane"){if(u.tabIds.includes(n)){let l=[...u.tabIds].filter(m=>m!==t),b=l.indexOf(n);b<0&&(b=0),r==="after"&&(b+=1),l.splice(b,0,t);let g={...u.tabsMetadata};return c&&(g[t]=c),{...u,tabIds:l,activeTabId:t,tabsMetadata:Object.keys(g).length>0?g:void 0}}return u}return u.type==="split"?{...u,first:s(u.first),second:s(u.second)}:u}return s(i)}function he(e,t=0,n=0,r=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:r,height:o,node:e}],splitters:[]};let{direction:i,splitPercentage:s,first:u,second:f}=e,b={id:`splitter-${c}-${i}`,currentNode:e,direction:i,left:i==="row"?t+r*(s/100):t,top:i==="column"?n+o*(s/100):n,width:i==="row"?0:r,height:i==="column"?0:o,parentLeft:t,parentTop:n,parentWidth:r,parentHeight:o},g={panes:[],splitters:[]},m={panes:[],splitters:[]};if(i==="row"){let w=r*(s/100);g=he(u,t,n,w,o,`${c}-L`),m=he(f,t+w,n,r-w,o,`${c}-R`);}else {let w=o*(s/100);g=he(u,t,n,r,w,`${c}-T`),m=he(f,t,n+w,r,o-w,`${c}-B`);}return {panes:[...g.panes,...m.panes],splitters:[b,...g.splitters,...m.splitters]}}function Gt(e,t,n,r="before"){if(e===null)return null;let o=te(e,t);if(!o)return e;let c=o.tabIds,i=o.activeTabId,s=o.tabsMetadata||{},u=be(e,t);if(u===null)return o;function f(l){if(l.type==="pane"){if(l.tabIds.includes(n)){let g=[...l.tabIds].filter(y=>!c.includes(y)),m=g.indexOf(n);m<0&&(m=0),r==="after"&&(m+=1),g.splice(m,0,...c);let w={...l.tabsMetadata};for(let y of c)s[y]&&(w[y]=s[y]);return {...l,tabIds:g,activeTabId:i,tabsMetadata:Object.keys(w).length>0?w:void 0}}return l}return l.type==="split"?{...l,first:f(l.first),second:f(l.second)}:l}return f(u)}function Jt(e,t,n,r){if(!((t==="tab"||t==="pane")&&n&&e.includes(n))||!r)return -1;let i=e.indexOf(n);return r==="before"?i:i+1}function Qt(e,t){if(e===t)return true;if(!e||!t)return false;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return false;for(let o of n){if(!Object.prototype.hasOwnProperty.call(t,o))return false;let c=e[o],i=t[o];if(typeof c=="object"&&c!==null&&typeof i=="object"&&i!==null){if(!Qt(c,i))return false}else if(c!==i)return false}return true}function Qn(e,t){if(e===t)return true;if(!e||!t)return false;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return false;for(let o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Qt(e[o],t[o]))return false;return true}function Be(e,t){if(e===t)return true;if(!e||!t||e.type!==t.type)return false;if(e.type==="split"){let n=t;return e.direction===n.direction&&e.splitPercentage===n.splitPercentage&&Be(e.first,n.first)&&Be(e.second,n.second)}else {let n=t;if(e.id!==n.id||e.activeTabId!==n.activeTabId||e.locked!==n.locked||e.tabIds.length!==n.tabIds.length)return false;for(let r=0;r<e.tabIds.length;r++)if(e.tabIds[r]!==n.tabIds[r])return false;return Qn(e.tabsMetadata,n.tabsMetadata)}}function Kn(e){let{initialLayout:t,layout:n,onChange:r,fullscreenPaneId:o,onFullscreenChange:c,locked:i=false}=e,[s,u]=useState(()=>n!==void 0?n:t??null),[f,l]=useState(()=>n!==void 0?n:t??null),b=useRef(n),[g,m]=useState(o||null),[w,y]=useState(i),[D,I]=useState([]),[T,z]=useState(null),[E,k]=useState(null),[M,a]=useState(null),d=useRef(null),h=useCallback(p=>{d.current=p;},[]),P=useRef(s);P.current=s;let N=useRef(g);N.current=g;let X=useRef(r);X.current=r;let Y=useRef(c);Y.current=c;let ne=useCallback(p=>{m(p),Y.current?.(p);},[]);useEffect(()=>{y(i);},[i]),useEffect(()=>{o!==void 0&&m(o);},[o]),n!==void 0&&(Be(n,b.current??null)||(b.current=n,u(n),l(n),I(p=>{if(p.length===0)return p;let R=p.filter(C=>nt(n,C)!==null);return R.length===p.length?p:R})));let O=useCallback(p=>(...R)=>{let C=P.current,F=p(C,...R);Be(C,F)||(P.current=F,u(F),l(F),I(_=>{if(_.length===0)return _;let ae=_.filter(j=>nt(F,j)!==null);return ae.length===_.length?_:ae}),X.current?.(F));},[]),H=useCallback(O((p,R)=>typeof R=="function"?R(p):R),[O]),U=useCallback(p=>{N.current===null&&l(R=>typeof p=="function"?p(R):p);},[]),V=useCallback(p=>{m(null),Y.current?.(null),z(null),k(null),a(null),H(p),l(()=>typeof p=="function"?p(P.current):p);},[H]),A=useCallback(O((p,R)=>N.current!==null?p:be(p,R)),[O]),Z=useCallback(O((p,R,C,F)=>{if(N.current!==null)return p;let _=fe(p,R)??p;return Wt(_,C,R,F)}),[O]),v=useCallback(O((p,R,C,F,_)=>{if(N.current!==null)return p;let ae=te(p,R)??W(p,R);if(!ae)return p;let j=te(p,_)??W(p,_)??{type:"pane",id:_,tabIds:[_],activeTabId:_},ve=be(p,j.id);return Se(ve,ae.id,C,F,j)}),[O]),$=useCallback(O((p,R,C)=>N.current!==null?p:xe(p,R,C)),[O]),x=useCallback(O((p,R,C)=>et(p,R,C)),[O]),B=useCallback(O((p,R,C)=>{let F=te(p,R)??W(p,R);return F?tt(p,F.id,C):p}),[O]),ue=useCallback(O((p,R,C)=>{let F=te(p,R)??W(p,R);return F?Ne(p,F.id,C):p}),[O]),G=useCallback(O((p,R,C)=>{if(N.current!==null)return p;let F=te(p,C)??W(p,C);return F?Yt(p,R,F.id):p}),[O]),J=useCallback(O((p,R,C,F)=>N.current!==null?p:$e(p,R,C,F)),[O]),Q=useCallback(O((p,R)=>N.current!==null?p:fe(p,R)),[O]),K=useCallback(p=>te(P.current,p),[]),S=useCallback(p=>W(P.current,p),[]),L=useCallback(p=>nt(P.current,p),[]),le=useCallback(p=>Ut(P.current,p),[]),se=useCallback(p=>Xt(P.current,p),[]),ee=useCallback(p=>{N.current===null&&I(R=>R.includes(p)?R:[...R,p]);},[]),oe=useCallback(p=>{N.current===null&&I(R=>R.includes(p)?R.filter(C=>C!==p):R);},[]);return {layout:s,setLayout:V,_internalSetLayout:U,renderingLayout:f,fullscreenPaneId:g,setFullscreenPaneId:ne,locked:w,setLocked:y,poppedOutTabIds:D,activeId:T,setActiveId:z,activeType:E,setActiveType:k,dismissIntentId:M,setDismissIntentId:a,containerRef:d,setContainerRef:h,removePane:A,addTab:Z,updateMetadata:x,updatePaneLock:B,selectTab:ue,mergeTab:G,moveTab:J,removeTab:Q,splitPane:v,updateSplitPercentage:$,popoutTab:ee,dockTab:oe,findPaneById:K,findPaneContainingTab:S,findTabById:L,getTabMetadata:le,getActiveTabMetadata:se}}var eo=()=>{let e=ie(),t=He();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 ot=class extends PointerSensor{static activators=[{eventName:"onPointerDown",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]},rt=class extends TouchSensor{static activators=[{eventName:"onTouchStart",handler:({nativeEvent:t})=>!t.target?.closest(".drag-cancel")}]};var en=e=>{let n=e.active.id.toString().startsWith("tab-header-"),o=pointerWithin(e);if(o.length>0)return [...o].sort((i,s)=>{let u=i.id.toString(),f=s.id.toString(),l=u.startsWith("tab-drop-"),b=f.startsWith("tab-drop-");if(l&&!b)return -1;if(!l&&b)return 1;let g=u.startsWith("drop-root-"),m=f.startsWith("drop-root-");return g&&!m?-1:!g&&m?1:0});if(n){let c=e.droppableContainers.filter(i=>i.id.toString().startsWith("tab-drop-"));return closestCenter({...e,droppableContainers:c})}return []};function _e(e){if(e instanceof MouseEvent||e instanceof PointerEvent)return {x:e.clientX,y:e.clientY};if(typeof TouchEvent<"u"&&e instanceof TouchEvent){let t=e.touches[0]||e.changedTouches[0];if(t)return {x:t.clientX,y:t.clientY}}return null}function on(e){let{layout:t,_internalSetLayout:n,setLayout:r,activeId:o,setActiveId:c,activeType:i,setActiveType:s,dismissIntentId:u,setDismissIntentId:f,setOverTabId:l,setOverTabPosition:b,containerRef:g,dragActivationDistance:m,enableDragToDismiss:w,dismissThreshold:y,onRemove:D,onDragStart:I,onDragEnd:T,onDismissIntentChange:z,removeTab:E,removePane:k}=e,M=useRef(null),a=$t(o),d=useRef(null),[h,P]=useState(false);return Bt(h),{sensors:useSensors(useSensor(ot,{activationConstraint:{distance:m}}),useSensor(rt,{activationConstraint:{delay:250,tolerance:5}})),collisionDetection:en,onDragStart:H=>{let U=H.active.id.toString(),V=U.startsWith("tab-header-"),A=V?U.substring(11):U;c(A),s(V?"tab":"pane"),l(null),b(null);let Z=H.activatorEvent;a.current=_e(Z),w&&g.current?M.current=g.current.getBoundingClientRect():M.current=null;let v=t;if(V){let x=W(t,A);x&&(v=Ne(t,x.id,A)||t);}d.current=v;let $=V?fe(v,A):be(v,A);n($),I&&I(A);},onDragMove:H=>{let{over:U}=H,V=U?.id.toString()||"",A=V.startsWith("drop-locked-");P(S=>S===A?S:A);let Z=H.active.id.toString(),v=Z.startsWith("tab-header-"),$=v?Z.substring(11):Z,x=V.match(/^tab-drop-(.+)$/);if(x&&U&&(v||i==="pane")){let[,S]=x;if($!==S){let L="before",le=U.rect,se=H.activatorEvent,ee=null;if(a.current)ee=a.current.x;else {let oe=_e(se);oe&&(ee=oe.x+H.delta.x);}if(ee!==null){let oe=le.left+le.width/2;ee>oe&&(L="after");}l(oe=>oe===S?oe:S),b(oe=>oe===L?oe:L);}else l(L=>L===null?L:null),b(L=>L===null?L:null);}else l(S=>S===null?S:null),b(S=>S===null?S:null);if(!w)return;let B=M.current;if(!B){u!==null&&(f(null),z?.(null));return}let ue=H.activatorEvent,G=null,J=null;if(a.current)G=a.current.x,J=a.current.y;else {let S=_e(ue);S&&(G=S.x+H.delta.x,J=S.y+H.delta.y);}let Q=0;if(G!==null&&J!==null){let S=0,L=0;G<B.left?S=B.left-G:G>B.right&&(S=G-B.right),J<B.top?L=B.top-J:J>B.bottom&&(L=J-B.bottom),Q=Math.sqrt(S*S+L*L);}else {let S=H.active.rect.current.translated;if(S){let L=S.left+S.width/2,le=S.top+S.height/2,se=0,ee=0;L<B.left?se=B.left-L:L>B.right&&(se=L-B.right),le<B.top?ee=B.top-le:le>B.bottom&&(ee=le-B.bottom),Q=Math.sqrt(se*se+ee*ee);}}Q>y?u!==$&&(f($),z?.($)):u!==null&&(f(null),z?.(null));},onDragEnd:H=>{c(null),s(null),P(false),l(null),b(null);let{active:U,over:V}=H,A=U.id.toString(),Z=A.startsWith("tab-header-"),v=Z?A.substring(11):A,$=w&&u===v;f(null),z?.(null),M.current=null;let x=d.current||t;if(d.current=null,$){D?D(v):Z?E(v):k(v),T&&T(v,null,null);return}if(!V){n(x),T&&T(v,null,null);return}let B=V.id.toString();if(B.startsWith("drop-locked-")){n(x),T&&T(v,null,null);return}let ue=B.match(/^tab-drop-(.+)$/);if(ue){let[,p]=ue;if(Z)if(v!==p){let R="before",C=V.rect,F=H.activatorEvent,_=null;if(a.current)_=a.current.x;else {let j=_e(F);j&&(_=j.x+H.delta.x);}if(_!==null){let j=C.left+C.width/2;_>j&&(R="after");}let ae=$e(x,v,p,R);r(ae),T&&T(v,p,{type:"move",position:"center"});}else n(x),T&&T(v,null,null);else {let R="before",C=V.rect,F=H.activatorEvent,_=null;if(a.current)_=a.current.x;else {let j=_e(F);j&&(_=j.x+H.delta.x);}if(_!==null){let j=C.left+C.width/2;_>j&&(R="after");}let ae=Gt(x,v,p,R);r(ae),T&&T(v,p,{type:"move",position:"center"});}return}let G=B.match(/^drop-root-(1\/4|1\/3)-(top|bottom|left|right|start|end)$/);if(G){let[,p,R]=G,C=R;C==="start"&&(C="left"),C==="end"&&(C="right");let F=Z?fe(x,v):be(x,v),_;if(Z){let j=W(x,v)?.tabsMetadata?.[v];_={type:"pane",id:pe(),tabIds:[v],activeTabId:v,tabsMetadata:j?{[v]:j}:void 0};}else _=te(x,v)??{type:"pane",id:pe(),tabIds:[v],activeTabId:v};if(F===null)r(_);else {let ae=C==="left"||C==="right",j=C==="left"||C==="top",ve=50;p==="1/4"?ve=j?25:75:p==="1/3"&&(ve=j?100/3:200/3),r({type:"split",direction:ae?"row":"column",first:j?_:F,second:j?F:_,splitPercentage:ve});}T&&T(v,"root",{type:"split",direction:C==="left"||C==="right"?"row":"column",position:C});return}let J=B.match(/^drop-(left|right|top|bottom|center)-(.+)$/);if(!J){n(x),T&&T(v,null,null);return}let[,Q,K]=J;if(Q==="center"){if(Z){let p=te(x,K);if(p&&p.activeTabId){let R=p.activeTabId,C=$e(x,v,R,"center");r(C),T&&T(v,K,{type:"move",position:"center"});}else n(x),T&&T(v,null,null);}else n(x),T&&T(v,null,null);return}let S=Z?W(x,v):te(x,v),L=S&&S.id===K,le=S&&S.tabIds.length===1;if(v===K||L&&le){n(x),T&&T(v,null,null);return}let se=Q==="left"||Q==="right"?"row":"column",ee;if(Z){let R=W(x,v)?.tabsMetadata?.[v];ee={type:"pane",id:pe(),tabIds:[v],activeTabId:v,tabsMetadata:R?{[v]:R}:void 0};}else ee=te(x,v)??{type:"pane",id:pe(),tabIds:[v],activeTabId:v};let oe=Z?fe(x,v):be(x,v),Ze=Se(oe,K,se,Q,ee);r(Ze),T&&T(v,K,{type:"split",direction:se,position:Q});},onDragCancel:()=>{c(null),s(null),P(false),l(null),b(null),f(null),z?.(null),M.current=null;let H=d.current||t;d.current=null,n(H),H!==t&&r(H);}}}function an({persist:e,layout:t,setLayout:n}){let r=typeof e=="object"?e.enabled!==false:!!e,o=typeof e=="object"&&e.key||"zeugma-layout",[c,i]=useState(false);useEffect(()=>{if(r){let s=localStorage.getItem(o);if(s)try{let u=JSON.parse(s);u&&n(u);}catch(u){console.error("Failed to parse persisted zeugma layout",u);}}i(true);},[r,o,n]),useEffect(()=>{r&&c&&(t?localStorage.setItem(o,JSON.stringify(t)):localStorage.removeItem(o));},[r,o,t,c]);}var De=null,ln=false,re=new Set,Ce=new Set,Le=null;function co(){typeof window>"u"||Le||(Le=new MutationObserver(e=>{e.forEach(t=>{t.addedNodes.forEach(n=>{n instanceof HTMLElement&&(n.tagName.toLowerCase()==="style"||n.tagName.toLowerCase()==="link")&&re.forEach(r=>{try{let o=n.cloneNode(!0);if(o.tagName.toLowerCase()==="link"){let c=n.href;c&&o.setAttribute("href",c);}r.head.appendChild(o);}catch(o){console.warn("Failed to mirror style node to popout:",o);}});});});}),Le.observe(document.head,{childList:true}));}function yt(){Le&&(Le.disconnect(),Le=null);}var ke=null;function uo(){typeof window>"u"||ke||(ke=new MutationObserver(e=>{e.forEach(t=>{if(t.type==="attributes"&&t.attributeName){let n=document.documentElement.getAttribute(t.attributeName);re.forEach(r=>{try{r&&r.documentElement&&(n!==null?r.documentElement.setAttribute(t.attributeName,n):r.documentElement.removeAttribute(t.attributeName));}catch(o){console.warn("Failed to sync documentElement attribute:",o);}});}});}),ke.observe(document.documentElement,{attributes:true}));}function Tt(){ke&&(ke.disconnect(),ke=null);}var cn=e=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(e):setTimeout(e,0);};function me(){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 un(){if(typeof window>"u"||ln)return;ln=true;let e=(a,d)=>{if(!a||!d)return false;try{let h=Object.getPrototypeOf(a);for(;h;){if(h===d)return !0;h=Object.getPrototypeOf(h);}}catch{}return false},t=(a,d)=>{try{Object.defineProperty(a,Symbol.hasInstance,{value:function(h){return h?e(h,a.prototype)?!0:d(h):!1},configurable:!0,writable:!0});}catch(h){console.warn("Failed to patch Symbol.hasInstance on",a,h);}};typeof Node<"u"&&t(Node,a=>typeof a.nodeType=="number"&&typeof a.nodeName=="string"),typeof Element<"u"&&t(Element,a=>a.nodeType===1),typeof HTMLElement<"u"&&t(HTMLElement,a=>a.nodeType===1&&typeof a.style=="object"),typeof HTMLBodyElement<"u"&&t(HTMLBodyElement,a=>a.nodeType===1&&a.tagName==="BODY"),typeof HTMLHtmlElement<"u"&&t(HTMLHtmlElement,a=>a.nodeType===1&&a.tagName==="HTML"),typeof HTMLInputElement<"u"&&t(HTMLInputElement,a=>a.nodeType===1&&a.tagName==="INPUT"),typeof HTMLTextAreaElement<"u"&&t(HTMLTextAreaElement,a=>a.nodeType===1&&a.tagName==="TEXTAREA"),typeof ShadowRoot<"u"&&t(ShadowRoot,a=>a.nodeType===11&&a.host!==void 0),typeof SVGElement<"u"&&t(SVGElement,a=>a.nodeType===1&&typeof a.getBBox=="function"),typeof Document<"u"&&t(Document,a=>a.nodeType===9),typeof Window<"u"&&t(Window,a=>a&&typeof a.document=="object"&&typeof a.location=="object");let n=Document.prototype,r=Object.getOwnPropertyDescriptor(n,"body"),o=Object.getOwnPropertyDescriptor(n,"documentElement"),c=Object.getOwnPropertyDescriptor(n,"head"),i=Object.getOwnPropertyDescriptor(n,"activeElement"),s=Object.getOwnPropertyDescriptor(n,"defaultView"),u=Object.getOwnPropertyDescriptor(n,"scrollingElement");Object.defineProperties(document,{body:{get(){let a=me();return a&&a!==document?a.body:r?.get?.call(document)||document.body},configurable:true},documentElement:{get(){let a=me();return a&&a!==document?a.documentElement:o?.get?.call(document)||document.documentElement},configurable:true},head:{get(){let a=me();return a&&a!==document?a.head:c?.get?.call(document)||document.head},configurable:true},activeElement:{get(){let a=me();return a&&a!==document?a.activeElement:i?.get?.call(document)||document.activeElement},configurable:true},defaultView:{get(){let a=me();return a&&a!==document?a.defaultView:s?.get?.call(document)||document.defaultView},configurable:true},scrollingElement:{get(){let a=me();return a&&a!==document?a.scrollingElement:u?.get?.call(document)||document.scrollingElement},configurable:true}});let f=Window.prototype,l=["innerWidth","innerHeight","pageXOffset","pageYOffset","scrollX","scrollY","screenX","screenY","outerWidth","outerHeight","devicePixelRatio"],b={};l.forEach(a=>{let d=Object.getOwnPropertyDescriptor(f,a)||Object.getOwnPropertyDescriptor(window,a);d&&d.get&&(b[a]=d.get);}),l.forEach(a=>{Object.defineProperty(window,a,{get(){let d=me();if(d&&d!==document&&d.defaultView)try{return d.defaultView[a]}catch{}let h=b[a];return h?h.call(window):window[a]},configurable:true});});let g=Node.prototype.contains;Node.prototype.contains=function(a){if(!a)return false;if(g.call(this,a))return true;if(this===document||this===document.body||this===document.documentElement)for(let d of re)try{if(d.contains(a))return !0}catch{}return false};let m=()=>{De=null,globalThis.__zeugmaActivePopoutDocument=null;};["pointerdown","mousedown","click","keydown","focus","touchstart"].forEach(a=>{window.addEventListener(a,m,true);});let y=document.createElement;document.createElement=function(a,d){let h=me();return h&&h!==document?h.createElement(a,d):y.call(document,a,d)};let D=document.addEventListener;document.addEventListener=function(a,d,h){Ce.add({target:"document",type:a,listener:d,options:h}),D.call(document,a,d,h),re.forEach(P=>{try{P.addEventListener(a,d,h);}catch{}});};let I=document.removeEventListener;document.removeEventListener=function(a,d,h){for(let P of Ce)if(P.target==="document"&&P.type===a&&P.listener===d){Ce.delete(P);break}I.call(document,a,d,h),re.forEach(P=>{try{P.removeEventListener(a,d,h);}catch{}});};let T=window.addEventListener;window.addEventListener=function(a,d,h){Ce.add({target:"window",type:a,listener:d,options:h}),T.call(window,a,d,h),re.forEach(P=>{try{P.defaultView&&P.defaultView.addEventListener(a,d,h);}catch{}});};let z=window.removeEventListener;window.removeEventListener=function(a,d,h){for(let P of Ce)if(P.target==="window"&&P.type===a&&P.listener===d){Ce.delete(P);break}z.call(window,a,d,h),re.forEach(P=>{try{P.defaultView&&P.defaultView.removeEventListener(a,d,h);}catch{}});};let E=document.getElementById;document.getElementById=function(a){let d=me();if(d&&d!==document)return d.getElementById(a);let h=E.call(document,a);if(h)return h;for(let P of re)try{let N=P.getElementById(a);if(N)return N}catch{}return null};let k=document.querySelector;document.querySelector=function(a){let d=me();if(d&&d!==document)return d.querySelector(a);let h=k.call(document,a);if(h)return h;for(let P of re)try{let N=P.querySelector(a);if(N)return N}catch{}return null};let M=document.querySelectorAll;document.querySelectorAll=function(a){let d=me();if(d&&d!==document)return d.querySelectorAll(a);let h=M.call(document,a);if(h.length>0)return h;for(let P of re)try{let N=P.querySelectorAll(a);if(N.length>0)return N}catch{}return h};}function dn(e){let{poppedOutTabIds:t,registerPopoutTarget:n,findTabById:r,dockTab:o}=e,c=useRef({});useEffect(()=>{let i=c.current;t.forEach(s=>{if(i[s]){try{i[s].focus();}catch{}return}un();let f=r(s)?.metadata?.title||`Tab ${s}`,l=window.open("",`zeugma-popout-${s}`,"width=800,height=600");if(!l){console.warn("Failed to open popout window. Check popup blocker."),o(s);return}i[s]=l,re.add(l.document),Ce.forEach(d=>{try{d.target==="window"?l.addEventListener(d.type,d.listener,d.options):l.document.addEventListener(d.type,d.listener,d.options);}catch{}}),co(),uo(),l.document.title=f,l.document.head.innerHTML="";try{let d=l.document.createElement("base");d.setAttribute("href",window.location.origin+"/"),l.document.head.appendChild(d);}catch{}if(Array.from(document.querySelectorAll('style, link[rel="stylesheet"]')).forEach(d=>{let h=d.cloneNode(true);if(d.tagName.toLowerCase()==="link"){let P=d.href;P&&h.setAttribute("href",P);}else if(d.tagName.toLowerCase()==="style")try{let P=d.sheet?.cssRules;if(P&&P.length>0){let N=Array.from(P).map(X=>X.cssText).join(`
10
+ `);h.textContent=N;}}catch{}l.document.head.appendChild(h);}),typeof document.adoptedStyleSheets<"u"&&typeof l.document.adoptedStyleSheets<"u")try{let d=Array.from(document.adoptedStyleSheets).map(h=>{try{let P=new l.CSSStyleSheet,N=Array.from(h.cssRules).map(X=>X.cssText).join(`
11
+ `);return P.replaceSync(N),P}catch{return null}}).filter(h=>h!==null);l.document.adoptedStyleSheets=d;}catch(d){console.warn("Failed to copy adoptedStyleSheets:",d);}l.document.documentElement.className=document.documentElement.className,l.document.body.className=document.body.className,Array.from(document.documentElement.attributes).forEach(d=>{l.document.documentElement.setAttribute(d.name,d.value);}),l.document.body.style.margin="0",l.document.body.style.padding="0",l.document.body.style.height="100vh",l.document.body.style.overflow="hidden";let b=document.getElementById(`zeugma-tab-target-${s}`),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),w=window.getComputedStyle(document.body),y=w.backgroundColor,I=!y||y==="transparent"||y==="rgba(0, 0, 0, 0)"?m.backgroundColor:y,T=g&&g!=="transparent"&&g!=="rgba(0, 0, 0, 0)"?g:I&&I!=="transparent"&&I!=="rgba(0, 0, 0, 0)"?I:"#181b1f";document.documentElement.getAttribute("data-theme")||(l.document.documentElement.style.backgroundColor=T,l.document.body.style.backgroundColor=T),l.document.body.style.color=w.color||m.color,l.document.body.style.fontFamily=w.fontFamily||m.fontFamily;let E=l.document.createElement("div");E.id=`zeugma-popout-container-${s}`,E.className="grafana-panel h-full w-full overflow-hidden",E.style.width="100%",E.style.height="100%",E.style.border="none",l.document.body.appendChild(E),n?.(s,E);let k=["pointerdown","mousedown","click","keydown","focus","touchstart"],M=d=>{De=d,globalThis.__zeugmaActivePopoutDocument=l.document,setTimeout(()=>{De===d&&(De=null,globalThis.__zeugmaActivePopoutDocument=null);},0);};k.forEach(d=>{l.addEventListener(d,M,true);});let a=()=>{re.delete(l.document),re.size===0&&(yt(),Tt()),o(s);};l.addEventListener("beforeunload",a),l.__zeugmaCleanup=()=>{k.forEach(d=>{l.removeEventListener(d,M,true);}),l.removeEventListener("beforeunload",a);};}),Object.keys(i).forEach(s=>{if(!t.includes(s)){let u=i[s];if(delete i[s],n?.(s,null),u){re.delete(u.document),re.size===0&&(yt(),Tt());try{let f=u;f.__zeugmaCleanup&&f.__zeugmaCleanup(),cn(()=>{try{f.close();}catch{}});}catch{}}}});},[t,n,r,o]),useEffect(()=>()=>{let i=c.current;Object.keys(i).forEach(s=>{let u=i[s];if(u){re.delete(u.document);try{let f=u;f.__zeugmaCleanup&&f.__zeugmaCleanup(),cn(()=>{try{f.close();}catch{}});}catch{}}}),re.size===0&&(yt(),Tt());},[]);}typeof window<"u"&&un();var pn=({activeId:e,render:t,className:n})=>{let r=useRef(null);return useEffect(()=>{let o=c=>{r.current&&(r.current.style.transform=`translate(${c.clientX+12}px, ${c.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 ho=({popoutDoc:e,children:t})=>{if(e===document)return jsx(Fragment,{children:t});let n=ge.useEffect,r=ge.useLayoutEffect,o=ge.useInsertionEffect;ge.useEffect=(c,i)=>n(()=>{window.__zeugmaActivePopoutDocument=e;try{let s=c();return typeof s=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return s()}finally{window.__zeugmaActivePopoutDocument=null;}}:s}finally{window.__zeugmaActivePopoutDocument=null;}},i),ge.useLayoutEffect=(c,i)=>r(()=>{window.__zeugmaActivePopoutDocument=e;try{let s=c();return typeof s=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return s()}finally{window.__zeugmaActivePopoutDocument=null;}}:s}finally{window.__zeugmaActivePopoutDocument=null;}},i),o&&(ge.useInsertionEffect=(c,i)=>o(()=>{window.__zeugmaActivePopoutDocument=e;try{let s=c();return typeof s=="function"?()=>{window.__zeugmaActivePopoutDocument=e;try{return s()}finally{window.__zeugmaActivePopoutDocument=null;}}:s}finally{window.__zeugmaActivePopoutDocument=null;}},i)),window.__zeugmaActivePopoutDocument=e;try{return jsx(Fragment,{children:t})}finally{window.__zeugmaActivePopoutDocument=null,ge.useEffect=n,ge.useLayoutEffect=r,o&&(ge.useInsertionEffect=o);}},mn=ge.memo(({tabDetails:e,target:t,renderWidget:n})=>{let{id:r}=e,[o,c]=useState(false),i=useRef(null);if(useEffect(()=>{c(true);},[]),useEffect(()=>{if(!o||!i.current)return;let g=i.current;if(t)t.ownerDocument.adoptNode(g),t.appendChild(g);else {let m=document.getElementById("zeugma-hidden-portal-container");m||(m=document.createElement("div"),m.id="zeugma-hidden-portal-container",m.style.display="none",document.body.appendChild(m)),document.adoptNode(g),m.appendChild(g);}},[t,o]),useEffect(()=>()=>{i.current&&i.current.remove();},[]),!o)return null;let s=t?t.ownerDocument:document;i.current&&i.current.ownerDocument!==s&&s.adoptNode(i.current),i.current||(i.current=s.createElement("div"),i.current.className=`zeugma-portal-wrapper-${r}`,i.current.style.width="100%",i.current.style.height="100%");let u=i.current;if(!u||!n)return null;let f=!!(t&&t.ownerDocument&&t.ownerDocument!==document),l=e.remountOnPopout?f?"-popped":"-docked":"",b=jsx(ge.Fragment,{children:n(e)},`${r}${l}`);return createPortal(jsx(ho,{popoutDoc:f&&t?t.ownerDocument:document,children:b}),u)},(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 gn=({activeId:e,activeType:t,dismissIntentId:n,renderDragOverlay:r,renderPaneRef:o,renderPane:c,tabHeadersRef:i,classNames:s})=>{if(r)return jsx(Fragment,{children:r({type:t,id:e,isDismissing:e===n})});if(t==="pane"){let u=o.current||c;if(u)return jsx("div",{className:s.paneDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:u(e)})}else if(t==="tab"){let u=o.current||c;if(u)return jsx("div",{className:s.tabDragPreview||"",style:{pointerEvents:"none",width:"420px",height:"260px",overflow:"hidden"},children:u(e)});let f=i.current[e];if(f){let l=s.tab?typeof s.tab=="function"?s.tab(e):s.tab:"";return jsx("div",{className:`${s.tabDragPreview||""} ${l}`.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 Rt({containerRef:e,isRow:t,direction:n,splitPercentage:r,resizerSize:o,snapThreshold:c,layout:i,currentNode:s,onLayoutChange:u,onResizeStart:f,onResizeEnd:l,parentLeft:b,parentTop:g,parentWidth:m,parentHeight:w}){let{onResizeStart:y,onResize:D,onResizeEnd:I,minSplitPercentage:T=5,maxSplitPercentage:z=95,locked:E=false}=ie();return useCallback(k=>{if(E)return;k.preventDefault();let M=e.current;if(!M)return;f&&f(),y&&y(s);let a=M.getBoundingClientRect(),d=k.clientX,h=k.clientY,P=r,N=k.currentTarget,X=a.left+a.width*(b/100),Y=a.top+a.height*(g/100),ne=a.width*(m/100),O=a.height*(w/100),U=Array.from(document.querySelectorAll('div[role="separator"][data-direction]')).filter(A=>A!==N&&A.getAttribute("data-direction")===n).map(A=>{let Z=A.getBoundingClientRect();return t?Z.left+Z.width/2:Z.top+Z.height/2}),V=P;Zt({cursor:t?"col-resize":"row-resize",resizerEl:N,onMove:A=>{let Z=t?(A.clientX-d)/ne*100:(A.clientY-h)/O*100,v=P+Z,$=t?X+(ne-o)*(v/100)+o/2:Y+(O-o)*(v/100)+o/2,x=1/0,B=null;for(let Q of U){let K=Math.abs($-Q);K<c&&K<x&&(x=K,B=Q);}let ue=v;B!==null&&(ue=t?(B-o/2-X)/(ne-o)*100:(B-o/2-Y)/(O-o)*100);let G=Math.max(T,Math.min(z,ue));V=G;let J=xe(i,s,G);if(J){let{panes:Q,splitters:K}=he(J),S=e.current;if(S){for(let L of Q)S.style.setProperty(`--pane-left-${L.paneId}`,`${L.left}%`),S.style.setProperty(`--pane-top-${L.paneId}`,`${L.top}%`),S.style.setProperty(`--pane-width-${L.paneId}`,`${L.width}%`),S.style.setProperty(`--pane-height-${L.paneId}`,`${L.height}%`);for(let L of K)S.style.setProperty(`--splitter-pos-${L.id}`,`${L.direction==="row"?L.left:L.top}%`);}}D&&D(s,G);},onEnd:()=>{let A=xe(i,s,V),Z=e.current;if(Z){let{panes:v,splitters:$}=he(A);for(let x of v)Z.style.removeProperty(`--pane-left-${x.paneId}`),Z.style.removeProperty(`--pane-top-${x.paneId}`),Z.style.removeProperty(`--pane-width-${x.paneId}`),Z.style.removeProperty(`--pane-height-${x.paneId}`);for(let x of $)Z.style.removeProperty(`--splitter-pos-${x.id}`);}u(A),l&&l(),I&&I(s,V);}});},[e,t,n,r,o,c,i,s,u,f,l,y,D,I,T,z,b,g,m,w])}var bn=({splitter:e,resizerSize:t,snapThreshold:n,containerRef:r})=>{let{renderingLayout:o,setLayout:c,classNames:i,locked:s}=ie(),[u,f]=useState(false),{currentNode:l,direction:b,left:g,top:m,width:w,height:y,parentLeft:D,parentTop:I,parentWidth:T,parentHeight:z}=e,E=b==="row",k=Rt({containerRef:r,isRow:E,direction:b,splitPercentage:l.splitPercentage,resizerSize:t,snapThreshold:n,layout:o,currentNode:l,onLayoutChange:c,onResizeStart:()=>f(true),onResizeEnd:()=>f(false),parentLeft:D,parentTop:I,parentWidth:T,parentHeight:z}),M=E?{position:"absolute",left:`calc(var(--splitter-pos-${e.id}, ${g}%) - ${t/2}px)`,top:`calc(${m}% + ${t/2}px)`,width:`${t}px`,height:`calc(${y}% - ${t}px)`,cursor:s?"default":"col-resize",pointerEvents:s?"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(${w}% - ${t}px)`,height:`${t}px`,cursor:s?"default":"row-resize",pointerEvents:s?"none":"auto",zIndex:10,userSelect:"none",touchAction:"none",boxSizing:"border-box"};return jsx("div",{className:i.resizer||"","data-direction":b,"data-resizing":u||void 0,style:M,onPointerDown:k,role:"separator","aria-valuenow":l.splitPercentage,"aria-valuemin":5,"aria-valuemax":95})},vn=ge.memo(({paneId:e,renderPane:t})=>jsx(Fragment,{children:t(e)}),(e,t)=>e.paneId===t.paneId&&e.renderPane===t.renderPane);var wt=({renderPane:e,tree:t,resizerSize:n,snapThreshold:r})=>{jt(e);let{renderingLayout:o,activeId:c,dismissIntentId:i,setContainerRef:s,fullscreenPaneId:u,snapThreshold:f,locked:l,classNames:b,resizerSize:g}=ie(),m=r!==void 0?r:f??8,w=n!==void 0?n:g??4,y=t!==void 0?t:o,D=useRef(null),{panes:I,splitters:T}=useMemo(()=>y?he(y):{panes:[],splitters:[]},[y]);if(!y&&t!==void 0)return null;let z=()=>jsxs(Fragment,{children:[I.map(E=>{let k=u===E.paneId;return jsx("div",{style:{position:"absolute",left:k?"0%":`var(--pane-left-${E.paneId}, ${E.left}%)`,top:k?"0%":`var(--pane-top-${E.paneId}, ${E.top}%)`,width:k?"100%":`var(--pane-width-${E.paneId}, ${E.width}%)`,height:k?"100%":`var(--pane-height-${E.paneId}, ${E.height}%)`,overflow:"hidden",zIndex:k?20:1,display:u&&!k?"none":"block",padding:k?"0px":`${w/2}px`,boxSizing:"border-box"},children:jsx(vn,{paneId:E.paneId,renderPane:e})},E.paneId)}),!u&&T.map(E=>jsx(bn,{splitter:E,resizerSize:w,snapThreshold:m,containerRef:D},E.id))]});if(t===void 0){let E=c!==null&&c===i,k=a=>{s(a),D.current=a;},M=`${b.dashboard||""} ${E&&b.dashboardDismissActive||""} ${l&&b.dashboardLocked||""}`.trim();return jsxs("div",{ref:k,className:M,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:[z(),c!==null&&!l&&jsx(Tn,{activeClassName:b.rootDropPreview??b.dropPreview})]})}return jsx("div",{ref:D,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},children:z()})};var So=e=>{let{controller:t,children:n,renderDragOverlay:r,classNames:o={},renderPane:c,resizerSize:i,dragActivationDistance:s=8,snapThreshold:u=8,minSplitPercentage:f=5,maxSplitPercentage:l=95,enableDragToDismiss:b=false,dismissThreshold:g=60,onRemove:m,onDragStart:w,onDragEnd:y,onResizeStart:D,onResize:I,onResizeEnd:T,onDismissIntentChange:z,persist:E=false}=e,k=t,{layout:M,setLayout:a,_internalSetLayout:d,renderingLayout:h,fullscreenPaneId:P,setFullscreenPaneId:N,locked:X,setLocked:Y,findPaneById:ne,findPaneContainingTab:O,findTabById:H,getTabMetadata:U,getActiveTabMetadata:V,activeId:A,setActiveId:Z,activeType:v,setActiveType:$,dismissIntentId:x,setDismissIntentId:B,containerRef:ue,setContainerRef:G,removePane:J,addTab:Q,updateMetadata:K,updatePaneLock:S,selectTab:L,mergeTab:le,removeTab:se,splitPane:ee,updateSplitPercentage:oe,moveTab:Ze,poppedOutTabIds:p=[],popoutTab:R,dockTab:C}=k;an({persist:E,layout:M,setLayout:a});let{portalTargets:F,registerPortalTarget:_,registerPopoutTarget:ae,registerRenderCallback:j,renderCallbacksRef:ve,registerRenderPane:pt,renderPaneRef:ft,registerTabHeader:Lt,tabHeadersRef:mt,activeIdRef:Xe}=_t();dn({poppedOutTabIds:p,registerPopoutTarget:ae,findTabById:H,dockTab:C});let kt=useCallback(de=>p.includes(de),[p]),{overTabId:Mt,setOverTabId:Hn,overTabPosition:Ot,setOverTabPosition:$n,handleDragStartInternal:Bn,handleDragEndInternal:_n}=Vt({onDragStart:w,onDragEnd:y}),Fn=on({layout:M,_internalSetLayout:d,setLayout:a,activeId:A,setActiveId:Z,activeType:v,setActiveType:$,dismissIntentId:x,setDismissIntentId:B,setOverTabId:Hn,setOverTabPosition:$n,containerRef:ue,dragActivationDistance:s,enableDragToDismiss:b,dismissThreshold:g,onRemove:m,onDragStart:Bn,onDragEnd:_n,onDismissIntentChange:z,removeTab:se,removePane:J}),gt=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]),At=useCallback((de,Ye)=>{T&&T(de,Ye);},[T]),Vn=useMemo(()=>({layout:M,renderingLayout:h,setLayout:a,activeId:A,activeType:v,dismissIntentId:x,setContainerRef:G,fullscreenPaneId:P,classNames:gt,onRemove:m,onFullscreenChange:N,snapThreshold:u,onResizeStart:D,onResize:I,onResizeEnd:At,minSplitPercentage:f,maxSplitPercentage:l,locked:X,setLocked:Y,findPaneById:ne,findPaneContainingTab:O,findTabById:H,getTabMetadata:U,getActiveTabMetadata:V,renderPane:c,resizerSize:i,poppedOutTabIds:p,isTabPoppedOut:kt}),[M,h,A,v,x,G,P,gt,m,N,u,D,I,f,l,a,At,X,Y,ne,O,H,U,V,c,i,p,kt]),jn=useMemo(()=>({overTabId:Mt,overTabPosition:Ot}),[Mt,Ot]),Wn=useMemo(()=>({removePane:J,addTab:Q,updateMetadata:K,updatePaneLock:S,selectTab:L,mergeTab:le,removeTab:se,setFullscreenPaneId:N,setLocked:Y,splitPane:ee,updateSplitPercentage:oe,moveTab:Ze,popoutTab:R,dockTab:C}),[J,Q,K,S,L,le,se,N,Y,ee,oe,Ze,R,C]),qn=Ft(M),Un=useMemo(()=>({registerPortalTarget:_,registerRenderCallback:j,renderCallbacksRef:ve,registerRenderPane:pt,renderPaneRef:ft,registerTabHeader:Lt,tabHeadersRef:mt,activeIdRef:Xe,registerPopoutTarget:ae}),[_,j,ve,pt,ft,Lt,mt,Xe,ae]);return Xe&&(Xe.current=A),jsx(Re.Provider,{value:Wn,children:jsx(vt.Provider,{value:Vn,children:jsx(ht.Provider,{value:jn,children:jsxs(Te.Provider,{value:Un,children:[jsx(DndContext,{id:"zeugma-dnd-context",...Fn,children:n}),A&&v&&jsx(pn,{activeId:A,render:de=>jsx("div",{style:{transition:"transform 150ms cubic-bezier(0.2, 0, 0, 1)",transform:de===x?"scale(0.8)":"scale(1)",transformOrigin:"top left"},children:jsx(gn,{activeId:de,activeType:v,dismissIntentId:x,renderDragOverlay:r,renderPaneRef:ft,renderPane:c,tabHeadersRef:mt,classNames:gt})}),className:`${o.dragOverlay||""} ${A===x&&o.dismissPreview||""}`.trim()}),jsx("div",{id:"zeugma-portal-host",style:{display:"none"},children:qn.map(de=>{let Ye=F[de],zt=H(de);return zt?jsx(mn,{tabDetails:zt,target:Ye||null,renderWidget:ve.current[de]},de):null})})]})})})})},No=({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(wt,{renderPane:e,resizerSize:t,snapThreshold:n})},Io=e=>{let{children:t,...n}=e,{controller:r}=e;if(!r)throw new Error("Zeugma component requires a controller.");return jsx(So,{...e,children:t!==void 0?t:jsx(No,{...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"}}},Oo={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"}}},Ao=({id:e,fraction:t,edge:n,activeClassName:r})=>{let{setNodeRef:o,isOver:c}=useDroppable({id:e}),i={position:"absolute",pointerEvents:"none",zIndex:101,boxSizing:"border-box",...Oo[n][t]};return jsxs(Fragment,{children:[jsx("div",{ref:o,style:Mo[n][t]}),c&&jsx("div",{className:r,style:i})]})},Tn=({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(Ao,{id:n.id,fraction:n.fraction,edge:n.edge,activeClassName:e},n.id))});var it=createContext(null);var Bo={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"}},_o={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"}},lt=({id:e,position:t,activeClassName:n})=>{let{setNodeRef:r,isOver:o}=useDroppable({id:e});return jsxs(Fragment,{children:[jsx("div",{ref:r,style:Bo[t]}),o&&jsx("div",{className:n,style:_o[t]})]})};var wn=({children:e,className:t,style:n})=>{let r=useContext(it);if(!r)throw new Error("<DragHandle> must be used inside a <Pane>");let{disabled:o,...c}=r;return jsx("div",{className:t,style:{cursor:o?"default":"grab",userSelect:o?"auto":"none",touchAction:o?"auto":"none",...n},...o?{}:c,children:e})};var Jo=createContext(void 0);var We=({id:e,locked:t=false,children:n,className:r,style:o})=>{let{locked:c,classNames:i={},fullscreenPaneId:s,poppedOutTabIds:u=[]}=ie(),f=useContext(Re),{overTabId:l}=Je(),b=useContext(Te);useEffect(()=>(b?.registerTabHeader&&b.registerTabHeader(e,n),()=>{b?.registerTabHeader&&b.activeIdRef?.current!==e&&b.registerTabHeader(e,()=>null);}),[e,n,b]);let g=u.includes(e),m=useContext(Ct),w=t||c||(m?.locked??false)||s!==null,{attributes:y,listeners:D,setNodeRef:I,isDragging:T}=useDraggable({id:`tab-header-${e}`,disabled:w}),{setNodeRef:z,isOver:E}=useDroppable({id:`tab-drop-${e}`,disabled:w}),k=U=>{I(U),z(U);},M=E&&l===e,a=m?.tabIds||[],d=a.indexOf(e),h=m?.activeTabId,N=d>0&&e!==h&&a[d-1]!==h?jsx("div",{className:i.tabSeparator}):null,X=m?m.activeTabId===e:false,Y=m?.tabsMetadata?.[e],ne=useCallback(()=>{m?.selectTab(e);},[m,e]),O=useCallback(()=>{m?.removeTab(e);},[m,e]),H=useMemo(()=>({tabId:e,isActive:X,isDragging:T,isOver:M,metadata:Y,locked:w,selectTab:ne,removeTab:O,isPoppedOut:g,popoutTab:()=>f?.popoutTab(e),dockTab:()=>f?.dockTab(e)}),[e,X,T,M,Y,w,ne,O,g,f]);return jsx(Jo.Provider,{value:H,children:jsxs("div",{ref:k,id:`tab-header-${e}`,className:r,style:{display:"inline-flex",position:"relative",cursor:w?"default":"grab",...o},...w?{}:D,...w?{}:y,children:[N,n({isDragging:T,isOver:M})]})})};var Ct=createContext(void 0);var En=(e,t)=>typeof e=="function"?e(t):e,Dt=({tabIds:e,activeTabId:t,locked:n,tabsMetadata:r,selectTab:o,removeTab:c,renderTab:i,classNames:s,styles:u})=>{let f=useContext(ct),l=e??f?.tabIds??[],b=t??f?.activeTabId??"",g=n??f?.locked??false,m=r??f?.tabsMetadata,w=o??f?.selectTab??(()=>{}),y=c??f?.removeTab??(()=>{}),{classNames:D={},activeType:I,poppedOutTabIds:T=[]}=ie(),z=useContext(Re),{overTabId:E,overTabPosition:k}=Je(),M=useMemo(()=>({tabIds:l,activeTabId:b,locked:g,tabsMetadata:m,selectTab:w,removeTab:y}),[l,b,g,m,w,y]),a=Jt(l,I,E,k);return jsx(Ct.Provider,{value:M,children:jsxs("div",{className:s?.container,style:{display:"flex",alignItems:"center",height:"100%",...u?.container},children:[l.map((d,h)=>{let P=m?.[d],N=En(s?.tab,d),X=En(u?.tab,d),Y=h===a;return jsxs(ge.Fragment,{children:[Y&&D.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:D.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:h===0?"none":"translateX(-50%)"}})}),jsx(We,{id:d,locked:g,className:N,style:X,children:({isDragging:ne,isOver:O})=>i({id:d,paneId:f?.id??"",isActive:d===b,index:h,isDragging:ne,isOver:O,metadata:P,onSelect:()=>w(d),onRemove:()=>y(d),isPoppedOut:T.includes(d),popout:()=>z?.popoutTab(d),dock:()=>z?.dockTab(d)})})]},d)}),a===l.length&&D.tabDropPreview&&jsx("div",{style:{position:"relative",height:"100%",width:0,zIndex:10},children:jsx("div",{className:D.tabDropPreview,style:{position:"absolute",top:0,bottom:0,transform:"translateX(-100%)"}})})]})})};Dt.Tab=We;var Nn=({className:e,style:t,children:n})=>jsx("div",{className:e,style:t,children:n});var ct=createContext(void 0),Ln=()=>{let e=useContext(ct);if(!e)throw new Error("usePaneContext must be used within a Pane component");return e},ir=({children:e,className:t,style:n})=>{let{activeTabId:r}=Ln(),{classNames:o,isTabPoppedOut:c}=ie(),{dockTab:i}=He(),s=useRef(null),u=useContext(Te);if(!u)throw new Error("PaneContent must be used within a Zeugma provider");let{registerPortalTarget:f,registerRenderCallback:l}=u,b=useMemo(()=>typeof e=="function"?e:()=>e,[e]);l(r,b),useEffect(()=>{let m=s.current;return f(r,m),()=>{f(r,null,m);}},[r,f]);let g=c(r);return jsx("div",{ref:s,id:`zeugma-tab-target-${r}`,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:()=>i(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:m=>{m.currentTarget.style.backgroundColor="#1d4ed8";},onMouseOut:m=>{m.currentTarget.style.backgroundColor="#2563eb";},children:"Dock Back"})]})})},Oe=({id:e,children:t,style:n,locked:r=false})=>{let{layout:o,renderingLayout:c,activeId:i,activeType:s,classNames:u,fullscreenPaneId:f,onFullscreenChange:l,locked:b,poppedOutTabIds:g=[]}=ie(),{removePane:m,updateMetadata:w,selectTab:y,removeTab:D,popoutTab:I,dockTab:T}=He(),z=useMemo(()=>{if(s==="tab"&&e===i){let B=W(o,e)?.tabsMetadata?.[e];return {type:"pane",id:e,tabIds:[e],activeTabId:e,tabsMetadata:B?{[e]:B}:void 0}}return qt(e===i?o:c,e)},[o,c,e,i,s]),E=z?.id??e,k=z?.tabIds??[e],M=z?.activeTabId??e,a=z?.tabsMetadata,d=a?.[e],h=z?.locked??false,P=r||h,N=b||P||f!==null,X=b||P||f!==null,Y=i!==null&&i!==e&&(!k.includes(i)||k.length>1)&&!X,{attributes:ne,listeners:O,setNodeRef:H}=useDraggable({id:e,disabled:N}),U=i!==null&&k.includes(i),V=f===e,A=useMemo(()=>({isDragging:U,isFullscreen:V,toggleFullscreen:()=>l?.(V?null:e),remove:()=>{V&&l?.(null),m(E);},metadata:d,updateMetadata:$=>{w(e,$);},locked:N,tabIds:k,activeTabId:M,selectTab:$=>y(E,$),removeTab:$=>{V&&$===M&&l?.(null),D($);},tabsMetadata:a,updateTabMetadata:($,x)=>{w($,x);},isActiveTabPoppedOut:g.includes(M),popoutTab:$=>I($||M),dockTab:$=>T($||M)}),[U,V,l,e,D,d,w,N,k,M,y,E,a,g,I,T]),Z=useMemo(()=>N?{disabled:true}:{...O,...ne},[O,ne,N]),v=`${u.pane||""} ${P&&u.paneLocked||""}`.trim();return jsx(ct.Provider,{value:{id:e,...A},children:jsx(it.Provider,{value:Z,children:jsxs("div",{ref:H,id:e,className:v,style:{position:"relative",width:"100%",height:"100%",...n},children:[t,Y&&jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:[["top","bottom","left","right"].map($=>jsx(lt,{id:`drop-${$}-${e}`,position:$,activeClassName:u.dropPreview},$)),s==="tab"&&jsx(lt,{id:`drop-center-${e}`,position:"center",activeClassName:u.swapPreview??u.dropPreview})]}),i!==null&&i!==e&&X&&jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:15,pointerEvents:"none"},children:jsx(lt,{id:`drop-locked-${e}`,position:"full",activeClassName:u.lockedPreview||""})})]})})})};Oe.Content=ir;Oe.DragHandle=wn;Oe.Tabs=Dt;Oe.Tab=We;Oe.Controls=Nn;var dt=new Map;function qe(e){let t=dt.get(e);return t||(t={mounts:0,renders:0,listeners:new Set},dt.set(e,t)),t}function kn(e,t){let n=qe(e);return n.listeners.add(t),()=>{n.listeners.delete(t);}}function St(e){let t=dt.get(e);t&&t.listeners.forEach(n=>n());}function Mn(e){let t=dt.get(e);t&&(t.mounts=0,t.renders=0,St(e));}function Ae(e,t){let n=useId(),r=typeof e=="string"?{id:e,...t}:e||{},{id:o=n,logToConsole:c=false,disabled:i=false}=r,s=useRef(0),u=useRef(false),[,f]=useState(0);if(i||(s.current+=1),useEffect(()=>{if(i)return;let g=kn(o,()=>{f(w=>w+1);}),m=qe(o);return m.mounts+=1,u.current=true,c&&console.log(`[DevTools:${o}] Mounted: ${m.mounts} | Rendered: ${s.current}`),St(o),()=>{u.current=false,g();}},[o,i,c]),!i){let g=qe(o);g.renders=Math.max(g.renders,s.current);}let l=useCallback(()=>{s.current=0,Mn(o);},[o]);return i?{mounts:0,renders:0,reset:l}:{mounts:qe(o).mounts,renders:s.current,reset:l}}var An={"top-right":"top-2 right-2","top-left":"top-2 left-2","bottom-right":"bottom-2 right-2","bottom-left":"bottom-2 left-2"};function zn({id:e,position:t="top-right",className:n="",style:r,logToConsole:o=false,disabled:c=false}){let{mounts:i,renders:s}=Ae(e,{logToConsole:o,disabled:c});if(c)return null;let u=An[t]||An["top-right"];return jsxs("div",{className:`absolute ${u} z-50 pointer-events-none flex items-center gap-2 rounded px-2 py-1 text-[11px] font-mono bg-zinc-900/90 text-zinc-200 border border-zinc-700/80 shadow-md backdrop-blur-xs select-none ${n}`,style:r,children:[jsxs("span",{children:["M: ",jsx("strong",{className:"text-emerald-400 font-semibold",children:i})]}),jsx("span",{className:"opacity-30",children:"|"}),jsxs("span",{children:["R: ",jsx("strong",{className:"text-indigo-400 font-semibold",children:s})]})]})}function Zn({id:e,label:t,children:n,className:r="",footerClassName:o="",style:c,logToConsole:i=false,disabled:s=false}){let u=t||e||"widget",{mounts:f,renders:l}=Ae(e,{logToConsole:i,disabled:s});return s?jsx(Fragment,{children:n}):jsxs("div",{className:`h-full w-full flex flex-col overflow-hidden min-h-0 ${r}`,style:c,children:[n&&jsx("div",{className:"flex-1 overflow-hidden relative min-h-0",children:n}),jsxs("div",{className:`bg-zinc-900/90 border-t border-zinc-800 px-3 py-1.5 flex items-center justify-between text-[11px] text-zinc-400 font-mono shrink-0 select-none ${o}`,children:[jsx("span",{className:"truncate max-w-[140px] text-zinc-300 font-semibold",children:u}),jsxs("div",{className:"flex items-center gap-3",children:[jsxs("span",{children:["Mounts: ",jsx("strong",{className:"text-emerald-400 font-semibold",children:f})]}),jsx("span",{className:"opacity-20",children:"|"}),jsxs("span",{children:["Renders: ",jsx("strong",{className:"text-indigo-400 font-semibold",children:l})]})]})]})]})}export{Oe as Pane,wt as PaneTree,zn as RenderCounterBadge,Zn as RenderCounterFooter,Io as Zeugma,Ln as usePaneContext,Ae as useRenderCounter,Rt as useResizer,Kn as useZeugma,eo as useZeugmaContext};//# sourceMappingURL=index.js.map
12
12
  //# sourceMappingURL=index.js.map