react-resizable-panels 4.14.0 → 4.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -134,7 +134,9 @@ This method is recommended when saving layouts to some storage api.</p>
134
134
  <p>ℹ️ The second argument contains meta information about the layout change.
135
135
  The <code>isUserInteraction</code> attribute signals whether the resize was caused by direct user input.
136
136
  It is true for resizes caused by pointer or keyboard input
137
- and false for other triggers (e.g. imperative API calls, initial mount, etc.)</p>
137
+ and false for other triggers (e.g. imperative API calls, initial mount, etc.)
138
+ The <code>requestedLayout</code> attribute is the layout before constraints were applied for the current Group size;
139
+ prefer it when persisting layouts.</p>
138
140
  </td>
139
141
  </tr>
140
142
  <tr>
@@ -1,2 +1,2 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const H=require("react/jsx-runtime"),x=require("react");function Me(e){const n=x.useId();return`${e??n}`}const te=typeof window<"u"?x.useLayoutEffect:x.useEffect;function he(e){const n=x.useRef(e);return te(()=>{n.current=e},[e]),x.useCallback((...t)=>n.current?.(...t),[n])}function Ne(...e){return he(n=>{e.forEach(t=>{if(t)switch(typeof t){case"function":{t(n);break}case"object":{t.current=n;break}}})})}function Ke(e,n){return n?e*2+1:e+1}function rn(e,n){return n?e*2-1:e}function ct(e,n,t){const o=Ke(e,t);return n===void 0?`${o} / -1`:`${o} / span ${rn(n,t)}`}function sn(e){return`${e*2} / span 1`}function an({crossCount:e,crossSpan:n,crossStart:t,hasGutters:o}){const r=n===void 0?e:t+n;if(t===0&&r===e)return"1 / -1";let i=Ke(t,o),s=Ke(r-1,o)+1;return o&&(t>0&&i--,r<e&&s++),`${i} / ${s}`}function et(e,n){return Number.isInteger(e)&&e>=1&&e<n}function O(e,n="Assertion error"){if(!e)throw Error(n)}const kt=x.createContext(null);function $t(){const e=x.useContext(kt);return O(e,"Grid Context not found; did you render a Cell or Gridline outside of a Grid?"),e}function Tt({children:e,className:n,column:t,columnSpan:o=1,elementRef:r,id:i,row:s,rowSpan:l=1,style:a,...c}){const u=Me(i),{gutters:f,registerCell:g}=$t(),m=x.useRef(null),y=Ne(m,r);return te(()=>{const d=m.current;if(d!==null)return g({column:t,columnSpan:o,element:d,id:u,row:s,rowSpan:l})},[t,o,u,g,s,l]),H.jsx("div",{...c,className:n,"data-cell":!0,"data-testid":u,id:u,ref:y,style:{overflow:"auto",...a,minHeight:0,minWidth:0,gridColumn:ct(t,o,f.column),gridRow:ct(s,l,f.row)},children:e})}Tt.displayName="Cell";let _e;function Dt(){return _e===void 0&&(typeof matchMedia=="function"?_e=!!matchMedia("(pointer:coarse)").matches:_e=!1),_e}function Xe({expandHitTargets:e,axis:n,rect:t}){const o=e?Dt()?n.resizeTargetMinimumSize.coarse:n.resizeTargetMinimumSize.fine:0;if(t.width<o){const r=o-t.width;t=new DOMRect(t.x-r/2,t.y,t.width+r,t.height)}if(t.height<o){const r=o-t.height;t=new DOMRect(t.x,t.y-r/2,t.width,t.height+r)}return t}function ut({axis:e,cells:n,index:t,rect:o}){let r=[o];for(const i of n){const s=e==="column"?i.column:i.row,l=e==="column"?i.columnSpan:i.rowSpan;if(s>=t||s+l<=t)continue;const a=i.element.getBoundingClientRect(),c=e==="column"?a.top:a.left,u=e==="column"?a.bottom:a.right;u<=c||(r=r.flatMap(f=>{const g=e==="column"?f.top:f.left,m=e==="column"?f.bottom:f.right;if(c>=m||u<=g)return[f];const y=[],d=(S,h)=>{y.push(e==="column"?new DOMRect(f.x,S,f.width,h-S):new DOMRect(S,f.y,h-S,f.height))};return g<c&&d(g,c),m>u&&d(u,m),y}))}return r}function ln({axis:e,cells:n,crossTrackCount:t,expandHitTargets:o,resizeAxis:r,axisSize:i,includeDisabled:s,separatorPlacements:l}){const{items:a,separators:c}=r,u=a.length;let f=-1,g=-1,m=0;if(a.forEach((b,w)=>{b.constraintProps.disabled||(m++,f===-1&&(f=w),g=w)}),!s&&m<2)return[];const y=b=>s||b>f&&b<=g,d=[],S=(b,w,v)=>({axis:r,axisSize:i,items:[a[b-1],a[b]],rect:w,separator:v}),h=(b,w)=>{let v;for(const P of n){const k=e==="column"?P.row:P.column,T=e==="column"?P.rowSpan:P.columnSpan;if(w==="start"?k===b:k+T-1===b){const E=P.element.getBoundingClientRect();if(w==="start"){const I=e==="column"?E.top:E.left;v=v===void 0?I:Math.min(v,I)}else{const I=e==="column"?E.bottom:E.right;v=v===void 0?I:Math.max(v,I)}}}return v},p=new Set;for(const b of c){const w=l.get(b);if(!w||w.index<1||w.index>=u||(p.add(w.index),!s&&(b.disabled||b.element.hasAttribute("aria-disabled")))||!y(w.index))continue;let v=b.element.getBoundingClientRect();const{crossSpan:P,crossStart:k}=w,T=P===void 0?t:k+P;let E=e==="column"?v.top:v.left,I=e==="column"?v.bottom:v.right;if(k>0){const C=h(k-1,"end");C!==void 0&&C<E&&(E=C)}if(T<t){const C=h(T,"start");C!==void 0&&C>I&&(I=C)}v=e==="column"?new DOMRect(v.x,E,v.width,I-E):new DOMRect(E,v.y,I-E,v.height),v=Xe({expandHitTargets:o,axis:r,rect:v}),s?d.push(S(w.index,v,b)):ut({axis:e,cells:n,index:w.index,rect:v}).forEach(C=>{d.push(S(w.index,C,b))})}const R=(b,w)=>{ut({axis:e,cells:n,index:b,rect:Xe({expandHitTargets:o,axis:r,rect:w})}).forEach(v=>{d.push(S(b,v))})},z=Array.from({length:t},()=>new Array(u));for(const b of n){const[w,v,P,k]=e==="column"?[b.column,b.columnSpan,b.row,b.rowSpan]:[b.row,b.rowSpan,b.column,b.columnSpan];for(let T=Math.max(0,P);T<Math.min(t,P+k);T++)for(let E=Math.max(0,w);E<Math.min(u,w+v);E++)z[T][E]??=b}const L=new Map,A=b=>{let w=L.get(b);if(!w){const v=b.element.getBoundingClientRect();w=e==="column"?{crossEnd:v.bottom,crossStart:v.top,end:v.right,start:v.left}:{crossEnd:v.right,crossStart:v.left,end:v.bottom,start:v.top},L.set(b,w)}return w},G=({crossEnd:b,crossStart:w,end:v,start:P})=>e==="column"?new DOMRect(P,w,v-P,b-w):new DOMRect(w,P,b-w,v-P);for(let b=1;b<u;b++){if(p.has(b)||!y(b))continue;let w;for(let v=0;v<t;v++){const P=z[v][b-1],k=z[v][b];let T;if((P||k)&&P!==k){const E=P?A(P):void 0,I=k?A(k):void 0,C=E?.end??I.start,_=I?.start??E.end,U=Math.max(E?.crossStart??-1/0,I?.crossStart??-1/0),J=Math.min(E?.crossEnd??1/0,I?.crossEnd??1/0);T={crossEnd:Math.max(U,J),crossStart:U,end:Math.max(C,_),start:Math.min(C,_)}}T?w=w?{crossEnd:Math.max(w.crossEnd,T.crossEnd),crossStart:Math.min(w.crossStart,T.crossStart),end:Math.max(w.end,T.end),start:Math.min(w.start,T.start)}:T:w&&(R(b,G(w)),w=void 0)}w&&R(b,G(w))}return d}function le(e){const n=parseFloat(e??"");return Number.isFinite(n)?n:0}function cn({axis:e,element:n,gutterSizes:t,hasGutters:o,layout:r,trackIds:i}){const s=i.length,l=o?s*2-1:s,a=n.ownerDocument.defaultView?.getComputedStyle(n),c=e==="column"?a?.gridTemplateColumns:a?.gridTemplateRows;if(c){const d=c.trim().split(/\s+/);if(d.length===l&&d.every(S=>/^-?[\d.]+px$/.test(S))){const S=i.map((h,p)=>le(d[o?p*2:p]));return{availableSize:S.reduce((h,p)=>h+p,0),trackSizes:S}}}const u=e==="column"?n.offsetWidth:n.offsetHeight,f=e==="column"?le(a?.paddingLeft)+le(a?.paddingRight)+le(a?.borderLeftWidth)+le(a?.borderRightWidth):le(a?.paddingTop)+le(a?.paddingBottom)+le(a?.borderTopWidth)+le(a?.borderBottomWidth),g=le(e==="column"?a?.columnGap:a?.rowGap),m=t.reduce((d,S)=>d+S,0),y=Math.max(0,u-f-g*Math.max(0,l-1)-m);return{availableSize:y,trackSizes:i.map(d=>r&&r[d]!==void 0?r[d]/100*y:y/s)}}function Ot(e){switch(typeof e){case"number":return[e,"px"];case"string":{const n=parseFloat(e);return e.endsWith("%")?[n,"%"]:e.endsWith("px")?[n,"px"]:e.endsWith("rem")?[n,"rem"]:e.endsWith("em")?[n,"em"]:e.endsWith("vh")?[n,"vh"]:e.endsWith("vw")?[n,"vw"]:[n,"%"]}}}class At{#e={};addListener(n,t){const o=this.#e[n];return o===void 0?this.#e[n]=[t]:o.includes(t)||o.push(t),()=>{this.removeListener(n,t)}}emit(n,t){const o=this.#e[n];if(o!==void 0)if(o.length===1)o[0].call(null,t);else{let r=!1,i=null;const s=Array.from(o);for(let l=0;l<s.length;l++){const a=s[l];try{a.call(null,t)}catch(c){i===null&&(r=!0,i=c)}}if(r)throw i}}removeAllListeners(){this.#e={}}removeListener(n,t){const o=this.#e[n];if(o!==void 0){const r=o.indexOf(t);r>=0&&o.splice(r,1)}}}let B={cursorFlags:0,state:"inactive"};const tt=new At;function de(){return B}function Gt(e){return tt.addListener("change",e)}function un(e,n=[],t,o=!1){const r=B,i={...B};i.cursorFlags=e,i.state==="active"&&(i.didPointerMove||=o,i.previews=n,t&&(i.previewLayoutMap=t)),B=i,tt.emit("change",{prev:r,next:i})}function fe(e){const n=B;B=e,n.state==="active"&&e.state!=="active"&&n.didPointerMove&&n.hitRegions.forEach(({separator:t})=>{t&&t.element.ownerDocument.activeElement===t.element&&t.element.blur()}),tt.emit("change",{prev:n,next:e})}function fn(e){B.state!=="active"||!B.previews.some(n=>n.separator===e)||fe({...B,previews:B.previews.map(n=>n.separator===e?{...n}:n)})}function dn(e){if(B.state==="inactive")return!1;const n=B.hitRegions.filter(o=>o.axis!==e),t=B.state==="active"&&B.previews.some(o=>o.axis===e);if(n.length===B.hitRegions.length&&!t)return!1;if(n.length===0)fe({cursorFlags:0,state:"inactive"});else if(B.state==="active"){const o=new Map(B.initialLayoutMap),r=new Map(B.previewLayoutMap);o.delete(e),r.delete(e),fe({...B,cursorFlags:0,hitRegions:n,initialLayoutMap:o,previewLayoutMap:r,previews:B.previews.filter(i=>i.axis!==e)})}else fe({...B,hitRegions:n});return!0}const mn=e=>e,Ye=()=>{},Nt=1,jt=2,_t=4,Ft=8,ft=3,dt=12;let Fe;function mt(){return Fe===void 0&&(Fe=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(Fe=!0)),Fe}function pn({cursorFlags:e,axes:n,state:t}){let o=0,r=0;switch(t){case"active":case"hover":n.forEach(i=>{if(!i.mutableState.disableCursor)switch(i.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(!(o===0&&r===0)){switch(t){case"active":{if(e&&mt()){const i=(e&Nt)!==0,s=(e&jt)!==0,l=(e&_t)!==0,a=(e&Ft)!==0;if(i)return l?"se-resize":a?"ne-resize":"e-resize";if(s)return l?"sw-resize":a?"nw-resize":"w-resize";if(l)return"s-resize";if(a)return"n-resize"}break}}return mt()?o>0&&r>0?"move":o>0?"ew-resize":"ns-resize":o>0&&r>0?"grab":o>0?"col-resize":"row-resize"}}const pt=new WeakMap;function Oe(e){if(!e.defaultView||!e.adoptedStyleSheets)return;let{prevStyle:n,styleSheet:t}=pt.get(e)??{};t===void 0&&(t=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(t):e.adoptedStyleSheets=[...e.adoptedStyleSheets,t]));const o=de();switch(o.state){case"active":case"hover":{const r=pn({cursorFlags:o.cursorFlags,axes:o.hitRegions.map(s=>s.axis),state:o.state}),i=`*, *:hover {cursor: ${r} !important; }`;if(n===i)return;n=i,r?t.cssRules.length===0?t.insertRule(i):t.replaceSync(i):t.cssRules.length===1&&t.deleteRule(0);break}case"inactive":{n=void 0,t.cssRules.length===1&&t.deleteRule(0);break}}pt.set(e,{prevStyle:n,styleSheet:t})}function Le({axis:e}){const{layoutStrategy:n,orientation:t,items:o}=e;return n?n.calculateAvailableSize():o.reduce((r,i)=>(r+=t==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,r),0)}function Je(e,n){return Array.from(n).sort((t,o)=>{const r=e==="horizontal"?hn(t,o):gn(t,o);if(r!==0)return r;const i=t.element.compareDocumentPosition(o.element);return i&Node.DOCUMENT_POSITION_DISCONNECTED?0:i&Node.DOCUMENT_POSITION_FOLLOWING?-1:i&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function hn(e,n){const t=e.element.offsetLeft-n.element.offsetLeft;return t!==0?t:e.element.offsetWidth-n.element.offsetWidth}function gn(e,n){const t=e.element.offsetTop-n.element.offsetTop;return t!==0?t:e.element.offsetHeight-n.element.offsetHeight}function Ze(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Bt(e,n){return{x:e.x>=n.left&&e.x<=n.right?0:Math.min(Math.abs(e.x-n.left),Math.abs(e.x-n.right)),y:e.y>=n.top&&e.y<=n.bottom?0:Math.min(Math.abs(e.y-n.top),Math.abs(e.y-n.bottom))}}function yn({orientation:e,rects:n,targetRect:t}){const o={x:t.x+t.width/2,y:t.y+t.height/2};let r,i=Number.MAX_VALUE;for(const s of n){const{x:l,y:a}=Bt(o,s),c=e==="horizontal"?l:a;c<i&&(i=c,r=s)}return O(r,"No rect found"),r}function nt({expandHitTargets:e=!0,axis:n,includeDisabled:t=!1}){if(n.layoutStrategy)return n.layoutStrategy.calculateHitRegions({expandHitTargets:e,axis:n,includeDisabled:t});const{element:o,orientation:r,items:i,separators:s}=n,l=Je(r,Array.from(o.children).filter(Ze).filter(h=>!h.hasAttribute("data-resize-preview")).map(h=>({element:h}))).map(({element:h})=>h),a=[];let c=!1,u=!1,f=-1,g,m=-1,y=0,d,S=[];{let h=-1;for(const p of l)p.hasAttribute("data-panel")&&(h++,p.hasAttribute("data-disabled")||(y++,f===-1&&(f=h),m=h))}if(t||y>1){let h=-1;for(const p of l)if(p.hasAttribute("data-panel")){h++;const R=i.find(z=>z.element===p);if(R){if(d){const z=d.element.getBoundingClientRect(),L=p.getBoundingClientRect();let A;if(u){const G=r==="horizontal"?new DOMRect(z.right,z.top,0,z.height):new DOMRect(z.left,z.bottom,z.width,0),b=r==="horizontal"?new DOMRect(L.left,L.top,0,L.height):new DOMRect(L.left,L.top,L.width,0);switch(S.length){case 0:{A=[G,b];break}case 1:{const w=S[0],v=yn({orientation:r,rects:[z,L],targetRect:w.element.getBoundingClientRect()});A=[w,v===z?b:G];break}default:{A=S;break}}}else S.length?A=S:A=[r==="horizontal"?new DOMRect(z.right,L.top,L.left-z.right,L.height):new DOMRect(L.left,z.bottom,L.width,L.top-z.bottom)];for(const G of A){const b=Xe({expandHitTargets:e,axis:n,rect:"width"in G?G:G.element.getBoundingClientRect()}),w=h<=f||h>m;(t||!c&&!w)&&(g??=Le({axis:n}),a.push({axis:n,axisSize:g,items:[d,R],separator:"width"in G?void 0:G,rect:b})),c=!1}}u=!1,d=R,S=[]}}else if(p.hasAttribute("data-separator")){p.ariaDisabled!==null&&(c=!0);const R=s.find(z=>z.element===p);R?S.push(R):(d=void 0,S=[])}else u=!0}return a}function Sn(e,n){const t=getComputedStyle(e),o=parseFloat(t.fontSize);return n*o}function vn(e,n){const t=getComputedStyle(e.ownerDocument.documentElement),o=parseFloat(t.fontSize);return n*o}function bn(e){return e/100*window.innerHeight}function xn(e){return e/100*window.innerWidth}function ze({axisSize:e,itemElement:n,styleProp:t}){let o;const[r,i]=Ot(t);switch(i){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=vn(n,r);break}case"em":{o=Sn(n,r);break}case"vh":{o=bn(r);break}case"vw":{o=xn(r);break}}return o}function X(e){return parseFloat(e.toFixed(3))}function Qe(e){const{items:n}=e,t=Le({axis:e});return t===0?n.map(o=>({groupResizeBehavior:o.constraintProps.groupResizeBehavior,collapsedSize:0,collapsible:o.constraintProps.collapsible===!0,defaultSize:void 0,disabled:o.constraintProps.disabled,minSize:0,maxSize:100,itemId:o.id})):n.map(o=>{const{element:r,constraintProps:i}=o;let s=0;if(i.collapsedSize!==void 0){const f=ze({axisSize:t,itemElement:r,styleProp:i.collapsedSize});s=X(f/t*100)}let l;if(i.collapsedThreshold!==void 0){const f=ze({axisSize:t,itemElement:r,styleProp:i.collapsedThreshold});l=X(f/t*100)}let a;if(i.defaultSize!==void 0){const f=ze({axisSize:t,itemElement:r,styleProp:i.defaultSize});a=X(f/t*100)}let c=0;if(i.minSize!==void 0){const f=ze({axisSize:t,itemElement:r,styleProp:i.minSize});c=X(f/t*100)}let u=100;if(i.maxSize!==void 0){const f=ze({axisSize:t,itemElement:r,styleProp:i.maxSize});u=X(f/t*100)}return{groupResizeBehavior:i.groupResizeBehavior,collapsedSize:s,collapsedThreshold:l,collapsible:i.collapsible===!0,defaultSize:a,disabled:i.disabled,minSize:c,maxSize:u,itemId:o.id}})}let ue=new Map;const Ht=new At;function wn(e){ue=new Map(ue),ue.delete(e)}function Ce(e,n){for(const[t]of ue)if(t.id===e)return t}function se(e,n){for(const[t,o]of ue)if(t.id===e)return o;if(n)throw Error(`Could not find data for Group with id ${e}`)}function ge(){return ue}function Ae(e,n){return Ht.addListener("axisChange",t=>{t.axis.id===e&&n(t)})}function me(e,n,t){const o=ue.get(e);ue=new Map(ue),ue.set(e,n),Ht.emit("axisChange",{axis:e,isUserInteraction:t?.isUserInteraction===!0,prev:o,next:n})}function zn(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!=n[t])return!1;return!0}function V(e,n,t=0){return Math.abs(X(e)-X(n))<=t}function ce(e,n){return V(e,n)?0:e>n?1:-1}function Re({overrideDisabledItems:e,itemConstraints:n,prevSize:t,size:o}){const{collapsedSize:r=0,collapsedThreshold:i,collapsible:s,disabled:l,maxSize:a=100,minSize:c=0}=n;if(l&&!e)return t;if(ce(o,c)<0)if(s){const u=i??(c-r)/2,f=ce(t,r)<=0,g=f?r+u:c-u,m=ce(o,g);ce(o,r)<=0||m<0||i!==void 0&&f&&m===0?o=r:o=c}else o=c;return o=Math.min(a,o),o=X(o),o}function Ge({delta:e,initialLayout:n,itemConstraints:t,pivotIndices:o,prevLayout:r,trigger:i}){if(V(e,0))return n;const s=i==="imperative-api",l=t.map(({itemId:y})=>n[y]),a=t.map(({itemId:y})=>r[y]),c=[...l],[u,f]=o;O(u!=null,"Invalid first pivot index"),O(f!=null,"Invalid second pivot index");let g=0;switch(i){case"keyboard":{{const y=e<0?f:u,d=t[y];O(d,`Panel constraints not found for index ${y}`);const{collapsedSize:S=0,collapsible:h,minSize:p=0}=d;if(h){const R=l[y];if(O(R!=null,`Previous layout not found for panel index ${y}`),V(R,S)){const z=p-R;ce(z,Math.abs(e))>0&&(e=e<0?0-z:z)}}}{const y=e<0?u:f,d=t[y];O(d,`No panel constraints found for index ${y}`);const{collapsedSize:S=0,collapsible:h,minSize:p=0}=d;if(h){const R=l[y];if(O(R!=null,`Previous layout not found for panel index ${y}`),V(R,p)){const z=R-S;ce(z,Math.abs(e))>0&&(e=e<0?0-z:z)}}}break}default:{const y=e<0?f:u,d=t[y];O(d,`Panel constraints not found for index ${y}`);const S=l[y],{collapsedSize:h,collapsedThreshold:p,collapsible:R,minSize:z}=d;if(R&&ce(S,z)<0){const L=z-h,A=p??L/2,G=S+Math.abs(e);if(ce(G,z)<0){const b=ce(Math.abs(e),A),w=p===void 0&&e<0;b>0||b===0&&w?e=e<0?-L:L:e=0}}break}}{const y=e<0?1:-1;let d=e<0?f:u,S=0;for(;;){const p=l[d];O(p!=null,`Previous layout not found for panel index ${d}`);const z=Re({overrideDisabledItems:s,itemConstraints:t[d],prevSize:p,size:100})-p;if(S+=z,d+=y,d<0||d>=t.length)break}const h=Math.min(Math.abs(e),Math.abs(S));e=e<0?0-h:h}{let d=e<0?u:f;for(;d>=0&&d<t.length;){const S=Math.abs(e)-Math.abs(g),h=l[d];O(h!=null,`Previous layout not found for panel index ${d}`);const p=h-S,R=Re({overrideDisabledItems:s,itemConstraints:t[d],prevSize:h,size:p});if(!V(h,R)&&(g+=h-R,c[d]=R,g.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(zn(a,c))return r;{const y=e<0?f:u,d=l[y];O(d!=null,`Previous layout not found for panel index ${y}`);const S=d+g,h=Re({overrideDisabledItems:s,itemConstraints:t[y],prevSize:d,size:S});if(c[y]=h,!V(h,S)){let p=S-h,z=e<0?f:u;for(;z>=0&&z<t.length;){const L=c[z];O(L!=null,`Previous layout not found for panel index ${z}`);const A=L+p,G=Re({overrideDisabledItems:s,itemConstraints:t[z],prevSize:L,size:A});if(V(L,G)||(p-=G-L,c[z]=G),V(p,0))break;e>0?z--:z++}}}const m=Object.values(c).reduce((y,d)=>d+y,0);return V(m,100,.1)?c.reduce((y,d,S)=>(y[t[S].itemId]=d,y),{}):r}function re(e,n){if(Object.keys(e).length!==Object.keys(n).length)return!1;for(const t in e)if(n[t]===void 0||ce(e[t],n[t])!==0)return!1;return!0}function ot({commit:e,document:n,event:t,hitRegions:o,initialLayoutMap:r,mountedAxes:i,pointerDownAtPoint:s,prevCursorFlags:l}){let a=0;const c=de();let u=c.state==="active"?c.previews:[];const f=new Map(c.state==="active"?c.previewLayoutMap:void 0);o.forEach(y=>{const{axis:d,axisSize:S}=y,{orientation:h,items:p}=d;if(e&&d.resizePreviewMode!=="separator")return;const{disableCursor:R}=d.mutableState;let z=0;s?h==="horizontal"?z=(t.clientX-s.x)/S*100:z=(t.clientY-s.y)/S*100:h==="horizontal"?z=t.clientX<0?-100:100:z=t.clientY<0?-100:100;const L=r.get(d),A=i.get(d);if(!L||!A)return;const{defaultLayoutDeferred:G,derivedItemConstraints:b,axisSize:w,layout:v,separatorToItems:P}=A;if(b&&v&&P){const k=d.resizePreviewMode==="separator"?f.get(d)??v:v,T=Ge({delta:z,initialLayout:L,itemConstraints:b,pivotIndices:y.items.map(E=>p.indexOf(E)),prevLayout:k,trigger:"mouse-or-touch"});if(d.resizePreviewMode==="separator"&&!e&&!re(T,k)){f.set(d,T);let E=0;const I=p.map(C=>(E+=T[C.id]-L[C.id],E*(S/100)));u=u.map(C=>{if(C.axis!==d)return C;const _=I[C.itemIndex];return _===C.offset?C:{...C,offset:_}})}if(re(T,k)&&z!==0&&!R)switch(h){case"horizontal":{a|=z<0?Nt:jt;break}case"vertical":{a|=z<0?_t:Ft;break}}(d.resizePreviewMode!=="separator"||e)&&!re(T,v)&&me(y.axis,{defaultLayoutDeferred:G,derivedItemConstraints:b,axisSize:w,layout:T,separatorToItems:P})}});let g=0;t.movementX===0?g|=l&ft:g|=a&ft,t.movementY===0?g|=l&dt:g|=a&dt;const m=c.state==="active"&&(t.clientX!==c.pointerDownAtPoint.x||t.clientY!==c.pointerDownAtPoint.y);un(g,u,f,m),Oe(n)}function Vt(e,n){const t=de(),o=ge();let r=!1;switch(t.state){case"active":ot({commit:!0,document:e,event:n,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedAxes:o,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags}),fe({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(Oe(e),r=!0,t.hitRegions.forEach(i=>{if(!o.has(i.axis))return;const s=se(i.axis.id,!0);me(i.axis,s,{isUserInteraction:!0})}))}return r}function ht(e){e.defaultPrevented||Vt(e.currentTarget,e)}function In(e,n,t){let o,r={x:1/0,y:1/0};for(const i of n){const s=Bt(t,i.rect);switch(e){case"horizontal":{(s.x<r.x||s.x===r.x&&s.y<=r.y)&&(o=i,r=s);break}case"vertical":{(s.y<r.y||s.y===r.y&&s.x<=r.x)&&(o=i,r=s);break}}}return o?{distance:r,hitRegion:o}:void 0}function Cn(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Rn(e,n){if(e===n)throw new Error("Cannot compare node with itself");const t={a:St(e),b:St(n)};let o;for(;t.a.at(-1)===t.b.at(-1);)o=t.a.pop(),t.b.pop();O(o,"Stacking order can only be calculated for elements with a common ancestor");const r={a:yt(gt(t.a)),b:yt(gt(t.b))};if(r.a===r.b){const i=o.childNodes,s={a:t.a.at(-1),b:t.b.at(-1)};let l=i.length;for(;l--;){const a=i[l];if(a===s.a)return 1;if(a===s.b)return-1}}return Math.sign(r.a-r.b)}const Ln=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Mn(e){const n=getComputedStyle(Ut(e)??e).display;return n==="flex"||n==="inline-flex"}function En(e){const n=getComputedStyle(e);return!!(n.position==="fixed"||n.zIndex!=="auto"&&(n.position!=="static"||Mn(e))||+n.opacity<1||"transform"in n&&n.transform!=="none"||"webkitTransform"in n&&n.webkitTransform!=="none"||"mixBlendMode"in n&&n.mixBlendMode!=="normal"||"filter"in n&&n.filter!=="none"||"webkitFilter"in n&&n.webkitFilter!=="none"||"isolation"in n&&n.isolation==="isolate"||Ln.test(n.willChange)||n.webkitOverflowScrolling==="touch")}function gt(e){let n=e.length;for(;n--;){const t=e[n];if(O(t,"Missing node"),En(t))return t}return null}function yt(e){return e&&Number(getComputedStyle(e).zIndex)||0}function St(e){const n=[];for(;e;)n.push(e),e=Ut(e);return n}function Ut(e){const{parentNode:n}=e;return Cn(n)?n.host:n}function Pn(e,n){return e.x<n.x+n.width&&e.x+e.width>n.x&&e.y<n.y+n.height&&e.y+e.height>n.y}function kn(e){try{return e.matches(":modal")}catch{return!1}}function $n({axisElement:e,hitRegion:n,pointerEventTarget:t}){if(Ze(t)){const o=t.closest("dialog");if(o&&!o.contains(e)&&kn(o))return!1}if(!Ze(t)||t.contains(e)||e.contains(t))return!0;if(Rn(t,e)>0){let o=t;for(;o;){if(o.contains(e))return!0;if(Pn(o.getBoundingClientRect(),n))return!1;o=o.parentElement}}return!0}function rt(e,n){const t=[];return n.forEach((o,r)=>{if(r.disabled)return;const i=nt({axis:r}),s=In(r.orientation,i,{x:e.clientX,y:e.clientY});s&&s.distance.x<=0&&s.distance.y<=0&&$n({axisElement:r.element,hitRegion:s.hitRegion.rect,pointerEventTarget:e.target})&&t.push(s.hitRegion)}),t}function ve({layout:e,itemConstraints:n}){const t=n.map(({itemId:s})=>e[s]),o=[...t],r=o.reduce((s,l)=>s+l,0);if(Object.keys(e).length!==n.length)throw Error(`Invalid ${n.length} panel layout: ${Object.values(e).map(s=>`${s}%`).join(", ")}`);if(!V(r,100)&&o.length>0)for(let s=0;s<n.length;s++){const l=o[s];O(l!=null,`No layout data found for index ${s}`);const a=100/r*l;o[s]=a}let i=0;for(let s=0;s<n.length;s++){const l=t[s];O(l!=null,`No layout data found for index ${s}`);const a=o[s];O(a!=null,`No layout data found for index ${s}`);const c=Re({overrideDisabledItems:!0,itemConstraints:n[s],prevSize:l,size:a});a!=c&&(i+=a-c,o[s]=c)}if(!V(i,0))for(let s=0;s<n.length;s++){const l=o[s];O(l!=null,`No layout data found for index ${s}`);const a=l+i,c=Re({overrideDisabledItems:!0,itemConstraints:n[s],prevSize:l,size:a});if(l!==c&&(i-=c-l,o[s]=c,V(i,0)))break}return o.reduce((s,l,a)=>(s[n[a].itemId]=l,s),{})}function it({axisId:e,itemId:n}){const t=()=>{const a=ge();for(const[c,{defaultLayoutDeferred:u,derivedItemConstraints:f,layout:g,axisSize:m,separatorToItems:y}]of a)if(c.id===e)return{defaultLayoutDeferred:u,derivedItemConstraints:f,axis:c,axisSize:m,layout:g,separatorToItems:y};throw Error(`Group ${e} not found`)},o=()=>{const a=t().derivedItemConstraints.find(c=>c.itemId===n);if(a!==void 0)return a;throw Error(`Panel constraints not found for Panel ${n}`)},r=()=>{const a=t().axis.items.find(c=>c.id===n);if(a!==void 0)return a;throw Error(`Layout not found for Panel ${n}`)},i=()=>{const a=t().layout[n];if(a!==void 0)return a;throw Error(`Layout not found for Panel ${n}`)},s=({nextSize:a,items:c,prevLayout:u,derivedItemConstraints:f})=>{const g=i(),m=c.findIndex(h=>h.id===n),y=m===0,d=m===c.length-1;if(d&&a<g&&(y||c.slice(0,m).every((h,p)=>{const R=f[p];return R?.collapsible&&V(R.collapsedSize,u[R.itemId])}))){const h=c.slice(0,m).reduce((p,R)=>p+u[R.id],0);return{...u,[n]:X(100-h)}}return Ge({delta:d?g-a:a-g,initialLayout:u,itemConstraints:f,pivotIndices:d?[m-1,m]:[m,m+1],prevLayout:u,trigger:"imperative-api"})},l=a=>{const c=i();if(a===c)return;const{defaultLayoutDeferred:u,derivedItemConstraints:f,axis:g,axisSize:m,layout:y,separatorToItems:d}=t(),S=s({nextSize:a,items:g.items,prevLayout:y,derivedItemConstraints:f}),h=ve({layout:S,itemConstraints:f});re(y,h)||me(g,{defaultLayoutDeferred:u,derivedItemConstraints:f,axisSize:m,layout:h,separatorToItems:d})};return{collapse:()=>{const{collapsible:a,collapsedSize:c}=o(),{mutableValues:u}=r(),f=i();a&&f!==c&&(u.expandToSize=f,l(c))},expand:()=>{const{collapsible:a,collapsedSize:c,minSize:u}=o(),{mutableValues:f}=r(),g=i();if(a&&g===c){let m=f.expandToSize??u;m===0&&(m=1),l(m)}},getSize:()=>{const{axis:a}=t(),c=i(),{element:u}=r(),f=a.layoutStrategy?a.layoutStrategy.getItemSizeInPixels(n):a.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:c,inPixels:f}},isCollapsed:()=>{const{collapsible:a,collapsedSize:c}=o(),u=i();return a&&V(c,u)},resize:a=>{const{axis:c}=t(),{element:u}=r(),f=Le({axis:c}),g=ze({axisSize:f,itemElement:u,styleProp:a}),m=X(g/f*100);l(m)}}}function vt(e){if(e.defaultPrevented)return;const n=ge();rt(e,n).forEach(o=>{if(o.separator&&!o.separator.disableDoubleClick){const r=o.items.find(i=>i.constraintProps.defaultSize!==void 0);if(r){const i=r.constraintProps.defaultSize,s=it({axisId:o.axis.id,itemId:r.id});s&&i!==void 0&&(s.resize(i),e.preventDefault())}}})}function Wt(e){const n=ge();for(const[t]of n)if(t.separators.some(o=>o.element===e))return t;throw Error("Could not find parent Group for separator element")}function De({axisId:e}){const n=()=>{const t=ge();for(const[o,r]of t)if(o.id===e)return{axis:o,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:t,layout:o}=n();return t?{}:o},setLayout(t){const{defaultLayoutDeferred:o,derivedItemConstraints:r,axis:i,axisSize:s,layout:l,separatorToItems:a}=n(),c=ve({layout:t,itemConstraints:r});return o?l:(re(l,c)||me(i,{defaultLayoutDeferred:o,derivedItemConstraints:r,axisSize:s,layout:c,separatorToItems:a}),c)}}}function Se(e,n){const t=Wt(e),o=se(t.id,!0),r=t.separators.find(f=>f.element===e);O(r,"Matching separator not found");const i=o.separatorToItems.get(r);O(i,"Matching panels not found");const s=i.map(f=>t.items.indexOf(f)),a=De({axisId:t.id}).getLayout(),c=Ge({delta:n,initialLayout:a,itemConstraints:o.derivedItemConstraints,pivotIndices:s,prevLayout:a,trigger:"keyboard"}),u=ve({layout:c,itemConstraints:o.derivedItemConstraints});re(a,u)||me(t,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedItemConstraints:o.derivedItemConstraints,axisSize:o.axisSize,layout:u,separatorToItems:o.separatorToItems},{isUserInteraction:!0})}function bt(e){if(e.defaultPrevented)return;const n=e.currentTarget,t=Wt(n);if(!(t.disabled||t.separators.find(r=>r.element===n)?.disabled))switch(e.key){case"ArrowDown":{e.preventDefault(),t.orientation==="vertical"&&Se(n,5);break}case"ArrowLeft":{e.preventDefault(),t.orientation==="horizontal"&&Se(n,-5);break}case"ArrowRight":{e.preventDefault(),t.orientation==="horizontal"&&Se(n,5);break}case"ArrowUp":{e.preventDefault(),t.orientation==="vertical"&&Se(n,-5);break}case"End":{e.preventDefault(),Se(n,100);break}case"Enter":{e.preventDefault();const r=se(t.id,!0),{derivedItemConstraints:i,layout:s,separatorToItems:l}=r,a=t.separators.find(g=>g.element===n);O(a,"Matching separator not found");const c=l.get(a);O(c,"Matching panels not found");const u=c[0],f=i.find(g=>g.itemId===u.id);if(O(f,"Panel metadata not found"),f.collapsible){const g=s[u.id],m=f.collapsedSize===g?t.mutableState.expandedItemSizes[u.id]??f.minSize:f.collapsedSize;Se(n,m-g)}break}case"F6":{e.preventDefault();const r=t.separators.map(a=>a.element),i=Array.from(r).findIndex(a=>a===e.currentTarget);O(i!==null,"Index not found");const s=e.shiftKey?i>0?i-1:r.length-1:i+1<r.length?i+1:0;r[s].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),Se(n,-100);break}}}function Tn(e,n){const{element:t,orientation:o,items:r}=e,i=t.getBoundingClientRect(),s=o==="horizontal";return nt({expandHitTargets:!1,axis:e,includeDisabled:!0}).map(({items:a,rect:c,separator:u},f)=>{const g=r.indexOf(a[0]),m=s?c.left+c.width/2:c.top+c.height/2;return{active:n.some(d=>{if(d.axis!==e||d.items[0]!==a[0])return!1;if(u||d.separator)return d.separator===u;const S=s?d.rect.left+d.rect.width/2:d.rect.top+d.rect.height/2;return V(m,S)}),axis:e,key:u?`separator-${u.id}`:`panel-${a[0].id}-${f}`,offset:0,itemIndex:g,rect:new DOMRect((s&&!u?m:c.left)-i.left-t.clientLeft+t.scrollLeft,(!s&&!u?m:c.top)-i.top-t.clientTop+t.scrollTop,s&&!u?0:c.width,!s&&!u?0:c.height),separator:u}})}function xt(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const n=ge(),t=rt(e,n);if(t.length===0)return;const o=new Map;let r=!1;t.forEach(s=>{s.separator&&(r||(r=!0,s.separator.element.focus({focusVisible:!1,preventScroll:!0})));const l=n.get(s.axis);l&&o.set(s.axis,l.layout)});const i=Array.from(o.keys()).flatMap(s=>s.resizePreviewMode==="separator"?Tn(s,t):[]);fe({cursorFlags:0,didPointerMove:!1,hitRegions:t,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},previewLayoutMap:new Map(o),previews:i,state:"active"}),e.preventDefault()}function wt(e){const n=ge(),t=de();switch(t.state){case"active":ot({commit:!1,document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedAxes:n,prevCursorFlags:t.cursorFlags})}}function zt(e){if(e.defaultPrevented)return;const n=de(),t=ge();switch(n.state){case"active":{if(e.buttons===0){n.previewLayoutMap.forEach((o,r)=>{const i=t.get(r);r.resizePreviewMode==="separator"&&i&&!re(o,i.layout)&&me(r,{...i,layout:o})}),fe({cursorFlags:0,state:"inactive"}),n.hitRegions.forEach(o=>{if(!t.has(o.axis))return;const r=se(o.axis.id,!0);me(o.axis,r,{isUserInteraction:!0})}),Oe(e.currentTarget);return}for(const o of n.hitRegions)if(o.separator){const{element:r}=o.separator;r.isConnected&&!r.hasPointerCapture?.(e.pointerId)&&r.setPointerCapture?.(e.pointerId)}ot({commit:!1,document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedAxes:t,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:n.cursorFlags});break}default:{const o=rt(e,t);o.length===0?n.state!=="inactive"&&fe({cursorFlags:0,state:"inactive"}):fe({cursorFlags:0,hitRegions:o,state:"hover"}),Oe(e.currentTarget);break}}}function It(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(de().state){case"hover":fe({cursorFlags:0,state:"inactive"})}}function Ct(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;Vt(e.currentTarget,e)&&e.preventDefault()}function Dn(e){let n=0,t=0;const o={};for(const i of e)if(i.defaultSize!==void 0){n++;const s=X(i.defaultSize);t+=s,o[i.itemId]=s}else o[i.itemId]=void 0;const r=e.length-n;if(r!==0){const i=X((100-t)/r);for(const s of e)s.defaultSize===void 0&&(o[s.itemId]=i)}return o}function On(e,n){const t=e.map(r=>r.id),o=Object.keys(n);if(t.length!==o.length)return!1;for(const r of t)if(!o.includes(r))return!1;return!0}function Rt({axis:e,itemConstraints:n}){const t=e.items.map(({id:r})=>r).join(","),o=e.mutableState.defaultLayout;return e.mutableState.layouts[t]??(o&&On(e.items,o)?o:Dn(n))}function An(e,n,t){if(!t[0])return;const r=e.items.find(c=>c.element===n);if(!r||!r.onResize)return;const i=Le({axis:e}),s=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,l=r.mutableValues.prevSize,a={asPercentage:X(s/i*100),inPixels:s};r.mutableValues.prevSize=a,r.onResize(a,r.id,l)}function qt(e,n){if(Object.keys(e).length!==Object.keys(n).length)return!1;for(const o in e)if(e[o]!==n[o])return!1;return!0}function Gn(e,n){return e.length!==n.length?!1:e.every((t,o)=>qt(t,n[o]))}function Nn({axis:e,nextAxisSize:n,prevAxisSize:t,prevLayout:o}){if(t<=0||n<=0||t===n)return o;let r=0,i=0,s=!1;const l=new Map,a=[];for(const f of e.items){const g=o[f.id]??0;switch(f.constraintProps.groupResizeBehavior){case"preserve-pixel-size":{s=!0;const m=g/100*t,y=X(m/n*100);l.set(f.id,y),r+=y;break}case"preserve-relative-size":default:{a.push(f.id),i+=g;break}}}if(!s||a.length===0)return o;const c=100-r,u={...o};if(l.forEach((f,g)=>{u[g]=f}),i>0)for(const f of a){const g=o[f]??0;u[f]=X(g/i*c)}else{const f=X(c/a.length);for(const g of a)u[g]=f}return u}const we=new Map;function Yt(e){let n=!0;O(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const t=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,r=new Set,i=new t(m=>{for(const y of m){const{borderBoxSize:d,target:S}=y;if(S===e.element){if(n){const h=Le({axis:e});if(h===0)return;const p=se(e.id);if(!p)return;const R=Qe(e),z=p.defaultLayoutDeferred?Rt({axis:e,itemConstraints:R}):p.layout,L=Nn({axis:e,nextAxisSize:h,prevAxisSize:p.axisSize,prevLayout:z}),A=ve({layout:L,itemConstraints:R});if(!p.defaultLayoutDeferred&&re(p.layout,A)&&Gn(p.derivedItemConstraints,R)&&p.axisSize===h)continue;me(e,{defaultLayoutDeferred:!1,derivedItemConstraints:R,axisSize:h,layout:A,separatorToItems:p.separatorToItems})}}else An(e,S,d)}});i.observe(e.element),e.items.forEach(m=>{O(!o.has(m.id),`Panel ids must be unique; id "${m.id}" was used more than once`),o.add(m.id),m.onResize&&i.observe(m.element)});const s=Le({axis:e}),l=Qe(e),a=Rt({axis:e,itemConstraints:l}),c=ve({layout:a,itemConstraints:l}),u=e.element.ownerDocument;we.set(u,(we.get(u)??0)+1);const f=new Map;return nt({axis:e,includeDisabled:!0}).forEach(m=>{m.separator&&f.set(m.separator,m.items)}),me(e,{defaultLayoutDeferred:s===0,derivedItemConstraints:l,axisSize:s,layout:c,separatorToItems:f}),e.separators.forEach(m=>{O(!r.has(m.id),`Separator ids must be unique; id "${m.id}" was used more than once`),r.add(m.id),m.element.addEventListener("keydown",bt)}),we.get(u)===1&&(u.addEventListener("contextmenu",ht,!0),u.addEventListener("dblclick",vt,!0),u.addEventListener("pointerdown",xt,!0),u.addEventListener("pointerleave",wt),u.addEventListener("pointermove",zt),u.addEventListener("pointerout",It),u.addEventListener("pointerup",Ct,!0)),function(){n=!1,we.set(u,Math.max(0,(we.get(u)??0)-1)),wn(e),dn(e)&&Oe(u),e.separators.forEach(y=>{y.element.removeEventListener("keydown",bt)}),we.get(u)||(u.removeEventListener("contextmenu",ht,!0),u.removeEventListener("dblclick",vt,!0),u.removeEventListener("pointerdown",xt,!0),u.removeEventListener("pointerleave",wt),u.removeEventListener("pointermove",zt),u.removeEventListener("pointerout",It),u.removeEventListener("pointerup",Ct,!0)),i.disconnect()}}function Kt({derivedItemConstraints:e,axis:n,layout:t,prevLayout:o}){const r=n.items.map(({id:i})=>i).join(",");n.mutableState.layouts[r]=t,o&&e.forEach(i=>{if(i.collapsible){const s=V(i.collapsedSize,t[i.itemId]),l=V(i.collapsedSize,o[i.itemId]);s&&!l&&(n.mutableState.expandedItemSizes[i.itemId]=o[i.itemId])}})}function Xt(){const[e,n]=x.useState({}),t=x.useCallback(()=>n({}),[]);return[e,t]}function He(e){const n=x.useRef({...e});return te(()=>{for(const t in e)n.current[t]=e[t]},[e]),n.current}const st=x.createContext(null);function jn({layout:e,itemConstraints:n,itemId:t,itemIndex:o}){let r,i;const s=e[t],l=n.find(a=>a.itemId===t);if(l){const a=l.maxSize,c=l.collapsible?l.collapsedSize:l.minSize,u=[o,o+1];i=ve({layout:Ge({delta:c-s,initialLayout:e,itemConstraints:n,pivotIndices:u,prevLayout:e}),itemConstraints:n})[t],r=ve({layout:Ge({delta:a-s,initialLayout:e,itemConstraints:n,pivotIndices:u,prevLayout:e}),itemConstraints:n})[t]}return{valueControls:t,valueMax:r,valueMin:i,valueNow:s}}function Jt({attributes:e,axisId:n,axisOrientation:t,children:o,className:r,disableCursor:i,disabled:s,disableDoubleClick:l,elementRef:a,id:c,isSharedHitRegion:u,preview:f,registerSeparator:g,requiredStyle:m,style:y,styleDefaults:d,tabIndex:S=0,updateSeparatorProps:h}){const p=He({disabled:s,disableDoubleClick:l,children:o,className:r,preview:f,style:y}),[R,z]=x.useState({}),[L,A]=x.useState("inactive"),[G,b]=x.useState(!1),w=x.useRef(null),v=x.useRef(null),P=Ne(w,a),k=t==="horizontal"?"vertical":"horizontal";te(()=>{const I=w.current;if(I!==null){const C={disabled:p.disabled,disableDoubleClick:p.disableDoubleClick,element:I,id:c,get children(){return p.children},get className(){return p.className},get preview(){return p.preview},get style(){return p.style}};v.current=C;const _=g(C),U=Gt(W=>{A(W.next.state!=="inactive"&&W.next.hitRegions.some(ne=>ne.separator===C||(u?.(ne)??!1))?W.next.state:"inactive")}),J=Ae(n,W=>{const{derivedItemConstraints:ne,layout:be,separatorToItems:Ee}=W.next,ie=Ee.get(C);if(ie){const ae=ie[0],M=ne.findIndex(j=>j.itemId===ae.id),{layoutStrategy:$}=W.axis;z({...jn({layout:be,itemConstraints:ne,itemId:ae.id,itemIndex:M}),...$?.getItemAriaControls&&{valueControls:$.getItemAriaControls(ae.id)}})}});return()=>{v.current=null,U(),J(),_()}}},[n,c,u,g,p]),te(()=>{const I=v.current;I&&fn(I)},[f]),x.useEffect(()=>{h(c,{disabled:s,disableDoubleClick:l})},[s,l,c,h]);let T;s&&!i&&(T="not-allowed");let E;if(s)E="disabled";else switch(L){case"active":{E="active";break}default:G?E="focus":E=L}return H.jsx("div",{...e,"aria-controls":R.valueControls,"aria-disabled":s||void 0,"aria-orientation":k,"aria-valuemax":R.valueMax,"aria-valuemin":R.valueMin,"aria-valuenow":R.valueNow,children:o,className:r,"data-separator":E,"data-testid":c,id:c,onBlur:()=>b(!1),onFocus:()=>b(!0),ref:P,role:"separator",style:{...d,cursor:T,...y,...m,touchAction:"none"},tabIndex:s?void 0:S})}function Lt({axis:e,children:n,className:t,crossSpan:o,crossStart:r,disabled:i,elementRef:s,index:l,style:a}){const c=Me(void 0),{getDisableCursor:u,getResizeAxisId:f,gutters:g,registerSeparator:m,separatorPlacements:y,trackCounts:d,updateSeparatorProps:S}=$t(),h=f(e),p=e==="column"?"row":"column",R=d[p],z=!!i||!et(l,d[e]);let L=!0;for(const v of y.values())if(v.axis===e&&v.index===l&&!v.disabled&&v.crossStart<r){L=!1;break}const A=x.useCallback(v=>v.axis.id===h&&v.axis.items.indexOf(v.items[1])===l,[h,l]),G=x.useCallback(v=>m({axis:e,crossSpan:o,crossStart:r,disabled:!!i,index:l},v),[e,o,r,i,l,m]),b=sn(l),w=an({crossCount:R,crossSpan:o,crossStart:r,hasGutters:g[p]});return H.jsx(Jt,{axisId:h,axisOrientation:e==="column"?"horizontal":"vertical",className:t,disableCursor:u(),disabled:z,disableDoubleClick:void 0,elementRef:s,id:c,isSharedHitRegion:A,registerSeparator:G,requiredStyle:{gridColumn:e==="column"?b:w,gridRow:e==="row"?b:w},style:a,tabIndex:L?0:-1,updateSeparatorProps:S,children:n})}function at(e){const{children:n,className:t,disabled:o,elementRef:r,style:i}=e;return e.type==="column"?H.jsx(Lt,{axis:"column",className:t,crossSpan:e.rowSpan,crossStart:e.row??0,disabled:o,elementRef:r,index:e.column,style:i,children:n}):H.jsx(Lt,{axis:"row",className:t,crossSpan:e.columnSpan,crossStart:e.column??0,disabled:o,elementRef:r,index:e.row,style:i,children:n})}at.displayName="Gridline";const Ie=["column","row"],Mt={columns:{},rows:{}};function Zt({children:e,className:n,columns:t,defaultLayout:o,disableCursor:r,disabled:i,elementRef:s,gridRef:l,id:a,onLayoutChange:c,onLayoutChanged:u,resizeTargetMinimumSize:f={coarse:20,fine:10},rows:g,style:m,...y}){const d=Me(a),S=x.useCallback(M=>M==="column"?`${d}:columns`:`${d}:rows`,[d]),h=Et(t,"columns"),p=Et(g,"rows"),R=M=>M==="column"?h:p,z=x.useRef({onLayoutChange:Mt,onLayoutChanged:Mt}),L=he(M=>{Pt(z.current.onLayoutChange,M)||(z.current.onLayoutChange=M,c?.(M))}),A=he((M,$)=>{Pt(z.current.onLayoutChanged,M)||(z.current.onLayoutChanged=M,u?.(M,{isUserInteraction:$}))}),G=x.useRef(null),b=Ne(G,s),[w,v]=Xt(),P=x.useRef({cells:[],column:{expandedItemSizes:{},layouts:{}},loggedErrors:new Set,row:{expandedItemSizes:{},layouts:{}},separators:new Map}),k={column:!1,row:!1};for(const M of P.current.separators.values())k[M.axis]=!0;Qt(e,k);const T=He({defaultLayout:o,disableCursor:r,resizeTargetMinimumSize:f}),E=he(()=>!!T.disableCursor),I=x.useCallback(M=>{const $=P.current;return $.cells=[...$.cells,M],v(),()=>{$.cells=$.cells.filter(j=>j!==M),v()}},[v]),C=x.useCallback((M,$)=>{const j=P.current;return j.separators=new Map(j.separators),j.separators.set($,M),v(),()=>{j.separators=new Map(j.separators),j.separators.delete($),v()}},[v]),_=x.useCallback((M,{disabled:$,disableDoubleClick:j})=>{for(const N of P.current.separators.keys())N.id===M&&(N.disabled=$,N.disableDoubleClick=j)},[]),U=P.current.separators,J=x.useMemo(()=>({getDisableCursor:E,getResizeAxisId:S,gutters:{column:k.column,row:k.row},id:d,registerCell:I,registerSeparator:C,separatorPlacements:U,trackCounts:{column:h.length,row:p.length},updateSeparatorProps:_}),[h.length,E,S,k.column,k.row,d,I,C,p.length,U,_]),W=x.useRef([]);te(()=>{const M=G.current;if(M===null)return;const $=P.current,j=Fn({cells:$.cells,separatorPlacements:$.separators,trackCounts:{column:h.length,row:p.length}});j.forEach(D=>{$.loggedErrors.has(D)||console.error(D)}),$.loggedErrors=new Set(j);const N=D=>Array.from($.separators.entries()).filter(([,K])=>K.axis===D).sort(([,K],[,ye])=>K.index-ye.index).map(([K])=>K),F=D=>{const K=D==="column"?h:p,ye=D==="column"?p:h,pe=K.map(Z=>Z.id),je=S(D),xe=N(D),ke=xe.length>0,Ue=K.map(({id:Z,...ee},Q)=>({element:M,id:pe[Q],idIsStable:!0,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:void 0,constraintProps:ee})),$e=()=>{const Z=[];if(ke){for(const[ee,Q]of $.separators)if(Q.axis===D&&et(Q.index,K.length)){const Te=ee.element.getBoundingClientRect();Z[Q.index]=Math.max(Z[Q.index]??0,D==="column"?Te.width:Te.height)}}return cn({axis:D,element:M,gutterSizes:Z.filter(ee=>ee!==void 0),hasGutters:ke,layout:se(je)?.layout,trackIds:pe})};let We;const qe=T.defaultLayout?.[D==="column"?"columns":"rows"];if(qe!==void 0&&Object.keys(qe).length===pe.length){We={};for(const Z of pe){const ee=qe[Z];ee!==void 0&&(We[Z]=ee)}}return{disabled:!!i,element:M,id:je,layoutStrategy:{getItemAriaControls:Z=>{const ee=pe.indexOf(Z);return $.cells.filter(Q=>{const Te=D==="column"?Q.column:Q.row,on=D==="column"?Q.columnSpan:Q.rowSpan;return Te<=ee&&ee<Te+on}).map(Q=>Q.element.id).filter(Boolean).join(" ")||void 0},calculateAvailableSize:()=>$e().availableSize,calculateHitRegions:({expandHitTargets:Z,axis:ee,includeDisabled:Q})=>ln({axis:D,cells:$.cells,crossTrackCount:ye.length,expandHitTargets:Z,resizeAxis:ee,axisSize:$e().availableSize,includeDisabled:Q,separatorPlacements:$.separators}),getItemSizeInPixels:Z=>$e().trackSizes[pe.indexOf(Z)]??0},mutableState:{defaultLayout:We,disableCursor:!!T.disableCursor,expandedItemSizes:$[D].expandedItemSizes,layouts:$[D].layouts},orientation:D==="column"?"horizontal":"vertical",items:Ue,resizePreviewMode:"panel",get resizeTargetMinimumSize(){return T.resizeTargetMinimumSize},separators:xe}},q=Ie.map(F);W.current=q;const Y=q.map(D=>Yt(D)),oe=()=>{const[D,K]=q.map(ye=>se(ye.id));if(!(!D||!K||D.defaultLayoutDeferred||K.defaultLayoutDeferred))return{columns:D.layout,rows:K.layout}};{const D=oe();D&&(L(D),A(D,!1))}const Pe=q.map(D=>Ae(D.id,K=>{const{defaultLayoutDeferred:ye,derivedItemConstraints:pe,layout:je}=K.next;if(ye||pe.length===0)return;Kt({derivedItemConstraints:pe,axis:D,layout:je,prevLayout:K.prev?.layout});const xe=oe();if(xe){const ke=de(),Ue=ke.state!=="active"||!ke.hitRegions.some($e=>q.includes($e.axis));L(xe),Ue&&A(xe,K.isUserInteraction)}}));return()=>{W.current=[],Y.forEach(D=>D()),Pe.forEach(D=>D())}},[h,i,S,d,A,L,p,w,T]),x.useEffect(()=>{W.current.forEach(M=>{M.mutableState.defaultLayout=o?.[M.orientation==="horizontal"?"columns":"rows"],M.mutableState.disableCursor=!!r})}),x.useImperativeHandle(l,()=>{const M=()=>{const[N,F]=Ie.map(S);return!Ce(N)||!Ce(F)?{columns:{},rows:{}}:{columns:De({axisId:N}).getLayout(),rows:De({axisId:F}).getLayout()}},$=N=>N.map(F=>`"${F}"`).join(", "),j=(N,F)=>{const q=S(N),Y=()=>{const oe=Ce(q);return O(oe,`Grid "${d}" has not been mounted`),O(oe.items.some(Pe=>Pe.id===F),`Grid "${d}" no longer contains a ${N} with id "${F}"; ${N} ids are ${$(oe.items.map(Pe=>Pe.id))}`),it({axisId:q,itemId:F})};return{collapse:()=>Y().collapse(),expand:()=>Y().expand(),getSize:()=>Y().getSize(),isCollapsed:()=>Y().isCollapsed(),resize:oe=>Y().resize(oe)}};return{getLayout:M,getTrackById:(N,F)=>{const q=N==="column"?h:p,Y=`${F}`;return O(q.some(oe=>oe.id===Y),`Grid "${d}" does not contain a ${N} with id "${Y}"; ${N} ids are ${$(q.map(oe=>oe.id))}`),j(N,Y)},getTrackByIndex:(N,F)=>{const q=N==="column"?h:p,Y=Number.isInteger(F)?q[F]:void 0;return O(Y,`Grid "${d}" does not contain a ${N} at index ${F}; it has ${q.length} ${N}s`),j(N,Y.id)},setLayout:N=>(Ie.forEach(F=>{const q=N[F==="column"?"columns":"rows"],Y=S(F);q&&Ce(Y)&&De({axisId:Y}).setLayout(q)}),M())}},[h,S,d,p]);const ne=()=>Ie.map(M=>{const $=se(S(M)),j=R(M);return($&&!$.defaultLayoutDeferred?j.map(F=>`minmax(0, ${$.layout[F.id]??1}fr)`):_n(j,o?.[M==="column"?"columns":"rows"])).join(k[M]?" auto ":" ")}).join("|"),be=x.useCallback(M=>{const $=Ie.map(j=>Ae(S(j),M));return()=>$.forEach(j=>j())},[S]),Ee=x.useSyncExternalStore(be,ne,ne),[ie,ae]=Ee.split("|");return H.jsx(kt.Provider,{value:J,children:H.jsx("div",{...y,className:n,"data-grid":!0,"data-testid":d,id:d,ref:b,style:{height:"100%",width:"100%",overflow:"hidden",...m,display:"grid",gridTemplateColumns:ie,gridTemplateRows:ae,touchAction:"none"},children:H.jsx(st.Provider,{value:null,children:e})})})}Zt.displayName="Grid";function Et(e,n){const t=JSON.stringify(e);return x.useMemo(()=>{const o=typeof e=="number"?Array.from({length:e},(r,i)=>({id:`${i}`})):e.map((r,i)=>({...r,id:`${r.id??i}`}));return O(o.length>0,`Grid must have at least one track; "${n}" is ${t}`),o},[t])}function Qt(e,n){x.Children.forEach(e,t=>{if(x.isValidElement(t))if(t.type===at){const{type:o}=t.props;o==="column"?n.column=!0:o==="row"&&(n.row=!0)}else typeof t.type=="symbol"&&t.props!==null&&typeof t.props=="object"&&"children"in t.props&&Qt(t.props.children,n)})}function _n(e,n){if(n)return e.map(i=>`minmax(0, ${n[i.id]??1}fr)`);const t=e.map(i=>i.defaultSize===void 0?void 0:Ot(i.defaultSize));let o=100,r=0;return t.forEach(i=>{i===void 0?r++:i[1]==="%"&&(o-=i[0])}),t.map(i=>{if(i===void 0)return`minmax(0, ${Math.max(0,o)/Math.max(1,r)}fr)`;const[s,l]=i;return l==="%"?`minmax(0, ${s}fr)`:`${s}${l}`})}function Fn({cells:e,separatorPlacements:n,trackCounts:t}){const o=[];for(const l of e)Ie.forEach(a=>{const[c,u]=a==="column"?[l.column,l.columnSpan]:[l.row,l.rowSpan],f=t[a];(!Number.isInteger(c)||!Number.isInteger(u)||c<0||u<1||c+u>f)&&o.push(`Invalid Cell ${a} placement (${a}: ${c}, ${a}Span: ${u}); Grid has ${f} ${a}s`)});const r=({axis:l,crossSpan:a,crossStart:c,disabled:u,index:f})=>{const g=l==="column"?"row":"column";let m=`type="${l}" ${l}={${f}}`;return(c!==0||a!==void 0)&&(m+=` ${g}={${c}}`),a!==void 0&&(m+=` ${g}Span={${a}}`),u&&(m+=" disabled"),`<Gridline ${m} />`},i=Array.from(n.values()).filter(l=>{const{axis:a,crossSpan:c,crossStart:u,index:f}=l,g=a==="column"?"row":"column",m=t[a],y=t[g];let d=!0;return et(f,m)||(o.push(`Invalid ${a} Gridline ${a} (${f}); must be between 1 and ${m-1}`),d=!1),!Number.isInteger(u)||u<0||u>=y?(o.push(`Invalid ${a} Gridline ${g} (${u}); must be between 0 and ${y-1}`),d=!1):c!==void 0&&(!Number.isInteger(c)||c<1||u+c>y)&&(o.push(`Invalid ${a} Gridline ${g}Span (${c}); Grid has ${y} ${g}s`),d=!1),d}),s=l=>{const a=t[l.axis==="column"?"row":"column"];return[l.crossStart,l.crossSpan===void 0?a:l.crossStart+l.crossSpan]};return i.forEach((l,a)=>{const{axis:c,index:u}=l,[f,g]=s(l);for(const m of e){const[y,d,S,h]=c==="column"?[m.column,m.columnSpan,m.row,m.rowSpan]:[m.row,m.rowSpan,m.column,m.columnSpan];if(y<u&&u<y+d&&S<g&&f<S+h){const p=c==="column"?"row":"column";o.push(`${r(l)} overlaps a Cell that spans across it (${c}: ${y}, ${c}Span: ${d}, ${p}: ${S}, ${p}Span: ${h}); use the ${p} and ${p}Span props to render gridlines beside the Cell instead`)}}for(const m of i.slice(a+1))if(m.axis===c&&m.index===u){const[y,d]=s(m);y<g&&f<d&&o.push(`${r(l)} overlaps ${r(m)}`)}}),o}function Pt(e,n){return re(e.columns,n.columns)&&re(e.rows,n.rows)}function Bn({id:e,onlySaveAfterUserInteractions:n,storage:t=localStorage}){const o=`react-resizable-panels:grid:${e}`,r=x.useSyncExternalStore(Hn,()=>t.getItem(o),()=>t.getItem(o)),i=x.useMemo(()=>{if(r)try{const l=JSON.parse(r);if(l!==null&&typeof l=="object")return l}catch{}},[r]),s=x.useCallback((l,a)=>{if(!(n&&!a.isUserInteraction))try{t.setItem(o,JSON.stringify(l))}catch(c){console.error(c)}},[n,t,o]);return{defaultLayout:i,onLayoutChanged:s}}function Hn(){return function(){}}function Vn(){return x.useState(null)}function Un(){return x.useRef(null)}function Wn({separator:e}){const{element:n}=e,t=x.useRef(null);return te(()=>{const o=n.cloneNode(!0),r=[n,...n.querySelectorAll("*")],i=[o,...o.querySelectorAll("*")],s=n.ownerDocument.defaultView;return r.forEach((l,a)=>{const c=i[a];if(c instanceof s.HTMLElement||c instanceof s.SVGElement){const u=s.getComputedStyle(l);for(let f=0;f<u.length;f++){const g=u.item(f);c.style.setProperty(g,u.getPropertyValue(g))}}c.removeAttribute("data-testid"),c.removeAttribute("id")}),Object.assign(o.style,{boxSizing:"border-box",height:"100%",margin:"0",position:"static",transform:"none",width:"100%"}),t.current.appendChild(o),()=>o.remove()},[n]),H.jsx("div",{ref:t,style:{height:"100%",opacity:.65,pointerEvents:"none",width:"100%"}})}function Ve(){const e=x.useContext(st);return O(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function lt(e){const{registerOverlay:n}=Ve(),t=x.useRef(e);qt(t.current,e)||(t.current=e);const o=t.current;return te(()=>n(o),[n,o]),null}lt.displayName="SeparatorOverlay";function qn({active:e,orientation:n,style:t,...o}){let r;switch(n){case"horizontal":{r={height:"100%",minWidth:"1px"};break}case"vertical":{r={minHeight:"1px",width:"100%"};break}}return H.jsx("div",{...o,"data-separator-overlay":e?"active":"inactive",style:{...r,...t,flexShrink:0,pointerEvents:"none"}})}function Yn({overlay:e,preview:n}){const{axis:t,offset:o,rect:r,separator:i}=n,s=t.orientation==="horizontal";let l=i?.preview,a=e;return x.isValidElement(l)&&l.type===lt&&(a=l.props,l=void 0),l==null&&(a?l=H.jsx(qn,{...a,active:n.active,orientation:t.orientation}):i&&(l=H.jsx(Wn,{separator:i}))),H.jsx("div",{"aria-hidden":"true","data-resize-preview":!0,inert:!0,style:{height:r.height,left:r.left,pointerEvents:"none",position:"absolute",top:r.top,transform:s?`translateX(${o}px)`:`translateY(${o}px)`,width:r.width},children:l})}function Kn(e,n){const t=x.useRef({getLayout:()=>({}),setLayout:mn});x.useImperativeHandle(n,()=>t.current,[]),te(()=>{Object.assign(t.current,De({axisId:e}))})}function Xn({groupId:e,resizePreviewMode:n}){const[t,o]=x.useState([]),r=x.useRef(t);return te(()=>{const i=l=>{const a=Ce(e),c=n==="separator"&&l.state==="active"?l.previews.filter(f=>f.axis===a&&(f.active||!V(f.offset,0))):[],u=r.current;u.length===c.length&&c.every((f,g)=>f===u[g])||(r.current=c,o(c))};if(n!=="separator"){i(de());return}const s=Gt(({next:l})=>i(l));return i(de()),s},[e,n]),t}function en({children:e,className:n,defaultLayout:t,disableCursor:o,disabled:r,elementRef:i,groupRef:s,id:l,onLayoutChange:a,onLayoutChanged:c,orientation:u="horizontal",resizePreviewMode:f="panel",resizeTargetMinimumSize:g={coarse:20,fine:10},style:m,...y}){const d=x.useRef({onLayoutChange:{},onLayoutChanged:{}}),S=he(I=>{re(d.current.onLayoutChange,I)||(d.current.onLayoutChange=I,a?.(I))}),h=he((I,C)=>{re(d.current.onLayoutChanged,I)||(d.current.onLayoutChanged=I,c?.(I,{isUserInteraction:C}))}),p=Me(l),[R,z]=x.useState(),L=Xn({groupId:p,resizePreviewMode:f}),A=x.useRef(null),[G,b]=Xt(),w=x.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),v=Ne(A,i);Kn(p,s);const P=he((I,C)=>{const _=se(I);if(_)return{flexGrow:_.layout[C]??1};if(t?.[C])return{flexGrow:t?.[C]}}),k=He({defaultLayout:t,disableCursor:o,resizeTargetMinimumSize:g}),T=x.useMemo(()=>({get disableCursor(){return!!k.disableCursor},getPanelStyles:P,id:p,orientation:u,registerPanel:I=>{const C=w.current;return C.panels=Je(u,[...C.panels,I]),b(),()=>{C.panels=C.panels.filter(_=>_!==I),b()}},registerOverlay:I=>(z(I),()=>{z(void 0)}),registerSeparator:I=>{const C=w.current;return C.separators=Je(u,[...C.separators,I]),b(),()=>{C.separators=C.separators.filter(_=>_!==I),b()}},updatePanelProps:(I,{disabled:C})=>{const U=w.current.panels.find(ne=>ne.id===I);U&&(U.constraintProps.disabled=C);const J=Ce(p),W=se(p);J&&W&&me(J,{...W,derivedItemConstraints:Qe(J)})},updateSeparatorProps:(I,{disabled:C,disableDoubleClick:_})=>{const J=w.current.separators.find(W=>W.id===I);J&&(J.disabled=C,J.disableDoubleClick=_)}}),[P,p,b,u,k]),E=x.useRef(null);return te(()=>{const I=A.current;if(I===null)return;const C=w.current;let _;if(k.defaultLayout!==void 0&&Object.keys(k.defaultLayout).length===C.panels.length){_={};for(const ie of C.panels){const ae=k.defaultLayout[ie.id];ae!==void 0&&(_[ie.id]=ae)}}const U={disabled:!!r,element:I,id:p,mutableState:{defaultLayout:_,disableCursor:!!k.disableCursor,expandedItemSizes:w.current.lastExpandedPanelSizes,layouts:w.current.layouts},orientation:u,items:C.panels,resizePreviewMode:f,get resizeTargetMinimumSize(){return k.resizeTargetMinimumSize},separators:C.separators};E.current=U;const J=Yt(U),{defaultLayoutDeferred:W,derivedItemConstraints:ne,layout:be}=se(U.id,!0);!W&&ne.length>0&&(S(be),h(be,!1));const Ee=Ae(p,ie=>{const{defaultLayoutDeferred:ae,derivedItemConstraints:M,layout:$}=ie.next;if(ae||M.length===0)return;Kt({derivedItemConstraints:M,axis:U,layout:$,prevLayout:ie.prev?.layout});const j=de(),N=j.state!=="active"||!j.hitRegions.some(F=>F.axis===U);S($),N&&h($,ie.isUserInteraction)});return()=>{E.current=null,J(),Ee()}},[r,p,h,S,u,G,f,k]),x.useEffect(()=>{const I=E.current;I&&(I.mutableState.defaultLayout=t,I.mutableState.disableCursor=!!o)}),H.jsx(st.Provider,{value:T,children:H.jsxs("div",{...y,className:n,"data-group":!0,"data-testid":p,id:p,ref:v,style:{height:"100%",width:"100%",overflow:"hidden",position:f==="separator"?"relative":void 0,...m,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:u==="horizontal"?"pan-y":"pan-x"},children:[e,L.map(I=>H.jsx(Yn,{overlay:R,preview:I},I.key))]})})}en.displayName="Group";function Be(e,n){return`react-resizable-panels:${[e,...n].join(":")}`}function Jn({id:e,panelIds:n,storage:t}){const o=Be(e,[]),r=t.getItem(o);if(r)try{const i=JSON.parse(r);if(n){const s=n.join(","),l=i[s];if(l&&Array.isArray(l.layout)&&n.length===l.layout.length){const a={};for(let c=0;c<n.length;c++)a[n[c]]=l.layout[c];return a}}else{const s=Object.keys(i);if(s.length===1){const l=i[s[0]];if(l&&Array.isArray(l.layout)){const a=s[0].split(",");if(a.length===l.layout.length){const c={};for(let u=0;u<a.length;u++)c[a[u]]=l.layout[u];return c}}}}}catch{}}function Zn({debounceSaveMs:e=100,onlySaveAfterUserInteractions:n,panelIds:t,storage:o=localStorage,...r}){const i=t!==void 0,s="id"in r?r.id:r.groupId,l=Be(s,t??[]),a=x.useSyncExternalStore(Qn,()=>o.getItem(l),()=>o.getItem(l)),c=x.useMemo(()=>{if(a){const S=JSON.parse(a),h=Object.values(S);if(Array.from(h).every(p=>typeof p=="number"))return S}},[a]),u=x.useMemo(()=>{if(!c)return Jn({id:s,panelIds:t,storage:o})},[c,s,t,o]),f=c??u,g=x.useRef(null),m=x.useCallback(()=>{const S=g.current;S&&(g.current=null,clearTimeout(S))},[]);x.useLayoutEffect(()=>()=>{m()},[m]);const y=x.useCallback((S,h)=>{if(n&&!h.isUserInteraction)return;m();let p;i?p=Be(s,Object.keys(S)):p=Be(s,[]);try{o.setItem(p,JSON.stringify(S))}catch(R){console.error(R)}},[m,i,s,n,o]),d=x.useCallback(S=>{m(),e===0?y(S,{isUserInteraction:!1}):g.current=setTimeout(()=>{y(S,{isUserInteraction:!1})},e)},[m,e,y]);return{defaultLayout:f,onLayoutChange:d,onLayoutChanged:y}}function Qn(){return function(){}}function eo(){return x.useState(null)}function to(){return x.useRef(null)}function no(e,n){const{id:t}=Ve(),o=x.useRef({collapse:Ye,expand:Ye,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Ye});x.useImperativeHandle(n,()=>o.current,[]),te(()=>{Object.assign(o.current,it({axisId:t,itemId:e}))})}function tn({children:e,className:n,collapsedSize:t="0%",collapsedThreshold:o,collapsible:r=!1,defaultSize:i,disabled:s,elementRef:l,groupResizeBehavior:a="preserve-relative-size",id:c,maxSize:u="100%",minSize:f="0%",onResize:g,panelRef:m,style:y,...d}){const S=!!c,h=Me(c),p=He({disabled:s}),R=x.useRef(null),z=Ne(R,l),{getPanelStyles:L,id:A,orientation:G,registerPanel:b,updatePanelProps:w}=Ve(),v=g!==null,P=he((I,C,_)=>{g?.(I,c,_)});te(()=>{const I=R.current;if(I!==null){const C={element:I,id:h,idIsStable:S,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:v?P:void 0,constraintProps:{groupResizeBehavior:a,collapsedSize:t,collapsedThreshold:o,collapsible:r,defaultSize:i,disabled:p.disabled,maxSize:u,minSize:f}};return b(C)}},[a,t,o,r,i,v,h,S,u,f,P,b,p]),x.useEffect(()=>{w(h,{disabled:s})},[s,h,w]),no(h,m);const k=()=>{const I=L(A,h);if(I)return JSON.stringify(I)},T=x.useSyncExternalStore(I=>Ae(A,I),k,k);let E;return T?E=JSON.parse(T):i!==void 0?E={flexGrow:void 0,flexShrink:void 0,flexBasis:i}:E={flexGrow:1},H.jsx("div",{...d,"data-disabled":s||void 0,"data-panel":!0,"data-testid":h,id:h,ref:z,style:{...oo,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...E},children:H.jsx("div",{className:n,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...y,touchAction:G==="horizontal"?"pan-y":"pan-x"},children:e})})}tn.displayName="Panel";const oo={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function ro(){return x.useState(null)}function io(){return x.useRef(null)}const so={flexBasis:"auto"},ao={flexGrow:0,flexShrink:0};function nn({children:e,className:n,disabled:t,disableDoubleClick:o,elementRef:r,id:i,preview:s,style:l,...a}){const c=Me(i),{disableCursor:u,id:f,orientation:g,registerSeparator:m,updateSeparatorProps:y}=Ve();return H.jsx(Jt,{attributes:a,axisId:f,axisOrientation:g,className:n,disableCursor:u,disabled:t,disableDoubleClick:o,elementRef:r,id:c,preview:s,registerSeparator:m,requiredStyle:ao,style:l,styleDefaults:so,updateSeparatorProps:y,children:e})}nn.displayName="Separator";exports.Cell=Tt;exports.Grid=Zt;exports.Gridline=at;exports.Group=en;exports.Panel=tn;exports.Separator=nn;exports.SeparatorOverlay=lt;exports.isCoarsePointer=Dt;exports.useDefaultGridLayout=Bn;exports.useDefaultLayout=Zn;exports.useGridCallbackRef=Vn;exports.useGridRef=Un;exports.useGroupCallbackRef=eo;exports.useGroupRef=to;exports.usePanelCallbackRef=ro;exports.usePanelRef=io;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const W=require("react/jsx-runtime"),x=require("react");function Ee(e){const t=x.useId();return`${e??t}`}const ne=typeof window<"u"?x.useLayoutEffect:x.useEffect;function me(e){const t=x.useRef(e);return ne(()=>{t.current=e},[e]),x.useCallback((...n)=>t.current?.(...n),[t])}function je(...e){return me(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function Xe(e,t){return t?e*2+1:e+1}function an(e,t){return t?e*2-1:e}function ut(e,t,n){const o=Xe(e,n);return t===void 0?`${o} / -1`:`${o} / span ${an(t,n)}`}function ln(e){return`${e*2} / span 1`}function cn({crossCount:e,crossSpan:t,crossStart:n,hasGutters:o}){const r=t===void 0?e:n+t;if(n===0&&r===e)return"1 / -1";let s=Xe(n,o),i=Xe(r-1,o)+1;return o&&(n>0&&s--,r<e&&i++),`${s} / ${i}`}function et(e,t){return Number.isInteger(e)&&e>=1&&e<t}function D(e,t="Assertion error"){if(!e)throw Error(t)}const Tt=x.createContext(null);function At(){const e=x.useContext(Tt);return D(e,"Grid Context not found; did you render a Cell or Gridline outside of a Grid?"),e}function Dt({children:e,className:t,column:n,columnSpan:o=1,elementRef:r,id:s,row:i,rowSpan:l=1,style:a,...c}){const u=Ee(s),{gutters:d,registerCell:g}=At(),m=x.useRef(null),y=je(m,r);return ne(()=>{const f=m.current;if(f!==null)return g({column:n,columnSpan:o,element:f,id:u,row:i,rowSpan:l})},[n,o,u,g,i,l]),W.jsx("div",{...c,className:t,"data-cell":!0,"data-testid":u,id:u,ref:y,style:{overflow:"auto",...a,minHeight:0,minWidth:0,gridColumn:ut(n,o,d.column),gridRow:ut(i,l,d.row)},children:e})}Dt.displayName="Cell";let Be;function Ot(){return Be===void 0&&(typeof matchMedia=="function"?Be=!!matchMedia("(pointer:coarse)").matches:Be=!1),Be}function Je({expandHitTargets:e,axis:t,rect:n}){const o=e?Ot()?t.resizeTargetMinimumSize.coarse:t.resizeTargetMinimumSize.fine:0;if(n.width<o){const r=o-n.width;n=new DOMRect(n.x-r/2,n.y,n.width+r,n.height)}if(n.height<o){const r=o-n.height;n=new DOMRect(n.x,n.y-r/2,n.width,n.height+r)}return n}function dt({axis:e,cells:t,index:n,rect:o}){let r=[o];for(const s of t){const i=e==="column"?s.column:s.row,l=e==="column"?s.columnSpan:s.rowSpan;if(i>=n||i+l<=n)continue;const a=s.element.getBoundingClientRect(),c=e==="column"?a.top:a.left,u=e==="column"?a.bottom:a.right;u<=c||(r=r.flatMap(d=>{const g=e==="column"?d.top:d.left,m=e==="column"?d.bottom:d.right;if(c>=m||u<=g)return[d];const y=[],f=(S,p)=>{y.push(e==="column"?new DOMRect(d.x,S,d.width,p-S):new DOMRect(S,d.y,p-S,d.height))};return g<c&&f(g,c),m>u&&f(u,m),y}))}return r}function un({axis:e,cells:t,crossTrackCount:n,expandHitTargets:o,resizeAxis:r,axisSize:s,includeDisabled:i,separatorPlacements:l}){const{items:a,separators:c}=r,u=a.length;let d=-1,g=-1,m=0;if(a.forEach((b,z)=>{b.constraintProps.disabled||(m++,d===-1&&(d=z),g=z)}),!i&&m<2)return[];const y=b=>i||b>d&&b<=g,f=[],S=(b,z,v)=>({axis:r,axisSize:s,items:[a[b-1],a[b]],rect:z,separator:v}),p=(b,z)=>{let v;for(const T of t){const G=e==="column"?T.row:T.column,M=e==="column"?T.rowSpan:T.columnSpan;if(z==="start"?G===b:G+M-1===b){const P=T.element.getBoundingClientRect();if(z==="start"){const k=e==="column"?P.top:P.left;v=v===void 0?k:Math.min(v,k)}else{const k=e==="column"?P.bottom:P.right;v=v===void 0?k:Math.max(v,k)}}}return v},h=new Set;for(const b of c){const z=l.get(b);if(!z||z.index<1||z.index>=u||(h.add(z.index),!i&&(b.disabled||b.element.hasAttribute("aria-disabled")))||!y(z.index))continue;let v=b.element.getBoundingClientRect();const{crossSpan:T,crossStart:G}=z,M=T===void 0?n:G+T;let P=e==="column"?v.top:v.left,k=e==="column"?v.bottom:v.right;if(G>0){const I=p(G-1,"end");I!==void 0&&I<P&&(P=I)}if(M<n){const I=p(M,"start");I!==void 0&&I>k&&(k=I)}v=e==="column"?new DOMRect(v.x,P,v.width,k-P):new DOMRect(P,v.y,k-P,v.height),v=Je({expandHitTargets:o,axis:r,rect:v}),i?f.push(S(z.index,v,b)):dt({axis:e,cells:t,index:z.index,rect:v}).forEach(I=>{f.push(S(z.index,I,b))})}const C=(b,z)=>{dt({axis:e,cells:t,index:b,rect:Je({expandHitTargets:o,axis:r,rect:z})}).forEach(v=>{f.push(S(b,v))})},w=Array.from({length:n},()=>new Array(u));for(const b of t){const[z,v,T,G]=e==="column"?[b.column,b.columnSpan,b.row,b.rowSpan]:[b.row,b.rowSpan,b.column,b.columnSpan];for(let M=Math.max(0,T);M<Math.min(n,T+G);M++)for(let P=Math.max(0,z);P<Math.min(u,z+v);P++)w[M][P]??=b}const R=new Map,N=b=>{let z=R.get(b);if(!z){const v=b.element.getBoundingClientRect();z=e==="column"?{crossEnd:v.bottom,crossStart:v.top,end:v.right,start:v.left}:{crossEnd:v.right,crossStart:v.left,end:v.bottom,start:v.top},R.set(b,z)}return z},O=({crossEnd:b,crossStart:z,end:v,start:T})=>e==="column"?new DOMRect(T,z,v-T,b-z):new DOMRect(z,T,b-z,v-T);for(let b=1;b<u;b++){if(h.has(b)||!y(b))continue;let z;for(let v=0;v<n;v++){const T=w[v][b-1],G=w[v][b];let M;if((T||G)&&T!==G){const P=T?N(T):void 0,k=G?N(G):void 0,I=P?.end??k.start,E=k?.start??P.end,q=Math.max(P?.crossStart??-1/0,k?.crossStart??-1/0),J=Math.min(P?.crossEnd??1/0,k?.crossEnd??1/0);M={crossEnd:Math.max(q,J),crossStart:q,end:Math.max(I,E),start:Math.min(I,E)}}M?z=z?{crossEnd:Math.max(z.crossEnd,M.crossEnd),crossStart:Math.min(z.crossStart,M.crossStart),end:Math.max(z.end,M.end),start:Math.min(z.start,M.start)}:M:z&&(C(b,O(z)),z=void 0)}z&&C(b,O(z))}return f}function ie(e){const t=parseFloat(e??"");return Number.isFinite(t)?t:0}function dn({axis:e,element:t,gutterSizes:n,hasGutters:o,layout:r,trackIds:s}){const i=s.length,l=o?i*2-1:i,a=t.ownerDocument.defaultView?.getComputedStyle(t),c=e==="column"?a?.gridTemplateColumns:a?.gridTemplateRows;if(c){const f=c.trim().split(/\s+/);if(f.length===l&&f.every(S=>/^-?[\d.]+px$/.test(S))){const S=s.map((p,h)=>ie(f[o?h*2:h]));return{availableSize:S.reduce((p,h)=>p+h,0),trackSizes:S}}}const u=e==="column"?t.offsetWidth:t.offsetHeight,d=e==="column"?ie(a?.paddingLeft)+ie(a?.paddingRight)+ie(a?.borderLeftWidth)+ie(a?.borderRightWidth):ie(a?.paddingTop)+ie(a?.paddingBottom)+ie(a?.borderTopWidth)+ie(a?.borderBottomWidth),g=ie(e==="column"?a?.columnGap:a?.rowGap),m=n.reduce((f,S)=>f+S,0),y=Math.max(0,u-d-g*Math.max(0,l-1)-m);return{availableSize:y,trackSizes:s.map(f=>r&&r[f]!==void 0?r[f]/100*y:y/i)}}function Gt(e){switch(typeof e){case"number":return[e,"px"];case"string":{const t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}class Nt{#e={};addListener(t,n){const o=this.#e[t];return o===void 0?this.#e[t]=[n]:o.includes(n)||o.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const o=this.#e[t];if(o!==void 0)if(o.length===1)o[0].call(null,n);else{let r=!1,s=null;const i=Array.from(o);for(let l=0;l<i.length;l++){const a=i[l];try{a.call(null,n)}catch(c){s===null&&(r=!0,s=c)}}if(r)throw s}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const r=o.indexOf(n);r>=0&&o.splice(r,1)}}}let B={cursorFlags:0,state:"inactive"};const tt=new Nt;function ue(){return B}function jt(e){return tt.addListener("change",e)}function fn(e,t=[],n,o=!1){const r=B,s={...B};s.cursorFlags=e,s.state==="active"&&(s.didPointerMove||=o,s.previews=t,n&&(s.previewLayoutMap=n)),B=s,tt.emit("change",{prev:r,next:s})}function ce(e){const t=B;B=e,t.state==="active"&&e.state!=="active"&&t.didPointerMove&&t.hitRegions.forEach(({separator:n})=>{n&&n.element.ownerDocument.activeElement===n.element&&n.element.blur()}),tt.emit("change",{prev:t,next:e})}function mn(e){B.state!=="active"||!B.previews.some(t=>t.separator===e)||ce({...B,previews:B.previews.map(t=>t.separator===e?{...t}:t)})}function pn(e){if(B.state==="inactive")return!1;const t=B.hitRegions.filter(o=>o.axis!==e),n=B.state==="active"&&B.previews.some(o=>o.axis===e);if(t.length===B.hitRegions.length&&!n)return!1;if(t.length===0)ce({cursorFlags:0,state:"inactive"});else if(B.state==="active"){const o=new Map(B.initialLayoutMap),r=new Map(B.previewLayoutMap);o.delete(e),r.delete(e),ce({...B,cursorFlags:0,hitRegions:t,initialLayoutMap:o,previewLayoutMap:r,previews:B.previews.filter(s=>s.axis!==e)})}else ce({...B,hitRegions:t});return!0}const hn=e=>e,Ke=()=>{},_t=1,Ft=2,qt=4,Bt=8,ft=3,mt=12;let He;function pt(){return He===void 0&&(He=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(He=!0)),He}function gn({cursorFlags:e,axes:t,state:n}){let o=0,r=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.mutableState.disableCursor)switch(s.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(!(o===0&&r===0)){switch(n){case"active":{if(e&&pt()){const s=(e&_t)!==0,i=(e&Ft)!==0,l=(e&qt)!==0,a=(e&Bt)!==0;if(s)return l?"se-resize":a?"ne-resize":"e-resize";if(i)return l?"sw-resize":a?"nw-resize":"w-resize";if(l)return"s-resize";if(a)return"n-resize"}break}}return pt()?o>0&&r>0?"move":o>0?"ew-resize":"ns-resize":o>0&&r>0?"grab":o>0?"col-resize":"row-resize"}}const ht=new WeakMap;function Oe(e){if(!e.defaultView||!e.adoptedStyleSheets)return;let{prevStyle:t,styleSheet:n}=ht.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(n):e.adoptedStyleSheets=[...e.adoptedStyleSheets,n]));const o=ue();switch(o.state){case"active":case"hover":{const r=gn({cursorFlags:o.cursorFlags,axes:o.hitRegions.map(i=>i.axis),state:o.state}),s=`*, *:hover {cursor: ${r} !important; }`;if(t===s)return;t=s,r?n.cssRules.length===0?n.insertRule(s):n.replaceSync(s):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}ht.set(e,{prevStyle:t,styleSheet:n})}function Me({axis:e}){const{layoutStrategy:t,orientation:n,items:o}=e;return t?t.calculateAvailableSize():o.reduce((r,s)=>(r+=n==="horizontal"?s.element.offsetWidth:s.element.offsetHeight,r),0)}function nt(e,t){const n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_DISCONNECTED?0:n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0}function Ae(e,t){return Array.from(t).sort((n,o)=>{const r=e==="horizontal"?yn(n,o):Sn(n,o);return r!==0?r:nt(n.element,o.element)})}function yn(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Sn(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Ze(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Ht(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function vn({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let r,s=Number.MAX_VALUE;for(const i of t){const{x:l,y:a}=Ht(o,i),c=e==="horizontal"?l:a;c<s&&(s=c,r=i)}return D(r,"No rect found"),r}function ot({expandHitTargets:e=!0,axis:t,includeDisabled:n=!1}){if(t.layoutStrategy)return t.layoutStrategy.calculateHitRegions({expandHitTargets:e,axis:t,includeDisabled:n});const{element:o,orientation:r,items:s,separators:i}=t,l=Ae(r,Array.from(o.children).filter(Ze).filter(p=>!p.hasAttribute("data-resize-preview")).map(p=>({element:p}))).map(({element:p})=>p),a=[];let c=!1,u=!1,d=-1,g,m=-1,y=0,f,S=[];{let p=-1;for(const h of l)h.hasAttribute("data-panel")&&(p++,h.hasAttribute("data-disabled")||(y++,d===-1&&(d=p),m=p))}if(n||y>1){let p=-1;for(const h of l)if(h.hasAttribute("data-panel")){p++;const C=s.find(w=>w.element===h);if(C){if(f){const w=f.element.getBoundingClientRect(),R=h.getBoundingClientRect();let N;if(u){const O=r==="horizontal"?new DOMRect(w.right,w.top,0,w.height):new DOMRect(w.left,w.bottom,w.width,0),b=r==="horizontal"?new DOMRect(R.left,R.top,0,R.height):new DOMRect(R.left,R.top,R.width,0);switch(S.length){case 0:{N=[O,b];break}case 1:{const z=S[0],v=vn({orientation:r,rects:[w,R],targetRect:z.element.getBoundingClientRect()});N=[z,v===w?b:O];break}default:{N=S;break}}}else S.length?N=S:N=[r==="horizontal"?new DOMRect(w.right,R.top,R.left-w.right,R.height):new DOMRect(R.left,w.bottom,R.width,R.top-w.bottom)];for(const O of N){const b=Je({expandHitTargets:e,axis:t,rect:"width"in O?O:O.element.getBoundingClientRect()}),z=p<=d||p>m;(n||!c&&!z)&&(g??=Me({axis:t}),a.push({axis:t,axisSize:g,items:[f,C],separator:"width"in O?void 0:O,rect:b})),c=!1}}u=!1,f=C,S=[]}}else if(h.hasAttribute("data-separator")){h.ariaDisabled!==null&&(c=!0);const C=i.find(w=>w.element===h);C?S.push(C):(f=void 0,S=[])}else u=!0}return a}function bn(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function xn(e,t){const n=getComputedStyle(e.ownerDocument.documentElement),o=parseFloat(n.fontSize);return t*o}function wn(e){return e/100*window.innerHeight}function zn(e){return e/100*window.innerWidth}function Ie({axisSize:e,itemElement:t,styleProp:n}){let o;const[r,s]=Gt(n);switch(s){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=xn(t,r);break}case"em":{o=bn(t,r);break}case"vh":{o=wn(r);break}case"vw":{o=zn(r);break}}return o}function X(e){return parseFloat(e.toFixed(3))}function Qe(e){const{items:t}=e,n=Me({axis:e});return n===0?t.map(o=>({groupResizeBehavior:o.constraintProps.groupResizeBehavior,collapsedSize:0,collapsible:o.constraintProps.collapsible===!0,defaultSize:void 0,disabled:o.constraintProps.disabled,minSize:0,maxSize:100,itemId:o.id})):t.map(o=>{const{element:r,constraintProps:s}=o;let i=0;if(s.collapsedSize!==void 0){const d=Ie({axisSize:n,itemElement:r,styleProp:s.collapsedSize});i=X(d/n*100)}let l;if(s.collapsedThreshold!==void 0){const d=Ie({axisSize:n,itemElement:r,styleProp:s.collapsedThreshold});l=X(d/n*100)}let a;if(s.defaultSize!==void 0){const d=Ie({axisSize:n,itemElement:r,styleProp:s.defaultSize});a=X(d/n*100)}let c=0;if(s.minSize!==void 0){const d=Ie({axisSize:n,itemElement:r,styleProp:s.minSize});c=X(d/n*100)}let u=100;if(s.maxSize!==void 0){const d=Ie({axisSize:n,itemElement:r,styleProp:s.maxSize});u=X(d/n*100)}return{groupResizeBehavior:s.groupResizeBehavior,collapsedSize:i,collapsedThreshold:l,collapsible:s.collapsible===!0,defaultSize:a,disabled:s.disabled,minSize:c,maxSize:u,itemId:o.id}})}let le=new Map;const Vt=new Nt;function In(e){le=new Map(le),le.delete(e)}function Le(e,t){for(const[n]of le)if(n.id===e)return n}function se(e,t){for(const[n,o]of le)if(n.id===e)return o;if(t)throw Error(`Could not find data for Group with id ${e}`)}function he(){return le}function Ge(e,t){return Vt.addListener("axisChange",n=>{n.axis.id===e&&t(n)})}function de(e,t,n){const o=le.get(e);le=new Map(le),le.set(e,t),Vt.emit("axisChange",{axis:e,isUserInteraction:n?.isUserInteraction===!0,prev:o,next:t})}function Cn(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function K(e,t,n=0){return Math.abs(X(e)-X(t))<=n}function ae(e,t){return K(e,t)?0:e>t?1:-1}function Re({overrideDisabledItems:e,itemConstraints:t,prevSize:n,size:o}){const{collapsedSize:r=0,collapsedThreshold:s,collapsible:i,disabled:l,maxSize:a=100,minSize:c=0}=t;if(l&&!e)return n;if(ae(o,c)<0)if(i){const u=s??(c-r)/2,d=ae(n,r)<=0,g=d?r+u:c-u,m=ae(o,g);ae(o,r)<=0||m<0||s!==void 0&&d&&m===0?o=r:o=c}else o=c;return o=Math.min(a,o),o=X(o),o}function Ne({delta:e,initialLayout:t,itemConstraints:n,pivotIndices:o,prevLayout:r,trigger:s}){if(K(e,0))return t;const i=s==="imperative-api",l=n.map(({itemId:y})=>t[y]),a=n.map(({itemId:y})=>r[y]),c=[...l],[u,d]=o;D(u!=null,"Invalid first pivot index"),D(d!=null,"Invalid second pivot index");let g=0;switch(s){case"keyboard":{{const y=e<0?d:u,f=n[y];D(f,`Panel constraints not found for index ${y}`);const{collapsedSize:S=0,collapsible:p,minSize:h=0}=f;if(p){const C=l[y];if(D(C!=null,`Previous layout not found for panel index ${y}`),K(C,S)){const w=h-C;ae(w,Math.abs(e))>0&&(e=e<0?0-w:w)}}}{const y=e<0?u:d,f=n[y];D(f,`No panel constraints found for index ${y}`);const{collapsedSize:S=0,collapsible:p,minSize:h=0}=f;if(p){const C=l[y];if(D(C!=null,`Previous layout not found for panel index ${y}`),K(C,h)){const w=C-S;ae(w,Math.abs(e))>0&&(e=e<0?0-w:w)}}}break}default:{const y=e<0?d:u,f=n[y];D(f,`Panel constraints not found for index ${y}`);const S=l[y],{collapsedSize:p,collapsedThreshold:h,collapsible:C,minSize:w}=f;if(C&&ae(S,w)<0){const R=w-p,N=h??R/2,O=S+Math.abs(e);if(ae(O,w)<0){const b=ae(Math.abs(e),N),z=h===void 0&&e<0;b>0||b===0&&z?e=e<0?-R:R:e=0}}break}}{const y=e<0?1:-1;let f=e<0?d:u,S=0;for(;;){const h=l[f];D(h!=null,`Previous layout not found for panel index ${f}`);const w=Re({overrideDisabledItems:i,itemConstraints:n[f],prevSize:h,size:100})-h;if(S+=w,f+=y,f<0||f>=n.length)break}const p=Math.min(Math.abs(e),Math.abs(S));e=e<0?0-p:p}{let f=e<0?u:d;for(;f>=0&&f<n.length;){const S=Math.abs(e)-Math.abs(g),p=l[f];D(p!=null,`Previous layout not found for panel index ${f}`);const h=p-S,C=Re({overrideDisabledItems:i,itemConstraints:n[f],prevSize:p,size:h});if(!K(p,C)&&(g+=p-C,c[f]=C,g.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?f--:f++}}if(Cn(a,c))return r;{const y=e<0?d:u,f=l[y];D(f!=null,`Previous layout not found for panel index ${y}`);const S=f+g,p=Re({overrideDisabledItems:i,itemConstraints:n[y],prevSize:f,size:S});if(c[y]=p,!K(p,S)){let h=S-p,w=e<0?d:u;for(;w>=0&&w<n.length;){const R=c[w];D(R!=null,`Previous layout not found for panel index ${w}`);const N=R+h,O=Re({overrideDisabledItems:i,itemConstraints:n[w],prevSize:R,size:N});if(K(R,O)||(h-=O-R,c[w]=O),K(h,0))break;e>0?w--:w++}}}const m=Object.values(c).reduce((y,f)=>f+y,0);return K(m,100,.1)?c.reduce((y,f,S)=>(y[n[S].itemId]=f,y),{}):r}function re(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||ae(e[n],t[n])!==0)return!1;return!0}function rt({commit:e,document:t,event:n,hitRegions:o,initialLayoutMap:r,mountedAxes:s,pointerDownAtPoint:i,prevCursorFlags:l}){let a=0;const c=ue();let u=c.state==="active"?c.previews:[];const d=new Map(c.state==="active"?c.previewLayoutMap:void 0);o.forEach(y=>{const{axis:f,axisSize:S}=y,{orientation:p,items:h}=f;if(e&&f.resizePreviewMode!=="separator")return;const{disableCursor:C}=f.mutableState;let w=0;i?p==="horizontal"?w=(n.clientX-i.x)/S*100:w=(n.clientY-i.y)/S*100:p==="horizontal"?w=n.clientX<0?-100:100:w=n.clientY<0?-100:100;const R=r.get(f),N=s.get(f);if(!R||!N)return;const{defaultLayoutDeferred:O,derivedItemConstraints:b,axisSize:z,layout:v,separatorToItems:T}=N;if(b&&v&&T){const G=f.resizePreviewMode==="separator"?d.get(f)??v:v,M=Ne({delta:w,initialLayout:R,itemConstraints:b,pivotIndices:y.items.map(P=>h.indexOf(P)),prevLayout:G,trigger:"mouse-or-touch"});if(f.resizePreviewMode==="separator"&&!e&&!re(M,G)){d.set(f,M);let P=0;const k=h.map(I=>(P+=M[I.id]-R[I.id],P*(S/100)));u=u.map(I=>{if(I.axis!==f)return I;const E=k[I.itemIndex];return E===I.offset?I:{...I,offset:E}})}if(re(M,G)&&w!==0&&!C)switch(p){case"horizontal":{a|=w<0?_t:Ft;break}case"vertical":{a|=w<0?qt:Bt;break}}(f.resizePreviewMode!=="separator"||e)&&!re(M,v)&&de(y.axis,{defaultLayoutDeferred:O,derivedItemConstraints:b,axisSize:z,layout:M,requestedAxisSize:z,requestedLayout:M,separatorToItems:T})}});let g=0;n.movementX===0?g|=l&ft:g|=a&ft,n.movementY===0?g|=l&mt:g|=a&mt;const m=c.state==="active"&&(n.clientX!==c.pointerDownAtPoint.x||n.clientY!==c.pointerDownAtPoint.y);fn(g,u,d,m),Oe(t)}function Ut(e,t){const n=ue(),o=he();let r=!1;switch(n.state){case"active":rt({commit:!0,document:e,event:t,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedAxes:o,pointerDownAtPoint:n.pointerDownAtPoint,prevCursorFlags:n.cursorFlags}),ce({cursorFlags:0,state:"inactive"}),n.hitRegions.length>0&&(Oe(e),r=!0,n.hitRegions.forEach(s=>{if(!o.has(s.axis))return;const i=se(s.axis.id,!0);de(s.axis,i,{isUserInteraction:!0})}))}return r}function gt(e){e.defaultPrevented||Ut(e.currentTarget,e)}function Ln(e,t,n){let o,r={x:1/0,y:1/0};for(const s of t){const i=Ht(n,s.rect);switch(e){case"horizontal":{(i.x<r.x||i.x===r.x&&i.y<=r.y)&&(o=s,r=i);break}case"vertical":{(i.y<r.y||i.y===r.y&&i.x<=r.x)&&(o=s,r=i);break}}}return o?{distance:r,hitRegion:o}:void 0}function Rn(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Mn(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:vt(e),b:vt(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)o=n.a.pop(),n.b.pop();D(o,"Stacking order can only be calculated for elements with a common ancestor");const r={a:St(yt(n.a)),b:St(yt(n.b))};if(r.a===r.b){const s=o.childNodes,i={a:n.a.at(-1),b:n.b.at(-1)};let l=s.length;for(;l--;){const a=s[l];if(a===i.a)return 1;if(a===i.b)return-1}}return Math.sign(r.a-r.b)}const En=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Pn(e){const t=getComputedStyle(Wt(e)??e).display;return t==="flex"||t==="inline-flex"}function kn(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||Pn(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||En.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function yt(e){let t=e.length;for(;t--;){const n=e[t];if(D(n,"Missing node"),kn(n))return n}return null}function St(e){return e&&Number(getComputedStyle(e).zIndex)||0}function vt(e){const t=[];for(;e;)t.push(e),e=Wt(e);return t}function Wt(e){const{parentNode:t}=e;return Rn(t)?t.host:t}function $n(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Tn(e){try{return e.matches(":modal")}catch{return!1}}function An({axisElement:e,hitRegion:t,pointerEventTarget:n}){if(Ze(n)){const o=n.closest("dialog");if(o&&!o.contains(e)&&Tn(o))return!1}if(!Ze(n)||n.contains(e)||e.contains(n))return!0;if(Mn(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if($n(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function st(e,t){const n=[];return t.forEach((o,r)=>{if(r.disabled)return;const s=ot({axis:r}),i=Ln(r.orientation,s,{x:e.clientX,y:e.clientY});i&&i.distance.x<=0&&i.distance.y<=0&&An({axisElement:r.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function pe({layout:e,itemConstraints:t}){const n=t.map(({itemId:i})=>e[i]),o=[...n],r=o.reduce((i,l)=>i+l,0);if(Object.keys(e).length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${Object.values(e).map(i=>`${i}%`).join(", ")}`);if(!K(r,100)&&o.length>0)for(let i=0;i<t.length;i++){const l=o[i];D(l!=null,`No layout data found for index ${i}`);const a=100/r*l;o[i]=a}let s=0;for(let i=0;i<t.length;i++){const l=n[i];D(l!=null,`No layout data found for index ${i}`);const a=o[i];D(a!=null,`No layout data found for index ${i}`);const c=Re({overrideDisabledItems:!0,itemConstraints:t[i],prevSize:l,size:a});a!=c&&(s+=a-c,o[i]=c)}if(!K(s,0))for(let i=0;i<t.length;i++){const l=o[i];D(l!=null,`No layout data found for index ${i}`);const a=l+s,c=Re({overrideDisabledItems:!0,itemConstraints:t[i],prevSize:l,size:a});if(l!==c&&(s-=c-l,o[i]=c,K(s,0)))break}return o.reduce((i,l,a)=>(i[t[a].itemId]=l,i),{})}function it({axisId:e,itemId:t}){const n=()=>{const a=he();for(const[c,{defaultLayoutDeferred:u,derivedItemConstraints:d,layout:g,axisSize:m,separatorToItems:y}]of a)if(c.id===e)return{defaultLayoutDeferred:u,derivedItemConstraints:d,axis:c,axisSize:m,layout:g,separatorToItems:y};throw Error(`Group ${e} not found`)},o=()=>{const a=n().derivedItemConstraints.find(c=>c.itemId===t);if(a!==void 0)return a;throw Error(`Panel constraints not found for Panel ${t}`)},r=()=>{const a=n().axis.items.find(c=>c.id===t);if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const a=n().layout[t];if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)},i=({nextSize:a,items:c,prevLayout:u,derivedItemConstraints:d})=>{const g=s(),m=c.findIndex(p=>p.id===t),y=m===0,f=m===c.length-1;if(f&&a<g&&(y||c.slice(0,m).every((p,h)=>{const C=d[h];return C?.collapsible&&K(C.collapsedSize,u[C.itemId])}))){const p=c.slice(0,m).reduce((h,C)=>h+u[C.id],0);return{...u,[t]:X(100-p)}}return Ne({delta:f?g-a:a-g,initialLayout:u,itemConstraints:d,pivotIndices:f?[m-1,m]:[m,m+1],prevLayout:u,trigger:"imperative-api"})},l=a=>{const c=s();if(a===c)return;const{defaultLayoutDeferred:u,derivedItemConstraints:d,axis:g,axisSize:m,layout:y,separatorToItems:f}=n(),S=i({nextSize:a,items:g.items,prevLayout:y,derivedItemConstraints:d}),p=pe({layout:S,itemConstraints:d});re(y,p)||de(g,{defaultLayoutDeferred:u,derivedItemConstraints:d,axisSize:m,layout:p,requestedAxisSize:m,requestedLayout:p,separatorToItems:f})};return{collapse:()=>{const{collapsible:a,collapsedSize:c}=o(),{mutableValues:u}=r(),d=s();a&&d!==c&&(u.expandToSize=d,l(c))},expand:()=>{const{collapsible:a,collapsedSize:c,minSize:u}=o(),{mutableValues:d}=r(),g=s();if(a&&g===c){let m=d.expandToSize??u;m===0&&(m=1),l(m)}},getSize:()=>{const{axis:a}=n(),c=s(),{element:u}=r(),d=a.layoutStrategy?a.layoutStrategy.getItemSizeInPixels(t):a.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:c,inPixels:d}},isCollapsed:()=>{const{collapsible:a,collapsedSize:c}=o(),u=s();return a&&K(c,u)},resize:a=>{const{axis:c}=n(),{element:u}=r(),d=Me({axis:c}),g=Ie({axisSize:d,itemElement:u,styleProp:a}),m=X(g/d*100);l(m)}}}function bt(e){if(e.defaultPrevented)return;const t=he();st(e,t).forEach(o=>{if(o.separator&&!o.separator.disableDoubleClick){const r=o.items.find(s=>s.constraintProps.defaultSize!==void 0);if(r){const s=r.constraintProps.defaultSize,i=it({axisId:o.axis.id,itemId:r.id});i&&s!==void 0&&(i.resize(s),e.preventDefault())}}})}function Yt(e){const t=he();for(const[n]of t)if(n.separators.some(o=>o.element===e))return n;throw Error("Could not find parent Group for separator element")}function De({axisId:e}){const t=()=>{const n=he();for(const[o,r]of n)if(o.id===e)return{axis:o,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){const{defaultLayoutDeferred:n,layout:o}=t();return n?{}:o},setLayout(n){const{defaultLayoutDeferred:o,derivedItemConstraints:r,axis:s,axisSize:i,layout:l,separatorToItems:a}=t(),c=pe({layout:n,itemConstraints:r});return o?l:(re(l,c)||de(s,{defaultLayoutDeferred:o,derivedItemConstraints:r,axisSize:i,layout:c,requestedAxisSize:i,requestedLayout:c,separatorToItems:a}),c)}}}function be(e,t){const n=Yt(e),o=se(n.id,!0),r=n.separators.find(d=>d.element===e);D(r,"Matching separator not found");const s=o.separatorToItems.get(r);D(s,"Matching panels not found");const i=s.map(d=>n.items.indexOf(d)),a=De({axisId:n.id}).getLayout(),c=Ne({delta:t,initialLayout:a,itemConstraints:o.derivedItemConstraints,pivotIndices:i,prevLayout:a,trigger:"keyboard"}),u=pe({layout:c,itemConstraints:o.derivedItemConstraints});re(a,u)||de(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedItemConstraints:o.derivedItemConstraints,axisSize:o.axisSize,layout:u,requestedAxisSize:o.axisSize,requestedLayout:u,separatorToItems:o.separatorToItems},{isUserInteraction:!0})}function xt(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=Yt(t);if(!(n.disabled||n.separators.find(r=>r.element===t)?.disabled))switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&be(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&be(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&be(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&be(t,-5);break}case"End":{e.preventDefault(),be(t,100);break}case"Enter":{e.preventDefault();const r=se(n.id,!0),{derivedItemConstraints:s,layout:i,separatorToItems:l}=r,a=n.separators.find(g=>g.element===t);D(a,"Matching separator not found");const c=l.get(a);D(c,"Matching panels not found");const u=c[0],d=s.find(g=>g.itemId===u.id);if(D(d,"Panel metadata not found"),d.collapsible){const g=i[u.id],m=d.collapsedSize===g?n.mutableState.expandedItemSizes[u.id]??d.minSize:d.collapsedSize;be(t,m-g)}break}case"F6":{e.preventDefault();const r=n.separators.map(a=>a.element),s=Array.from(r).findIndex(a=>a===e.currentTarget);D(s!==null,"Index not found");const i=e.shiftKey?s>0?s-1:r.length-1:s+1<r.length?s+1:0;r[i].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),be(t,-100);break}}}function Dn(e,t){const{element:n,orientation:o,items:r}=e,s=n.getBoundingClientRect(),i=o==="horizontal";return ot({expandHitTargets:!1,axis:e,includeDisabled:!0}).map(({items:a,rect:c,separator:u},d)=>{const g=r.indexOf(a[0]),m=i?c.left+c.width/2:c.top+c.height/2;return{active:t.some(f=>{if(f.axis!==e||f.items[0]!==a[0])return!1;if(u||f.separator)return f.separator===u;const S=i?f.rect.left+f.rect.width/2:f.rect.top+f.rect.height/2;return K(m,S)}),axis:e,key:u?`separator-${u.id}`:`panel-${a[0].id}-${d}`,offset:0,itemIndex:g,rect:new DOMRect((i&&!u?m:c.left)-s.left-n.clientLeft+n.scrollLeft,(!i&&!u?m:c.top)-s.top-n.clientTop+n.scrollTop,i&&!u?0:c.width,!i&&!u?0:c.height),separator:u}})}function wt(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=he(),n=st(e,t);if(n.length===0)return;const o=new Map;let r=!1;n.forEach(i=>{i.separator&&(r||(r=!0,i.separator.element.focus({focusVisible:!1,preventScroll:!0})));const l=t.get(i.axis);l&&o.set(i.axis,l.layout)});const s=Array.from(o.keys()).flatMap(i=>i.resizePreviewMode==="separator"?Dn(i,n):[]);ce({cursorFlags:0,didPointerMove:!1,hitRegions:n,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},previewLayoutMap:new Map(o),previews:s,state:"active"}),e.preventDefault()}function zt(e){const t=he(),n=ue();switch(n.state){case"active":rt({commit:!1,document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedAxes:t,prevCursorFlags:n.cursorFlags})}}function It(e){if(e.defaultPrevented)return;const t=ue(),n=he();switch(t.state){case"active":{if(e.buttons===0){t.previewLayoutMap.forEach((o,r)=>{const s=n.get(r);r.resizePreviewMode==="separator"&&s&&!re(o,s.layout)&&de(r,{...s,layout:o,requestedAxisSize:s.axisSize,requestedLayout:o})}),ce({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(o=>{if(!n.has(o.axis))return;const r=se(o.axis.id,!0);de(o.axis,r,{isUserInteraction:!0})}),Oe(e.currentTarget);return}for(const o of t.hitRegions)if(o.separator){const{element:r}=o.separator;r.isConnected&&!r.hasPointerCapture?.(e.pointerId)&&r.setPointerCapture?.(e.pointerId)}rt({commit:!1,document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedAxes:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const o=st(e,n);o.length===0?t.state!=="inactive"&&ce({cursorFlags:0,state:"inactive"}):ce({cursorFlags:0,hitRegions:o,state:"hover"}),Oe(e.currentTarget);break}}}function Ct(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(ue().state){case"hover":ce({cursorFlags:0,state:"inactive"})}}function Lt(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;Ut(e.currentTarget,e)&&e.preventDefault()}function On(e){let t=0,n=0;const o={};for(const s of e)if(s.defaultSize!==void 0){t++;const i=X(s.defaultSize);n+=i,o[s.itemId]=i}else o[s.itemId]=void 0;const r=e.length-t;if(r!==0){const s=X((100-n)/r);for(const i of e)i.defaultSize===void 0&&(o[i.itemId]=s)}return o}function Gn(e,t){const n=e.map(r=>r.id),o=Object.keys(t);if(n.length!==o.length)return!1;for(const r of n)if(!o.includes(r))return!1;return!0}function Rt({axis:e,itemConstraints:t}){const n=e.items.map(({id:r})=>r).join(","),o=e.mutableState.defaultLayout;return e.mutableState.layouts[n]??(o&&Gn(e.items,o)?o:On(t))}function Mt({itemIds:e,layout:t}){return pe({layout:t,itemConstraints:e.map(n=>({collapsedSize:0,collapsible:!1,defaultSize:void 0,disabled:void 0,itemId:n,maxSize:100,minSize:0}))})}function Nn(e,t,n){if(!n[0])return;const r=e.items.find(c=>c.element===t);if(!r||!r.onResize)return;const s=Me({axis:e}),i=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,l=r.mutableValues.prevSize,a={asPercentage:X(i/s*100),inPixels:i};r.mutableValues.prevSize=a,r.onResize(a,r.id,l)}function Kt(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const o in e)if(e[o]!==t[o])return!1;return!0}function jn(e,t){return e.length!==t.length?!1:e.every((n,o)=>Kt(n,t[o]))}function _n({axis:e,nextAxisSize:t,prevAxisSize:n,prevLayout:o}){if(n<=0||t<=0||n===t)return o;let r=0,s=0,i=!1;const l=new Map,a=[];for(const d of e.items){const g=o[d.id]??0;switch(d.constraintProps.groupResizeBehavior){case"preserve-pixel-size":{i=!0;const m=g/100*n,y=X(m/t*100);l.set(d.id,y),r+=y;break}case"preserve-relative-size":default:{a.push(d.id),s+=g;break}}}if(!i||a.length===0)return o;const c=100-r,u={...o};if(l.forEach((d,g)=>{u[g]=d}),s>0)for(const d of a){const g=o[d]??0;u[d]=X(g/s*c)}else{const d=X(c/a.length);for(const g of a)u[g]=d}return u}const ze=new Map;function Xt(e){let t=!0;D(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,r=new Set,s=new n(m=>{for(const y of m){const{borderBoxSize:f,target:S}=y;if(S===e.element){if(t){const p=Me({axis:e});if(p===0)return;const h=se(e.id);if(!h)return;const C=Qe(e);let w=h.requestedAxisSize,R=h.requestedLayout;h.defaultLayoutDeferred&&(w=p,R=Mt({itemIds:e.items.map(({id:b})=>b),layout:Rt({axis:e,itemConstraints:C})}));const N=_n({axis:e,nextAxisSize:p,prevAxisSize:w,prevLayout:R}),O=pe({layout:N,itemConstraints:C});if(!h.defaultLayoutDeferred&&re(h.layout,O)&&jn(h.derivedItemConstraints,C)&&h.axisSize===p)continue;de(e,{defaultLayoutDeferred:!1,derivedItemConstraints:C,axisSize:p,layout:O,requestedAxisSize:w,requestedLayout:R,separatorToItems:h.separatorToItems})}}else Nn(e,S,f)}});s.observe(e.element),e.items.forEach(m=>{D(!o.has(m.id),`Panel ids must be unique; id "${m.id}" was used more than once`),o.add(m.id),m.onResize&&s.observe(m.element)});const i=Me({axis:e}),l=Qe(e),a=Rt({axis:e,itemConstraints:l}),c=pe({layout:a,itemConstraints:l}),u=e.element.ownerDocument;ze.set(u,(ze.get(u)??0)+1);const d=new Map;return ot({axis:e,includeDisabled:!0}).forEach(m=>{m.separator&&d.set(m.separator,m.items)}),de(e,{defaultLayoutDeferred:i===0,derivedItemConstraints:l,axisSize:i,layout:c,requestedAxisSize:i,requestedLayout:Mt({itemIds:e.items.map(({id:m})=>m),layout:a}),separatorToItems:d}),e.separators.forEach(m=>{D(!r.has(m.id),`Separator ids must be unique; id "${m.id}" was used more than once`),r.add(m.id),m.element.addEventListener("keydown",xt)}),ze.get(u)===1&&(u.addEventListener("contextmenu",gt,!0),u.addEventListener("dblclick",bt,!0),u.addEventListener("pointerdown",wt,!0),u.addEventListener("pointerleave",zt),u.addEventListener("pointermove",It),u.addEventListener("pointerout",Ct),u.addEventListener("pointerup",Lt,!0)),function(){t=!1,ze.set(u,Math.max(0,(ze.get(u)??0)-1)),In(e),pn(e)&&Oe(u),e.separators.forEach(y=>{y.element.removeEventListener("keydown",xt)}),ze.get(u)||(u.removeEventListener("contextmenu",gt,!0),u.removeEventListener("dblclick",bt,!0),u.removeEventListener("pointerdown",wt,!0),u.removeEventListener("pointerleave",zt),u.removeEventListener("pointermove",It),u.removeEventListener("pointerout",Ct),u.removeEventListener("pointerup",Lt,!0)),s.disconnect()}}function Jt({derivedItemConstraints:e,axis:t,layout:n,prevLayout:o,requestedLayout:r}){const s=t.items.map(({id:i})=>i).join(",");t.mutableState.layouts[s]=r,o&&e.forEach(i=>{if(i.collapsible){const l=K(i.collapsedSize,n[i.itemId]),a=K(i.collapsedSize,o[i.itemId]);l&&!a&&(t.mutableState.expandedItemSizes[i.itemId]=o[i.itemId])}})}function Zt(){const[e,t]=x.useState({}),n=x.useCallback(()=>t({}),[]);return[e,n]}function Ue(e){const t=x.useRef({...e});return ne(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const at=x.createContext(null);function Fn({layout:e,itemConstraints:t,itemId:n,itemIndex:o}){let r,s;const i=e[n],l=t.find(a=>a.itemId===n);if(l){const a=l.maxSize,c=l.collapsible?l.collapsedSize:l.minSize,u=[o,o+1];s=pe({layout:Ne({delta:c-i,initialLayout:e,itemConstraints:t,pivotIndices:u,prevLayout:e}),itemConstraints:t})[n],r=pe({layout:Ne({delta:a-i,initialLayout:e,itemConstraints:t,pivotIndices:u,prevLayout:e}),itemConstraints:t})[n]}return{valueControls:n,valueMax:r,valueMin:s,valueNow:i}}function Qt({attributes:e,axisId:t,axisOrientation:n,children:o,className:r,disableCursor:s,disabled:i,disableDoubleClick:l,elementRef:a,id:c,isSharedHitRegion:u,preview:d,registerSeparator:g,requiredStyle:m,style:y,styleDefaults:f,tabIndex:S=0,updateSeparatorProps:p}){const h=Ue({disabled:i,disableDoubleClick:l,children:o,className:r,preview:d,style:y}),[C,w]=x.useState({}),[R,N]=x.useState("inactive"),[O,b]=x.useState(!1),z=x.useRef(null),v=x.useRef(null),T=je(z,a),G=n==="horizontal"?"vertical":"horizontal";ne(()=>{const k=z.current;if(k!==null){const I={disabled:h.disabled,disableDoubleClick:h.disableDoubleClick,element:k,id:c,get children(){return h.children},get className(){return h.className},get preview(){return h.preview},get style(){return h.style}};v.current=I;const E=g(I),q=jt(H=>{N(H.next.state!=="inactive"&&H.next.hitRegions.some(Z=>Z.separator===I||(u?.(Z)??!1))?H.next.state:"inactive")}),J=Ge(t,H=>{const{derivedItemConstraints:Z,layout:ge,separatorToItems:xe}=H.next,we=xe.get(I);if(we){const ye=we[0],L=Z.findIndex(_=>_.itemId===ye.id),{layoutStrategy:$}=H.axis;w({...Fn({layout:ge,itemConstraints:Z,itemId:ye.id,itemIndex:L}),...$?.getItemAriaControls&&{valueControls:$.getItemAriaControls(ye.id)}})}});return()=>{v.current=null,q(),J(),E()}}},[t,c,u,g,h]),ne(()=>{const k=v.current;k&&mn(k)},[d]),x.useEffect(()=>{p(c,{disabled:i,disableDoubleClick:l})},[i,l,c,p]);let M;i&&!s&&(M="not-allowed");let P;if(i)P="disabled";else switch(R){case"active":{P="active";break}default:O?P="focus":P=R}return W.jsx("div",{...e,"aria-controls":C.valueControls,"aria-disabled":i||void 0,"aria-orientation":G,"aria-valuemax":C.valueMax,"aria-valuemin":C.valueMin,"aria-valuenow":C.valueNow,children:o,className:r,"data-separator":P,"data-testid":c,id:c,onBlur:()=>b(!1),onFocus:()=>b(!0),ref:T,role:"separator",style:{...f,cursor:M,...y,...m,touchAction:"none"},tabIndex:i?void 0:S})}function Et({axis:e,children:t,className:n,crossSpan:o,crossStart:r,disabled:s,elementRef:i,index:l,style:a}){const c=Ee(void 0),{getDisableCursor:u,getResizeAxisId:d,gutters:g,registerSeparator:m,separatorPlacements:y,trackCounts:f,updateSeparatorProps:S}=At(),p=d(e),h=e==="column"?"row":"column",C=f[h],w=!!s||!et(l,f[e]);let R=!0;for(const v of y.values())if(v.axis===e&&v.index===l&&!v.disabled&&v.crossStart<r){R=!1;break}const N=x.useCallback(v=>v.axis.id===p&&v.axis.items.indexOf(v.items[1])===l,[p,l]),O=x.useCallback(v=>m({axis:e,crossSpan:o,crossStart:r,disabled:!!s,index:l},v),[e,o,r,s,l,m]),b=ln(l),z=cn({crossCount:C,crossSpan:o,crossStart:r,hasGutters:g[h]});return W.jsx(Qt,{axisId:p,axisOrientation:e==="column"?"horizontal":"vertical",className:n,disableCursor:u(),disabled:w,disableDoubleClick:void 0,elementRef:i,id:c,isSharedHitRegion:N,registerSeparator:O,requiredStyle:{gridColumn:e==="column"?b:z,gridRow:e==="row"?b:z},style:a,tabIndex:R?0:-1,updateSeparatorProps:S,children:t})}function lt(e){const{children:t,className:n,disabled:o,elementRef:r,style:s}=e;return e.type==="column"?W.jsx(Et,{axis:"column",className:n,crossSpan:e.rowSpan,crossStart:e.row??0,disabled:o,elementRef:r,index:e.column,style:s,children:t}):W.jsx(Et,{axis:"row",className:n,crossSpan:e.columnSpan,crossStart:e.column??0,disabled:o,elementRef:r,index:e.row,style:s,children:t})}lt.displayName="Gridline";const Ce=["column","row"],Pt={columns:{},rows:{}};function en({children:e,className:t,columns:n,defaultLayout:o,disableCursor:r,disabled:s,elementRef:i,gridRef:l,id:a,onLayoutChange:c,onLayoutChanged:u,resizeTargetMinimumSize:d={coarse:20,fine:10},rows:g,style:m,...y}){const f=Ee(a),S=x.useCallback(L=>L==="column"?`${f}:columns`:`${f}:rows`,[f]),p=kt(n,"columns"),h=kt(g,"rows"),C=L=>L==="column"?p:h,w=x.useRef({onLayoutChange:Pt,onLayoutChanged:Pt}),R=me(L=>{$t(w.current.onLayoutChange,L)||(w.current.onLayoutChange=L,c?.(L))}),N=me((L,$,_)=>{$t(w.current.onLayoutChanged,L)||(w.current.onLayoutChanged=L,u?.(L,{isUserInteraction:$,requestedLayout:_}))}),O=x.useRef(null),b=je(O,i),[z,v]=Zt(),T=x.useRef({cells:[],column:{expandedItemSizes:{},layouts:{}},loggedErrors:new Set,row:{expandedItemSizes:{},layouts:{}},separators:new Map}),G={column:!1,row:!1};for(const L of T.current.separators.values())G[L.axis]=!0;tn(e,G);const M=Ue({defaultLayout:o,disableCursor:r,resizeTargetMinimumSize:d}),P=me(()=>!!M.disableCursor),k=x.useCallback(L=>{const $=T.current;return $.cells=[...$.cells,L],v(),()=>{$.cells=$.cells.filter(_=>_!==L),v()}},[v]),I=x.useCallback((L,$)=>{const _=T.current;return _.separators=new Map(_.separators),_.separators.set($,L),v(),()=>{_.separators=new Map(_.separators),_.separators.delete($),v()}},[v]),E=x.useCallback((L,{disabled:$,disableDoubleClick:_})=>{for(const j of T.current.separators.keys())j.id===L&&(j.disabled=$,j.disableDoubleClick=_)},[]),q=T.current.separators,J=x.useMemo(()=>({getDisableCursor:P,getResizeAxisId:S,gutters:{column:G.column,row:G.row},id:f,registerCell:k,registerSeparator:I,separatorPlacements:q,trackCounts:{column:p.length,row:h.length},updateSeparatorProps:E}),[p.length,P,S,G.column,G.row,f,k,I,h.length,q,E]),H=x.useRef([]);ne(()=>{const L=O.current;if(L===null)return;const $=T.current,_=Bn({cells:$.cells,separatorPlacements:$.separators,trackCounts:{column:p.length,row:h.length}});_.forEach(A=>{$.loggedErrors.has(A)||console.error(A)}),$.loggedErrors=new Set(_);const j=A=>Array.from($.separators.entries()).filter(([,Y])=>Y.axis===A).sort(([,Y],[,Se])=>Y.index-Se.index).map(([Y])=>Y),F=A=>{const Y=A==="column"?p:h,Se=A==="column"?h:p,fe=Y.map(Q=>Q.id),_e=S(A),Fe=j(A),ve=Fe.length>0,qe=Y.map(({id:Q,...oe},ee)=>({element:L,id:fe[ee],idIsStable:!0,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:void 0,constraintProps:oe})),ke=()=>{const Q=[];if(ve){for(const[oe,ee]of $.separators)if(ee.axis===A&&et(ee.index,Y.length)){const Te=oe.element.getBoundingClientRect();Q[ee.index]=Math.max(Q[ee.index]??0,A==="column"?Te.width:Te.height)}}return dn({axis:A,element:L,gutterSizes:Q.filter(oe=>oe!==void 0),hasGutters:ve,layout:se(_e)?.layout,trackIds:fe})};let $e;const Ye=M.defaultLayout?.[A==="column"?"columns":"rows"];if(Ye!==void 0&&Object.keys(Ye).length===fe.length){$e={};for(const Q of fe){const oe=Ye[Q];oe!==void 0&&($e[Q]=oe)}}return{disabled:!!s,element:L,id:_e,layoutStrategy:{getItemAriaControls:Q=>{const oe=fe.indexOf(Q);return $.cells.filter(ee=>{const Te=A==="column"?ee.column:ee.row,sn=A==="column"?ee.columnSpan:ee.rowSpan;return Te<=oe&&oe<Te+sn}).map(ee=>ee.element.id).filter(Boolean).join(" ")||void 0},calculateAvailableSize:()=>ke().availableSize,calculateHitRegions:({expandHitTargets:Q,axis:oe,includeDisabled:ee})=>un({axis:A,cells:$.cells,crossTrackCount:Se.length,expandHitTargets:Q,resizeAxis:oe,axisSize:ke().availableSize,includeDisabled:ee,separatorPlacements:$.separators}),getItemSizeInPixels:Q=>ke().trackSizes[fe.indexOf(Q)]??0},mutableState:{defaultLayout:$e,disableCursor:!!M.disableCursor,expandedItemSizes:$[A].expandedItemSizes,layouts:$[A].layouts},orientation:A==="column"?"horizontal":"vertical",items:qe,resizePreviewMode:"panel",get resizeTargetMinimumSize(){return M.resizeTargetMinimumSize},separators:Fe}},V=Ce.map(F);H.current=V;const U=V.map(A=>Xt(A)),te=()=>{const[A,Y]=V.map(Se=>se(Se.id));if(!(!A||!Y||A.defaultLayoutDeferred||Y.defaultLayoutDeferred))return{layout:{columns:A.layout,rows:Y.layout},requestedLayout:{columns:A.requestedLayout,rows:Y.requestedLayout}}};{const A=te();A&&(R(A.layout),N(A.layout,!1,A.requestedLayout))}const Pe=V.map(A=>Ge(A.id,Y=>{const{defaultLayoutDeferred:Se,derivedItemConstraints:fe,layout:_e,requestedLayout:Fe}=Y.next;if(Se||fe.length===0)return;Jt({derivedItemConstraints:fe,axis:A,layout:_e,prevLayout:Y.prev?.layout,requestedLayout:Fe});const ve=te();if(ve){const qe=ue(),ke=qe.state!=="active"||!qe.hitRegions.some($e=>V.includes($e.axis));R(ve.layout),ke&&N(ve.layout,Y.isUserInteraction,ve.requestedLayout)}}));return()=>{H.current=[],U.forEach(A=>A()),Pe.forEach(A=>A())}},[p,s,S,f,N,R,h,z,M]),x.useEffect(()=>{H.current.forEach(L=>{L.mutableState.defaultLayout=o?.[L.orientation==="horizontal"?"columns":"rows"],L.mutableState.disableCursor=!!r})}),x.useImperativeHandle(l,()=>{const L=()=>{const[j,F]=Ce.map(S);return!Le(j)||!Le(F)?{columns:{},rows:{}}:{columns:De({axisId:j}).getLayout(),rows:De({axisId:F}).getLayout()}},$=j=>j.map(F=>`"${F}"`).join(", "),_=(j,F)=>{const V=S(j),U=()=>{const te=Le(V);return D(te,`Grid "${f}" has not been mounted`),D(te.items.some(Pe=>Pe.id===F),`Grid "${f}" no longer contains a ${j} with id "${F}"; ${j} ids are ${$(te.items.map(Pe=>Pe.id))}`),it({axisId:V,itemId:F})};return{collapse:()=>U().collapse(),expand:()=>U().expand(),getSize:()=>U().getSize(),isCollapsed:()=>U().isCollapsed(),resize:te=>U().resize(te)}};return{getLayout:L,getTrackById:(j,F)=>{const V=j==="column"?p:h,U=`${F}`;return D(V.some(te=>te.id===U),`Grid "${f}" does not contain a ${j} with id "${U}"; ${j} ids are ${$(V.map(te=>te.id))}`),_(j,U)},getTrackByIndex:(j,F)=>{const V=j==="column"?p:h,U=Number.isInteger(F)?V[F]:void 0;return D(U,`Grid "${f}" does not contain a ${j} at index ${F}; it has ${V.length} ${j}s`),_(j,U.id)},setLayout:j=>(Ce.forEach(F=>{const V=j[F==="column"?"columns":"rows"],U=S(F);V&&Le(U)&&De({axisId:U}).setLayout(V)}),L())}},[p,S,f,h]);const Z=()=>Ce.map(L=>{const $=se(S(L)),_=C(L);return($&&!$.defaultLayoutDeferred?_.map(F=>`minmax(0, ${$.layout[F.id]??1}fr)`):qn(_,o?.[L==="column"?"columns":"rows"])).join(G[L]?" auto ":" ")}).join("|"),ge=x.useCallback(L=>{const $=Ce.map(_=>Ge(S(_),L));return()=>$.forEach(_=>_())},[S]),xe=x.useSyncExternalStore(ge,Z,Z),[we,ye]=xe.split("|");return W.jsx(Tt.Provider,{value:J,children:W.jsx("div",{...y,className:t,"data-grid":!0,"data-testid":f,id:f,ref:b,style:{height:"100%",width:"100%",overflow:"hidden",...m,display:"grid",gridTemplateColumns:we,gridTemplateRows:ye,touchAction:"none"},children:W.jsx(at.Provider,{value:null,children:e})})})}en.displayName="Grid";function kt(e,t){const n=JSON.stringify(e);return x.useMemo(()=>{const o=typeof e=="number"?Array.from({length:e},(r,s)=>({id:`${s}`})):e.map((r,s)=>({...r,id:`${r.id??s}`}));return D(o.length>0,`Grid must have at least one track; "${t}" is ${n}`),o},[n])}function tn(e,t){x.Children.forEach(e,n=>{if(x.isValidElement(n))if(n.type===lt){const{type:o}=n.props;o==="column"?t.column=!0:o==="row"&&(t.row=!0)}else typeof n.type=="symbol"&&n.props!==null&&typeof n.props=="object"&&"children"in n.props&&tn(n.props.children,t)})}function qn(e,t){if(t)return e.map(s=>`minmax(0, ${t[s.id]??1}fr)`);const n=e.map(s=>s.defaultSize===void 0?void 0:Gt(s.defaultSize));let o=100,r=0;return n.forEach(s=>{s===void 0?r++:s[1]==="%"&&(o-=s[0])}),n.map(s=>{if(s===void 0)return`minmax(0, ${Math.max(0,o)/Math.max(1,r)}fr)`;const[i,l]=s;return l==="%"?`minmax(0, ${i}fr)`:`${i}${l}`})}function Bn({cells:e,separatorPlacements:t,trackCounts:n}){const o=[];for(const l of e)Ce.forEach(a=>{const[c,u]=a==="column"?[l.column,l.columnSpan]:[l.row,l.rowSpan],d=n[a];(!Number.isInteger(c)||!Number.isInteger(u)||c<0||u<1||c+u>d)&&o.push(`Invalid Cell ${a} placement (${a}: ${c}, ${a}Span: ${u}); Grid has ${d} ${a}s`)});const r=({axis:l,crossSpan:a,crossStart:c,disabled:u,index:d})=>{const g=l==="column"?"row":"column";let m=`type="${l}" ${l}={${d}}`;return(c!==0||a!==void 0)&&(m+=` ${g}={${c}}`),a!==void 0&&(m+=` ${g}Span={${a}}`),u&&(m+=" disabled"),`<Gridline ${m} />`},s=Array.from(t.values()).filter(l=>{const{axis:a,crossSpan:c,crossStart:u,index:d}=l,g=a==="column"?"row":"column",m=n[a],y=n[g];let f=!0;return et(d,m)||(o.push(`Invalid ${a} Gridline ${a} (${d}); must be between 1 and ${m-1}`),f=!1),!Number.isInteger(u)||u<0||u>=y?(o.push(`Invalid ${a} Gridline ${g} (${u}); must be between 0 and ${y-1}`),f=!1):c!==void 0&&(!Number.isInteger(c)||c<1||u+c>y)&&(o.push(`Invalid ${a} Gridline ${g}Span (${c}); Grid has ${y} ${g}s`),f=!1),f}),i=l=>{const a=n[l.axis==="column"?"row":"column"];return[l.crossStart,l.crossSpan===void 0?a:l.crossStart+l.crossSpan]};return s.forEach((l,a)=>{const{axis:c,index:u}=l,[d,g]=i(l);for(const m of e){const[y,f,S,p]=c==="column"?[m.column,m.columnSpan,m.row,m.rowSpan]:[m.row,m.rowSpan,m.column,m.columnSpan];if(y<u&&u<y+f&&S<g&&d<S+p){const h=c==="column"?"row":"column";o.push(`${r(l)} overlaps a Cell that spans across it (${c}: ${y}, ${c}Span: ${f}, ${h}: ${S}, ${h}Span: ${p}); use the ${h} and ${h}Span props to render gridlines beside the Cell instead`)}}for(const m of s.slice(a+1))if(m.axis===c&&m.index===u){const[y,f]=i(m);y<g&&d<f&&o.push(`${r(l)} overlaps ${r(m)}`)}}),o}function $t(e,t){return re(e.columns,t.columns)&&re(e.rows,t.rows)}function Hn({id:e,onlySaveAfterUserInteractions:t,storage:n=localStorage}){const o=`react-resizable-panels:grid:${e}`,r=x.useSyncExternalStore(Vn,()=>n.getItem(o),()=>n.getItem(o)),s=x.useMemo(()=>{if(r)try{const l=JSON.parse(r);if(l!==null&&typeof l=="object")return l}catch{}},[r]),i=x.useCallback((l,a)=>{if(!(t&&!a.isUserInteraction))try{n.setItem(o,JSON.stringify(a.requestedLayout??l))}catch(c){console.error(c)}},[t,n,o]);return{defaultLayout:s,onLayoutChanged:i}}function Vn(){return function(){}}function Un(){return x.useState(null)}function Wn(){return x.useRef(null)}function Yn(e){for(let t=1;t<e.length;t++)if(nt(e[t-1],e[t])>0)return!1;return!0}function Kn({separator:e}){const{element:t}=e,n=x.useRef(null);return ne(()=>{const o=t.cloneNode(!0),r=[t,...t.querySelectorAll("*")],s=[o,...o.querySelectorAll("*")],i=t.ownerDocument.defaultView;return r.forEach((l,a)=>{const c=s[a];if(c instanceof i.HTMLElement||c instanceof i.SVGElement){const u=i.getComputedStyle(l);for(let d=0;d<u.length;d++){const g=u.item(d);c.style.setProperty(g,u.getPropertyValue(g))}}c.removeAttribute("data-testid"),c.removeAttribute("id")}),Object.assign(o.style,{boxSizing:"border-box",height:"100%",margin:"0",position:"static",transform:"none",width:"100%"}),n.current.appendChild(o),()=>o.remove()},[t]),W.jsx("div",{ref:n,style:{height:"100%",opacity:.65,pointerEvents:"none",width:"100%"}})}function We(){const e=x.useContext(at);return D(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ct(e){const{registerOverlay:t}=We(),n=x.useRef(e);Kt(n.current,e)||(n.current=e);const o=n.current;return ne(()=>t(o),[t,o]),null}ct.displayName="SeparatorOverlay";function Xn({active:e,orientation:t,style:n,...o}){let r;switch(t){case"horizontal":{r={height:"100%",minWidth:"1px"};break}case"vertical":{r={minHeight:"1px",width:"100%"};break}}return W.jsx("div",{...o,"data-separator-overlay":e?"active":"inactive",style:{...r,...n,flexShrink:0,pointerEvents:"none"}})}function Jn({overlay:e,preview:t}){const{axis:n,offset:o,rect:r,separator:s}=t,i=n.orientation==="horizontal";let l=s?.preview,a=e;return x.isValidElement(l)&&l.type===ct&&(a=l.props,l=void 0),l==null&&(a?l=W.jsx(Xn,{...a,active:t.active,orientation:n.orientation}):s&&(l=W.jsx(Kn,{separator:s}))),W.jsx("div",{"aria-hidden":"true","data-resize-preview":!0,inert:!0,style:{height:r.height,left:r.left,pointerEvents:"none",position:"absolute",top:r.top,transform:i?`translateX(${o}px)`:`translateY(${o}px)`,width:r.width},children:l})}function Zn(e){return Array.from(e).sort(nt)}function Qn(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:hn});x.useImperativeHandle(t,()=>n.current,[]),ne(()=>{Object.assign(n.current,De({axisId:e}))})}function eo({groupId:e,resizePreviewMode:t}){const[n,o]=x.useState([]),r=x.useRef(n);return ne(()=>{const s=l=>{const a=Le(e),c=t==="separator"&&l.state==="active"?l.previews.filter(d=>d.axis===a&&(d.active||!K(d.offset,0))):[],u=r.current;u.length===c.length&&c.every((d,g)=>d===u[g])||(r.current=c,o(c))};if(t!=="separator"){s(ue());return}const i=jt(({next:l})=>s(l));return s(ue()),i},[e,t]),n}function nn({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:r,elementRef:s,groupRef:i,id:l,onLayoutChange:a,onLayoutChanged:c,orientation:u="horizontal",resizePreviewMode:d="panel",resizeTargetMinimumSize:g={coarse:20,fine:10},style:m,...y}){const f=x.useRef({onLayoutChange:{},onLayoutChanged:{}}),S=me(I=>{re(f.current.onLayoutChange,I)||(f.current.onLayoutChange=I,a?.(I))}),p=me((I,E,q)=>{re(f.current.onLayoutChanged,I)||(f.current.onLayoutChanged=I,c?.(I,{isUserInteraction:E,requestedLayout:q}))}),h=Ee(l),[C,w]=x.useState(),R=eo({groupId:h,resizePreviewMode:d}),N=x.useRef(null),[O,b]=Zt(),z=x.useRef([]),v=x.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),T=je(N,s);Qn(h,i);const G=me((I,E)=>{const q=se(I);if(q)return{flexGrow:q.layout[E]??1};if(n?.[E])return{flexGrow:n?.[E]}}),M=Ue({defaultLayout:n,disableCursor:o,resizeTargetMinimumSize:g}),P=x.useMemo(()=>({get disableCursor(){return!!M.disableCursor},getPanelStyles:G,id:h,orientation:u,registerPanel:I=>{const E=v.current;return E.panels=Ae(u,[...E.panels,I]),b(),()=>{E.panels=E.panels.filter(q=>q!==I),b()}},registerOverlay:I=>(w(I),()=>{w(void 0)}),registerSeparator:I=>{const E=v.current;return E.separators=Ae(u,[...E.separators,I]),b(),()=>{E.separators=E.separators.filter(q=>q!==I),b()}},updatePanelProps:(I,{disabled:E})=>{const J=v.current.panels.find(ge=>ge.id===I);J&&(J.constraintProps.disabled=E);const H=Le(h),Z=se(h);H&&Z&&de(H,{...Z,derivedItemConstraints:Qe(H)})},updateSeparatorProps:(I,{disabled:E,disableDoubleClick:q})=>{const H=v.current.separators.find(Z=>Z.id===I);H&&(H.disabled=E,H.disableDoubleClick=q)}}),[G,h,b,u,M]),k=x.useRef(null);return ne(()=>{const I=N.current;if(I===null)return;const E=v.current;E.panels=Ae(u,E.panels),E.separators=Ae(u,E.separators),z.current=Zn([...E.panels.map(({element:L})=>L),...E.separators.map(({element:L})=>L)]);let q;if(M.defaultLayout!==void 0&&Object.keys(M.defaultLayout).length===E.panels.length){q={};for(const L of E.panels){const $=M.defaultLayout[L.id];$!==void 0&&(q[L.id]=$)}}const J={disabled:!!r,element:I,id:h,mutableState:{defaultLayout:q,disableCursor:!!M.disableCursor,expandedItemSizes:v.current.lastExpandedPanelSizes,layouts:v.current.layouts},orientation:u,items:E.panels,resizePreviewMode:d,get resizeTargetMinimumSize(){return M.resizeTargetMinimumSize},separators:E.separators};k.current=J;const H=Xt(J),{defaultLayoutDeferred:Z,derivedItemConstraints:ge,layout:xe,requestedLayout:we}=se(J.id,!0);!Z&&ge.length>0&&(S(xe),p(xe,!1,we));const ye=Ge(h,L=>{const{defaultLayoutDeferred:$,derivedItemConstraints:_,layout:j,requestedLayout:F}=L.next;if($||_.length===0)return;Jt({derivedItemConstraints:_,axis:J,layout:j,prevLayout:L.prev?.layout,requestedLayout:F});const V=ue(),U=V.state!=="active"||!V.hitRegions.some(te=>te.axis===J);S(j),U&&p(j,L.isUserInteraction,F)});return()=>{k.current=null,H(),ye()}},[r,h,p,S,u,O,d,M]),ne(()=>{Yn(z.current)||b()}),x.useEffect(()=>{const I=k.current;I&&(I.mutableState.defaultLayout=n,I.mutableState.disableCursor=!!o)}),W.jsx(at.Provider,{value:P,children:W.jsxs("div",{...y,className:t,"data-group":!0,"data-testid":h,id:h,ref:T,style:{height:"100%",width:"100%",overflow:"hidden",position:d==="separator"?"relative":void 0,...m,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:u==="horizontal"?"pan-y":"pan-x"},children:[e,R.map(I=>W.jsx(Jn,{overlay:C,preview:I},I.key))]})})}nn.displayName="Group";function Ve(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function to({id:e,panelIds:t,storage:n}){const o=Ve(e,[]),r=n.getItem(o);if(r)try{const s=JSON.parse(r);if(t){const i=t.join(","),l=s[i];if(l&&Array.isArray(l.layout)&&t.length===l.layout.length){const a={};for(let c=0;c<t.length;c++)a[t[c]]=l.layout[c];return a}}else{const i=Object.keys(s);if(i.length===1){const l=s[i[0]];if(l&&Array.isArray(l.layout)){const a=i[0].split(",");if(a.length===l.layout.length){const c={};for(let u=0;u<a.length;u++)c[a[u]]=l.layout[u];return c}}}}}catch{}}function no({debounceSaveMs:e=100,onlySaveAfterUserInteractions:t,panelIds:n,storage:o=localStorage,...r}){const s=n!==void 0,i="id"in r?r.id:r.groupId,l=Ve(i,n??[]),a=x.useSyncExternalStore(oo,()=>o.getItem(l),()=>o.getItem(l)),c=x.useMemo(()=>{if(a){const S=JSON.parse(a),p=Object.values(S);if(Array.from(p).every(h=>typeof h=="number"))return S}},[a]),u=x.useMemo(()=>{if(!c)return to({id:i,panelIds:n,storage:o})},[c,i,n,o]),d=c??u,g=x.useRef(null),m=x.useCallback(()=>{const S=g.current;S&&(g.current=null,clearTimeout(S))},[]);x.useLayoutEffect(()=>()=>{m()},[m]);const y=x.useCallback((S,p)=>{if(t&&!p.isUserInteraction)return;m();const h=p.requestedLayout??S;let C;s?C=Ve(i,Object.keys(h)):C=Ve(i,[]);try{o.setItem(C,JSON.stringify(h))}catch(w){console.error(w)}},[m,s,i,t,o]),f=x.useCallback(S=>{m(),e===0?y(S,{isUserInteraction:!1}):g.current=setTimeout(()=>{y(S,{isUserInteraction:!1})},e)},[m,e,y]);return{defaultLayout:d,onLayoutChange:f,onLayoutChanged:y}}function oo(){return function(){}}function ro(){return x.useState(null)}function so(){return x.useRef(null)}function io(e,t){const{id:n}=We(),o=x.useRef({collapse:Ke,expand:Ke,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Ke});x.useImperativeHandle(t,()=>o.current,[]),ne(()=>{Object.assign(o.current,it({axisId:n,itemId:e}))})}function on({children:e,className:t,collapsedSize:n="0%",collapsedThreshold:o,collapsible:r=!1,defaultSize:s,disabled:i,elementRef:l,groupResizeBehavior:a="preserve-relative-size",id:c,maxSize:u="100%",minSize:d="0%",onResize:g,panelRef:m,style:y,...f}){const S=!!c,p=Ee(c),h=Ue({disabled:i}),C=x.useRef(null),w=je(C,l),{getPanelStyles:R,id:N,orientation:O,registerPanel:b,updatePanelProps:z}=We(),v=g!==null,T=me((k,I,E)=>{g?.(k,c,E)});ne(()=>{const k=C.current;if(k!==null){const I={element:k,id:p,idIsStable:S,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:v?T:void 0,constraintProps:{groupResizeBehavior:a,collapsedSize:n,collapsedThreshold:o,collapsible:r,defaultSize:s,disabled:h.disabled,maxSize:u,minSize:d}};return b(I)}},[a,n,o,r,s,v,p,S,u,d,T,b,h]),x.useEffect(()=>{z(p,{disabled:i})},[i,p,z]),io(p,m);const G=()=>{const k=R(N,p);if(k)return JSON.stringify(k)},M=x.useSyncExternalStore(k=>Ge(N,k),G,G);let P;return M?P=JSON.parse(M):s!==void 0?P={flexGrow:void 0,flexShrink:void 0,flexBasis:s}:P={flexGrow:1},W.jsx("div",{...f,"data-disabled":i||void 0,"data-panel":!0,"data-testid":p,id:p,ref:w,style:{...ao,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...P},children:W.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...y,touchAction:O==="horizontal"?"pan-y":"pan-x"},children:e})})}on.displayName="Panel";const ao={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function lo(){return x.useState(null)}function co(){return x.useRef(null)}const uo={flexBasis:"auto"},fo={flexGrow:0,flexShrink:0};function rn({children:e,className:t,disabled:n,disableDoubleClick:o,elementRef:r,id:s,preview:i,style:l,...a}){const c=Ee(s),{disableCursor:u,id:d,orientation:g,registerSeparator:m,updateSeparatorProps:y}=We();return W.jsx(Qt,{attributes:a,axisId:d,axisOrientation:g,className:t,disableCursor:u,disabled:n,disableDoubleClick:o,elementRef:r,id:c,preview:i,registerSeparator:m,requiredStyle:fo,style:l,styleDefaults:uo,updateSeparatorProps:y,children:e})}rn.displayName="Separator";exports.Cell=Dt;exports.Grid=en;exports.Gridline=lt;exports.Group=nn;exports.Panel=on;exports.Separator=rn;exports.SeparatorOverlay=ct;exports.isCoarsePointer=Ot;exports.useDefaultGridLayout=Hn;exports.useDefaultLayout=no;exports.useGridCallbackRef=Un;exports.useGridRef=Wn;exports.useGroupCallbackRef=ro;exports.useGroupRef=so;exports.usePanelCallbackRef=lo;exports.usePanelRef=co;
2
2
  //# sourceMappingURL=react-resizable-panels.cjs.map