react-resizable-panels 4.7.1 → 4.7.2

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 ne=require("react/jsx-runtime"),z=require("react");function ct(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function ft(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function dt(e){return e/100*window.innerHeight}function pt(e){return e/100*window.innerWidth}function ht(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 se({groupSize:e,panelElement:t,styleProp:n}){let o;const[r,s]=ht(n);switch(s){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=ft(t,r);break}case"em":{o=ct(t,r);break}case"vh":{o=dt(r);break}case"vw":{o=pt(r);break}}return o}function T(e){return parseFloat(e.toFixed(3))}function Q({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 pe(e){const{panels:t}=e,n=Q({group:e});return n===0?t.map(o=>({groupResizeBehavior:o.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:o.panelConstraints.disabled,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:r,panelConstraints:s}=o;let u=0;if(s.collapsedSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.collapsedSize});u=T(c/n*100)}let i;if(s.defaultSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.defaultSize});i=T(c/n*100)}let a=0;if(s.minSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.minSize});a=T(c/n*100)}let l=100;if(s.maxSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.maxSize});l=T(c/n*100)}return{groupResizeBehavior:s.groupResizeBehavior,collapsedSize:u,collapsible:s.collapsible===!0,defaultSize:i,disabled:s.disabled,minSize:a,maxSize:l,panelId:o.id}})}function R(e,t="Assertion error"){if(!e)throw Error(t)}function he(e,t){return Array.from(t).sort(e==="horizontal"?mt:gt)}function mt(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function gt(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function $e(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function He(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 St({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let r,s=Number.MAX_VALUE;for(const u of t){const{x:i,y:a}=He(o,u),l=e==="horizontal"?i:a;l<s&&(s=l,r=u)}return R(r,"No rect found"),r}let ae;function Ve(){return ae===void 0&&(typeof matchMedia=="function"?ae=!!matchMedia("(pointer:coarse)").matches:ae=!1),ae}function Be(e){const{element:t,orientation:n,panels:o,separators:r}=e,s=he(n,Array.from(t.children).filter($e).map(w=>({element:w}))).map(({element:w})=>w),u=[];let i=!1,a=!1,l=-1,c=-1,m=0,p,v=[];{let w=-1;for(const f of s)f.hasAttribute("data-panel")&&(w++,f.ariaDisabled===null&&(m++,l===-1&&(l=w),c=w))}if(m>1){let w=-1;for(const f of s)if(f.hasAttribute("data-panel")){w++;const h=o.find(g=>g.element===f);if(h){if(p){const g=p.element.getBoundingClientRect(),y=f.getBoundingClientRect();let b;if(a){const S=n==="horizontal"?new DOMRect(g.right,g.top,0,g.height):new DOMRect(g.left,g.bottom,g.width,0),d=n==="horizontal"?new DOMRect(y.left,y.top,0,y.height):new DOMRect(y.left,y.top,y.width,0);switch(v.length){case 0:{b=[S,d];break}case 1:{const L=v[0],M=St({orientation:n,rects:[g,y],targetRect:L.element.getBoundingClientRect()});b=[L,M===g?d:S];break}default:{b=v;break}}}else v.length?b=v:b=[n==="horizontal"?new DOMRect(g.right,y.top,y.left-g.right,y.height):new DOMRect(y.left,g.bottom,y.width,y.top-g.bottom)];for(const S of b){let d="width"in S?S:S.element.getBoundingClientRect();const L=Ve()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(d.width<L){const C=L-d.width;d=new DOMRect(d.x-C/2,d.y,d.width+C,d.height)}if(d.height<L){const C=L-d.height;d=new DOMRect(d.x,d.y-C/2,d.width,d.height+C)}const M=w<=l||w>c;!i&&!M&&u.push({group:e,groupSize:Q({group:e}),panels:[p,h],separator:"width"in S?void 0:S,rect:d}),i=!1}}a=!1,p=h,v=[]}}else if(f.hasAttribute("data-separator")){f.ariaDisabled!==null&&(i=!0);const h=r.find(g=>g.element===f);h?v.push(h):(p=void 0,v=[])}else a=!0}return u}class We{#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,s=null;const u=Array.from(o);for(let i=0;i<u.length;i++){const a=u[i];try{a.call(null,n)}catch(l){s===null&&(r=!0,s=l)}}if(r)throw s}}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 A=new Map;const Ue=new We;function yt(e){A=new Map(A),A.delete(e)}function Le(e,t){for(const[n]of A)if(n.id===e)return n}function j(e,t){for(const[n,o]of A)if(n.id===e)return o;if(t)throw Error(`Could not find data for Group with id ${e}`)}function U(){return A}function me(e,t){return Ue.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function F(e,t){const n=A.get(e);A=new Map(A),A.set(e,t),Ue.emit("groupChange",{group:e,prev:n,next:t})}function vt(e,t,n){let o,r={x:1/0,y:1/0};for(const s of t){const u=He(n,s.rect);switch(e){case"horizontal":{u.x<=r.x&&(o=s,r=u);break}case"vertical":{u.y<=r.y&&(o=s,r=u);break}}}return o?{distance:r,hitRegion:o}:void 0}function bt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function zt(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Me(e),b:Me(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)o=n.a.pop(),n.b.pop();R(o,"Stacking order can only be calculated for elements with a common ancestor");const r={a:Ce(Re(n.a)),b:Ce(Re(n.b))};if(r.a===r.b){const s=o.childNodes,u={a:n.a.at(-1),b:n.b.at(-1)};let i=s.length;for(;i--;){const a=s[i];if(a===u.a)return 1;if(a===u.b)return-1}}return Math.sign(r.a-r.b)}const xt=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function wt(e){const t=getComputedStyle(Ke(e)??e).display;return t==="flex"||t==="inline-flex"}function Pt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||wt(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"||xt.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Re(e){let t=e.length;for(;t--;){const n=e[t];if(R(n,"Missing node"),Pt(n))return n}return null}function Ce(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Me(e){const t=[];for(;e;)t.push(e),e=Ke(e);return t}function Ke(e){const{parentNode:t}=e;return bt(t)?t.host:t}function Lt(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 Rt({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!$e(n)||n.contains(e)||e.contains(n))return!0;if(zt(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(Lt(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function ge(e,t){const n=[];return t.forEach((o,r)=>{if(r.disabled)return;const s=Be(r),u=vt(r.orientation,s,{x:e.clientX,y:e.clientY});u&&u.distance.x<=0&&u.distance.y<=0&&Rt({groupElement:r.element,hitRegion:u.hitRegion.rect,pointerEventTarget:e.target})&&n.push(u.hitRegion)}),n}function Ct(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 I(e,t,n=0){return Math.abs(T(e)-T(t))<=n}function G(e,t){return I(e,t)?0:e>t?1:-1}function Y({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:o}){const{collapsedSize:r=0,collapsible:s,disabled:u,maxSize:i=100,minSize:a=0}=t;if(u&&!e)return n;if(G(o,a)<0)if(s){const l=(r+a)/2;G(o,l)<0?o=r:o=a}else o=a;return o=Math.min(i,o),o=T(o),o}function oe({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:r,trigger:s}){if(I(e,0))return t;const u=s==="imperative-api",i=Object.values(t),a=Object.values(r),l=[...i],[c,m]=o;R(c!=null,"Invalid first pivot index"),R(m!=null,"Invalid second pivot index");let p=0;switch(s){case"keyboard":{{const f=e<0?m:c,h=n[f];R(h,`Panel constraints not found for index ${f}`);const{collapsedSize:g=0,collapsible:y,minSize:b=0}=h;if(y){const S=i[f];if(R(S!=null,`Previous layout not found for panel index ${f}`),I(S,g)){const d=b-S;G(d,Math.abs(e))>0&&(e=e<0?0-d:d)}}}{const f=e<0?c:m,h=n[f];R(h,`No panel constraints found for index ${f}`);const{collapsedSize:g=0,collapsible:y,minSize:b=0}=h;if(y){const S=i[f];if(R(S!=null,`Previous layout not found for panel index ${f}`),I(S,b)){const d=S-g;G(d,Math.abs(e))>0&&(e=e<0?0-d:d)}}}break}default:{const f=e<0?m:c,h=n[f];R(h,`Panel constraints not found for index ${f}`);const g=i[f],{collapsible:y,collapsedSize:b,minSize:S}=h;if(y&&G(g,S)<0)if(e>0){const d=S-b,L=d/2,M=g+e;G(M,S)<0&&(e=G(e,L)<=0?0:d)}else{const d=S-b,L=100-d/2,M=g-e;G(M,S)<0&&(e=G(100+e,L)>0?0:-d)}break}}{const f=e<0?1:-1;let h=e<0?m:c,g=0;for(;;){const b=i[h];R(b!=null,`Previous layout not found for panel index ${h}`);const d=Y({overrideDisabledPanels:u,panelConstraints:n[h],prevSize:b,size:100})-b;if(g+=d,h+=f,h<0||h>=n.length)break}const y=Math.min(Math.abs(e),Math.abs(g));e=e<0?0-y:y}{let h=e<0?c:m;for(;h>=0&&h<n.length;){const g=Math.abs(e)-Math.abs(p),y=i[h];R(y!=null,`Previous layout not found for panel index ${h}`);const b=y-g,S=Y({overrideDisabledPanels:u,panelConstraints:n[h],prevSize:y,size:b});if(!I(y,S)&&(p+=y-S,l[h]=S,p.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?h--:h++}}if(Ct(a,l))return r;{const f=e<0?m:c,h=i[f];R(h!=null,`Previous layout not found for panel index ${f}`);const g=h+p,y=Y({overrideDisabledPanels:u,panelConstraints:n[f],prevSize:h,size:g});if(l[f]=y,!I(y,g)){let b=g-y,d=e<0?m:c;for(;d>=0&&d<n.length;){const L=l[d];R(L!=null,`Previous layout not found for panel index ${d}`);const M=L+b,C=Y({overrideDisabledPanels:u,panelConstraints:n[d],prevSize:L,size:M});if(I(L,C)||(b-=C-L,l[d]=C),I(b,0))break;e>0?d--:d++}}}const v=Object.values(l).reduce((f,h)=>h+f,0);if(!I(v,100,.1))return r;const w=Object.keys(r);return l.reduce((f,h,g)=>(f[w[g]]=h,f),{})}function V(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||G(e[n],t[n])!==0)return!1;return!0}function B({layout:e,panelConstraints:t}){const n=Object.values(e),o=[...n],r=o.reduce((i,a)=>i+a,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(i=>`${i}%`).join(", ")}`);if(!I(r,100)&&o.length>0)for(let i=0;i<t.length;i++){const a=o[i];R(a!=null,`No layout data found for index ${i}`);const l=100/r*a;o[i]=l}let s=0;for(let i=0;i<t.length;i++){const a=n[i];R(a!=null,`No layout data found for index ${i}`);const l=o[i];R(l!=null,`No layout data found for index ${i}`);const c=Y({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:a,size:l});l!=c&&(s+=l-c,o[i]=c)}if(!I(s,0))for(let i=0;i<t.length;i++){const a=o[i];R(a!=null,`No layout data found for index ${i}`);const l=a+s,c=Y({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:a,size:l});if(a!==c&&(s-=c-a,o[i]=c,I(s,0)))break}const u=Object.keys(e);return o.reduce((i,a,l)=>(i[u[l]]=a,i),{})}function qe({groupId:e,panelId:t}){const n=()=>{const i=U();for(const[a,{defaultLayoutDeferred:l,derivedPanelConstraints:c,layout:m,groupSize:p,separatorToPanels:v}]of i)if(a.id===e)return{defaultLayoutDeferred:l,derivedPanelConstraints:c,group:a,groupSize:p,layout:m,separatorToPanels:v};throw Error(`Group ${e} not found`)},o=()=>{const i=n().derivedPanelConstraints.find(a=>a.panelId===t);if(i!==void 0)return i;throw Error(`Panel constraints not found for Panel ${t}`)},r=()=>{const i=n().group.panels.find(a=>a.id===t);if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const i=n().layout[t];if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},u=i=>{const a=s();if(i===a)return;const{defaultLayoutDeferred:l,derivedPanelConstraints:c,group:m,groupSize:p,layout:v,separatorToPanels:w}=n(),f=m.panels.findIndex(b=>b.id===t),h=f===m.panels.length-1,g=oe({delta:h?a-i:i-a,initialLayout:v,panelConstraints:c,pivotIndices:h?[f-1,f]:[f,f+1],prevLayout:v,trigger:"imperative-api"}),y=B({layout:g,panelConstraints:c});V(v,y)||F(m,{defaultLayoutDeferred:l,derivedPanelConstraints:c,groupSize:p,layout:y,separatorToPanels:w})};return{collapse:()=>{const{collapsible:i,collapsedSize:a}=o(),{mutableValues:l}=r(),c=s();i&&c!==a&&(l.expandToSize=c,u(a))},expand:()=>{const{collapsible:i,collapsedSize:a,minSize:l}=o(),{mutableValues:c}=r(),m=s();if(i&&m===a){let p=c.expandToSize??l;p===0&&(p=1),u(p)}},getSize:()=>{const{group:i}=n(),a=s(),{element:l}=r(),c=i.orientation==="horizontal"?l.offsetWidth:l.offsetHeight;return{asPercentage:a,inPixels:c}},isCollapsed:()=>{const{collapsible:i,collapsedSize:a}=o(),l=s();return i&&I(a,l)},resize:i=>{if(s()!==i){let l;switch(typeof i){case"number":{const{group:c}=n(),m=Q({group:c});l=T(i/m*100);break}case"string":{l=parseFloat(i);break}}u(l)}}}}function Ee(e){if(e.defaultPrevented)return;const t=U();ge(e,t).forEach(o=>{if(o.separator){const r=o.panels.find(s=>s.panelConstraints.defaultSize!==void 0);if(r){const s=r.panelConstraints.defaultSize,u=qe({groupId:o.group.id,panelId:r.id});u&&s!==void 0&&(u.resize(s),e.preventDefault())}}})}function ue(e){const t=U();for(const[n]of t)if(n.separators.some(o=>o.element===e))return n;throw Error("Could not find parent Group for separator element")}function Xe({groupId:e}){const t=()=>{const n=U();for(const[o,r]of n)if(o.id===e)return{group:o,...r};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:r,group:s,groupSize:u,layout:i,separatorToPanels:a}=t(),l=B({layout:n,panelConstraints:r});return o?i:(V(i,l)||F(s,{defaultLayoutDeferred:o,derivedPanelConstraints:r,groupSize:u,layout:l,separatorToPanels:a}),l)}}}function H(e,t){const n=ue(e),o=j(n.id,!0),r=n.separators.find(m=>m.element===e);R(r,"Matching separator not found");const s=o.separatorToPanels.get(r);R(s,"Matching panels not found");const u=s.map(m=>n.panels.indexOf(m)),a=Xe({groupId:n.id}).getLayout(),l=oe({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:u,prevLayout:a,trigger:"keyboard"}),c=B({layout:l,panelConstraints:o.derivedPanelConstraints});V(a,c)||F(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,groupSize:o.groupSize,layout:c,separatorToPanels:o.separatorToPanels})}function ke(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=ue(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&H(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&H(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&H(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&H(t,-5);break}case"End":{e.preventDefault(),H(t,100);break}case"Enter":{e.preventDefault();const o=ue(t),r=j(o.id,!0),{derivedPanelConstraints:s,layout:u,separatorToPanels:i}=r,a=o.separators.find(p=>p.element===t);R(a,"Matching separator not found");const l=i.get(a);R(l,"Matching panels not found");const c=l[0],m=s.find(p=>p.panelId===c.id);if(R(m,"Panel metadata not found"),m.collapsible){const p=u[c.id],v=m.collapsedSize===p?o.mutableState.expandedPanelSizes[c.id]??m.minSize:m.collapsedSize;H(t,v-p)}break}case"F6":{e.preventDefault();const r=ue(t).separators.map(a=>a.element),s=Array.from(r).findIndex(a=>a===e.currentTarget);R(s!==null,"Index not found");const u=e.shiftKey?s>0?s-1:r.length-1:s+1<r.length?s+1:0;r[u].focus();break}case"Home":{e.preventDefault(),H(t,-100);break}}}let J={cursorFlags:0,state:"inactive"};const Se=new We;function W(){return J}function Mt(e){return Se.addListener("change",e)}function Et(e){const t=J,n={...J};n.cursorFlags=e,J=n,Se.emit("change",{prev:t,next:n})}function Z(e){const t=J;J=e,Se.emit("change",{prev:t,next:e})}function Ie(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=U(),n=ge(e,t),o=new Map;let r=!1;n.forEach(s=>{s.separator&&(r||(r=!0,s.separator.element.focus()));const u=t.get(s.group);u&&o.set(s.group,u.layout)}),Z({cursorFlags:0,hitRegions:n,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const kt=e=>e,fe=()=>{},Ye=1,Je=2,Ze=4,Qe=8,De=3,Te=12;let le;function Oe(){return le===void 0&&(le=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(le=!0)),le}function It({cursorFlags:e,groups:t,state:n}){let o=0,r=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.mutableState.disableCursor)switch(s.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(!(o===0&&r===0)){switch(n){case"active":{if(e&&Oe()){const s=(e&Ye)!==0,u=(e&Je)!==0,i=(e&Ze)!==0,a=(e&Qe)!==0;if(s)return i?"se-resize":a?"ne-resize":"e-resize";if(u)return i?"sw-resize":a?"nw-resize":"w-resize";if(i)return"s-resize";if(a)return"n-resize"}break}}return Oe()?o>0&&r>0?"move":o>0?"ew-resize":"ns-resize":o>0&&r>0?"grab":o>0?"col-resize":"row-resize"}}const Ge=new WeakMap;function ye(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ge.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));const o=W();switch(o.state){case"active":case"hover":{const r=It({cursorFlags:o.cursorFlags,groups:o.hitRegions.map(u=>u.group),state:o.state}),s=`*, *:hover {cursor: ${r} !important; }`;if(t===s)return;t=s,r?n.cssRules.length===0?n.insertRule(s):n.replaceSync(s):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Ge.set(e,{prevStyle:t,styleSheet:n})}function et({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:r,pointerDownAtPoint:s,prevCursorFlags:u}){let i=0;n.forEach(l=>{const{group:c,groupSize:m}=l,{orientation:p,panels:v}=c,{disableCursor:w}=c.mutableState;let f=0;s?p==="horizontal"?f=(t.clientX-s.x)/m*100:f=(t.clientY-s.y)/m*100:p==="horizontal"?f=t.clientX<0?-100:100:f=t.clientY<0?-100:100;const h=o.get(c),g=r.get(c);if(!h||!g)return;const{defaultLayoutDeferred:y,derivedPanelConstraints:b,groupSize:S,layout:d,separatorToPanels:L}=g;if(b&&d&&L){const M=oe({delta:f,initialLayout:h,panelConstraints:b,pivotIndices:l.panels.map(C=>v.indexOf(C)),prevLayout:d,trigger:"mouse-or-touch"});if(V(M,d)){if(f!==0&&!w)switch(p){case"horizontal":{i|=f<0?Ye:Je;break}case"vertical":{i|=f<0?Ze:Qe;break}}}else F(l.group,{defaultLayoutDeferred:y,derivedPanelConstraints:b,groupSize:S,layout:M,separatorToPanels:L})}});let a=0;t.movementX===0?a|=u&De:a|=i&De,t.movementY===0?a|=u&Te:a|=i&Te,Et(a),ye(e)}function Ae(e){const t=U(),n=W();switch(n.state){case"active":et({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Ne(e){if(e.defaultPrevented)return;const t=W(),n=U();switch(t.state){case"active":{if(e.buttons===0){Z({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(o=>{const r=j(o.group.id,!0);F(o.group,r)});return}et({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const o=ge(e,n);o.length===0?t.state!=="inactive"&&Z({cursorFlags:0,state:"inactive"}):Z({cursorFlags:0,hitRegions:o,state:"hover"}),ye(e.currentTarget);break}}}function Fe(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(W().state){case"hover":Z({cursorFlags:0,state:"inactive"})}}function _e(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=W();switch(t.state){case"active":Z({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(ye(e.currentTarget),t.hitRegions.forEach(n=>{const o=j(n.group.id,!0);F(n.group,o)}),e.preventDefault())}}function je(e){let t=0,n=0;const o={};for(const s of e)if(s.defaultSize!==void 0){t++;const u=T(s.defaultSize);n+=u,o[s.panelId]=u}else o[s.panelId]=void 0;const r=e.length-t;if(r!==0){const s=T((100-n)/r);for(const u of e)u.defaultSize===void 0&&(o[u.panelId]=s)}return o}function Dt(e,t,n){if(!n[0])return;const r=e.panels.find(l=>l.element===t);if(!r||!r.onResize)return;const s=Q({group:e}),u=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,i=r.mutableValues.prevSize,a={asPercentage:T(u/s*100),inPixels:u};r.mutableValues.prevSize=a,r.onResize(a,r.id,i)}function Tt(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 Ot({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:o}){if(n<=0||t<=0||n===t)return o;let r=0,s=0,u=!1;const i=new Map,a=[];for(const m of e.panels){const p=o[m.id]??0;switch(m.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{u=!0;const v=p/100*n,w=T(v/t*100);i.set(m.id,w),r+=w;break}case"preserve-relative-size":default:{a.push(m.id),s+=p;break}}}if(!u||a.length===0)return o;const l=100-r,c={...o};if(i.forEach((m,p)=>{c[p]=m}),s>0)for(const m of a){const p=o[m]??0;c[m]=T(p/s*l)}else{const m=T(l/a.length);for(const p of a)c[p]=m}return c}function Gt(e,t){const n=e.map(r=>r.id),o=Object.keys(t);if(n.length!==o.length)return!1;for(const r of n)if(!o.includes(r))return!1;return!0}const X=new Map;function At(e){let t=!0;R(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,r=new Set,s=new n(f=>{for(const h of f){const{borderBoxSize:g,target:y}=h;if(y===e.element){if(t){const b=Q({group:e});if(b===0)return;const S=j(e.id);if(!S)return;const d=pe(e),L=S.defaultLayoutDeferred?je(d):S.layout,M=Ot({group:e,nextGroupSize:b,prevGroupSize:S.groupSize,prevLayout:L}),C=B({layout:M,panelConstraints:d});if(!S.defaultLayoutDeferred&&V(S.layout,C)&&Tt(S.derivedPanelConstraints,d)&&S.groupSize===b)return;F(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:d,groupSize:b,layout:C,separatorToPanels:S.separatorToPanels})}}else Dt(e,y,g)}});s.observe(e.element),e.panels.forEach(f=>{R(!o.has(f.id),`Panel ids must be unique; id "${f.id}" was used more than once`),o.add(f.id),f.onResize&&s.observe(f.element)});const u=Q({group:e}),i=pe(e),a=e.panels.map(({id:f})=>f).join(",");let l=e.mutableState.defaultLayout;l&&(Gt(e.panels,l)||(l=void 0));const c=e.mutableState.layouts[a]??l??je(i),m=B({layout:c,panelConstraints:i}),p=e.element.ownerDocument;X.set(p,(X.get(p)??0)+1);const v=new Map;return Be(e).forEach(f=>{f.separator&&v.set(f.separator,f.panels)}),F(e,{defaultLayoutDeferred:u===0,derivedPanelConstraints:i,groupSize:u,layout:m,separatorToPanels:v}),e.separators.forEach(f=>{R(!r.has(f.id),`Separator ids must be unique; id "${f.id}" was used more than once`),r.add(f.id),f.element.addEventListener("keydown",ke)}),X.get(p)===1&&(p.addEventListener("dblclick",Ee,!0),p.addEventListener("pointerdown",Ie,!0),p.addEventListener("pointerleave",Ae),p.addEventListener("pointermove",Ne),p.addEventListener("pointerout",Fe),p.addEventListener("pointerup",_e,!0)),function(){t=!1,X.set(p,Math.max(0,(X.get(p)??0)-1)),yt(e),e.separators.forEach(h=>{h.element.removeEventListener("keydown",ke)}),X.get(p)||(p.removeEventListener("dblclick",Ee,!0),p.removeEventListener("pointerdown",Ie,!0),p.removeEventListener("pointerleave",Ae),p.removeEventListener("pointermove",Ne),p.removeEventListener("pointerout",Fe),p.removeEventListener("pointerup",_e,!0)),s.disconnect()}}function Nt(){const[e,t]=z.useState({}),n=z.useCallback(()=>t({}),[]);return[e,n]}function ve(e){const t=z.useId();return`${e??t}`}const K=typeof window<"u"?z.useLayoutEffect:z.useEffect;function te(e){const t=z.useRef(e);return K(()=>{t.current=e},[e]),z.useCallback((...n)=>t.current?.(...n),[t])}function be(...e){return te(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function ze(e){const t=z.useRef({...e});return K(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const tt=z.createContext(null);function Ft(e,t){const n=z.useRef({getLayout:()=>({}),setLayout:kt});z.useImperativeHandle(t,()=>n.current,[]),K(()=>{Object.assign(n.current,Xe({groupId:e}))})}function nt({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:r,elementRef:s,groupRef:u,id:i,onLayoutChange:a,onLayoutChanged:l,orientation:c="horizontal",resizeTargetMinimumSize:m={coarse:20,fine:10},style:p,...v}){const w=z.useRef({onLayoutChange:{},onLayoutChanged:{}}),f=te(x=>{V(w.current.onLayoutChange,x)||(w.current.onLayoutChange=x,a?.(x))}),h=te(x=>{V(w.current.onLayoutChanged,x)||(w.current.onLayoutChanged=x,l?.(x))}),g=ve(i),y=z.useRef(null),[b,S]=Nt(),d=z.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:m,separators:[]}),L=be(y,s);Ft(g,u);const M=te((x,P)=>{const k=W(),E=Le(x),D=j(x);if(D){let O=!1;switch(k.state){case"active":{O=k.hitRegions.some($=>$.group===E);break}}return{flexGrow:D.layout[P]??1,pointerEvents:O?"none":void 0}}return{flexGrow:n?.[P]??1}}),C=ze({defaultLayout:n,disableCursor:o}),q=z.useMemo(()=>({get disableCursor(){return!!C.disableCursor},getPanelStyles:M,id:g,orientation:c,registerPanel:x=>{const P=d.current;return P.panels=he(c,[...P.panels,x]),S(),()=>{P.panels=P.panels.filter(k=>k!==x),S()}},registerSeparator:x=>{const P=d.current;return P.separators=he(c,[...P.separators,x]),S(),()=>{P.separators=P.separators.filter(k=>k!==x),S()}},togglePanelDisabled:(x,P)=>{const E=d.current.panels.find($=>$.id===x);E&&(E.panelConstraints.disabled=P);const D=Le(g),O=j(g);D&&O&&F(D,{...O,derivedPanelConstraints:pe(D)})},toggleSeparatorDisabled:(x,P)=>{const E=d.current.separators.find(D=>D.id===x);E&&(E.disabled=P)}}),[M,g,S,c,C]),_=z.useRef(null);return K(()=>{const x=y.current;if(x===null)return;const P=d.current;let k;if(C.defaultLayout!==void 0&&Object.keys(C.defaultLayout).length===P.panels.length){k={};for(const ee of P.panels){const ie=C.defaultLayout[ee.id];ie!==void 0&&(k[ee.id]=ie)}}const E={disabled:!!r,element:x,id:g,mutableState:{defaultLayout:k,disableCursor:!!C.disableCursor,expandedPanelSizes:d.current.lastExpandedPanelSizes,layouts:d.current.layouts},orientation:c,panels:P.panels,resizeTargetMinimumSize:P.resizeTargetMinimumSize,separators:P.separators};_.current=E;const D=At(E),{defaultLayoutDeferred:O,derivedPanelConstraints:$,layout:we}=j(E.id,!0);!O&&$.length>0&&(f(we),h(we));const rt=me(g,ee=>{const{defaultLayoutDeferred:ie,derivedPanelConstraints:Pe,layout:re}=ee.next;if(ie||Pe.length===0)return;const st=E.panels.map(({id:N})=>N).join(",");E.mutableState.layouts[st]=re,Pe.forEach(N=>{if(N.collapsible){const{layout:ce}=ee.prev??{};if(ce){const lt=I(N.collapsedSize,re[N.panelId]),ut=I(N.collapsedSize,ce[N.panelId]);lt&&!ut&&(E.mutableState.expandedPanelSizes[N.panelId]=ce[N.panelId])}}});const at=W().state!=="active";f(re),at&&h(re)});return()=>{_.current=null,D(),rt()}},[r,g,h,f,c,b,C]),z.useEffect(()=>{const x=_.current;x&&(x.mutableState.defaultLayout=n,x.mutableState.disableCursor=!!o)}),ne.jsx(tt.Provider,{value:q,children:ne.jsx("div",{...v,className:t,"data-group":!0,"data-testid":g,id:g,ref:L,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:c==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:c==="horizontal"?"pan-y":"pan-x"},children:e})})}nt.displayName="Group";function de(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function _t({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const r=t!==void 0,s="id"in o?o.id:o.groupId,u=de(s,t??[]),i=z.useSyncExternalStore(jt,()=>n.getItem(u),()=>n.getItem(u)),a=z.useMemo(()=>i?JSON.parse(i):void 0,[i]),l=z.useRef(null),c=z.useCallback(()=>{const v=l.current;v&&(l.current=null,clearTimeout(v))},[]);z.useLayoutEffect(()=>()=>{c()},[c]);const m=z.useCallback(v=>{c();let w;r?w=de(s,Object.keys(v)):w=de(s,[]);try{n.setItem(w,JSON.stringify(v))}catch(f){console.error(f)}},[c,r,s,n]),p=z.useCallback(v=>{c(),e===0?m(v):l.current=setTimeout(()=>{m(v)},e)},[c,e,m]);return{defaultLayout:a,onLayoutChange:p,onLayoutChanged:m}}function jt(){return function(){}}function $t(){return z.useState(null)}function Ht(){return z.useRef(null)}function xe(){const e=z.useContext(tt);return R(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Vt(e,t){const{id:n}=xe(),o=z.useRef({collapse:fe,expand:fe,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:fe});z.useImperativeHandle(t,()=>o.current,[]),K(()=>{Object.assign(o.current,qe({groupId:n,panelId:e}))})}function ot({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:r,disabled:s,elementRef:u,groupResizeBehavior:i="preserve-relative-size",id:a,maxSize:l="100%",minSize:c="0%",onResize:m,panelRef:p,style:v,...w}){const f=!!a,h=ve(a),g=ze({disabled:s}),y=z.useRef(null),b=be(y,u),{getPanelStyles:S,id:d,orientation:L,registerPanel:M,togglePanelDisabled:C}=xe(),q=m!==null,_=te((P,k,E)=>{m?.(P,a,E)});K(()=>{const P=y.current;if(P!==null){const k={element:P,id:h,idIsStable:f,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:q?_:void 0,panelConstraints:{groupResizeBehavior:i,collapsedSize:n,collapsible:o,defaultSize:r,disabled:g.disabled,maxSize:l,minSize:c}};return M(k)}},[i,n,o,r,q,h,f,l,c,_,M,g]),z.useEffect(()=>{C(h,!!s)},[s,h,C]),Vt(h,p);const x=z.useSyncExternalStore(P=>me(d,P),()=>JSON.stringify(S(d,h)),()=>JSON.stringify(S(d,h)));return ne.jsx("div",{...w,"aria-disabled":s||void 0,"data-panel":!0,"data-testid":h,id:h,ref:b,style:{...Bt,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...JSON.parse(x)},children:ne.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...v,touchAction:L==="horizontal"?"pan-y":"pan-x"},children:e})})}ot.displayName="Panel";const Bt={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function Wt(){return z.useState(null)}function Ut(){return z.useRef(null)}function Kt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let r,s;const u=e[n],i=t.find(a=>a.panelId===n);if(i){const a=i.maxSize,l=i.collapsible?i.collapsedSize:i.minSize,c=[o,o+1];s=B({layout:oe({delta:l-u,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e}),panelConstraints:t})[n],r=B({layout:oe({delta:a-u,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:r,valueMin:s,valueNow:u}}function it({children:e,className:t,disabled:n,elementRef:o,id:r,style:s,...u}){const i=ve(r),a=ze({disabled:n}),[l,c]=z.useState({}),[m,p]=z.useState("inactive"),v=z.useRef(null),w=be(v,o),{disableCursor:f,id:h,orientation:g,registerSeparator:y,toggleSeparatorDisabled:b}=xe(),S=g==="horizontal"?"vertical":"horizontal";K(()=>{const L=v.current;if(L!==null){const M={disabled:a.disabled,element:L,id:i},C=y(M),q=Mt(x=>{p(x.next.state!=="inactive"&&x.next.hitRegions.some(P=>P.separator===M)?x.next.state:"inactive")}),_=me(h,x=>{const{derivedPanelConstraints:P,layout:k,separatorToPanels:E}=x.next,D=E.get(M);if(D){const O=D[0],$=D.indexOf(O);c(Kt({layout:k,panelConstraints:P,panelId:O.id,panelIndex:$}))}});return()=>{q(),_(),C()}}},[h,i,y,a]),z.useEffect(()=>{b(i,!!n)},[n,i,b]);let d;return n&&!f&&(d="not-allowed"),ne.jsx("div",{...u,"aria-controls":l.valueControls,"aria-disabled":n||void 0,"aria-orientation":S,"aria-valuemax":l.valueMax,"aria-valuemin":l.valueMin,"aria-valuenow":l.valueNow,children:e,className:t,"data-separator":n?"disabled":m,"data-testid":i,id:i,ref:w,role:"separator",style:{flexBasis:"auto",cursor:d,...s,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}it.displayName="Separator";exports.Group=nt;exports.Panel=ot;exports.Separator=it;exports.isCoarsePointer=Ve;exports.useDefaultLayout=_t;exports.useGroupCallbackRef=$t;exports.useGroupRef=Ht;exports.usePanelCallbackRef=Wt;exports.usePanelRef=Ut;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ne=require("react/jsx-runtime"),z=require("react");function ct(e,t){const n=getComputedStyle(e),o=parseFloat(n.fontSize);return t*o}function ft(e,t){const n=getComputedStyle(e.ownerDocument.body),o=parseFloat(n.fontSize);return t*o}function dt(e){return e/100*window.innerHeight}function pt(e){return e/100*window.innerWidth}function ht(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 se({groupSize:e,panelElement:t,styleProp:n}){let o;const[r,s]=ht(n);switch(s){case"%":{o=r/100*e;break}case"px":{o=r;break}case"rem":{o=ft(t,r);break}case"em":{o=ct(t,r);break}case"vh":{o=dt(r);break}case"vw":{o=pt(r);break}}return o}function T(e){return parseFloat(e.toFixed(3))}function Q({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 pe(e){const{panels:t}=e,n=Q({group:e});return n===0?t.map(o=>({groupResizeBehavior:o.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:o.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:o.panelConstraints.disabled,minSize:0,maxSize:100,panelId:o.id})):t.map(o=>{const{element:r,panelConstraints:s}=o;let u=0;if(s.collapsedSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.collapsedSize});u=T(c/n*100)}let i;if(s.defaultSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.defaultSize});i=T(c/n*100)}let a=0;if(s.minSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.minSize});a=T(c/n*100)}let l=100;if(s.maxSize!==void 0){const c=se({groupSize:n,panelElement:r,styleProp:s.maxSize});l=T(c/n*100)}return{groupResizeBehavior:s.groupResizeBehavior,collapsedSize:u,collapsible:s.collapsible===!0,defaultSize:i,disabled:s.disabled,minSize:a,maxSize:l,panelId:o.id}})}function R(e,t="Assertion error"){if(!e)throw Error(t)}function he(e,t){return Array.from(t).sort(e==="horizontal"?mt:gt)}function mt(e,t){const n=e.element.offsetLeft-t.element.offsetLeft;return n!==0?n:e.element.offsetWidth-t.element.offsetWidth}function gt(e,t){const n=e.element.offsetTop-t.element.offsetTop;return n!==0?n:e.element.offsetHeight-t.element.offsetHeight}function $e(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function He(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 St({orientation:e,rects:t,targetRect:n}){const o={x:n.x+n.width/2,y:n.y+n.height/2};let r,s=Number.MAX_VALUE;for(const u of t){const{x:i,y:a}=He(o,u),l=e==="horizontal"?i:a;l<s&&(s=l,r=u)}return R(r,"No rect found"),r}let ae;function Ve(){return ae===void 0&&(typeof matchMedia=="function"?ae=!!matchMedia("(pointer:coarse)").matches:ae=!1),ae}function Be(e){const{element:t,orientation:n,panels:o,separators:r}=e,s=he(n,Array.from(t.children).filter($e).map(w=>({element:w}))).map(({element:w})=>w),u=[];let i=!1,a=!1,l=-1,c=-1,m=0,p,v=[];{let w=-1;for(const f of s)f.hasAttribute("data-panel")&&(w++,f.ariaDisabled===null&&(m++,l===-1&&(l=w),c=w))}if(m>1){let w=-1;for(const f of s)if(f.hasAttribute("data-panel")){w++;const h=o.find(g=>g.element===f);if(h){if(p){const g=p.element.getBoundingClientRect(),y=f.getBoundingClientRect();let b;if(a){const S=n==="horizontal"?new DOMRect(g.right,g.top,0,g.height):new DOMRect(g.left,g.bottom,g.width,0),d=n==="horizontal"?new DOMRect(y.left,y.top,0,y.height):new DOMRect(y.left,y.top,y.width,0);switch(v.length){case 0:{b=[S,d];break}case 1:{const L=v[0],M=St({orientation:n,rects:[g,y],targetRect:L.element.getBoundingClientRect()});b=[L,M===g?d:S];break}default:{b=v;break}}}else v.length?b=v:b=[n==="horizontal"?new DOMRect(g.right,y.top,y.left-g.right,y.height):new DOMRect(y.left,g.bottom,y.width,y.top-g.bottom)];for(const S of b){let d="width"in S?S:S.element.getBoundingClientRect();const L=Ve()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(d.width<L){const C=L-d.width;d=new DOMRect(d.x-C/2,d.y,d.width+C,d.height)}if(d.height<L){const C=L-d.height;d=new DOMRect(d.x,d.y-C/2,d.width,d.height+C)}const M=w<=l||w>c;!i&&!M&&u.push({group:e,groupSize:Q({group:e}),panels:[p,h],separator:"width"in S?void 0:S,rect:d}),i=!1}}a=!1,p=h,v=[]}}else if(f.hasAttribute("data-separator")){f.ariaDisabled!==null&&(i=!0);const h=r.find(g=>g.element===f);h?v.push(h):(p=void 0,v=[])}else a=!0}return u}class We{#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,s=null;const u=Array.from(o);for(let i=0;i<u.length;i++){const a=u[i];try{a.call(null,n)}catch(l){s===null&&(r=!0,s=l)}}if(r)throw s}}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 A=new Map;const Ue=new We;function yt(e){A=new Map(A),A.delete(e)}function Le(e,t){for(const[n]of A)if(n.id===e)return n}function j(e,t){for(const[n,o]of A)if(n.id===e)return o;if(t)throw Error(`Could not find data for Group with id ${e}`)}function U(){return A}function me(e,t){return Ue.addListener("groupChange",n=>{n.group.id===e&&t(n)})}function F(e,t){const n=A.get(e);A=new Map(A),A.set(e,t),Ue.emit("groupChange",{group:e,prev:n,next:t})}function vt(e,t,n){let o,r={x:1/0,y:1/0};for(const s of t){const u=He(n,s.rect);switch(e){case"horizontal":{u.x<=r.x&&(o=s,r=u);break}case"vertical":{u.y<=r.y&&(o=s,r=u);break}}}return o?{distance:r,hitRegion:o}:void 0}function bt(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function zt(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Me(e),b:Me(t)};let o;for(;n.a.at(-1)===n.b.at(-1);)o=n.a.pop(),n.b.pop();R(o,"Stacking order can only be calculated for elements with a common ancestor");const r={a:Ce(Re(n.a)),b:Ce(Re(n.b))};if(r.a===r.b){const s=o.childNodes,u={a:n.a.at(-1),b:n.b.at(-1)};let i=s.length;for(;i--;){const a=s[i];if(a===u.a)return 1;if(a===u.b)return-1}}return Math.sign(r.a-r.b)}const xt=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function wt(e){const t=getComputedStyle(Ke(e)??e).display;return t==="flex"||t==="inline-flex"}function Pt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||wt(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"||xt.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Re(e){let t=e.length;for(;t--;){const n=e[t];if(R(n,"Missing node"),Pt(n))return n}return null}function Ce(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Me(e){const t=[];for(;e;)t.push(e),e=Ke(e);return t}function Ke(e){const{parentNode:t}=e;return bt(t)?t.host:t}function Lt(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 Rt({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!$e(n)||n.contains(e)||e.contains(n))return!0;if(zt(n,e)>0){let o=n;for(;o;){if(o.contains(e))return!0;if(Lt(o.getBoundingClientRect(),t))return!1;o=o.parentElement}}return!0}function ge(e,t){const n=[];return t.forEach((o,r)=>{if(r.disabled)return;const s=Be(r),u=vt(r.orientation,s,{x:e.clientX,y:e.clientY});u&&u.distance.x<=0&&u.distance.y<=0&&Rt({groupElement:r.element,hitRegion:u.hitRegion.rect,pointerEventTarget:e.target})&&n.push(u.hitRegion)}),n}function Ct(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 I(e,t,n=0){return Math.abs(T(e)-T(t))<=n}function G(e,t){return I(e,t)?0:e>t?1:-1}function Y({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:o}){const{collapsedSize:r=0,collapsible:s,disabled:u,maxSize:i=100,minSize:a=0}=t;if(u&&!e)return n;if(G(o,a)<0)if(s){const l=(r+a)/2;G(o,l)<0?o=r:o=a}else o=a;return o=Math.min(i,o),o=T(o),o}function oe({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:o,prevLayout:r,trigger:s}){if(I(e,0))return t;const u=s==="imperative-api",i=Object.values(t),a=Object.values(r),l=[...i],[c,m]=o;R(c!=null,"Invalid first pivot index"),R(m!=null,"Invalid second pivot index");let p=0;switch(s){case"keyboard":{{const f=e<0?m:c,h=n[f];R(h,`Panel constraints not found for index ${f}`);const{collapsedSize:g=0,collapsible:y,minSize:b=0}=h;if(y){const S=i[f];if(R(S!=null,`Previous layout not found for panel index ${f}`),I(S,g)){const d=b-S;G(d,Math.abs(e))>0&&(e=e<0?0-d:d)}}}{const f=e<0?c:m,h=n[f];R(h,`No panel constraints found for index ${f}`);const{collapsedSize:g=0,collapsible:y,minSize:b=0}=h;if(y){const S=i[f];if(R(S!=null,`Previous layout not found for panel index ${f}`),I(S,b)){const d=S-g;G(d,Math.abs(e))>0&&(e=e<0?0-d:d)}}}break}default:{const f=e<0?m:c,h=n[f];R(h,`Panel constraints not found for index ${f}`);const g=i[f],{collapsible:y,collapsedSize:b,minSize:S}=h;if(y&&G(g,S)<0)if(e>0){const d=S-b,L=d/2,M=g+e;G(M,S)<0&&(e=G(e,L)<=0?0:d)}else{const d=S-b,L=100-d/2,M=g-e;G(M,S)<0&&(e=G(100+e,L)>0?0:-d)}break}}{const f=e<0?1:-1;let h=e<0?m:c,g=0;for(;;){const b=i[h];R(b!=null,`Previous layout not found for panel index ${h}`);const d=Y({overrideDisabledPanels:u,panelConstraints:n[h],prevSize:b,size:100})-b;if(g+=d,h+=f,h<0||h>=n.length)break}const y=Math.min(Math.abs(e),Math.abs(g));e=e<0?0-y:y}{let h=e<0?c:m;for(;h>=0&&h<n.length;){const g=Math.abs(e)-Math.abs(p),y=i[h];R(y!=null,`Previous layout not found for panel index ${h}`);const b=y-g,S=Y({overrideDisabledPanels:u,panelConstraints:n[h],prevSize:y,size:b});if(!I(y,S)&&(p+=y-S,l[h]=S,p.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?h--:h++}}if(Ct(a,l))return r;{const f=e<0?m:c,h=i[f];R(h!=null,`Previous layout not found for panel index ${f}`);const g=h+p,y=Y({overrideDisabledPanels:u,panelConstraints:n[f],prevSize:h,size:g});if(l[f]=y,!I(y,g)){let b=g-y,d=e<0?m:c;for(;d>=0&&d<n.length;){const L=l[d];R(L!=null,`Previous layout not found for panel index ${d}`);const M=L+b,C=Y({overrideDisabledPanels:u,panelConstraints:n[d],prevSize:L,size:M});if(I(L,C)||(b-=C-L,l[d]=C),I(b,0))break;e>0?d--:d++}}}const v=Object.values(l).reduce((f,h)=>h+f,0);if(!I(v,100,.1))return r;const w=Object.keys(r);return l.reduce((f,h,g)=>(f[w[g]]=h,f),{})}function V(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(t[n]===void 0||G(e[n],t[n])!==0)return!1;return!0}function B({layout:e,panelConstraints:t}){const n=Object.values(e),o=[...n],r=o.reduce((i,a)=>i+a,0);if(o.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${o.map(i=>`${i}%`).join(", ")}`);if(!I(r,100)&&o.length>0)for(let i=0;i<t.length;i++){const a=o[i];R(a!=null,`No layout data found for index ${i}`);const l=100/r*a;o[i]=l}let s=0;for(let i=0;i<t.length;i++){const a=n[i];R(a!=null,`No layout data found for index ${i}`);const l=o[i];R(l!=null,`No layout data found for index ${i}`);const c=Y({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:a,size:l});l!=c&&(s+=l-c,o[i]=c)}if(!I(s,0))for(let i=0;i<t.length;i++){const a=o[i];R(a!=null,`No layout data found for index ${i}`);const l=a+s,c=Y({overrideDisabledPanels:!0,panelConstraints:t[i],prevSize:a,size:l});if(a!==c&&(s-=c-a,o[i]=c,I(s,0)))break}const u=Object.keys(e);return o.reduce((i,a,l)=>(i[u[l]]=a,i),{})}function qe({groupId:e,panelId:t}){const n=()=>{const i=U();for(const[a,{defaultLayoutDeferred:l,derivedPanelConstraints:c,layout:m,groupSize:p,separatorToPanels:v}]of i)if(a.id===e)return{defaultLayoutDeferred:l,derivedPanelConstraints:c,group:a,groupSize:p,layout:m,separatorToPanels:v};throw Error(`Group ${e} not found`)},o=()=>{const i=n().derivedPanelConstraints.find(a=>a.panelId===t);if(i!==void 0)return i;throw Error(`Panel constraints not found for Panel ${t}`)},r=()=>{const i=n().group.panels.find(a=>a.id===t);if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},s=()=>{const i=n().layout[t];if(i!==void 0)return i;throw Error(`Layout not found for Panel ${t}`)},u=i=>{const a=s();if(i===a)return;const{defaultLayoutDeferred:l,derivedPanelConstraints:c,group:m,groupSize:p,layout:v,separatorToPanels:w}=n(),f=m.panels.findIndex(b=>b.id===t),h=f===m.panels.length-1,g=oe({delta:h?a-i:i-a,initialLayout:v,panelConstraints:c,pivotIndices:h?[f-1,f]:[f,f+1],prevLayout:v,trigger:"imperative-api"}),y=B({layout:g,panelConstraints:c});V(v,y)||F(m,{defaultLayoutDeferred:l,derivedPanelConstraints:c,groupSize:p,layout:y,separatorToPanels:w})};return{collapse:()=>{const{collapsible:i,collapsedSize:a}=o(),{mutableValues:l}=r(),c=s();i&&c!==a&&(l.expandToSize=c,u(a))},expand:()=>{const{collapsible:i,collapsedSize:a,minSize:l}=o(),{mutableValues:c}=r(),m=s();if(i&&m===a){let p=c.expandToSize??l;p===0&&(p=1),u(p)}},getSize:()=>{const{group:i}=n(),a=s(),{element:l}=r(),c=i.orientation==="horizontal"?l.offsetWidth:l.offsetHeight;return{asPercentage:a,inPixels:c}},isCollapsed:()=>{const{collapsible:i,collapsedSize:a}=o(),l=s();return i&&I(a,l)},resize:i=>{if(s()!==i){let l;switch(typeof i){case"number":{const{group:c}=n(),m=Q({group:c});l=T(i/m*100);break}case"string":{l=parseFloat(i);break}}u(l)}}}}function Ee(e){if(e.defaultPrevented)return;const t=U();ge(e,t).forEach(o=>{if(o.separator){const r=o.panels.find(s=>s.panelConstraints.defaultSize!==void 0);if(r){const s=r.panelConstraints.defaultSize,u=qe({groupId:o.group.id,panelId:r.id});u&&s!==void 0&&(u.resize(s),e.preventDefault())}}})}function ue(e){const t=U();for(const[n]of t)if(n.separators.some(o=>o.element===e))return n;throw Error("Could not find parent Group for separator element")}function Xe({groupId:e}){const t=()=>{const n=U();for(const[o,r]of n)if(o.id===e)return{group:o,...r};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:r,group:s,groupSize:u,layout:i,separatorToPanels:a}=t(),l=B({layout:n,panelConstraints:r});return o?i:(V(i,l)||F(s,{defaultLayoutDeferred:o,derivedPanelConstraints:r,groupSize:u,layout:l,separatorToPanels:a}),l)}}}function H(e,t){const n=ue(e),o=j(n.id,!0),r=n.separators.find(m=>m.element===e);R(r,"Matching separator not found");const s=o.separatorToPanels.get(r);R(s,"Matching panels not found");const u=s.map(m=>n.panels.indexOf(m)),a=Xe({groupId:n.id}).getLayout(),l=oe({delta:t,initialLayout:a,panelConstraints:o.derivedPanelConstraints,pivotIndices:u,prevLayout:a,trigger:"keyboard"}),c=B({layout:l,panelConstraints:o.derivedPanelConstraints});V(a,c)||F(n,{defaultLayoutDeferred:o.defaultLayoutDeferred,derivedPanelConstraints:o.derivedPanelConstraints,groupSize:o.groupSize,layout:c,separatorToPanels:o.separatorToPanels})}function ke(e){if(e.defaultPrevented)return;const t=e.currentTarget,n=ue(t);if(!n.disabled)switch(e.key){case"ArrowDown":{e.preventDefault(),n.orientation==="vertical"&&H(t,5);break}case"ArrowLeft":{e.preventDefault(),n.orientation==="horizontal"&&H(t,-5);break}case"ArrowRight":{e.preventDefault(),n.orientation==="horizontal"&&H(t,5);break}case"ArrowUp":{e.preventDefault(),n.orientation==="vertical"&&H(t,-5);break}case"End":{e.preventDefault(),H(t,100);break}case"Enter":{e.preventDefault();const o=ue(t),r=j(o.id,!0),{derivedPanelConstraints:s,layout:u,separatorToPanels:i}=r,a=o.separators.find(p=>p.element===t);R(a,"Matching separator not found");const l=i.get(a);R(l,"Matching panels not found");const c=l[0],m=s.find(p=>p.panelId===c.id);if(R(m,"Panel metadata not found"),m.collapsible){const p=u[c.id],v=m.collapsedSize===p?o.mutableState.expandedPanelSizes[c.id]??m.minSize:m.collapsedSize;H(t,v-p)}break}case"F6":{e.preventDefault();const r=ue(t).separators.map(a=>a.element),s=Array.from(r).findIndex(a=>a===e.currentTarget);R(s!==null,"Index not found");const u=e.shiftKey?s>0?s-1:r.length-1:s+1<r.length?s+1:0;r[u].focus({preventScroll:!0});break}case"Home":{e.preventDefault(),H(t,-100);break}}}let J={cursorFlags:0,state:"inactive"};const Se=new We;function W(){return J}function Mt(e){return Se.addListener("change",e)}function Et(e){const t=J,n={...J};n.cursorFlags=e,J=n,Se.emit("change",{prev:t,next:n})}function Z(e){const t=J;J=e,Se.emit("change",{prev:t,next:e})}function Ie(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=U(),n=ge(e,t),o=new Map;let r=!1;n.forEach(s=>{s.separator&&(r||(r=!0,s.separator.element.focus({preventScroll:!0})));const u=t.get(s.group);u&&o.set(s.group,u.layout)}),Z({cursorFlags:0,hitRegions:n,initialLayoutMap:o,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}),n.length&&e.preventDefault()}const kt=e=>e,fe=()=>{},Ye=1,Je=2,Ze=4,Qe=8,De=3,Te=12;let le;function Oe(){return le===void 0&&(le=!1,typeof window<"u"&&(window.navigator.userAgent.includes("Chrome")||window.navigator.userAgent.includes("Firefox"))&&(le=!0)),le}function It({cursorFlags:e,groups:t,state:n}){let o=0,r=0;switch(n){case"active":case"hover":t.forEach(s=>{if(!s.mutableState.disableCursor)switch(s.orientation){case"horizontal":{o++;break}case"vertical":{r++;break}}})}if(!(o===0&&r===0)){switch(n){case"active":{if(e&&Oe()){const s=(e&Ye)!==0,u=(e&Je)!==0,i=(e&Ze)!==0,a=(e&Qe)!==0;if(s)return i?"se-resize":a?"ne-resize":"e-resize";if(u)return i?"sw-resize":a?"nw-resize":"w-resize";if(i)return"s-resize";if(a)return"n-resize"}break}}return Oe()?o>0&&r>0?"move":o>0?"ew-resize":"ns-resize":o>0&&r>0?"grab":o>0?"col-resize":"row-resize"}}const Ge=new WeakMap;function ye(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ge.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));const o=W();switch(o.state){case"active":case"hover":{const r=It({cursorFlags:o.cursorFlags,groups:o.hitRegions.map(u=>u.group),state:o.state}),s=`*, *:hover {cursor: ${r} !important; }`;if(t===s)return;t=s,r?n.cssRules.length===0?n.insertRule(s):n.replaceSync(s):n.cssRules.length===1&&n.deleteRule(0);break}case"inactive":{t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}}Ge.set(e,{prevStyle:t,styleSheet:n})}function et({document:e,event:t,hitRegions:n,initialLayoutMap:o,mountedGroups:r,pointerDownAtPoint:s,prevCursorFlags:u}){let i=0;n.forEach(l=>{const{group:c,groupSize:m}=l,{orientation:p,panels:v}=c,{disableCursor:w}=c.mutableState;let f=0;s?p==="horizontal"?f=(t.clientX-s.x)/m*100:f=(t.clientY-s.y)/m*100:p==="horizontal"?f=t.clientX<0?-100:100:f=t.clientY<0?-100:100;const h=o.get(c),g=r.get(c);if(!h||!g)return;const{defaultLayoutDeferred:y,derivedPanelConstraints:b,groupSize:S,layout:d,separatorToPanels:L}=g;if(b&&d&&L){const M=oe({delta:f,initialLayout:h,panelConstraints:b,pivotIndices:l.panels.map(C=>v.indexOf(C)),prevLayout:d,trigger:"mouse-or-touch"});if(V(M,d)){if(f!==0&&!w)switch(p){case"horizontal":{i|=f<0?Ye:Je;break}case"vertical":{i|=f<0?Ze:Qe;break}}}else F(l.group,{defaultLayoutDeferred:y,derivedPanelConstraints:b,groupSize:S,layout:M,separatorToPanels:L})}});let a=0;t.movementX===0?a|=u&De:a|=i&De,t.movementY===0?a|=u&Te:a|=i&Te,Et(a),ye(e)}function Ae(e){const t=U(),n=W();switch(n.state){case"active":et({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Ne(e){if(e.defaultPrevented)return;const t=W(),n=U();switch(t.state){case"active":{if(e.buttons===0){Z({cursorFlags:0,state:"inactive"}),t.hitRegions.forEach(o=>{const r=j(o.group.id,!0);F(o.group,r)});return}et({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break}default:{const o=ge(e,n);o.length===0?t.state!=="inactive"&&Z({cursorFlags:0,state:"inactive"}):Z({cursorFlags:0,hitRegions:o,state:"hover"}),ye(e.currentTarget);break}}}function Fe(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(W().state){case"hover":Z({cursorFlags:0,state:"inactive"})}}function _e(e){if(e.defaultPrevented)return;if(e.pointerType==="mouse"&&e.button>0)return;const t=W();switch(t.state){case"active":Z({cursorFlags:0,state:"inactive"}),t.hitRegions.length>0&&(ye(e.currentTarget),t.hitRegions.forEach(n=>{const o=j(n.group.id,!0);F(n.group,o)}),e.preventDefault())}}function je(e){let t=0,n=0;const o={};for(const s of e)if(s.defaultSize!==void 0){t++;const u=T(s.defaultSize);n+=u,o[s.panelId]=u}else o[s.panelId]=void 0;const r=e.length-t;if(r!==0){const s=T((100-n)/r);for(const u of e)u.defaultSize===void 0&&(o[u.panelId]=s)}return o}function Dt(e,t,n){if(!n[0])return;const r=e.panels.find(l=>l.element===t);if(!r||!r.onResize)return;const s=Q({group:e}),u=e.orientation==="horizontal"?r.element.offsetWidth:r.element.offsetHeight,i=r.mutableValues.prevSize,a={asPercentage:T(u/s*100),inPixels:u};r.mutableValues.prevSize=a,r.onResize(a,r.id,i)}function Tt(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 Ot({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:o}){if(n<=0||t<=0||n===t)return o;let r=0,s=0,u=!1;const i=new Map,a=[];for(const m of e.panels){const p=o[m.id]??0;switch(m.panelConstraints.groupResizeBehavior){case"preserve-pixel-size":{u=!0;const v=p/100*n,w=T(v/t*100);i.set(m.id,w),r+=w;break}case"preserve-relative-size":default:{a.push(m.id),s+=p;break}}}if(!u||a.length===0)return o;const l=100-r,c={...o};if(i.forEach((m,p)=>{c[p]=m}),s>0)for(const m of a){const p=o[m]??0;c[m]=T(p/s*l)}else{const m=T(l/a.length);for(const p of a)c[p]=m}return c}function Gt(e,t){const n=e.map(r=>r.id),o=Object.keys(t);if(n.length!==o.length)return!1;for(const r of n)if(!o.includes(r))return!1;return!0}const X=new Map;function At(e){let t=!0;R(e.element.ownerDocument.defaultView,"Cannot register an unmounted Group");const n=e.element.ownerDocument.defaultView.ResizeObserver,o=new Set,r=new Set,s=new n(f=>{for(const h of f){const{borderBoxSize:g,target:y}=h;if(y===e.element){if(t){const b=Q({group:e});if(b===0)return;const S=j(e.id);if(!S)return;const d=pe(e),L=S.defaultLayoutDeferred?je(d):S.layout,M=Ot({group:e,nextGroupSize:b,prevGroupSize:S.groupSize,prevLayout:L}),C=B({layout:M,panelConstraints:d});if(!S.defaultLayoutDeferred&&V(S.layout,C)&&Tt(S.derivedPanelConstraints,d)&&S.groupSize===b)return;F(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:d,groupSize:b,layout:C,separatorToPanels:S.separatorToPanels})}}else Dt(e,y,g)}});s.observe(e.element),e.panels.forEach(f=>{R(!o.has(f.id),`Panel ids must be unique; id "${f.id}" was used more than once`),o.add(f.id),f.onResize&&s.observe(f.element)});const u=Q({group:e}),i=pe(e),a=e.panels.map(({id:f})=>f).join(",");let l=e.mutableState.defaultLayout;l&&(Gt(e.panels,l)||(l=void 0));const c=e.mutableState.layouts[a]??l??je(i),m=B({layout:c,panelConstraints:i}),p=e.element.ownerDocument;X.set(p,(X.get(p)??0)+1);const v=new Map;return Be(e).forEach(f=>{f.separator&&v.set(f.separator,f.panels)}),F(e,{defaultLayoutDeferred:u===0,derivedPanelConstraints:i,groupSize:u,layout:m,separatorToPanels:v}),e.separators.forEach(f=>{R(!r.has(f.id),`Separator ids must be unique; id "${f.id}" was used more than once`),r.add(f.id),f.element.addEventListener("keydown",ke)}),X.get(p)===1&&(p.addEventListener("dblclick",Ee,!0),p.addEventListener("pointerdown",Ie,!0),p.addEventListener("pointerleave",Ae),p.addEventListener("pointermove",Ne),p.addEventListener("pointerout",Fe),p.addEventListener("pointerup",_e,!0)),function(){t=!1,X.set(p,Math.max(0,(X.get(p)??0)-1)),yt(e),e.separators.forEach(h=>{h.element.removeEventListener("keydown",ke)}),X.get(p)||(p.removeEventListener("dblclick",Ee,!0),p.removeEventListener("pointerdown",Ie,!0),p.removeEventListener("pointerleave",Ae),p.removeEventListener("pointermove",Ne),p.removeEventListener("pointerout",Fe),p.removeEventListener("pointerup",_e,!0)),s.disconnect()}}function Nt(){const[e,t]=z.useState({}),n=z.useCallback(()=>t({}),[]);return[e,n]}function ve(e){const t=z.useId();return`${e??t}`}const K=typeof window<"u"?z.useLayoutEffect:z.useEffect;function te(e){const t=z.useRef(e);return K(()=>{t.current=e},[e]),z.useCallback((...n)=>t.current?.(...n),[t])}function be(...e){return te(t=>{e.forEach(n=>{if(n)switch(typeof n){case"function":{n(t);break}case"object":{n.current=t;break}}})})}function ze(e){const t=z.useRef({...e});return K(()=>{for(const n in e)t.current[n]=e[n]},[e]),t.current}const tt=z.createContext(null);function Ft(e,t){const n=z.useRef({getLayout:()=>({}),setLayout:kt});z.useImperativeHandle(t,()=>n.current,[]),K(()=>{Object.assign(n.current,Xe({groupId:e}))})}function nt({children:e,className:t,defaultLayout:n,disableCursor:o,disabled:r,elementRef:s,groupRef:u,id:i,onLayoutChange:a,onLayoutChanged:l,orientation:c="horizontal",resizeTargetMinimumSize:m={coarse:20,fine:10},style:p,...v}){const w=z.useRef({onLayoutChange:{},onLayoutChanged:{}}),f=te(x=>{V(w.current.onLayoutChange,x)||(w.current.onLayoutChange=x,a?.(x))}),h=te(x=>{V(w.current.onLayoutChanged,x)||(w.current.onLayoutChanged=x,l?.(x))}),g=ve(i),y=z.useRef(null),[b,S]=Nt(),d=z.useRef({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:m,separators:[]}),L=be(y,s);Ft(g,u);const M=te((x,P)=>{const k=W(),E=Le(x),D=j(x);if(D){let O=!1;switch(k.state){case"active":{O=k.hitRegions.some($=>$.group===E);break}}return{flexGrow:D.layout[P]??1,pointerEvents:O?"none":void 0}}return{flexGrow:n?.[P]??1}}),C=ze({defaultLayout:n,disableCursor:o}),q=z.useMemo(()=>({get disableCursor(){return!!C.disableCursor},getPanelStyles:M,id:g,orientation:c,registerPanel:x=>{const P=d.current;return P.panels=he(c,[...P.panels,x]),S(),()=>{P.panels=P.panels.filter(k=>k!==x),S()}},registerSeparator:x=>{const P=d.current;return P.separators=he(c,[...P.separators,x]),S(),()=>{P.separators=P.separators.filter(k=>k!==x),S()}},togglePanelDisabled:(x,P)=>{const E=d.current.panels.find($=>$.id===x);E&&(E.panelConstraints.disabled=P);const D=Le(g),O=j(g);D&&O&&F(D,{...O,derivedPanelConstraints:pe(D)})},toggleSeparatorDisabled:(x,P)=>{const E=d.current.separators.find(D=>D.id===x);E&&(E.disabled=P)}}),[M,g,S,c,C]),_=z.useRef(null);return K(()=>{const x=y.current;if(x===null)return;const P=d.current;let k;if(C.defaultLayout!==void 0&&Object.keys(C.defaultLayout).length===P.panels.length){k={};for(const ee of P.panels){const ie=C.defaultLayout[ee.id];ie!==void 0&&(k[ee.id]=ie)}}const E={disabled:!!r,element:x,id:g,mutableState:{defaultLayout:k,disableCursor:!!C.disableCursor,expandedPanelSizes:d.current.lastExpandedPanelSizes,layouts:d.current.layouts},orientation:c,panels:P.panels,resizeTargetMinimumSize:P.resizeTargetMinimumSize,separators:P.separators};_.current=E;const D=At(E),{defaultLayoutDeferred:O,derivedPanelConstraints:$,layout:we}=j(E.id,!0);!O&&$.length>0&&(f(we),h(we));const rt=me(g,ee=>{const{defaultLayoutDeferred:ie,derivedPanelConstraints:Pe,layout:re}=ee.next;if(ie||Pe.length===0)return;const st=E.panels.map(({id:N})=>N).join(",");E.mutableState.layouts[st]=re,Pe.forEach(N=>{if(N.collapsible){const{layout:ce}=ee.prev??{};if(ce){const lt=I(N.collapsedSize,re[N.panelId]),ut=I(N.collapsedSize,ce[N.panelId]);lt&&!ut&&(E.mutableState.expandedPanelSizes[N.panelId]=ce[N.panelId])}}});const at=W().state!=="active";f(re),at&&h(re)});return()=>{_.current=null,D(),rt()}},[r,g,h,f,c,b,C]),z.useEffect(()=>{const x=_.current;x&&(x.mutableState.defaultLayout=n,x.mutableState.disableCursor=!!o)}),ne.jsx(tt.Provider,{value:q,children:ne.jsx("div",{...v,className:t,"data-group":!0,"data-testid":g,id:g,ref:L,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:c==="horizontal"?"row":"column",flexWrap:"nowrap",touchAction:c==="horizontal"?"pan-y":"pan-x"},children:e})})}nt.displayName="Group";function de(e,t){return`react-resizable-panels:${[e,...t].join(":")}`}function _t({debounceSaveMs:e=100,panelIds:t,storage:n=localStorage,...o}){const r=t!==void 0,s="id"in o?o.id:o.groupId,u=de(s,t??[]),i=z.useSyncExternalStore(jt,()=>n.getItem(u),()=>n.getItem(u)),a=z.useMemo(()=>i?JSON.parse(i):void 0,[i]),l=z.useRef(null),c=z.useCallback(()=>{const v=l.current;v&&(l.current=null,clearTimeout(v))},[]);z.useLayoutEffect(()=>()=>{c()},[c]);const m=z.useCallback(v=>{c();let w;r?w=de(s,Object.keys(v)):w=de(s,[]);try{n.setItem(w,JSON.stringify(v))}catch(f){console.error(f)}},[c,r,s,n]),p=z.useCallback(v=>{c(),e===0?m(v):l.current=setTimeout(()=>{m(v)},e)},[c,e,m]);return{defaultLayout:a,onLayoutChange:p,onLayoutChanged:m}}function jt(){return function(){}}function $t(){return z.useState(null)}function Ht(){return z.useRef(null)}function xe(){const e=z.useContext(tt);return R(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function Vt(e,t){const{id:n}=xe(),o=z.useRef({collapse:fe,expand:fe,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:fe});z.useImperativeHandle(t,()=>o.current,[]),K(()=>{Object.assign(o.current,qe({groupId:n,panelId:e}))})}function ot({children:e,className:t,collapsedSize:n="0%",collapsible:o=!1,defaultSize:r,disabled:s,elementRef:u,groupResizeBehavior:i="preserve-relative-size",id:a,maxSize:l="100%",minSize:c="0%",onResize:m,panelRef:p,style:v,...w}){const f=!!a,h=ve(a),g=ze({disabled:s}),y=z.useRef(null),b=be(y,u),{getPanelStyles:S,id:d,orientation:L,registerPanel:M,togglePanelDisabled:C}=xe(),q=m!==null,_=te((P,k,E)=>{m?.(P,a,E)});K(()=>{const P=y.current;if(P!==null){const k={element:P,id:h,idIsStable:f,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:q?_:void 0,panelConstraints:{groupResizeBehavior:i,collapsedSize:n,collapsible:o,defaultSize:r,disabled:g.disabled,maxSize:l,minSize:c}};return M(k)}},[i,n,o,r,q,h,f,l,c,_,M,g]),z.useEffect(()=>{C(h,!!s)},[s,h,C]),Vt(h,p);const x=z.useSyncExternalStore(P=>me(d,P),()=>JSON.stringify(S(d,h)),()=>JSON.stringify(S(d,h)));return ne.jsx("div",{...w,"aria-disabled":s||void 0,"data-panel":!0,"data-testid":h,id:h,ref:b,style:{...Bt,display:"flex",flexBasis:0,flexShrink:1,overflow:"visible",...JSON.parse(x)},children:ne.jsx("div",{className:t,style:{maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...v,touchAction:L==="horizontal"?"pan-y":"pan-x"},children:e})})}ot.displayName="Panel";const Bt={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function Wt(){return z.useState(null)}function Ut(){return z.useRef(null)}function Kt({layout:e,panelConstraints:t,panelId:n,panelIndex:o}){let r,s;const u=e[n],i=t.find(a=>a.panelId===n);if(i){const a=i.maxSize,l=i.collapsible?i.collapsedSize:i.minSize,c=[o,o+1];s=B({layout:oe({delta:l-u,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e}),panelConstraints:t})[n],r=B({layout:oe({delta:a-u,initialLayout:e,panelConstraints:t,pivotIndices:c,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:r,valueMin:s,valueNow:u}}function it({children:e,className:t,disabled:n,elementRef:o,id:r,style:s,...u}){const i=ve(r),a=ze({disabled:n}),[l,c]=z.useState({}),[m,p]=z.useState("inactive"),v=z.useRef(null),w=be(v,o),{disableCursor:f,id:h,orientation:g,registerSeparator:y,toggleSeparatorDisabled:b}=xe(),S=g==="horizontal"?"vertical":"horizontal";K(()=>{const L=v.current;if(L!==null){const M={disabled:a.disabled,element:L,id:i},C=y(M),q=Mt(x=>{p(x.next.state!=="inactive"&&x.next.hitRegions.some(P=>P.separator===M)?x.next.state:"inactive")}),_=me(h,x=>{const{derivedPanelConstraints:P,layout:k,separatorToPanels:E}=x.next,D=E.get(M);if(D){const O=D[0],$=D.indexOf(O);c(Kt({layout:k,panelConstraints:P,panelId:O.id,panelIndex:$}))}});return()=>{q(),_(),C()}}},[h,i,y,a]),z.useEffect(()=>{b(i,!!n)},[n,i,b]);let d;return n&&!f&&(d="not-allowed"),ne.jsx("div",{...u,"aria-controls":l.valueControls,"aria-disabled":n||void 0,"aria-orientation":S,"aria-valuemax":l.valueMax,"aria-valuemin":l.valueMin,"aria-valuenow":l.valueNow,children:e,className:t,"data-separator":n?"disabled":m,"data-testid":i,id:i,ref:w,role:"separator",style:{flexBasis:"auto",cursor:d,...s,flexGrow:0,flexShrink:0,touchAction:"none"},tabIndex:n?void 0:0})}it.displayName="Separator";exports.Group=nt;exports.Panel=ot;exports.Separator=it;exports.isCoarsePointer=Ve;exports.useDefaultLayout=_t;exports.useGroupCallbackRef=$t;exports.useGroupRef=Ht;exports.usePanelCallbackRef=Wt;exports.usePanelRef=Ut;
2
2
  //# sourceMappingURL=react-resizable-panels.cjs.map