@@ -1818,6 +1818,9 @@ export default function Layout(props: ParentProps) {
18181818 document . documentElement . style . setProperty ( "--dialog-left-margin" , `${ sidebarWidth } px` )
18191819 } )
18201820
1821+ const side = createMemo ( ( ) => Math . max ( layout . sidebar . width ( ) , 244 ) )
1822+ const panel = createMemo ( ( ) => Math . max ( side ( ) - 64 , 0 ) )
1823+
18211824 const loadedSessionDirs = new Set < string > ( )
18221825
18231826 createEffect (
@@ -2094,7 +2097,7 @@ export default function Layout(props: ParentProps) {
20942097 "max-w-full overflow-hidden" : panelProps . mobile ,
20952098 } }
20962099 style = { {
2097- width : panelProps . mobile ? undefined : `${ Math . max ( Math . max ( layout . sidebar . width ( ) , 244 ) - 64 , 0 ) } px` ,
2100+ width : panelProps . mobile ? undefined : `${ panel ( ) } px` ,
20982101 } }
20992102 >
21002103 < Show
@@ -2157,9 +2160,11 @@ export default function Layout(props: ParentProps) {
21572160 variant = "ghost"
21582161 data-action = "project-menu"
21592162 data-project = { slug ( ) }
2160- class = "shrink-0 size-6 rounded-md data-[expanded]:bg-surface-base-active"
2163+ class = "shrink-0 size-6 rounded-md transition-opacity data-[expanded]:bg-surface-base-active"
21612164 classList = { {
2162- "opacity-0 group-hover/project:opacity-100 data-[expanded]:opacity-100" : ! panelProps . mobile ,
2165+ "opacity-100" : panelProps . mobile || merged ( ) ,
2166+ "opacity-0 group-hover/project:opacity-100 group-focus-within/project:opacity-100 data-[expanded]:opacity-100" :
2167+ ! panelProps . mobile && ! merged ( ) ,
21632168 } }
21642169 aria-label = { language . t ( "common.moreOptions" ) }
21652170 />
@@ -2384,7 +2389,7 @@ export default function Layout(props: ParentProps) {
23842389 "absolute inset-y-0 left-0" : true ,
23852390 "z-10" : true ,
23862391 } }
2387- style = { { width : `${ Math . max ( layout . sidebar . width ( ) , 244 ) } px` } }
2392+ style = { { width : `${ side ( ) } px` } }
23882393 ref = { ( el ) => {
23892394 setState ( "nav" , el )
23902395 } }
@@ -2399,24 +2404,29 @@ export default function Layout(props: ParentProps) {
23992404 } }
24002405 >
24012406 < div class = "@container w-full h-full contain-strict" > { sidebarContent ( ) } </ div >
2402- < Show when = { layout . sidebar . opened ( ) } >
2403- < div onPointerDown = { ( ) => setState ( "sizing" , true ) } >
2404- < ResizeHandle
2405- direction = "horizontal"
2406- size = { layout . sidebar . width ( ) }
2407- min = { 244 }
2408- max = { typeof window === "undefined" ? 1000 : window . innerWidth * 0.3 + 64 }
2409- onResize = { ( w ) => {
2410- setState ( "sizing" , true )
2411- if ( sizet !== undefined ) clearTimeout ( sizet )
2412- sizet = window . setTimeout ( ( ) => setState ( "sizing" , false ) , 120 )
2413- layout . sidebar . resize ( w )
2414- } }
2415- />
2416- </ div >
2417- </ Show >
24182407 </ nav >
24192408
2409+ < Show when = { layout . sidebar . opened ( ) } >
2410+ < div
2411+ class = "hidden xl:block absolute inset-y-0 z-30 w-0 overflow-visible"
2412+ style = { { left : `${ side ( ) } px` } }
2413+ onPointerDown = { ( ) => setState ( "sizing" , true ) }
2414+ >
2415+ < ResizeHandle
2416+ direction = "horizontal"
2417+ size = { layout . sidebar . width ( ) }
2418+ min = { 244 }
2419+ max = { typeof window === "undefined" ? 1000 : window . innerWidth * 0.3 + 64 }
2420+ onResize = { ( w ) => {
2421+ setState ( "sizing" , true )
2422+ if ( sizet !== undefined ) clearTimeout ( sizet )
2423+ sizet = window . setTimeout ( ( ) => setState ( "sizing" , false ) , 120 )
2424+ layout . sidebar . resize ( w )
2425+ } }
2426+ />
2427+ </ div >
2428+ </ Show >
2429+
24202430 < div
24212431 class = "hidden xl:block pointer-events-none absolute top-0 right-0 z-0 border-t border-border-weaker-base"
24222432 style = { { left : "calc(4rem + 12px)" } }
@@ -2456,7 +2466,7 @@ export default function Layout(props: ParentProps) {
24562466 ! state . sizing ,
24572467 } }
24582468 style = { {
2459- "--main-left" : layout . sidebar . opened ( ) ? `${ Math . max ( layout . sidebar . width ( ) , 244 ) } px` : "4rem" ,
2469+ "--main-left" : layout . sidebar . opened ( ) ? `${ side ( ) } px` : "4rem" ,
24602470 } }
24612471 >
24622472 < main
@@ -2503,7 +2513,7 @@ export default function Layout(props: ParentProps) {
25032513 "duration-180 ease-out" : state . peeked && ! layout . sidebar . opened ( ) ,
25042514 "duration-120 ease-in" : ! state . peeked || layout . sidebar . opened ( ) ,
25052515 } }
2506- style = { { left : `calc(4rem + ${ Math . max ( Math . max ( layout . sidebar . width ( ) , 244 ) - 64 , 0 ) } px)` } }
2516+ style = { { left : `calc(4rem + ${ panel ( ) } px)` } }
25072517 >
25082518 < div class = "h-full w-px" style = { { "box-shadow" : "var(--shadow-sidebar-overlay)" } } />
25092519 </ div >
0 commit comments