/** The tab rail: icon-only, vertically centered on the right edge, all three sharing * one frosted glass bar rather than each button floating separately - audio player and * typing always shown, the smarthome tab only when Home Assistant is configured, same * gate the old single toggle button used. Replaces that button now that there are * three destinations instead of two. * * Its footprint (this file's own `right`/padding/button-size numbers) is mirrored in * `lib/theme.ts`'s `TAB_RAIL_CLEARANCE`, which the scrollable views reserve as padding * on their own right edge so a full-width row or grid never renders underneath it. */ import { PAGE_ICON, PAGE_LABEL, SHOW_GLASS_BLUR } from "../lib/theme"; import type { UiState } from "../lib/keyboard"; interface Props { page: UiState["page"]; onSelect: (page: UiState["page"]) => void; showRoom: boolean; } const PAGES: readonly UiState["page"][] = ["music", "typing", "room"]; export function TabRail({ page, onSelect, showRoom }: Props) { const pages = PAGES.filter((candidate) => candidate !== "room" || showRoom); return (