@aiquants/resize-panels 1.9.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +129 -22
  2. package/dist/GlobalDebugOverlay-Cf3GOn2A.cjs +1 -0
  3. package/dist/{GlobalDebugOverlay-Do70T2l6.js → GlobalDebugOverlay-DQtUdNeF.js} +28 -28
  4. package/dist/debugOverlayStore-D7FT6zPE.js +135 -0
  5. package/dist/debugOverlayStore-DY09saU8.cjs +1 -0
  6. package/dist/index-DZ0itiBD.js +1299 -0
  7. package/dist/index-DqATP_BA.cjs +2 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.d.ts +2 -29
  10. package/dist/index.js +25 -13
  11. package/dist/src/GlobalDebugOverlay.d.ts.map +1 -0
  12. package/dist/src/Panel.d.ts +46 -0
  13. package/dist/src/Panel.d.ts.map +1 -0
  14. package/dist/src/PanelDebugInfo.d.ts +34 -0
  15. package/dist/src/PanelDebugInfo.d.ts.map +1 -0
  16. package/dist/src/PanelGroup.d.ts.map +1 -0
  17. package/dist/src/PanelResizeHandle.d.ts.map +1 -0
  18. package/dist/src/allocateLayout.d.ts +60 -0
  19. package/dist/src/allocateLayout.d.ts.map +1 -0
  20. package/dist/src/context.d.ts.map +1 -0
  21. package/dist/{debugOverlayStore.d.ts → src/debugOverlayStore.d.ts} +10 -2
  22. package/dist/src/debugOverlayStore.d.ts.map +1 -0
  23. package/dist/src/hooks.d.ts +48 -0
  24. package/dist/src/hooks.d.ts.map +1 -0
  25. package/dist/src/index.d.ts +32 -0
  26. package/dist/src/index.d.ts.map +1 -0
  27. package/dist/src/reducer.d.ts +49 -0
  28. package/dist/src/reducer.d.ts.map +1 -0
  29. package/dist/src/roundHalfToEven.d.ts.map +1 -0
  30. package/dist/{types.d.ts → src/types.d.ts} +164 -60
  31. package/dist/src/types.d.ts.map +1 -0
  32. package/dist/src/utils/simple-logger.d.ts.map +1 -0
  33. package/dist/src/utils.d.ts +164 -0
  34. package/dist/src/utils.d.ts.map +1 -0
  35. package/dist/styles/resize-panels.standalone.css +1 -1
  36. package/dist/tests/support/dom-harness.d.ts +89 -0
  37. package/dist/tests/support/dom-harness.d.ts.map +1 -0
  38. package/package.json +1 -1
  39. package/src/GlobalDebugOverlay.tsx +3 -3
  40. package/src/Panel.tsx +203 -541
  41. package/src/PanelDebugInfo.tsx +52 -106
  42. package/src/PanelGroup.tsx +27 -42
  43. package/src/PanelResizeHandle.tsx +470 -509
  44. package/src/allocateLayout.ts +412 -0
  45. package/src/debugOverlayStore.ts +19 -15
  46. package/src/hooks.ts +187 -779
  47. package/src/index.ts +12 -3
  48. package/src/reducer.ts +364 -1126
  49. package/src/types.ts +149 -63
  50. package/src/utils.ts +205 -164
  51. package/dist/GlobalDebugOverlay-sEQN6exo.cjs +0 -1
  52. package/dist/GlobalDebugOverlay.d.ts.map +0 -1
  53. package/dist/Panel.d.ts +0 -7
  54. package/dist/Panel.d.ts.map +0 -1
  55. package/dist/PanelDebugInfo.d.ts +0 -26
  56. package/dist/PanelDebugInfo.d.ts.map +0 -1
  57. package/dist/PanelGroup.d.ts.map +0 -1
  58. package/dist/PanelResizeHandle.d.ts.map +0 -1
  59. package/dist/context.d.ts.map +0 -1
  60. package/dist/debugOverlayStore-Cntyxboe.js +0 -141
  61. package/dist/debugOverlayStore-Dkl-fHoa.cjs +0 -1
  62. package/dist/debugOverlayStore.d.ts.map +0 -1
  63. package/dist/hooks.d.ts +0 -45
  64. package/dist/hooks.d.ts.map +0 -1
  65. package/dist/index-B6YGX2DH.js +0 -2009
  66. package/dist/index-DssZUxGw.cjs +0 -2
  67. package/dist/index.d.ts.map +0 -1
  68. package/dist/reducer.d.ts +0 -39
  69. package/dist/reducer.d.ts.map +0 -1
  70. package/dist/roundHalfToEven.d.ts.map +0 -1
  71. package/dist/types.d.ts.map +0 -1
  72. package/dist/utils/simple-logger.d.ts.map +0 -1
  73. package/dist/utils.d.ts +0 -61
  74. package/dist/utils.d.ts.map +0 -1
  75. /package/dist/{GlobalDebugOverlay.d.ts → src/GlobalDebugOverlay.d.ts} +0 -0
  76. /package/dist/{PanelGroup.d.ts → src/PanelGroup.d.ts} +0 -0
  77. /package/dist/{PanelResizeHandle.d.ts → src/PanelResizeHandle.d.ts} +0 -0
  78. /package/dist/{context.d.ts → src/context.d.ts} +0 -0
  79. /package/dist/{roundHalfToEven.d.ts → src/roundHalfToEven.d.ts} +0 -0
  80. /package/dist/{utils → src/utils}/simple-logger.d.ts +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("react"),K=require("react/jsx-runtime"),rt=require("tailwind-merge"),St=i.createContext(null),ht=()=>{const e=i.useContext(St);if(!e)throw new Error("usePanelGroup must be used within a PanelGroup");return e},xt=(e,t=0)=>{if(!Number.isFinite(e))return e;const s=10**t,d=e*s,r=Math.floor(d),a=d-r,n=Number.EPSILON*Math.max(1,Math.abs(d));return a<.5-n?r/s:a>.5+n?(r+1)/s:(r%2===0?r:r+1)/s},_t=12,Yt=8,Jt=6,Qt=48,er=80,tr=2,rr=32,ir=64,nr=8,sr=8,Nt=10,kt=.05,Ot=10,or=.05,ar=20,lr=.05,Ft=0,Ht=6,Be=(e,t)=>t<=0?0:xt(e/t*100,Ht),tt=(e,t)=>!e||t<=0?0:e/100*t,Gt=(e,t="percentage")=>{if(e!==void 0)return typeof e=="number"?{value:e,unit:t}:e},H=(e,t,s)=>e?typeof e=="number"?e/100*s:e.unit==="pixels"?e.value:e.value/100*s:t,me=(e,t,s)=>Math.min(Math.max(e,t),s),mt=e=>{if(!Number.isFinite(e)||e<=0)return Ft;const t=e*kt,s=Math.min(_t,Ot,t);return Math.max(Ft,s)},jt=(e,t,s,d={})=>{if(Math.abs(t)<=0)return t;const r=d.enforceAutoMinSize??!1,a=e.map((l,f)=>({panel:l,index:f})).filter(({panel:l})=>!l.collapsed&&(l.sizeUnit==="pixels"||l.originalPixelSize!==void 0));if(a.length===0)return t;const n=t>0,p=[...a].sort((l,f)=>{const c=l.panel.pixelAdjustPriority??l.index+1,g=f.panel.pixelAdjustPriority??f.index+1;return c===g?n?f.index-l.index:l.index-f.index:n?g-c:c-g});let z=t;const h=l=>{for(const{index:f}of p){if(Math.abs(z)<=0)break;const c=e[f];if(!c||c.collapsed)continue;const g=H(c.minSize,0,s),S=H(c.maxSize,s,s),P=r?H(c.autoMinSize,0,s):0,C=Math.max(g,P),F=c.preferredPixelSize!==void 0?me(c.preferredPixelSize,C,S):c.size,k=c.collapseFromStart||c.collapseFromEnd;if(z>0){if(Math.abs(c.size)<=0&&(c.percentageSize??0)<=0)continue;const U=Math.max(c.size,F),le=l?Math.min(S,U):S,ee=Math.max(0,le-c.size);if(ee<=0)continue;const ne=Math.min(ee,z);if(ne<=0)continue;const j=c.size+ne,L=Be(j,s),y=k?j:c.sizeBeforeCollapse,D=k?c.measuredPixelSizeBeforeCollapse??c.measuredPixelSize??j:c.measuredPixelSizeBeforeCollapse;e[f]={...c,size:j,percentageSize:L,sizeBeforeCollapse:y,measuredPixelSizeBeforeCollapse:D,measuredPixelSize:void 0,measuredPercentageSize:void 0},z-=ne}else{const N=l?F:C,U=Math.max(0,c.size-N);if(U<=0)continue;const le=Math.min(U,Math.abs(z));if(le<=0)continue;const ee=c.size-le,ne=Be(ee,s),j=k?ee:c.sizeBeforeCollapse,L=k?c.measuredPixelSizeBeforeCollapse??c.measuredPixelSize??ee:c.measuredPixelSizeBeforeCollapse;e[f]={...c,size:ee,percentageSize:ne,sizeBeforeCollapse:j,measuredPixelSizeBeforeCollapse:L,measuredPixelSize:void 0,measuredPercentageSize:void 0},z+=le}}};return h(!0),(n&&z>0||!n&&z<0)&&h(!1),z},ct=e=>{if(!e)return 0;const t=parseFloat(e);return Number.isFinite(t)?t:0},$e=(e,t)=>{const s=e.getBoundingClientRect(),d=typeof window<"u"?window.getComputedStyle(e):null,r=d?ct(d.borderLeftWidth)+ct(d.borderRightWidth):0,a=d?ct(d.borderTopWidth)+ct(d.borderBottomWidth):0;if(t==="horizontal"){const h=s.width>0?s.width:e.offsetWidth,l=s.width>0?Math.max(0,s.width-r):e.clientWidth,f=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,f)}}const n=s.height>0?s.height:e.offsetHeight,p=s.height>0?Math.max(0,s.height-a):e.clientHeight,z=e.offsetHeight>0?e.offsetHeight:e.clientHeight+a;return{inner:p>0?p:Math.max(0,e.clientHeight),outer:n>0?n:Math.max(0,z)}},$t=(e,t)=>{try{localStorage.setItem(`panel-layout-${e}`,JSON.stringify(t))}catch(s){console.warn("Failed to save panel layout:",s)}},Ut=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 Ve=(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))(Ve||{});const Re=class Re{constructor(t=2,s="[resize-panels]",d=console){this.level=t,this.prefix=s,this.impl=d,Re.instances.add(this)}static setLevel(t){for(const s of Re.instances)s.setLevel(t)}setLevel(t){this.level=t}static setImplementation(t){for(const s of Re.instances)s.setImplementation(t)}setImplementation(t){this.impl=t}static setPrefix(t){for(const s of Re.instances)s.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,...s){Re.instance.debug(t,...s)}debug(t,...s){this.level<=0&&this.impl.debug(...this.formatMessage(t),...s)}static info(t,...s){Re.instance.info(t,...s)}info(t,...s){this.level<=1&&this.impl.info(...this.formatMessage(t),...s)}static warn(t,...s){Re.instance.warn(t,...s)}warn(t,...s){this.level<=2&&this.impl.warn(...this.formatMessage(t),...s)}static error(t,...s){Re.instance.error(t,...s)}error(t,...s){this.level<=3&&this.impl.error(...this.formatMessage(t),...s)}};Re.instances=new Set,Re.instance=new Re(2,"[resize-panels]");let it=Re;const fe=new it(Ve.INFO,"[resize-panels]"),Oe=1e-9,Fe=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})),ut=e=>e?Fe([e])[0]:null,We=e=>e?!!(e.collapseFromStart||e.collapseFromEnd):!1,dt=(e,t)=>{if(!Number.isFinite(t)||t<=0)return e;const s=e.map(z=>({...z})),d=[];for(let z=0;z<s.length;z+=1){const h=s[z];if(h.collapsed){s[z]={...h,size:0,percentageSize:0};continue}const l=Math.max(0,H(h.minSize,0,t)),f=Math.max(0,H(h.autoMinSize,0,t)),c=Math.max(l,f),g=Math.max(.001,c),S=H(h.maxSize,t,t),P=Math.max(c,S),C=h.sizeUnit==="pixels"||h.originalPixelSize!==void 0,F=Math.max(0,h.size);let k=c;if(C){const U=h.preferredPixelSize??h.size??h.originalPixelSize??c;k=me(U,c,P)}else{const U=h.preferredPercentageSize??h.percentageSize??Be(h.size,t),le=tt(U,t);k=me(le,c,P)}const N=!C&&(h.excludeFromAutoGrowth??!1)&&F<=g;d.push({index:z,isPixelPanel:C,minSize:c,maxSize:P,preferredSize:k,priority:h.pixelAdjustPriority??z+1,flexPriority:C?void 0:h.flexAdjustPriority,excludeFromGrowth:N})}if(d.length===0)return s;const r=new Map;let a=0;for(const z of d)r.set(z.index,z.minSize),a+=z.minSize;let n=t-a;const p=(z,h)=>{if(h<=0)return 0;const l=r.get(z.index)??z.minSize,f=Math.max(0,z.maxSize-l);if(f<=0)return 0;const c=Math.min(h,f);return r.set(z.index,l+c),c};if(n>0){const z=l=>{for(;n>1e-6;){let c=0;const g=[];for(const C of l){if(!C.isPixelPanel&&C.excludeFromGrowth)continue;const F=r.get(C.index)??C.minSize,k=Math.min(C.preferredSize,C.maxSize),N=Math.max(0,k-F);N>1e-6&&(c+=N,g.push({descriptor:C,capacity:N}))}if(g.length===0||c<=1e-6)break;let S=0;const P=n;for(const C of g){if(n<=1e-6)break;if(!C.descriptor.isPixelPanel&&C.descriptor.excludeFromGrowth)continue;const F=P*C.capacity/c,k=Math.min(C.capacity,F);if(k<=0)continue;const N=p(C.descriptor,k);N>0&&(n-=N,S+=N)}if(S<=1e-6)break}},h=d.filter(l=>l.isPixelPanel);h.sort((l,f)=>f.priority-l.priority);for(const l of h){if(n<=0)break;const f=r.get(l.index)??l.minSize,c=Math.min(l.preferredSize,l.maxSize),g=Math.max(0,c-f);if(g<=0)continue;const S=p(l,Math.min(g,n));S>0&&(n-=S)}if(n>0){const l=d.filter(f=>!f.isPixelPanel);if(l.length>0){const f=l.filter(c=>c.flexPriority!==void 0&&!c.excludeFromGrowth);if(f.length>0){f.sort((c,g)=>(g.flexPriority??0)-(c.flexPriority??0));for(const c of f){if(n<=0)break;if(c.excludeFromGrowth)continue;const g=r.get(c.index)??c.minSize,S=Math.min(c.preferredSize,c.maxSize),P=Math.max(0,S-g);if(P<=0)continue;const C=p(c,Math.min(P,n));C>0&&(n-=C)}}if(n>0){const c=f.length>0?l.filter(g=>g.flexPriority===void 0&&!g.excludeFromGrowth):l.filter(g=>!g.excludeFromGrowth);c.length>0&&z(c)}}}}if(n>0){let z=n;for(;;){let h=0;const l=[];for(const c of d){if(!c.isPixelPanel&&c.excludeFromGrowth)continue;const g=r.get(c.index)??c.minSize,S=c.isPixelPanel?Math.min(c.maxSize,c.preferredSize):c.maxSize,P=Math.max(0,S-g);P>0&&(l.push(c),h+=P)}if(h<=0)break;const f=n;for(const c of l){if(n<=0)break;if(!c.isPixelPanel&&c.excludeFromGrowth)continue;const g=r.get(c.index)??c.minSize,S=c.isPixelPanel?Math.min(c.maxSize,c.preferredSize):c.maxSize,P=Math.max(0,S-g);if(P<=0)continue;const C=f*P/h,F=p(c,Math.min(P,C));F>0&&(n-=F)}if(n<=1e-6||Math.abs(z-n)<=1e-6)break;z=n}n=Math.max(0,n)}for(const z of d){const h=r.get(z.index)??z.minSize,l=s[z.index],f=We(l),c=f?h:l.sizeBeforeCollapse,g=f?l.measuredPixelSizeBeforeCollapse??l.measuredPixelSize??h:l.measuredPixelSizeBeforeCollapse,S=t>0?Be(h,t):0;s[z.index]={...l,size:h,percentageSize:S,preferredPercentageSize:l.preferredPercentageSize,preferredPixelSize:z.isPixelPanel?l.preferredPixelSize??h:l.preferredPixelSize,sizeBeforeCollapse:c,measuredPixelSizeBeforeCollapse:g,measuredPixelSize:void 0,measuredPercentageSize:void 0}}return Ue(s)},Ue=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(n=>(n.percentageSize??0)!==0?(r=!0,{...n,percentageSize:0,measuredPercentageSize:n.measuredPercentageSize!==void 0?0:n.measuredPercentageSize}):!n.collapsed&&n.sizeBeforeCollapse!==n.size?(r=!0,{...n,sizeBeforeCollapse:n.size}):n);return r?a:e}let s=!1;const d=e.map(r=>{if(r.collapsed)return(r.percentageSize??0)!==0?(s=!0,{...r,percentageSize:0,measuredPercentageSize:r.measuredPercentageSize!==void 0?0:r.measuredPercentageSize}):r;const a=Be(r.size,t),n=r.measuredPercentageSize,h=(n!==void 0?Math.abs(n-a):1/0)<1e-4&&n!==void 0?n:a,l=xt(h,Ht),c=Math.abs((r.percentageSize??0)-l)>0||r.percentageSize===void 0,g=r.sizeBeforeCollapse===void 0||r.sizeBeforeCollapse!==r.size,S=We(r),P=S&&g,C=r.measuredPixelSize??r.size,F=S&&(r.measuredPixelSizeBeforeCollapse===void 0||r.measuredPixelSizeBeforeCollapse!==C);if(!(c||P||F))return r;s=!0;const k=P?r.size:r.sizeBeforeCollapse,N=F?C:r.measuredPixelSizeBeforeCollapse;return{...r,percentageSize:l,sizeBeforeCollapse:k,measuredPixelSizeBeforeCollapse:N,collapsedByDirection:r.collapsed?r.collapsedByDirection??null:null}});return s?d:e},ft=(e,t)=>{if(t<=0)return!1;const s=[];let d=0;for(let l=0;l<e.length;l+=1){const f=e[l];!f||f.collapsed||(s.push(l),d+=f.size)}if(s.length===0)return!1;let r=t-d;if(Math.abs(r)<=0)return!1;let a=!1;const n=l=>{const f=e[l],c=H(f.minSize,0,t),g=H(f.autoMinSize,0,t),S=Math.max(c,g),P=H(f.maxSize,t,t),C=f.sizeUnit==="percentage"&&f.originalPixelSize===void 0;return{index:l,minSize:S,maxSize:P,isFlexible:C}},p=(l,f)=>{if(!Number.isFinite(f)||Math.abs(f)<=0)return;const c=e[l];if(!c)return;const g=Math.max(0,c.size+f);if(Math.abs(g-c.size)<=0)return;const S=Be(g,t),P=We(c),C=P?g:c.sizeBeforeCollapse,F=P?c.measuredPixelSizeBeforeCollapse??c.measuredPixelSize??g:c.measuredPixelSizeBeforeCollapse;e[l]={...c,size:g,percentageSize:S,sizeBeforeCollapse:C,measuredPixelSizeBeforeCollapse:F,measuredPixelSize:void 0,measuredPercentageSize:void 0},r-=f,a=!0},z=l=>{for(const f of l){if(Math.abs(r)<=0)break;const c=e[f.index];if(!c||c.collapsed)continue;const g=c.size;if(r>0){const S=Math.max(0,f.maxSize-g);if(S<=0)continue;const P=Math.min(S,r);if(P<=0)continue;p(f.index,P)}else{const S=Math.max(0,g-f.minSize);if(S<=0)continue;const P=Math.min(S,Math.abs(r));if(P<=0)continue;p(f.index,-P)}}},h=s.map(l=>n(l)).filter(l=>l.isFlexible);if(h.length>0&&z(h),Math.abs(r)>0){const l=r;r=jt(e,r,t,{enforceAutoMinSize:!0}),Math.abs(r-l)>0&&(a=!0)}return a},At=(e,t,s)=>{if(!(e.sizeUnit==="pixels"||e.originalPixelSize!==void 0)||e.pixelAdjustPriority!==void 0)return e;const r=t.filter((n,p)=>p!==s&&(n.sizeUnit==="pixels"||n.originalPixelSize!==void 0)).map(n=>n.pixelAdjustPriority).filter(n=>n!==void 0),a=r.length>0?Math.max(...r)+1:1;return{...e,pixelAdjustPriority:a}},cr=(e,t)=>{switch(t.type){case"REGISTER_PANEL":{fe.debug("REGISTER_PANEL",t.panel);const s=e.findIndex(a=>a.id===t.panel.id);if(s>=0){const a=[...e],n=e[s],p={...n,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:n.collapsedByDirection,sizeUnit:t.panel.sizeUnit,originalPixelSize:t.panel.originalPixelSize,preferredPercentageSize:t.panel.preferredPercentageSize!==void 0?t.panel.preferredPercentageSize:n.preferredPercentageSize,preferredPercentageSizeBeforeCollapse:t.panel.preferredPercentageSizeBeforeCollapse!==void 0?t.panel.preferredPercentageSizeBeforeCollapse:n.preferredPercentageSizeBeforeCollapse,percentageSizeBeforeCollapse:t.panel.percentageSizeBeforeCollapse!==void 0?t.panel.percentageSizeBeforeCollapse:n.percentageSizeBeforeCollapse,pixelAdjustPriority:t.panel.pixelAdjustPriority!==void 0?t.panel.pixelAdjustPriority:n.pixelAdjustPriority,flexAdjustPriority:t.panel.flexAdjustPriority!==void 0?t.panel.flexAdjustPriority:n.flexAdjustPriority,autoMinSize:t.panel.autoMinSize!==void 0?t.panel.autoMinSize:n.autoMinSize,excludeFromAutoGrowth:t.panel.excludeFromAutoGrowth!==void 0?t.panel.excludeFromAutoGrowth:n.excludeFromAutoGrowth},z=At(p,e,s);if(fe.debug("register panel (update)",{panelId:z.id,incoming:ut(t.panel),previous:ut(n),next:ut(z)}),a[s]=z,!z.collapsed){const h=a.reduce((l,f)=>f.collapsed?l:l+f.size,0);if(h>0){const l=H(z.minSize,0,h),f=Math.max(l,H(z.maxSize,h,h));if(z.size<l-Oe||z.size>f+Oe)return dt(a,h)}}return a}const d={...t.panel},r=At(d,e);return fe.debug("register panel (insert)",{panelId:r.id,incoming:ut(r),previousLength:e.length}),[...e,r]}case"UNREGISTER_PANEL":{fe.debug("UNREGISTER_PANEL",t.id);const s=e.filter(r=>r.id!==t.id),d=Ue(s);return fe.enabledFor(Ve.DEBUG)&&fe.debug("unregister panel",{panelId:t.id,previous:Fe(e),filtered:Fe(s),next:Fe(d)}),d}case"RESIZE_PANELS":{fe.debug("RESIZE_PANELS",t.leftId,t.rightId,t.leftSize,t.rightSize);const s=e.findIndex(M=>M.id===t.leftId),d=e.findIndex(M=>M.id===t.rightId);if(s===-1||d===-1)return e;const r=[...e],a=r[s],n=r[d];if(a.collapsed||n.collapsed||t.leftSize===a.size&&t.rightSize===n.size)return e;const p=t.containerSize??e.reduce((M,re)=>M+re.size,0),z=H(a.minSize,0,p),h=H(a.maxSize,p,p),l=H(n.minSize,0,p),f=H(n.maxSize,p,p),c=a.size+n.size,g=e.reduce((M,re)=>re.collapsed?M:M+re.size,0),S=g-c,P=z+l,C=h+f,F=me(t.leftSize+t.rightSize,P,C);let k=p>0?p-S:F;Number.isFinite(k)||(k=F);const N=me(Math.max(F,k),P,C),U=M=>({min:Math.max(z,M-f),max:Math.min(h,M-l)}),le=M=>({min:Math.max(l,M-h),max:Math.min(f,M-z)}),ee=Math.abs(t.leftSize-a.size),ne=Math.abs(t.rightSize-n.size),j=ee>=ne;let L=a.size,y=n.size;if(j){const M=U(N);if(M.min>M.max+Oe)return e;const re=me(t.leftSize,M.min,M.max),ze=N-re;if(ze<l-Oe||ze>f+Oe)return e;L=re,y=me(ze,l,f)}else{const M=le(N);if(M.min>M.max+Oe)return e;const re=me(t.rightSize,M.min,M.max),ze=N-re;if(ze<z-Oe||ze>h+Oe)return e;y=re,L=me(ze,z,h)}const D=L+y;if(Math.abs(N-D)>Oe)return e;const W=g-a.size-n.size+D,G=p>0?p:W,T=G>0?Be(L,G):0,be=G>0?Be(y,G):0,A=a.sizeUnit==="pixels"||a.originalPixelSize!==void 0?L:a.preferredPixelSize,ce=n.sizeUnit==="pixels"||n.originalPixelSize!==void 0?y:n.preferredPixelSize,_e=H(a.autoMinSize,0,p),de=H(n.autoMinSize,0,p),Ie=Math.max(.001,_e),Se=Math.max(.001,de),Ce=a.sizeUnit==="percentage"&&a.originalPixelSize===void 0,se=n.sizeUnit==="percentage"&&n.originalPixelSize===void 0;let ye=a.excludeFromAutoGrowth,Ae=n.excludeFromAutoGrowth;Ce&&(L<=Ie?ye=!0:L>Ie&&(ye=!1)),se&&(y<=Se?Ae=!0:y>Se&&(Ae=!1));const Le=We(a),ke=We(n);return r[s]={...a,size:L,percentageSize:T,preferredPercentageSize:T>0?T:a.preferredPercentageSize,preferredPixelSize:A,sizeBeforeCollapse:Le?L:a.sizeBeforeCollapse,measuredPixelSize:void 0,measuredPercentageSize:void 0,excludeFromAutoGrowth:ye},r[d]={...n,size:y,percentageSize:be,preferredPercentageSize:be>0?be:n.preferredPercentageSize,preferredPixelSize:ce,sizeBeforeCollapse:ke?y:n.sizeBeforeCollapse,measuredPixelSize:void 0,measuredPercentageSize:void 0,excludeFromAutoGrowth:Ae},p>0&&ft(r,p)?Ue(r):r}case"SET_PANELS":{fe.debug("SET_PANELS",t.panels);const s=fe.enabledFor(Ve.DEBUG),d=t.panels.map(h=>{const l=h.sizeUnit==="pixels"||h.originalPixelSize!==void 0,f=h.preferredPercentageSize!==void 0?h.preferredPercentageSize:h.percentageSize,c=h.preferredPixelSize!==void 0?h.preferredPixelSize:l?h.size:h.preferredPixelSize;return{...h,preferredPercentageSize:f,preferredPixelSize:c}}),r=Fe(e),a=s?Fe(d):null,n=Ue(d),p=Fe(n);let z=r.length===p.length;if(z)for(let h=0;h<p.length;h+=1){const l=p[h],f=r[h];if(!f){z=!1;break}if(!(f.id===l.id&&f.size===l.size&&f.percentageSize===l.percentageSize&&f.preferredPercentageSize===l.preferredPercentageSize&&f.sizeBeforeCollapse===l.sizeBeforeCollapse&&f.percentageSizeBeforeCollapse===l.percentageSizeBeforeCollapse&&f.preferredPercentageSizeBeforeCollapse===l.preferredPercentageSizeBeforeCollapse&&f.measuredPercentageSize===l.measuredPercentageSize&&f.excludeFromAutoGrowth===l.excludeFromAutoGrowth&&f.collapsed===l.collapsed&&f.collapseFromStart===l.collapseFromStart&&f.collapseFromEnd===l.collapseFromEnd&&f.collapsedByDirection===l.collapsedByDirection)){z=!1;break}}return z?(s&&fe.debug("set panels skipped (no diff)",{previous:r,incoming:a,next:p,previousLength:r.length,incomingLength:a?.length??d.length}),e):(s&&fe.debug("set panels",{previous:r,incoming:a,next:p,previousLength:r.length,incomingLength:a?.length??d.length}),n)}case"CONTAINER_RESIZED":{fe.debug("CONTAINER_RESIZED",t.containerSize);const s=fe.enabledFor(Ve.DEBUG);if(t.containerSize<=0)return s&&fe.debug("container resized skipped (non-positive size)",{containerSize:t.containerSize,panels:Fe(e)}),e;s&&fe.debug("container resized (before)",{containerSize:t.containerSize,panels:Fe(e)});const d=dt(e,t.containerSize);if(s&&fe.debug("container resized (after recalc)",{containerSize:t.containerSize,panels:Fe(d)}),t.containerSize>0&&ft(d,t.containerSize)){const r=Ue(d);return s&&fe.debug("container resized (after reconcile)",{containerSize:t.containerSize,panels:Fe(r)}),r}return s&&fe.debug("container resized (final)",{containerSize:t.containerSize,panels:Fe(d)}),d}case"COLLAPSE_PANEL":{fe.debug("COLLAPSE_PANEL",t.id);const s=e.findIndex(c=>c.id===t.id);if(s===-1)return e;const d=e[s],r=t.from==="start"?d.collapseFromStart:d.collapseFromEnd;if(!(We(d)&&r)||d.collapsed)return e;const n=d.size,p=d.measuredPixelSize??n,z=d.percentageSize??d.preferredPercentageSize??0,h={...d,collapsed:!0,collapsedByDirection:t.from,sizeBeforeCollapse:n,percentageSizeBeforeCollapse:z,preferredPercentageSizeBeforeCollapse:d.preferredPercentageSize??z,preferredPixelSizeBeforeCollapse:d.preferredPixelSize??n,measuredPixelSizeBeforeCollapse:p,size:0,percentageSize:0,preferredPercentageSize:d.preferredPercentageSize,measuredPixelSize:d.measuredPixelSize!==void 0?0:d.measuredPixelSize,measuredPercentageSize:d.measuredPercentageSize!==void 0?0:d.measuredPercentageSize},l=[...e];l[s]=h;const f=dt(l,t.containerSize);return t.containerSize>0&&ft(f,t.containerSize)?Ue(f):f}case"EXPAND_PANEL":{fe.debug("EXPAND_PANEL",t.id,t.targetSize);const s=e.findIndex(N=>N.id===t.id);if(s===-1)return e;const d=t.containerSize,r=e[s],a=t.from==="start"?r.collapseFromStart:r.collapseFromEnd;if(!(We(r)&&a&&r.collapsed)||r.collapsedByDirection&&r.collapsedByDirection!==t.from)return e;const p=[t.targetSize,r.sizeBeforeCollapse,r.measuredPixelSizeBeforeCollapse,r.preferredPixelSizeBeforeCollapse,r.originalPixelSize].find(N=>N!==void 0)??0,z=H(r.minSize,0,d),h=H(r.maxSize,d,d),l=me(p,z,h),f=Be(l,d),c=r.measuredPixelSizeBeforeCollapse??l,g=Be(c,d),S=r.preferredPercentageSizeBeforeCollapse??r.percentageSizeBeforeCollapse??f,P=r.preferredPixelSizeBeforeCollapse??r.preferredPixelSize??l,C={...r,collapsed:!1,collapsedByDirection:null,size:l,percentageSize:f,preferredPercentageSize:S,preferredPixelSize:P,sizeBeforeCollapse:l,percentageSizeBeforeCollapse:void 0,preferredPercentageSizeBeforeCollapse:void 0,preferredPixelSizeBeforeCollapse:void 0,measuredPixelSize:l,measuredPixelSizeBeforeCollapse:c,measuredPercentageSize:g},F=[...e];F[s]=C;const k=dt(F,d);return d>0&&ft(k,d)?Ue(k):k}default:return e}},Qe=new it(Ve.INFO,"[resize-panels]"),Wt=({direction:e,style:t,onLayout:s,autoSaveId:d,showDebugInfo:r=!1})=>{const[a,n]=i.useReducer(cr,[]),[p,z]=i.useState({width:0,height:0}),[h,l]=i.useState(!1),[f,c]=i.useState(!1),[g,S]=i.useState(null),[P,C]=i.useState({}),[F,k]=i.useState({}),N=i.useRef(null),U=i.useRef(s),le=i.useRef(!1),ee=i.useRef(0),ne=i.useRef(p),j=i.useRef(p),L=i.useRef(h),y=i.useRef(g?.reason??null),D=i.useRef({}),W=i.useRef(null),G=i.useRef(null),T=i.useRef(null),be=i.useRef({width:0,height:0}),A=i.useRef({width:0,height:0}),ce=i.useRef({}),_e=i.useRef({}),de=i.useCallback(u=>u.map(m=>({...m})),[]);i.useEffect(()=>{j.current=p},[p]),i.useEffect(()=>{L.current=h},[h]),i.useEffect(()=>{y.current=g?.reason??null},[g?.reason]),i.useEffect(()=>{if(g)return;const u=e==="horizontal"?p.width:p.height;!Number.isFinite(u)||u<=4||a.length!==0&&(W.current=de(a))},[g,a,e,p.width,p.height,de]);const Ie=i.useRef(a);i.useEffect(()=>{Ie.current=a},[a]),i.useEffect(()=>{const u=G.current;if(g){G.current=g;return}if(u&&!g&&W.current){G.current=null;const m=new Set(Ie.current.map(v=>v.id)),E=de(W.current).filter(v=>m.has(v.id));E.length>0&&n({type:"SET_PANELS",panels:E});return}G.current=g},[g,de]),i.useLayoutEffect(()=>{if(!N.current)return;const u=new ResizeObserver(m=>{for(const E of m){const v=E.target,X=v?$e(v,"horizontal"):null,oe=v?$e(v,"vertical"):null,te=X?X.inner:0,_=oe?oe.inner:0,pe=E.contentRect.width,V=E.contentRect.height,R=te>0?te:pe,x=_>0?_:V;be.current={width:R,height:x};const O=A.current,Z=Math.abs(O.width-R)>=.5,J=Math.abs(O.height-x)>=.5;Z||J?(T.current&&(clearTimeout(T.current),T.current=null),!h&&R>0&&x>0&&l(!0),z({width:R,height:x}),A.current={width:R,height:x}):(T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{const $=be.current;z($),A.current=$,T.current=null},150))}});return u.observe(N.current),()=>{u.disconnect(),T.current&&clearTimeout(T.current)}},[h]),i.useEffect(()=>()=>{for(const u of Object.values(ce.current))clearTimeout(u)},[]),i.useLayoutEffect(()=>{const u=ne.current,m=p,E=e==="horizontal"?Math.abs(u.width-m.width)>=.5:Math.abs(u.height-m.height)>=.5;if(f&&E){const v=e==="horizontal"?m.width:m.height;n({type:"CONTAINER_RESIZED",containerSize:v,direction:e})}ne.current=m},[p,f,e]);const Se=i.useCallback(()=>{Qe.debug("panels[0]?.id",a[0]?.id);const u=a.some(o=>{if(o.collapsed||o.sizeUnit!=="percentage")return!1;const Y=o.collapseFromStart||o.collapseFromEnd?o.sizeBeforeCollapse??o.measuredPixelSizeBeforeCollapse??o.originalPixelSize??o.measuredPixelSize??0:o.measuredPixelSize??o.originalPixelSize??o.size,Q=o.percentageSize!==void 0&&o.percentageSize>0;return o.size<=0&&(Y>0||Q)}),m=e==="horizontal"?p.width:p.height,E=m>0;if(g||!E||!(a.length>0&&(a.length!==ee.current||!f||u)))return;const oe=a.filter(o=>!o.collapsed&&(o.originalPixelSize!==void 0||o.sizeUnit==="pixels")).reduce((o,w)=>{const Y=w.preferredPixelSize??w.originalPixelSize??w.size;return o+Math.max(0,Y??0)},0),te=a.filter(o=>o.sizeUnit==="percentage"&&!o.collapsed),_=te.map(o=>o.id),pe=te.map(o=>{const w=o.preferredPercentageSize??o.percentageSize;return w!==void 0&&w>0?tt(w,m):o.size>0?o.size:0}),V=pe.reduce((o,w)=>o+w,0),R=m-oe,x=Math.max(0,R),O=x>0,Z=a.map(o=>{if(o.collapsed){const w=o.sizeBeforeCollapse??o.measuredPixelSizeBeforeCollapse??o.originalPixelSize??(o.sizeUnit==="pixels"?o.size:void 0),Y=o.sizeUnit==="percentage"&&o.percentageSize!==void 0?tt(o.percentageSize,m):void 0,Q=w??Y??0,ve=o.measuredPixelSizeBeforeCollapse??o.measuredPixelSize??Q;return{...o,size:0,percentageSize:0,preferredPercentageSize:o.preferredPercentageSize,sizeBeforeCollapse:Q,percentageSizeBeforeCollapse:o.percentageSizeBeforeCollapse??o.percentageSize??o.preferredPercentageSize??0,preferredPercentageSizeBeforeCollapse:o.preferredPercentageSizeBeforeCollapse??o.preferredPercentageSize??o.percentageSize??void 0,preferredPixelSizeBeforeCollapse:o.preferredPixelSizeBeforeCollapse??o.preferredPixelSize??Q,measuredPixelSizeBeforeCollapse:ve}}if(o.sizeUnit==="pixels"||o.originalPixelSize!==void 0){const w=o.size,Y=m>0?Be(w,m):0,Q={...o,size:w,percentageSize:Y,preferredPixelSize:o.preferredPixelSize??o.originalPixelSize??w,preferredPercentageSize:o.preferredPercentageSize!==void 0?o.preferredPercentageSize:Y>0?Y:void 0};if(o.collapseFromStart||o.collapseFromEnd){const ve=o.sizeBeforeCollapse??w,qe=o.measuredPixelSizeBeforeCollapse??o.measuredPixelSize??ve;Q.sizeBeforeCollapse=ve,Q.measuredPixelSizeBeforeCollapse=qe,Q.preferredPixelSizeBeforeCollapse=o.preferredPixelSizeBeforeCollapse??o.preferredPixelSize??ve}return Q}if(o.sizeUnit==="percentage"){const w=_.indexOf(o.id),Y=w!==-1?pe[w]:0,Q=H(o.minSize,0,m),ve=H(o.maxSize,m,m),qe=Math.max(Q,o.sizeBeforeCollapse??0,o.measuredPixelSizeBeforeCollapse??0,o.measuredPixelSize??0,o.originalPixelSize??0,o.size>0?o.size:0,o.percentageSize!==void 0?tt(o.percentageSize,m):0,1),nt=Y>0?Y:qe;let Ne;if(!O)Ne=Q;else if(w!==-1&&V>0){const I=nt/V,B=x*I;Ne=me(B,Q,ve)}else{const I=o.percentageSize!==void 0?tt(o.percentageSize,m):o.size,B=I>0?I:nt;Ne=me(B,Q,ve)}const Ke=m>0?Be(Ne,m):0,b={...o,size:Ne,percentageSize:Ke,preferredPercentageSize:o.preferredPercentageSize!==void 0?o.preferredPercentageSize:Ke>0?Ke:void 0};if(o.collapseFromStart||o.collapseFromEnd){const I=o.sizeBeforeCollapse??Ne,B=o.measuredPixelSizeBeforeCollapse??o.measuredPixelSize??I;b.sizeBeforeCollapse=I,b.measuredPixelSizeBeforeCollapse=B,b.preferredPixelSizeBeforeCollapse=o.preferredPixelSizeBeforeCollapse??o.preferredPixelSize??I}return b}return o}),J=[];for(let o=0;o<Z.length;o+=1){const w=Z[o];w.sizeUnit==="percentage"&&!w.collapsed&&J.push(o)}const $=J.reduce((o,w)=>o+Z[w].size,0),q=R-$;Math.abs(q)>0&&jt(Z,q,m,{enforceAutoMinSize:!0}),n({type:"SET_PANELS",panels:Z}),ee.current=a.length,c(!0)},[a,e,p.width,p.height,f,g]);i.useEffect(()=>{const u=e==="horizontal"?p.width:p.height,m=u>0,E=m&&a.length>0;if(m&&a.length===0){g&&S(null);return}const v=E?a.reduce((V,R)=>{if(R.collapsed)return V;const x=H(R.minSize,0,u);return V+Math.max(0,x)},0):null,X=E?a.reduce((V,R)=>{if(R.collapsed)return V;const x=H(R.maxSize,u,u);return V+Math.max(0,x)},0):null,oe=v??g?.totalMinimumSize??null,te=X??g?.totalMaximumSize??null;if(!m){g&&S(V=>!V||V.availableContainerSize===u?V:{reason:V.reason,totalMinimumSize:null,totalMaximumSize:null,availableContainerSize:u});return}const _=oe!==null&&oe-u>Number.EPSILON,pe=te!==null&&u-te>Number.EPSILON;if(_||pe){const R={reason:_?"minimum-exceeded":"maximum-insufficient",totalMinimumSize:oe,totalMaximumSize:te,availableContainerSize:u};S(x=>x&&x.reason===R.reason&&Math.abs((x.totalMinimumSize??0)-(R.totalMinimumSize??0))<=Number.EPSILON&&Math.abs((x.totalMaximumSize??0)-(R.totalMaximumSize??0))<=Number.EPSILON&&Math.abs(x.availableContainerSize-R.availableContainerSize)<=Number.EPSILON?x:R);return}if(g){const V=g.reason==="minimum-exceeded",R=g.reason==="maximum-insufficient";(!V||oe!==null)&&(!R||te!==null)&&!_&&!pe&&S($=>$&&null)}},[a,e,p.width,p.height,g]),i.useEffect(()=>{Se()},[Se]),i.useEffect(()=>{U.current=s},[s]);const Ce=i.useMemo(()=>a.map(u=>u.size),[a]),se=i.useRef(!1);i.useLayoutEffect(()=>{if(a.length===0){se.current=!1;return}!se.current&&(f||a.every(u=>u.collapsed||u.size>0))&&(se.current=!0),se.current&&U.current&&U.current(Ce)},[Ce,a,f]),i.useEffect(()=>{if(d&&Ce.length>0&&se.current){const u=setTimeout(()=>{$t(d,Ce)},200);return()=>clearTimeout(u)}},[d,Ce]),i.useEffect(()=>{if(!d||a.length===0||le.current)return;const u=e==="horizontal"?p.width:p.height;if(u<=0)return;const m=Ut(d);if(m&&m.length===a.length){const E=a.map((v,X)=>{const oe=H(v.minSize,0,u),te=H(v.maxSize,u,u),_=me(m[X],oe,te),pe=Be(_,u),V=v.sizeUnit==="pixels"||v.originalPixelSize!==void 0?_:v.preferredPixelSize;return{...v,size:_,percentageSize:pe,preferredPercentageSize:pe>0?pe:v.preferredPercentageSize,preferredPixelSize:V}});n({type:"SET_PANELS",panels:E}),le.current=!0}},[d,a,p.width,p.height,e]);const ye=i.useCallback(u=>{const m=j.current,E=D.current,v=JSON.stringify({id:u.id,size:u.size??null,percentageSize:u.percentageSize??null,preferredPercentageSize:u.preferredPercentageSize??null,preferredPixelSize:u.preferredPixelSize??null,sizeUnit:u.sizeUnit,originalPixelSize:u.originalPixelSize??null,minSize:u.minSize??null,maxSize:u.maxSize??null,collapseFromStart:u.collapseFromStart,collapseFromEnd:u.collapseFromEnd,collapsed:u.collapsed??!1,collapsedByDirection:u.collapsedByDirection??null,sizeBeforeCollapse:u.sizeBeforeCollapse??null,percentageSizeBeforeCollapse:u.percentageSizeBeforeCollapse??null,preferredPercentageSizeBeforeCollapse:u.preferredPercentageSizeBeforeCollapse??null,preferredPixelSizeBeforeCollapse:u.preferredPixelSizeBeforeCollapse??null,pixelAdjustPriority:u.pixelAdjustPriority??null,flexAdjustPriority:u.flexAdjustPriority??null,autoMinSize:u.autoMinSize??null});if(E[u.id]===v){Qe.debug("useResizablePanels.registerPanel skipped",{panelId:u.id,reason:"duplicate-registration"});return}E[u.id]=v,Qe.debug("useResizablePanels.registerPanel",{panelId:u.id,containerReady:L.current,violationReason:y.current,containerSize:{width:m.width,height:m.height}}),n({type:"REGISTER_PANEL",panel:u})},[]),Ae=i.useCallback(u=>{const m=j.current;Qe.debug("useResizablePanels.unregisterPanel",{panelId:u,containerReady:L.current,violationReason:y.current,containerSize:{width:m.width,height:m.height}}),n({type:"UNREGISTER_PANEL",id:u}),delete D.current[u],ce.current[u]&&(clearTimeout(ce.current[u]),delete ce.current[u]),delete _e.current[u],C(E=>{if(!(u in E))return E;const v={...E};return delete v[u],v})},[]),Le=i.useCallback((u,m,E,v)=>{const X=e==="horizontal"?p.width:p.height,oe=a.find($=>$.id===u),te=a.find($=>$.id===m);if(!(oe&&te)){n({type:"RESIZE_PANELS",leftId:u,rightId:m,leftSize:E,rightSize:v,containerSize:X});return}if(oe.collapsed||te.collapsed)return;const _=H(oe.minSize,0,X),pe=H(oe.maxSize,X,X),V=H(te.minSize,0,X),R=H(te.maxSize,X,X);let x=me(E,_,pe),O=me(v,V,R);const Z=x+O,J=E+v;if(Math.abs(Z-J)>1e-9){const $=J-Z;if($>0){const q=pe-x,o=R-O,w=q+o;if(w>0){const Y=Math.min($*(q/w),q),Q=Math.min($-Y,o);x+=Y,O+=Q}}else if($<0){const q=Math.abs($),o=x-_,w=O-V,Y=o+w;if(Y>0){const Q=Math.min(q*(o/Y),o),ve=Math.min(q-Q,w);x-=Q,O-=ve}}}x=me(x,_,pe),O=me(O,V,R),Math.abs(x+O-J)>1e-9&&Qe.error("Total size after constraints should be close to the original total size.",{constrainedLeftSize:x,constrainedRightSize:O,originalTotalSize:J}),n({type:"RESIZE_PANELS",leftId:u,rightId:m,leftSize:x,rightSize:O,containerSize:X})},[e,p.width,p.height,a]),ke=i.useCallback((u,m)=>{const E=e==="horizontal"?p.width:p.height;n({type:"COLLAPSE_PANEL",id:u,from:m,containerSize:E})},[e,p.width,p.height]),M=i.useCallback((u,m,E)=>{const v=e==="horizontal"?p.width:p.height;n({type:"EXPAND_PANEL",id:u,from:m,containerSize:v,targetSize:E})},[e,p.width,p.height]),re=i.useCallback(u=>a.find(m=>m.id===u),[a]),ze=i.useCallback((u,m)=>{if(m===null){ce.current[u]&&(clearTimeout(ce.current[u]),delete ce.current[u]),delete _e.current[u],C(E=>{if(!(u in E))return E;const v={...E};return delete v[u],v});return}C(E=>{const v=E[u],X=v&&Math.abs(v.pixelSize-m.pixelSize)<.1,oe=v&&Math.abs(v.percentageSize-m.percentageSize)<.01;return X&&oe?(ce.current[u]&&clearTimeout(ce.current[u]),_e.current[u]=m,ce.current[u]=setTimeout(()=>{const te=_e.current[u];te&&C(_=>({..._,[u]:te})),delete ce.current[u]},200),E):(ce.current[u]&&(clearTimeout(ce.current[u]),delete ce.current[u]),{...E,[u]:m})})},[]),ue=i.useCallback((u,m)=>{k(E=>{if(m===null){if(!(u in E))return E;const X={...E};return delete X[u],X}const v=E[u];return v&&Math.abs(v.thickness-m.thickness)<=.25&&v.visible===m.visible&&v.direction===m.direction&&v.startPanelId===m.startPanelId&&v.endPanelId===m.endPanelId?E:{...E,[u]:m}})},[]),Me=i.useMemo(()=>({direction:e,panels:a,containerSize:p,isContainerReady:h,showDebugInfo:r,registerPanel:ye,unregisterPanel:Ae,resizePanels:Le,collapsePanel:ke,expandPanel:M,getPanel:re,reportPanelMeasurement:ze,panelMeasurements:P,reportHandleMeasurement:ue,handleMeasurements:F,layoutConstraintViolation:g}),[e,a,p,h,r,ye,Ae,Le,ke,M,re,ze,P,ue,F,g]),De=i.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:N,contextValue:Me,groupStyle:De}},ur=e=>{const{getPanel:t,collapsePanel:s,expandPanel:d}=ht(),r=t(e),a=i.useCallback(z=>{s(e,z)},[s,e]),n=i.useCallback((z,h)=>{d(e,z,h)},[d,e]),p=i.useCallback((z,h)=>{r?.collapsed?n(z,h):a(z)},[r?.collapsed,a,n]);return i.useMemo(()=>({panel:r,isCollapsed:r?.collapsed??!1,canCollapseFromStart:r?.collapseFromStart??!1,canCollapseFromEnd:r?.collapseFromEnd??!1,collapse:a,expand:n,toggle:p}),[r,a,n,p])},dr=({panel:e,measuredPixelSize:t,measuredPercentageSize:s,containerAxisSize:d,containerLabel:r})=>{const a=e?.size,n=typeof a=="number"&&Number.isFinite(a)?`${a.toFixed(3)}px`:"-",p=e?.percentageSize!==void 0?`${e.percentageSize.toFixed(3)}%`:"-",z=Number.isFinite(t)?`${t.toFixed(3)}px`:"-",h=Number.isFinite(s)?`${s.toFixed(3)}%`:"-",l=Number.isFinite(d)?`${d.toFixed(3)}px`:"-",f=`${n} / ${p}`,c=`${z} / ${h}`,g=e?.sizeUnit==="pixels"?"Fixed":"Flexible",S=[g,`${r}: ${l}`,`size (state): ${f}`,`size (measured): ${c}`];return{stateValueDisplay:f,measuredValueDisplay:c,containerDisplay:l,headlineLabel:g,titleText:S.join(`
2
- `)}},fr=i.memo(({panel:e,measuredPixelSize:t,measuredPercentageSize:s,containerAxisSize:d,direction:r})=>{const a=r==="horizontal"?"container width":"container height",{stateValueDisplay:n,measuredValueDisplay:p,containerDisplay:z,headlineLabel:h,titleText:l}=i.useMemo(()=>dr({panel:e,measuredPixelSize:t,measuredPercentageSize:s,containerAxisSize:d,containerLabel:a}),[e,t,s,d,a]),f={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"},c={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%"},S={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 K.jsx("div",{style:f,title:l,children:K.jsxs("div",{style:c,children:[K.jsx("div",{style:g,children:K.jsx("span",{children:h})}),K.jsxs("div",{style:S,children:[K.jsx("span",{children:a}),K.jsx("span",{style:P,children:z})]}),K.jsxs("div",{style:S,children:[K.jsx("span",{children:"size (state)"}),K.jsx("span",{style:P,children:n})]}),K.jsxs("div",{style:S,children:[K.jsx("span",{children:"size (measured)"}),K.jsx("span",{style:P,children:p})]})]})})}),pt=new it(Ve.INFO,"[resize-panels]"),pr={both:{collapseFromStart:!0,collapseFromEnd:!0},start:{collapseFromStart:!0,collapseFromEnd:!1},end:{collapseFromStart:!1,collapseFromEnd:!0}},hr=e=>{if(!e)return{collapseFromStart:!1,collapseFromEnd:!1};const t=pr[e.from];if(!t)throw new Error("Invalid collapsible configuration: unsupported 'from' value");return t},Lt=({ref:e,setState:t,panelIdRef:s,label:d,timerRef:r})=>a=>{if(!Number.isFinite(a))return;const n=a<0?0:a,p=d==="pixel"?.1:.01;if(Math.abs(e.current-n)<p){r&&(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{e.current=n,t(n),r.current=null},200));return}r?.current&&(clearTimeout(r.current),r.current=null),e.current=n,pt.debug(`commit ${d}`,{panelId:s.current,[d]:n}),t(n)},zr=i.memo(({id:e,defaultSize:t={value:50,unit:"percentage"},minSize:s,maxSize:d,autoMinSize:r,className:a,style:n,children:p,order:z=0,collapsible:h,defaultCollapsed:l=!1,pixelAdjustPriority:f,flexAdjustPriority:c,contentOverflow:g="auto"})=>{const{direction:S,registerPanel:P,unregisterPanel:C,getPanel:F,showDebugInfo:k,isContainerReady:N,reportPanelMeasurement:U,containerSize:le}=ht(),ee=i.useRef(null),ne=i.useId(),j=i.useRef(e||`panel-${ne}`);i.useEffect(()=>{e&&e!==j.current&&pt.warn("Panel id prop change after mount is ignored.",{currentId:j.current,attemptedId:e})},[e]);const L=i.useMemo(()=>hr(h),[h]),y=L.collapseFromStart||L.collapseFromEnd,D=i.useMemo(()=>y?L.collapseFromStart?"start":L.collapseFromEnd?"end":null:null,[y,L.collapseFromStart,L.collapseFromEnd]),W=y&&l,G=i.useMemo(()=>Gt(t),[t]),T=G?.unit==="pixels",be=T?void 0:G?.value,A=F(j.current),ce=!!A?.collapsed,_e=(A?.size??0)<=0,de=ce||_e,Ie=i.useRef(A);Ie.current=A;const Se=i.useRef(de);Se.current=de;const[Ce,se]=i.useState(()=>T&&G?G.value:A?.size!==void 0?A.size:0),[ye,Ae]=i.useState(()=>!T&&G?G.value:A?.percentageSize!==void 0?A.percentageSize:0),Le=i.useRef(Ce),ke=i.useRef(ye),M=i.useRef(null),re=i.useRef(null);i.useEffect(()=>()=>{M.current&&clearTimeout(M.current),re.current&&clearTimeout(re.current)},[]);const ze=i.useMemo(()=>Lt({ref:Le,setState:se,panelIdRef:j,label:"pixel",timerRef:M}),[]),ue=i.useMemo(()=>Lt({ref:ke,setState:Ae,panelIdRef:j,label:"percentage",timerRef:re}),[]),Me=i.useCallback(()=>{M.current&&(clearTimeout(M.current),M.current=null),re.current&&(clearTimeout(re.current),re.current=null),Le.current!==0&&(Le.current=0,se(0)),ke.current!==0&&(ke.current=0,Ae(0))},[]);i.useEffect(()=>{if(!N)return;let R=0;if(T&&G){let w=G.value;s&&typeof s=="object"&&s.unit==="pixels"&&(w=Math.max(w,s.value)),d&&typeof d=="object"&&d.unit==="pixels"&&(w=Math.min(w,d.value)),R=w}const x=W,O=x?D:null;l&&!y&&pt.warn("Panel defaultCollapsed is ignored because collapsible configuration is not provided.");const Z=y&&x&&T?R:void 0,J=y?be:void 0,$=T?R:void 0,q={id:j.current,size:x?0:R,percentageSize:x?0:be,preferredPercentageSize:be,preferredPixelSize:$,sizeUnit:G?.unit||"percentage",originalPixelSize:T?R:void 0,minSize:s,maxSize:d,collapseFromStart:L.collapseFromStart,collapseFromEnd:L.collapseFromEnd,collapsedByDirection:O,collapsed:x,sizeBeforeCollapse:Z,percentageSizeBeforeCollapse:J,preferredPercentageSizeBeforeCollapse:y?be:void 0,preferredPixelSizeBeforeCollapse:y?$:void 0,pixelAdjustPriority:f,flexAdjustPriority:c,autoMinSize:r};P(q)},[r,L.collapseFromEnd,L.collapseFromStart,l,G,c,y,N,T,d,s,f,D,be,P,W]),i.useEffect(()=>()=>{C(j.current),U(j.current,null)},[C,U]);const De=A?.size??0,u=i.useCallback(()=>{const R=ee.current;if(!R)return;const x=Ie.current;if(!x)return;const O=R.parentElement;if(!O)return;const Z=R.getBoundingClientRect(),J=$e(O,"horizontal"),$=$e(O,"vertical"),q=S==="horizontal"?Z.width:Z.height,o=S==="horizontal"?J.inner:$.inner,w=mt(o);if(Se.current){Me();return}const Y=x.size??0,Q=Math.max(2,w*.5);if(Y>w&&q<Q){pt.debug("skip noisy measurement",{panelId:j.current,expectedPanelSize:Y,measured:q,noiseThreshold:Q});return}if(q>0){ze(q),o>0&&ue(q/o*100);return}x.size!==void 0&&ze(x.size),x.percentageSize!==void 0?ue(x.percentageSize):x.sizeUnit==="pixels"&&x.size!==void 0&&o>0&&ue(x.size/o*100)},[ue,ze,S,Me]),m=i.useRef(!1);i.useEffect(()=>{!m.current&&A&&(m.current=!0,u())},[A,u]),i.useEffect(()=>{const R=ee.current;if(!R)return;const x=new ResizeObserver(()=>{u()});x.observe(R),u();const O=[],Z=new MutationObserver(()=>{(()=>{if(!ee.current)return!1;const q=ee.current.getBoundingClientRect();return(S==="horizontal"?q.width:q.height)!==Le.current})()&&setTimeout(u,0)}),J=R.parentElement;return J&&Z.observe(J,{childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>{x.disconnect(),Z.disconnect();for(const $ of O)clearTimeout($)}},[S,u]);const E=A?.size,v=A?.percentageSize,X=A?.sizeUnit;i.useEffect(()=>{if(A){if(de){Me();return}if(E!==void 0&&ze(E),v!==void 0)ue(v);else if(X==="pixels"&&E!==void 0){const R=ee.current,x=R?.parentElement;if(R&&x){const{width:O,height:Z}=R.getBoundingClientRect(),J=x.clientWidth,$=x.clientHeight,q=S==="horizontal"?O:Z,o=S==="horizontal"?J:$;if(q>0&&o>0){const w=q/o*100;ue(w)}}}}},[ue,ze,A,v,E,X,S,de,Me]),i.useEffect(()=>{U(j.current,{pixelSize:Ce,percentageSize:ye})},[U,Ce,ye]);const oe=()=>de?"0px":A?.originalPixelSize!==void 0?`${De}px`:A?.percentageSize!==void 0?`${A.percentageSize}%`:`${De}px`,te=A?.sizeUnit==="percentage"&&!A?.collapsed?1:0,_={flexBasis:oe(),flexGrow:0,flexShrink:te,overflow:"hidden",position:"relative",boxSizing:"border-box",minHeight:"0px",minWidth:"0px",...n};S==="horizontal"?(_.height="100%",_.minWidth=0):(_.width="100%",_.minHeight=0),de&&(S==="horizontal"?(_.width="0px",_.minWidth="0px"):(_.height="0px",_.minHeight="0px"),_.flexGrow=0,_.flexShrink=0,_.pointerEvents="none",_.visibility="hidden",ce&&(_.display="none"));const pe=S==="horizontal"?le.width:le.height,V=i.useMemo(()=>({position:"absolute",inset:"0px",overflow:g,display:"flex",flexDirection:"column",width:"100%",height:"100%",minWidth:"0px",minHeight:"0px"}),[g]);return K.jsxs("div",{ref:ee,className:rt.twMerge("panel",a),style:_,"data-panel-id":j.current,"data-panel-size":De,"data-panel-size-unit":A?.sizeUnit||"percentage","data-panel-pixel-size":A?.sizeUnit==="pixels"?A?.originalPixelSize:null,"data-panel-order":z,"data-panel-collapsible":y,"data-panel-collapse-start":L.collapseFromStart,"data-panel-collapse-end":L.collapseFromEnd,"data-panel-collapsed":A?.collapsed,"aria-hidden":de,children:[K.jsx("div",{style:V,children:p}),k&&K.jsx(fr,{panel:A,measuredPixelSize:Ce,measuredPercentageSize:ye,containerAxisSize:pe,direction:S})]})}),gr=i.lazy(()=>Promise.resolve().then(()=>require("./GlobalDebugOverlay-sEQN6exo.cjs")).then(e=>({default:e.GlobalDebugOverlayGate})));let Dt=0;const mr=()=>(Dt+=1,`panel-group-${Dt}`),Sr=e=>{const t=e.reason==="minimum-exceeded",s=t?"Layout unavailable: minimum panel sizes exceed the container.":"Layout unavailable: panels cannot fill the container with their maximum sizes.",d=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:s,detail:d}},xr=(e,t)=>{let s=!1;const d=e.map(r=>{const a=t[r.id];return!a||r.measuredPixelSize===a.pixelSize&&r.measuredPercentageSize===a.percentageSize?r:(s=!0,{...r,measuredPixelSize:a.pixelSize,measuredPercentageSize:a.percentageSize})});return s?d:e},Tt=(e,t,s)=>{const d=$e(e,"horizontal"),r=$e(e,"vertical"),a=e.getBoundingClientRect(),n=d.inner>0?d.inner:t??a.width,p=r.inner>0?r.inner:s??a.height;return{width:n,height:p}},Pr=e=>{const{id:t,className:s,style:d,children:r,direction:a}=e,{groupRef:n,contextValue:p,groupStyle:z}=Wt(e),[h,l]=i.useState({width:0,height:0}),f=p.layoutConstraintViolation,c=!!f,g=i.useMemo(()=>{if(!f)return null;const{summary:y,detail:D}=Sr(f);return K.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:[K.jsx("span",{children:y}),K.jsx("span",{className:"text-slate-500 text-xs dark:text-slate-400",children:D})]})},[f]),P=i.useRef(t??mr()).current,C=t??P,F=p.showDebugInfo&&p.panels.length>0,k=F?p.panels:[],N=F?p.panelMeasurements:{},U=i.useMemo(()=>{if(!F)return[];const y=Object.values(p.handleMeasurements);return y.length<=1?y:y.slice().sort((D,W)=>D.id.localeCompare(W.id))},[p.handleMeasurements,F]),le=p.containerSize,ee=h.width>0?h.width:le.width,ne=h.height>0?h.height:le.height;i.useLayoutEffect(()=>{if(!F){l({width:0,height:0});return}if(typeof window>"u"||typeof ResizeObserver>"u")return;const y=n.current;if(!y)return;const D=G=>{l(T=>T.width===G.width&&T.height===G.height?T:G)},W=new ResizeObserver(G=>{for(const T of G){if(T.target!==y)continue;const be=Tt(y,T.contentRect.width,T.contentRect.height);D(be)}});return W.observe(y),D(Tt(y)),()=>{W.disconnect()}},[n,F]);const j=i.useMemo(()=>xr(k,N),[k,N]);i.useEffect(()=>{if(!F)return;let y=!1,D=null;return Promise.resolve().then(()=>require("./debugOverlayStore-Dkl-fHoa.cjs")).then(W=>{y||(D=W,W.enableDebugOverlayGroup(P))}),()=>{y=!0,D&&(D.disableDebugOverlayGroup(P),D.removeDebugOverlayGroup(P))}},[F,P]),i.useEffect(()=>{if(!F)return;let y=!1;return Promise.resolve().then(()=>require("./debugOverlayStore-Dkl-fHoa.cjs")).then(D=>{y||D.updateDebugOverlayGroup(P,{displayName:C,direction:a,containerSize:{width:ee,height:ne},panels:j,handles:U})}),()=>{y=!0}},[F,P,C,a,ee,ne,j,U]);const L=i.useMemo(()=>{const y={...z,...d};return y.position||(y.position="relative"),y},[z,d]);return K.jsxs(St.Provider,{value:p,children:[K.jsxs("div",{ref:n,className:rt.twMerge("panel-group",a==="horizontal"?"flex-row":"flex-col",s),style:L,"data-panel-group-id":t,"data-panel-group-direction":a,children:[r,c&&g?K.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]}),F&&K.jsx(i.Suspense,{fallback:null,children:K.jsx(gr,{groupId:P})})]})},br={display:"none",pointerEvents:"none",visibility:"hidden"},Cr={display:"none"},et=(e,t)=>typeof e!="number"||!Number.isFinite(e)||e<=0?t:e,Mr=e=>{const t=Math.round(e);return t%2===0?t:t+1},yr=i.memo(e=>{const{id:t,disabled:s=!1,className:d,style:r,children:a,onDragging:n,thickness:p,indicator:z=!0,indicatorThickness:h,indicatorLength:l,indicatorBarThickness:f,indicatorBarLength:c,title:g}=e,{direction:S,resizePanels:P,getPanel:C,collapsePanel:F,expandPanel:k,panels:N,reportHandleMeasurement:U,containerSize:le,layoutConstraintViolation:ee}=ht(),[ne,j]=i.useState(!1),L=i.useRef(null),y=i.useRef(null),D=i.useRef(""),W=i.useRef(""),G=i.useRef(null),[T,be]=i.useState(!1),[A,ce]=i.useState({left:null,right:null}),_e=i.useId(),de=i.useRef(t??`resize-handle-${_e}`),Ie=i.useRef(null),Se=t??de.current,Ce=!!ee,se=s||Ce,ye=i.useCallback(()=>{const b=L.current;if(!b)return;const I=b.parentElement;if(!I)return;y.current=I,typeof window<"u"&&be(window.getComputedStyle(I).direction==="rtl");const B=Array.from(I.children),ie=B.indexOf(b);let ae=null,xe=null;for(let he=ie-1;he>=0;he-=1){const Pe=B[he];if(Pe.dataset.panelId){ae=Pe;break}}for(let he=ie+1;he<B.length;he+=1){const Pe=B[he];if(Pe.dataset.panelId){xe=Pe;break}}const ge=ae?.dataset.panelId||"",Ee=xe?.dataset.panelId||"";ge===D.current&&Ee===W.current||(D.current=ge,W.current=Ee,ce({left:ge||null,right:Ee||null}))},[]),Ae=i.useMemo(()=>N.map(b=>b.id).join("|"),[N]);i.useEffect(()=>{ye()},[ye,Ae]),i.useEffect(()=>{if(Se===de.current)return;const b=de.current;de.current=Se,Ie.current=null,b!==Se&&U(b,null)},[U,Se]),i.useEffect(()=>{const b=de.current;return()=>{U(b,null)}},[U]),i.useEffect(()=>()=>{G.current?.()},[]);const Le=i.useCallback(b=>{if(se||!y.current||G.current)return;b.preventDefault(),b.stopPropagation();const I=y.current,{inner:B}=$e(I,S),ie={x:b.clientX,y:b.clientY},ae=C(D.current),xe=C(W.current);if(!(ae&&xe))return;const ge=ae.size,Ee=xe.size;let he=0;const Pe=sr;j(!0),n?.(!0);const we=b.pointerId,He=b.currentTarget,Ze=S==="horizontal"&&typeof window<"u"&&window.getComputedStyle(I).direction==="rtl";He.setPointerCapture(we);const bt=Te=>{if(Te.pointerId!==we||!L.current)return;Te.preventDefault(),Te.stopPropagation();const vt=performance.now();if(vt-he<Pe)return;he=vt;const wt=S==="horizontal"?Te.clientX-ie.x:Te.clientY-ie.y,zt=Ze?-wt:wt;if(zt===0)return;const Xe=ge+zt,Ye=Ee-zt,Ge=C(D.current),je=C(W.current);if(Ge&&je&&D.current&&W.current){const ot=H(Ge.minSize,0,B),at=H(je.minSize,0,B),Rt=Math.min(B*kt,Ot),Bt=Math.min(B*or,ar),Vt=je.collapseFromStart,Zt=je.collapsedByDirection??"start";if(Vt&&!je.collapsed&&Ye<=Math.max(at*.3,Rt)){F(W.current,"start");return}const qt=Ge.collapseFromEnd,Kt=Ge.collapsedByDirection??"end";if(qt&&!Ge.collapsed&&Xe<=Math.max(ot*.3,Rt)){F(D.current,"end");return}if(je.collapsed&&Ye>Math.max(at*.3,Bt)){k(W.current,Zt,Ye);return}if(Ge.collapsed&&Xe>Math.max(ot*.3,Bt)){k(D.current,Kt,Xe);return}if(B>0){const It=Ge.size+je.size,lt=mt(B);let gt=!1;if(ot<=lt&&Xe<=lt&&ge!==0){const Je=Math.max(0,It-0);Je>=at&&(P(D.current,W.current,0,Je),gt=!0)}else if(at<=lt&&Ye<=lt&&Ee!==0){const Je=Math.max(0,It-0);Je>=ot&&(P(D.current,W.current,Je,0),gt=!0)}if(gt)return}if(Ge.collapsed||je.collapsed)return;P(D.current,W.current,Xe,Ye)}};let Ct=!0;const st=()=>{Ct&&(Ct=!1,G.current=null,j(!1),n?.(!1),document.removeEventListener("pointermove",bt),document.removeEventListener("pointerup",Mt),document.removeEventListener("pointercancel",yt),He.removeEventListener("lostpointercapture",Et),He.hasPointerCapture?.(we)&&He.releasePointerCapture(we))},Mt=Te=>{Te.pointerId===we&&st()},yt=Te=>{Te.pointerId===we&&st()},Et=Te=>{Te.pointerId===we&&st()};document.addEventListener("pointermove",bt),document.addEventListener("pointerup",Mt),document.addEventListener("pointercancel",yt),He.addEventListener("lostpointercapture",Et),G.current=st},[se,S,P,C,F,k,n]),ke=i.useCallback(b=>{if(se)return;const I=S==="horizontal",B=I?"ArrowLeft":"ArrowUp",ie=I?"ArrowRight":"ArrowDown";if(b.key!==B&&b.key!==ie)return;b.preventDefault(),b.stopPropagation();let ae=(b.key===ie?1:-1)*(b.shiftKey?Nt*5:Nt);I&&typeof window<"u"&&y.current!==null&&window.getComputedStyle(y.current).direction==="rtl"&&(ae=-ae);const ge=C(D.current),Ee=C(W.current);!(ge&&Ee)||ge.collapsed||Ee.collapsed||P(D.current,W.current,ge.size+ae,Ee.size-ae)},[se,S,C,P]),M=S==="horizontal",re=M?"cursor-col-resize":"cursor-row-resize",ze=i.useMemo(()=>rt.twMerge("group absolute z-20 flex select-none items-center justify-center border-none bg-transparent transition-colors duration-150 overflow-visible",re,M?"h-full":"w-full",!se&&"hover:bg-gray-200/70 dark:hover:bg-gray-700/70",!se&&"active:bg-blue-300/60 dark:active:bg-blue-700/60",ne&&"bg-blue-200/80 dark:bg-blue-800/60",se&&"cursor-not-allowed opacity-50","focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50",d),[re,M,se,ne,d]),ue=i.useMemo(()=>{const b=I=>{if(!I)return-1;for(let B=0;B<N.length;B+=1)if(N[B].id===I)return B;return-1};return{left:b(A.left),right:b(A.right)}},[A.left,A.right,N]),Me=M?le.width:le.height,De=i.useMemo(()=>{const b=(I,B)=>{if(I>B)return 0;let ie=0;for(let ae=I;ae<=B;ae+=1){const xe=N[ae];if(!xe)continue;const ge=xe.size??0,Ee=Math.max(0,ge);ie+=xe.collapsed?0:Ee}return ie};return ue.left>=0?b(0,ue.left):ue.right>0?b(0,ue.right-1):0},[ue.left,ue.right,N]),u=i.useMemo(()=>!Number.isFinite(De)||De<0?0:Me>0&&De>Me?Me:De,[De,Me]),m=typeof z=="object"&&z!==null?z:void 0,E=z===!1||m?.visible===!1,v=et(p,Yt),X=M?Qt:er,oe=M?rr:ir,te=et(h??m?.thickness,Jt),_=et(l??m?.length,X),pe=et(f??m?.barThickness,tr),V=et(c??m?.barLength,oe),R=Math.max(1,v),x=Math.min(R,Math.max(1,te)),O=Math.max(1,_),Z=Math.min(x,Math.max(1,pe)),J=Math.min(O,Math.max(1,V)),$=i.useMemo(()=>({"--rp-handle-thickness":`${R}px`,"--rp-indicator-thickness":`${x}px`,"--rp-indicator-length":`${O}px`,"--rp-indicator-bar-thickness":`${Z}px`,"--rp-indicator-bar-length":`${J}px`}),[R,x,O,Z,J]),q=i.useMemo(()=>{const b=M&&T&&Me>0?Me-u:u,I=xt(b-R/2,0),B={position:"absolute",zIndex:20,touchAction:"none",...$};return M?(B.top=0,B.left=`${I}px`,B.width=`${R}px`,B.height="100%"):(B.left=0,B.top=`${I}px`,B.height=`${R}px`,B.width="100%"),B},[u,M,T,Me,R,$]),o=i.useMemo(()=>{const b=mt(Me),I=Pe=>{if(Pe<0||Pe>=N.length)return!1;const we=N[Pe];return we?we.collapsed?!0:we.size<=b:!1},B=(Pe,we)=>{if(!I(Pe))return 0;let He=0;for(let Ze=Pe;Ze>=0&&Ze<N.length&&I(Ze);Ze+=we)He+=1;return He},ie=ue.left,ae=ue.right,xe=ie>=0?B(ie,-1):0,ge=ae>=0?B(ae,1):0;return{groupSize:xe+ge+1,overlapIndex:xe}},[ue.left,ue.right,N,Me]),w=i.useMemo(()=>{if(Ce)return!0;if(o.groupSize<=1)return!1;const b=o.groupSize-1;return o.overlapIndex>0&&o.overlapIndex<b},[o,Ce]),Y=i.useMemo(()=>{if(o.groupSize<=1||w)return 0;const b=o.groupSize>1?2:1;if(b===1)return 0;const I=Mr(Math.max(nr,x+4)),B=o.overlapIndex===0?0:b-1,ie=(b-1)/2,ae=(B-ie)*I;return M&&T?-ae:ae},[o,w,x,M,T]),Q=i.useMemo(()=>{if(w||E)return Cr;const b=M?x:O,I=M?O:x,B={width:`${b}px`,height:`${I}px`,flexShrink:0};return Y!==0&&(B.transform=M?`translateX(${Y}px)`:`translateY(${Y}px)`),B},[w,E,M,x,O,Y]),ve=i.useMemo(()=>{const b=M?Z:J,I=M?J:Z;return{width:`${b}px`,height:`${I}px`,flexShrink:0}},[M,Z,J]),qe=i.useMemo(()=>rt.twMerge("pointer-events-none 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)]",ne&&"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)]",m?.className),[ne,m?.className]),nt=i.useMemo(()=>rt.twMerge("pointer-events-none 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)]",ne&&"bg-blue-500 dark:bg-blue-300",!se&&"group-hover:bg-slate-700 dark:group-hover:bg-slate-100",m?.barClassName),[ne,se,m?.barClassName]),Ne=i.useCallback(()=>{const b=L.current;if(!b)return;let I=0;if(!w){const ae=S==="horizontal"?b.offsetWidth:b.offsetHeight;let xe=0,ge=0;if(typeof window<"u"){const he=window.getComputedStyle(b);S==="horizontal"?(xe=Number.parseFloat(he.marginLeft||"0"),ge=Number.parseFloat(he.marginRight||"0")):(xe=Number.parseFloat(he.marginTop||"0"),ge=Number.parseFloat(he.marginBottom||"0"))}I=[ae,xe,ge].reduce((he,Pe)=>Number.isFinite(Pe)?he+Pe:he,0)}(!Number.isFinite(I)||I<0)&&(I=0);const B={id:Se,thickness:I,direction:S,visible:!w&&I>lr,startPanelId:A.left,endPanelId:A.right},ie=Ie.current;ie&&Math.abs(ie.thickness-B.thickness)<=.25&&ie.visible===B.visible&&ie.direction===B.direction&&ie.startPanelId===B.startPanelId&&ie.endPanelId===B.endPanelId||(Ie.current=B,U(Se,B))},[S,A.left,A.right,U,Se,w]);i.useEffect(()=>{Ne()},[Ne]),i.useEffect(()=>{const b=L.current;if(!b)return;if(typeof ResizeObserver>"u"){Ne();return}const I=new ResizeObserver(()=>{Ne()});return I.observe(b),()=>{I.disconnect()}},[Ne]);const Ke=i.useMemo(()=>{const b=r?{...q,...r}:q;return w?{...b,...br}:b},[q,w,r]);return K.jsx("button",{type:"button",ref:L,className:ze,style:Ke,onPointerDown:Le,onKeyDown:ke,disabled:se,"aria-hidden":w||void 0,"aria-label":`Resize ${M?"columns":"rows"} - Drag or use arrow keys to resize, drag to the edge to collapse/expand panels`,"data-resize-handle-id":Se,title:g??`Resize ${M?"columns":"rows"} - Drag or use arrow keys to resize, drag to the edge to collapse/expand panels`,children:a||!E&&K.jsx("div",{className:qe,style:Q,"data-resize-handle-indicator":"","aria-hidden":"true",children:K.jsx("span",{className:nt,style:ve,"data-resize-handle-indicator-bar":"","aria-hidden":"true"})})})}),Pt=e=>typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/["\\]/g,"\\$&"),Er=e=>typeof document>"u"?null:document.querySelector(`[data-panel-id="${Pt(e)}"]`),vr=e=>typeof document>"u"?null:document.querySelector(`[data-panel-group-id="${Pt(e)}"]`),wr=e=>typeof document>"u"?null:document.querySelector(`[data-resize-handle-id="${Pt(e)}"]`);exports.PANEL_SNAP_THRESHOLD=_t;exports.Panel=zr;exports.PanelGroup=Pr;exports.PanelGroupContext=St;exports.PanelResizeHandle=yr;exports.clamp=me;exports.getConstraintInPixels=H;exports.getContainerSize=$e;exports.getPanelElement=Er;exports.getPanelGroupElement=vr;exports.getResizeHandleElement=wr;exports.loadLayout=Ut;exports.normalizeSizeConfig=Gt;exports.saveLayout=$t;exports.usePanelControls=ur;exports.usePanelGroup=ht;exports.useResizablePanels=Wt;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,YAAY,EACR,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,+BAA+B,EAC/B,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,QAAQ,GACX,MAAM,SAAS,CAAA;AAEhB,OAAO,EACH,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,UAAU,GACb,MAAM,SAAS,CAAA;AAUhB;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,KAAG,WAAW,GAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,IAAI,MAAM,KAAG,WAAW,GAAG,IAK/D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,IAAI,MAAM,KAAG,WAAW,GAAG,IAKjE,CAAA"}
package/dist/reducer.d.ts DELETED
@@ -1,39 +0,0 @@
1
- import { PanelCollapseDirection, PanelLayoutData } from './types';
2
- export type PanelAction = {
3
- type: "REGISTER_PANEL";
4
- panel: PanelLayoutData;
5
- } | {
6
- type: "UNREGISTER_PANEL";
7
- id: string;
8
- } | {
9
- type: "RESIZE_PANELS";
10
- leftId: string;
11
- rightId: string;
12
- leftSize: number;
13
- rightSize: number;
14
- containerSize?: number;
15
- } | {
16
- type: "SET_PANELS";
17
- panels: PanelLayoutData[];
18
- } | {
19
- type: "CONTAINER_RESIZED";
20
- containerSize: number;
21
- direction: "horizontal" | "vertical";
22
- } | {
23
- type: "COLLAPSE_PANEL";
24
- id: string;
25
- containerSize: number;
26
- from: PanelCollapseDirection;
27
- } | {
28
- type: "EXPAND_PANEL";
29
- id: string;
30
- containerSize: number;
31
- from: PanelCollapseDirection;
32
- targetSize?: number;
33
- };
34
- /**
35
- * Handle panel registration and size updates for the panel group.
36
- * パネルグループ内の登録・サイズ更新を処理するリデューサー。
37
- */
38
- export declare const panelReducer: (state: PanelLayoutData[], action: PanelAction) => PanelLayoutData[];
39
- //# sourceMappingURL=reducer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgqBtE,MAAM,MAAM,WAAW,GACjB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACvH;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,GAAG,UAAU,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAC3F;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAiCpH;;;GAGG;AAEH,eAAO,MAAM,YAAY,GAAI,OAAO,eAAe,EAAE,EAAE,QAAQ,WAAW,KAAG,eAAe,EA+f3F,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"roundHalfToEven.d.ts","sourceRoot":"","sources":["../src/roundHalfToEven.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,SAAQ,MAAU,KAAG,MA+BnE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-logger.d.ts","sourceRoot":"","sources":["../../src/utils/simple-logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,oBAAY,QAAQ;IAChB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,IAAI,IAAI;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACpB,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC5D,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC3D,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC3D,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAC/D;AAED;;;;GAIG;AACH,qBAAa,MAAO,YAAW,OAAO;IAClC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,IAAI,CAAS;IAErB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAErD;;;;;OAKG;gBACS,KAAK,GAAE,QAAwB,EAAE,MAAM,GAAE,MAA0B,EAAE,IAAI,GAAE,OAAiB;IAOxG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuD;IAE9E;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAMtC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAM7C;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAItC;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMtC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAIpC,OAAO,CAAC,aAAa;IAOrB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;IAInE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;IAM5D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;IAIlE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;IAM3D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;IAIlE,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;IAM3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;IAInE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI;CAK/D"}
package/dist/utils.d.ts DELETED
@@ -1,61 +0,0 @@
1
- import { ContainerAxisMeasurement, FlexibleSize, PanelDirection, PanelLayoutData, SizeConfig, SizeUnit } from './types';
2
- /**
3
- * Number of significant fractional digits to preserve when rounding percentage-based sizes.
4
- * パーセンテージサイズの丸めで保持する有効小数桁数。
5
- */
6
- export declare const PERCENTAGE_DIGITS = 6;
7
- /**
8
- * Convert a pixel measurement to a percentage of the container using banker’s rounding.
9
- * ピクセル寸法をバンカーズラウンディングでコンテナ比率のパーセンテージへ変換する。
10
- */
11
- export declare const toRoundedPercentage: (size: number, base: number) => number;
12
- /**
13
- * Translate a percentage-based size back into pixels relative to the container.
14
- * パーセンテージ指定のサイズをコンテナ基準のピクセル値へ変換する。
15
- */
16
- export declare const percentageToPixels: (percentage: number | undefined, base: number) => number;
17
- /**
18
- * Normalize a flexible size into a size configuration object.
19
- * 柔軟なサイズ指定をサイズ設定オブジェクトへ正規化する。
20
- */
21
- export declare const normalizeSizeConfig: (size: FlexibleSize | undefined, defaultUnit?: SizeUnit) => SizeConfig | undefined;
22
- /**
23
- * Convert flexible size constraints into pixel values based on container size.
24
- * 柔軟サイズ制約をコンテナサイズ基準のピクセル値へ変換する。
25
- */
26
- export declare const getConstraintInPixels: (size: FlexibleSize | undefined, defaultValue: number, containerSize: number) => number;
27
- /**
28
- * Clamp a numeric value between the provided bounds.
29
- * 数値を指定した範囲に収めるためのクリッピング処理。
30
- */
31
- export declare const clamp: (value: number, min: number, max: number) => number;
32
- /**
33
- * Derive a snap-to-zero threshold from the container axis length using shared heuristics.
34
- * 共通ヒューリスティクスに基づきコンテナ軸長からゼロスナップ閾値を算出する。
35
- */
36
- export declare const calculateSnapThreshold: (axisSize: number) => number;
37
- /**
38
- * Adjust pixel-based panels in priority order to absorb remaining space.
39
- * 残余スペースを吸収するためにピクセル基準パネルを優先度順に調整する。
40
- */
41
- type AdjustPixelOptions = {
42
- enforceAutoMinSize?: boolean;
43
- };
44
- export declare const adjustPixelPanelsByPriority: (panels: PanelLayoutData[], sizeDiff: number, containerSize: number, options?: AdjustPixelOptions) => number;
45
- /**
46
- * Measure container size in a given direction, returning inner (borderless) and outer dimensions.
47
- * 指定方向で枠線控除後と控除前の両方の寸法を測定して返す。
48
- */
49
- export declare const getContainerSize: (element: HTMLElement, direction: PanelDirection) => ContainerAxisMeasurement;
50
- /**
51
- * Persist panel layout sizes to local storage.
52
- * パネルレイアウトのサイズをローカルストレージへ保存する。
53
- */
54
- export declare const saveLayout: (id: string, sizes: number[]) => void;
55
- /**
56
- * Restore panel layout sizes from local storage.
57
- * パネルレイアウトのサイズをローカルストレージから復元する。
58
- */
59
- export declare const loadLayout: (id: string) => number[] | null;
60
- export {};
61
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,YAAY,EAAgH,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEnQ;;;GAGG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAElC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,MAMhE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,MAKjF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,YAAY,GAAG,SAAS,EAAE,cAAa,QAAuB,KAAG,UAAU,GAAG,SAMvH,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,YAAY,GAAG,SAAS,EAAE,cAAc,MAAM,EAAE,eAAe,MAAM,KAAG,MASnH,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAE/D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,MAOzD,CAAA;AAED;;;GAGG;AACH,KAAK,kBAAkB,GAAG;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,QAAQ,eAAe,EAAE,EAAE,UAAU,MAAM,EAAE,eAAe,MAAM,EAAE,UAAS,kBAAuB,KAAG,MAsHlJ,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,WAAW,EAAE,WAAW,cAAc,KAAG,wBAuBlF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,EAAE,OAAO,MAAM,EAAE,KAAG,IAMxD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,KAAG,MAAM,EAAE,GAAG,IAQlD,CAAA"}
File without changes
File without changes
File without changes