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