2.9 KiB
2.9 KiB
Bolt App 1 — Ops UI Kit (Micro-App)
Before you start: read and follow DESIGN_SYSTEM_BRIEF.md.
Mission
Build a UI/UX-rich Next.js 16 micro-app called Ops UI Kit that showcases production-grade operations dashboard patterns. This app will later be cross-pollinated into dashboards/admin-web and dashboards/tracker-web.
Scope / Safety
- Only change files in this repository.
- No backend / no network calls. Use mock data and localStorage.
- No auth, no Cosmos, no Key Vault.
- No
console.log. - No hardcoded colors. Define a small set of CSS variables in
src/app/globals.css(e.g.--ux-*) and only use those + Tailwind utilities. - Do not edit any other repo folder.
Stack requirements
- Next.js
16.1.x(App Router) - React
19.x - TypeScript strict
- TailwindCSS v4
- shadcn/ui-style components (Radix + Tailwind)
- lucide-react icons
- pnpm package manager
App pages (required)
/— overview landing + links to demos/table— DataTable demo/filters— filter builder demo/details— drawers/modals demo/states— loading/empty/error/success patterns/kpi— KPI cards + tiny chart placeholders
App shell UX (required)
- Left sidebar navigation (responsive)
- Top bar with:
- global search input (client-side; filters mock data)
- theme toggle (light/dark)
- help button showing shortcuts
- Keyboard shortcuts:
Cmd+Kopens command paletteEsccloses modal/drawer
Demo requirements (high polish)
1) DataTable
Mock dataset (~80–120 rows) representing “incidents” or “webhook deliveries” with:
id,status,severity,service,createdAt,requestId,summary,tags
Table must include:
- sorting
- pagination
- column visibility toggle
- row selection + bulk actions bar
- per-row actions menu:
- copy
requestId - copy row JSON
- open details drawer
- copy
- sticky header
- expandable row details
2) Filter Builder
A filter panel supporting:
- faceted filters (status, severity, service)
- date range (simple UI)
- free-text search
- active filter chips row
- clear all
- save/load presets (localStorage)
3) Details Drawer
Row click opens right-side drawer with tabs:
- Overview (key/value)
- Raw JSON (pretty-printed)
- Notes (editable, stored locally)
Focus rules:
- opening drawer moves focus inside
- closing returns focus to triggering row
4) States Gallery
Reusable patterns for:
- skeleton loading
- empty state with CTA
- inline error banner with retry
- toast notifications
- destructive confirm dialog
Deliverables
Create a complete app with:
package.jsonscripts:dev,check,build,lint,testcheckmust runtsc --noEmit+eslintbuildmust runnext build --webpack
Verification
From the repo root:
pnpm installpnpm run checkpnpm run build
Output expectation
Open a PR containing only this app. No other repo changes.