import { PanelLeftOpen, PanelRightOpen } from 'lucide-react' import desertBg from '../../assets/desert.png' import muleSprites from '../../assets/mule-sprites.png' interface TopBarProps { leftSidebarOpen: boolean rightSidebarOpen: boolean onExpandLeft: () => void onExpandRight: () => void } // Block-character ASCII rendering of "Mulimago" — sits on a black plate // in place of the old text title. const MULIMAGO_ASCII = `▖ ▖ ▜ ▘ ▛▖▞▌▌▌▐ ▌▛▛▌▀▌▛▌█▌ ▌▝ ▌▙▌▐▖▌▌▌▌█▌▙▌▙▖` const ROMAN_PAIRS: [number, string][] = [ [1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'], [100, 'C'], [90, 'XC'], [50, 'L'], [40, 'XL'], [10, 'X'], [9, 'IX'], [5, 'V'], [4, 'IV'], [1, 'I'], ] function toRoman(n: number): string { let result = '' for (const [value, symbol] of ROMAN_PAIRS) { while (n >= value) { result += symbol n -= value } } return result } /** * Slim top bar — animated walking mule on the left over a tiled desert * backdrop, settings gear on the right. The active heap badge moved into * the Heaps panel in the left sidebar (where it actually relates to the * heap rows the user navigates to). * * Also hosts the "expand sidebar" affordances: when a side panel is * collapsed, a small panel-open icon appears on the corresponding edge * so the user has a way to bring it back without hunting for the * keyboard shortcut. When the panel is open, the button hides — its * collapse twin lives in the panel's own header. */ export function TopBar({ leftSidebarOpen, rightSidebarOpen, onExpandLeft, onExpandRight, }: TopBarProps) { return (
{!leftSidebarOpen && ( )}
          {MULIMAGO_ASCII}
        
{!rightSidebarOpen && ( )} Built with hubris • {toRoman(new Date().getFullYear())}
) }