@@ -118,18 +118,25 @@ export function SplitPane(props: SplitPaneProps) {
118118 return { minSizes : mins , maxSizes : maxs } ;
119119 } , [ containerSize , paneCount , paneConfigs ] ) ;
120120
121+ // Caluclate space for dividers
122+ const calculateDividersTotalSize = useCallback (
123+ ( containerSz : number ) => {
124+ return (
125+ ( paneCount - 1 ) * convertToPixels ( dividerSize ?? '0px' , containerSz )
126+ ) ;
127+ } ,
128+ [ paneCount , dividerSize ]
129+ ) ;
130+
121131 // Calculate initial sizes from pane configs
122132 const calculateInitialSizes = useCallback (
123133 ( containerSz : number ) : number [ ] => {
124134 if ( containerSz === 0 ) {
125135 return new Array ( paneCount ) . fill ( 0 ) ;
126136 }
127137
128- // Caluclate space for dividers
129- const dividerSpace =
130- ( paneConfigs . length - 1 ) *
131- convertToPixels ( dividerSize ?? '0px' , containerSz ) ;
132- containerSz -= dividerSpace ;
138+ // Subtract space for dividers
139+ containerSz -= calculateDividersTotalSize ( containerSz ) ;
133140
134141 // First pass: calculate sizes for panes with explicit sizes
135142 const sizes : ( number | null ) [ ] = paneConfigs . map ( ( config ) => {
@@ -214,7 +221,11 @@ export function SplitPane(props: SplitPaneProps) {
214221 return calculateInitialSizes ( newContainerSize ) ;
215222 }
216223 // For uncontrolled panes, distribute proportionally
217- return distributeSizes ( currentSizes , newContainerSize ) ;
224+ return distributeSizes (
225+ currentSizes ,
226+ newContainerSize ,
227+ calculateDividersTotalSize ( newContainerSize )
228+ ) ;
218229 }
219230
220231 // First measurement - use initial sizes
0 commit comments