react-resizable-panels 4.1.1 → 4.2.1-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
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
<img src="https://react-resizable-panels.vercel.app/og.svg" alt="react-resizable-panels logo" width="400" height="210" />
|
|
2
2
|
|
|
3
|
-
React components for resizable panel groups/layouts.
|
|
3
|
+
`react-resizable-panels`: React components for resizable panel groups/layouts.
|
|
4
4
|
|
|
5
5
|
## Support
|
|
6
6
|
|
|
@@ -21,6 +21,10 @@ npm install react-resizable-panels
|
|
|
21
21
|
|
|
22
22
|
TypeScript definitions are included within the published `dist` folder
|
|
23
23
|
|
|
24
|
+
|
|
25
|
+
## FAQs
|
|
26
|
+
Frequently asked questions can be found [here](https://react-resizable-panels.vercel.app/common-questions).
|
|
27
|
+
|
|
24
28
|
## Documentation
|
|
25
29
|
|
|
26
30
|
Documentation for this project is available at [react-resizable-panels.vercel.app](https://react-resizable-panels.vercel.app/).
|
|
@@ -226,7 +230,10 @@ Falls back to <code>useId</code> when not provided.</p>
|
|
|
226
230
|
</tr>
|
|
227
231
|
<tr>
|
|
228
232
|
<td>onResize</td>
|
|
229
|
-
<td><p>Called when panel sizes change
|
|
233
|
+
<td><p>Called when panel sizes change.
|
|
234
|
+
@param panelSize Panel size (both as a percentage of the parent Group and in pixels)
|
|
235
|
+
@param id Panel id (if one was provided as a prop)
|
|
236
|
+
@param prevPanelSize Previous panel size (will be undefined on mount)</p>
|
|
230
237
|
</td>
|
|
231
238
|
</tr>
|
|
232
239
|
<tr>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("react/jsx-runtime"),x=require("react");function b(e,t="Assertion error"){if(!e)throw Error(t)}function V({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 ie(e,t){return t.sort(e==="horizontal"?Be:Ve)}function Be(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Ve(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Re(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function Pe(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 We({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}=Pe(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=ie(n,Array.from(t.children).filter(Re).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(h=>h.element===f);if(p){if(a){const h=a.element.getBoundingClientRect(),m=f.getBoundingClientRect();let c;if(r){const d=n==="horizontal"?new DOMRect(h.right,h.top,0,h.height):new DOMRect(h.left,h.bottom,h.width,0),y=n==="horizontal"?new DOMRect(m.left,m.top,0,m.height):new DOMRect(m.left,m.top,m.width,0);switch(u.length){case 0:{c=[d,y];break}case 1:{const S=u[0],v=We({orientation:n,rects:[h,m],targetRect:S.element.getBoundingClientRect()});c=[S,v===h?y:d];break}default:{c=u;break}}}else u.length?c=u:c=[n==="horizontal"?new DOMRect(h.right,m.top,m.left-h.right,m.height):new DOMRect(m.left,h.bottom,m.width,m.top-h.bottom)];for(const d of c)l.push({group:e,groupSize:V({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(h=>h.element===f);p?u.push(p):(a=void 0,u=[])}else r=!0;return l}function Ue(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function Ke(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function qe(e){return e/100*window.innerHeight}function Xe(e){return e/100*window.innerWidth}function Ye(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 Q({groupSize:e,panelElement:t,styleProp:n}){let o;const[i,s]=Ye(n);switch(s){case"%":{o=i/100*e;break}case"px":{o=i;break}case"rem":{o=Ke(t,i);break}case"em":{o=Ue(t,i);break}case"vh":{o=qe(i);break}case"vw":{o=Xe(i);break}}return o}function I(e){return parseFloat(e.toFixed(3))}function pe(e){const{panels:t}=e,n=V({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=Q({groupSize:n,panelElement:i,styleProp:s.collapsedSize});l=I(f/n*100)}let r;if(s.defaultSize){const f=Q({groupSize:n,panelElement:i,styleProp:s.defaultSize});r=I(f/n*100)}let a=0;if(s.minSize){const f=Q({groupSize:n,panelElement:i,styleProp:s.minSize});a=I(f/n*100)}let u=100;if(s.maxSize){const f=Q({groupSize:n,panelElement:i,styleProp:s.maxSize});u=I(f/n*100)}return{collapsedSize:l,collapsible:s.collapsible===!0,defaultSize:r,minSize:a,maxSize:u,panelId:o.id}})}class Ze{#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(I(e)-I(t))<=n}let M={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const T=new Ze;function G(){return M}function k(e){const t=typeof e=="function"?e(M):e;if(M===t)return M;const n=M;return M={...M,...t},t.cursorFlags!==void 0&&T.emit("cursorFlagsChange",M.cursorFlags),t.interactionState!==void 0&&T.emit("interactionStateChange",M.interactionState),t.mountedGroups!==void 0&&(M.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",M.mountedGroups)),M}function Je(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function K(e,t){return C(e,t)?0:e>t?1:-1}function B({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:i=100,minSize:s=0}=e;if(K(t,s)<0)if(o){const l=(n+s)/2;K(t,l)<0?t=n:t=s}else t=s;return t=Math.min(i,t),t=I(t),t}function q({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:S,minSize:v=0}=d;if(S){const z=l[c];if(b(z!=null,`Previous layout not found for panel index ${c}`),C(z,y)){const g=v-z;K(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}{const c=e<0?u:f,d=n[c];b(d,`No panel constraints found for index ${c}`);const{collapsedSize:y=0,collapsible:S,minSize:v=0}=d;if(S){const z=l[c];if(b(z!=null,`Previous layout not found for panel index ${c}`),C(z,v)){const g=z-y;K(g,Math.abs(e))>0&&(e=e<0?0-g:g)}}}}{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 g=B({panelConstraints:n[d],size:100})-v;if(y+=g,d+=c,d<0||d>=n.length)break}const S=Math.min(Math.abs(e),Math.abs(y));e=e<0?0-S:S}{let d=e<0?u:f;for(;d>=0&&d<n.length;){const y=Math.abs(e)-Math.abs(p),S=l[d];b(S!=null,`Previous layout not found for panel index ${d}`);const v=S-y,z=B({panelConstraints:n[d],size:v});if(!C(S,z)&&(p+=S-z,a[d]=z,p.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(Je(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,S=B({panelConstraints:n[c],size:y});if(a[c]=S,!C(S,y)){let v=y-S,g=e<0?f:u;for(;g>=0&&g<n.length;){const w=a[g];b(w!=null,`Previous layout not found for panel index ${g}`);const L=w+v,E=B({panelConstraints:n[g],size:L});if(C(w,E)||(v-=E-w,a[g]=E),C(v,0))break;e>0?g--:g++}}}const h=Object.values(a).reduce((c,d)=>d+c,0);if(!C(h,100,.1))return i;const m=Object.keys(i);return a.reduce((c,d,y)=>(c[m[y]]=d,c),{})}function te(e){const t=e.parentElement;b(t,"Parent group element not found");const{mountedGroups:n}=G();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||K(e[n],t[n])!==0)return!1;return!0}function _({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=B({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=B({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 Ee({groupId:e}){const t=()=>{const{mountedGroups:n}=G();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=_({layout:n,panelConstraints:i});return o?l:(W(l,a)||k(u=>({mountedGroups:new Map(u.mountedGroups).set(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:a,separatorToPanels:r})})),a)}}}function Me(e){const{mountedGroups:t}=G(),n=t.get(e);return b(n,`Mounted Group ${e.id} not found`),n}function O(e,t){const n=te(e),o=Me(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=Ee({groupId:n.id}).getLayout(),u=q({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:l,prevLayout:a,trigger:"keyboard"}),f=_({layout:u,panelConstraints:o.derivedPanelConstraints});W(a,f)||k(p=>({mountedGroups:new Map(p.mountedGroups).set(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,layout:f,separatorToPanels:o.separatorToPanels})}))}function he(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=te(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=te(t),{derivedPanelConstraints:i,layout:s,separatorToPanels:l}=Me(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],h=f.collapsedSize===p?o.inMemoryLastExpandedPanelSizes[u.id]??f.minSize:f.collapsedSize;O(t,h-p)}break}case"F6":{e.preventDefault();const i=te(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 Qe=e=>e,oe=()=>{},ke=1,Ie=2,Ge=4,De=8,me={coarse:10,precise:5};function et(e,t,n){let o,i={x:1/0,y:1/0};for(const s of t){const l=Pe(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 ee;function tt(){return ee===void 0&&(typeof matchMedia=="function"?ee=!!matchMedia("(pointer:coarse)").matches:ee=!1),ee}function nt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function ot(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 rt=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function it(e){const t=getComputedStyle(Oe(e)??e).display;return t==="flex"||t==="inline-flex"}function st(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||it(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"||rt.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function ye(e){let t=e.length;for(;t--;){const n=e[t];if(b(n,"Missing node"),st(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=Oe(e);return t}function Oe(e){const{parentNode:t}=e;return nt(t)?t.host:t}function at(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 lt({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Re(n)||n.contains(e)||e.contains(n))return!0;if(ot(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(at(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function Te(e,t){const n=[];return t.forEach((o,i)=>{if(i.disabled)return;const s=tt()?me.coarse:me.precise,l=Ce(i),r=et(i.orientation,l,{x:e.clientX,y:e.clientY});r&&r.distance.x<=s&&r.distance.y<=s&<({groupElement:i.element,hitRegion:r.hitRegion.rect,pointerEventTarget:e.target})&&n.push(r.hitRegion)}),n}function ve(e){if(e.defaultPrevented)return;const{mountedGroups:t}=G(),n=Te(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 ut({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 se(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}=G();switch(i.state){case"active":case"hover":{const s=ut({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 _e({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:h,panels:m}=u;let c=0;s?h==="horizontal"?c=(t.clientX-s.x)/f*100:c=(t.clientY-s.y)/f*100:h==="horizontal"?c=t.clientX<0?-100:100:c=t.clientY<0?-100:100;const d=o.get(u),{defaultLayoutDeferred:y,derivedPanelConstraints:S,layout:v,separatorToPanels:z}=i.get(u)??{defaultLayoutDeferred:!1};if(S&&d&&v&&z){const g=q({delta:c,initialLayout:d,panelConstraints:S,pivotIndices:a.panels.map(w=>m.indexOf(w)),prevLayout:v,trigger:"mouse-or-touch"});if(W(g,v)){if(c!==0&&!p)switch(h){case"horizontal":{l|=c<0?ke:Ie;break}case"vertical":{l|=c<0?Ge:De;break}}}else{r.set(a.group,{defaultLayoutDeferred:y,derivedPanelConstraints:S,layout:g,separatorToPanels:z});const w=a.group.panels.map(({id:L})=>L).join(",");a.group.inMemoryLayouts[w]=g}}}),k({cursorFlags:l,mountedGroups:r}),se(e)}function ze(e){const{interactionState:t,mountedGroups:n}=G();switch(t.state){case"active":_e({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}=G();switch(t.state){case"active":{if(e.buttons===0){k(o=>o.interactionState.state==="inactive"?o:{cursorFlags:0,interactionState:{state:"inactive"}});return}_e({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint});break}default:{const o=Te(e,n);o.length===0?t.state!=="inactive"&&k({interactionState:{state:"inactive"}}):k({interactionState:{hitRegions:o,state:"hover"}}),se(e.currentTarget);break}}}function we(e){if(e.defaultPrevented)return;e.preventDefault();const{interactionState:t}=G();switch(t.state){case"active":k({cursorFlags:0,interactionState:{state:"inactive"}}),se(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=I(s.defaultSize);n+=l,o[s.panelId]=l}else o[s.panelId]=void 0;const i=e.length-t;if(i!==0){const s=I((100-n)/i);for(const l of e)l.defaultSize===void 0&&(o[l.panelId]=s)}return o}function ct(e,t,n){const o=n[0];if(!o)return;const i=e.panels.find(l=>l.element===t);if(!i||!i.onResize)return;const s=V({group:e});i.onResize({asPercentage:I(o.inlineSize/s*100),inPixels:o.inlineSize},i.id)}function ft(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 dt(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 pt(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:S}=d;if(S===e.element){if(t){if(V({group:e})===0)return;k(z=>{const g=z.mountedGroups.get(e);if(g){const w=pe(e),L=g.defaultLayoutDeferred?Le(w):g.layout,E=_({layout:L,panelConstraints:w});return!g.defaultLayoutDeferred&&W(L,E)&&ft(g.derivedPanelConstraints,w)?z:{mountedGroups:new Map(z.mountedGroups).set(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:w,layout:E,separatorToPanels:g.separatorToPanels})}}return z})}}else ct(e,S,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=V({group:e}),r=pe(e),a=e.panels.map(({id:c})=>c).join(",");let u=e.defaultLayout;u&&(dt(e.panels,u)||(u=void 0));const f=e.inMemoryLayouts[a]??u??Le(r),p=_({layout:f,panelConstraints:r}),h=Ce(e),m=e.element.ownerDocument;return k(c=>{const d=new Map;return H.set(m,(H.get(m)??0)+1),h.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",he)}),H.get(m)===1&&(m.addEventListener("pointerdown",ve),m.addEventListener("pointerleave",ze),m.addEventListener("pointermove",be),m.addEventListener("pointerup",we)),function(){t=!1,H.set(m,Math.max(0,(H.get(m)??0)-1)),k(d=>{const y=new Map(d.mountedGroups);return y.delete(e),{mountedGroups:y}}),e.separators.forEach(d=>{d.element.removeEventListener("keydown",he)}),H.get(m)||(m.removeEventListener("pointerdown",ve),m.removeEventListener("pointerleave",ze),m.removeEventListener("pointermove",be),m.removeEventListener("pointerup",we)),s.disconnect()}}function ae(e){const t=x.useId();return`${e??t}`}const N=typeof window<"u"?x.useLayoutEffect:x.useEffect;function le(e){const t=x.useRef(e);return N(()=>{t.current=e},[e]),x.useCallback(n=>t.current?.(n),[t])}function ue(...e){return le(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function ht(e){const t=x.useRef({...e});return N(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const Ne="--react-resizable-panels--panel--pointer-events";function Ae(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 mt(e,t){const n=x.useRef({getLayout:()=>({}),setLayout:Qe});x.useImperativeHandle(t,()=>n.current,[]),N(()=>{Object.assign(n.current,Ee({groupId:e}))})}function yt({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 h=x.useRef({}),m=le(R=>{W(h.current,R)||(h.current=R,a?.(R))}),c=ae(r),[d,y]=x.useState(!1),S=x.useRef(null),[v,z]=x.useState(n??{}),[g,w]=x.useState([]),[L,E]=x.useState([]),X=x.useRef({lastExpandedPanelSizes:{},layouts:{}}),ne=ue(S,s);mt(c,l);const Y=x.useMemo(()=>({id:c,orientation:u,registerPanel:R=>(w(P=>ie(u,[...P,R])),()=>{w(P=>P.filter(D=>D!==R))}),registerSeparator:R=>(E(P=>ie(u,[...P,R])),()=>{E(P=>P.filter(D=>D!==R))})}),[c,u]),A=ht({defaultLayout:n,disableCursor:o}),$=x.useRef(null);N(()=>{const R=S.current;if(R===null)return;const P={defaultLayout:A.defaultLayout,disableCursor:!!A.disableCursor,disabled:!!i,element:R,id:c,inMemoryLastExpandedPanelSizes:X.current.lastExpandedPanelSizes,inMemoryLayouts:X.current.layouts,orientation:u,panels:g,separators:L};$.current=P;const D=pt(P),fe=G().mountedGroups.get(P);if(fe){const{defaultLayoutDeferred:j,derivedPanelConstraints:F,layout:J}=fe;!j&&F.length>0&&(z(J),m?.(J))}const je=T.addListener("interactionStateChange",j=>{switch(j.state){case"active":{y(j.hitRegions.some(F=>F.group===P));break}default:{y(!1);break}}}),Fe=T.addListener("mountedGroupsChange",j=>{const F=j.get(P);if(F){const{defaultLayoutDeferred:J,derivedPanelConstraints:He,layout:de}=F;if(J||He.length===0)return;z(de),m?.(de)}});return()=>{$.current=null,D(),je(),Fe()}},[i,c,m,u,g,L,A]),x.useEffect(()=>{const R=$.current;R&&(R.defaultLayout=n,R.disableCursor=!!o)});const Z={[Ne]:d?"none":void 0};for(const R in v){const P=Ae(c,R),D=v[R];Z[P]=D}return U.jsx($e.Provider,{value:Y,children:U.jsx("div",{...p,"aria-orientation":u,className:t,"data-group":!0,"data-testid":c,id:c,ref:ne,style:{...f,...Z,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}function gt(e,t=10){let n=null;return o=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(o)},t)}}function re(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function St({debounceSaveMs:e=100,panelIds:t,storage:n,...o}){const i=t!==void 0,s="id"in o?o.id:o.groupId,l=re(s,t??[]),r=x.useSyncExternalStore(vt,()=>n.getItem(l),()=>n.getItem(l)),a=x.useMemo(()=>r?JSON.parse(r):void 0,[r]),u=x.useMemo(()=>{const f=p=>{let h;i?h=re(s,Object.keys(p)):h=re(s,[]);try{n.setItem(h,JSON.stringify(p))}catch(m){console.error(m)}};return e>0?gt(f,e):f},[e,i,s,n]);return{defaultLayout:a,onLayoutChange:u}}function vt(){return function(){}}function xt(){return x.useState(null)}function zt(){return x.useRef(null)}function ce(){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 bt({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:r}=G();for(const[a,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:p,separatorToPanels:h}]of r)if(a.id===e)return{defaultLayoutDeferred:u,derivedPanelConstraints:f,group:a,layout:p,separatorToPanels:h};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:h,separatorToPanels:m}=n(),c=p.panels.findIndex(v=>v.id===t),d=c===p.panels.length-1,y=q({delta:d?a-r:r-a,initialLayout:h,panelConstraints:f,pivotIndices:d?[c-1,c]:[c,c+1],prevLayout:h,trigger:"imperative-api"}),S=_({layout:y,panelConstraints:f});W(h,S)||k(v=>({mountedGroups:new Map(v.mountedGroups).set(p,{defaultLayoutDeferred:u,derivedPanelConstraints:f,layout:S,separatorToPanels:m})}))};return{collapse:()=>{const{collapsible:r,collapsedSize:a}=o(),{expandToSizeRef:u}=i(),f=s();r&&f!==a&&(u.current=f,l(a))},expand:()=>{const{collapsible:r,collapsedSize:a,minSize:u}=o(),{expandToSizeRef:f}=i(),p=s();if(r&&p===a){let h=f.current??u;h===0&&(h=1),l(h)}},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=V({group:f});u=I(r/p*100);break}case"string":{u=parseFloat(r);break}}l(u)}}}}function wt(e,t){const{id:n}=ce(),o=x.useRef({collapse:oe,expand:oe,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:oe});x.useImperativeHandle(t,()=>o.current,[]),N(()=>{Object.assign(o.current,bt({groupId:n,panelId:e}))})}function Lt({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,...h}){const m=!!l,c=ae(l),d=x.useRef(null),y=ue(d,s),{id:S,registerPanel:v}=ce(),z=u!==null,g=le(L=>{u?.(L,l)});N(()=>{const L=d.current;if(L!==null)return v({element:L,expandToSizeRef:{current:void 0},id:c,idIsStable:m,onResize:z?g:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:i,maxSize:r,minSize:a}})},[n,o,i,z,c,m,r,a,g,v]),wt(c,f);const w=Ae(S,c);return U.jsx("div",{...h,"data-panel":!0,"data-testid":c,id:c,ref:y,style:{...Rt,flexBasis:0,flexGrow:`var(${w}, 1)`,flexShrink:1,overflow:"hidden",pointerEvents:`var(${Ne})`},children:U.jsx("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}const Rt={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 Pt(){return x.useState(null)}function Ct(){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=_({layout:q({delta:u-l,initialLayout:e,panelConstraints:t,pivotIndices:f,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n],i=_({layout:q({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 Mt({children:e,className:t,elementRef:n,id:o,style:i,...s}){const l=ae(o),[r,a]=x.useState({}),[u,f]=x.useState("inactive"),[p,h]=x.useState(null),m=ue(h,n),{id:c,orientation:d,registerSeparator:y}=ce(),S=d==="horizontal"?"vertical":"horizontal";return N(()=>{if(p!==null){const v={element:p,id:l},z=y(v),g=T.addListener("interactionStateChange",L=>{f(L.state!=="inactive"&&L.hitRegions.some(E=>E.separator===v)?L.state:"inactive")}),w=T.addListener("mountedGroupsChange",L=>{L.forEach(({derivedPanelConstraints:E,layout:X,separatorToPanels:ne},Y)=>{if(Y.id===c){const A=ne.get(v);if(A){const $=A[0],Z=Y.panels.indexOf($);a(Et({layout:X,panelConstraints:E,panelId:$.id,panelIndex:Z}))}}})});return()=>{g(),w(),z()}}},[p,c,l,y]),U.jsx("div",{...s,"aria-controls":r.valueControls,"aria-orientation":S,"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})}exports.Group=yt;exports.Panel=Lt;exports.Separator=Mt;exports.useDefaultLayout=St;exports.useGroupCallbackRef=xt;exports.useGroupRef=zt;exports.usePanelCallbackRef=Pt;exports.usePanelRef=Ct;
|
|
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,...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;
|
|
2
2
|
//# sourceMappingURL=react-resizable-panels.cjs.map
|