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