d5e1c42e64
- Install react-grid-layout@2.2.3 and react-resizable - Create widget-registry.tsx with all 4 widget types, WIDGET_CONSTRAINTS, WidgetProps - Create dashboard-api.ts with fetch/save layout and widget CRUD functions - Create dashboard-store.ts (Zustand, NO persist — D-05) with edit mode and auto-save on exit - Create DashboardGrid with react-grid-layout v2 Responsive, ResizeObserver width - Create ClockWidget using Intl.DateTimeFormat (no manual UTC offsets) - Create WidgetWrapper with drag handle and delete button in edit mode - Create EditModeToggle (pencil/checkmark), WidgetCatalogModal (2x2 grid) - Rewrite portal page.tsx as dashboard with grid, edit toggle, widget catalog - Add ResizeObserver polyfill in test setup, CSS mock support in vitest config - All 5 tests green (dashboard grid + clock widget) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
1001 B
JSON
40 lines
1001 B
JSON
{
|
|
"name": "@tessera/web",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"test": "vitest run",
|
|
"type-check": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"jose": "^6.2.3",
|
|
"next": "^15.3.0",
|
|
"next-intl": "^4.13.0",
|
|
"next-themes": "^0.4.6",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-grid-layout": "2.2.3",
|
|
"react-resizable": "^4.0.2",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.14"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4.0.0",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@types/react-grid-layout": "^2.1.0",
|
|
"@vitejs/plugin-react": "^6.0.2",
|
|
"jsdom": "^29.1.1",
|
|
"postcss": "^8.0.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^5.5.0",
|
|
"vitest": "^4.1.9"
|
|
}
|
|
}
|