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