diff --git a/STRUCTURE.md b/STRUCTURE.md index b241942..de5d2d5 100644 --- a/STRUCTURE.md +++ b/STRUCTURE.md @@ -244,7 +244,7 @@ Authority: **Mandatory Adherence Checklist:** 1. **Always** refer to `projects-requirements.md` for the definitive ruleset. -2. Never implement functionality that contradicts the approved Tech Stack (Next.js App Router, React, Tailwind CSS, shadcn/ui, SQLite). +2. Never implement functionality that contradicts the approved Tech Stack (Vite, React, React Router, Tailwind CSS, shadcn/ui, Sonner, SQLite via better-sqlite3, Express). 3. Treat security and performance checks (per `projects-requirements.md`) as *primary* considerations, not secondary checks. --- diff --git a/client/components/ui/sonner.jsx b/client/components/ui/sonner.jsx new file mode 100644 index 0000000..9e9d7b9 --- /dev/null +++ b/client/components/ui/sonner.jsx @@ -0,0 +1,37 @@ +import { Toaster as Sonner } from 'sonner'; +import { useTheme } from '../../contexts/ThemeContext'; + +export function Toaster() { + const { theme } = useTheme(); + + return ( + + ); +} diff --git a/client/main.jsx b/client/main.jsx index 3ceeeee..5b65e64 100644 --- a/client/main.jsx +++ b/client/main.jsx @@ -1,10 +1,11 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; import { BrowserRouter } from 'react-router-dom'; -import { Toaster } from 'sonner'; import App from './App'; +import { Toaster } from './components/ui/sonner'; import { AuthProvider } from './hooks/useAuth'; import { ThemeProvider } from './contexts/ThemeContext'; +import 'sonner/dist/styles.css'; import './index.css'; ReactDOM.createRoot(document.getElementById('root')).render( @@ -15,29 +16,8 @@ ReactDOM.createRoot(document.getElementById('root')).render( - {/* Global Toast System - placed at root level for proper z-index and positioning */} - + {/* Global shadcn/Sonner toast system */} + diff --git a/docs/Engineering_Reference_Manual.md b/docs/Engineering_Reference_Manual.md index 529bc09..b3318f8 100644 --- a/docs/Engineering_Reference_Manual.md +++ b/docs/Engineering_Reference_Manual.md @@ -3,7 +3,7 @@ **Status:** Current code reference **Last Updated:** 2026-05-10 **Version:** 0.23.2 -**Primary stack:** Node.js + Express, React + Vite, SQLite via `better-sqlite3` +**Primary stack:** Node.js + Express, React + Vite, Tailwind CSS + shadcn/ui, Sonner, SQLite via `better-sqlite3` This manual reflects the current application code in `server.js`, `routes/`, `services/`, `middleware/`, `db/`, `client/`, `package.json`, `Dockerfile`, and `docker-compose.yml`. It is written as a current-state reference, not a changelog. @@ -1037,8 +1037,8 @@ Use this pattern for database-layer audit calls instead of a top-level `require( - React Router `^6.26.2` - TanStack Query `^5.100.9` - Tailwind CSS `^3.4.14` -- Radix/shadcn-style UI primitives -- `sonner` for toasts +- shadcn/ui component primitives, backed by Radix UI where applicable +- Sonner/shadcn toast notifications via `sonner` - `react-markdown`, `remark-gfm`, `rehype-sanitize` for markdown rendering ### `client/main.jsx` @@ -1167,7 +1167,7 @@ Key runtime dependencies: - nodemailer. - node-cron. - React, React DOM, React Router, TanStack Query. -- Radix UI primitives, lucide-react, Tailwind utilities. +- shadcn/ui component primitives, Radix UI primitives, lucide-react, Tailwind utilities, Sonner toasts. - xlsx for spreadsheet import/export. ### Dockerfile