react-resizable-panels 4.2.2 → 4.3.0-alpha.1

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
@@ -157,6 +157,8 @@ Panel elements always include the following attributes:
157
157
  ```
158
158
 
159
159
  ℹ️ [Test id](https://testing-library.com/docs/queries/bytestid/) can be used to narrow selection when unit testing.
160
+
161
+ ⚠️ Panel elements must be direct DOM children of their parent Group elements.
160
162
  <!-- Panel:description:end -->
161
163
 
162
164
  #### Required props
@@ -259,7 +261,7 @@ Falls back to <code>useId</code> when not provided.</p>
259
261
  <!-- Separator:description:begin -->
260
262
  Separators are not _required_ but they are _recommended_ as they improve keyboard accessibility.
261
263
 
262
- Separators should be rendered as the direct child of a Group component.
264
+ ⚠️ Separator elements must be direct DOM children of their parent Group elements.
263
265
 
264
266
  Separator elements always include the following attributes:
265
267
 
@@ -1,2 +1,2 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react/jsx-runtime"),x=require("react");function b(e,t="Assertion error"){if(!e)throw Error(t)}function H({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,i)=>(o+=t==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,o),0)}function oe(e,t){return t.sort(e==="horizontal"?We:Ue)}function We(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Ue(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function we(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Le(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 Ke({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let i,s=Number.MAX_VALUE;for(const l of t){const{x:r,y:a}=Le(o,l),u=e==="horizontal"?r:a;u<s&&(s=u,i=l)}return b(i,"No rect found"),i}function Re(e){const{element:t,orientation:n,panels:o,separators:i}=e,s=oe(n,Array.from(t.children).filter(we).map(f=>({element:f}))).map(({element:f})=>f),l=[];let r=!1,a,u=[];for(const f of s)if(f.hasAttribute("data-panel")){const p=o.find(m=>m.element===f);if(p){if(a){const m=a.element.getBoundingClientRect(),h=f.getBoundingClientRect();let c;if(r){const d=n==="horizontal"?new DOMRect(m.right,m.top,0,m.height):new DOMRect(m.left,m.bottom,m.width,0),y=n==="horizontal"?new DOMRect(h.left,h.top,0,h.height):new DOMRect(h.left,h.top,h.width,0);switch(u.length){case 0:{c=[d,y];break}case 1:{const g=u[0],v=Ke({orientation:n,rects:[m,h],targetRect:g.element.getBoundingClientRect()});c=[g,v===m?y:d];break}default:{c=u;break}}}else u.length?c=u:c=[n==="horizontal"?new DOMRect(m.right,h.top,h.left-m.right,h.height):new DOMRect(h.left,m.bottom,h.width,h.top-m.bottom)];for(const d of c)l.push({group:e,groupSize:H({group:e}),panels:[a,p],separator:"width"in d?void 0:d,rect:"width"in d?d:d.element.getBoundingClientRect()})}r=!1,a=p,u=[]}}else if(f.hasAttribute("data-separator")){const p=i.find(m=>m.element===f);p?u.push(p):(a=void 0,u=[])}else r=!0;return l}function qe(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function Xe(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function Ye(e){return e/100*window.innerHeight}function Ze(e){return e/100*window.innerWidth}function Je(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,"%"]}}}function J({groupSize:e,panelElement:t,styleProp:n}){let o;const[i,s]=Je(n);switch(s){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=Xe(t,i);break}case"em":{o=qe(t,i);break}case"vh":{o=Ye(i);break}case"vw":{o=Ze(i);break}}return o}function G(e){return parseFloat(e.toFixed(3))}function fe(e){const{panels:t}=e,n=H({group:e});return n===0?t.map(o=>({collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:i,panelConstraints:s}=o;let l=0;if(s.collapsedSize){const f=J({groupSize:n,panelElement:i,styleProp:s.collapsedSize});l=G(f/n*100)}let r;if(s.defaultSize){const f=J({groupSize:n,panelElement:i,styleProp:s.defaultSize});r=G(f/n*100)}let a=0;if(s.minSize){const f=J({groupSize:n,panelElement:i,styleProp:s.minSize});a=G(f/n*100)}let u=100;if(s.maxSize){const f=J({groupSize:n,panelElement:i,styleProp:s.maxSize});u=G(f/n*100)}return{collapsedSize:l,collapsible:s.collapsible===!0,defaultSize:r,minSize:a,maxSize:u,panelId:o.id}})}class Qe{#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 i=!1,s=null;const l=Array.from(o);for(let r=0;r<l.length;r++){const a=l[r];try{a.call(null,n)}catch(u){s===null&&(i=!0,s=u)}}if(i)throw s}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const i=o.indexOf(n);i>=0&&o.splice(i,1)}}}function C(e,t,n=0){return Math.abs(G(e)-G(t))<=n}let E={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const T=new Qe;function D(){return E}function k(e){const t=typeof e=="function"?e(E):e;if(E===t)return E;const n=E;return E={...E,...t},t.cursorFlags!==void 0&&T.emit("cursorFlagsChange",E.cursorFlags),t.interactionState!==void 0&&T.emit("interactionStateChange",E.interactionState),t.mountedGroups!==void 0&&(E.mountedGroups.forEach((o,i)=>{o.derivedPanelConstraints.forEach(s=>{if(s.collapsible){const{layout:l}=n.mountedGroups.get(i)??{};if(l){const r=C(s.collapsedSize,o.layout[s.panelId]),a=C(s.collapsedSize,l[s.panelId]);r&&!a&&(i.inMemoryLastExpandedPanelSizes[s.panelId]=l[s.panelId])}}})}),T.emit("mountedGroupsChange",E.mountedGroups)),E}function et(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 X(e,t){return C(e,t)?0:e>t?1:-1}function V({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:i=100,minSize:s=0}=e;if(X(t,s)<0)if(o){const l=(n+s)/2;X(t,l)<0?t=n:t=s}else t=s;return t=Math.min(i,t),t=G(t),t}function Y({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:i,trigger:s}){if(C(e,0))return t;const l=Object.values(t),r=Object.values(i),a=[...l],[u,f]=o;b(u!=null,"Invalid first pivot index"),b(f!=null,"Invalid second pivot index");let p=0;if(s==="keyboard"){{const c=e<0?f:u,d=n[c];b(d,`Panel constraints not found for index ${c}`);const{collapsedSize:y=0,collapsible:g,minSize:v=0}=d;if(g){const z=l[c];if(b(z!=null,`Previous layout not found for panel index ${c}`),C(z,y)){const S=v-z;X(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}{const c=e<0?u:f,d=n[c];b(d,`No panel constraints found for index ${c}`);const{collapsedSize:y=0,collapsible:g,minSize:v=0}=d;if(g){const z=l[c];if(b(z!=null,`Previous layout not found for panel index ${c}`),C(z,v)){const S=z-y;X(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}}{const c=e<0?1:-1;let d=e<0?f:u,y=0;for(;;){const v=l[d];b(v!=null,`Previous layout not found for panel index ${d}`);const S=V({panelConstraints:n[d],size:100})-v;if(y+=S,d+=c,d<0||d>=n.length)break}const g=Math.min(Math.abs(e),Math.abs(y));e=e<0?0-g:g}{let d=e<0?u:f;for(;d>=0&&d<n.length;){const y=Math.abs(e)-Math.abs(p),g=l[d];b(g!=null,`Previous layout not found for panel index ${d}`);const v=g-y,z=V({panelConstraints:n[d],size:v});if(!C(g,z)&&(p+=g-z,a[d]=z,p.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(et(r,a))return i;{const c=e<0?f:u,d=l[c];b(d!=null,`Previous layout not found for panel index ${c}`);const y=d+p,g=V({panelConstraints:n[c],size:y});if(a[c]=g,!C(g,y)){let v=y-g,S=e<0?f:u;for(;S>=0&&S<n.length;){const w=a[S];b(w!=null,`Previous layout not found for panel index ${S}`);const L=w+v,M=V({panelConstraints:n[S],size:L});if(C(w,M)||(v-=M-w,a[S]=M),C(v,0))break;e>0?S--:S++}}}const m=Object.values(a).reduce((c,d)=>d+c,0);if(!C(m,100,.1))return i;const h=Object.keys(i);return a.reduce((c,d,y)=>(c[h[y]]=d,c),{})}function ee(e){const t=e.parentElement;b(t,"Parent group element not found");const{mountedGroups:n}=D();for(const[o]of n)if(o.element===t)return o;throw Error("Could not find parent Group for separator element")}function B(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||X(e[n],t[n])!==0)return!1;return!0}function N({layout:e,panelConstraints:t}){const o=[...Object.values(e)],i=o.reduce((r,a)=>r+a,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(r=>`${r}%`).join(", ")}`);if(!C(i,100)&&o.length>0)for(let r=0;r<t.length;r++){const a=o[r];b(a!=null,`No layout data found for index ${r}`);const u=100/i*a;o[r]=u}let s=0;for(let r=0;r<t.length;r++){const a=o[r];b(a!=null,`No layout data found for index ${r}`);const u=V({panelConstraints:t[r],size:a});a!=u&&(s+=a-u,o[r]=u)}if(!C(s,0))for(let r=0;r<t.length;r++){const a=o[r];b(a!=null,`No layout data found for index ${r}`);const u=a+s,f=V({panelConstraints:t[r],size:u});if(a!==f&&(s-=f-a,o[r]=f,C(s,0)))break}const l=Object.keys(e);return o.reduce((r,a,u)=>(r[l[u]]=a,r),{})}function Pe({groupId:e}){const t=()=>{const{mountedGroups:n}=D();for(const[o,i]of n)if(o.id===e)return{group:o,...i};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,derivedPanelConstraints:i,group:s,layout:l,separatorToPanels:r}=t(),a=N({layout:n,panelConstraints:i});return o?l:(B(l,a)||k(u=>({mountedGroups:new Map(u.mountedGroups).set(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:a,separatorToPanels:r})})),a)}}}function Ce(e){const{mountedGroups:t}=D(),n=t.get(e);return b(n,`Mounted Group ${e.id} not found`),n}function O(e,t){const n=ee(e),o=Ce(n),i=n.separators.find(p=>p.element===e);b(i,"Matching separator not found");const s=o.separatorToPanels.get(i);b(s,"Matching panels not found");const l=s.map(p=>n.panels.indexOf(p)),a=Pe({groupId:n.id}).getLayout(),u=Y({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:a,trigger:"keyboard"}),f=N({layout:u,panelConstraints:o.derivedPanelConstraints});B(a,f)||k(p=>({mountedGroups:new Map(p.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:f,separatorToPanels:o.separatorToPanels})}))}function de(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=ee(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&O(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&O(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&O(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&O(t,-5);break}case"End":{e.preventDefault(),O(t,100);break}case"Enter":{e.preventDefault();const o=ee(t),{derivedPanelConstraints:i,layout:s,separatorToPanels:l}=Ce(o),r=o.separators.find(p=>p.element===t);b(r,"Matching separator not found");const a=l.get(r);b(a,"Matching panels not found");const u=a[0],f=i.find(p=>p.panelId===u.id);if(b(f,"Panel metadata not found"),f.collapsible){const p=s[u.id],m=f.collapsedSize===p?o.inMemoryLastExpandedPanelSizes[u.id]??f.minSize:f.collapsedSize;O(t,m-p)}break}case"F6":{e.preventDefault();const i=ee(t).separators.map(a=>a.element),s=Array.from(i).findIndex(a=>a===e.currentTarget);b(s!==null,"Index not found");const l=e.shiftKey?s>0?s-1:i.length-1:s+1<i.length?s+1:0;i[l].focus();break}case"Home":{e.preventDefault(),O(t,-100);break}}}const tt=e=>e,te=()=>{},Me=1,Ee=2,ke=4,Ie=8,pe={coarse:10,precise:5};function nt(e,t,n){let o,i={x:1/0,y:1/0};for(const s of t){const l=Le(n,s.rect);switch(e){case"horizontal":{l.x<=i.x&&(o=s,i=l);break}case"vertical":{l.y<=i.y&&(o=s,i=l);break}}}return o?{distance:i,hitRegion:o}:void 0}let Q;function ot(){return Q===void 0&&(typeof matchMedia=="function"?Q=!!matchMedia("(pointer:coarse)").matches:Q=!1),Q}function rt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function it(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:ye(e),b:ye(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),o=e;b(o,"Stacking order can only be calculated for elements with a common ancestor");const i={a:he(me(n.a)),b:he(me(n.b))};if(i.a===i.b){const s=o.childNodes,l={a:n.a.at(-1),b:n.b.at(-1)};let r=s.length;for(;r--;){const a=s[r];if(a===l.a)return 1;if(a===l.b)return-1}}return Math.sign(i.a-i.b)}const st=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function at(e){const t=getComputedStyle(Ge(e)??e).display;return t==="flex"||t==="inline-flex"}function lt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||at(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"||st.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function me(e){let t=e.length;for(;t--;){const n=e[t];if(b(n,"Missing node"),lt(n))return n}return null}function he(e){return e&&Number(getComputedStyle(e).zIndex)||0}function ye(e){const t=[];for(;e;)t.push(e),e=Ge(e);return t}function Ge(e){const{parentNode:t}=e;return rt(t)?t.host:t}function ut(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 ct({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!we(n)||n.contains(e)||e.contains(n))return!0;if(it(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(ut(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function De(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const s=ot()?pe.coarse:pe.precise,l=Re(i),r=nt(i.orientation,l,{x:e.clientX,y:e.clientY});r&&r.distance.x<=s&&r.distance.y<=s&&ct({groupElement:i.element,hitRegion:r.hitRegion.rect,pointerEventTarget:e.target})&&n.push(r.hitRegion)}),n}function ge(e){if(e.defaultPrevented)return;const{mountedGroups:t}=D(),n=De(e,t),o=new Set,i=new Set,s=new Set,l=new Map;let r=!1;n.forEach(a=>{o.add(a.group),a.panels.forEach(f=>{i.add(f)}),a.separator&&(s.add(a.separator),r||(r=!0,a.separator.element.focus()));const u=t.get(a.group);u&&l.set(a.group,u.layout)}),k({interactionState:{hitRegions:n,initialLayoutMap:l,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function ft({cursorFlags:e,groups:t,state:n}){let o=0,i=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.disableCursor)switch(s.orientation){case"horizontal":{o++;break}case"vertical":{i++;break}}})}if(o===0&&i===0)return null;switch(n){case"active":{const s=(e&Me)!==0,l=(e&Ee)!==0,r=(e&ke)!==0,a=(e&Ie)!==0;if(e){if(s)return r?"se-resize":a?"ne-resize":"e-resize";if(l)return r?"sw-resize":a?"nw-resize":"w-resize";if(r)return"s-resize";if(a)return"n-resize"}break}}return o>0&&i>0?"move":o>0?"ew-resize":"ns-resize"}const Se=new WeakMap;function re(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Se.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[n]);const{cursorFlags:o,interactionState:i}=D();switch(i.state){case"active":case"hover":{const s=ft({cursorFlags:o,groups:i.hitRegions.map(r=>r.group),state:i.state}),l=`*{cursor: ${s} !important; ${i.state==="active"?"touch-action: none;":""} }`;if(t===l)return;t=l,s?n.cssRules.length===0?n.insertRule(l):n.replaceSync(l):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Se.set(e,{prevStyle:t,styleSheet:n})}function Oe({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:i,pointerDownAtPoint:s}){let l=0;const r=new Map(i);n.forEach(a=>{const{group:u,groupSize:f}=a,{disableCursor:p,orientation:m,panels:h}=u;let c=0;s?m==="horizontal"?c=(t.clientX-s.x)/f*100:c=(t.clientY-s.y)/f*100:m==="horizontal"?c=t.clientX<0?-100:100:c=t.clientY<0?-100:100;const d=o.get(u),{defaultLayoutDeferred:y,derivedPanelConstraints:g,layout:v,separatorToPanels:z}=i.get(u)??{defaultLayoutDeferred:!1};if(g&&d&&v&&z){const S=Y({delta:c,initialLayout:d,panelConstraints:g,pivotIndices:a.panels.map(w=>h.indexOf(w)),prevLayout:v,trigger:"mouse-or-touch"});if(B(S,v)){if(c!==0&&!p)switch(m){case"horizontal":{l|=c<0?Me:Ee;break}case"vertical":{l|=c<0?ke:Ie;break}}}else{r.set(a.group,{defaultLayoutDeferred:y,derivedPanelConstraints:g,layout:S,separatorToPanels:z});const w=a.group.panels.map(({id:L})=>L).join(",");a.group.inMemoryLayouts[w]=S}}}),k({cursorFlags:l,mountedGroups:r}),re(e)}function ve(e){const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":Oe({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n})}}function xe(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":{if(e.buttons===0){k(o=>o.interactionState.state==="inactive"?o:{cursorFlags:0,interactionState:{state:"inactive"}});return}Oe({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint});break}default:{const o=De(e,n);o.length===0?t.state!=="inactive"&&k({interactionState:{state:"inactive"}}):k({interactionState:{hitRegions:o,state:"hover"}}),re(e.currentTarget);break}}}function ze(e){if(e.defaultPrevented)return;e.preventDefault();const{interactionState:t}=D();switch(t.state){case"active":k({cursorFlags:0,interactionState:{state:"inactive"}}),re(e.currentTarget)}}function be(e){let t=0,n=0;const o={};for(const s of e)if(s.defaultSize!==void 0){t++;const l=G(s.defaultSize);n+=l,o[s.panelId]=l}else o[s.panelId]=void 0;const i=e.length-t;if(i!==0){const s=G((100-n)/i);for(const l of e)l.defaultSize===void 0&&(o[l.panelId]=s)}return o}function dt(e,t,n){const o=n[0];if(!o)return;const i=e.panels.find(a=>a.element===t);if(!i||!i.onResize)return;const s=H({group:e}),l=i.mutableValues.prevSize,r={asPercentage:G(o.inlineSize/s*100),inPixels:o.inlineSize};i.mutableValues.prevSize=r,i.onResize(r,i.id,l)}function pt(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 mt(e,t){const n=e.map(i=>i.id),o=Object.keys(t);if(n.length!==o.length)return!1;for(const i of n)if(!o.includes(i))return!1;return!0}const F=new Map;function ht(e){let t=!0;b(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,i=new Set,s=new n(c=>{for(const d of c){const{borderBoxSize:y,target:g}=d;if(g===e.element){if(t){if(H({group:e})===0)return;k(z=>{const S=z.mountedGroups.get(e);if(S){const w=fe(e),L=S.defaultLayoutDeferred?be(w):S.layout,M=N({layout:L,panelConstraints:w});return!S.defaultLayoutDeferred&&B(L,M)&&pt(S.derivedPanelConstraints,w)?z:{mountedGroups:new Map(z.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:w,layout:M,separatorToPanels:S.separatorToPanels})}}return z})}}else dt(e,g,y)}});s.observe(e.element),e.panels.forEach(c=>{b(!o.has(c.id),`Panel ids must be unique; id "${c.id}" was used more than once`),o.add(c.id),c.onResize&&s.observe(c.element)});const l=H({group:e}),r=fe(e),a=e.panels.map(({id:c})=>c).join(",");let u=e.defaultLayout;u&&(mt(e.panels,u)||(u=void 0));const f=e.inMemoryLayouts[a]??u??be(r),p=N({layout:f,panelConstraints:r}),m=Re(e),h=e.element.ownerDocument;return k(c=>{const d=new Map;return F.set(h,(F.get(h)??0)+1),m.forEach(y=>{y.separator&&d.set(y.separator,y.panels)}),{mountedGroups:new Map(c.mountedGroups).set(e,{defaultLayoutDeferred:l===0,derivedPanelConstraints:r,layout:p,separatorToPanels:d})}}),e.separators.forEach(c=>{b(!i.has(c.id),`Separator ids must be unique; id "${c.id}" was used more than once`),i.add(c.id),c.element.addEventListener("keydown",de)}),F.get(h)===1&&(h.addEventListener("pointerdown",ge),h.addEventListener("pointerleave",ve),h.addEventListener("pointermove",xe),h.addEventListener("pointerup",ze)),function(){t=!1,F.set(h,Math.max(0,(F.get(h)??0)-1)),k(d=>{const y=new Map(d.mountedGroups);return y.delete(e),{mountedGroups:y}}),e.separators.forEach(d=>{d.element.removeEventListener("keydown",de)}),F.get(h)||(h.removeEventListener("pointerdown",ge),h.removeEventListener("pointerleave",ve),h.removeEventListener("pointermove",xe),h.removeEventListener("pointerup",ze)),s.disconnect()}}function yt(){const[e,t]=x.useState({}),n=x.useCallback(()=>t({}),[]);return[e,n]}function ie(e){const t=x.useId();return`${e??t}`}const _=typeof window<"u"?x.useLayoutEffect:x.useEffect;function se(e){const t=x.useRef(e);return _(()=>{t.current=e},[e]),x.useCallback((...n)=>t.current?.(...n),[t])}function ae(...e){return se(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function gt(e){const t=x.useRef({...e});return _(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const Te="--react-resizable-panels--panel--pointer-events";function Ne(e,t){const n=e.replace(/[^a-zA-Z0-9\-_]/g,""),o=t.replace(/[^a-zA-Z0-9\-_]/g,"");return`--react-resizable-panels--${n}--${o}`}const _e=x.createContext(null);function St(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:tt});x.useImperativeHandle(t,()=>n.current,[]),_(()=>{Object.assign(n.current,Pe({groupId:e}))})}function Ae({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:i,elementRef:s,groupRef:l,id:r,onLayoutChange:a,orientation:u="horizontal",style:f,...p}){const m=x.useRef({}),h=se(R=>{B(m.current,R)||(m.current=R,a?.(R))}),c=ie(r),d=x.useRef(null),[y,g]=x.useState(!1),[v,z]=x.useState(n??{}),[S,w]=yt(),L=x.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),M=ae(d,s);St(c,l);const W=x.useMemo(()=>({id:c,orientation:u,registerPanel:R=>{const P=L.current;return P.panels=oe(u,[...P.panels,R]),w(),()=>{P.panels=P.panels.filter(I=>I!==R),w()}},registerSeparator:R=>{const P=L.current;return P.separators=oe(u,[...P.separators,R]),w(),()=>{P.separators=P.separators.filter(I=>I!==R),w()}}}),[c,w,u]),U=gt({defaultLayout:n,disableCursor:o}),A=x.useRef(null);_(()=>{const R=d.current;if(R===null)return;const P=L.current,I={defaultLayout:U.defaultLayout,disableCursor:!!U.disableCursor,disabled:!!i,element:R,id:c,inMemoryLastExpandedPanelSizes:L.current.lastExpandedPanelSizes,inMemoryLayouts:L.current.layouts,orientation:u,panels:P.panels,separators:P.separators};A.current=I;const Fe=ht(I),ue=D().mountedGroups.get(I);if(ue){const{defaultLayoutDeferred:$,derivedPanelConstraints:j,layout:Z}=ue;!$&&j.length>0&&(z(Z),h?.(Z))}const Ve=T.addListener("interactionStateChange",$=>{switch($.state){case"active":{g($.hitRegions.some(j=>j.group===I));break}default:{g(!1);break}}}),He=T.addListener("mountedGroupsChange",$=>{const j=$.get(I);if(j){const{defaultLayoutDeferred:Z,derivedPanelConstraints:Be,layout:ce}=j;if(Z||Be.length===0)return;z(ce),h?.(ce)}});return()=>{A.current=null,Fe(),Ve(),He()}},[i,c,h,u,S,U]),x.useEffect(()=>{const R=A.current;R&&(R.defaultLayout=n,R.disableCursor=!!o)});const K={[Te]:y?"none":void 0};for(const R in v){const P=Ne(c,R),I=v[R];K[P]=I}return q.jsx(_e.Provider,{value:W,children:q.jsx("div",{...p,"aria-orientation":u,className:t,"data-group":!0,"data-testid":c,id:c,ref:M,style:{...f,...K,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}Ae.displayName="Group";function vt(e,t=10){let n=null;return o=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(o)},t)}}function ne(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function xt({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const i=t!==void 0,s="id"in o?o.id:o.groupId,l=ne(s,t??[]),r=x.useSyncExternalStore(zt,()=>n.getItem(l),()=>n.getItem(l)),a=x.useMemo(()=>r?JSON.parse(r):void 0,[r]),u=x.useMemo(()=>{const f=p=>{let m;i?m=ne(s,Object.keys(p)):m=ne(s,[]);try{n.setItem(m,JSON.stringify(p))}catch(h){console.error(h)}};return e>0?vt(f,e):f},[e,i,s,n]);return{defaultLayout:a,onLayoutChange:u}}function zt(){return function(){}}function bt(){return x.useState(null)}function wt(){return x.useRef(null)}function le(){const e=x.useContext(_e);return b(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Lt({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:r}=D();for(const[a,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:p,separatorToPanels:m}]of r)if(a.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:a,layout:p,separatorToPanels:m};throw Error(`Group ${e} not found`)},o=()=>{const r=n().derivedPanelConstraints.find(a=>a.panelId===t);if(r!==void 0)return r;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{const r=n().group.panels.find(a=>a.id===t);if(r!==void 0)return r;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const r=n().layout[t];if(r!==void 0)return r;throw Error(`Layout not found for Panel ${t}`)},l=r=>{const a=s();if(r===a)return;const{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:p,layout:m,separatorToPanels:h}=n(),c=p.panels.findIndex(v=>v.id===t),d=c===p.panels.length-1,y=Y({delta:d?a-r:r-a,initialLayout:m,panelConstraints:f,pivotIndices:d?[c-1,c]:[c,c+1],prevLayout:m,trigger:"imperative-api"}),g=N({layout:y,panelConstraints:f});B(m,g)||k(v=>({mountedGroups:new Map(v.mountedGroups).set(p,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:g,separatorToPanels:h})}))};return{collapse:()=>{const{collapsible:r,collapsedSize:a}=o(),{mutableValues:u}=i(),f=s();r&&f!==a&&(u.expandToSize=f,l(a))},expand:()=>{const{collapsible:r,collapsedSize:a,minSize:u}=o(),{mutableValues:f}=i(),p=s();if(r&&p===a){let m=f.expandToSize??u;m===0&&(m=1),l(m)}},getSize:()=>{const{group:r}=n(),a=s(),{element:u}=i(),f=r.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:a,inPixels:f}},isCollapsed:()=>{const{collapsible:r,collapsedSize:a}=o(),u=s();return r&&C(a,u)},resize:r=>{if(s()!==r){let u;switch(typeof r){case"number":{const{group:f}=n(),p=H({group:f});u=G(r/p*100);break}case"string":{u=parseFloat(r);break}}l(u)}}}}function Rt(e,t){const{id:n}=le(),o=x.useRef({collapse:te,expand:te,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:te});x.useImperativeHandle(t,()=>o.current,[]),_(()=>{Object.assign(o.current,Lt({groupId:n,panelId:e}))})}function $e({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:i,elementRef:s,id:l,maxSize:r="100%",minSize:a="0%",onResize:u,panelRef:f,style:p,...m}){const h=!!l,c=ie(l),d=x.useRef(null),y=ae(d,s),{id:g,registerPanel:v}=le(),z=u!==null,S=se((L,M,W)=>{u?.(L,l,W)});_(()=>{const L=d.current;if(L!==null)return v({element:L,id:c,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?S:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:i,maxSize:r,minSize:a}})},[n,o,i,z,c,h,r,a,S,v]),Rt(c,f);const w=Ne(g,c);return q.jsx("div",{...m,"data-panel":!0,"data-testid":c,id:c,ref:y,style:{...Pt,flexBasis:0,flexGrow:`var(${w}, 1)`,flexShrink:1,overflow:"hidden",pointerEvents:`var(${Te})`},children:q.jsx("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}$e.displayName="Panel";const Pt={minHeight:"unset",maxHeight:"unset",height:"unset",minWidth:"unset",maxWidth:"unset",width:"unset",flex:"unset",flexBasis:"unset",flexShrink:"unset",flexGrow:"unset",border:"unset",borderWidth:"unset",padding:"unset",margin:"unset"};function Ct(){return x.useState(null)}function Mt(){return x.useRef(null)}function Et({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let i,s;const l=e[n],r=t.find(a=>a.panelId===n);if(r){const a=r.maxSize,u=s=r.collapsible?r.collapsedSize:r.minSize,f=[o,o+1];s=N({layout:Y({delta:u-l,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n],i=N({layout:Y({delta:a-l,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:s,valueNow:l}}function je({children:e,className:t,elementRef:n,id:o,style:i,...s}){const l=ie(o),[r,a]=x.useState({}),[u,f]=x.useState("inactive"),p=x.useRef(null),m=ae(p,n),{id:h,orientation:c,registerSeparator:d}=le(),y=c==="horizontal"?"vertical":"horizontal";return _(()=>{const g=p.current;if(g!==null){const v={element:g,id:l},z=d(v),S=T.addListener("interactionStateChange",L=>{f(L.state!=="inactive"&&L.hitRegions.some(M=>M.separator===v)?L.state:"inactive")}),w=T.addListener("mountedGroupsChange",L=>{L.forEach(({derivedPanelConstraints:M,layout:W,separatorToPanels:U},A)=>{if(A.id===h){const K=U.get(v);if(K){const R=K[0],P=A.panels.indexOf(R);a(Et({layout:W,panelConstraints:M,panelId:R.id,panelIndex:P}))}}})});return()=>{S(),w(),z()}}},[h,l,d]),q.jsx("div",{...s,"aria-controls":r.valueControls,"aria-orientation":y,"aria-valuemax":r.valueMax,"aria-valuemin":r.valueMin,"aria-valuenow":r.valueNow,children:e,className:t,"data-separator":u,"data-testid":l,id:l,ref:m,role:"separator",style:{flexBasis:"auto",...i,flexGrow:0,flexShrink:0},tabIndex:0})}je.displayName="Separator";exports.Group=Ae;exports.Panel=$e;exports.Separator=je;exports.useDefaultLayout=xt;exports.useGroupCallbackRef=bt;exports.useGroupRef=wt;exports.usePanelCallbackRef=Ct;exports.usePanelRef=Mt;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react/jsx-runtime"),x=require("react");function z(e,t="Assertion error"){if(!e)throw Error(t)}function H({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,i)=>(o+=t==="horizontal"?i.element.offsetWidth:i.element.offsetHeight,o),0)}function oe(e,t){return t.sort(e==="horizontal"?We:Ue)}function We(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Ue(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function we(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Le(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 Ke({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let i,s=Number.MAX_VALUE;for(const l of t){const{x:r,y:a}=Le(o,l),u=e==="horizontal"?r:a;u<s&&(s=u,i=l)}return z(i,"No rect found"),i}function Re(e){const{element:t,orientation:n,panels:o,separators:i}=e,s=oe(n,Array.from(t.children).filter(we).map(f=>({element:f}))).map(({element:f})=>f),l=[];let r=!1,a,u=[];for(const f of s)if(f.hasAttribute("data-panel")){const p=o.find(m=>m.element===f);if(p){if(a){const m=a.element.getBoundingClientRect(),h=f.getBoundingClientRect();let c;if(r){const d=n==="horizontal"?new DOMRect(m.right,m.top,0,m.height):new DOMRect(m.left,m.bottom,m.width,0),y=n==="horizontal"?new DOMRect(h.left,h.top,0,h.height):new DOMRect(h.left,h.top,h.width,0);switch(u.length){case 0:{c=[d,y];break}case 1:{const g=u[0],v=Ke({orientation:n,rects:[m,h],targetRect:g.element.getBoundingClientRect()});c=[g,v===m?y:d];break}default:{c=u;break}}}else u.length?c=u:c=[n==="horizontal"?new DOMRect(m.right,h.top,h.left-m.right,h.height):new DOMRect(h.left,m.bottom,h.width,h.top-m.bottom)];for(const d of c)l.push({group:e,groupSize:H({group:e}),panels:[a,p],separator:"width"in d?void 0:d,rect:"width"in d?d:d.element.getBoundingClientRect()})}r=!1,a=p,u=[]}}else if(f.hasAttribute("data-separator")){const p=i.find(m=>m.element===f);p?u.push(p):(a=void 0,u=[])}else r=!0;return l}function qe(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function Xe(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function Ye(e){return e/100*window.innerHeight}function Ze(e){return e/100*window.innerWidth}function Je(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,"%"]}}}function J({groupSize:e,panelElement:t,styleProp:n}){let o;const[i,s]=Je(n);switch(s){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=Xe(t,i);break}case"em":{o=qe(t,i);break}case"vh":{o=Ye(i);break}case"vw":{o=Ze(i);break}}return o}function G(e){return parseFloat(e.toFixed(3))}function fe(e){const{panels:t}=e,n=H({group:e});return n===0?t.map(o=>({collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:i,panelConstraints:s}=o;let l=0;if(s.collapsedSize){const f=J({groupSize:n,panelElement:i,styleProp:s.collapsedSize});l=G(f/n*100)}let r;if(s.defaultSize){const f=J({groupSize:n,panelElement:i,styleProp:s.defaultSize});r=G(f/n*100)}let a=0;if(s.minSize){const f=J({groupSize:n,panelElement:i,styleProp:s.minSize});a=G(f/n*100)}let u=100;if(s.maxSize){const f=J({groupSize:n,panelElement:i,styleProp:s.maxSize});u=G(f/n*100)}return{collapsedSize:l,collapsible:s.collapsible===!0,defaultSize:r,minSize:a,maxSize:u,panelId:o.id}})}class Qe{#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 i=!1,s=null;const l=Array.from(o);for(let r=0;r<l.length;r++){const a=l[r];try{a.call(null,n)}catch(u){s===null&&(i=!0,s=u)}}if(i)throw s}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const i=o.indexOf(n);i>=0&&o.splice(i,1)}}}function C(e,t,n=0){return Math.abs(G(e)-G(t))<=n}let E={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const O=new Qe;function D(){return E}function k(e){const t=typeof e=="function"?e(E):e;if(E===t)return E;const n=E;return E={...E,...t},t.cursorFlags!==void 0&&O.emit("cursorFlagsChange",E.cursorFlags),t.interactionState!==void 0&&O.emit("interactionStateChange",E.interactionState),t.mountedGroups!==void 0&&(E.mountedGroups.forEach((o,i)=>{o.derivedPanelConstraints.forEach(s=>{if(s.collapsible){const{layout:l}=n.mountedGroups.get(i)??{};if(l){const r=C(s.collapsedSize,o.layout[s.panelId]),a=C(s.collapsedSize,l[s.panelId]);r&&!a&&(i.inMemoryLastExpandedPanelSizes[s.panelId]=l[s.panelId])}}})}),O.emit("mountedGroupsChange",E.mountedGroups)),E}function et(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 X(e,t){return C(e,t)?0:e>t?1:-1}function V({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:i=100,minSize:s=0}=e;if(X(t,s)<0)if(o){const l=(n+s)/2;X(t,l)<0?t=n:t=s}else t=s;return t=Math.min(i,t),t=G(t),t}function Y({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:i,trigger:s}){if(C(e,0))return t;const l=Object.values(t),r=Object.values(i),a=[...l],[u,f]=o;z(u!=null,"Invalid first pivot index"),z(f!=null,"Invalid second pivot index");let p=0;if(s==="keyboard"){{const c=e<0?f:u,d=n[c];z(d,`Panel constraints not found for index ${c}`);const{collapsedSize:y=0,collapsible:g,minSize:v=0}=d;if(g){const b=l[c];if(z(b!=null,`Previous layout not found for panel index ${c}`),C(b,y)){const S=v-b;X(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}{const c=e<0?u:f,d=n[c];z(d,`No panel constraints found for index ${c}`);const{collapsedSize:y=0,collapsible:g,minSize:v=0}=d;if(g){const b=l[c];if(z(b!=null,`Previous layout not found for panel index ${c}`),C(b,v)){const S=b-y;X(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}}{const c=e<0?1:-1;let d=e<0?f:u,y=0;for(;;){const v=l[d];z(v!=null,`Previous layout not found for panel index ${d}`);const S=V({panelConstraints:n[d],size:100})-v;if(y+=S,d+=c,d<0||d>=n.length)break}const g=Math.min(Math.abs(e),Math.abs(y));e=e<0?0-g:g}{let d=e<0?u:f;for(;d>=0&&d<n.length;){const y=Math.abs(e)-Math.abs(p),g=l[d];z(g!=null,`Previous layout not found for panel index ${d}`);const v=g-y,b=V({panelConstraints:n[d],size:v});if(!C(g,b)&&(p+=g-b,a[d]=b,p.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(et(r,a))return i;{const c=e<0?f:u,d=l[c];z(d!=null,`Previous layout not found for panel index ${c}`);const y=d+p,g=V({panelConstraints:n[c],size:y});if(a[c]=g,!C(g,y)){let v=y-g,S=e<0?f:u;for(;S>=0&&S<n.length;){const w=a[S];z(w!=null,`Previous layout not found for panel index ${S}`);const L=w+v,M=V({panelConstraints:n[S],size:L});if(C(w,M)||(v-=M-w,a[S]=M),C(v,0))break;e>0?S--:S++}}}const m=Object.values(a).reduce((c,d)=>d+c,0);if(!C(m,100,.1))return i;const h=Object.keys(i);return a.reduce((c,d,y)=>(c[h[y]]=d,c),{})}function ee(e){const{mountedGroups:t}=D();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 B(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||X(e[n],t[n])!==0)return!1;return!0}function N({layout:e,panelConstraints:t}){const o=[...Object.values(e)],i=o.reduce((r,a)=>r+a,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(r=>`${r}%`).join(", ")}`);if(!C(i,100)&&o.length>0)for(let r=0;r<t.length;r++){const a=o[r];z(a!=null,`No layout data found for index ${r}`);const u=100/i*a;o[r]=u}let s=0;for(let r=0;r<t.length;r++){const a=o[r];z(a!=null,`No layout data found for index ${r}`);const u=V({panelConstraints:t[r],size:a});a!=u&&(s+=a-u,o[r]=u)}if(!C(s,0))for(let r=0;r<t.length;r++){const a=o[r];z(a!=null,`No layout data found for index ${r}`);const u=a+s,f=V({panelConstraints:t[r],size:u});if(a!==f&&(s-=f-a,o[r]=f,C(s,0)))break}const l=Object.keys(e);return o.reduce((r,a,u)=>(r[l[u]]=a,r),{})}function Pe({groupId:e}){const t=()=>{const{mountedGroups:n}=D();for(const[o,i]of n)if(o.id===e)return{group:o,...i};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,derivedPanelConstraints:i,group:s,layout:l,separatorToPanels:r}=t(),a=N({layout:n,panelConstraints:i});return o?l:(B(l,a)||k(u=>({mountedGroups:new Map(u.mountedGroups).set(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:a,separatorToPanels:r})})),a)}}}function Ce(e){const{mountedGroups:t}=D(),n=t.get(e);return z(n,`Mounted Group ${e.id} not found`),n}function T(e,t){const n=ee(e),o=Ce(n),i=n.separators.find(p=>p.element===e);z(i,"Matching separator not found");const s=o.separatorToPanels.get(i);z(s,"Matching panels not found");const l=s.map(p=>n.panels.indexOf(p)),a=Pe({groupId:n.id}).getLayout(),u=Y({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:a,trigger:"keyboard"}),f=N({layout:u,panelConstraints:o.derivedPanelConstraints});B(a,f)||k(p=>({mountedGroups:new Map(p.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:f,separatorToPanels:o.separatorToPanels})}))}function de(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=ee(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&T(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&T(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&T(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&T(t,-5);break}case"End":{e.preventDefault(),T(t,100);break}case"Enter":{e.preventDefault();const o=ee(t),{derivedPanelConstraints:i,layout:s,separatorToPanels:l}=Ce(o),r=o.separators.find(p=>p.element===t);z(r,"Matching separator not found");const a=l.get(r);z(a,"Matching panels not found");const u=a[0],f=i.find(p=>p.panelId===u.id);if(z(f,"Panel metadata not found"),f.collapsible){const p=s[u.id],m=f.collapsedSize===p?o.inMemoryLastExpandedPanelSizes[u.id]??f.minSize:f.collapsedSize;T(t,m-p)}break}case"F6":{e.preventDefault();const i=ee(t).separators.map(a=>a.element),s=Array.from(i).findIndex(a=>a===e.currentTarget);z(s!==null,"Index not found");const l=e.shiftKey?s>0?s-1:i.length-1:s+1<i.length?s+1:0;i[l].focus();break}case"Home":{e.preventDefault(),T(t,-100);break}}}const tt=e=>e,te=()=>{},Me=1,Ee=2,ke=4,Ie=8,pe={coarse:10,precise:5};function nt(e,t,n){let o,i={x:1/0,y:1/0};for(const s of t){const l=Le(n,s.rect);switch(e){case"horizontal":{l.x<=i.x&&(o=s,i=l);break}case"vertical":{l.y<=i.y&&(o=s,i=l);break}}}return o?{distance:i,hitRegion:o}:void 0}let Q;function ot(){return Q===void 0&&(typeof matchMedia=="function"?Q=!!matchMedia("(pointer:coarse)").matches:Q=!1),Q}function rt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function it(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:ye(e),b:ye(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),o=e;z(o,"Stacking order can only be calculated for elements with a common ancestor");const i={a:he(me(n.a)),b:he(me(n.b))};if(i.a===i.b){const s=o.childNodes,l={a:n.a.at(-1),b:n.b.at(-1)};let r=s.length;for(;r--;){const a=s[r];if(a===l.a)return 1;if(a===l.b)return-1}}return Math.sign(i.a-i.b)}const st=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function at(e){const t=getComputedStyle(Ge(e)??e).display;return t==="flex"||t==="inline-flex"}function lt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||at(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"||st.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function me(e){let t=e.length;for(;t--;){const n=e[t];if(z(n,"Missing node"),lt(n))return n}return null}function he(e){return e&&Number(getComputedStyle(e).zIndex)||0}function ye(e){const t=[];for(;e;)t.push(e),e=Ge(e);return t}function Ge(e){const{parentNode:t}=e;return rt(t)?t.host:t}function ut(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 ct({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!we(n)||n.contains(e)||e.contains(n))return!0;if(it(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(ut(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function De(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const s=ot()?pe.coarse:pe.precise,l=Re(i),r=nt(i.orientation,l,{x:e.clientX,y:e.clientY});r&&r.distance.x<=s&&r.distance.y<=s&&ct({groupElement:i.element,hitRegion:r.hitRegion.rect,pointerEventTarget:e.target})&&n.push(r.hitRegion)}),n}function ge(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const{mountedGroups:t}=D(),n=De(e,t),o=new Set,i=new Set,s=new Set,l=new Map;let r=!1;n.forEach(a=>{o.add(a.group),a.panels.forEach(f=>{i.add(f)}),a.separator&&(s.add(a.separator),r||(r=!0,a.separator.element.focus()));const u=t.get(a.group);u&&l.set(a.group,u.layout)}),k({interactionState:{hitRegions:n,initialLayoutMap:l,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function ft({cursorFlags:e,groups:t,state:n}){let o=0,i=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.disableCursor)switch(s.orientation){case"horizontal":{o++;break}case"vertical":{i++;break}}})}if(o===0&&i===0)return null;switch(n){case"active":{const s=(e&Me)!==0,l=(e&Ee)!==0,r=(e&ke)!==0,a=(e&Ie)!==0;if(e){if(s)return r?"se-resize":a?"ne-resize":"e-resize";if(l)return r?"sw-resize":a?"nw-resize":"w-resize";if(r)return"s-resize";if(a)return"n-resize"}break}}return o>0&&i>0?"move":o>0?"ew-resize":"ns-resize"}const Se=new WeakMap;function re(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Se.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[n]);const{cursorFlags:o,interactionState:i}=D();switch(i.state){case"active":case"hover":{const s=ft({cursorFlags:o,groups:i.hitRegions.map(r=>r.group),state:i.state}),l=`*{cursor: ${s} !important; ${i.state==="active"?"touch-action: none;":""} }`;if(t===l)return;t=l,s?n.cssRules.length===0?n.insertRule(l):n.replaceSync(l):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Se.set(e,{prevStyle:t,styleSheet:n})}function Te({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:i,pointerDownAtPoint:s}){let l=0;const r=new Map(i);n.forEach(a=>{const{group:u,groupSize:f}=a,{disableCursor:p,orientation:m,panels:h}=u;let c=0;s?m==="horizontal"?c=(t.clientX-s.x)/f*100:c=(t.clientY-s.y)/f*100:m==="horizontal"?c=t.clientX<0?-100:100:c=t.clientY<0?-100:100;const d=o.get(u),{defaultLayoutDeferred:y,derivedPanelConstraints:g,layout:v,separatorToPanels:b}=i.get(u)??{defaultLayoutDeferred:!1};if(g&&d&&v&&b){const S=Y({delta:c,initialLayout:d,panelConstraints:g,pivotIndices:a.panels.map(w=>h.indexOf(w)),prevLayout:v,trigger:"mouse-or-touch"});if(B(S,v)){if(c!==0&&!p)switch(m){case"horizontal":{l|=c<0?Me:Ee;break}case"vertical":{l|=c<0?ke:Ie;break}}}else{r.set(a.group,{defaultLayoutDeferred:y,derivedPanelConstraints:g,layout:S,separatorToPanels:b});const w=a.group.panels.map(({id:L})=>L).join(",");a.group.inMemoryLayouts[w]=S}}}),k({cursorFlags:l,mountedGroups:r}),re(e)}function ve(e){const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":Te({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n})}}function xe(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":{if(e.buttons===0){k(o=>o.interactionState.state==="inactive"?o:{cursorFlags:0,interactionState:{state:"inactive"}});return}Te({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint});break}default:{const o=De(e,n);o.length===0?t.state!=="inactive"&&k({interactionState:{state:"inactive"}}):k({interactionState:{hitRegions:o,state:"hover"}}),re(e.currentTarget);break}}}function be(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;e.preventDefault();const{interactionState:t}=D();switch(t.state){case"active":k({cursorFlags:0,interactionState:{state:"inactive"}}),re(e.currentTarget)}}function ze(e){let t=0,n=0;const o={};for(const s of e)if(s.defaultSize!==void 0){t++;const l=G(s.defaultSize);n+=l,o[s.panelId]=l}else o[s.panelId]=void 0;const i=e.length-t;if(i!==0){const s=G((100-n)/i);for(const l of e)l.defaultSize===void 0&&(o[l.panelId]=s)}return o}function dt(e,t,n){const o=n[0];if(!o)return;const i=e.panels.find(a=>a.element===t);if(!i||!i.onResize)return;const s=H({group:e}),l=i.mutableValues.prevSize,r={asPercentage:G(o.inlineSize/s*100),inPixels:o.inlineSize};i.mutableValues.prevSize=r,i.onResize(r,i.id,l)}function pt(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 mt(e,t){const n=e.map(i=>i.id),o=Object.keys(t);if(n.length!==o.length)return!1;for(const i of n)if(!o.includes(i))return!1;return!0}const F=new Map;function ht(e){let t=!0;z(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,i=new Set,s=new n(c=>{for(const d of c){const{borderBoxSize:y,target:g}=d;if(g===e.element){if(t){if(H({group:e})===0)return;k(b=>{const S=b.mountedGroups.get(e);if(S){const w=fe(e),L=S.defaultLayoutDeferred?ze(w):S.layout,M=N({layout:L,panelConstraints:w});return!S.defaultLayoutDeferred&&B(L,M)&&pt(S.derivedPanelConstraints,w)?b:{mountedGroups:new Map(b.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:w,layout:M,separatorToPanels:S.separatorToPanels})}}return b})}}else dt(e,g,y)}});s.observe(e.element),e.panels.forEach(c=>{z(!o.has(c.id),`Panel ids must be unique; id "${c.id}" was used more than once`),o.add(c.id),c.onResize&&s.observe(c.element)});const l=H({group:e}),r=fe(e),a=e.panels.map(({id:c})=>c).join(",");let u=e.defaultLayout;u&&(mt(e.panels,u)||(u=void 0));const f=e.inMemoryLayouts[a]??u??ze(r),p=N({layout:f,panelConstraints:r}),m=Re(e),h=e.element.ownerDocument;return k(c=>{const d=new Map;return F.set(h,(F.get(h)??0)+1),m.forEach(y=>{y.separator&&d.set(y.separator,y.panels)}),{mountedGroups:new Map(c.mountedGroups).set(e,{defaultLayoutDeferred:l===0,derivedPanelConstraints:r,layout:p,separatorToPanels:d})}}),e.separators.forEach(c=>{z(!i.has(c.id),`Separator ids must be unique; id "${c.id}" was used more than once`),i.add(c.id),c.element.addEventListener("keydown",de)}),F.get(h)===1&&(h.addEventListener("pointerdown",ge),h.addEventListener("pointerleave",ve),h.addEventListener("pointermove",xe),h.addEventListener("pointerup",be)),function(){t=!1,F.set(h,Math.max(0,(F.get(h)??0)-1)),k(d=>{const y=new Map(d.mountedGroups);return y.delete(e),{mountedGroups:y}}),e.separators.forEach(d=>{d.element.removeEventListener("keydown",de)}),F.get(h)||(h.removeEventListener("pointerdown",ge),h.removeEventListener("pointerleave",ve),h.removeEventListener("pointermove",xe),h.removeEventListener("pointerup",be)),s.disconnect()}}function yt(){const[e,t]=x.useState({}),n=x.useCallback(()=>t({}),[]);return[e,n]}function ie(e){const t=x.useId();return`${e??t}`}const _=typeof window<"u"?x.useLayoutEffect:x.useEffect;function se(e){const t=x.useRef(e);return _(()=>{t.current=e},[e]),x.useCallback((...n)=>t.current?.(...n),[t])}function ae(...e){return se(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function gt(e){const t=x.useRef({...e});return _(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const Oe="--react-resizable-panels--panel--pointer-events";function Ne(e,t){const n=e.replace(/[^a-zA-Z0-9\-_]/g,""),o=t.replace(/[^a-zA-Z0-9\-_]/g,"");return`--react-resizable-panels--${n}--${o}`}const _e=x.createContext(null);function St(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:tt});x.useImperativeHandle(t,()=>n.current,[]),_(()=>{Object.assign(n.current,Pe({groupId:e}))})}function Ae({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:i,elementRef:s,groupRef:l,id:r,onLayoutChange:a,orientation:u="horizontal",style:f,...p}){const m=x.useRef({}),h=se(R=>{B(m.current,R)||(m.current=R,a?.(R))}),c=ie(r),d=x.useRef(null),[y,g]=x.useState(!1),[v,b]=x.useState(n??{}),[S,w]=yt(),L=x.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),M=ae(d,s);St(c,l);const W=x.useMemo(()=>({id:c,orientation:u,registerPanel:R=>{const P=L.current;return P.panels=oe(u,[...P.panels,R]),w(),()=>{P.panels=P.panels.filter(I=>I!==R),w()}},registerSeparator:R=>{const P=L.current;return P.separators=oe(u,[...P.separators,R]),w(),()=>{P.separators=P.separators.filter(I=>I!==R),w()}}}),[c,w,u]),U=gt({defaultLayout:n,disableCursor:o}),A=x.useRef(null);_(()=>{const R=d.current;if(R===null)return;const P=L.current,I={defaultLayout:U.defaultLayout,disableCursor:!!U.disableCursor,disabled:!!i,element:R,id:c,inMemoryLastExpandedPanelSizes:L.current.lastExpandedPanelSizes,inMemoryLayouts:L.current.layouts,orientation:u,panels:P.panels,separators:P.separators};A.current=I;const Fe=ht(I),ue=D().mountedGroups.get(I);if(ue){const{defaultLayoutDeferred:$,derivedPanelConstraints:j,layout:Z}=ue;!$&&j.length>0&&(b(Z),h?.(Z))}const Ve=O.addListener("interactionStateChange",$=>{switch($.state){case"active":{g($.hitRegions.some(j=>j.group===I));break}default:{g(!1);break}}}),He=O.addListener("mountedGroupsChange",$=>{const j=$.get(I);if(j){const{defaultLayoutDeferred:Z,derivedPanelConstraints:Be,layout:ce}=j;if(Z||Be.length===0)return;b(ce),h?.(ce)}});return()=>{A.current=null,Fe(),Ve(),He()}},[i,c,h,u,S,U]),x.useEffect(()=>{const R=A.current;R&&(R.defaultLayout=n,R.disableCursor=!!o)});const K={[Oe]:y?"none":void 0};for(const R in v){const P=Ne(c,R),I=v[R];K[P]=I}return q.jsx(_e.Provider,{value:W,children:q.jsx("div",{...p,"aria-orientation":u,className:t,"data-group":!0,"data-testid":c,id:c,ref:M,style:{height:"100%",width:"100%",overflow:"hidden",...f,...K,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}Ae.displayName="Group";function vt(e,t=10){let n=null;return o=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(o)},t)}}function ne(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function xt({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const i=t!==void 0,s="id"in o?o.id:o.groupId,l=ne(s,t??[]),r=x.useSyncExternalStore(bt,()=>n.getItem(l),()=>n.getItem(l)),a=x.useMemo(()=>r?JSON.parse(r):void 0,[r]),u=x.useMemo(()=>{const f=p=>{let m;i?m=ne(s,Object.keys(p)):m=ne(s,[]);try{n.setItem(m,JSON.stringify(p))}catch(h){console.error(h)}};return e>0?vt(f,e):f},[e,i,s,n]);return{defaultLayout:a,onLayoutChange:u}}function bt(){return function(){}}function zt(){return x.useState(null)}function wt(){return x.useRef(null)}function le(){const e=x.useContext(_e);return z(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Lt({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:r}=D();for(const[a,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:p,separatorToPanels:m}]of r)if(a.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:a,layout:p,separatorToPanels:m};throw Error(`Group ${e} not found`)},o=()=>{const r=n().derivedPanelConstraints.find(a=>a.panelId===t);if(r!==void 0)return r;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{const r=n().group.panels.find(a=>a.id===t);if(r!==void 0)return r;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const r=n().layout[t];if(r!==void 0)return r;throw Error(`Layout not found for Panel ${t}`)},l=r=>{const a=s();if(r===a)return;const{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:p,layout:m,separatorToPanels:h}=n(),c=p.panels.findIndex(v=>v.id===t),d=c===p.panels.length-1,y=Y({delta:d?a-r:r-a,initialLayout:m,panelConstraints:f,pivotIndices:d?[c-1,c]:[c,c+1],prevLayout:m,trigger:"imperative-api"}),g=N({layout:y,panelConstraints:f});B(m,g)||k(v=>({mountedGroups:new Map(v.mountedGroups).set(p,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:g,separatorToPanels:h})}))};return{collapse:()=>{const{collapsible:r,collapsedSize:a}=o(),{mutableValues:u}=i(),f=s();r&&f!==a&&(u.expandToSize=f,l(a))},expand:()=>{const{collapsible:r,collapsedSize:a,minSize:u}=o(),{mutableValues:f}=i(),p=s();if(r&&p===a){let m=f.expandToSize??u;m===0&&(m=1),l(m)}},getSize:()=>{const{group:r}=n(),a=s(),{element:u}=i(),f=r.orientation==="horizontal"?u.offsetWidth:u.offsetHeight;return{asPercentage:a,inPixels:f}},isCollapsed:()=>{const{collapsible:r,collapsedSize:a}=o(),u=s();return r&&C(a,u)},resize:r=>{if(s()!==r){let u;switch(typeof r){case"number":{const{group:f}=n(),p=H({group:f});u=G(r/p*100);break}case"string":{u=parseFloat(r);break}}l(u)}}}}function Rt(e,t){const{id:n}=le(),o=x.useRef({collapse:te,expand:te,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:te});x.useImperativeHandle(t,()=>o.current,[]),_(()=>{Object.assign(o.current,Lt({groupId:n,panelId:e}))})}function $e({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:i,elementRef:s,id:l,maxSize:r="100%",minSize:a="0%",onResize:u,panelRef:f,style:p,...m}){const h=!!l,c=ie(l),d=x.useRef(null),y=ae(d,s),{id:g,registerPanel:v}=le(),b=u!==null,S=se((L,M,W)=>{u?.(L,l,W)});_(()=>{const L=d.current;if(L!==null)return v({element:L,id:c,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:b?S:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:i,maxSize:r,minSize:a}})},[n,o,i,b,c,h,r,a,S,v]),Rt(c,f);const w=Ne(g,c);return q.jsx("div",{...m,"data-panel":!0,"data-testid":c,id:c,ref:y,style:{...Pt,flexBasis:0,flexGrow:`var(${w}, 1)`,flexShrink:1,overflow:"hidden",pointerEvents:`var(${Oe})`},children:q.jsx("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}$e.displayName="Panel";const Pt={minHeight:"unset",maxHeight:"unset",height:"unset",minWidth:"unset",maxWidth:"unset",width:"unset",flex:"unset",flexBasis:"unset",flexShrink:"unset",flexGrow:"unset",border:"unset",borderWidth:"unset",padding:"unset",margin:"unset"};function Ct(){return x.useState(null)}function Mt(){return x.useRef(null)}function Et({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let i,s;const l=e[n],r=t.find(a=>a.panelId===n);if(r){const a=r.maxSize,u=s=r.collapsible?r.collapsedSize:r.minSize,f=[o,o+1];s=N({layout:Y({delta:u-l,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n],i=N({layout:Y({delta:a-l,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:s,valueNow:l}}function je({children:e,className:t,elementRef:n,id:o,style:i,...s}){const l=ie(o),[r,a]=x.useState({}),[u,f]=x.useState("inactive"),p=x.useRef(null),m=ae(p,n),{id:h,orientation:c,registerSeparator:d}=le(),y=c==="horizontal"?"vertical":"horizontal";return _(()=>{const g=p.current;if(g!==null){const v={element:g,id:l},b=d(v),S=O.addListener("interactionStateChange",L=>{f(L.state!=="inactive"&&L.hitRegions.some(M=>M.separator===v)?L.state:"inactive")}),w=O.addListener("mountedGroupsChange",L=>{L.forEach(({derivedPanelConstraints:M,layout:W,separatorToPanels:U},A)=>{if(A.id===h){const K=U.get(v);if(K){const R=K[0],P=A.panels.indexOf(R);a(Et({layout:W,panelConstraints:M,panelId:R.id,panelIndex:P}))}}})});return()=>{S(),w(),b()}}},[h,l,d]),q.jsx("div",{...s,"aria-controls":r.valueControls,"aria-orientation":y,"aria-valuemax":r.valueMax,"aria-valuemin":r.valueMin,"aria-valuenow":r.valueNow,children:e,className:t,"data-separator":u,"data-testid":l,id:l,ref:m,role:"separator",style:{flexBasis:"auto",...i,flexGrow:0,flexShrink:0},tabIndex:0})}je.displayName="Separator";exports.Group=Ae;exports.Panel=$e;exports.Separator=je;exports.useDefaultLayout=xt;exports.useGroupCallbackRef=zt;exports.useGroupRef=wt;exports.usePanelCallbackRef=Ct;exports.usePanelRef=Mt;
2
2
  //# sourceMappingURL=react-resizable-panels.cjs.map