react-resizable-panels 4.0.0-alpha.2 → 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.
@@ -1,2 +1,2 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react/jsx-runtime"),h=require("react");function ie(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:s}=e,i=ie(n,Array.from(t.children).filter(u=>u instanceof HTMLElement).map(u=>({element:u}))).map(({element:u})=>u),a=[];let r,l;for(const u of i){const c=o.find(f=>f.element===u);if(c){if(r){const f=r.element.getBoundingClientRect(),m=u.getBoundingClientRect();a.push({group:e,panels:[r,c],separator:l,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)})}r=c,l=void 0}else{const f=s.find(m=>m.element===u);f?l=f:(r=void 0,l=void 0)}}return a}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 De(e){return e/100*window.innerHeight}function Te(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 q({groupSize:e,panelElement:t,styleProp:n}){let o;const[s,i]=Ae(n);switch(i){case"%":{o=s/100*e;break}case"px":{o=s;break}case"rem":{o=Oe(t,s);break}case"em":{o=ke(t,s);break}case"vh":{o=De(s);break}case"vw":{o=Te(s);break}}return o}function C(e){return parseFloat(e.toFixed(3))}function ae({group:e}){const{orientation:t,panels:n}=e;return n.reduce((o,s)=>(o+=t==="horizontal"?s.element.offsetWidth:s.element.offsetHeight,o),0)}function de(e){const{panels:t}=e,n=ae({group:e});return t.map(o=>{const{element:s,panelConstraints:i}=o;let a=0;if(i.collapsedSize){const c=q({groupSize:n,panelElement:s,styleProp:i.collapsedSize});a=C(c/n*100)}let r;if(i.defaultSize){const c=q({groupSize:n,panelElement:s,styleProp:i.defaultSize});r=C(c/n*100)}let l=0;if(i.minSize){const c=q({groupSize:n,panelElement:s,styleProp:i.minSize});l=C(c/n*100)}let u=100;if(i.maxSize){const c=q({groupSize:n,panelElement:s,styleProp:i.maxSize});u=C(c/n*100)}return{collapsedSize:a,collapsible:i.collapsible===!0,defaultSize:r,minSize:l,maxSize:u,panelId:o.id}})}function x(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}class Ne{#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 s=!1,i=null;const a=Array.from(o);for(let r=0;r<a.length;r++){const l=a[r];try{l.call(null,n)}catch(u){i===null&&(s=!0,i=u)}}if(s)throw i}}removeAllListeners(){this.#e={}}removeListener(t,n){const o=this.#e[t];if(o!==void 0){const s=o.indexOf(n);s>=0&&o.splice(s,1)}}}function P(e,t,n=0){return Math.abs(C(e)-C(t))<=n}let R={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map};const T=new Ne;function k(){return R}function M(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&&T.emit("cursorFlagsChange",R.cursorFlags),t.interactionState!==void 0&&T.emit("interactionStateChange",R.interactionState),t.mountedGroups!==void 0&&(R.mountedGroups.forEach((o,s)=>{o.derivedPanelConstraints.forEach(i=>{if(i.collapsible){const{layout:a}=n.mountedGroups.get(s)??{};if(a){const r=P(i.collapsedSize,o.layout[i.panelId]),l=P(i.collapsedSize,a[i.panelId]);r&&!l&&(s.inMemoryLastExpandedPanelSizes[i.panelId]=a[i.panelId])}}})}),T.emit("mountedGroupsChange",R.mountedGroups)),R}function $e(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 $({panelConstraints:e,size:t}){const{collapsedSize:n=0,collapsible:o,maxSize:s=100,minSize:i=0}=e;if(H(t,i)<0)if(o){const a=(n+i)/2;H(t,a)<0?t=n:t=i}else t=i;return t=Math.min(s,t),t=C(t),t}function J({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:s,trigger:i}){if(P(e,0))return t;const a=Object.values(t),r=Object.values(s),l=[...a],[u,c]=o;x(u!=null,"Invalid first pivot index"),x(c!=null,"Invalid second pivot index");let f=0;if(i==="keyboard"){{const p=e<0?c:u,d=n[p];x(d,`Panel constraints not found for index ${p}`);const{collapsedSize:v=0,collapsible:y,minSize:b=0}=d;if(y){const z=a[p];if(x(z!=null,`Previous layout not found for panel index ${p}`),P(z,v)){const S=b-z;H(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}{const p=e<0?u:c,d=n[p];x(d,`No panel constraints found for index ${p}`);const{collapsedSize:v=0,collapsible:y,minSize:b=0}=d;if(y){const z=a[p];if(x(z!=null,`Previous layout not found for panel index ${p}`),P(z,b)){const S=z-v;H(S,Math.abs(e))>0&&(e=e<0?0-S:S)}}}}{const p=e<0?1:-1;let d=e<0?c:u,v=0;for(;;){const b=a[d];x(b!=null,`Previous layout not found for panel index ${d}`);const S=$({panelConstraints:n[d],size:100})-b;if(v+=S,d+=p,d<0||d>=n.length)break}const y=Math.min(Math.abs(e),Math.abs(v));e=e<0?0-y:y}{let d=e<0?u:c;for(;d>=0&&d<n.length;){const v=Math.abs(e)-Math.abs(f),y=a[d];x(y!=null,`Previous layout not found for panel index ${d}`);const b=y-v,z=$({panelConstraints:n[d],size:b});if(!P(y,z)&&(f+=y-z,l[d]=z,f.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?d--:d++}}if($e(r,l))return s;{const p=e<0?c:u,d=a[p];x(d!=null,`Previous layout not found for panel index ${p}`);const v=d+f,y=$({panelConstraints:n[p],size:v});if(l[p]=y,!P(y,v)){let b=v-y,S=e<0?c:u;for(;S>=0&&S<n.length;){const L=l[S];x(L!=null,`Previous layout not found for panel index ${S}`);const G=L+b,O=$({panelConstraints:n[S],size:G});if(P(L,O)||(b-=O-L,l[S]=O),P(b,0))break;e>0?S--:S++}}}const m=Object.values(l).reduce((p,d)=>d+p,0);if(!P(m,100,.1))return s;const g=Object.keys(s);return l.reduce((p,d,v)=>(p[g[v]]=d,p),{})}function Z(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 Q(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 j({layout:e,panelConstraints:t}){const o=[...Object.values(e)],s=o.reduce((r,l)=>r+l,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(r=>`${r}%`).join(", ")}`);if(!P(s,100)&&o.length>0)for(let r=0;r<t.length;r++){const l=o[r];x(l!=null,`No layout data found for index ${r}`);const u=100/s*l;o[r]=u}let i=0;for(let r=0;r<t.length;r++){const l=o[r];x(l!=null,`No layout data found for index ${r}`);const u=$({panelConstraints:t[r],size:l});l!=u&&(i+=l-u,o[r]=u)}if(!P(i,0))for(let r=0;r<t.length;r++){const l=o[r];x(l!=null,`No layout data found for index ${r}`);const u=l+i,c=$({panelConstraints:t[r],size:u});if(l!==c&&(i-=c-l,o[r]=c,P(i,0)))break}const a=Object.keys(e);return o.reduce((r,l,u)=>(r[a[u]]=l,r),{})}function Se({groupId:e}){const t=()=>{const{mountedGroups:n}=k();for(const[o,s]of n)if(o.id===e)return{group:o,...s};throw Error(`Group ${e} not found`)};return{getLayout(){const{layout:n}=t();return n},setLayout(n){const{derivedPanelConstraints:o,group:s,layout:i,separatorToPanels:a}=t(),r=j({layout:n,panelConstraints:o});return Q(i,r)||M(l=>({mountedGroups:new Map(l.mountedGroups).set(s,{derivedPanelConstraints:o,layout:r,separatorToPanels:a})})),r}}}function ge(e){const{mountedGroups:t}=k(),n=t.get(e);return x(n,`Mounted Group ${e.id} not found`),n}function D(e,t){const n=Z(e),o=ge(n),s=n.separators.find(f=>f.element===e);x(s,"Matching separator not found");const i=o.separatorToPanels.get(s);x(i,"Matching panels not found");const a=i.map(f=>n.panels.indexOf(f)),l=Se({groupId:n.id}).getLayout(),u=J({delta:t,initialLayout:l,panelConstraints:o.derivedPanelConstraints,pivotIndices:a,prevLayout:l,trigger:"keyboard"}),c=j({layout:u,panelConstraints:o.derivedPanelConstraints});Q(l,c)||M(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=Z(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&D(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&D(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&D(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&D(t,-5);break}case"End":{e.preventDefault(),D(t,100);break}case"Enter":{e.preventDefault();const o=Z(t),{derivedPanelConstraints:s,layout:i,separatorToPanels:a}=ge(o),r=o.separators.find(f=>f.element===t);x(r,"Matching separator not found");const l=a.get(r);x(l,"Matching panels not found");const u=l[0],c=s.find(f=>f.panelId===u.id);if(x(c,"Panel metadata not found"),c.collapsible){const f=i[u.id],m=c.collapsedSize===f?o.inMemoryLastExpandedPanelSizes[u.id]??c.minSize:c.collapsedSize;D(t,m-f)}break}case"F6":{e.preventDefault();const s=Z(t).separators.map(l=>l.element),i=Array.from(s).findIndex(l=>l===e.currentTarget);x(i!==null,"Index not found");const a=e.shiftKey?i>0?i-1:s.length-1:i+1<s.length?i+1:0;s[a].focus();break}case"Home":{e.preventDefault(),D(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,s={x:1/0,y:1/0};for(const i of t){const a=_e(n,i.rect);switch(e){case"horizontal":{a.x<=s.x&&(o=i,s=a);break}case"vertical":{a.y<=s.y&&(o=i,s=a);break}}}return o?{distance:s,hitRegion:o}:void 0}let X;function He(){return X===void 0&&(typeof matchMedia=="function"?X=!!matchMedia("(pointer:coarse)").matches:X=!1),X}function Le(e,t){const n=[];return t.forEach((o,s)=>{if(s.disabled)return;const i=He()?me.coarse:me.precise,a=ye(s),r=Fe(s.orientation,a,{x:e.clientX,y:e.clientY});r&&r.distance.x<=i&&r.distance.y<=i&&n.push(r.hitRegion)}),n}function he(e){if(e.defaultPrevented)return;const{mountedGroups:t}=k(),n=Le(e,t),o=new Set,s=new Set,i=new Set,a=new Map;n.forEach(r=>{o.add(r.group),r.panels.forEach(u=>{s.add(u)}),r.separator&&i.add(r.separator);const l=t.get(r.group);l&&a.set(r.group,l.layout)}),M({interactionState:{hitRegions:n,initialLayoutMap:a,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),n.length&&e.preventDefault()}function We({cursorFlags:e,groups:t,state:n}){let o=0,s=0;switch(n){case"active":case"hover":t.forEach(i=>{if(!i.disableCursor)switch(i.orientation){case"horizontal":{o++;break}case"vertical":{s++;break}}})}if(o===0&&s===0)return null;switch(n){case"active":{const i=(e&xe)!==0,a=(e&ze)!==0,r=(e&be)!==0,l=(e&we)!==0;if(e){if(i)return r?"se-resize":l?"ne-resize":"e-resize";if(a)return r?"sw-resize":l?"nw-resize":"w-resize";if(r)return"s-resize";if(l)return"n-resize"}break}}return o>0&&s>0?"move":o>0?"ew-resize":"ns-resize"}let oe=null,I;function re(){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 Y(e){if(e.defaultPrevented)return;const{interactionState:t,mountedGroups:n}=k();switch(t.state){case"active":{if(e.type!=="pointerleave"&&e.buttons===0){M(i=>i.interactionState.state==="inactive"?i:{cursorFlags:0,interactionState:{state:"inactive"}});return}let o=0;const s=new Map(n);t.hitRegions.forEach(i=>{const{disableCursor:a,element:r,orientation:l,panels:u}=i.group;let c=0;t.state==="active"&&(l==="horizontal"?c=(e.clientX-t.pointerDownAtPoint.x)/r.offsetWidth*100:c=(e.clientY-t.pointerDownAtPoint.y)/r.offsetHeight*100);const f=t.initialLayoutMap.get(i.group),{derivedPanelConstraints:m,layout:g,separatorToPanels:p}=n.get(i.group)??{};if(m&&f&&g&&p){const d=J({delta:c,initialLayout:f,panelConstraints:m,pivotIndices:i.panels.map(v=>u.indexOf(v)),prevLayout:g,trigger:"mouse-or-touch"});if(Q(d,g)){if(c!==0&&!a)switch(l){case"horizontal":{o|=c<0?xe:ze;break}case"vertical":{o|=c<0?be:we;break}}}else{s.set(i.group,{derivedPanelConstraints:m,layout:d,separatorToPanels:p});const v=i.group.panels.map(({id:y})=>y).join(",");i.group.inMemoryLayouts[v]=d}}}),M({cursorFlags:o,mountedGroups:s}),re();break}default:{const o=Le(e,n);o.length===0?t.state!=="inactive"&&M({interactionState:{state:"inactive"}}):M({interactionState:{hitRegions:o,state:"hover"}}),re();break}}}function ve(e){if(e.defaultPrevented)return;e.preventDefault();const{interactionState:t}=k();switch(t.state){case"active":M({cursorFlags:0,interactionState:{state:"inactive"}}),re()}}function Ue(e){let t=0,n=0;const o={};for(const i of e)if(i.defaultSize!==void 0){t++;const a=C(i.defaultSize);n+=a,o[i.panelId]=a}else o[i.panelId]=void 0;const s=e.length-t;if(s!==0){const i=C((100-n)/s);for(const a of e)a.defaultSize===void 0&&(o[a.panelId]=i)}return o}function Be(e,t,n){const o=n[0];if(!o)return;const s=e.panels.find(a=>a.element===t);if(!s||!s.onResize)return;const i=ae({group:e});s.onResize({asPercentage:C(o.inlineSize/i*100),inPixels:o.inlineSize},s.id)}function Ke(e){let t=!0;const n=new ResizeObserver(u=>{for(const c of u){const{borderBoxSize:f,target:m}=c;m===e.element?t&&M(g=>{const p=g.mountedGroups.get(e);if(p){const d=de(e),v=p.layout,y=j({layout:v,panelConstraints:d});return{mountedGroups:new Map(g.mountedGroups).set(e,{derivedPanelConstraints:d,layout:y,separatorToPanels:p.separatorToPanels})}}return g}):Be(e,m,f)}});n.observe(e.element),e.panels.forEach(u=>{u.onResize&&n.observe(u.element)});const o=de(e),s=e.panels.map(({id:u})=>u).join(","),i=e.inMemoryLayouts[s]??e.defaultLayout??Ue(o),a=j({layout:i,panelConstraints:o}),r=ye(e),l=M(u=>({mountedGroups:new Map(u.mountedGroups).set(e,{derivedPanelConstraints:o,layout:a,separatorToPanels:new Map(r.filter(c=>c.separator).map(c=>[c.separator,c.panels]))})}));return e.separators.forEach(u=>{u.element.addEventListener("keydown",pe)}),l.mountedGroups.size===1&&(window.addEventListener("pointerdown",he),window.addEventListener("pointerleave",Y),window.addEventListener("pointermove",Y),window.addEventListener("pointerup",ve)),function(){t=!1;const c=M(f=>{const m=new Map(f.mountedGroups);return m.delete(e),{mountedGroups:m}});e.separators.forEach(f=>{f.element.removeEventListener("keydown",pe)}),c.mountedGroups.size===0&&(window.removeEventListener("pointerdown",he),window.removeEventListener("pointerleave",Y),window.removeEventListener("pointermove",Y),window.removeEventListener("pointerup",ve)),n.disconnect()}}function le(e){const t=h.useId();return`${e??t}`}const _=typeof window<"u"?h.useLayoutEffect:h.useEffect;function ue(e){const t=h.useRef(e);return _(()=>{t.current=e},[e]),h.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=h.createContext(null);function Ve(e,t){const n=h.useRef({getLayout:()=>({}),setLayout:je});h.useImperativeHandle(t,()=>n.current,[]),_(()=>{Object.assign(n.current,Se({groupId:e}))})}function qe({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:s,elementRef:i,groupRef:a,id:r,onLayoutChange:l,orientation:u="horizontal",style:c}){const f=h.useRef({}),m=ue(w=>{Q(f.current,w)||(f.current=w,l?.(w))}),g=le(r),[p,d]=h.useState(!1),[v,y]=h.useState(null),[b,z]=h.useState(n??{}),[S,L]=h.useState([]),[G,O]=h.useState([]),ee=h.useRef({}),W=h.useRef({}),U=ce(y,i);Ve(g,a);const B=h.useMemo(()=>({id:g,orientation:u,registerPanel:w=>(L(E=>ie(u,[...E,w])),()=>{L(E=>E.filter(A=>A!==w))}),registerSeparator:w=>(O(E=>ie(u,[...E,w])),()=>{O(E=>E.filter(A=>A!==w))})}),[g,u]);_(()=>{if(v!==null&&S.length>0){const w={defaultLayout:n,disableCursor:!!o,disabled:!!s,element:v,id:g,inMemoryLastExpandedPanelSizes:ee.current,inMemoryLayouts:W.current,orientation:u,panels:S,separators:G},E=Ke(w),te=k().mountedGroups.get(w);te&&(z(te.layout),m?.(te.layout));const Ce=T.addListener("interactionStateChange",V=>{switch(V.state){case"active":case"hover":{d(V.hitRegions.some(N=>N.group===w));break}}}),Me=T.addListener("mountedGroupsChange",V=>{const N=V.get(w);N&&N.derivedPanelConstraints.length>0&&(z(N.layout),m?.(N.layout))});return()=>{E(),Ce(),Me()}}},[n,o,s,v,g,m,u,S,G]);const K={[Pe]:p?"none":void 0};for(const w in b){const E=Re(g,w),A=b[w];K[E]=A}return F.jsx(Ee.Provider,{value:B,children:F.jsx("div",{"aria-orientation":u,className:t,"data-group":!0,"data-testid":r??void 0,ref:U,style:{...c,...K,display:"flex",flexDirection:u==="horizontal"?"row":"column",flexWrap:"nowrap"},children:e})})}function se(e){return`react-resizable-panels:${e}`}function Xe({id:e,layout:t,storage:n}){try{const o=se(e);n.setItem(o,JSON.stringify(t))}catch(o){console.error(o)}}function Ye({groupId:e,storage:t}){const n=h.useSyncExternalStore(Ze,()=>t.getItem(se(e)),()=>t.getItem(se(e))),o=h.useMemo(()=>n?JSON.parse(n):null,[n]),s=h.useCallback(i=>Xe({id:e,layout:i,storage:t}),[e,t]);return{defaultLayout:o,onLayoutChange:s}}function Ze(){return function(){}}function Je(){return h.useState(null)}function Qe(){return h.useRef(null)}function fe(){const e=h.useContext(Ee);return x(e,"Unexpected"),e}function et({groupId:e,panelId:t}){const n=()=>{const{mountedGroups:a}=k();for(const[r,{derivedPanelConstraints:l,layout:u}]of a)if(r.id===e)return{derivedPanelConstraints:l,group:r,layout:u};throw Error(`Group ${e} not found`)},o=()=>{const a=n().derivedPanelConstraints.find(r=>r.panelId===t);if(a!==void 0)return a;throw Error(`Panel constraints not found for Panel ${t}`)},s=()=>{const a=n().group.panels.find(r=>r.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:r}=o();i()},expand:()=>{const{collapsible:a,collapsedSize:r,minSize:l}=o();i()},getSize:()=>{const{group:a}=n(),r=i(),{element:l}=s(),u=a.orientation==="horizontal"?l.offsetWidth:l.offsetHeight;return{asPercentage:r,inPixels:u}},isCollapsed:()=>{const{collapsible:a,collapsedSize:r}=o(),l=i();return a&&P(r,l)},resize:a=>{if(i()!==a)switch(typeof a){case"number":{const{group:l}=n(),u=ae({group:l});C(a/u*100);break}}}}}function tt(e,t){const{id:n}=fe(),o=h.useRef({collapse:ne,expand:ne,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:ne});h.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:s,elementRef:i,id:a,maxSize:r="100",minSize:l="0",onResize:u,panelRef:c,style:f}){const m=!!a,g=le(a),[p,d]=h.useState(null),v=ce(d,i),{id:y,registerPanel:b}=fe(),z=u!==null,S=ue(G=>{u?.(G,a)});_(()=>{if(p!==null)return b({element:p,id:g,idIsStable:m,onResize:z?S:void 0,panelConstraints:{collapsedSize:n,collapsible:o,defaultSize:s,maxSize:r,minSize:l}})},[n,o,s,p,z,g,m,r,l,S,b]),tt(g,c);const L=Re(y,g);return F.jsx("div",{"data-panel":!0,"data-testid":a??void 0,ref:v,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 h.useState(null)}function it(){return h.useRef(null)}function rt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let s,i;const a=e[n],r=t.find(l=>l.panelId===n);if(r){const l=r.maxSize,u=i=r.collapsible?r.collapsedSize:r.minSize,c=[o,o+1];i=j({layout:J({delta:u-a,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n],s=j({layout:J({delta:l-a,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[n]}return{valueMax:s,valueMin:i,valueNow:a}}function st({children:e,className:t,elementRef:n,id:o,style:s}){const i=le(o),[a,r]=h.useState({}),[l,u]=h.useState("inactive"),[c,f]=h.useState(null),m=ce(f,n),{id:g,orientation:p,registerSeparator:d}=fe(),v=p==="horizontal"?"vertical":"horizontal";return _(()=>{if(c!==null){const y={element:c,id:i},b=d(y),z=T.addListener("interactionStateChange",L=>{u(L.state!=="inactive"&&L.hitRegions.some(G=>G.separator===y)?L.state:"inactive")}),S=T.addListener("mountedGroupsChange",L=>{L.forEach(({derivedPanelConstraints:G,layout:O,separatorToPanels:ee},W)=>{if(W.id===g){const U=ee.get(y);if(U){const B=U[0],K=W.panels.indexOf(B);r(rt({layout:O,panelConstraints:G,panelId:B.id,panelIndex:K}))}}})});return()=>{z(),S(),b()}}},[c,g,i,d]),F.jsx("div",{"aria-orientation":v,"aria-valuemax":a.valueMax,"aria-valuemin":a.valueMin,"aria-valuenow":a.valueNow,children:e,className:t,"data-separator":l,"data-testid":o??void 0,ref:m,role:"separator",style:{flexBasis:"auto",...s,flexGrow:0,flexShrink:0},tabIndex:0})}exports.Group=qe;exports.Panel=nt;exports.Separator=st;exports.useDefaultLayout=Ye;exports.useGroupCallbackRef=Je;exports.useGroupRef=Qe;exports.usePanelCallbackRef=ot;exports.usePanelRef=it;
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