diff --git a/frontend/components.json b/frontend/components.json new file mode 100644 index 0000000..5c23ec4 --- /dev/null +++ b/frontend/components.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "radix-nova", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "rtl": false, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "menuColor": "default", + "menuAccent": "subtle", + "registries": {} +} diff --git a/frontend/docs/SHADCN_MIGRATION_AUDIT.md b/frontend/docs/SHADCN_MIGRATION_AUDIT.md new file mode 100644 index 0000000..106b7da --- /dev/null +++ b/frontend/docs/SHADCN_MIGRATION_AUDIT.md @@ -0,0 +1,42 @@ +# SHADCN Migration Audit + +## Scope +- Frontend path: `frontend/src` +- Goal: full replacement of Tabler UI with shadcn/ui + Tailwind tokens. + +## Findings +- Direct Tabler dependencies are present in `frontend/package.json`: + - `@tabler/core` + - `@tabler/icons-react` +- Tabler runtime imports are used in `frontend/src/main.jsx`: + - `@tabler/core/dist/css/tabler.min.css` + - `@tabler/core/dist/js/tabler.min.js` +- Bootstrap/Tabler data API is used in layout and modal flows (`data-bs-*`, `show.bs.*`, `hide.bs.*`). +- `frontend/src/index.css` contains a large Tabler-coupled style layer (`--tblr-*`, `.navbar-*`, `.btn-*`, `.card-*`, `.table-*` patterns). + +## Migration Priority (Feature-first with platform dependencies) +1. **App shell and navigation** + - `App.jsx` + - routing shell + sidebar/topbar behavior +2. **Core UI and design tokens** + - `components/ui` generation via shadcn + - theme provider + global token CSS +3. **High traffic features** + - `Dashboard`, `ServerManager`, `FilterManager` +4. **Cross-feature shared components** + - modal, table, command/alerts/feedback components +5. **Remaining pages** + - all managers/tools pages not covered in p3 + +## Hotspots (high coupling) +- `frontend/src/App.jsx` (layout, routing, theme, i18n in one file) +- `frontend/src/index.css` (global overrides and hardcoded values) +- `frontend/src/components/*` (large number of Tabler class usages) + +## Enforcement Checklist +- No `@tabler/*` imports or dependencies. +- No `data-bs-*` attributes or Bootstrap event listeners. +- No hardcoded color/radius/spacing values in components. +- shadcn primitives generated through plugin/CLI only. +- `components/ui` treated as base layer; composition happens in `components/shared`. + diff --git a/frontend/index.html b/frontend/index.html index 05a6104..1e6797c 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -16,7 +16,6 @@
- - +