Skip to content

Commit 6f8a521

Browse files
feat(ui): Phase 1 — shadcn/ui foundation and panel-based layout shell
- Install class-variance-authority, tailwindcss-animate, react-resizable-panels - Add shadcn/ui CSS variables to index.css with AD-6 color tokens: light mode (white/gray backgrounds, indigo/blue accents) dark mode (deep charcoal/navy, muted teal/indigo accents) - Update tailwind.config.ts with shadcn CSS var tokens and tailwindcss-animate plugin - Create src/lib/utils.ts with cn() utility (clsx + twMerge) - Add shadcn/ui Button and Separator components in src/components/ui/ - Rewrite Layout.tsx with 3-panel architecture: - Collapsible left sidebar with desktop collapse/expand and mobile slide-in - Resizable main content area via react-resizable-panels - Collapsible right details panel (hidden by default, opens on demand) - New header: logo, global search bar, theme toggle, profile placeholder - RightPanelContext for child views to open the details panel programmatically - Migrate ThemeToggle to shadcn/ui Button styling (inline in Layout) - All existing routes (Dashboard, Graph, Explorer, Console, API Docs) preserved - Build passes clean: 0 TypeScript errors Co-Authored-By: Paperclip <noreply@paperclip.ing>
1 parent 11edfd8 commit 6f8a521

10 files changed

Lines changed: 908 additions & 162 deletions

File tree

src/main/frontend/package-lock.json

Lines changed: 35 additions & 71 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/frontend/package.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
"scripts": {
77
"dev": "vite",
88
"build": "tsc -b && vite build",
9-
"preview": "vite preview"
9+
"preview": "vite preview",
10+
"test:e2e": "playwright test",
11+
"test:e2e:headed": "playwright test --headed",
12+
"test:e2e:report": "playwright show-report"
1013
},
1114
"dependencies": {
1215
"@monaco-editor/react": "^4.7.0",
@@ -16,19 +19,25 @@
1619
"@radix-ui/react-select": "^2.1.6",
1720
"@radix-ui/react-tooltip": "^1.1.8",
1821
"@types/d3": "^7.4.3",
22+
"class-variance-authority": "^0.7.1",
1923
"clsx": "^2.1.1",
2024
"d3": "^7.9.0",
2125
"lucide-react": "^0.474.0",
2226
"react": "^18.3.1",
2327
"react-dom": "^18.3.1",
28+
"react-resizable-panels": "^4.8.0",
2429
"react-router-dom": "^7.1.5",
2530
"swagger-ui-react": "^5.21.0",
26-
"tailwind-merge": "^3.0.2"
31+
"tailwind-merge": "^3.0.2",
32+
"tailwindcss-animate": "^1.0.7"
2733
},
2834
"overrides": {
2935
"dompurify": "^3.3.3"
3036
},
3137
"devDependencies": {
38+
"@axe-core/playwright": "^4.10.1",
39+
"@playwright/test": "^1.51.1",
40+
"@types/node": "^22.0.0",
3241
"@types/react": "^18.3.18",
3342
"@types/react-dom": "^18.3.5",
3443
"@types/swagger-ui-react": "^4.18.3",

0 commit comments

Comments
 (0)