import { createRoot } from 'react-dom/client' import { HashRouter, Navigate, Route, Routes } from 'react-router-dom' import '@fontsource-variable/geist' import '@fontsource-variable/geist-mono' import '../../../packages/ui/src/tokens.css' import './app.css' import { initTheme, ToastProvider } from '@sims/ui' import { ErrorBoundary } from './components/ErrorBoundary' import { Layout } from './Layout' import { Login } from './Login' import { Home } from './pages/Home' import { Dashboard } from './pages/Dashboard' import { Clients } from './pages/Clients' import { ClientDetail } from './pages/ClientDetail' import { Modules } from './pages/Modules' import { Reports } from './pages/Reports' import { Settings } from './pages/Settings' import { NewDocument } from './pages/NewDocument' import { DocumentView } from './pages/DocumentView' import { Employees } from './pages/Employees' import { Profile } from './pages/Profile' import { ImportApex } from './pages/ImportApex' import { Pipeline } from './pages/Pipeline' import { Documents } from './pages/Documents' import { Reminders } from './pages/Reminders' import { Tickets } from './pages/Tickets' import { Projects } from './pages/Projects' import { Renewals } from './pages/Renewals' import { Mis } from './pages/Mis' import { Audit } from './pages/Audit' import { LoginHistory } from './pages/LoginHistory' import { SmsBalances } from './pages/SmsBalances' import { ModuleDirectory } from './pages/ModuleDirectory' import { Portals } from './pages/Portals' function App() { return ( } /> }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ) } initTheme() createRoot(document.getElementById('root')!).render( , ) // PWA: register the service worker in production builds only (a SW in Vite dev // interferes with HMR). Failure is non-fatal — the app runs fine without it. if (import.meta.env.PROD && 'serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/sw.js').catch(() => { /* PWA is progressive — ignore */ }) }) }