@aiquants/resize-panels 1.7.0 → 1.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -7
- package/dist/GlobalDebugOverlay-DYCR0FIu.js +252 -0
- package/dist/GlobalDebugOverlay-afs0vF-Q.cjs +1 -0
- package/dist/GlobalDebugOverlay.d.ts +21 -0
- package/dist/GlobalDebugOverlay.d.ts.map +1 -0
- package/dist/Panel.d.ts.map +1 -1
- package/dist/PanelGroup.d.ts.map +1 -1
- package/dist/PanelResizeHandle.d.ts.map +1 -1
- package/dist/debugOverlayStore-Cntyxboe.js +141 -0
- package/dist/debugOverlayStore-Dkl-fHoa.cjs +1 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/index-BzgId8aQ.js +1972 -0
- package/dist/index-xTV-c0PN.cjs +2 -0
- package/dist/index.cjs +1 -2
- package/dist/index.js +17 -2277
- package/dist/reducer.d.ts.map +1 -1
- package/dist/resize-panels.css +1 -1
- package/dist/styles/resize-panels.css +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/simple-logger.d.ts +19 -6
- package/dist/utils/simple-logger.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const s=require("react"),X=require("react/jsx-runtime"),Ge=require("tailwind-merge"),et=s.createContext(null),Xe=()=>{const e=s.useContext(et);if(!e)throw new Error("usePanelGroup must be used within a PanelGroup");return e},pt=(e,t=0)=>{if(!Number.isFinite(e))return e;const n=10**t,f=e*n,r=Math.floor(f),a=f-r,i=Number.EPSILON*Math.max(1,Math.abs(f));return a<.5-i?r/n:a>.5+i?(r+1)/n:(r%2===0?r:r+1)/n},zt=12,ot=8,Rt=8,Bt=8,at=10,ht=.05,gt=10,Ft=.05,It=20,Nt=.05,lt=0,mt=6,Pe=(e,t)=>t<=0?0:pt(e/t*100,mt),je=(e,t)=>!e||t<=0?0:e/100*t,St=(e,t="percentage")=>{if(e!==void 0)return typeof e=="number"?{value:e,unit:t}:e},$=(e,t,n)=>e?typeof e=="number"?e/100*n:e.unit==="pixels"?e.value:e.value/100*n:t,de=(e,t,n)=>Math.min(Math.max(e,t),n),Qe=e=>{if(!Number.isFinite(e)||e<=0)return lt;const t=e*ht,n=Math.min(zt,gt,t);return Math.max(lt,n)},xt=(e,t,n,f={})=>{if(Math.abs(t)<=0)return t;const r=f.enforceAutoMinSize??!1,a=e.map((l,u)=>({panel:l,index:u})).filter(({panel:l})=>!l.collapsed&&(l.sizeUnit==="pixels"||l.originalPixelSize!==void 0));if(a.length===0)return t;const i=t>0,z=[...a].sort((l,u)=>{const o=l.panel.pixelAdjustPriority??l.index+1,S=u.panel.pixelAdjustPriority??u.index+1;return o===S?i?u.index-l.index:l.index-u.index:i?S-o:o-S});let g=t;const h=l=>{for(const{index:u}of z){if(Math.abs(g)<=0)break;const o=e[u];if(!o||o.collapsed)continue;const S=$(o.minSize,0,n),C=$(o.maxSize,n,n),M=r?$(o.autoMinSize,0,n):0,E=Math.max(S,M),R=o.preferredPixelSize!==void 0?de(o.preferredPixelSize,E,C):o.size,T=o.collapseFromStart||o.collapseFromEnd;if(g>0){if(Math.abs(o.size)<=0&&(o.percentageSize??0)<=0)continue;const O=Math.max(o.size,R),re=l?Math.min(C,O):C,Q=Math.max(0,re-o.size);if(Q<=0)continue;const fe=Math.min(Q,g);if(fe<=0)continue;const k=o.size+fe,H=Pe(k,n),w=T?k:o.sizeBeforeCollapse,V=T?o.measuredPixelSizeBeforeCollapse??o.measuredPixelSize??k:o.measuredPixelSizeBeforeCollapse;e[u]={...o,size:k,percentageSize:H,sizeBeforeCollapse:w,measuredPixelSizeBeforeCollapse:V,measuredPixelSize:void 0,measuredPercentageSize:void 0},g-=fe}else{const B=l?R:E,O=Math.max(0,o.size-B);if(O<=0)continue;const re=Math.min(O,Math.abs(g));if(re<=0)continue;const Q=o.size-re,fe=Pe(Q,n),k=T?Q:o.sizeBeforeCollapse,H=T?o.measuredPixelSizeBeforeCollapse??o.measuredPixelSize??Q:o.measuredPixelSizeBeforeCollapse;e[u]={...o,size:Q,percentageSize:fe,sizeBeforeCollapse:k,measuredPixelSizeBeforeCollapse:H,measuredPixelSize:void 0,measuredPercentageSize:void 0},g+=re}}};return h(!0),(i&&g>0||!i&&g<0)&&h(!1),g},$e=e=>{if(!e)return 0;const t=parseFloat(e);return Number.isFinite(t)?t:0},Ie=(e,t)=>{const n=e.getBoundingClientRect(),f=typeof window<"u"?window.getComputedStyle(e):null,r=f?$e(f.borderLeftWidth)+$e(f.borderRightWidth):0,a=f?$e(f.borderTopWidth)+$e(f.borderBottomWidth):0;if(t==="horizontal"){const h=n.width>0?n.width:e.offsetWidth,l=n.width>0?Math.max(0,n.width-r):e.clientWidth,u=e.offsetWidth>0?e.offsetWidth:e.clientWidth+r;return{inner:l>0?l:Math.max(0,e.clientWidth),outer:h>0?h:Math.max(0,u)}}const i=n.height>0?n.height:e.offsetHeight,z=n.height>0?Math.max(0,n.height-a):e.clientHeight,g=e.offsetHeight>0?e.offsetHeight:e.clientHeight+a;return{inner:z>0?z:Math.max(0,e.clientHeight),outer:i>0?i:Math.max(0,g)}},Pt=(e,t)=>{try{localStorage.setItem(`panel-layout-${e}`,JSON.stringify(t))}catch(n){console.warn("Failed to save panel layout:",n)}},bt=e=>{try{const t=localStorage.getItem(`panel-layout-${e}`);return t?JSON.parse(t):null}catch(t){return console.warn("Failed to load panel layout:",t),null}};var Le=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.NONE=4]="NONE",e))(Le||{});const xe=class xe{constructor(t=2,n="[resize-panels]",f=console){this.level=t,this.prefix=n,this.impl=f,xe.instances.add(this)}static setLevel(t){for(const n of xe.instances)n.setLevel(t)}setLevel(t){this.level=t}static setImplementation(t){for(const n of xe.instances)n.setImplementation(t)}setImplementation(t){this.impl=t}static setPrefix(t){for(const n of xe.instances)n.setPrefix(t)}setPrefix(t){this.prefix=t}enabledFor(t){return this.level<=t}formatMessage(t){return typeof t=="string"?[`${this.prefix} ${t}`]:[this.prefix,t]}static debug(t,...n){xe.instance.debug(t,...n)}debug(t,...n){this.level<=0&&this.impl.debug(...this.formatMessage(t),...n)}static info(t,...n){xe.instance.info(t,...n)}info(t,...n){this.level<=1&&this.impl.info(...this.formatMessage(t),...n)}static warn(t,...n){xe.instance.warn(t,...n)}warn(t,...n){this.level<=2&&this.impl.warn(...this.formatMessage(t),...n)}static error(t,...n){xe.instance.error(t,...n)}error(t,...n){this.level<=3&&this.impl.error(...this.formatMessage(t),...n)}};xe.instances=new Set,xe.instance=new xe(2,"[resize-panels]");let He=xe;const ue=new He(Le.INFO,"[resize-panels]"),Be=1e-9,Me=e=>e.map(t=>({id:t.id,size:t.size,percentageSize:t.percentageSize,preferredPercentageSize:t.preferredPercentageSize,sizeBeforeCollapse:t.sizeBeforeCollapse,percentageSizeBeforeCollapse:t.percentageSizeBeforeCollapse,preferredPercentageSizeBeforeCollapse:t.preferredPercentageSizeBeforeCollapse,measuredPercentageSize:t.measuredPercentageSize,excludeFromAutoGrowth:t.excludeFromAutoGrowth??!1,collapsed:t.collapsed??!1,collapseFromStart:t.collapseFromStart,collapseFromEnd:t.collapseFromEnd,collapsedByDirection:t.collapsedByDirection??null})),We=e=>e?Me([e])[0]:null,De=e=>e?!!(e.collapseFromStart||e.collapseFromEnd):!1,Ve=(e,t)=>{if(!Number.isFinite(t)||t<=0)return e;const n=e.map(g=>({...g})),f=[];for(let g=0;g<n.length;g+=1){const h=n[g];if(h.collapsed){n[g]={...h,size:0,percentageSize:0};continue}const l=Math.max(0,$(h.minSize,0,t)),u=Math.max(0,$(h.autoMinSize,0,t)),o=Math.max(l,u),S=Math.max(.001,o),C=$(h.maxSize,t,t),M=Math.max(o,C),E=h.sizeUnit==="pixels"||h.originalPixelSize!==void 0,R=Math.max(0,h.size);let T=o;if(E){const O=h.preferredPixelSize??h.size??h.originalPixelSize??o;T=de(O,o,M)}else{const O=h.preferredPercentageSize??h.percentageSize??Pe(h.size,t),re=je(O,t);T=de(re,o,M)}const B=!E&&(h.excludeFromAutoGrowth??!1)&&R<=S;f.push({index:g,isPixelPanel:E,minSize:o,maxSize:M,preferredSize:T,priority:h.pixelAdjustPriority??g+1,flexPriority:E?void 0:h.flexAdjustPriority,excludeFromGrowth:B})}if(f.length===0)return n;const r=new Map;let a=0;for(const g of f)r.set(g.index,g.minSize),a+=g.minSize;let i=t-a;const z=(g,h)=>{if(h<=0)return 0;const l=r.get(g.index)??g.minSize,u=Math.max(0,g.maxSize-l);if(u<=0)return 0;const o=Math.min(h,u);return r.set(g.index,l+o),o};if(i>0){const g=l=>{for(;i>1e-6;){let o=0;const S=[];for(const E of l){if(!E.isPixelPanel&&E.excludeFromGrowth)continue;const R=r.get(E.index)??E.minSize,T=Math.min(E.preferredSize,E.maxSize),B=Math.max(0,T-R);B>1e-6&&(o+=B,S.push({descriptor:E,capacity:B}))}if(S.length===0||o<=1e-6)break;let C=0;const M=i;for(const E of S){if(i<=1e-6)break;if(!E.descriptor.isPixelPanel&&E.descriptor.excludeFromGrowth)continue;const R=M*E.capacity/o,T=Math.min(E.capacity,R);if(T<=0)continue;const B=z(E.descriptor,T);B>0&&(i-=B,C+=B)}if(C<=1e-6)break}},h=f.filter(l=>l.isPixelPanel);h.sort((l,u)=>u.priority-l.priority);for(const l of h){if(i<=0)break;const u=r.get(l.index)??l.minSize,o=Math.min(l.preferredSize,l.maxSize),S=Math.max(0,o-u);if(S<=0)continue;const C=z(l,Math.min(S,i));C>0&&(i-=C)}if(i>0){const l=f.filter(u=>!u.isPixelPanel);if(l.length>0){const u=l.filter(o=>o.flexPriority!==void 0&&!o.excludeFromGrowth);if(u.length>0){u.sort((o,S)=>(S.flexPriority??0)-(o.flexPriority??0));for(const o of u){if(i<=0)break;if(o.excludeFromGrowth)continue;const S=r.get(o.index)??o.minSize,C=Math.min(o.preferredSize,o.maxSize),M=Math.max(0,C-S);if(M<=0)continue;const E=z(o,Math.min(M,i));E>0&&(i-=E)}}if(i>0){const o=u.length>0?l.filter(S=>S.flexPriority===void 0&&!S.excludeFromGrowth):l.filter(S=>!S.excludeFromGrowth);o.length>0&&g(o)}}}}if(i>0){let g=i;for(;;){let h=0;const l=[];for(const o of f){if(!o.isPixelPanel&&o.excludeFromGrowth)continue;const S=r.get(o.index)??o.minSize,C=o.isPixelPanel?Math.min(o.maxSize,o.preferredSize):o.maxSize,M=Math.max(0,C-S);M>0&&(l.push(o),h+=M)}if(h<=0)break;const u=i;for(const o of l){if(i<=0)break;if(!o.isPixelPanel&&o.excludeFromGrowth)continue;const S=r.get(o.index)??o.minSize,C=o.isPixelPanel?Math.min(o.maxSize,o.preferredSize):o.maxSize,M=Math.max(0,C-S);if(M<=0)continue;const E=u*M/h,R=z(o,Math.min(M,E));R>0&&(i-=R)}if(i<=1e-6||Math.abs(g-i)<=1e-6)break;g=i}i=Math.max(0,i)}for(const g of f){const h=r.get(g.index)??g.minSize,l=n[g.index],u=De(l),o=u?h:l.sizeBeforeCollapse,S=u?l.measuredPixelSizeBeforeCollapse??l.measuredPixelSize??h:l.measuredPixelSizeBeforeCollapse,C=t>0?Pe(h,t):0;n[g.index]={...l,size:h,percentageSize:C,preferredPercentageSize:l.preferredPercentageSize,preferredPixelSize:g.isPixelPanel?l.preferredPixelSize??h:l.preferredPixelSize,sizeBeforeCollapse:o,measuredPixelSizeBeforeCollapse:S,measuredPixelSize:void 0,measuredPercentageSize:void 0}}return Ae(n)},Ae=e=>{let t=0;for(const r of e)r.collapsed||(t+=Math.max(r.size,0));if(t<=0){let r=!1;const a=e.map(i=>(i.percentageSize??0)!==0?(r=!0,{...i,percentageSize:0,measuredPercentageSize:i.measuredPercentageSize!==void 0?0:i.measuredPercentageSize}):!i.collapsed&&i.sizeBeforeCollapse!==i.size?(r=!0,{...i,sizeBeforeCollapse:i.size}):i);return r?a:e}let n=!1;const f=e.map(r=>{if(r.collapsed)return(r.percentageSize??0)!==0?(n=!0,{...r,percentageSize:0,measuredPercentageSize:r.measuredPercentageSize!==void 0?0:r.measuredPercentageSize}):r;const a=Pe(r.size,t),i=r.measuredPercentageSize,h=(i!==void 0?Math.abs(i-a):1/0)<1e-4&&i!==void 0?i:a,l=pt(h,mt),o=Math.abs((r.percentageSize??0)-l)>0||r.percentageSize===void 0,S=r.sizeBeforeCollapse===void 0||r.sizeBeforeCollapse!==r.size,C=De(r),M=C&&S,E=r.measuredPixelSize??r.size,R=C&&(r.measuredPixelSizeBeforeCollapse===void 0||r.measuredPixelSizeBeforeCollapse!==E);if(!(o||M||R))return r;n=!0;const T=M?r.size:r.sizeBeforeCollapse,B=R?E:r.measuredPixelSizeBeforeCollapse;return{...r,percentageSize:l,sizeBeforeCollapse:T,measuredPixelSizeBeforeCollapse:B,collapsedByDirection:r.collapsed?r.collapsedByDirection??null:null}});return n?f:e},qe=(e,t)=>{if(t<=0)return!1;const n=[];let f=0;for(let l=0;l<e.length;l+=1){const u=e[l];!u||u.collapsed||(n.push(l),f+=u.size)}if(n.length===0)return!1;let r=t-f;if(Math.abs(r)<=0)return!1;let a=!1;const i=l=>{const u=e[l],o=$(u.minSize,0,t),S=$(u.autoMinSize,0,t),C=Math.max(o,S),M=$(u.maxSize,t,t),E=u.sizeUnit==="percentage"&&u.originalPixelSize===void 0;return{index:l,minSize:C,maxSize:M,isFlexible:E}},z=(l,u)=>{if(!Number.isFinite(u)||Math.abs(u)<=0)return;const o=e[l];if(!o)return;const S=Math.max(0,o.size+u);if(Math.abs(S-o.size)<=0)return;const C=Pe(S,t),M=De(o),E=M?S:o.sizeBeforeCollapse,R=M?o.measuredPixelSizeBeforeCollapse??o.measuredPixelSize??S:o.measuredPixelSizeBeforeCollapse;e[l]={...o,size:S,percentageSize:C,sizeBeforeCollapse:E,measuredPixelSizeBeforeCollapse:R,measuredPixelSize:void 0,measuredPercentageSize:void 0},r-=u,a=!0},g=l=>{for(const u of l){if(Math.abs(r)<=0)break;const o=e[u.index];if(!o||o.collapsed)continue;const S=o.size;if(r>0){const C=Math.max(0,u.maxSize-S);if(C<=0)continue;const M=Math.min(C,r);if(M<=0)continue;z(u.index,M)}else{const C=Math.max(0,S-u.minSize);if(C<=0)continue;const M=Math.min(C,Math.abs(r));if(M<=0)continue;z(u.index,-M)}}},h=n.map(l=>i(l)).filter(l=>l.isFlexible);if(h.length>0&&g(h),Math.abs(r)>0){const l=r;r=xt(e,r,t,{enforceAutoMinSize:!0}),Math.abs(r-l)>0&&(a=!0)}return a},ct=(e,t,n)=>{if(!(e.sizeUnit==="pixels"||e.originalPixelSize!==void 0)||e.pixelAdjustPriority!==void 0)return e;const r=t.filter((i,z)=>z!==n&&(i.sizeUnit==="pixels"||i.originalPixelSize!==void 0)).map(i=>i.pixelAdjustPriority).filter(i=>i!==void 0),a=r.length>0?Math.max(...r)+1:1;return{...e,pixelAdjustPriority:a}},At=(e,t)=>{switch(t.type){case"REGISTER_PANEL":{ue.debug("REGISTER_PANEL",t.panel);const n=e.findIndex(a=>a.id===t.panel.id);if(n>=0){const a=[...e],i=e[n],z={...i,minSize:t.panel.minSize,maxSize:t.panel.maxSize,collapseFromStart:t.panel.collapseFromStart,collapseFromEnd:t.panel.collapseFromEnd,collapsedByDirection:t.panel.collapsedByDirection!==void 0?t.panel.collapsedByDirection:i.collapsedByDirection,sizeUnit:t.panel.sizeUnit,originalPixelSize:t.panel.originalPixelSize,preferredPercentageSize:t.panel.preferredPercentageSize!==void 0?t.panel.preferredPercentageSize:i.preferredPercentageSize,preferredPercentageSizeBeforeCollapse:t.panel.preferredPercentageSizeBeforeCollapse!==void 0?t.panel.preferredPercentageSizeBeforeCollapse:i.preferredPercentageSizeBeforeCollapse,percentageSizeBeforeCollapse:t.panel.percentageSizeBeforeCollapse!==void 0?t.panel.percentageSizeBeforeCollapse:i.percentageSizeBeforeCollapse,pixelAdjustPriority:t.panel.pixelAdjustPriority!==void 0?t.panel.pixelAdjustPriority:i.pixelAdjustPriority,flexAdjustPriority:t.panel.flexAdjustPriority!==void 0?t.panel.flexAdjustPriority:i.flexAdjustPriority,autoMinSize:t.panel.autoMinSize!==void 0?t.panel.autoMinSize:i.autoMinSize,excludeFromAutoGrowth:t.panel.excludeFromAutoGrowth!==void 0?t.panel.excludeFromAutoGrowth:i.excludeFromAutoGrowth},g=ct(z,e,n);if(ue.debug("register panel (update)",{panelId:g.id,incoming:We(t.panel),previous:We(i),next:We(g)}),a[n]=g,!g.collapsed){const h=a.reduce((l,u)=>u.collapsed?l:l+u.size,0);if(h>0){const l=$(g.minSize,0,h),u=Math.max(l,$(g.maxSize,h,h));if(g.size<l-Be||g.size>u+Be)return Ve(a,h)}}return a}const f={...t.panel},r=ct(f,e);return ue.debug("register panel (insert)",{panelId:r.id,incoming:We(r),previousLength:e.length}),[...e,r]}case"UNREGISTER_PANEL":{ue.debug("UNREGISTER_PANEL",t.id);const n=e.filter(r=>r.id!==t.id),f=Ae(n);return ue.enabledFor(Le.DEBUG)&&ue.debug("unregister panel",{panelId:t.id,previous:Me(e),filtered:Me(n),next:Me(f)}),f}case"RESIZE_PANELS":{ue.debug("RESIZE_PANELS",t.leftId,t.rightId,t.leftSize,t.rightSize);const n=e.findIndex(I=>I.id===t.leftId),f=e.findIndex(I=>I.id===t.rightId);if(n===-1||f===-1)return e;const r=[...e],a=r[n],i=r[f];if(a.collapsed||i.collapsed||t.leftSize===a.size&&t.rightSize===i.size)return e;const z=t.containerSize??e.reduce((I,W)=>I+W.size,0),g=$(a.minSize,0,z),h=$(a.maxSize,z,z),l=$(i.minSize,0,z),u=$(i.maxSize,z,z),o=a.size+i.size,S=e.reduce((I,W)=>W.collapsed?I:I+W.size,0),C=S-o,M=g+l,E=h+u,R=de(t.leftSize+t.rightSize,M,E);let T=z>0?z-C:R;Number.isFinite(T)||(T=R);const B=de(Math.max(R,T),M,E),O=I=>({min:Math.max(g,I-u),max:Math.min(h,I-l)}),re=I=>({min:Math.max(l,I-h),max:Math.min(u,I-g)}),Q=Math.abs(t.leftSize-a.size),fe=Math.abs(t.rightSize-i.size),k=Q>=fe;let H=a.size,w=i.size;if(k){const I=O(B);if(I.min>I.max+Be)return e;const W=de(t.leftSize,I.min,I.max),ae=B-W;if(ae<l-Be||ae>u+Be)return e;H=W,w=de(ae,l,u)}else{const I=re(B);if(I.min>I.max+Be)return e;const W=de(t.rightSize,I.min,I.max),ae=B-W;if(ae<g-Be||ae>h+Be)return e;w=W,H=de(ae,g,h)}const V=H+w;if(Math.abs(B-V)>Be)return e;const le=S-a.size-i.size+V,j=z>0?z:le,U=j>0?Pe(H,j):0,ee=j>0?Pe(w,j):0,G=a.sizeUnit==="pixels"||a.originalPixelSize!==void 0?H:a.preferredPixelSize,ne=i.sizeUnit==="pixels"||i.originalPixelSize!==void 0?w:i.preferredPixelSize,ye=$(a.autoMinSize,0,z),ze=$(i.autoMinSize,0,z),ce=Math.max(.001,ye),Ee=Math.max(.001,ze),ge=a.sizeUnit==="percentage"&&a.originalPixelSize===void 0,se=i.sizeUnit==="percentage"&&i.originalPixelSize===void 0;let oe=a.excludeFromAutoGrowth,he=i.excludeFromAutoGrowth;ge&&(H<=ce?oe=!0:H>ce&&(oe=!1)),se&&(w<=Ee?he=!0:w>Ee&&(he=!1));const me=De(a),be=De(i);return r[n]={...a,size:H,percentageSize:U,preferredPercentageSize:U>0?U:a.preferredPercentageSize,preferredPixelSize:G,sizeBeforeCollapse:me?H:a.sizeBeforeCollapse,measuredPixelSize:void 0,measuredPercentageSize:void 0,excludeFromAutoGrowth:oe},r[f]={...i,size:w,percentageSize:ee,preferredPercentageSize:ee>0?ee:i.preferredPercentageSize,preferredPixelSize:ne,sizeBeforeCollapse:be?w:i.sizeBeforeCollapse,measuredPixelSize:void 0,measuredPercentageSize:void 0,excludeFromAutoGrowth:he},z>0&&qe(r,z)?Ae(r):r}case"SET_PANELS":{ue.debug("SET_PANELS",t.panels);const n=ue.enabledFor(Le.DEBUG),f=t.panels.map(h=>{const l=h.sizeUnit==="pixels"||h.originalPixelSize!==void 0,u=h.preferredPercentageSize!==void 0?h.preferredPercentageSize:h.percentageSize,o=h.preferredPixelSize!==void 0?h.preferredPixelSize:l?h.size:h.preferredPixelSize;return{...h,preferredPercentageSize:u,preferredPixelSize:o}}),r=Me(e),a=n?Me(f):null,i=Ae(f),z=Me(i);let g=r.length===z.length;if(g)for(let h=0;h<z.length;h+=1){const l=z[h],u=r[h];if(!u){g=!1;break}if(!(u.id===l.id&&u.size===l.size&&u.percentageSize===l.percentageSize&&u.preferredPercentageSize===l.preferredPercentageSize&&u.sizeBeforeCollapse===l.sizeBeforeCollapse&&u.percentageSizeBeforeCollapse===l.percentageSizeBeforeCollapse&&u.preferredPercentageSizeBeforeCollapse===l.preferredPercentageSizeBeforeCollapse&&u.measuredPercentageSize===l.measuredPercentageSize&&u.excludeFromAutoGrowth===l.excludeFromAutoGrowth&&u.collapsed===l.collapsed&&u.collapseFromStart===l.collapseFromStart&&u.collapseFromEnd===l.collapseFromEnd&&u.collapsedByDirection===l.collapsedByDirection)){g=!1;break}}return g?(n&&ue.debug("set panels skipped (no diff)",{previous:r,incoming:a,next:z,previousLength:r.length,incomingLength:a?.length??f.length}),e):(n&&ue.debug("set panels",{previous:r,incoming:a,next:z,previousLength:r.length,incomingLength:a?.length??f.length}),i)}case"CONTAINER_RESIZED":{ue.debug("CONTAINER_RESIZED",t.containerSize);const n=ue.enabledFor(Le.DEBUG);if(t.containerSize<=0)return n&&ue.debug("container resized skipped (non-positive size)",{containerSize:t.containerSize,panels:Me(e)}),e;n&&ue.debug("container resized (before)",{containerSize:t.containerSize,panels:Me(e)});const f=Ve(e,t.containerSize);if(n&&ue.debug("container resized (after recalc)",{containerSize:t.containerSize,panels:Me(f)}),t.containerSize>0&&qe(f,t.containerSize)){const r=Ae(f);return n&&ue.debug("container resized (after reconcile)",{containerSize:t.containerSize,panels:Me(r)}),r}return n&&ue.debug("container resized (final)",{containerSize:t.containerSize,panels:Me(f)}),f}case"COLLAPSE_PANEL":{ue.debug("COLLAPSE_PANEL",t.id);const n=e.findIndex(o=>o.id===t.id);if(n===-1)return e;const f=e[n],r=t.from==="start"?f.collapseFromStart:f.collapseFromEnd;if(!(De(f)&&r)||f.collapsed)return e;const i=f.size,z=f.measuredPixelSize??i,g=f.percentageSize??f.preferredPercentageSize??0,h={...f,collapsed:!0,collapsedByDirection:t.from,sizeBeforeCollapse:i,percentageSizeBeforeCollapse:g,preferredPercentageSizeBeforeCollapse:f.preferredPercentageSize??g,preferredPixelSizeBeforeCollapse:f.preferredPixelSize??i,measuredPixelSizeBeforeCollapse:z,size:0,percentageSize:0,preferredPercentageSize:f.preferredPercentageSize,measuredPixelSize:f.measuredPixelSize!==void 0?0:f.measuredPixelSize,measuredPercentageSize:f.measuredPercentageSize!==void 0?0:f.measuredPercentageSize},l=[...e];l[n]=h;const u=Ve(l,t.containerSize);return t.containerSize>0&&qe(u,t.containerSize)?Ae(u):u}case"EXPAND_PANEL":{ue.debug("EXPAND_PANEL",t.id,t.targetSize);const n=e.findIndex(B=>B.id===t.id);if(n===-1)return e;const f=t.containerSize,r=e[n],a=t.from==="start"?r.collapseFromStart:r.collapseFromEnd;if(!(De(r)&&a&&r.collapsed)||r.collapsedByDirection&&r.collapsedByDirection!==t.from)return e;const z=[t.targetSize,r.sizeBeforeCollapse,r.measuredPixelSizeBeforeCollapse,r.preferredPixelSizeBeforeCollapse,r.originalPixelSize].find(B=>B!==void 0)??0,g=$(r.minSize,0,f),h=$(r.maxSize,f,f),l=de(z,g,h),u=Pe(l,f),o=r.measuredPixelSizeBeforeCollapse??l,S=Pe(o,f),C=r.preferredPercentageSizeBeforeCollapse??r.percentageSizeBeforeCollapse??u,M=r.preferredPixelSizeBeforeCollapse??r.preferredPixelSize??l,E={...r,collapsed:!1,collapsedByDirection:null,size:l,percentageSize:u,preferredPercentageSize:C,preferredPixelSize:M,sizeBeforeCollapse:l,percentageSizeBeforeCollapse:void 0,preferredPercentageSizeBeforeCollapse:void 0,preferredPixelSizeBeforeCollapse:void 0,measuredPixelSize:l,measuredPixelSizeBeforeCollapse:o,measuredPercentageSize:S},R=[...e];R[n]=E;const T=Ve(R,f);return f>0&&qe(T,f)?Ae(T):T}default:return e}},Oe=new He(Le.INFO,"[resize-panels]"),Ct=({direction:e,style:t,onLayout:n,autoSaveId:f,showDebugInfo:r=!1})=>{const[a,i]=s.useReducer(At,[]),[z,g]=s.useState({width:0,height:0}),[h,l]=s.useState(!1),[u,o]=s.useState(!1),[S,C]=s.useState(null),[M,E]=s.useState({}),[R,T]=s.useState({}),B=s.useRef(null),O=s.useRef(n),re=s.useRef(!1),Q=s.useRef(0),fe=s.useRef(z),k=s.useRef(z),H=s.useRef(h),w=s.useRef(S?.reason??null),V=s.useRef({}),le=s.useRef(null),j=s.useRef(null),U=s.useRef(null),ee=s.useRef({width:0,height:0}),G=s.useRef({width:0,height:0}),ne=s.useRef({}),ye=s.useRef({}),ze=s.useCallback(d=>d.map(P=>({...P})),[]);s.useEffect(()=>{k.current=z},[z]),s.useEffect(()=>{H.current=h},[h]),s.useEffect(()=>{w.current=S?.reason??null},[S?.reason]),s.useEffect(()=>{if(S)return;const d=e==="horizontal"?z.width:z.height;!Number.isFinite(d)||d<=4||a.length!==0&&(le.current=ze(a))},[S,a,e,z.width,z.height,ze]);const ce=s.useRef(a);s.useEffect(()=>{ce.current=a},[a]),s.useEffect(()=>{const d=j.current;if(S){j.current=S;return}if(d&&!S&&le.current){j.current=null;const P=new Set(ce.current.map(m=>m.id)),p=ze(le.current).filter(m=>P.has(m.id));p.length>0&&i({type:"SET_PANELS",panels:p});return}j.current=S},[S,ze]),s.useLayoutEffect(()=>{if(!B.current)return;const d=new ResizeObserver(P=>{for(const p of P){const m=p.target,y=m?Ie(m,"horizontal"):null,N=m?Ie(m,"vertical"):null,A=y?y.inner:0,v=N?N.inner:0,_=p.contentRect.width,D=p.contentRect.height,b=A>0?A:_,x=v>0?v:D;ee.current={width:b,height:x};const L=G.current,q=Math.abs(L.width-b)>=.5,K=Math.abs(L.height-x)>=.5;q||K?(U.current&&(clearTimeout(U.current),U.current=null),!h&&b>0&&x>0&&l(!0),g({width:b,height:x}),G.current={width:b,height:x}):(U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{const Z=ee.current;g(Z),G.current=Z,U.current=null},150))}});return d.observe(B.current),()=>{d.disconnect(),U.current&&clearTimeout(U.current)}},[h]),s.useEffect(()=>()=>{for(const d of Object.values(ne.current))clearTimeout(d)},[]),s.useLayoutEffect(()=>{const d=fe.current,P=z,p=e==="horizontal"?Math.abs(d.width-P.width)>=.5:Math.abs(d.height-P.height)>=.5;if(u&&p){const m=e==="horizontal"?P.width:P.height;i({type:"CONTAINER_RESIZED",containerSize:m,direction:e})}fe.current=P},[z,u,e]);const Ee=s.useCallback(()=>{Oe.debug("panels[0]?.id",a[0]?.id);const d=a.some(c=>{if(c.collapsed||c.sizeUnit!=="percentage")return!1;const te=c.collapseFromStart||c.collapseFromEnd?c.sizeBeforeCollapse??c.measuredPixelSizeBeforeCollapse??c.originalPixelSize??c.measuredPixelSize??0:c.measuredPixelSize??c.originalPixelSize??c.size,J=c.percentageSize!==void 0&&c.percentageSize>0;return c.size<=0&&(te>0||J)}),P=e==="horizontal"?z.width:z.height,p=P>0;if(S||!p||!(a.length>0&&(a.length!==Q.current||!u||d)))return;const N=a.filter(c=>!c.collapsed&&(c.originalPixelSize!==void 0||c.sizeUnit==="pixels")).reduce((c,F)=>{const te=F.preferredPixelSize??F.originalPixelSize??F.size;return c+Math.max(0,te??0)},0),A=a.filter(c=>c.sizeUnit==="percentage"&&!c.collapsed),v=A.map(c=>c.id),_=A.map(c=>{const F=c.preferredPercentageSize??c.percentageSize;return F!==void 0&&F>0?je(F,P):c.size>0?c.size:0}),D=_.reduce((c,F)=>c+F,0),b=P-N,x=Math.max(0,b),L=x>0,q=a.map(c=>{if(c.collapsed){const F=c.sizeBeforeCollapse??c.measuredPixelSizeBeforeCollapse??c.originalPixelSize??(c.sizeUnit==="pixels"?c.size:void 0),te=c.sizeUnit==="percentage"&&c.percentageSize!==void 0?je(c.percentageSize,P):void 0,J=F??te??0,ie=c.measuredPixelSizeBeforeCollapse??c.measuredPixelSize??J;return{...c,size:0,percentageSize:0,preferredPercentageSize:c.preferredPercentageSize,sizeBeforeCollapse:J,percentageSizeBeforeCollapse:c.percentageSizeBeforeCollapse??c.percentageSize??c.preferredPercentageSize??0,preferredPercentageSizeBeforeCollapse:c.preferredPercentageSizeBeforeCollapse??c.preferredPercentageSize??c.percentageSize??void 0,preferredPixelSizeBeforeCollapse:c.preferredPixelSizeBeforeCollapse??c.preferredPixelSize??J,measuredPixelSizeBeforeCollapse:ie}}if(c.sizeUnit==="pixels"||c.originalPixelSize!==void 0){const F=c.size,te=P>0?Pe(F,P):0,J={...c,size:F,percentageSize:te,preferredPixelSize:c.preferredPixelSize??c.originalPixelSize??F,preferredPercentageSize:c.preferredPercentageSize!==void 0?c.preferredPercentageSize:te>0?te:void 0};if(c.collapseFromStart||c.collapseFromEnd){const ie=c.sizeBeforeCollapse??F,Te=c.measuredPixelSizeBeforeCollapse??c.measuredPixelSize??ie;J.sizeBeforeCollapse=ie,J.measuredPixelSizeBeforeCollapse=Te,J.preferredPixelSizeBeforeCollapse=c.preferredPixelSizeBeforeCollapse??c.preferredPixelSize??ie}return J}if(c.sizeUnit==="percentage"){const F=v.indexOf(c.id),te=F!==-1?_[F]:0,J=$(c.minSize,0,P),ie=$(c.maxSize,P,P),Te=Math.max(J,c.sizeBeforeCollapse??0,c.measuredPixelSizeBeforeCollapse??0,c.measuredPixelSize??0,c.originalPixelSize??0,c.size>0?c.size:0,c.percentageSize!==void 0?je(c.percentageSize,P):0,1),ke=te>0?te:Te;let ve;if(!L)ve=J;else if(F!==-1&&D>0){const pe=ke/D,Se=x*pe;ve=de(Se,J,ie)}else{const pe=c.percentageSize!==void 0?je(c.percentageSize,P):c.size,Se=pe>0?pe:ke;ve=de(Se,J,ie)}const Re=P>0?Pe(ve,P):0,we={...c,size:ve,percentageSize:Re,preferredPercentageSize:c.preferredPercentageSize!==void 0?c.preferredPercentageSize:Re>0?Re:void 0};if(c.collapseFromStart||c.collapseFromEnd){const pe=c.sizeBeforeCollapse??ve,Se=c.measuredPixelSizeBeforeCollapse??c.measuredPixelSize??pe;we.sizeBeforeCollapse=pe,we.measuredPixelSizeBeforeCollapse=Se,we.preferredPixelSizeBeforeCollapse=c.preferredPixelSizeBeforeCollapse??c.preferredPixelSize??pe}return we}return c}),K=[];for(let c=0;c<q.length;c+=1){const F=q[c];F.sizeUnit==="percentage"&&!F.collapsed&&K.push(c)}const Z=K.reduce((c,F)=>c+q[F].size,0),Y=b-Z;Math.abs(Y)>0&&xt(q,Y,P,{enforceAutoMinSize:!0}),i({type:"SET_PANELS",panels:q}),Q.current=a.length,o(!0)},[a,e,z.width,z.height,u,S]);s.useEffect(()=>{const d=e==="horizontal"?z.width:z.height,P=d>0,p=P&&a.length>0;if(P&&a.length===0){S&&C(null);return}const m=p?a.reduce((D,b)=>{if(b.collapsed)return D;const x=$(b.minSize,0,d);return D+Math.max(0,x)},0):null,y=p?a.reduce((D,b)=>{if(b.collapsed)return D;const x=$(b.maxSize,d,d);return D+Math.max(0,x)},0):null,N=m??S?.totalMinimumSize??null,A=y??S?.totalMaximumSize??null;if(!P){S&&C(D=>!D||D.availableContainerSize===d?D:{reason:D.reason,totalMinimumSize:null,totalMaximumSize:null,availableContainerSize:d});return}const v=N!==null&&N-d>Number.EPSILON,_=A!==null&&d-A>Number.EPSILON;if(v||_){const b={reason:v?"minimum-exceeded":"maximum-insufficient",totalMinimumSize:N,totalMaximumSize:A,availableContainerSize:d};C(x=>x&&x.reason===b.reason&&Math.abs((x.totalMinimumSize??0)-(b.totalMinimumSize??0))<=Number.EPSILON&&Math.abs((x.totalMaximumSize??0)-(b.totalMaximumSize??0))<=Number.EPSILON&&Math.abs(x.availableContainerSize-b.availableContainerSize)<=Number.EPSILON?x:b);return}if(S){const D=S.reason==="minimum-exceeded",b=S.reason==="maximum-insufficient";(!D||N!==null)&&(!b||A!==null)&&!v&&!_&&C(Z=>Z&&null)}},[a,e,z.width,z.height,S]),s.useEffect(()=>{Ee()},[Ee]),s.useEffect(()=>{O.current=n},[n]);const ge=s.useMemo(()=>a.map(d=>d.size),[a]),se=s.useRef(!1);s.useLayoutEffect(()=>{if(a.length===0){se.current=!1;return}!se.current&&(u||a.every(d=>d.collapsed||d.size>0))&&(se.current=!0),se.current&&O.current&&O.current(ge)},[ge,a,u]),s.useEffect(()=>{if(f&&ge.length>0&&se.current){const d=setTimeout(()=>{Pt(f,ge)},200);return()=>clearTimeout(d)}},[f,ge]),s.useEffect(()=>{if(!f||a.length===0||re.current)return;const d=e==="horizontal"?z.width:z.height;if(d<=0)return;const P=bt(f);if(P&&P.length===a.length){const p=a.map((m,y)=>{const N=$(m.minSize,0,d),A=$(m.maxSize,d,d),v=de(P[y],N,A),_=Pe(v,d),D=m.sizeUnit==="pixels"||m.originalPixelSize!==void 0?v:m.preferredPixelSize;return{...m,size:v,percentageSize:_,preferredPercentageSize:_>0?_:m.preferredPercentageSize,preferredPixelSize:D}});i({type:"SET_PANELS",panels:p}),re.current=!0}},[f,a,z.width,z.height,e]);const oe=s.useCallback(d=>{const P=k.current,p=V.current,m=JSON.stringify({id:d.id,size:d.size??null,percentageSize:d.percentageSize??null,preferredPercentageSize:d.preferredPercentageSize??null,preferredPixelSize:d.preferredPixelSize??null,sizeUnit:d.sizeUnit,originalPixelSize:d.originalPixelSize??null,minSize:d.minSize??null,maxSize:d.maxSize??null,collapseFromStart:d.collapseFromStart,collapseFromEnd:d.collapseFromEnd,collapsed:d.collapsed??!1,collapsedByDirection:d.collapsedByDirection??null,sizeBeforeCollapse:d.sizeBeforeCollapse??null,percentageSizeBeforeCollapse:d.percentageSizeBeforeCollapse??null,preferredPercentageSizeBeforeCollapse:d.preferredPercentageSizeBeforeCollapse??null,preferredPixelSizeBeforeCollapse:d.preferredPixelSizeBeforeCollapse??null,pixelAdjustPriority:d.pixelAdjustPriority??null,flexAdjustPriority:d.flexAdjustPriority??null,autoMinSize:d.autoMinSize??null});if(p[d.id]===m){Oe.debug("useResizablePanels.registerPanel skipped",{panelId:d.id,reason:"duplicate-registration"});return}p[d.id]=m,Oe.debug("useResizablePanels.registerPanel",{panelId:d.id,containerReady:H.current,violationReason:w.current,containerSize:{width:P.width,height:P.height}}),i({type:"REGISTER_PANEL",panel:d})},[]),he=s.useCallback(d=>{const P=k.current;Oe.debug("useResizablePanels.unregisterPanel",{panelId:d,containerReady:H.current,violationReason:w.current,containerSize:{width:P.width,height:P.height}}),i({type:"UNREGISTER_PANEL",id:d}),delete V.current[d],ne.current[d]&&(clearTimeout(ne.current[d]),delete ne.current[d]),delete ye.current[d],E(p=>{if(!(d in p))return p;const m={...p};return delete m[d],m})},[]),me=s.useCallback((d,P,p,m)=>{const y=e==="horizontal"?z.width:z.height,N=a.find(Z=>Z.id===d),A=a.find(Z=>Z.id===P);if(!(N&&A)){i({type:"RESIZE_PANELS",leftId:d,rightId:P,leftSize:p,rightSize:m,containerSize:y});return}if(N.collapsed||A.collapsed)return;const v=$(N.minSize,0,y),_=$(N.maxSize,y,y),D=$(A.minSize,0,y),b=$(A.maxSize,y,y);let x=de(p,v,_),L=de(m,D,b);const q=x+L,K=p+m;if(Math.abs(q-K)>1e-9){const Z=K-q;if(Z>0){const Y=_-x,c=b-L,F=Y+c;if(F>0){const te=Math.min(Z*(Y/F),Y),J=Math.min(Z-te,c);x+=te,L+=J}}else if(Z<0){const Y=Math.abs(Z),c=x-v,F=L-D,te=c+F;if(te>0){const J=Math.min(Y*(c/te),c),ie=Math.min(Y-J,F);x-=J,L-=ie}}}x=de(x,v,_),L=de(L,D,b),Math.abs(x+L-K)>1e-9&&Oe.error("Total size after constraints should be close to the original total size.",{constrainedLeftSize:x,constrainedRightSize:L,originalTotalSize:K}),i({type:"RESIZE_PANELS",leftId:d,rightId:P,leftSize:x,rightSize:L,containerSize:y})},[e,z.width,z.height,a]),be=s.useCallback((d,P)=>{const p=e==="horizontal"?z.width:z.height;i({type:"COLLAPSE_PANEL",id:d,from:P,containerSize:p})},[e,z.width,z.height]),I=s.useCallback((d,P,p)=>{const m=e==="horizontal"?z.width:z.height;i({type:"EXPAND_PANEL",id:d,from:P,containerSize:m,targetSize:p})},[e,z.width,z.height]),W=s.useCallback(d=>a.find(P=>P.id===d),[a]),ae=s.useCallback((d,P)=>{if(P===null){ne.current[d]&&(clearTimeout(ne.current[d]),delete ne.current[d]),delete ye.current[d],E(p=>{if(!(d in p))return p;const m={...p};return delete m[d],m});return}E(p=>{const m=p[d],y=m&&Math.abs(m.pixelSize-P.pixelSize)<.1,N=m&&Math.abs(m.percentageSize-P.percentageSize)<.01;return y&&N?(ne.current[d]&&clearTimeout(ne.current[d]),ye.current[d]=P,ne.current[d]=setTimeout(()=>{const A=ye.current[d];A&&E(v=>({...v,[d]:A})),delete ne.current[d]},200),p):(ne.current[d]&&(clearTimeout(ne.current[d]),delete ne.current[d]),{...p,[d]:P})})},[]),Ce=s.useCallback((d,P)=>{T(p=>{if(P===null){if(!(d in p))return p;const y={...p};return delete y[d],y}const m=p[d];return m&&Math.abs(m.thickness-P.thickness)<=.25&&m.visible===P.visible&&m.direction===P.direction&&m.startPanelId===P.startPanelId&&m.endPanelId===P.endPanelId?p:{...p,[d]:P}})},[]),Fe=s.useMemo(()=>({direction:e,panels:a,containerSize:z,isContainerReady:h,showDebugInfo:r,registerPanel:oe,unregisterPanel:he,resizePanels:me,collapsePanel:be,expandPanel:I,getPanel:W,reportPanelMeasurement:ae,panelMeasurements:M,reportHandleMeasurement:Ce,handleMeasurements:R,layoutConstraintViolation:S}),[e,a,z,h,r,oe,he,me,be,I,W,ae,M,Ce,R,S]),Ne=s.useMemo(()=>({display:"flex",flexDirection:e==="horizontal"?"row":"column",alignItems:"stretch",width:"100%",height:"100%",minWidth:"0px",minHeight:"0px",position:"relative",overflow:"hidden",...t}),[e,t]);return{groupRef:B,contextValue:Fe,groupStyle:Ne}},Dt=e=>{const{getPanel:t,collapsePanel:n,expandPanel:f}=Xe(),r=t(e),a=s.useCallback(g=>{n(e,g)},[n,e]),i=s.useCallback((g,h)=>{f(e,g,h)},[f,e]),z=s.useCallback((g,h)=>{r?.collapsed?i(g,h):a(g)},[r?.collapsed,a,i]);return s.useMemo(()=>({panel:r,isCollapsed:r?.collapsed??!1,canCollapseFromStart:r?.collapseFromStart??!1,canCollapseFromEnd:r?.collapseFromEnd??!1,collapse:a,expand:i,toggle:z}),[r,a,i,z])},Lt=({panel:e,measuredPixelSize:t,measuredPercentageSize:n,containerAxisSize:f,containerLabel:r})=>{const a=e?.size,i=typeof a=="number"&&Number.isFinite(a)?`${a.toFixed(3)}px`:"-",z=e?.percentageSize!==void 0?`${e.percentageSize.toFixed(3)}%`:"-",g=Number.isFinite(t)?`${t.toFixed(3)}px`:"-",h=Number.isFinite(n)?`${n.toFixed(3)}%`:"-",l=Number.isFinite(f)?`${f.toFixed(3)}px`:"-",u=`${i} / ${z}`,o=`${g} / ${h}`,S=e?.sizeUnit==="pixels"?"Fixed":"Flexible",C=[S,`${r}: ${l}`,`size (state): ${u}`,`size (measured): ${o}`];return{stateValueDisplay:u,measuredValueDisplay:o,containerDisplay:l,headlineLabel:S,titleText:C.join(`
|
|
2
|
+
`)}},Tt=s.memo(({panel:e,measuredPixelSize:t,measuredPercentageSize:n,containerAxisSize:f,direction:r})=>{const a=r==="horizontal"?"container width":"container height",{stateValueDisplay:i,measuredValueDisplay:z,containerDisplay:g,headlineLabel:h,titleText:l}=s.useMemo(()=>Lt({panel:e,measuredPixelSize:t,measuredPercentageSize:n,containerAxisSize:f,containerLabel:a}),[e,t,n,f,a]),u={position:"absolute",top:"2px",right:"4px",backgroundColor:"rgba(30, 41, 59, 0.6)",color:"#fff",padding:"4px 8px",borderRadius:"6px",fontSize:"11px",fontFamily:"monospace",pointerEvents:"auto",zIndex:10,boxShadow:"0 2px 4px rgba(0,0,0,0.3)",border:"1px solid rgba(255,255,255,0.1)",maxWidth:"calc(100% - 12px)",minWidth:"60px",width:"fit-content",overflow:"hidden"},o={display:"flex",flexDirection:"column",gap:"1px",minWidth:"0",width:"100%"},S={display:"flex",justifyContent:"flex-start",alignItems:"center",gap:"6px",fontSize:"10px",color:"#ccc",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:"0",width:"100%"},C={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"6px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:"0",width:"100%"},M={marginLeft:"auto",fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"};return X.jsx("div",{style:u,title:l,children:X.jsxs("div",{style:o,children:[X.jsx("div",{style:S,children:X.jsx("span",{children:h})}),X.jsxs("div",{style:C,children:[X.jsx("span",{children:a}),X.jsx("span",{style:M,children:g})]}),X.jsxs("div",{style:C,children:[X.jsx("span",{children:"size (state)"}),X.jsx("span",{style:M,children:i})]}),X.jsxs("div",{style:C,children:[X.jsx("span",{children:"size (measured)"}),X.jsx("span",{style:M,children:z})]})]})})}),Ze=new He(Le.INFO,"[resize-panels]"),kt={both:{collapseFromStart:!0,collapseFromEnd:!0},start:{collapseFromStart:!0,collapseFromEnd:!1},end:{collapseFromStart:!1,collapseFromEnd:!0}},_t=e=>{if(!e)return{collapseFromStart:!1,collapseFromEnd:!1};const t=kt[e.from];if(!t)throw new Error("Invalid collapsible configuration: unsupported 'from' value");return t},ut=({ref:e,setState:t,panelIdRef:n,label:f,timerRef:r})=>a=>{if(!Number.isFinite(a))return;const i=a<0?0:a,z=f==="pixel"?.1:.01;if(Math.abs(e.current-i)<z){r&&(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{e.current=i,t(i),r.current=null},200));return}r?.current&&(clearTimeout(r.current),r.current=null),e.current=i,Ze.debug(`commit ${f}`,{panelId:n.current,[f]:i}),t(i)},Ot=s.memo(({id:e,defaultSize:t={value:50,unit:"percentage"},minSize:n,maxSize:f,autoMinSize:r,className:a,style:i,children:z,order:g=0,collapsible:h,defaultCollapsed:l=!1,pixelAdjustPriority:u,flexAdjustPriority:o,contentOverflow:S="auto"})=>{const{direction:C,registerPanel:M,unregisterPanel:E,getPanel:R,showDebugInfo:T,isContainerReady:B,reportPanelMeasurement:O,containerSize:re}=Xe(),Q=s.useRef(null),fe=s.useId(),k=s.useRef(e||`panel-${fe}`);s.useEffect(()=>{e&&e!==k.current&&Ze.warn("Panel id prop change after mount is ignored.",{currentId:k.current,attemptedId:e})},[e]);const H=s.useMemo(()=>_t(h),[h]),w=H.collapseFromStart||H.collapseFromEnd,V=s.useMemo(()=>w?H.collapseFromStart?"start":H.collapseFromEnd?"end":null:null,[w,H.collapseFromStart,H.collapseFromEnd]),le=w&&l,j=s.useMemo(()=>St(t),[t]),U=j?.unit==="pixels",ee=U?void 0:j?.value,G=R(k.current),ne=!!G?.collapsed,ye=(G?.size??0)<=0,ze=ne||ye,ce=s.useRef(G);ce.current=G;const Ee=s.useRef(ze);Ee.current=ze;const[ge,se]=s.useState(()=>U&&j?j.value:G?.size!==void 0?G.size:0),[oe,he]=s.useState(()=>!U&&j?j.value:G?.percentageSize!==void 0?G.percentageSize:0),me=s.useRef(ge),be=s.useRef(oe),I=s.useRef(null),W=s.useRef(null);s.useEffect(()=>()=>{I.current&&clearTimeout(I.current),W.current&&clearTimeout(W.current)},[]);const ae=s.useMemo(()=>ut({ref:me,setState:se,panelIdRef:k,label:"pixel",timerRef:I}),[]),Ce=s.useMemo(()=>ut({ref:be,setState:he,panelIdRef:k,label:"percentage",timerRef:W}),[]),Fe=s.useCallback(()=>{I.current&&(clearTimeout(I.current),I.current=null),W.current&&(clearTimeout(W.current),W.current=null),me.current!==0&&(me.current=0,se(0)),be.current!==0&&(be.current=0,he(0))},[]);s.useEffect(()=>{if(!B)return;let b=0;if(U&&j){let F=j.value;n&&typeof n=="object"&&n.unit==="pixels"&&(F=Math.max(F,n.value)),f&&typeof f=="object"&&f.unit==="pixels"&&(F=Math.min(F,f.value)),b=F}const x=le,L=x?V:null;l&&!w&&Ze.warn("Panel defaultCollapsed is ignored because collapsible configuration is not provided.");const q=w&&x&&U?b:void 0,K=w?ee:void 0,Z=U?b:void 0,Y={id:k.current,size:x?0:b,percentageSize:x?0:ee,preferredPercentageSize:ee,preferredPixelSize:Z,sizeUnit:j?.unit||"percentage",originalPixelSize:U?b:void 0,minSize:n,maxSize:f,collapseFromStart:H.collapseFromStart,collapseFromEnd:H.collapseFromEnd,collapsedByDirection:L,collapsed:x,sizeBeforeCollapse:q,percentageSizeBeforeCollapse:K,preferredPercentageSizeBeforeCollapse:w?ee:void 0,preferredPixelSizeBeforeCollapse:w?Z:void 0,pixelAdjustPriority:u,flexAdjustPriority:o,autoMinSize:r};M(Y)},[r,H.collapseFromEnd,H.collapseFromStart,l,j,o,w,B,U,f,n,u,V,ee,M,le]),s.useEffect(()=>()=>{E(k.current),O(k.current,null)},[E,O]);const Ne=G?.size??0,d=s.useCallback(()=>{const b=Q.current;if(!b)return;const x=ce.current;if(!x)return;const L=b.parentElement;if(!L)return;const q=b.getBoundingClientRect(),K=Ie(L,"horizontal"),Z=Ie(L,"vertical"),Y=C==="horizontal"?q.width:q.height,c=C==="horizontal"?K.inner:Z.inner,F=Qe(c);if(Ee.current){Fe();return}const te=x.size??0,J=Math.max(2,F*.5);if(te>F&&Y<J){Ze.debug("skip noisy measurement",{panelId:k.current,expectedPanelSize:te,measured:Y,noiseThreshold:J});return}if(Y>0){ae(Y),c>0&&Ce(Y/c*100);return}x.size!==void 0&&ae(x.size),x.percentageSize!==void 0?Ce(x.percentageSize):x.sizeUnit==="pixels"&&x.size!==void 0&&c>0&&Ce(x.size/c*100)},[Ce,ae,C,Fe]),P=s.useRef(!1);s.useEffect(()=>{!P.current&&G&&(P.current=!0,d())},[G,d]),s.useEffect(()=>{const b=Q.current;if(!b)return;const x=new ResizeObserver(()=>{d()});x.observe(b),d();const L=[],q=new MutationObserver(()=>{(()=>{if(!Q.current)return!1;const Y=Q.current.getBoundingClientRect();return(C==="horizontal"?Y.width:Y.height)!==me.current})()&&setTimeout(d,0)}),K=b.parentElement;return K&&q.observe(K,{childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>{x.disconnect(),q.disconnect();for(const Z of L)clearTimeout(Z)}},[C,d]);const p=G?.size,m=G?.percentageSize,y=G?.sizeUnit;s.useEffect(()=>{if(G){if(ze){Fe();return}if(p!==void 0&&ae(p),m!==void 0)Ce(m);else if(y==="pixels"&&p!==void 0){const b=Q.current,x=b?.parentElement;if(b&&x){const{width:L,height:q}=b.getBoundingClientRect(),K=x.clientWidth,Z=x.clientHeight,Y=C==="horizontal"?L:q,c=C==="horizontal"?K:Z;if(Y>0&&c>0){const F=Y/c*100;Ce(F)}}}}},[Ce,ae,G,m,p,y,C,ze,Fe]),s.useEffect(()=>{O(k.current,{pixelSize:ge,percentageSize:oe})},[O,ge,oe]);const N=()=>ze?"0px":G?.originalPixelSize!==void 0?`${Ne}px`:G?.percentageSize!==void 0?`${G.percentageSize}%`:`${Ne}px`,A=G?.sizeUnit==="percentage"&&!G?.collapsed?1:0,v={flexBasis:N(),flexGrow:0,flexShrink:A,overflow:"hidden",position:"relative",boxSizing:"border-box",minHeight:"0px",minWidth:"0px",...i};C==="horizontal"?(v.height="100%",v.minWidth=0):(v.width="100%",v.minHeight=0),ze&&(C==="horizontal"?(v.width="0px",v.minWidth="0px"):(v.height="0px",v.minHeight="0px"),v.flexGrow=0,v.flexShrink=0,v.pointerEvents="none",v.visibility="hidden",ne&&(v.display="none"));const _=C==="horizontal"?re.width:re.height,D=s.useMemo(()=>({position:"absolute",inset:"0px",overflow:S,display:"flex",flexDirection:"column",width:"100%",height:"100%",minWidth:"0px",minHeight:"0px"}),[S]);return X.jsxs("div",{ref:Q,className:Ge.twMerge("panel",a),style:v,"data-panel-id":k.current,"data-panel-size":Ne,"data-panel-size-unit":G?.sizeUnit||"percentage","data-panel-pixel-size":G?.sizeUnit==="pixels"?G?.originalPixelSize:null,"data-panel-order":g,"data-panel-collapsible":w,"data-panel-collapse-start":H.collapseFromStart,"data-panel-collapse-end":H.collapseFromEnd,"data-panel-collapsed":G?.collapsed,"aria-hidden":ze,children:[X.jsx("div",{style:D,children:z}),T&&X.jsx(Tt,{panel:G,measuredPixelSize:ge,measuredPercentageSize:oe,containerAxisSize:_,direction:C})]})}),jt=s.lazy(()=>Promise.resolve().then(()=>require("./GlobalDebugOverlay-afs0vF-Q.cjs")).then(e=>({default:e.GlobalDebugOverlayGate})));let dt=0;const Gt=()=>(dt+=1,`panel-group-${dt}`),Ht=e=>{const t=e.reason==="minimum-exceeded",n=t?"Layout unavailable: minimum panel sizes exceed the container.":"Layout unavailable: panels cannot fill the container with their maximum sizes.",f=t?`Min required: ${Math.ceil(e.totalMinimumSize??0)}px | Available: ${Math.floor(e.availableContainerSize)}px`:`Max total: ${Math.floor(e.totalMaximumSize??0)}px | Needed: ${Math.floor(e.availableContainerSize)}px`;return{summary:n,detail:f}},Ut=(e,t)=>{let n=!1;const f=e.map(r=>{const a=t[r.id];return!a||r.measuredPixelSize===a.pixelSize&&r.measuredPercentageSize===a.percentageSize?r:(n=!0,{...r,measuredPixelSize:a.pixelSize,measuredPercentageSize:a.percentageSize})});return n?f:e},ft=(e,t,n)=>{const f=Ie(e,"horizontal"),r=Ie(e,"vertical"),a=e.getBoundingClientRect(),i=f.inner>0?f.inner:t??a.width,z=r.inner>0?r.inner:n??a.height;return{width:i,height:z}},$t=e=>{const{id:t,className:n,style:f,children:r,direction:a}=e,{groupRef:i,contextValue:z,groupStyle:g}=Ct(e),[h,l]=s.useState({width:0,height:0}),u=z.layoutConstraintViolation,o=!!u,S=s.useMemo(()=>{if(!u)return null;const{summary:w,detail:V}=Ht(u);return X.jsxs("div",{className:"flex w-full flex-1 flex-col items-center justify-center gap-2 rounded-lg border border-slate-300 border-dashed bg-slate-100/70 px-6 py-8 text-center text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-800/50 dark:text-slate-200","data-panel-group-placeholder":"constraint-violation",children:[X.jsx("span",{children:w}),X.jsx("span",{className:"text-slate-500 text-xs dark:text-slate-400",children:V})]})},[u]),M=s.useRef(t??Gt()).current,E=t??M,R=z.showDebugInfo&&z.panels.length>0,T=R?z.panels:[],B=R?z.panelMeasurements:{},O=s.useMemo(()=>{if(!R)return[];const w=Object.values(z.handleMeasurements);return w.length<=1?w:w.slice().sort((V,le)=>V.id.localeCompare(le.id))},[z.handleMeasurements,R]),re=z.containerSize,Q=h.width>0?h.width:re.width,fe=h.height>0?h.height:re.height;s.useLayoutEffect(()=>{if(!R){l({width:0,height:0});return}if(typeof window>"u"||typeof ResizeObserver>"u")return;const w=i.current;if(!w)return;const V=j=>{l(U=>U.width===j.width&&U.height===j.height?U:j)},le=new ResizeObserver(j=>{for(const U of j){if(U.target!==w)continue;const ee=ft(w,U.contentRect.width,U.contentRect.height);V(ee)}});return le.observe(w),V(ft(w)),()=>{le.disconnect()}},[i,R]);const k=s.useMemo(()=>Ut(T,B),[T,B]);s.useEffect(()=>{if(!R)return;let w=!1,V=null;return Promise.resolve().then(()=>require("./debugOverlayStore-Dkl-fHoa.cjs")).then(le=>{w||(V=le,le.enableDebugOverlayGroup(M))}),()=>{w=!0,V&&(V.disableDebugOverlayGroup(M),V.removeDebugOverlayGroup(M))}},[R,M]),s.useEffect(()=>{if(!R)return;let w=!1;return Promise.resolve().then(()=>require("./debugOverlayStore-Dkl-fHoa.cjs")).then(V=>{w||V.updateDebugOverlayGroup(M,{displayName:E,direction:a,containerSize:{width:Q,height:fe},panels:k,handles:O})}),()=>{w=!0}},[R,M,E,a,Q,fe,k,O]);const H=s.useMemo(()=>{const w={...g,...f};return w.position||(w.position="relative"),w},[g,f]);return X.jsxs(et.Provider,{value:z,children:[X.jsxs("div",{ref:i,className:Ge.twMerge("panel-group",a==="horizontal"?"flex-row":"flex-col",n),style:H,"data-panel-group-id":t,"data-panel-group-direction":a,children:[r,o&&S?X.jsx("div",{className:"pointer-events-auto",style:{position:"absolute",inset:0,zIndex:40,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(248, 250, 252, 0.82)",backdropFilter:"blur(2px)"},children:S}):null]}),R&&X.jsx(s.Suspense,{fallback:null,children:X.jsx(jt,{groupId:M})})]})},Wt=s.memo(({id:e,disabled:t=!1,className:n,style:f,children:r,onDragging:a})=>{const{direction:i,resizePanels:z,getPanel:g,collapsePanel:h,expandPanel:l,panels:u,reportHandleMeasurement:o,containerSize:S,layoutConstraintViolation:C}=Xe(),[M,E]=s.useState(!1),R=s.useRef(null),T=s.useRef(null),B=s.useRef(""),O=s.useRef(""),re=s.useRef(null),[Q,fe]=s.useState(!1),[k,H]=s.useState({left:null,right:null}),w=s.useId(),V=s.useRef(e??`resize-handle-${w}`),le=s.useRef(null),j=e??V.current,U=!!C,ee=t||U,G=s.useCallback(()=>{const p=R.current;if(!p)return;const m=p.parentElement;if(!m)return;T.current=m,typeof window<"u"&&fe(window.getComputedStyle(m).direction==="rtl");const y=Array.from(m.children),N=y.indexOf(p);let A=null,v=null;for(let b=N-1;b>=0;b-=1){const x=y[b];if(x.dataset.panelId){A=x;break}}for(let b=N+1;b<y.length;b+=1){const x=y[b];if(x.dataset.panelId){v=x;break}}const _=A?.dataset.panelId||"",D=v?.dataset.panelId||"";_===B.current&&D===O.current||(B.current=_,O.current=D,H({left:_||null,right:D||null}))},[]),ne=s.useMemo(()=>u.map(p=>p.id).join("|"),[u]);s.useEffect(()=>{G()},[G,ne]),s.useEffect(()=>{if(j===V.current)return;const p=V.current;V.current=j,le.current=null,p!==j&&o(p,null)},[o,j]),s.useEffect(()=>{const p=V.current;return()=>{o(p,null)}},[o]),s.useEffect(()=>()=>{re.current?.()},[]);const ye=s.useCallback(p=>{if(ee||!T.current||re.current)return;p.preventDefault(),p.stopPropagation();const m=T.current,{inner:y}=Ie(m,i),N={x:p.clientX,y:p.clientY},A=g(B.current),v=g(O.current);if(!(A&&v))return;const _=A.size,D=v.size;let b=0;const x=Bt;E(!0),a?.(!0);const L=p.pointerId,q=p.currentTarget,K=i==="horizontal"&&typeof window<"u"&&window.getComputedStyle(m).direction==="rtl";q.setPointerCapture(L);const Z=ie=>{if(ie.pointerId!==L||!R.current)return;ie.preventDefault(),ie.stopPropagation();const Te=performance.now();if(Te-b<x)return;b=Te;const ke=i==="horizontal"?ie.clientX-N.x:ie.clientY-N.y,ve=K?-ke:ke;if(ve===0)return;const Re=_+ve,we=D-ve,pe=g(B.current),Se=g(O.current);if(pe&&Se&&B.current&&O.current){const Ke=$(pe.minSize,0,y),Ye=$(Se.minSize,0,y),tt=Ke,rt=Ye,it=Math.min(y*ht,gt),nt=Math.min(y*Ft,It),Mt=Se.collapseFromStart,yt=Se.collapsedByDirection??"start";if(Mt&&!Se.collapsed&&we<=Math.max(Ye*.3,it)){h(O.current,"start");return}const Et=pe.collapseFromEnd,vt=pe.collapsedByDirection??"end";if(Et&&!pe.collapsed&&Re<=Math.max(Ke*.3,it)){h(B.current,"end");return}if(Se.collapsed&&we>Math.max(Ye*.3,nt)){l(O.current,yt,we);return}if(pe.collapsed&&Re>Math.max(Ke*.3,nt)){l(B.current,vt,Re);return}if(y>0){const st=pe.size+Se.size,Ue=Qe(y);let Je=!1;if(tt<=Ue&&Re<=Ue&&_!==0){const _e=Math.max(0,st-0);_e>=rt&&(z(B.current,O.current,0,_e),Je=!0)}else if(rt<=Ue&&we<=Ue&&D!==0){const _e=Math.max(0,st-0);_e>=tt&&(z(B.current,O.current,_e,0),Je=!0)}if(Je)return}if(pe.collapsed||Se.collapsed)return;z(B.current,O.current,Re,we)}};let Y=!0;const c=()=>{Y&&(Y=!1,re.current=null,E(!1),a?.(!1),document.removeEventListener("pointermove",Z),document.removeEventListener("pointerup",F),document.removeEventListener("pointercancel",te),q.removeEventListener("lostpointercapture",J),q.hasPointerCapture?.(L)&&q.releasePointerCapture(L))},F=ie=>{ie.pointerId===L&&c()},te=ie=>{ie.pointerId===L&&c()},J=ie=>{ie.pointerId===L&&c()};document.addEventListener("pointermove",Z),document.addEventListener("pointerup",F),document.addEventListener("pointercancel",te),q.addEventListener("lostpointercapture",J),re.current=c},[ee,i,z,g,h,l,a]),ze=s.useCallback(p=>{if(ee)return;const m=i==="horizontal",y=m?"ArrowLeft":"ArrowUp",N=m?"ArrowRight":"ArrowDown";if(p.key!==y&&p.key!==N)return;p.preventDefault(),p.stopPropagation();let A=(p.key===N?1:-1)*(p.shiftKey?at*5:at);m&&typeof window<"u"&&T.current!==null&&window.getComputedStyle(T.current).direction==="rtl"&&(A=-A);const _=g(B.current),D=g(O.current);!(_&&D)||_.collapsed||D.collapsed||z(B.current,O.current,_.size+A,D.size-A)},[ee,i,g,z]),ce=i==="horizontal",Ee=ce?"cursor-col-resize":"cursor-row-resize",ge=Ge.twMerge("group absolute z-20 flex select-none items-center justify-center border-none bg-transparent transition-colors duration-150 overflow-visible",Ee,ce?"h-full":"w-full",!ee&&"hover:bg-gray-200/70 dark:hover:bg-gray-700/70",!ee&&"active:bg-blue-300/60 dark:active:bg-blue-700/60",M&&"bg-blue-200/80 dark:bg-blue-800/60",ee&&"cursor-not-allowed opacity-50","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50",n),se=s.useMemo(()=>{const p=m=>{if(!m)return-1;for(let y=0;y<u.length;y+=1)if(u[y].id===m)return y;return-1};return{left:p(k.left),right:p(k.right)}},[k.left,k.right,u]),oe=ce?S.width:S.height,he=s.useMemo(()=>{const p=(m,y)=>{if(m>y)return 0;let N=0;for(let A=m;A<=y;A+=1){const v=u[A];if(!v)continue;const _=v.size??0,D=Math.max(0,_);N+=v.collapsed?0:D}return N};return se.left>=0?p(0,se.left):se.right>0?p(0,se.right-1):0},[se.left,se.right,u]),me=s.useMemo(()=>!Number.isFinite(he)||he<0?0:oe>0&&he>oe?oe:he,[he,oe]),be=s.useMemo(()=>{const p={position:"absolute",zIndex:20,touchAction:"none"};return ce?(p.top=0,p.left=Q&&oe>0?`${oe-me}px`:`${me}px`,p.transform="translateX(-50%)",p.width=`${ot}px`,p.height="100%"):(p.left=0,p.top=`${me}px`,p.transform="translateY(-50%)",p.height=`${ot}px`,p.width="100%"),p},[me,ce,Q,oe]),I=s.useMemo(()=>{const p=Qe(oe),m=x=>{if(x<0||x>=u.length)return!1;const L=u[x];return L?L.collapsed?!0:L.size<=p:!1},y=(x,L)=>{if(!m(x))return 0;let q=0;for(let K=x;K>=0&&K<u.length&&m(K);K+=L)q+=1;return q},N=se.left,A=se.right,v=N>=0?y(N,-1):0,_=A>=0?y(A,1):0;return{groupSize:v+_+1,overlapIndex:v}},[se.left,se.right,u,oe]),W=s.useMemo(()=>{if(U)return!0;if(I.groupSize<=1)return!1;const p=I.groupSize-1;return I.overlapIndex>0&&I.overlapIndex<p},[I,U]),ae=s.useMemo(()=>{if(I.groupSize<=1||W)return 0;const p=I.groupSize>1?2:1;if(p===1)return 0;const m=I.overlapIndex===0?0:p-1,y=(p-1)/2;return(m-y)*Rt},[I,W]),Ce=s.useMemo(()=>{if(W)return{display:"none"};if(ae!==0)return ce?{transform:`translateX(${ae}px)`}:{transform:`translateY(${ae}px)`}},[ae,ce,W]),Fe=Ge.twMerge("flex items-center justify-center rounded-full bg-white text-slate-700 ring-1 ring-inset ring-white/80 backdrop-blur-sm transition-colors duration-150 shadow-[0_0_0_1px_rgba(255,255,255,0.85),0_1px_3px_rgba(15,23,42,0.18)]","dark:bg-slate-800/95 dark:text-slate-200 dark:ring-slate-500/60 dark:shadow-[0_0_0_1px_rgba(148,163,184,0.45),0_1px_3px_rgba(2,6,23,0.55)]",ce?"h-12 w-[6px] px-[2px]":"h-[6px] w-20 py-[2px]",M&&"bg-blue-200/80 ring-blue-300 shadow-[0_0_0_1px_rgba(191,219,254,0.65),0_1px_4px_rgba(59,130,246,0.45)] dark:bg-blue-900/70 dark:ring-blue-400 dark:shadow-[0_0_0_1px_rgba(147,197,253,0.5),0_1px_4px_rgba(59,130,246,0.55)]"),Ne=Ge.twMerge("rounded-full bg-slate-600 transition-colors duration-150 shadow-[0_0_0_1px_rgba(255,255,255,0.9)] dark:bg-slate-200 dark:shadow-[0_0_0_1px_rgba(15,23,42,0.55)]",ce?"h-8 w-[2px]":"h-[2px] w-16",M&&"bg-blue-500 dark:bg-blue-300",!ee&&"group-hover:bg-slate-700 dark:group-hover:bg-slate-100"),d=s.useCallback(()=>{const p=R.current;if(!p)return;let m=0;if(!W){const A=i==="horizontal"?p.offsetWidth:p.offsetHeight;let v=0,_=0;if(typeof window<"u"){const b=window.getComputedStyle(p);i==="horizontal"?(v=Number.parseFloat(b.marginLeft||"0"),_=Number.parseFloat(b.marginRight||"0")):(v=Number.parseFloat(b.marginTop||"0"),_=Number.parseFloat(b.marginBottom||"0"))}m=[A,v,_].reduce((b,x)=>Number.isFinite(x)?b+x:b,0)}(!Number.isFinite(m)||m<0)&&(m=0);const y={id:j,thickness:m,direction:i,visible:!W&&m>Nt,startPanelId:k.left,endPanelId:k.right},N=le.current;N&&Math.abs(N.thickness-y.thickness)<=.25&&N.visible===y.visible&&N.direction===y.direction&&N.startPanelId===y.startPanelId&&N.endPanelId===y.endPanelId||(le.current=y,o(j,y))},[i,k.left,k.right,o,j,W]);s.useEffect(()=>{d()},[d]),s.useEffect(()=>{const p=R.current;if(!p)return;if(typeof ResizeObserver>"u"){d();return}const m=new ResizeObserver(()=>{d()});return m.observe(p),()=>{m.disconnect()}},[d]);const P=s.useMemo(()=>{const p=f?{...be,...f}:be;return W?{...p,display:"none",pointerEvents:"none",visibility:"hidden"}:p},[be,W,f]);return X.jsx("button",{type:"button",ref:R,className:ge,style:P,onPointerDown:ye,onKeyDown:ze,disabled:ee,"aria-hidden":W||void 0,"aria-label":`Resize ${ce?"columns":"rows"} - Drag or use arrow keys to resize, drag to the edge to collapse/expand panels`,"data-resize-handle-id":j,title:`ドラッグして${ce?"列":"行"}をリサイズ、端まで移動して折りたたみ/展開`,children:r||X.jsx("div",{className:Fe,style:Ce,children:X.jsx("span",{className:Ne})})})}),Vt=e=>document.querySelector(`[data-panel-id="${e}"]`),qt=e=>document.querySelector(`[data-panel-group-id="${e}"]`),Zt=e=>document.querySelector(`[data-resize-handle-id="${e}"]`);exports.PANEL_SNAP_THRESHOLD=zt;exports.Panel=Ot;exports.PanelGroup=$t;exports.PanelGroupContext=et;exports.PanelResizeHandle=Wt;exports.clamp=de;exports.getConstraintInPixels=$;exports.getContainerSize=Ie;exports.getPanelElement=Vt;exports.getPanelGroupElement=qt;exports.getResizeHandleElement=Zt;exports.loadLayout=bt;exports.normalizeSizeConfig=St;exports.saveLayout=Pt;exports.usePanelControls=Dt;exports.usePanelGroup=Xe;exports.useResizablePanels=Ct;
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),M=require("react/jsx-runtime"),je=require("tailwind-merge"),mt=require("react-dom"),Je=f.createContext(null),$e=()=>{const t=f.useContext(Je);if(!t)throw new Error("usePanelGroup must be used within a PanelGroup");return t},lt=(t,e=0)=>{if(!Number.isFinite(t))return t;const n=10**e,d=t*n,r=Math.floor(d),c=d-r,i=Number.EPSILON*Math.max(1,Math.abs(d));return c<.5-i?r/n:c>.5+i?(r+1)/n:(r%2===0?r:r+1)/n},ct=12,Ke=8,St=8,Pt=8,dt=.05,ut=10,bt=.05,Ct=20,yt=.05,Qe=0,ft=6,me=(t,e)=>e<=0?0:lt(t/e*100,ft),_e=(t,e)=>!t||e<=0?0:t/100*e,We=(t,e="percentage")=>{if(t!==void 0)return typeof t=="number"?{value:t,unit:e}:t},et=(t,e)=>t?t.unit==="percentage"?t.value/100*e:t.value:0,Q=(t,e,n)=>t?typeof t=="number"?t/100*n:t.unit==="pixels"?t.value:t.value/100*n:e,fe=(t,e,n)=>Math.min(Math.max(t,e),n),Ze=t=>{if(!Number.isFinite(t)||t<=0)return Qe;const e=t*dt,n=Math.min(ct,ut,e);return Math.max(Qe,n)},pt=(t,e,n,d={})=>{if(Math.abs(e)<=0)return e;const r=d.enforceAutoMinSize??!1,c=t.map((o,a)=>({panel:o,index:a})).filter(({panel:o})=>!o.collapsed&&(o.sizeUnit==="pixels"||o.originalPixelSize!==void 0));if(c.length===0)return e;const i=e>0,z=[...c].sort((o,a)=>{const s=o.panel.pixelAdjustPriority??o.index+1,g=a.panel.pixelAdjustPriority??a.index+1;return s===g?i?a.index-o.index:o.index-a.index:i?g-s:s-g});let u=e;const x=o=>{for(const{index:a}of z){if(Math.abs(u)<=0)break;const s=t[a];if(!s||s.collapsed)continue;const g=We(s.minSize,"pixels"),C=We(s.maxSize,"pixels"),P=g?et(g,n):0,E=C?et(C,n):n,m=r?Q(s.autoMinSize,0,n):0,y=Math.max(P,m),S=s.preferredPixelSize!==void 0?fe(s.preferredPixelSize,y,E):s.size,O=s.collapseFromStart||s.collapseFromEnd;if(u>0){if(Math.abs(s.size)<=0&&(s.percentageSize??0)<=0)continue;const re=Math.max(s.size,S),le=o?Math.min(E,re):E,Y=Math.max(0,le-s.size);if(Y<=0)continue;const j=Math.min(Y,u);if(j<=0)continue;const B=s.size+j,se=me(B,n),U=O?B:s.sizeBeforeCollapse,q=O?s.measuredPixelSizeBeforeCollapse??s.measuredPixelSize??B:s.measuredPixelSizeBeforeCollapse;t[a]={...s,size:B,percentageSize:se,sizeBeforeCollapse:U,measuredPixelSizeBeforeCollapse:q,measuredPixelSize:void 0,measuredPercentageSize:void 0},u-=j}else{const X=o?S:y,re=Math.max(0,s.size-X);if(re<=0)continue;const le=Math.min(re,Math.abs(u));if(le<=0)continue;const Y=s.size-le,j=me(Y,n),B=O?Y:s.sizeBeforeCollapse,se=O?s.measuredPixelSizeBeforeCollapse??s.measuredPixelSize??Y:s.measuredPixelSizeBeforeCollapse;t[a]={...s,size:Y,percentageSize:j,sizeBeforeCollapse:B,measuredPixelSizeBeforeCollapse:se,measuredPixelSize:void 0,measuredPercentageSize:void 0},u+=le}}};return x(!0),(i&&u>0||!i&&u<0)&&x(!1),u},Ge=t=>{if(!t)return 0;const e=parseFloat(t);return Number.isFinite(e)?e:0},Be=(t,e)=>{const n=t.getBoundingClientRect(),d=typeof window<"u"?window.getComputedStyle(t):null,r=d?Ge(d.borderLeftWidth)+Ge(d.borderRightWidth):0,c=d?Ge(d.borderTopWidth)+Ge(d.borderBottomWidth):0;if(e==="horizontal"){const x=n.width>0?n.width:t.offsetWidth,o=n.width>0?Math.max(0,n.width-r):t.clientWidth,a=t.offsetWidth>0?t.offsetWidth:t.clientWidth+r;return{inner:o>0?o:Math.max(0,t.clientWidth),outer:x>0?x:Math.max(0,a)}}const i=n.height>0?n.height:t.offsetHeight,z=n.height>0?Math.max(0,n.height-c):t.clientHeight,u=t.offsetHeight>0?t.offsetHeight:t.clientHeight+c;return{inner:z>0?z:Math.max(0,t.clientHeight),outer:i>0?i:Math.max(0,u)}},zt=(t,e)=>{try{localStorage.setItem(`panel-layout-${t}`,JSON.stringify(e))}catch(n){console.warn("Failed to save panel layout:",n)}},xt=t=>{try{const e=localStorage.getItem(`panel-layout-${t}`);return e?JSON.parse(e):null}catch(e){return console.warn("Failed to load panel layout:",e),null}};var Ve=(t=>(t[t.DEBUG=0]="DEBUG",t[t.INFO=1]="INFO",t[t.WARN=2]="WARN",t[t.ERROR=3]="ERROR",t[t.NONE=4]="NONE",t))(Ve||{});const Ce=class Ce{constructor(e=2,n="[resize-panels]",d=console){this.level=e,this.prefix=n,this.impl=d}static setLevel(e){Ce.instance.setLevel(e)}setLevel(e){this.level=e}static setImplementation(e){Ce.instance.setImplementation(e)}setImplementation(e){this.impl=e}static setPrefix(e){Ce.instance.setPrefix(e)}setPrefix(e){this.prefix=e}formatMessage(e){return typeof e=="string"?[`${this.prefix} ${e}`]:[this.prefix,e]}static debug(e,...n){Ce.instance.debug(e,...n)}debug(e,...n){this.level<=0&&this.impl.debug(...this.formatMessage(e),...n)}static info(e,...n){Ce.instance.info(e,...n)}info(e,...n){this.level<=1&&this.impl.info(...this.formatMessage(e),...n)}static warn(e,...n){Ce.instance.warn(e,...n)}warn(e,...n){this.level<=2&&this.impl.warn(...this.formatMessage(e),...n)}static error(e,...n){Ce.instance.error(e,...n)}error(e,...n){this.level<=3&&this.impl.error(...this.formatMessage(e),...n)}};Ce.instance=new Ce(2,"[resize-panels]");let ke=Ce;const ue=new ke(Ve.INFO,"[resize-panels]"),Pe=t=>t.map(e=>({id:e.id,size:e.size,percentageSize:e.percentageSize,preferredPercentageSize:e.preferredPercentageSize,sizeBeforeCollapse:e.sizeBeforeCollapse,percentageSizeBeforeCollapse:e.percentageSizeBeforeCollapse,preferredPercentageSizeBeforeCollapse:e.preferredPercentageSizeBeforeCollapse,measuredPercentageSize:e.measuredPercentageSize,excludeFromAutoGrowth:e.excludeFromAutoGrowth??!1,collapsed:e.collapsed??!1,collapseFromStart:e.collapseFromStart,collapseFromEnd:e.collapseFromEnd,collapsedByDirection:e.collapsedByDirection??null})),He=t=>t?Pe([t])[0]:null,Fe=t=>t?!!(t.collapseFromStart||t.collapseFromEnd):!1,qe=(t,e)=>{if(!Number.isFinite(e)||e<=0)return t;const n=t.map(u=>({...u})),d=[];for(let u=0;u<n.length;u+=1){const x=n[u];if(x.collapsed){n[u]={...x,size:0,percentageSize:0};continue}const o=Math.max(0,Q(x.minSize,0,e)),a=Math.max(0,Q(x.autoMinSize,0,e)),s=Math.max(o,a),g=Math.max(.001,s),C=Q(x.maxSize,e,e),P=Math.max(s,C),E=x.sizeUnit==="pixels"||x.originalPixelSize!==void 0,m=Math.max(0,x.size);let y=s;if(E){const O=x.preferredPixelSize??x.size??x.originalPixelSize??s;y=fe(O,s,P)}else{const O=x.preferredPercentageSize??x.percentageSize??me(x.size,e),X=_e(O,e);y=fe(X,s,P)}const S=!E&&(x.excludeFromAutoGrowth??!1)&&m<=g;d.push({index:u,isPixelPanel:E,minSize:s,maxSize:P,preferredSize:y,priority:x.pixelAdjustPriority??u+1,flexPriority:E?void 0:x.flexAdjustPriority,excludeFromGrowth:S})}if(d.length===0)return n;const r=new Map;let c=0;for(const u of d)r.set(u.index,u.minSize),c+=u.minSize;let i=e-c;const z=(u,x)=>{if(x<=0)return 0;const o=r.get(u.index)??u.minSize,a=Math.max(0,u.maxSize-o);if(a<=0)return 0;const s=Math.min(x,a);return r.set(u.index,o+s),s};if(i>0){const u=o=>{for(;i>1e-6;){let s=0;const g=[];for(const E of o){if(!E.isPixelPanel&&E.excludeFromGrowth)continue;const m=r.get(E.index)??E.minSize,y=Math.min(E.preferredSize,E.maxSize),S=Math.max(0,y-m);S>1e-6&&(s+=S,g.push({descriptor:E,capacity:S}))}if(g.length===0||s<=1e-6)break;let C=0;const P=i;for(const E of g){if(i<=1e-6)break;if(!E.descriptor.isPixelPanel&&E.descriptor.excludeFromGrowth)continue;const m=P*E.capacity/s,y=Math.min(E.capacity,m);if(y<=0)continue;const S=z(E.descriptor,y);S>0&&(i-=S,C+=S)}if(C<=1e-6)break}},x=d.filter(o=>o.isPixelPanel);x.sort((o,a)=>a.priority-o.priority);for(const o of x){if(i<=0)break;const a=r.get(o.index)??o.minSize,s=Math.min(o.preferredSize,o.maxSize),g=Math.max(0,s-a);if(g<=0)continue;const C=z(o,Math.min(g,i));C>0&&(i-=C)}if(i>0){const o=d.filter(a=>!a.isPixelPanel);if(o.length>0){const a=o.filter(s=>s.flexPriority!==void 0&&!s.excludeFromGrowth);if(a.length>0){a.sort((s,g)=>(g.flexPriority??0)-(s.flexPriority??0));for(const s of a){if(i<=0)break;if(s.excludeFromGrowth)continue;const g=r.get(s.index)??s.minSize,C=Math.min(s.preferredSize,s.maxSize),P=Math.max(0,C-g);if(P<=0)continue;const E=z(s,Math.min(P,i));E>0&&(i-=E)}}if(i>0){const s=a.length>0?o.filter(g=>g.flexPriority===void 0&&!g.excludeFromGrowth):o.filter(g=>!g.excludeFromGrowth);s.length>0&&u(s)}}}}if(i>0){let u=i;for(;;){let x=0;const o=[];for(const s of d){if(!s.isPixelPanel&&s.excludeFromGrowth)continue;const g=r.get(s.index)??s.minSize,C=s.isPixelPanel?Math.min(s.maxSize,s.preferredSize):s.maxSize,P=Math.max(0,C-g);P>0&&(o.push(s),x+=P)}if(x<=0)break;const a=i;for(const s of o){if(i<=0)break;if(!s.isPixelPanel&&s.excludeFromGrowth)continue;const g=r.get(s.index)??s.minSize,C=s.isPixelPanel?Math.min(s.maxSize,s.preferredSize):s.maxSize,P=Math.max(0,C-g);if(P<=0)continue;const E=a*P/x,m=z(s,Math.min(P,E));m>0&&(i-=m)}if(i<=1e-6||Math.abs(u-i)<=1e-6)break;u=i}i=Math.max(0,i)}if(i<0){let u=i;const x=d.filter(o=>o.isPixelPanel);for(x.sort((o,a)=>o.priority-a.priority);!(i>=0);){let o=!1;for(const a of x){if(i>=0)break;const s=r.get(a.index)??a.minSize,g=fe(a.preferredSize,a.minSize,a.maxSize),C=Math.max(0,s-g);if(C>0&&i<0){const E=Math.min(C,Math.abs(i));r.set(a.index,s-E),i+=E,o=!0;continue}const P=Math.max(0,s-a.minSize);if(P>0&&i<0){const E=Math.min(P,Math.abs(i));r.set(a.index,s-E),i+=E,o=!0}}if(!o||Math.abs(u-i)<=1e-6)break;u=i}}for(const u of d){const x=r.get(u.index)??u.minSize,o=n[u.index],a=Fe(o),s=a?x:o.sizeBeforeCollapse,g=a?o.measuredPixelSizeBeforeCollapse??o.measuredPixelSize??x:o.measuredPixelSizeBeforeCollapse,C=e>0?me(x,e):0;n[u.index]={...o,size:x,percentageSize:C,preferredPercentageSize:o.preferredPercentageSize,preferredPixelSize:u.isPixelPanel?o.preferredPixelSize??x:o.preferredPixelSize,sizeBeforeCollapse:s,measuredPixelSizeBeforeCollapse:g,measuredPixelSize:void 0,measuredPercentageSize:void 0}}return Ie(n)},Ie=t=>{let e=0;for(const r of t)r.collapsed||(e+=Math.max(r.size,0));if(e<=0){let r=!1;const c=t.map(i=>(i.percentageSize??0)!==0?(r=!0,{...i,percentageSize:0,measuredPercentageSize:i.measuredPercentageSize!==void 0?0:i.measuredPercentageSize}):!i.collapsed&&i.sizeBeforeCollapse!==i.size?(r=!0,{...i,sizeBeforeCollapse:i.size}):i);return r?c:t}let n=!1;const d=t.map(r=>{if(r.collapsed)return(r.percentageSize??0)!==0?(n=!0,{...r,percentageSize:0,measuredPercentageSize:r.measuredPercentageSize!==void 0?0:r.measuredPercentageSize}):r;const c=me(r.size,e),i=r.measuredPercentageSize,x=(i!==void 0?Math.abs(i-c):1/0)<1e-4&&i!==void 0?i:c,o=lt(x,ft),s=Math.abs((r.percentageSize??0)-o)>0||r.percentageSize===void 0,g=r.sizeBeforeCollapse===void 0||r.sizeBeforeCollapse!==r.size,C=Fe(r),P=C&&g,E=r.measuredPixelSize??r.size,m=C&&(r.measuredPixelSizeBeforeCollapse===void 0||r.measuredPixelSizeBeforeCollapse!==E);if(!(s||P||m))return r;n=!0;const y=P?r.size:r.sizeBeforeCollapse,S=m?E:r.measuredPixelSizeBeforeCollapse;return{...r,percentageSize:o,sizeBeforeCollapse:y,measuredPixelSizeBeforeCollapse:S,collapsedByDirection:r.collapsed?r.collapsedByDirection??null:null}});return n?d:t},Ue=(t,e)=>{if(e<=0)return!1;const n=[];let d=0;for(let o=0;o<t.length;o+=1){const a=t[o];!a||a.collapsed||(n.push(o),d+=a.size)}if(n.length===0)return!1;let r=e-d;if(Math.abs(r)<=0)return!1;let c=!1;const i=o=>{const a=t[o],s=Q(a.minSize,0,e),g=Q(a.autoMinSize,0,e),C=Math.max(s,g),P=Q(a.maxSize,e,e),E=a.sizeUnit==="percentage"&&a.originalPixelSize===void 0;return{index:o,minSize:C,maxSize:P,isFlexible:E}},z=(o,a)=>{if(!Number.isFinite(a)||Math.abs(a)<=0)return;const s=t[o];if(!s)return;const g=Math.max(0,s.size+a);if(Math.abs(g-s.size)<=0)return;const C=me(g,e),P=Fe(s),E=P?g:s.sizeBeforeCollapse,m=P?s.measuredPixelSizeBeforeCollapse??s.measuredPixelSize??g:s.measuredPixelSizeBeforeCollapse;t[o]={...s,size:g,percentageSize:C,sizeBeforeCollapse:E,measuredPixelSizeBeforeCollapse:m,measuredPixelSize:void 0,measuredPercentageSize:void 0},r-=a,c=!0},u=o=>{for(const a of o){if(Math.abs(r)<=0)break;const s=t[a.index];if(!s||s.collapsed)continue;const g=s.size;if(r>0){const C=Math.max(0,a.maxSize-g);if(C<=0)continue;const P=Math.min(C,r);if(P<=0)continue;z(a.index,P)}else{const C=Math.max(0,g-a.minSize);if(C<=0)continue;const P=Math.min(C,Math.abs(r));if(P<=0)continue;z(a.index,-P)}}},x=n.map(o=>i(o)).filter(o=>o.isFlexible);if(x.length>0&&u(x),Math.abs(r)>0){const o=r;r=pt(t,r,e,{enforceAutoMinSize:!0}),Math.abs(r-o)>0&&(c=!0)}return c},tt=(t,e,n)=>{if(!(t.sizeUnit==="pixels"||t.originalPixelSize!==void 0)||t.pixelAdjustPriority!==void 0)return t;const r=e.filter((i,z)=>z!==n&&(i.sizeUnit==="pixels"||i.originalPixelSize!==void 0)).map(i=>i.pixelAdjustPriority).filter(i=>i!==void 0),c=r.length>0?Math.max(...r)+1:1;return{...t,pixelAdjustPriority:c}},vt=(t,e)=>{switch(e.type){case"REGISTER_PANEL":{ue.debug("REGISTER_PANEL",e.panel);const n=t.findIndex(c=>c.id===e.panel.id);if(n>=0){const c=[...t],i=t[n],z={...i,minSize:e.panel.minSize,maxSize:e.panel.maxSize,collapseFromStart:e.panel.collapseFromStart,collapseFromEnd:e.panel.collapseFromEnd,collapsedByDirection:e.panel.collapsedByDirection!==void 0?e.panel.collapsedByDirection:i.collapsedByDirection,sizeUnit:e.panel.sizeUnit,originalPixelSize:e.panel.originalPixelSize,preferredPercentageSize:e.panel.preferredPercentageSize!==void 0?e.panel.preferredPercentageSize:i.preferredPercentageSize,preferredPercentageSizeBeforeCollapse:e.panel.preferredPercentageSizeBeforeCollapse!==void 0?e.panel.preferredPercentageSizeBeforeCollapse:i.preferredPercentageSizeBeforeCollapse,percentageSizeBeforeCollapse:e.panel.percentageSizeBeforeCollapse!==void 0?e.panel.percentageSizeBeforeCollapse:i.percentageSizeBeforeCollapse,pixelAdjustPriority:e.panel.pixelAdjustPriority!==void 0?e.panel.pixelAdjustPriority:i.pixelAdjustPriority,autoMinSize:e.panel.autoMinSize!==void 0?e.panel.autoMinSize:i.autoMinSize,excludeFromAutoGrowth:e.panel.excludeFromAutoGrowth!==void 0?e.panel.excludeFromAutoGrowth:i.excludeFromAutoGrowth},u=tt(z,t,n);return ue.debug("register panel (update)",{panelId:u.id,incoming:He(e.panel),previous:He(i),next:He(u)}),c[n]=u,c}const d={...e.panel},r=tt(d,t);return ue.debug("register panel (insert)",{panelId:r.id,incoming:He(r),previousLength:t.length}),[...t,r]}case"UNREGISTER_PANEL":{ue.debug("UNREGISTER_PANEL",e.id);const n=t.filter(r=>r.id!==e.id),d=Ie(n);return ue.debug("unregister panel",{panelId:e.id,previous:Pe(t),filtered:Pe(n),next:Pe(d)}),d}case"RESIZE_PANELS":{ue.debug("RESIZE_PANELS",e.leftId,e.rightId,e.leftSize,e.rightSize);const n=t.findIndex(G=>G.id===e.leftId),d=t.findIndex(G=>G.id===e.rightId);if(n===-1||d===-1)return t;const r=[...t],c=r[n],i=r[d];if(c.collapsed||i.collapsed||e.leftSize===c.size&&e.rightSize===i.size)return t;const z=e.containerSize??t.reduce((G,oe)=>G+oe.size,0),u=Q(c.minSize,0,z),x=Q(c.maxSize,z,z),o=Q(i.minSize,0,z),a=Q(i.maxSize,z,z),s=c.size+i.size,g=t.reduce((G,oe)=>oe.collapsed?G:G+oe.size,0),C=g-s,P=u+o,E=x+a,m=fe(e.leftSize+e.rightSize,P,E);let y=z>0?z-C:m;Number.isFinite(y)||(y=m);const S=fe(Math.max(m,y),P,E),O=G=>({min:Math.max(u,G-a),max:Math.min(x,G-o)}),X=G=>({min:Math.max(o,G-x),max:Math.min(a,G-u)}),re=Math.abs(e.leftSize-c.size),le=Math.abs(e.rightSize-i.size),Y=re>=le;let j=c.size,B=i.size;if(Y){const G=O(S);if(G.min>G.max)return t;const oe=fe(e.leftSize,G.min,G.max),b=S-oe;if(b<o||b>a)return t;j=oe,B=b}else{const G=X(S);if(G.min>G.max)return t;const oe=fe(e.rightSize,G.min,G.max),b=S-oe;if(b<u||b>x)return t;B=oe,j=b}const se=j+B;if(S!==se)return t;const U=g-c.size-i.size+se,q=z>0?z:U,T=q>0?me(j,q):0,$=q>0?me(B,q):0,v=c.sizeUnit==="pixels"||c.originalPixelSize!==void 0?j:c.preferredPixelSize,A=i.sizeUnit==="pixels"||i.originalPixelSize!==void 0?B:i.preferredPixelSize,he=Q(c.autoMinSize,0,z),ae=Q(i.autoMinSize,0,z),ge=Math.max(.001,he),pe=Math.max(.001,ae),ce=c.sizeUnit==="percentage"&&c.originalPixelSize===void 0,de=i.sizeUnit==="percentage"&&i.originalPixelSize===void 0;let ze=c.excludeFromAutoGrowth,Se=i.excludeFromAutoGrowth;ce&&(j<=ge?ze=!0:j>ge&&(ze=!1)),de&&(B<=pe?Se=!0:B>pe&&(Se=!1));const ye=Fe(c),ve=Fe(i);return r[n]={...c,size:j,percentageSize:T,preferredPercentageSize:T>0?T:c.preferredPercentageSize,preferredPixelSize:v,sizeBeforeCollapse:ye?j:c.sizeBeforeCollapse,measuredPixelSize:void 0,measuredPercentageSize:void 0,excludeFromAutoGrowth:ze},r[d]={...i,size:B,percentageSize:$,preferredPercentageSize:$>0?$:i.preferredPercentageSize,preferredPixelSize:A,sizeBeforeCollapse:ve?B:i.sizeBeforeCollapse,measuredPixelSize:void 0,measuredPercentageSize:void 0,excludeFromAutoGrowth:Se},z>0&&Ue(r,z)?Ie(r):r}case"SET_PANELS":{ue.debug("SET_PANELS",e.panels);const n=e.panels.map(u=>{const x=u.sizeUnit==="pixels"||u.originalPixelSize!==void 0,o=u.preferredPercentageSize!==void 0?u.preferredPercentageSize:u.percentageSize,a=u.preferredPixelSize!==void 0?u.preferredPixelSize:x?u.size:u.preferredPixelSize;return{...u,preferredPercentageSize:o,preferredPixelSize:a}}),d=Pe(t),r=Pe(n),c=Ie(n),i=Pe(c);let z=d.length===i.length;if(z)for(let u=0;u<i.length;u+=1){const x=i[u],o=d[u];if(!o){z=!1;break}if(!(o.id===x.id&&o.size===x.size&&o.percentageSize===x.percentageSize&&o.sizeBeforeCollapse===x.sizeBeforeCollapse&&o.measuredPercentageSize===x.measuredPercentageSize&&o.collapsed===x.collapsed)){z=!1;break}}return z?(ue.debug("set panels skipped (no diff)",{previous:d,incoming:r,next:i,previousLength:d.length,incomingLength:r.length}),t):(ue.debug("set panels",{previous:d,incoming:r,next:i,previousLength:d.length,incomingLength:r.length}),c)}case"CONTAINER_RESIZED":{if(ue.debug("CONTAINER_RESIZED",e.containerSize),e.containerSize<=0)return ue.debug("container resized skipped (non-positive size)",{containerSize:e.containerSize,panels:Pe(t)}),t;ue.debug("container resized (before)",{containerSize:e.containerSize,panels:Pe(t)});const n=qe(t,e.containerSize);if(ue.debug("container resized (after recalc)",{containerSize:e.containerSize,panels:Pe(n)}),e.containerSize>0&&Ue(n,e.containerSize)){const d=Ie(n);return ue.debug("container resized (after reconcile)",{containerSize:e.containerSize,panels:Pe(d)}),d}return ue.debug("container resized (final)",{containerSize:e.containerSize,panels:Pe(n)}),n}case"COLLAPSE_PANEL":{ue.debug("COLLAPSE_PANEL",e.id);const n=t.findIndex(s=>s.id===e.id);if(n===-1)return t;const d=t[n],r=e.from==="start"?d.collapseFromStart:d.collapseFromEnd;if(!(Fe(d)&&r)||d.collapsed)return t;const i=d.size,z=d.measuredPixelSize??i,u=d.percentageSize??d.preferredPercentageSize??0,x={...d,collapsed:!0,collapsedByDirection:e.from,sizeBeforeCollapse:i,percentageSizeBeforeCollapse:u,preferredPercentageSizeBeforeCollapse:d.preferredPercentageSize??u,preferredPixelSizeBeforeCollapse:d.preferredPixelSize??i,measuredPixelSizeBeforeCollapse:z,size:0,percentageSize:0,preferredPercentageSize:d.preferredPercentageSize,measuredPixelSize:d.measuredPixelSize!==void 0?0:d.measuredPixelSize,measuredPercentageSize:d.measuredPercentageSize!==void 0?0:d.measuredPercentageSize},o=[...t];o[n]=x;const a=qe(o,e.containerSize);return e.containerSize>0&&Ue(a,e.containerSize)?Ie(a):a}case"EXPAND_PANEL":{ue.debug("EXPAND_PANEL",e.id,e.targetSize);const n=t.findIndex(S=>S.id===e.id);if(n===-1)return t;const d=e.containerSize,r=t[n],c=e.from==="start"?r.collapseFromStart:r.collapseFromEnd;if(!(Fe(r)&&c&&r.collapsed)||r.collapsedByDirection&&r.collapsedByDirection!==e.from)return t;const z=[e.targetSize,r.sizeBeforeCollapse,r.measuredPixelSizeBeforeCollapse,r.preferredPixelSizeBeforeCollapse,r.originalPixelSize].find(S=>S!==void 0)??0,u=Q(r.minSize,0,d),x=Q(r.maxSize,d,d),o=fe(z,u,x),a=me(o,d),s=r.measuredPixelSizeBeforeCollapse??o,g=me(s,d),C=r.preferredPercentageSizeBeforeCollapse??r.percentageSizeBeforeCollapse??a,P=r.preferredPixelSizeBeforeCollapse??r.preferredPixelSize??o,E={...r,collapsed:!1,collapsedByDirection:null,size:o,percentageSize:a,preferredPercentageSize:C,preferredPixelSize:P,sizeBeforeCollapse:o,percentageSizeBeforeCollapse:void 0,preferredPercentageSizeBeforeCollapse:void 0,preferredPixelSizeBeforeCollapse:void 0,measuredPixelSize:o,measuredPixelSizeBeforeCollapse:s,measuredPercentageSize:g},m=[...t];m[n]=E;const y=qe(m,d);return d>0&&Ue(y,d)?Ie(y):y}default:return t}},Te=new ke(Ve.INFO,"[resize-panels]"),gt=({direction:t,style:e,onLayout:n,autoSaveId:d,showDebugInfo:r=!1})=>{const[c,i]=f.useReducer(vt,[]),[z,u]=f.useState({width:0,height:0}),[x,o]=f.useState(!1),[a,s]=f.useState(!1),[g,C]=f.useState(null),[P,E]=f.useState({}),[m,y]=f.useState({}),S=f.useRef(null),O=f.useRef(n),X=f.useRef(!1),re=f.useRef(0),le=f.useRef(z),Y=f.useRef(z),j=f.useRef(x),B=f.useRef(g?.reason??null),se=f.useRef({}),U=f.useRef(null),q=f.useRef(null),T=f.useRef(null),$=f.useRef({width:0,height:0}),v=f.useRef({width:0,height:0}),A=f.useRef({}),he=f.useRef({}),ae=f.useCallback(l=>l.map(h=>({...h})),[]);f.useEffect(()=>{Y.current=z},[z]),f.useEffect(()=>{j.current=x},[x]),f.useEffect(()=>{B.current=g?.reason??null},[g?.reason]),f.useEffect(()=>{if(g)return;const l=t==="horizontal"?z.width:z.height;!Number.isFinite(l)||l<=4||c.length!==0&&(U.current=ae(c))},[g,c,t,z.width,z.height,ae]),f.useEffect(()=>{const l=q.current;if(g){q.current=g;return}if(l&&!g&&U.current){q.current=null;const h=ae(U.current);i({type:"SET_PANELS",panels:h});return}q.current=g},[g,ae]),f.useLayoutEffect(()=>{if(!S.current)return;const l=new ResizeObserver(h=>{for(const R of h){const w=R.target,L=w?Be(w,"horizontal"):null,I=w?Be(w,"vertical"):null,H=L?L.inner:0,Z=I?I.inner:0,_=R.contentRect.width,F=R.contentRect.height,N=H>0?H:_,k=Z>0?Z:F;$.current={width:N,height:k};const ee=v.current,ne=Math.abs(ee.width-N)>=.5,K=Math.abs(ee.height-k)>=.5;ne||K?(T.current&&(clearTimeout(T.current),T.current=null),!x&&N>0&&k>0&&o(!0),u({width:N,height:k}),v.current={width:N,height:k}):(T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{const W=$.current;u(W),v.current=W,T.current=null},150))}});return l.observe(S.current),()=>{l.disconnect(),T.current&&clearTimeout(T.current)}},[x]),f.useEffect(()=>()=>{Object.values(A.current).forEach(clearTimeout)},[]),f.useLayoutEffect(()=>{const l=le.current,h=z,R=t==="horizontal"?Math.abs(l.width-h.width)>=.5:Math.abs(l.height-h.height)>=.5;if(a&&R){const w=t==="horizontal"?h.width:h.height;i({type:"CONTAINER_RESIZED",containerSize:w,direction:t})}le.current=h},[z,a,t]);const ge=f.useCallback(()=>{Te.debug("panels[0]?.id",c[0]?.id);const l=c.some(p=>{if(p.collapsed||p.sizeUnit!=="percentage")return!1;const te=p.collapseFromStart||p.collapseFromEnd?p.sizeBeforeCollapse??p.measuredPixelSizeBeforeCollapse??p.originalPixelSize??p.measuredPixelSize??0:p.measuredPixelSize??p.originalPixelSize??p.size,ie=p.percentageSize!==void 0&&p.percentageSize>0;return p.size<=0&&(te>0||ie)}),h=t==="horizontal"?z.width:z.height,R=h>0;if(g||!R||!(c.length>0&&(c.length!==re.current||!a||l)))return;const I=c.filter(p=>!p.collapsed&&(p.originalPixelSize!==void 0||p.sizeUnit==="pixels")).reduce((p,D)=>{const te=D.preferredPixelSize??D.originalPixelSize??D.size;return p+Math.max(0,te??0)},0),H=c.filter(p=>p.sizeUnit==="percentage"&&!p.collapsed),Z=H.map(p=>p.id),_=H.map(p=>{const D=p.preferredPercentageSize??p.percentageSize;return D!==void 0&&D>0?_e(D,h):p.size>0?p.size:0}),F=_.reduce((p,D)=>p+D,0),N=h-I,k=Math.max(0,N),ee=k>0,ne=c.map(p=>{if(p.collapsed){const D=p.sizeBeforeCollapse??p.measuredPixelSizeBeforeCollapse??p.originalPixelSize??(p.sizeUnit==="pixels"?p.size:void 0),te=p.sizeUnit==="percentage"&&p.percentageSize!==void 0?_e(p.percentageSize,h):void 0,ie=D??te??0,xe=p.measuredPixelSizeBeforeCollapse??p.measuredPixelSize??ie;return{...p,size:0,percentageSize:0,preferredPercentageSize:p.preferredPercentageSize,sizeBeforeCollapse:ie,percentageSizeBeforeCollapse:p.percentageSizeBeforeCollapse??p.percentageSize??p.preferredPercentageSize??0,preferredPercentageSizeBeforeCollapse:p.preferredPercentageSizeBeforeCollapse??p.preferredPercentageSize??p.percentageSize??void 0,preferredPixelSizeBeforeCollapse:p.preferredPixelSizeBeforeCollapse??p.preferredPixelSize??ie,measuredPixelSizeBeforeCollapse:xe}}if(p.sizeUnit==="pixels"||p.originalPixelSize!==void 0){const D=p.size,te=h>0?me(D,h):0,ie={...p,size:D,percentageSize:te,preferredPixelSize:p.preferredPixelSize??p.originalPixelSize??D,preferredPercentageSize:p.preferredPercentageSize!==void 0?p.preferredPercentageSize:te>0?te:void 0};if(p.collapseFromStart||p.collapseFromEnd){const xe=p.sizeBeforeCollapse??D,we=p.measuredPixelSizeBeforeCollapse??p.measuredPixelSize??xe;ie.sizeBeforeCollapse=xe,ie.measuredPixelSizeBeforeCollapse=we,ie.preferredPixelSizeBeforeCollapse=p.preferredPixelSizeBeforeCollapse??p.preferredPixelSize??xe}return ie}if(p.sizeUnit==="percentage"){const D=Z.indexOf(p.id),te=D!==-1?_[D]:0,ie=Q(p.minSize,0,h),xe=Q(p.maxSize,h,h),we=Math.max(ie,p.sizeBeforeCollapse??0,p.measuredPixelSizeBeforeCollapse??0,p.measuredPixelSize??0,p.originalPixelSize??0,p.size>0?p.size:0,p.percentageSize!==void 0?_e(p.percentageSize,h):0,1),Le=te>0?te:we;let Re;if(!ee)Re=ie;else if(D!==-1&&F>0){const be=Le/F,Me=k*be;Re=fe(Me,ie,xe)}else{const be=p.percentageSize!==void 0?_e(p.percentageSize,h):p.size,Me=be>0?be:Le;Re=fe(Me,ie,xe)}const De=h>0?me(Re,h):0,Ne={...p,size:Re,percentageSize:De,preferredPercentageSize:p.preferredPercentageSize!==void 0?p.preferredPercentageSize:De>0?De:void 0};if(p.collapseFromStart||p.collapseFromEnd){const be=p.sizeBeforeCollapse??Re,Me=p.measuredPixelSizeBeforeCollapse??p.measuredPixelSize??be;Ne.sizeBeforeCollapse=be,Ne.measuredPixelSizeBeforeCollapse=Me,Ne.preferredPixelSizeBeforeCollapse=p.preferredPixelSizeBeforeCollapse??p.preferredPixelSize??be}return Ne}return p}),K=[];for(let p=0;p<ne.length;p+=1){const D=ne[p];D.sizeUnit==="percentage"&&!D.collapsed&&K.push(p)}const W=K.reduce((p,D)=>p+ne[D].size,0),J=N-W;Math.abs(J)>0&&pt(ne,J,h,{enforceAutoMinSize:!0}),i({type:"SET_PANELS",panels:ne}),re.current=c.length,s(!0)},[c,t,z.width,z.height,a,g]);f.useEffect(()=>{const l=t==="horizontal"?z.width:z.height,h=l>0,R=h&&c.length>0,w=R?c.reduce((F,N)=>{if(N.collapsed)return F;const k=Q(N.minSize,0,l);return F+Math.max(0,k)},0):null,L=R?c.reduce((F,N)=>{if(N.collapsed)return F;const k=Q(N.maxSize,l,l);return F+Math.max(0,k)},0):null,I=w??g?.totalMinimumSize??null,H=L??g?.totalMaximumSize??null;if(!h){g&&C(F=>!F||F.availableContainerSize===l?F:{reason:F.reason,totalMinimumSize:null,totalMaximumSize:null,availableContainerSize:l});return}const Z=I!==null&&I-l>Number.EPSILON,_=H!==null&&l-H>Number.EPSILON;if(Z||_){const N={reason:Z?"minimum-exceeded":"maximum-insufficient",totalMinimumSize:I,totalMaximumSize:H,availableContainerSize:l};C(k=>k&&k.reason===N.reason&&Math.abs((k.totalMinimumSize??0)-(N.totalMinimumSize??0))<=Number.EPSILON&&Math.abs((k.totalMaximumSize??0)-(N.totalMaximumSize??0))<=Number.EPSILON&&Math.abs(k.availableContainerSize-N.availableContainerSize)<=Number.EPSILON?k:N);return}if(g){const F=g.reason==="minimum-exceeded",N=g.reason==="maximum-insufficient";(!F||I!==null)&&(!N||H!==null)&&!Z&&!_&&C(W=>W&&null)}},[c,t,z.width,z.height,g]),f.useEffect(()=>{ge()},[ge]),f.useEffect(()=>{O.current=n},[n]);const pe=f.useMemo(()=>c.map(l=>l.size),[c]);f.useLayoutEffect(()=>{pe.length>0&&O.current&&O.current(pe)},[pe]),f.useEffect(()=>{if(d&&pe.length>0){const l=setTimeout(()=>{zt(d,pe)},200);return()=>clearTimeout(l)}},[d,pe]),f.useEffect(()=>{if(!d||c.length===0||X.current)return;const l=t==="horizontal"?z.width:z.height;if(l<=0)return;const h=xt(d);if(h&&h.length===c.length){const R=c.map((w,L)=>{const I=Q(w.minSize,0,l),H=Q(w.maxSize,l,l),Z=fe(h[L],I,H),_=me(Z,l),F=w.sizeUnit==="pixels"||w.originalPixelSize!==void 0?Z:w.preferredPixelSize;return{...w,size:Z,percentageSize:_,preferredPercentageSize:_>0?_:w.preferredPercentageSize,preferredPixelSize:F}});i({type:"SET_PANELS",panels:R}),X.current=!0}},[d,c,z.width,z.height,t]);const ce=f.useCallback(l=>{const h=Y.current,R=se.current,w=JSON.stringify({id:l.id,size:l.size??null,percentageSize:l.percentageSize??null,preferredPercentageSize:l.preferredPercentageSize??null,preferredPixelSize:l.preferredPixelSize??null,sizeUnit:l.sizeUnit,originalPixelSize:l.originalPixelSize??null,minSize:l.minSize??null,maxSize:l.maxSize??null,collapseFromStart:l.collapseFromStart,collapseFromEnd:l.collapseFromEnd,collapsed:l.collapsed??!1,collapsedByDirection:l.collapsedByDirection??null,sizeBeforeCollapse:l.sizeBeforeCollapse??null,percentageSizeBeforeCollapse:l.percentageSizeBeforeCollapse??null,preferredPercentageSizeBeforeCollapse:l.preferredPercentageSizeBeforeCollapse??null,preferredPixelSizeBeforeCollapse:l.preferredPixelSizeBeforeCollapse??null,pixelAdjustPriority:l.pixelAdjustPriority??null});if(R[l.id]===w){Te.debug("useResizablePanels.registerPanel skipped",{panelId:l.id,reason:"duplicate-registration"});return}R[l.id]=w,Te.debug("useResizablePanels.registerPanel",{panelId:l.id,containerReady:j.current,violationReason:B.current,containerSize:{width:h.width,height:h.height}}),i({type:"REGISTER_PANEL",panel:l})},[]),de=f.useCallback(l=>{const h=Y.current;Te.debug("useResizablePanels.unregisterPanel",{panelId:l,containerReady:j.current,violationReason:B.current,containerSize:{width:h.width,height:h.height}}),i({type:"UNREGISTER_PANEL",id:l}),delete se.current[l],E(R=>{if(!(l in R))return R;const w={...R};return delete w[l],w})},[]),ze=f.useCallback((l,h,R,w)=>{const L=t==="horizontal"?z.width:z.height,I=c.find(W=>W.id===l),H=c.find(W=>W.id===h);if(!(I&&H)){i({type:"RESIZE_PANELS",leftId:l,rightId:h,leftSize:R,rightSize:w,containerSize:L});return}if(I.collapsed||H.collapsed)return;const Z=Q(I.minSize,0,L),_=Q(I.maxSize,L,L),F=Q(H.minSize,0,L),N=Q(H.maxSize,L,L);let k=fe(R,Z,_),ee=fe(w,F,N);const ne=k+ee,K=R+w;if(Math.abs(ne-K)>1e-9){const W=K-ne;if(W>0){const J=_-k,p=N-ee,D=J+p;if(D>0){const te=Math.min(W*(J/D),J),ie=Math.min(W-te,p);k+=te,ee+=ie}}else if(W<0){const J=Math.abs(W),p=k-Z,D=ee-F,te=p+D;if(te>0){const ie=Math.min(J*(p/te),p),xe=Math.min(J-ie,D);k-=ie,ee-=xe}}}k=fe(k,Z,_),ee=fe(ee,F,N),Math.abs(k+ee-K)>1e-9&&Te.error("Total size after constraints should be close to the original total size.",{constrainedLeftSize:k,constrainedRightSize:ee,originalTotalSize:K}),i({type:"RESIZE_PANELS",leftId:l,rightId:h,leftSize:k,rightSize:ee,containerSize:L})},[t,z.width,z.height,c]),Se=f.useCallback((l,h)=>{const R=t==="horizontal"?z.width:z.height;i({type:"COLLAPSE_PANEL",id:l,from:h,containerSize:R})},[t,z.width,z.height]),ye=f.useCallback((l,h,R)=>{const w=t==="horizontal"?z.width:z.height;i({type:"EXPAND_PANEL",id:l,from:h,containerSize:w,targetSize:R})},[t,z.width,z.height]),ve=f.useCallback(l=>c.find(h=>h.id===l),[c]),G=f.useCallback((l,h)=>{E(R=>{if(h===null){if(!(l in R))return R;const H={...R};return delete H[l],H}const w=R[l],L=w&&Math.abs(w.pixelSize-h.pixelSize)<.1,I=w&&Math.abs(w.percentageSize-h.percentageSize)<.01;return L&&I?(A.current[l]&&clearTimeout(A.current[l]),he.current[l]=h,A.current[l]=setTimeout(()=>{const H=he.current[l];H&&E(Z=>({...Z,[l]:H})),delete A.current[l]},200),R):(A.current[l]&&(clearTimeout(A.current[l]),delete A.current[l]),{...R,[l]:h})})},[]),oe=f.useCallback((l,h)=>{y(R=>{if(h===null){if(!(l in R))return R;const L={...R};return delete L[l],L}const w=R[l];return w&&Math.abs(w.thickness-h.thickness)<=.25&&w.visible===h.visible&&w.direction===h.direction&&w.startPanelId===h.startPanelId&&w.endPanelId===h.endPanelId?R:{...R,[l]:h}})},[]),b=f.useMemo(()=>({direction:t,panels:c,containerSize:z,isContainerReady:x,showDebugInfo:r,registerPanel:ce,unregisterPanel:de,resizePanels:ze,collapsePanel:Se,expandPanel:ye,getPanel:ve,reportPanelMeasurement:G,panelMeasurements:P,reportHandleMeasurement:oe,handleMeasurements:m,layoutConstraintViolation:g}),[t,c,z,x,r,ce,de,ze,Se,ye,ve,G,P,oe,m,g]),V=f.useMemo(()=>({display:"flex",flexDirection:t==="horizontal"?"row":"column",alignItems:"stretch",width:"100%",height:"100%",minWidth:"0px",minHeight:"0px",position:"relative",overflow:"hidden",...e}),[t,e]);return{groupRef:S,contextValue:b,groupStyle:V}},Mt=t=>{const{getPanel:e,collapsePanel:n,expandPanel:d}=$e(),r=e(t),c=f.useCallback(u=>{n(t,u)},[n,t]),i=f.useCallback((u,x)=>{d(t,u,x)},[d,t]),z=f.useCallback((u,x)=>{r?.collapsed?i(u,x):c(u)},[r?.collapsed,c,i]);return f.useMemo(()=>({panel:r,isCollapsed:r?.collapsed??!1,canCollapseFromStart:r?.collapseFromStart??!1,canCollapseFromEnd:r?.collapseFromEnd??!1,collapse:c,expand:i,toggle:z}),[r,c,i,z])},Et=({panel:t,measuredPixelSize:e,measuredPercentageSize:n,containerAxisSize:d,containerLabel:r})=>{const c=t?.size,i=typeof c=="number"&&Number.isFinite(c)?`${c.toFixed(3)}px`:"-",z=t?.percentageSize!==void 0?`${t.percentageSize.toFixed(3)}%`:"-",u=Number.isFinite(e)?`${e.toFixed(3)}px`:"-",x=Number.isFinite(n)?`${n.toFixed(3)}%`:"-",o=Number.isFinite(d)?`${d.toFixed(3)}px`:"-",a=`${i} / ${z}`,s=`${u} / ${x}`,g=t?.sizeUnit==="pixels"?"Fixed":"Flexible",C=[g,`${r}: ${o}`,`size (state): ${a}`,`size (measured): ${s}`];return{stateValueDisplay:a,measuredValueDisplay:s,containerDisplay:o,headlineLabel:g,titleText:C.join(`
|
|
2
|
-
`)}},wt=f.memo(({panel:t,measuredPixelSize:e,measuredPercentageSize:n,containerAxisSize:d,direction:r})=>{const c=r==="horizontal"?"container width":"container height",{stateValueDisplay:i,measuredValueDisplay:z,containerDisplay:u,headlineLabel:x,titleText:o}=f.useMemo(()=>Et({panel:t,measuredPixelSize:e,measuredPercentageSize:n,containerAxisSize:d,containerLabel:c}),[t,e,n,d,c]),a={position:"absolute",top:"2px",right:"4px",backgroundColor:"rgba(30, 41, 59, 0.6)",color:"#fff",padding:"4px 8px",borderRadius:"6px",fontSize:"11px",fontFamily:"monospace",pointerEvents:"auto",zIndex:10,boxShadow:"0 2px 4px rgba(0,0,0,0.3)",border:"1px solid rgba(255,255,255,0.1)",maxWidth:"calc(100% - 12px)",minWidth:"60px",width:"fit-content",overflow:"hidden"},s={display:"flex",flexDirection:"column",gap:"1px",minWidth:"0",width:"100%"},g={display:"flex",justifyContent:"flex-start",alignItems:"center",gap:"6px",fontSize:"10px",color:"#ccc",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:"0",width:"100%"},C={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"6px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:"0",width:"100%"},P={marginLeft:"auto",fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"};return M.jsx("div",{style:a,title:o,children:M.jsxs("div",{style:s,children:[M.jsx("div",{style:g,children:M.jsx("span",{children:x})}),M.jsxs("div",{style:C,children:[M.jsx("span",{children:c}),M.jsx("span",{style:P,children:u})]}),M.jsxs("div",{style:C,children:[M.jsx("span",{children:"size (state)"}),M.jsx("span",{style:P,children:i})]}),M.jsxs("div",{style:C,children:[M.jsx("span",{children:"size (measured)"}),M.jsx("span",{style:P,children:z})]})]})})}),Xe=new ke(Ve.INFO,"[resize-panels]"),Rt={both:{collapseFromStart:!0,collapseFromEnd:!0},start:{collapseFromStart:!0,collapseFromEnd:!1},end:{collapseFromStart:!1,collapseFromEnd:!0}},Bt=t=>{if(!t)return{collapseFromStart:!1,collapseFromEnd:!1};const e=Rt[t.from];if(!e)throw new Error("Invalid collapsible configuration: unsupported 'from' value");return e},it=({ref:t,setState:e,panelIdRef:n,label:d,timerRef:r})=>c=>{if(!Number.isFinite(c))return;const i=c<0?0:c,z=d==="pixel"?.1:.01;if(Math.abs(t.current-i)<z){r&&(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{t.current=i,e(i),r.current=null},200));return}r?.current&&(clearTimeout(r.current),r.current=null),t.current=i,Xe.debug(`commit ${d}`,{panelId:n.current,[d]:i}),e(i)},It=f.memo(({id:t,defaultSize:e={value:50,unit:"percentage"},minSize:n,maxSize:d,autoMinSize:r,className:c,style:i,children:z,order:u=0,collapsible:x,defaultCollapsed:o=!1,pixelAdjustPriority:a,flexAdjustPriority:s,contentOverflow:g="auto"})=>{const{direction:C,registerPanel:P,unregisterPanel:E,getPanel:m,showDebugInfo:y,isContainerReady:S,reportPanelMeasurement:O,containerSize:X}=$e(),re=f.useRef(null),le=f.useId(),Y=f.useRef(t||`panel-${le}`),j=f.useMemo(()=>Bt(x),[x]),B=j.collapseFromStart||j.collapseFromEnd,se=f.useMemo(()=>B?j.collapseFromStart?"start":j.collapseFromEnd?"end":null:null,[B,j.collapseFromStart,j.collapseFromEnd]),U=B&&o,q=f.useMemo(()=>We(e),[e]),T=q?.unit==="pixels",$=T?void 0:q?.value,v=m(Y.current),A=!!v?.collapsed,he=(v?.size??0)<=0,ae=A||he,[ge,pe]=f.useState(()=>T&&q?q.value:v?.size!==void 0?v.size:0),[ce,de]=f.useState(()=>!T&&q?q.value:v?.percentageSize!==void 0?v.percentageSize:0),ze=f.useRef(ge),Se=f.useRef(ce),ye=f.useRef(null),ve=f.useRef(null);f.useEffect(()=>()=>{ye.current&&clearTimeout(ye.current),ve.current&&clearTimeout(ve.current)},[]);const G=f.useMemo(()=>it({ref:ze,setState:pe,panelIdRef:Y,label:"pixel",timerRef:ye}),[]),oe=f.useMemo(()=>it({ref:Se,setState:de,panelIdRef:Y,label:"percentage",timerRef:ve}),[]),b=f.useCallback(()=>{ze.current!==0&&(ze.current=0,pe(0)),Se.current!==0&&(Se.current=0,de(0))},[]);f.useEffect(()=>{if(!S)return;let _=0;if(T&&q){let J=q.value;n&&typeof n=="object"&&n.unit==="pixels"&&(J=Math.max(J,n.value)),d&&typeof d=="object"&&d.unit==="pixels"&&(J=Math.min(J,d.value)),_=J}const F=U,N=F?se:null;o&&!B&&Xe.warn("Panel defaultCollapsed is ignored because collapsible configuration is not provided.");const k=B&&F&&T?_:void 0,ee=B?$:void 0,ne=T?_:void 0,K={id:Y.current,size:F?0:_,percentageSize:F?0:$,preferredPercentageSize:$,preferredPixelSize:ne,sizeUnit:q?.unit||"percentage",originalPixelSize:T?_:void 0,minSize:n,maxSize:d,collapseFromStart:j.collapseFromStart,collapseFromEnd:j.collapseFromEnd,collapsedByDirection:N,collapsed:F,sizeBeforeCollapse:k,percentageSizeBeforeCollapse:ee,preferredPercentageSizeBeforeCollapse:B?$:void 0,preferredPixelSizeBeforeCollapse:B?ne:void 0,pixelAdjustPriority:a,flexAdjustPriority:s,autoMinSize:r};P(K)},[r,j.collapseFromEnd,j.collapseFromStart,o,q,s,B,S,T,d,n,a,se,$,P,U]),f.useEffect(()=>()=>{E(Y.current),O(Y.current,null)},[E,O]);const V=v?.size??0;f.useEffect(()=>{const _=re.current;if(!_)return;const F=()=>{if(!v)return;const K=_.parentElement;if(!K)return;const W=_.getBoundingClientRect(),J=Be(K,"horizontal"),p=Be(K,"vertical"),D=C==="horizontal"?W.width:W.height,te=C==="horizontal"?J.inner:p.inner,ie=Ze(te);if(ae){b();return}const xe=v.size??0,we=Math.max(2,ie*.5);if(xe>ie&&D<we){Xe.debug("skip noisy measurement",{panelId:Y.current,expectedPanelSize:xe,measured:D,noiseThreshold:we});return}if(D>0){G(D),te>0&&oe(D/te*100);return}v.size!==void 0&&G(v.size),v.percentageSize!==void 0?oe(v.percentageSize):v.sizeUnit==="pixels"&&v.size!==void 0&&te>0&&oe(v.size/te*100)},N=new ResizeObserver(()=>{F()});N.observe(_),F();const k=[],ee=new MutationObserver(()=>{(()=>{if(!re.current)return!1;const W=re.current.getBoundingClientRect();return(C==="horizontal"?W.width:W.height)!==ze.current})()&&setTimeout(F,0)}),ne=_.parentElement;return ne&&ee.observe(ne,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}),()=>{N.disconnect(),ee.disconnect();for(const K of k)clearTimeout(K)}},[oe,G,v,C,ae,b]);const l=v?.size,h=v?.percentageSize,R=v?.sizeUnit;f.useEffect(()=>{if(v){if(ae){b();return}if(l!==void 0&&G(l),h!==void 0)oe(h);else if(R==="pixels"&&l!==void 0){const _=re.current,F=_?.parentElement;if(_&&F){const{width:N,height:k}=_.getBoundingClientRect(),ee=F.clientWidth,ne=F.clientHeight,K=C==="horizontal"?N:k,W=C==="horizontal"?ee:ne;if(K>0&&W>0){const J=K/W*100;oe(J)}}}}},[oe,G,v,h,l,R,C,ae,b]),f.useEffect(()=>{O(Y.current,{pixelSize:ge,percentageSize:ce})},[O,ge,ce]);const w=()=>ae?"0px":v?.originalPixelSize!==void 0?`${V}px`:v?.percentageSize!==void 0?`${v.percentageSize}%`:`${V}px`,L=v?.sizeUnit==="percentage"&&!v?.collapsed?1:0,I={flexBasis:w(),flexGrow:0,flexShrink:L,overflow:"hidden",position:"relative",boxSizing:"border-box",minHeight:"0px",minWidth:"0px",...i};C==="horizontal"?(I.height="100%",I.minWidth=0):(I.width="100%",I.minHeight=0),ae&&(C==="horizontal"?(I.width="0px",I.minWidth="0px"):(I.height="0px",I.minHeight="0px"),I.flexGrow=0,I.flexShrink=0,I.pointerEvents="none",I.visibility="hidden",A&&(I.display="none"));const H=C==="horizontal"?X.width:X.height,Z=f.useMemo(()=>({position:"absolute",inset:"0px",overflow:g,display:"flex",flexDirection:"column",width:"100%",height:"100%",minWidth:"0px",minHeight:"0px"}),[g]);return M.jsxs("div",{ref:re,className:je.twMerge("panel",c),style:I,"data-panel-id":Y.current,"data-panel-size":V,"data-panel-size-unit":v?.sizeUnit||"percentage","data-panel-pixel-size":v?.sizeUnit==="pixels"?v?.originalPixelSize:null,"data-panel-order":u,"data-panel-collapsible":B,"data-panel-collapse-start":j.collapseFromStart,"data-panel-collapse-end":j.collapseFromEnd,"data-panel-collapsed":v?.collapsed,"aria-hidden":ae,children:[M.jsx("div",{style:Z,children:z}),y&&M.jsx(wt,{panel:v,measuredPixelSize:ge,measuredPercentageSize:ce,containerAxisSize:H,direction:C})]})}),Ft=t=>JSON.stringify(t.map(e=>({id:e.id,size:e.size,percentageSize:e.percentageSize??null,preferredPercentageSize:e.preferredPercentageSize??null,preferredPixelSize:e.preferredPixelSize??null,sizeUnit:e.sizeUnit,originalPixelSize:e.originalPixelSize??null,minSize:e.minSize??null,maxSize:e.maxSize??null,autoMinSize:e.autoMinSize??null,collapseFromStart:e.collapseFromStart,collapseFromEnd:e.collapseFromEnd,collapsedByDirection:e.collapsedByDirection??null,collapsed:e.collapsed??!1,sizeBeforeCollapse:e.sizeBeforeCollapse??null,preferredPercentageSizeBeforeCollapse:e.preferredPercentageSizeBeforeCollapse??null,preferredPixelSizeBeforeCollapse:e.preferredPixelSizeBeforeCollapse??null,measuredPixelSizeBeforeCollapse:e.measuredPixelSizeBeforeCollapse??null,pixelAdjustPriority:e.pixelAdjustPriority??null,flexAdjustPriority:e.flexAdjustPriority??null,measuredPixelSize:e.measuredPixelSize??null,measuredPercentageSize:e.measuredPercentageSize??null}))),Nt=t=>JSON.stringify(t.map(e=>({id:e.id,thickness:e.thickness,visible:e.visible,direction:e.direction,startPanelId:e.startPanelId??null,endPanelId:e.endPanelId??null}))),At=()=>{const t=new Set,e=new Map,n=new Set;let d=null,r=0,c=!0,i=[],z={ownerId:null,groups:i};const u=()=>{for(const m of t)m()},x=()=>{c=!0,u()},o=()=>{const m=d;if(m&&n.has(m))return!1;d=null;const y=n.values().next();return y.done||(d=y.value),m!==d};return{subscribe:m=>(t.add(m),()=>{t.delete(m)}),getSnapshot:()=>(o()&&(c=!0),c&&(i=Array.from(e.values()).sort((y,S)=>y.index-S.index).map(({serializedPanels:y,serializedHandles:S,...O})=>O),z={ownerId:d,groups:i},c=!1),z),getOwnerId:()=>(o()&&(c=!0),d),enableGroup:m=>{const y=n.size;n.add(m),n.size!==y&&o()&&x()},disableGroup:m=>{n.delete(m)&&o()&&x()},updateGroup:(m,y)=>{const S=e.get(m),O=S?.index??r++,X=Ft(y.panels),re=Nt(y.handles),le=S?.displayName!==y.displayName,Y=S?.direction!==y.direction,j=S?S.containerSize.width!==y.containerSize.width||S.containerSize.height!==y.containerSize.height:!0;let B=S?.serializedPanels!==X;if(!B&&S)if(S.panels.length!==y.panels.length)B=!0;else for(let $=0;$<y.panels.length;$+=1){const v=S.panels[$],A=y.panels[$];if(!(v&&A)){B=!0;break}if(v.id!==A.id||v.size!==A.size||v.percentageSize!==A.percentageSize||v.collapsed!==A.collapsed||v.measuredPixelSize!==A.measuredPixelSize||v.measuredPercentageSize!==A.measuredPercentageSize){B=!0;break}}let se=S?.serializedHandles!==re;if(!se&&S)if(S.handles.length!==y.handles.length)se=!0;else for(let $=0;$<y.handles.length;$+=1){const v=S.handles[$],A=y.handles[$];if(!(v&&A)){se=!0;break}if(v.id!==A.id||v.thickness!==A.thickness||v.visible!==A.visible||v.direction!==A.direction||v.startPanelId!==A.startPanelId||v.endPanelId!==A.endPanelId){se=!0;break}}if(!S&&y.panels.length===0&&y.handles.length===0||S&&!le&&!Y&&!j&&!B&&!se)return;const U=y.panels.map($=>({...$})),q=y.handles.map($=>({...$})),T={...y.containerSize};e.set(m,{groupId:m,displayName:y.displayName,direction:y.direction,containerSize:T,panels:U,handles:q,index:O,serializedPanels:X,serializedHandles:re}),x()},removeGroup:m=>{const y=e.delete(m),S=n.delete(m),O=o();(y||S||O)&&x()}}},Ee=At(),Lt=()=>f.useSyncExternalStore(Ee.subscribe,Ee.getOwnerId,Ee.getOwnerId),Dt=()=>f.useSyncExternalStore(Ee.subscribe,Ee.getSnapshot,Ee.getSnapshot),Ot=t=>{Ee.enableGroup(t)},rt=t=>{Ee.disableGroup(t)},Tt=(t,e)=>{Ee.updateGroup(t,e)},nt=t=>{Ee.removeGroup(t)};let st=0;const _t=()=>(st+=1,`panel-group-${st}`),Ae=(t,e)=>typeof t!="number"||!Number.isFinite(t)?"—":`${(t<0?0:t).toFixed(8)}${e}`,jt={position:"fixed",left:"50%",bottom:"20px",transform:"translate(-50%, 0)",zIndex:100,maxWidth:"min(90vw, 1120px)",width:"100%",borderRadius:"14px",backgroundColor:"rgba(15, 23, 42, 0.72)",color:"#e2e8f0",fontFamily:"monospace",fontSize:"11px",lineHeight:1.6,boxShadow:"0 22px 45px rgba(15,23,42,0.45)",border:"1px solid rgba(148, 163, 184, 0.22)",backdropFilter:"blur(10px)",WebkitBackdropFilter:"blur(10px)",pointerEvents:"auto",overflow:"auto"},kt={display:"flex",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap",gap:"12px"},Gt={display:"flex",flexDirection:"column",gap:"4px"},Ht={padding:"6px 10px",borderRadius:"9999px",border:"1px solid rgba(148, 163, 184, 0.35)",color:"#e2e8f0",fontWeight:600,fontSize:"10px",letterSpacing:"0.03em",textTransform:"uppercase",cursor:"pointer",transition:"background-color 0.18s ease, border-color 0.18s ease"},Ut={padding:"10px 12px",borderRadius:"10px",backgroundColor:"rgba(30, 41, 59, 0.55)",border:"1px solid rgba(148, 163, 184, 0.18)",display:"flex",flexDirection:"column",gap:"10px"},Wt={padding:"8px 10px",borderRadius:"8px",backgroundColor:"rgba(15, 23, 42, 0.55)",border:"1px solid rgba(148, 163, 184, 0.16)",display:"flex",flexDirection:"column",gap:"4px"},ot={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"6px"},$t={display:"grid",gridTemplateColumns:"auto 1fr",gap:"2px 10px",color:"#e2e8f0"},Vt={padding:"2px 6px",borderRadius:"9999px",fontSize:"10px",textTransform:"uppercase"},Yt=t=>{const e=t.reason==="minimum-exceeded",n=e?"Layout unavailable: minimum panel sizes exceed the container.":"Layout unavailable: panels cannot fill the container with their maximum sizes.",d=e?`Min required: ${Math.ceil(t.totalMinimumSize??0)}px | Available: ${Math.floor(t.availableContainerSize)}px`:`Max total: ${Math.floor(t.totalMaximumSize??0)}px | Needed: ${Math.floor(t.availableContainerSize)}px`;return{summary:n,detail:d}},qt=(t,e)=>{let n=!1;const d=t.map(r=>{const c=e[r.id];return!c||r.measuredPixelSize===c.pixelSize&&r.measuredPercentageSize===c.percentageSize?r:(n=!0,{...r,measuredPixelSize:c.pixelSize,measuredPercentageSize:c.percentageSize})});return n?d:t},at=(t,e,n)=>{const d=Be(t,"horizontal"),r=Be(t,"vertical"),c=t.getBoundingClientRect(),i=d.inner>0?d.inner:e??c.width,z=r.inner>0?r.inner:n??c.height;return{width:i,height:z}},Zt=t=>{const{id:e,className:n,style:d,children:r,direction:c}=t,{groupRef:i,contextValue:z,groupStyle:u}=gt(t),[x,o]=f.useState({width:0,height:0}),a=z.layoutConstraintViolation,s=!!a,g=f.useMemo(()=>{if(!a)return null;const{summary:U,detail:q}=Yt(a);return M.jsxs("div",{className:"flex w-full flex-1 flex-col items-center justify-center gap-2 rounded-lg border border-slate-300 border-dashed bg-slate-100/70 px-6 py-8 text-center text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-800/50 dark:text-slate-200","data-panel-group-placeholder":"constraint-violation",children:[M.jsx("span",{children:U}),M.jsx("span",{className:"text-slate-500 text-xs dark:text-slate-400",children:q})]})},[a]),P=f.useRef(e??_t()).current,E=e??P,m=z.showDebugInfo&&z.panels.length>0,y=m?z.panels:[],S=m?z.panelMeasurements:{},O=f.useMemo(()=>{if(!m)return[];const U=Object.values(z.handleMeasurements);return U.length<=1?U:U.slice().sort((q,T)=>q.id.localeCompare(T.id))},[z.handleMeasurements,m]),X=z.containerSize,re=x.width>0?x.width:X.width,le=x.height>0?x.height:X.height,Y=Lt(),j=m&&Y===P;f.useLayoutEffect(()=>{if(!m){o({width:0,height:0});return}if(typeof window>"u"||typeof ResizeObserver>"u")return;const U=i.current;if(!U)return;const q=$=>{o(v=>v.width===$.width&&v.height===$.height?v:$)},T=new ResizeObserver($=>{for(const v of $){if(v.target!==U)continue;const A=at(U,v.contentRect.width,v.contentRect.height);q(A)}});return T.observe(U),q(at(U)),()=>{T.disconnect()}},[i,m]);const B=f.useMemo(()=>qt(y,S),[y,S]);f.useEffect(()=>{if(!m){rt(P),nt(P);return}return Ot(P),()=>{rt(P),nt(P)}},[m,P]),f.useEffect(()=>{m&&Tt(P,{displayName:E,direction:c,containerSize:{width:re,height:le},panels:B,handles:O})},[m,P,E,c,re,le,B,O]);const se=f.useMemo(()=>{const U={...u,...d};return U.position||(U.position="relative"),U},[u,d]);return M.jsxs(Je.Provider,{value:z,children:[M.jsxs("div",{ref:i,className:je.twMerge("panel-group",c==="horizontal"?"flex-row":"flex-col",n),style:se,"data-panel-group-id":e,"data-panel-group-direction":c,children:[r,s&&g?M.jsx("div",{className:"pointer-events-auto",style:{position:"absolute",inset:0,zIndex:40,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(248, 250, 252, 0.82)",backdropFilter:"blur(2px)"},children:g}):null]}),j&&M.jsx(Xt,{})]})},Xt=()=>{const e=Dt().groups,[n,d]=f.useState(!0);if(e.length===0||typeof document>"u")return null;const r=e.reduce((u,x)=>u+x.panels.length,0),c=e.reduce((u,x)=>u+(x.handles?.length??0),0),i=()=>d(u=>!u),z=M.jsxs("div",{style:{...jt,padding:n?"10px 18px":"14px 18px",maxHeight:n?"52px":"min(65vh, 520px)",transition:"max-height 0.24s ease, padding 0.24s ease"},children:[M.jsxs("div",{style:{...kt,marginBottom:n?0:"12px"},children:[M.jsxs("div",{style:Gt,children:[M.jsx("span",{style:{fontWeight:700,fontSize:"12px",letterSpacing:"0.03em"},children:"Panel Overview"}),M.jsxs("span",{style:{color:"#cbd5f5"},children:["groups: ",e.length," / panels: ",r," / resizers: ",c]})]}),M.jsx("button",{type:"button",onClick:i,style:{...Ht,backgroundColor:n?"rgba(59, 130, 246, 0.2)":"rgba(71, 85, 105, 0.45)"},title:n?"Panel Overview を開く":"Panel Overview を閉じる",children:n?"開く":"閉じる"})]}),!n&&M.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"12px",maxHeight:"45vh",overflowY:"auto",paddingRight:"6px"},children:e.map((u,x)=>{const o=u.direction==="horizontal"?u.containerSize.width:u.containerSize.height;return M.jsxs("div",{style:Ut,children:[M.jsxs("div",{style:{...ot,flexWrap:"wrap",gap:"10px",color:"#dbeafe"},children:[M.jsxs("span",{style:{fontWeight:600,fontSize:"11px",letterSpacing:"0.02em",textTransform:"uppercase"},children:["group ",x+1,": ",u.displayName]}),M.jsxs("span",{children:["direction: ",u.direction," / container: ",Ae(u.containerSize.width,"px")," × ",Ae(u.containerSize.height,"px")]})]}),M.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:"10px"},children:u.panels.map((a,s)=>{const g=a.measuredPixelSize??a.size,C=a.size,P=Ae(C,"px"),E=a.percentageSize??(o>0?a.size/o*100:void 0),m=a.measuredPercentageSize!==void 0?a.measuredPercentageSize:o>0?g/o*100:void 0,y=a.collapsed||g<=ct,S=a.collapsed?"collapsed":y?"hidden":"visible",O=Ae(E,"%"),X=Ae(m,"%"),re=Ae(g,"px");return M.jsxs("div",{style:Wt,children:[M.jsxs("div",{style:ot,children:[M.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:a.id}),M.jsx("span",{style:{...Vt,backgroundColor:a.collapsed?"rgba(251, 113, 133, 0.25)":y?"rgba(250, 204, 21, 0.25)":"rgba(74, 222, 128, 0.25)",color:a.collapsed?"#fecdd3":y?"#fef08a":"#bbf7d0"},children:S})]}),M.jsxs("div",{style:$t,children:[M.jsx("span",{children:"size (state):"}),M.jsx("span",{children:P}),M.jsx("span",{children:"size (measured):"}),M.jsx("span",{children:re}),M.jsx("span",{children:"percentage (state):"}),M.jsx("span",{children:O}),M.jsx("span",{children:"percentage (measured):"}),M.jsx("span",{children:X}),M.jsx("span",{children:"unit:"}),M.jsx("span",{children:a.sizeUnit}),M.jsx("span",{children:"min:"}),M.jsx("span",{children:a.minSize!==void 0?JSON.stringify(a.minSize):"—"}),M.jsx("span",{children:"auto min:"}),M.jsx("span",{children:a.autoMinSize!==void 0?JSON.stringify(a.autoMinSize):"—"}),M.jsx("span",{children:"max:"}),M.jsx("span",{children:a.maxSize!==void 0?JSON.stringify(a.maxSize):"—"}),M.jsx("span",{children:"priority:"}),M.jsx("span",{children:a.pixelAdjustPriority??"—"}),M.jsx("span",{children:"flex priority:"}),M.jsx("span",{children:a.flexAdjustPriority??"—"})]})]},a.id||s)})})]},u.groupId)})})]});return mt.createPortal(z,document.body)},Jt=f.memo(({id:t,disabled:e=!1,className:n,style:d,children:r,onDragging:c})=>{const{direction:i,resizePanels:z,getPanel:u,collapsePanel:x,expandPanel:o,panels:a,reportHandleMeasurement:s,containerSize:g,layoutConstraintViolation:C}=$e(),[P,E]=f.useState(!1),m=f.useRef(null),y=f.useRef(null),S=f.useRef(""),O=f.useRef(""),[X,re]=f.useState({left:null,right:null}),le=f.useId(),Y=f.useRef(t??`resize-handle-${le}`),j=f.useRef(null),B=t??Y.current,se=!!C,U=e||se;f.useEffect(()=>{if(m.current){const b=m.current.parentElement;if(b){y.current=b;const V=Array.from(b.children),l=m.current,h=V.indexOf(l);if(h>0&&h<V.length-1){let R=null,w=null;for(let L=h-1;L>=0;L-=1){const I=V[L];if(I.dataset.panelId){R=I;break}}for(let L=h+1;L<V.length;L+=1){const I=V[L];if(I.dataset.panelId){w=I;break}}S.current=R?.dataset.panelId||"",O.current=w?.dataset.panelId||"",re({left:S.current||null,right:O.current||null})}}}},[]),f.useEffect(()=>{if(B===Y.current)return;const b=Y.current;Y.current=B,j.current=null,b!==B&&s(b,null)},[s,B]),f.useEffect(()=>{const b=Y.current;return()=>{s(b,null)}},[s]);const q=f.useCallback(b=>{if(U||!y.current)return;b.preventDefault(),b.stopPropagation();const V=y.current,{inner:l}=Be(V,i),h={x:b.clientX,y:b.clientY},R=u(S.current),w=u(O.current);if(!(R&&w))return;const L=R.size,I=w.size;let H=0;const Z=Pt;E(!0),c?.(!0),b.currentTarget.setPointerCapture(b.pointerId);const _=N=>{if(!m.current)return;N.preventDefault(),N.stopPropagation();const k=performance.now();if(k-H<Z)return;H=k;const ee=i==="horizontal"?N.clientX-h.x:N.clientY-h.y;if(ee===0)return;const ne=L+ee,K=I-ee,W=u(S.current),J=u(O.current);if(W&&J&&S.current&&O.current){const p=Q(W.minSize,0,l),D=Q(J.minSize,0,l),te=p,ie=D,xe=Math.min(l*dt,ut),we=Math.min(l*bt,Ct),Le=J.collapseFromStart,Re=J.collapsedByDirection??"start";if(Le&&!J.collapsed&&K<=Math.max(D*.3,xe)){x(O.current,"start");return}const De=W.collapseFromEnd,Ne=W.collapsedByDirection??"end";if(De&&!W.collapsed&&ne<=Math.max(p*.3,xe)){x(S.current,"end");return}if(J.collapsed&&K>Math.max(D*.3,we)){o(O.current,Re,K);return}if(W.collapsed&&ne>Math.max(p*.3,we)){o(S.current,Ne,ne);return}if(l>0){const be=W.size+J.size,Me=Ze(l);let Ye=!1;if(te<=Me&&ne<=Me&&L!==0){const Oe=Math.max(0,be-0);Oe>=ie&&(z(S.current,O.current,0,Oe),Ye=!0)}else if(ie<=Me&&K<=Me&&I!==0){const Oe=Math.max(0,be-0);Oe>=te&&(z(S.current,O.current,Oe,0),Ye=!0)}if(Ye)return}if(W.collapsed||J.collapsed)return;z(S.current,O.current,ne,K)}},F=()=>{E(!1),c?.(!1),document.removeEventListener("pointermove",_),document.removeEventListener("pointerup",F)};document.addEventListener("pointermove",_),document.addEventListener("pointerup",F)},[U,i,z,u,x,o,c]),T=i==="horizontal",$=T?"cursor-col-resize":"cursor-row-resize",v=je.twMerge("group absolute z-20 flex select-none items-center justify-center border-none bg-transparent transition-colors duration-150 overflow-visible",$,T?"h-full":"w-full",!U&&"hover:bg-gray-200/70 dark:hover:bg-gray-700/70",!U&&"active:bg-blue-300/60 dark:active:bg-blue-700/60",P&&"bg-blue-200/80 dark:bg-blue-800/60",U&&"cursor-not-allowed opacity-50","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50",n),A=f.useMemo(()=>{const b=V=>{if(!V)return-1;for(let l=0;l<a.length;l+=1)if(a[l].id===V)return l;return-1};return{left:b(X.left),right:b(X.right)}},[X.left,X.right,a]),he=T?g.width:g.height,ae=f.useMemo(()=>{const b=(V,l)=>{if(V>l)return 0;let h=0;for(let R=V;R<=l;R+=1){const w=a[R];if(!w)continue;const L=w.size??0,I=Math.max(0,L);h+=w.collapsed?0:I}return h};return A.left>=0?b(0,A.left):A.right>0?b(0,A.right-1):0},[A.left,A.right,a]),ge=f.useMemo(()=>!Number.isFinite(ae)||ae<0?0:he>0&&ae>he?he:ae,[ae,he]),pe=f.useMemo(()=>{const b={position:"absolute",zIndex:20,touchAction:"none"};return T?(b.top=0,b.left=`${ge}px`,b.transform="translateX(-50%)",b.width=`${Ke}px`,b.height="100%"):(b.left=0,b.top=`${ge}px`,b.transform="translateY(-50%)",b.height=`${Ke}px`,b.width="100%"),b},[ge,T]),ce=f.useMemo(()=>{const b=Ze(he),V=Z=>{if(Z<0||Z>=a.length)return!1;const _=a[Z];return _?_.collapsed?!0:_.size<=b:!1},l=(Z,_)=>{if(!V(Z))return 0;let F=0;for(let N=Z;N>=0&&N<a.length&&V(N);N+=_)F+=1;return F},h=A.left,R=A.right,w=h>=0?l(h,-1):0,L=R>=0?l(R,1):0;return{groupSize:w+L+1,overlapIndex:w}},[A.left,A.right,a,he]),de=f.useMemo(()=>{if(se)return!0;if(ce.groupSize<=1)return!1;const b=ce.groupSize-1;return ce.overlapIndex>0&&ce.overlapIndex<b},[ce,se]),ze=f.useMemo(()=>{if(ce.groupSize<=1||de)return 0;const b=ce.groupSize>1?2:1;if(b===1)return 0;const V=ce.overlapIndex===0?0:b-1,l=(b-1)/2;return(V-l)*St},[ce,de]),Se=f.useMemo(()=>{if(de)return{display:"none"};if(ze!==0)return T?{transform:`translateX(${ze}px)`}:{transform:`translateY(${ze}px)`}},[ze,T,de]),ye=je.twMerge("flex items-center justify-center rounded-full bg-white text-slate-700 ring-1 ring-inset ring-white/80 backdrop-blur-sm transition-colors duration-150 shadow-[0_0_0_1px_rgba(255,255,255,0.85),0_1px_3px_rgba(15,23,42,0.18)]","dark:bg-slate-800/95 dark:text-slate-200 dark:ring-slate-500/60 dark:shadow-[0_0_0_1px_rgba(148,163,184,0.45),0_1px_3px_rgba(2,6,23,0.55)]",T?"h-12 w-[6px] px-[2px]":"h-[6px] w-20 py-[2px]",P&&"bg-blue-200/80 ring-blue-300 shadow-[0_0_0_1px_rgba(191,219,254,0.65),0_1px_4px_rgba(59,130,246,0.45)] dark:bg-blue-900/70 dark:ring-blue-400 dark:shadow-[0_0_0_1px_rgba(147,197,253,0.5),0_1px_4px_rgba(59,130,246,0.55)]"),ve=je.twMerge("rounded-full bg-slate-600 transition-colors duration-150 shadow-[0_0_0_1px_rgba(255,255,255,0.9)] dark:bg-slate-200 dark:shadow-[0_0_0_1px_rgba(15,23,42,0.55)]",T?"h-8 w-[2px]":"h-[2px] w-16",P&&"bg-blue-500 dark:bg-blue-300",!U&&"group-hover:bg-slate-700 dark:group-hover:bg-slate-100"),G=f.useCallback(()=>{const b=m.current;if(!b)return;let V=0;if(!de){const R=i==="horizontal"?b.offsetWidth:b.offsetHeight;let w=0,L=0;if(typeof window<"u"){const H=window.getComputedStyle(b);i==="horizontal"?(w=Number.parseFloat(H.marginLeft||"0"),L=Number.parseFloat(H.marginRight||"0")):(w=Number.parseFloat(H.marginTop||"0"),L=Number.parseFloat(H.marginBottom||"0"))}V=[R,w,L].reduce((H,Z)=>Number.isFinite(Z)?H+Z:H,0)}(!Number.isFinite(V)||V<0)&&(V=0);const l={id:B,thickness:V,direction:i,visible:!de&&V>yt,startPanelId:X.left,endPanelId:X.right},h=j.current;h&&Math.abs(h.thickness-l.thickness)<=.25&&h.visible===l.visible&&h.direction===l.direction&&h.startPanelId===l.startPanelId&&h.endPanelId===l.endPanelId||(j.current=l,s(B,l))},[i,X.left,X.right,s,B,de]);f.useEffect(()=>{G()},[G]),f.useEffect(()=>{const b=m.current;if(!b)return;if(typeof ResizeObserver>"u"){G();return}const V=new ResizeObserver(()=>{G()});return V.observe(b),()=>{V.disconnect()}},[G]);const oe=f.useMemo(()=>{const b=d?{...pe,...d}:pe;return de?{...b,display:"none",pointerEvents:"none",visibility:"hidden"}:b},[pe,de,d]);return M.jsx("button",{type:"button",ref:m,className:v,style:oe,onPointerDown:q,disabled:U,"aria-hidden":de||void 0,"aria-label":`Resize ${T?"columns":"rows"} - Drag to collapse/expand panels`,"data-resize-handle-id":B,title:`ドラッグして${T?"列":"行"}をリサイズ、端まで移動して折りたたみ/展開`,children:r||M.jsx("div",{className:ye,style:Se,children:M.jsx("span",{className:ve})})})}),Kt=t=>document.querySelector(`[data-panel-id="${t}"]`),Qt=t=>document.querySelector(`[data-panel-group-id="${t}"]`),ei=t=>document.querySelector(`[data-resize-handle-id="${t}"]`);exports.Panel=It;exports.PanelGroup=Zt;exports.PanelGroupContext=Je;exports.PanelResizeHandle=Jt;exports.clamp=fe;exports.getConstraintInPixels=Q;exports.getContainerSize=Be;exports.getPanelElement=Kt;exports.getPanelGroupElement=Qt;exports.getResizeHandleElement=ei;exports.loadLayout=xt;exports.normalizeSizeConfig=We;exports.saveLayout=zt;exports.usePanelControls=Mt;exports.usePanelGroup=$e;exports.useResizablePanels=gt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-xTV-c0PN.cjs");exports.Panel=e.Panel;exports.PanelGroup=e.PanelGroup;exports.PanelGroupContext=e.PanelGroupContext;exports.PanelResizeHandle=e.PanelResizeHandle;exports.clamp=e.clamp;exports.getConstraintInPixels=e.getConstraintInPixels;exports.getContainerSize=e.getContainerSize;exports.getPanelElement=e.getPanelElement;exports.getPanelGroupElement=e.getPanelGroupElement;exports.getResizeHandleElement=e.getResizeHandleElement;exports.loadLayout=e.loadLayout;exports.normalizeSizeConfig=e.normalizeSizeConfig;exports.saveLayout=e.saveLayout;exports.usePanelControls=e.usePanelControls;exports.usePanelGroup=e.usePanelGroup;exports.useResizablePanels=e.useResizablePanels;
|