// Authenticated app shell: 3px admin stripe → sidebar + topbar + outlet. // Route guard lives in RequireAdmin, which wraps this in main.tsx. The // confirm provider and the command palette are mounted here so every page // under the shell can use them. import { Outlet } from "react-router-dom"; import { ConfirmProvider } from "@/components/ConfirmDialog"; import { useDocumentTitle } from "@/hooks/useDocumentTitle"; import { CommandPalette } from "./CommandPalette"; import { Sidebar } from "./Sidebar"; import { Topbar } from "./Topbar"; export function AppShell() { useDocumentTitle(); return (
{/* The 3px stripe across the very top of the viewport. Cheap, always-visible signal that the user is in the admin surface. */}
); }