react-resizable-panels 4.2.2-issue-572 → 4.3.0-alpha.0

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 B({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 se(e,t){return t.sort(e==="horizontal"?Ue:Ke)}function Ue(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Ke(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Pe(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Re(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 qe({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}=Re(o,l),u=e==="horizontal"?r:a;u<s&&(s=u,i=l)}return b(i,"No rect found"),i}function Ce(e){const{element:t,orientation:n,panels:o,separators:i}=e,s=se(n,Array.from(t.children).filter(Pe).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=qe({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:B({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 Xe(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function Ye(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function Ze(e){return e/100*window.innerHeight}function Je(e){return e/100*window.innerWidth}function Qe(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]=Qe(n);switch(s){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=Ye(t,i);break}case"em":{o=Xe(t,i);break}case"vh":{o=Ze(i);break}case"vw":{o=Je(i);break}}return o}function G(e){return parseFloat(e.toFixed(3))}function pe(e){const{panels:t}=e,n=B({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 et{#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 R(e,t,n=0){return Math.abs(G(e)-G(t))<=n}let k={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const O=new et;function D(){return k}function I(e){const t=typeof e=="function"?e(k):e;if(k===t)return k;const n=k;return k={...k,...t},t.cursorFlags!==void 0&&O.emit("cursorFlagsChange",k.cursorFlags),t.interactionState!==void 0&&O.emit("interactionStateChange",k.interactionState),t.mountedGroups!==void 0&&(k.mountedGroups.forEach((o,i)=>{o.derivedPanelConstraints.forEach(s=>{if(s.collapsible){const{layout:l}=n.mountedGroups.get(i)??{};if(l){const r=R(s.collapsedSize,o.layout[s.panelId]),a=R(s.collapsedSize,l[s.panelId]);r&&!a&&(i.inMemoryLastExpandedPanelSizes[s.panelId]=l[s.panelId])}}})}),O.emit("mountedGroupsChange",k.mountedGroups)),k}function tt(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 R(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(R(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}`),R(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}`),R(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(!R(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(tt(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,!R(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,C=V({panelConstraints:n[S],size:L});if(R(w,C)||(v-=C-w,a[S]=C),R(v,0))break;e>0?S--:S++}}}const m=Object.values(a).reduce((c,d)=>d+c,0);if(!R(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 W(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(!R(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(!R(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,R(s,0)))break}const l=Object.keys(e);return o.reduce((r,a,u)=>(r[l[u]]=a,r),{})}function Me({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:(W(l,a)||I(u=>({mountedGroups:new Map(u.mountedGroups).set(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:a,separatorToPanels:r})})),a)}}}function Ee(e){const{mountedGroups:t}=D(),n=t.get(e);return b(n,`Mounted Group ${e.id} not found`),n}function T(e,t){const n=ee(e),o=Ee(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=Me({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});W(a,f)||I(p=>({mountedGroups:new Map(p.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:f,separatorToPanels:o.separatorToPanels})}))}function me(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}=Ee(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;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);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(),T(t,-100);break}}}const nt=e=>e,re=()=>{},ke=1,Ie=2,Ge=4,De=8,he={coarse:10,precise:5};function ot(e,t,n){let o,i={x:1/0,y:1/0};for(const s of t){const l=Re(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 rt(){return Q===void 0&&(typeof matchMedia=="function"?Q=!!matchMedia("(pointer:coarse)").matches:Q=!1),Q}function it(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function st(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Se(e),b:Se(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:ge(ye(n.a)),b:ge(ye(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 at=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function lt(e){const t=getComputedStyle(Te(e)??e).display;return t==="flex"||t==="inline-flex"}function ut(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||lt(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"||at.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function ye(e){let t=e.length;for(;t--;){const n=e[t];if(b(n,"Missing node"),ut(n))return n}return null}function ge(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Se(e){const t=[];for(;e;)t.push(e),e=Te(e);return t}function Te(e){const{parentNode:t}=e;return it(t)?t.host:t}function ct(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 ft({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Pe(n)||n.contains(e)||e.contains(n))return!0;if(st(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(ct(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function Oe(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const s=rt()?he.coarse:he.precise,l=Ce(i),r=ot(i.orientation,l,{x:e.clientX,y:e.clientY});r&&r.distance.x<=s&&r.distance.y<=s&&ft({groupElement:i.element,hitRegion:r.hitRegion.rect,pointerEventTarget:e.target})&&n.push(r.hitRegion)}),n}function ve(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const{mountedGroups:t}=D(),n=Oe(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)}),I({interactionState:{hitRegions:n,initialLayoutMap:l,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function dt({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&ke)!==0,l=(e&Ie)!==0,r=(e&Ge)!==0,a=(e&De)!==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 xe=new WeakMap;function ae(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=xe.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=dt({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}}xe.set(e,{prevStyle:t,styleSheet:n})}function Ne({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(W(S,v)){if(c!==0&&!p)switch(m){case"horizontal":{l|=c<0?ke:Ie;break}case"vertical":{l|=c<0?Ge:De;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}}}),I({cursorFlags:l,mountedGroups:r}),ae(e)}function ze(e){const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":Ne({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n})}}function be(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=D();switch(t.state){case"active":{if(e.buttons===0){I(o=>o.interactionState.state==="inactive"?o:{cursorFlags:0,interactionState:{state:"inactive"}});return}Ne({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint});break}default:{const o=Oe(e,n);o.length===0?t.state!=="inactive"&&I({interactionState:{state:"inactive"}}):I({interactionState:{hitRegions:o,state:"hover"}}),ae(e.currentTarget);break}}}function we(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;e.preventDefault();const{interactionState:t}=D();switch(t.state){case"active":I({cursorFlags:0,interactionState:{state:"inactive"}}),ae(e.currentTarget)}}function Le(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 pt(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=B({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 mt(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 ht(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 H=new Map;function yt(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(B({group:e})===0)return;I(z=>{const S=z.mountedGroups.get(e);if(S){const w=pe(e),L=S.defaultLayoutDeferred?Le(w):S.layout,C=N({layout:L,panelConstraints:w});return!S.defaultLayoutDeferred&&W(L,C)&&mt(S.derivedPanelConstraints,w)?z:{mountedGroups:new Map(z.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:w,layout:C,separatorToPanels:S.separatorToPanels})}}return z})}}else pt(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=B({group:e}),r=pe(e),a=e.panels.map(({id:c})=>c).join(",");let u=e.defaultLayout;u&&(ht(e.panels,u)||(u=void 0));const f=e.inMemoryLayouts[a]??u??Le(r),p=N({layout:f,panelConstraints:r}),m=Ce(e),h=e.element.ownerDocument;return I(c=>{const d=new Map;return H.set(h,(H.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",me)}),H.get(h)===1&&(h.addEventListener("pointerdown",ve),h.addEventListener("pointerleave",ze),h.addEventListener("pointermove",be),h.addEventListener("pointerup",we)),function(){t=!1,H.set(h,Math.max(0,(H.get(h)??0)-1)),I(d=>{const y=new Map(d.mountedGroups);return y.delete(e),{mountedGroups:y}}),e.separators.forEach(d=>{d.element.removeEventListener("keydown",me)}),H.get(h)||(h.removeEventListener("pointerdown",ve),h.removeEventListener("pointerleave",ze),h.removeEventListener("pointermove",be),h.removeEventListener("pointerup",we)),s.disconnect()}}function gt(){const[e,t]=x.useState({}),n=x.useCallback(()=>t({}),[]);return[e,n]}function le(e){const t=x.useId();return`${e??t}`}const _=typeof window<"u"?x.useLayoutEffect:x.useEffect;function te(e){const t=x.useRef(e);return _(()=>{t.current=e},[e]),x.useCallback((...n)=>t.current?.(...n),[t])}function ue(...e){return te(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function St(e){const t=x.useRef({...e});return _(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const _e="--react-resizable-panels--panel--pointer-events";function vt(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 Ae=x.createContext(null);function xt(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:nt});x.useImperativeHandle(t,()=>n.current,[]),_(()=>{Object.assign(n.current,Me({groupId:e}))})}function je({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=te(P=>{W(m.current,P)||(m.current=P,a?.(P))}),c=le(r),d=x.useRef(null),[y,g]=x.useState(!1),[v,z]=x.useState(n??{}),[S,w]=gt(),L=x.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),C=te(P=>v[P]??1),U=ue(d,s);xt(c,l);const ne=x.useMemo(()=>({getPanelSize:C,id:c,orientation:u,registerPanel:P=>{const M=L.current;return M.panels=se(u,[...M.panels,P]),w(),()=>{M.panels=M.panels.filter(E=>E!==P),w()}},registerSeparator:P=>{const M=L.current;return M.separators=se(u,[...M.separators,P]),w(),()=>{M.separators=M.separators.filter(E=>E!==P),w()}}}),[C,c,w,u]),A=St({defaultLayout:n,disableCursor:o}),j=x.useRef(null);_(()=>{const P=d.current;if(P===null)return;const M=L.current,E={defaultLayout:A.defaultLayout,disableCursor:!!A.disableCursor,disabled:!!i,element:P,id:c,inMemoryLastExpandedPanelSizes:L.current.lastExpandedPanelSizes,inMemoryLayouts:L.current.layouts,orientation:u,panels:M.panels,separators:M.separators};j.current=E;const He=yt(E),fe=D().mountedGroups.get(E);if(fe){const{defaultLayoutDeferred:$,derivedPanelConstraints:F,layout:Z}=fe;!$&&F.length>0&&(z(Z),h?.(Z))}const Ve=O.addListener("interactionStateChange",$=>{switch($.state){case"active":{g($.hitRegions.some(F=>F.group===E));break}default:{g(!1);break}}}),Be=O.addListener("mountedGroupsChange",$=>{const F=$.get(E);if(F){const{defaultLayoutDeferred:Z,derivedPanelConstraints:We,layout:oe}=F;if(Z||We.length===0)return;E.panels.forEach(de=>{de.element.style.flexGrow=""+oe[de.id]}),z(oe),h?.(oe)}});return()=>{j.current=null,He(),Ve(),Be()}},[i,c,h,u,S,A]),x.useEffect(()=>{const P=j.current;P&&(P.defaultLayout=n,P.disableCursor=!!o)});const K={[_e]:y?"none":void 0};for(const P in v){const M=vt(c,P),E=v[P];K[M]=E}return q.jsx(Ae.Provider,{value:ne,children:q.jsx("div",{...p,"aria-orientation":u,className:t,"data-group":!0,"data-testid":c,id:c,ref:U,style:{...f,...K,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}je.displayName="Group";function zt(e,t=10){let n=null;return o=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(o)},t)}}function ie(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function bt({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const i=t!==void 0,s="id"in o?o.id:o.groupId,l=ie(s,t??[]),r=x.useSyncExternalStore(wt,()=>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=ie(s,Object.keys(p)):m=ie(s,[]);try{n.setItem(m,JSON.stringify(p))}catch(h){console.error(h)}};return e>0?zt(f,e):f},[e,i,s,n]);return{defaultLayout:a,onLayoutChange:u}}function wt(){return function(){}}function Lt(){return x.useState(null)}function Pt(){return x.useRef(null)}function ce(){const e=x.useContext(Ae);return b(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Rt({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});W(m,g)||I(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&&R(a,u)},resize:r=>{if(s()!==r){let u;switch(typeof r){case"number":{const{group:f}=n(),p=B({group:f});u=G(r/p*100);break}case"string":{u=parseFloat(r);break}}l(u)}}}}function Ct(e,t){const{id:n}=ce(),o=x.useRef({collapse:re,expand:re,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:re});x.useImperativeHandle(t,()=>o.current,[]),_(()=>{Object.assign(o.current,Rt({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=le(l),d=x.useRef(null),y=ue(d,s),{getPanelSize:g,registerPanel:v}=ce(),z=u!==null,S=te((L,C,U)=>{u?.(L,l,U)});_(()=>{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]),Ct(c,f);const w=g(c);return q.jsx("div",{...m,"data-panel":!0,"data-testid":c,id:c,ref:y,style:{...Mt,flexBasis:0,flexGrow:w,flexShrink:1,overflow:"hidden",pointerEvents:`var(${_e})`},children:q.jsx("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}$e.displayName="Panel";const Mt={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 Et(){return x.useState(null)}function kt(){return x.useRef(null)}function It({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 Fe({children:e,className:t,elementRef:n,id:o,style:i,...s}){const l=le(o),[r,a]=x.useState({}),[u,f]=x.useState("inactive"),p=x.useRef(null),m=ue(p,n),{id:h,orientation:c,registerSeparator:d}=ce(),y=c==="horizontal"?"vertical":"horizontal";return _(()=>{const g=p.current;if(g!==null){const v={element:g,id:l},z=d(v),S=O.addListener("interactionStateChange",L=>{f(L.state!=="inactive"&&L.hitRegions.some(C=>C.separator===v)?L.state:"inactive")}),w=O.addListener("mountedGroupsChange",L=>{L.forEach(({derivedPanelConstraints:C,layout:U,separatorToPanels:ne},A)=>{if(A.id===h){const j=ne.get(v);if(j){const K=j[0],P=A.panels.indexOf(K);a(It({layout:U,panelConstraints:C,panelId:K.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})}Fe.displayName="Separator";exports.Group=je;exports.Panel=$e;exports.Separator=Fe;exports.useDefaultLayout=bt;exports.useGroupCallbackRef=Lt;exports.useGroupRef=Pt;exports.usePanelCallbackRef=Et;exports.usePanelRef=kt;
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