/** * Salon OS App * * Main application class that orchestrates all UI controllers */ import { SidebarController } from './modules/sidebar'; import { DrawerController } from './modules/drawers'; import { ThemeController } from './modules/theme'; import { SearchController } from './modules/search'; import { LockScreenController } from './modules/lockscreen'; import { CashController } from './modules/cash'; import { EmployeesController } from './modules/employees'; /** * Main application class */ export class App { readonly sidebar: SidebarController; readonly drawers: DrawerController; readonly theme: ThemeController; readonly search: SearchController; readonly lockScreen: LockScreenController; readonly cash: CashController; readonly employees: EmployeesController; constructor() { // Initialize controllers this.sidebar = new SidebarController(); this.drawers = new DrawerController(); this.theme = new ThemeController(); this.search = new SearchController(); this.lockScreen = new LockScreenController(this.drawers); this.cash = new CashController(); this.employees = new EmployeesController(); } } /** * Global app instance */ let app: App; /** * Initialize the application */ function init(): void { app = new App(); // Expose to window for debugging if (typeof window !== 'undefined') { (window as unknown as { app: App }).app = app; } } // Wait for DOM ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } export { app }; export default App;