react-resizable-panels 4.0.0-alpha.1 → 4.0.0-alpha.3

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
@@ -234,7 +234,7 @@ Falls back to <code>useId</code> when not provided.</p>
234
234
  <tr>
235
235
  <td>className</td>
236
236
  <td><p>CSS class name.</p>
237
- <p>ℹ️ Use the <code>data-separator-state</code> attribute for custom <em>hover</em> and <em>active</em> styles</p>
237
+ <p>ℹ️ Use the <code>data-separator</code> attribute for custom <em>hover</em> and <em>active</em> styles</p>
238
238
  <p>⚠️ The following properties cannot be overridden: <code>flex-grow</code>, <code>flex-shrink</code></p>
239
239
  </td>
240
240
  </tr>
@@ -253,7 +253,7 @@ Falls back to <code>useId</code> when not provided.</p>
253
253
  <tr>
254
254
  <td>style</td>
255
255
  <td><p>CSS properties.</p>
256
- <p>ℹ️ Use the <code>data-separator-state</code> attribute for custom <em>hover</em> and <em>active</em> styles</p>
256
+ <p>ℹ️ Use the <code>data-separator</code> attribute for custom <em>hover</em> and <em>active</em> styles</p>
257
257
  <p>⚠️ The following properties cannot be overridden: <code>flex-grow</code>, <code>flex-shrink</code></p>
258
258
  </td>
259
259
  </tr>
@@ -1,2 +1,2 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("react/jsx-runtime"),p=require("react");function be(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function we(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function Re(e){return e/100*window.innerHeight}function Le(e){return e/100*window.innerWidth}function Pe(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 F({groupSize:e,panelElement:t,styleProp:n}){let o;const[r,i]=Pe(n);switch(i){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=we(t,r);break}case"em":{o=be(t,r);break}case"vh":{o=Re(r);break}case"vw":{o=Le(r);break}}return o}function L(e){return parseFloat(e.toFixed(3))}function J({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,r)=>(o+=t==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,o),0)}function re(e){const{panels:t}=e,n=J({group:e});return t.map(o=>{const{element:r,panelConstraints:i}=o;let a=0;if(i.collapsedSize){const u=F({groupSize:n,panelElement:r,styleProp:i.collapsedSize});a=L(u/n*100)}let s;if(i.defaultSize){const u=F({groupSize:n,panelElement:r,styleProp:i.defaultSize});s=L(u/n*100)}let l=0;if(i.minSize){const u=F({groupSize:n,panelElement:r,styleProp:i.minSize});l=L(u/n*100)}let c=100;if(i.maxSize){const u=F({groupSize:n,panelElement:r,styleProp:i.maxSize});c=L(u/n*100)}return{collapsedSize:a,collapsible:i.collapsible===!0,defaultSize:s,minSize:l,maxSize:c,panelId:o.id}})}class Ce{#e={};addListener(t,n){const o=this.#e[t];return o===void 0?this.#e[t]=[n]:o.includes(n)||o.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const o=this.#e[t];if(o!==void 0)if(o.length===1)o[0].call(null,n);else{let r=!1,i=null;const a=Array.from(o);for(let s=0;s<a.length;s++){const l=a[s];try{l.call(null,n)}catch(c){i===null&&(r=!0,i=c)}}if(r)throw i}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const r=o.indexOf(n);r>=0&&o.splice(r,1)}}}let E={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const T=new Ce;function I(){return E}function G(e){const t=typeof e=="function"?e(E):e;return E===t||(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&&T.emit("mountedGroupsChange",E.mountedGroups)),E}const Ee=e=>e,B=()=>{},ue=1,fe=2,de=4,pe=8,ae={coarse:10,precise:5};function K(e,t){return t.sort(e==="horizontal"?Me:Ge)}function Me(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Ge(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function Ie(e){const{element:t,orientation:n,panels:o,separators:r}=e,i=K(n,Array.from(t.children).filter(c=>c instanceof HTMLElement).map(c=>({element:c}))).map(({element:c})=>c),a=[];let s,l;for(const c of i){const u=o.find(d=>d.element===c);if(u){if(s){const d=s.element.getBoundingClientRect(),h=c.getBoundingClientRect();a.push({group:e,panels:[s,u],separator:l,rect:n==="horizontal"?new DOMRect(d.right,h.top,h.left-d.right,h.height):new DOMRect(h.left,d.bottom,h.width,h.top-d.bottom)})}s=u,l=void 0}else{const d=r.find(h=>h.element===c);d?l=d:(s=void 0,l=void 0)}}return a}function Oe(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(e,t,n){let o,r={x:1/0,y:1/0};for(const i of t){const a=Oe(n,i.rect);switch(e){case"horizontal":{a.x<=r.x&&(o=i,r=a);break}case"vertical":{a.y<=r.y&&(o=i,r=a);break}}}return o?{distance:r,hitRegion:o}:void 0}let H;function Ae(){return H===void 0&&(typeof matchMedia=="function"?H=!!matchMedia("(pointer:coarse)").matches:H=!1),H}function he(e,t){const n=[];return t.forEach((o,r)=>{if(r.disabled)return;const i=Ae()?ae.coarse:ae.precise,a=Ie(r),s=ke(r.orientation,a,{x:e.clientX,y:e.clientY});s&&s.distance.x<=i&&s.distance.y<=i&&n.push(s.hitRegion)}),n}function le(e){if(e.defaultPrevented)return;const{mountedGroups:t}=I(),n=he(e,t),o=new Set,r=new Set,i=new Set,a=new Map;n.forEach(s=>{o.add(s.group),s.panels.forEach(c=>{r.add(c)}),s.separator&&i.add(s.separator);const l=t.get(s.group);l&&a.set(s.group,l.layout)}),G({interactionState:{hitRegions:n,initialLayoutMap:a,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function Ne({cursorFlags:e,groups:t,state:n}){let o=0,r=0;switch(n){case"active":case"hover":t.forEach(i=>{if(!i.disableCursor)switch(i.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(o===0&&r===0)return null;switch(n){case"active":{const i=(e&ue)!==0,a=(e&fe)!==0,s=(e&de)!==0,l=(e&pe)!==0;if(e){if(i)return s?"se-resize":l?"ne-resize":"e-resize";if(a)return s?"sw-resize":l?"nw-resize":"w-resize";if(s)return"s-resize";if(l)return"n-resize"}break}}return o>0&&r>0?"move":o>0?"ew-resize":"ns-resize"}let V=null,C;function q(){C===void 0&&(C=new CSSStyleSheet,document.adoptedStyleSheets=[C]);const{cursorFlags:e,interactionState:t}=I();switch(t.state){case"active":case"hover":{const n=Ne({cursorFlags:e,groups:t.hitRegions.map(o=>o.group),state:t.state});if(V===n)return;V=n,n?C.cssRules.length===0?C.insertRule(`*{cursor: ${n} !important;}`):C.replaceSync(`*{cursor: ${n} !important;}`):C.cssRules.length===1&&C.deleteRule(0);break}case"inactive":{V=null,C.cssRules.length===1&&C.deleteRule(0);break}}}function M(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function De(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 R(e,t,n=0){return Math.abs(L(e)-L(t))<=n}function X(e,t){return R(e,t)?0:e>t?1:-1}function D({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:r=100,minSize:i=0}=e;if(X(t,i)<0)if(o){const a=(n+i)/2;X(t,a)<0?t=n:t=i}else t=i;return t=Math.min(r,t),t=L(t),t}function Te({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:r,trigger:i}){if(R(e,0))return t;const a=Object.values(t),s=Object.values(r),l=[...a],[c,u]=o;M(c!=null,"Invalid first pivot index"),M(u!=null,"Invalid second pivot index");let d=0;{const m=e<0?1:-1;let f=e<0?u:c,g=0;for(;;){const z=a[f];M(z!=null,`Previous layout not found for panel index ${f}`);const x=D({panelConstraints:n[f],size:100})-z;if(g+=x,f+=m,f<0||f>=n.length)break}const y=Math.min(Math.abs(e),Math.abs(g));e=e<0?0-y:y}{let f=e<0?c:u;for(;f>=0&&f<n.length;){const g=Math.abs(e)-Math.abs(d),y=a[f];M(y!=null,`Previous layout not found for panel index ${f}`);const z=y-g,b=D({panelConstraints:n[f],size:z});if(!R(y,b)&&(d+=y-b,l[f]=b,d.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?f--:f++}}if(De(s,l))return r;{const m=e<0?u:c,f=a[m];M(f!=null,`Previous layout not found for panel index ${m}`);const g=f+d,y=D({panelConstraints:n[m],size:g});if(l[m]=y,!R(y,g)){let z=g-y,x=e<0?u:c;for(;x>=0&&x<n.length;){const P=l[x];M(P!=null,`Previous layout not found for panel index ${x}`);const O=P+z,k=D({panelConstraints:n[x],size:O});if(R(P,k)||(z-=k-P,l[x]=k),R(z,0))break;e>0?x--:x++}}}const h=Object.values(l).reduce((m,f)=>f+m,0);if(!R(h,100,.1))return r;const v=Object.keys(r);return l.reduce((m,f,g)=>(m[v[g]]=f,m),{})}function Q(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(X(e[n],t[n])!==0)return!1;return!0}function W(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=I();switch(t.state){case"active":{if(e.type!=="pointerleave"&&e.buttons===0){G(i=>i.interactionState.state==="inactive"?i:{cursorFlags:0,interactionState:{state:"inactive"}});return}let o=0;const r=new Map(n);t.hitRegions.forEach(i=>{const{disableCursor:a,element:s,orientation:l,panels:c}=i.group;let u=0;t.state==="active"&&(l==="horizontal"?u=(e.clientX-t.pointerDownAtPoint.x)/s.offsetWidth*100:u=(e.clientY-t.pointerDownAtPoint.y)/s.offsetHeight*100);const d=t.initialLayoutMap.get(i.group),{derivedPanelConstraints:h,layout:v}=n.get(i.group)??{};if(h&&d&&v){const m=Te({delta:u,initialLayout:d,panelConstraints:h,pivotIndices:i.panels.map(f=>c.indexOf(f)),prevLayout:v,trigger:"mouse-or-touch"});if(Q(m,v)){if(u!==0&&!a)switch(l){case"horizontal":{o|=u<0?ue:fe;break}case"vertical":{o|=u<0?de:pe;break}}}else{r.set(i.group,{derivedPanelConstraints:h,layout:m});const f=i.group.panels.map(({id:g})=>g).join(",");i.group.inMemoryLayouts[f]=m}}}),G({cursorFlags:o,mountedGroups:r}),q();break}default:{const o=he(e,n);o.length===0?t.state!=="inactive"&&G({interactionState:{state:"inactive"}}):G({interactionState:{hitRegions:o,state:"hover"}}),q();break}}}function ce(e){if(e.defaultPrevented)return;e.preventDefault();const{interactionState:t}=I();switch(t.state){case"active":G({cursorFlags:0,interactionState:{state:"inactive"}}),q()}}function _e(e){let t=0,n=0;const o={};for(const i of e)if(i.defaultSize!==void 0){t++;const a=L(i.defaultSize);n+=a,o[i.panelId]=a}else o[i.panelId]=void 0;const r=e.length-t;if(r!==0){const i=L((100-n)/r);for(const a of e)a.defaultSize===void 0&&(o[a.panelId]=i)}return o}function $e(e,t,n){const o=n[0];if(!o)return;const r=e.panels.find(a=>a.element===t);if(!r||!r.onResize)return;const i=J({group:e});r.onResize({asPercentage:L(o.inlineSize/i*100),inPixels:o.inlineSize},r.id)}function Y({layout:e,panelConstraints:t}){const o=[...Object.values(e)],r=o.reduce((s,l)=>s+l,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(s=>`${s}%`).join(", ")}`);if(!R(r,100)&&o.length>0)for(let s=0;s<t.length;s++){const l=o[s];M(l!=null,`No layout data found for index ${s}`);const c=100/r*l;o[s]=c}let i=0;for(let s=0;s<t.length;s++){const l=o[s];M(l!=null,`No layout data found for index ${s}`);const c=D({panelConstraints:t[s],size:l});l!=c&&(i+=l-c,o[s]=c)}if(!R(i,0))for(let s=0;s<t.length;s++){const l=o[s];M(l!=null,`No layout data found for index ${s}`);const c=l+i,u=D({panelConstraints:t[s],size:c});if(l!==u&&(i-=u-l,o[s]=u,R(i,0)))break}const a=Object.keys(e);return o.reduce((s,l,c)=>(s[a[c]]=l,s),{})}function je(e){let t=!1;const n=new ResizeObserver(l=>{for(const c of l){const{borderBoxSize:u,target:d}=c;d===e.element?t&&G(h=>{const v=h.mountedGroups.get(e);if(v){const m=re(e),f=v.layout,g=Y({layout:f,panelConstraints:m});return{mountedGroups:new Map(h.mountedGroups).set(e,{derivedPanelConstraints:m,layout:g})}}return h}):$e(e,d,u)}});n.observe(e.element),e.panels.forEach(l=>{l.onResize&&n.observe(l.element)});const o=re(e),r=e.panels.map(({id:l})=>l).join(","),i=e.inMemoryLayouts[r]??e.defaultLayout??_e(o),a=Y({layout:i,panelConstraints:o}),s=G(l=>({mountedGroups:new Map(l.mountedGroups).set(e,{derivedPanelConstraints:o,layout:a})}));return t=!0,s.mountedGroups.size===1&&(window.addEventListener("pointerdown",le),window.addEventListener("pointerleave",W),window.addEventListener("pointermove",W),window.addEventListener("pointerup",ce)),function(){const c=G(u=>{const d=new Map(u.mountedGroups);return d.delete(e),{mountedGroups:d}});t=!1,c.mountedGroups.size===0&&(window.removeEventListener("pointerdown",le),window.removeEventListener("pointerleave",W),window.removeEventListener("pointermove",W),window.removeEventListener("pointerup",ce)),n.disconnect()}}function ee(e){const t=p.useId();return`${e??t}`}const _=typeof window<"u"?p.useLayoutEffect:p.useEffect;function te(e){const t=p.useRef(e);return _(()=>{t.current=e},[e]),p.useCallback(n=>t.current?.(n),[t])}function ne(...e){return te(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}const me="--react-resizable-panels--panel--pointer-events";function ve(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 ge=p.createContext(null);function Fe({groupId:e}){const t=()=>{const{mountedGroups:n}=I();for(const[o,{derivedPanelConstraints:r,layout:i}]of n)if(o.id===e)return{derivedPanelConstraints:r,group:o,layout:i};throw Error(`Group ${e} not found`)};return{getLayout(){const{layout:n}=t();return n},setLayout(n){const{derivedPanelConstraints:o,group:r,layout:i}=t(),a=Y({layout:n,panelConstraints:o});return Q(i,a)||G(s=>({mountedGroups:new Map(s.mountedGroups).set(r,{derivedPanelConstraints:o,layout:a})})),a}}}function He(e,t){const n=p.useRef({getLayout:()=>({}),setLayout:Ee});p.useImperativeHandle(t,()=>n.current,[]),_(()=>{Object.assign(n.current,Fe({groupId:e}))})}function We({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:r,elementRef:i,groupRef:a,id:s,onLayoutChange:l,orientation:c="horizontal",style:u}){const d=p.useRef({}),h=te(S=>{Q(d.current,S)||(d.current=S,l?.(S))}),v=ee(s),[m,f]=p.useState(!1),[g,y]=p.useState(null),z=p.useRef({}),[b,x]=p.useState(n??{}),[P,O]=p.useState([]),[k,ie]=p.useState([]),ye=ne(y,i);He(v,a);const Se=p.useMemo(()=>({id:v,orientation:c,registerPanel:S=>(O(w=>K(c,[...w,S])),()=>{O(w=>w.filter(A=>A!==S))}),registerSeparator:S=>(ie(w=>K(c,[...w,S])),()=>{ie(w=>w.filter(A=>A!==S))})}),[v,c]);_(()=>{if(g!==null&&P.length>0){const S={defaultLayout:n,disableCursor:!!o,disabled:!!r,element:g,id:v,inMemoryLayouts:z.current,orientation:c,panels:P,separators:k},w=je(S),U=I().mountedGroups.get(S);U&&(x(U.layout),h?.(U.layout));const xe=T.addListener("interactionStateChange",j=>{switch(j.state){case"active":case"hover":{f(j.hitRegions.some(N=>N.group===S));break}}}),ze=T.addListener("mountedGroupsChange",j=>{const N=j.get(S);N&&N.derivedPanelConstraints.length>0&&(x(N.layout),h?.(N.layout))});return()=>{w(),xe(),ze()}}},[n,o,r,g,v,h,c,P,k]);const se={[me]:m?"none":void 0};for(const S in b){const w=ve(v,S),A=b[S];se[w]=A}return $.jsx(ge.Provider,{value:Se,children:$.jsx("div",{"aria-orientation":c,className:t,"data-group":v,ref:ye,style:{...u,...se,display:"flex",flexDirection:c==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}function Z(e){return`react-resizable-panels:${e}`}function Ue({id:e,layout:t,storage:n}){try{const o=Z(e);n.setItem(o,JSON.stringify(t))}catch(o){console.error(o)}}function Be({groupId:e,storage:t}){const n=p.useSyncExternalStore(Ve,()=>t.getItem(Z(e)),()=>t.getItem(Z(e))),o=p.useMemo(()=>n?JSON.parse(n):null,[n]),r=p.useCallback(i=>Ue({id:e,layout:i,storage:t}),[e,t]);return{defaultLayout:o,onLayoutChange:r}}function Ve(){return function(){}}function Ke(){return p.useState(null)}function qe(){return p.useRef(null)}function oe(){const e=p.useContext(ge);return M(e,"Unexpected"),e}function Xe({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:a}=I();for(const[s,{derivedPanelConstraints:l,layout:c}]of a)if(s.id===e)return{derivedPanelConstraints:l,group:s,layout:c};throw Error(`Group ${e} not found`)},o=()=>{const a=n().derivedPanelConstraints.find(s=>s.panelId===t);if(a!==void 0)return a;throw Error(`Panel constraints not found for Panel ${t}`)},r=()=>{const a=n().group.panels.find(s=>s.id===t);if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)},i=()=>{const a=n().layout[t];if(a!==void 0)return a;throw Error(`Layout not found for Panel ${t}`)};return{collapse:()=>{const{collapsible:a,collapsedSize:s}=o();i()},expand:()=>{const{collapsible:a,collapsedSize:s,minSize:l}=o();i()},getSize:()=>{const{group:a}=n(),s=i(),{element:l}=r(),c=a.orientation==="horizontal"?l.offsetWidth:l.offsetHeight;return{asPercentage:s,inPixels:c}},isCollapsed:()=>{const{collapsible:a,collapsedSize:s}=o(),l=i();return a&&R(s,l)},resize:a=>{if(i()!==a)switch(typeof a){case"number":{const{group:l}=n(),c=J({group:l});L(a/c*100);break}}}}}function Ye(e,t){const{id:n}=oe(),o=p.useRef({collapse:B,expand:B,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:B});p.useImperativeHandle(t,()=>o.current,[]),_(()=>{Object.assign(o.current,Xe({groupId:n,panelId:e}))})}function Ze({children:e,className:t,collapsedSize:n=0,collapsible:o=!1,defaultSize:r,elementRef:i,id:a,maxSize:s="100",minSize:l="0",onResize:c,panelRef:u,style:d}){const h=!!a,v=ee(a),[m,f]=p.useState(null),g=ne(f,i),{id:y,registerPanel:z}=oe(),b=c!==null,x=te(O=>{c?.(O,a)});_(()=>{if(m!==null)return z({element:m,id:v,idIsStable:h,onResize:b?x:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:r,maxSize:s,minSize:l}})},[n,o,r,m,b,v,h,s,l,x,z]),Ye(v,u);const P=ve(y,v);return $.jsx("div",{"data-panel":v,ref:g,style:{flexBasis:0,flexGrow:`var(${P}, 1)`,flexShrink:1,overflow:"hidden",pointerEvents:`var(${me})`},children:$.jsx("div",{className:t,style:{width:"100%",height:"100%",...d},children:e})})}function Je(){return p.useState(null)}function Qe(){return p.useRef(null)}function et({children:e,className:t,elementRef:n,id:o,style:r}){const i=ee(o),[a,s]=p.useState(null),[l,c]=p.useState("inactive"),u=ne(s,n),{orientation:d,registerSeparator:h}=oe(),v=d==="horizontal"?"vertical":"horizontal";return _(()=>{if(a!==null){const m={element:a,id:i},f=h(m),g=T.addListener("interactionStateChange",y=>{c(y.state!=="inactive"&&y.hitRegions.some(z=>z.separator===m)?y.state:"inactive")});return()=>{f(),g()}}},[a,i,h]),$.jsx("div",{"aria-orientation":v,children:e,className:t,"data-separator":i,"data-separator-state":l,ref:u,role:"separator",style:{flexBasis:"auto",...r,flexGrow:0,flexShrink:0},tabIndex:0})}exports.Group=We;exports.Panel=Ze;exports.Separator=et;exports.useDefaultLayout=Be;exports.useGroupCallbackRef=Ke;exports.useGroupRef=qe;exports.usePanelCallbackRef=Je;exports.usePanelRef=Qe;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react/jsx-runtime"),g=require("react");function x(e,t="Assertion error"){if(!e)throw Error(t)}function se(e,t){return t.sort(e==="horizontal"?Ge:Ie)}function Ge(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function Ie(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function ye(e){const{element:t,orientation:n,panels:o,separators:r}=e,i=se(n,Array.from(t.children).filter(l=>l instanceof HTMLElement).map(l=>({element:l}))).map(({element:l})=>l),u=[];let s,a;for(const l of i){const c=o.find(f=>f.element===l);if(c){if(s){const f=s.element.getBoundingClientRect(),m=l.getBoundingClientRect();u.push({group:e,panels:[s,c],separator:a,rect:n==="horizontal"?new DOMRect(f.right,m.top,m.left-f.right,m.height):new DOMRect(m.left,f.bottom,m.width,m.top-f.bottom)})}s=c,a=void 0}else{const f=r.find(m=>m.element===l);f?a=f:(s=void 0,a=void 0)}}return u}function ke(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function Oe(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function Te(e){return e/100*window.innerHeight}function De(e){return e/100*window.innerWidth}function Ae(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 Y({groupSize:e,panelElement:t,styleProp:n}){let o;const[r,i]=Ae(n);switch(i){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=Oe(t,r);break}case"em":{o=ke(t,r);break}case"vh":{o=Te(r);break}case"vw":{o=De(r);break}}return o}function M(e){return parseFloat(e.toFixed(3))}function ae({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,r)=>(o+=t==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,o),0)}function de(e){const{panels:t}=e,n=ae({group:e});return t.map(o=>{const{element:r,panelConstraints:i}=o;let u=0;if(i.collapsedSize){const c=Y({groupSize:n,panelElement:r,styleProp:i.collapsedSize});u=M(c/n*100)}let s;if(i.defaultSize){const c=Y({groupSize:n,panelElement:r,styleProp:i.defaultSize});s=M(c/n*100)}let a=0;if(i.minSize){const c=Y({groupSize:n,panelElement:r,styleProp:i.minSize});a=M(c/n*100)}let l=100;if(i.maxSize){const c=Y({groupSize:n,panelElement:r,styleProp:i.maxSize});l=M(c/n*100)}return{collapsedSize:u,collapsible:i.collapsible===!0,defaultSize:s,minSize:a,maxSize:l,panelId:o.id}})}class $e{#e={};addListener(t,n){const o=this.#e[t];return o===void 0?this.#e[t]=[n]:o.includes(n)||o.push(n),()=>{this.removeListener(t,n)}}emit(t,n){const o=this.#e[t];if(o!==void 0)if(o.length===1)o[0].call(null,n);else{let r=!1,i=null;const u=Array.from(o);for(let s=0;s<u.length;s++){const a=u[s];try{a.call(null,n)}catch(l){i===null&&(r=!0,i=l)}}if(r)throw i}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const r=o.indexOf(n);r>=0&&o.splice(r,1)}}}function P(e,t,n=0){return Math.abs(M(e)-M(t))<=n}let R={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const D=new $e;function k(){return R}function E(e){const t=typeof e=="function"?e(R):e;if(R===t)return R;const n=R;return R={...R,...t},t.cursorFlags!==void 0&&D.emit("cursorFlagsChange",R.cursorFlags),t.interactionState!==void 0&&D.emit("interactionStateChange",R.interactionState),t.mountedGroups!==void 0&&(R.mountedGroups.forEach((o,r)=>{o.derivedPanelConstraints.forEach(i=>{if(i.collapsible){const{layout:u}=n.mountedGroups.get(r)??{};if(u){const s=P(i.collapsedSize,o.layout[i.panelId]),a=P(i.collapsedSize,u[i.panelId]);s&&!a&&(r.inMemoryLastExpandedPanelSizes[i.panelId]=u[i.panelId])}}})}),D.emit("mountedGroupsChange",R.mountedGroups)),R}function Ne(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 H(e,t){return P(e,t)?0:e>t?1:-1}function j({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:r=100,minSize:i=0}=e;if(H(t,i)<0)if(o){const u=(n+i)/2;H(t,u)<0?t=n:t=i}else t=i;return t=Math.min(r,t),t=M(t),t}function W({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:r,trigger:i}){if(P(e,0))return t;const u=Object.values(t),s=Object.values(r),a=[...u],[l,c]=o;x(l!=null,"Invalid first pivot index"),x(c!=null,"Invalid second pivot index");let f=0;if(i==="keyboard"){{const p=e<0?c:l,d=n[p];x(d,`Panel constraints not found for index ${p}`);const{collapsedSize:h=0,collapsible:y,minSize:b=0}=d;if(y){const z=u[p];if(x(z!=null,`Previous layout not found for panel index ${p}`),P(z,h)){const S=b-z;H(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}{const p=e<0?l:c,d=n[p];x(d,`No panel constraints found for index ${p}`);const{collapsedSize:h=0,collapsible:y,minSize:b=0}=d;if(y){const z=u[p];if(x(z!=null,`Previous layout not found for panel index ${p}`),P(z,b)){const S=z-h;H(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}}{const p=e<0?1:-1;let d=e<0?c:l,h=0;for(;;){const b=u[d];x(b!=null,`Previous layout not found for panel index ${d}`);const S=j({panelConstraints:n[d],size:100})-b;if(h+=S,d+=p,d<0||d>=n.length)break}const y=Math.min(Math.abs(e),Math.abs(h));e=e<0?0-y:y}{let d=e<0?l:c;for(;d>=0&&d<n.length;){const h=Math.abs(e)-Math.abs(f),y=u[d];x(y!=null,`Previous layout not found for panel index ${d}`);const b=y-h,z=j({panelConstraints:n[d],size:b});if(!P(y,z)&&(f+=y-z,a[d]=z,f.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if(Ne(s,a))return r;{const p=e<0?c:l,d=u[p];x(d!=null,`Previous layout not found for panel index ${p}`);const h=d+f,y=j({panelConstraints:n[p],size:h});if(a[p]=y,!P(y,h)){let b=h-y,S=e<0?c:l;for(;S>=0&&S<n.length;){const L=a[S];x(L!=null,`Previous layout not found for panel index ${S}`);const G=L+b,O=j({panelConstraints:n[S],size:G});if(P(L,O)||(b-=O-L,a[S]=O),P(b,0))break;e>0?S--:S++}}}const m=Object.values(a).reduce((p,d)=>d+p,0);if(!P(m,100,.1))return r;const v=Object.keys(r);return a.reduce((p,d,h)=>(p[v[h]]=d,p),{})}function Q(e){const t=e.parentElement;x(t,"Parent group element not found");const{mountedGroups:n}=k();for(const[o]of n)if(o.element===t)return o;throw Error("Could not find parent Group for separator element")}function U(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(H(e[n],t[n])!==0)return!1;return!0}function A({layout:e,panelConstraints:t}){const o=[...Object.values(e)],r=o.reduce((s,a)=>s+a,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(s=>`${s}%`).join(", ")}`);if(!P(r,100)&&o.length>0)for(let s=0;s<t.length;s++){const a=o[s];x(a!=null,`No layout data found for index ${s}`);const l=100/r*a;o[s]=l}let i=0;for(let s=0;s<t.length;s++){const a=o[s];x(a!=null,`No layout data found for index ${s}`);const l=j({panelConstraints:t[s],size:a});a!=l&&(i+=a-l,o[s]=l)}if(!P(i,0))for(let s=0;s<t.length;s++){const a=o[s];x(a!=null,`No layout data found for index ${s}`);const l=a+i,c=j({panelConstraints:t[s],size:l});if(a!==c&&(i-=c-a,o[s]=c,P(i,0)))break}const u=Object.keys(e);return o.reduce((s,a,l)=>(s[u[l]]=a,s),{})}function ge({groupId:e}){const t=()=>{const{mountedGroups:n}=k();for(const[o,r]of n)if(o.id===e)return{group:o,...r};throw Error(`Group ${e} not found`)};return{getLayout(){const{layout:n}=t();return n},setLayout(n){const{derivedPanelConstraints:o,group:r,layout:i,separatorToPanels:u}=t(),s=A({layout:n,panelConstraints:o});return U(i,s)||E(a=>({mountedGroups:new Map(a.mountedGroups).set(r,{derivedPanelConstraints:o,layout:s,separatorToPanels:u})})),s}}}function Se(e){const{mountedGroups:t}=k(),n=t.get(e);return x(n,`Mounted Group ${e.id} not found`),n}function T(e,t){const n=Q(e),o=Se(n),r=n.separators.find(f=>f.element===e);x(r,"Matching separator not found");const i=o.separatorToPanels.get(r);x(i,"Matching panels not found");const u=i.map(f=>n.panels.indexOf(f)),a=ge({groupId:n.id}).getLayout(),l=W({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:u,prevLayout:a,trigger:"keyboard"}),c=A({layout:l,panelConstraints:o.derivedPanelConstraints});U(a,c)||E(f=>({mountedGroups:new Map(f.mountedGroups).set(n,{derivedPanelConstraints:o.derivedPanelConstraints,layout:c,separatorToPanels:o.separatorToPanels})}))}function pe(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=Q(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=Q(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:u}=Se(o),s=o.separators.find(f=>f.element===t);x(s,"Matching separator not found");const a=u.get(s);x(a,"Matching panels not found");const l=a[0],c=r.find(f=>f.panelId===l.id);if(x(c,"Panel metadata not found"),c.collapsible){const f=i[l.id],m=c.collapsedSize===f?o.inMemoryLastExpandedPanelSizes[l.id]??c.minSize:c.collapsedSize;T(t,m-f)}break}case"F6":{e.preventDefault();const r=Q(t).separators.map(a=>a.element),i=Array.from(r).findIndex(a=>a===e.currentTarget);x(i!==null,"Index not found");const u=e.shiftKey?i>0?i-1:r.length-1:i+1<r.length?i+1:0;r[u].focus();break}case"Home":{e.preventDefault(),T(t,-100);break}}}const je=e=>e,ne=()=>{},xe=1,ze=2,be=4,we=8,me={coarse:10,precise:5};function _e(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 Fe(e,t,n){let o,r={x:1/0,y:1/0};for(const i of t){const u=_e(n,i.rect);switch(e){case"horizontal":{u.x<=r.x&&(o=i,r=u);break}case"vertical":{u.y<=r.y&&(o=i,r=u);break}}}return o?{distance:r,hitRegion:o}:void 0}let Z;function He(){return Z===void 0&&(typeof matchMedia=="function"?Z=!!matchMedia("(pointer:coarse)").matches:Z=!1),Z}function Le(e,t){const n=[];return t.forEach((o,r)=>{if(r.disabled)return;const i=He()?me.coarse:me.precise,u=ye(r),s=Fe(r.orientation,u,{x:e.clientX,y:e.clientY});s&&s.distance.x<=i&&s.distance.y<=i&&n.push(s.hitRegion)}),n}function he(e){if(e.defaultPrevented)return;const{mountedGroups:t}=k(),n=Le(e,t),o=new Set,r=new Set,i=new Set,u=new Map;n.forEach(s=>{o.add(s.group),s.panels.forEach(l=>{r.add(l)}),s.separator&&i.add(s.separator);const a=t.get(s.group);a&&u.set(s.group,a.layout)}),E({interactionState:{hitRegions:n,initialLayoutMap:u,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function We({cursorFlags:e,groups:t,state:n}){let o=0,r=0;switch(n){case"active":case"hover":t.forEach(i=>{if(!i.disableCursor)switch(i.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(o===0&&r===0)return null;switch(n){case"active":{const i=(e&xe)!==0,u=(e&ze)!==0,s=(e&be)!==0,a=(e&we)!==0;if(e){if(i)return s?"se-resize":a?"ne-resize":"e-resize";if(u)return s?"sw-resize":a?"nw-resize":"w-resize";if(s)return"s-resize";if(a)return"n-resize"}break}}return o>0&&r>0?"move":o>0?"ew-resize":"ns-resize"}let oe=null,I;function ie(){I===void 0&&(I=new CSSStyleSheet,document.adoptedStyleSheets=[I]);const{cursorFlags:e,interactionState:t}=k();switch(t.state){case"active":case"hover":{const n=We({cursorFlags:e,groups:t.hitRegions.map(o=>o.group),state:t.state});if(oe===n)return;oe=n,n?I.cssRules.length===0?I.insertRule(`*{cursor: ${n} !important;}`):I.replaceSync(`*{cursor: ${n} !important;}`):I.cssRules.length===1&&I.deleteRule(0);break}case"inactive":{oe=null,I.cssRules.length===1&&I.deleteRule(0);break}}}function J(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=k();switch(t.state){case"active":{if(e.type!=="pointerleave"&&e.buttons===0){E(i=>i.interactionState.state==="inactive"?i:{cursorFlags:0,interactionState:{state:"inactive"}});return}let o=0;const r=new Map(n);t.hitRegions.forEach(i=>{const{disableCursor:u,element:s,orientation:a,panels:l}=i.group;let c=0;t.state==="active"&&(a==="horizontal"?c=(e.clientX-t.pointerDownAtPoint.x)/s.offsetWidth*100:c=(e.clientY-t.pointerDownAtPoint.y)/s.offsetHeight*100);const f=t.initialLayoutMap.get(i.group),{derivedPanelConstraints:m,layout:v,separatorToPanels:p}=n.get(i.group)??{};if(m&&f&&v&&p){const d=W({delta:c,initialLayout:f,panelConstraints:m,pivotIndices:i.panels.map(h=>l.indexOf(h)),prevLayout:v,trigger:"mouse-or-touch"});if(U(d,v)){if(c!==0&&!u)switch(a){case"horizontal":{o|=c<0?xe:ze;break}case"vertical":{o|=c<0?be:we;break}}}else{r.set(i.group,{derivedPanelConstraints:m,layout:d,separatorToPanels:p});const h=i.group.panels.map(({id:y})=>y).join(",");i.group.inMemoryLayouts[h]=d}}}),E({cursorFlags:o,mountedGroups:r}),ie();break}default:{const o=Le(e,n);o.length===0?t.state!=="inactive"&&E({interactionState:{state:"inactive"}}):E({interactionState:{hitRegions:o,state:"hover"}}),ie();break}}}function ve(e){if(e.defaultPrevented)return;e.preventDefault();const{interactionState:t}=k();switch(t.state){case"active":E({cursorFlags:0,interactionState:{state:"inactive"}}),ie()}}function Ue(e){let t=0,n=0;const o={};for(const i of e)if(i.defaultSize!==void 0){t++;const u=M(i.defaultSize);n+=u,o[i.panelId]=u}else o[i.panelId]=void 0;const r=e.length-t;if(r!==0){const i=M((100-n)/r);for(const u of e)u.defaultSize===void 0&&(o[u.panelId]=i)}return o}function Be(e,t,n){const o=n[0];if(!o)return;const r=e.panels.find(u=>u.element===t);if(!r||!r.onResize)return;const i=ae({group:e});r.onResize({asPercentage:M(o.inlineSize/i*100),inPixels:o.inlineSize},r.id)}function Ke(e){let t=!0;x(e.separators.length===0||e.separators.length<e.panels.length,"Invalid Group configuration; too many Separator components");const n=new Set,o=new Set,r=new ResizeObserver(f=>{for(const m of f){const{borderBoxSize:v,target:p}=m;p===e.element?t&&E(d=>{const h=d.mountedGroups.get(e);if(h){const y=de(e),b=h.layout,z=A({layout:b,panelConstraints:y});return{mountedGroups:new Map(d.mountedGroups).set(e,{derivedPanelConstraints:y,layout:z,separatorToPanels:h.separatorToPanels})}}return d}):Be(e,p,v)}});r.observe(e.element),e.panels.forEach(f=>{x(!n.has(f.id),`Panel ids must be unique; id "${f.id}" was used more than once`),n.add(f.id),f.onResize&&r.observe(f.element)});const i=de(e),u=e.panels.map(({id:f})=>f).join(","),s=e.inMemoryLayouts[u]??e.defaultLayout??Ue(i),a=A({layout:s,panelConstraints:i}),l=ye(e),c=E(f=>({mountedGroups:new Map(f.mountedGroups).set(e,{derivedPanelConstraints:i,layout:a,separatorToPanels:new Map(l.filter(m=>m.separator).map(m=>[m.separator,m.panels]))})}));return e.separators.forEach(f=>{x(!o.has(f.id),`Separator ids must be unique; id "${f.id}" was used more than once`),o.add(f.id),f.element.addEventListener("keydown",pe)}),c.mountedGroups.size===1&&(window.addEventListener("pointerdown",he),window.addEventListener("pointerleave",J),window.addEventListener("pointermove",J),window.addEventListener("pointerup",ve)),function(){t=!1;const m=E(v=>{const p=new Map(v.mountedGroups);return p.delete(e),{mountedGroups:p}});e.separators.forEach(v=>{v.element.removeEventListener("keydown",pe)}),m.mountedGroups.size===0&&(window.removeEventListener("pointerdown",he),window.removeEventListener("pointerleave",J),window.removeEventListener("pointermove",J),window.removeEventListener("pointerup",ve)),r.disconnect()}}function le(e){const t=g.useId();return`${e??t}`}const _=typeof window<"u"?g.useLayoutEffect:g.useEffect;function ue(e){const t=g.useRef(e);return _(()=>{t.current=e},[e]),g.useCallback(n=>t.current?.(n),[t])}function ce(...e){return ue(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}const Pe="--react-resizable-panels--panel--pointer-events";function Re(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 Ee=g.createContext(null);function Ve(e,t){const n=g.useRef({getLayout:()=>({}),setLayout:je});g.useImperativeHandle(t,()=>n.current,[]),_(()=>{Object.assign(n.current,ge({groupId:e}))})}function qe({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:r,elementRef:i,groupRef:u,id:s,onLayoutChange:a,orientation:l="horizontal",style:c}){const f=g.useRef({}),m=ue(w=>{U(f.current,w)||(f.current=w,a?.(w))}),v=le(s),[p,d]=g.useState(!1),[h,y]=g.useState(null),[b,z]=g.useState(n??{}),[S,L]=g.useState([]),[G,O]=g.useState([]),ee=g.useRef({}),B=g.useRef({}),K=ce(y,i);Ve(v,u);const V=g.useMemo(()=>({id:v,orientation:l,registerPanel:w=>(L(C=>se(l,[...C,w])),()=>{L(C=>C.filter($=>$!==w))}),registerSeparator:w=>(O(C=>se(l,[...C,w])),()=>{O(C=>C.filter($=>$!==w))})}),[v,l]);_(()=>{if(h!==null&&S.length>0){const w={defaultLayout:n,disableCursor:!!o,disabled:!!r,element:h,id:v,inMemoryLastExpandedPanelSizes:ee.current,inMemoryLayouts:B.current,orientation:l,panels:S,separators:G},C=Ke(w),te=k().mountedGroups.get(w);te&&(z(te.layout),m?.(te.layout));const Ce=D.addListener("interactionStateChange",X=>{switch(X.state){case"active":case"hover":{d(X.hitRegions.some(N=>N.group===w));break}}}),Me=D.addListener("mountedGroupsChange",X=>{const N=X.get(w);N&&N.derivedPanelConstraints.length>0&&(z(N.layout),m?.(N.layout))});return()=>{C(),Ce(),Me()}}},[n,o,r,h,v,m,l,S,G]);const q={[Pe]:p?"none":void 0};for(const w in b){const C=Re(v,w),$=b[w];q[C]=$}return F.jsx(Ee.Provider,{value:V,children:F.jsx("div",{"aria-orientation":l,className:t,"data-group":!0,"data-testid":s??void 0,ref:K,style:{...c,...q,display:"flex",flexDirection:l==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}function re(e){return`react-resizable-panels:${e}`}function Xe({id:e,layout:t,storage:n}){try{const o=re(e);n.setItem(o,JSON.stringify(t))}catch(o){console.error(o)}}function Ye({groupId:e,storage:t}){const n=g.useSyncExternalStore(Ze,()=>t.getItem(re(e)),()=>t.getItem(re(e))),o=g.useMemo(()=>n?JSON.parse(n):null,[n]),r=g.useCallback(i=>Xe({id:e,layout:i,storage:t}),[e,t]);return{defaultLayout:o,onLayoutChange:r}}function Ze(){return function(){}}function Je(){return g.useState(null)}function Qe(){return g.useRef(null)}function fe(){const e=g.useContext(Ee);return x(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function et({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:s}=k();for(const[a,{derivedPanelConstraints:l,layout:c,separatorToPanels:f}]of s)if(a.id===e)return{derivedPanelConstraints:l,group:a,layout:c,separatorToPanels:f};throw Error(`Group ${e} not found`)},o=()=>{const s=n().derivedPanelConstraints.find(a=>a.panelId===t);if(s!==void 0)return s;throw Error(`Panel constraints not found for Panel ${t}`)},r=()=>{const s=n().group.panels.find(a=>a.id===t);if(s!==void 0)return s;throw Error(`Layout not found for Panel ${t}`)},i=()=>{const s=n().layout[t];if(s!==void 0)return s;throw Error(`Layout not found for Panel ${t}`)},u=s=>{const a=i();if(s===a)return;const{derivedPanelConstraints:l,group:c,layout:f,separatorToPanels:m}=n(),v=c.panels.findIndex(y=>y.id===t),p=v===c.panels.length-1,d=W({delta:p?a-s:s-a,initialLayout:f,panelConstraints:l,pivotIndices:p?[v-1,v]:[v,v+1],prevLayout:f,trigger:"imperative-api"}),h=A({layout:d,panelConstraints:l});U(f,h)||E(y=>({mountedGroups:new Map(y.mountedGroups).set(c,{derivedPanelConstraints:l,layout:h,separatorToPanels:m})}))};return{collapse:()=>{const{collapsible:s,collapsedSize:a}=o(),l=i();s&&l!==a&&u(a)},expand:()=>{const{collapsible:s,collapsedSize:a,minSize:l}=o(),c=i();s&&c===a&&u(l)},getSize:()=>{const{group:s}=n(),a=i(),{element:l}=r(),c=s.orientation==="horizontal"?l.offsetWidth:l.offsetHeight;return{asPercentage:a,inPixels:c}},isCollapsed:()=>{const{collapsible:s,collapsedSize:a}=o(),l=i();return s&&P(a,l)},resize:s=>{if(i()!==s){let l;switch(typeof s){case"number":{const{group:c}=n(),f=ae({group:c});l=M(s/f*100);break}case"string":{l=parseFloat(s);break}}u(l)}}}}function tt(e,t){const{id:n}=fe(),o=g.useRef({collapse:ne,expand:ne,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:ne});g.useImperativeHandle(t,()=>o.current,[]),_(()=>{Object.assign(o.current,et({groupId:n,panelId:e}))})}function nt({children:e,className:t,collapsedSize:n=0,collapsible:o=!1,defaultSize:r,elementRef:i,id:u,maxSize:s="100",minSize:a="0",onResize:l,panelRef:c,style:f}){const m=!!u,v=le(u),[p,d]=g.useState(null),h=ce(d,i),{id:y,registerPanel:b}=fe(),z=l!==null,S=ue(G=>{l?.(G,u)});_(()=>{if(p!==null)return b({element:p,id:v,idIsStable:m,onResize:z?S:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:r,maxSize:s,minSize:a}})},[n,o,r,p,z,v,m,s,a,S,b]),tt(v,c);const L=Re(y,v);return F.jsx("div",{"data-panel":!0,"data-testid":u??void 0,ref:h,style:{flexBasis:0,flexGrow:`var(${L}, 1)`,flexShrink:1,overflow:"hidden",pointerEvents:`var(${Pe})`},children:F.jsx("div",{className:t,style:{width:"100%",height:"100%",...f},children:e})})}function ot(){return g.useState(null)}function st(){return g.useRef(null)}function it({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let r,i;const u=e[n],s=t.find(a=>a.panelId===n);if(s){const a=s.maxSize,l=i=s.collapsible?s.collapsedSize:s.minSize,c=[o,o+1];i=A({layout:W({delta:l-u,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n],r=A({layout:W({delta:a-u,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n]}return{valueMax:r,valueMin:i,valueNow:u}}function rt({children:e,className:t,elementRef:n,id:o,style:r}){const i=le(o),[u,s]=g.useState({}),[a,l]=g.useState("inactive"),[c,f]=g.useState(null),m=ce(f,n),{id:v,orientation:p,registerSeparator:d}=fe(),h=p==="horizontal"?"vertical":"horizontal";return _(()=>{if(c!==null){const y={element:c,id:i},b=d(y),z=D.addListener("interactionStateChange",L=>{l(L.state!=="inactive"&&L.hitRegions.some(G=>G.separator===y)?L.state:"inactive")}),S=D.addListener("mountedGroupsChange",L=>{L.forEach(({derivedPanelConstraints:G,layout:O,separatorToPanels:ee},B)=>{if(B.id===v){const K=ee.get(y);if(K){const V=K[0],q=B.panels.indexOf(V);s(it({layout:O,panelConstraints:G,panelId:V.id,panelIndex:q}))}}})});return()=>{z(),S(),b()}}},[c,v,i,d]),F.jsx("div",{"aria-orientation":h,"aria-valuemax":u.valueMax,"aria-valuemin":u.valueMin,"aria-valuenow":u.valueNow,children:e,className:t,"data-separator":a,"data-testid":o??void 0,ref:m,role:"separator",style:{flexBasis:"auto",...r,flexGrow:0,flexShrink:0},tabIndex:0})}exports.Group=qe;exports.Panel=nt;exports.Separator=rt;exports.useDefaultLayout=Ye;exports.useGroupCallbackRef=Je;exports.useGroupRef=Qe;exports.usePanelCallbackRef=ot;exports.usePanelRef=st;
2
2
  //# sourceMappingURL=react-resizable-panels.cjs.map