Redesign DM Dashboard (/dm/, /ru/dm/) with purple-gold theme (#534AB7 + #c8a84b): Design System: - Update dm-theme.css with 49 purple-gold tokens (transitions, shadows, hover states) - Create DmTabs.astro with ARIA, keyboard nav, URL hash sync, localStorage persistence - Create DmSidebar.astro for desktop navigation - Redesign DmHeader with gold accent - Update DmButton, DmCard, DmInput primitives - Expand i18n to 47 strings Layout: - Redesign DmLayout with 3-column dashboard grid (sidebar|main|context) - Update /dm/index.astro and /ru/dm/index.astro with named slots Feature Components: - DiceRoller: empty state, ARIA live, color-coded history, storage key fallback - InitiativeTracker: HP editing, active highlighting, storage key fallback - Open5eReference: skeletons, debounce, error retry, gold tabs - NotesPanel: cross-tab sync, copy-to-clipboard, auto-save - AuthPanel: VK/Yandex brand colors, pill buttons Tests: - Add 50 Playwright E2E tests (smoke, dice, initiative, reference, notes, data-migration) Fixes: - Document Open5e client.ts URL bugfix - Add backward-compatible storage key fallback for dice/initiative - Preserve legacy sessionStorage data on load
56 lines
1.5 KiB
JSON
56 lines
1.5 KiB
JSON
{
|
|
"name": "randify",
|
|
"type": "module",
|
|
"version": "0.0.1",
|
|
"scripts": {
|
|
"dev": "astro dev",
|
|
"build": "astro build",
|
|
"preview": "astro preview",
|
|
"test": "vitest run",
|
|
"test:unit": "vitest run",
|
|
"test:e2e": "playwright test",
|
|
"test:ui": "playwright test",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage",
|
|
"lint": "eslint .",
|
|
"lint:fix": "eslint . --fix",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "tsx src/db/migrate.ts",
|
|
"db:studio": "drizzle-kit studio"
|
|
},
|
|
"dependencies": {
|
|
"@astrojs/node": "^8.3.4",
|
|
"@astrojs/rss": "^4.0.18",
|
|
"@astrojs/sitemap": "^3.2.1",
|
|
"@tailwindcss/vite": "^4.0.0",
|
|
"astro": "^4.16.0",
|
|
"drizzle-orm": "^0.45.2",
|
|
"jose": "^6.2.3",
|
|
"pg": "^8.20.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"zod": "^3.25.7"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@playwright/test": "^1.60.0",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@typescript-eslint/eslint-plugin": "^8.59.2",
|
|
"@typescript-eslint/parser": "^8.59.2",
|
|
"@vitest/coverage-v8": "^4.1.5",
|
|
"drizzle-kit": "^0.31.10",
|
|
"eslint": "^10.3.0",
|
|
"eslint-plugin-astro": "^1.7.0",
|
|
"globals": "^17.6.0",
|
|
"happy-dom": "^20.9.0",
|
|
"prettier": "^3.8.3",
|
|
"prettier-plugin-astro": "^0.14.1",
|
|
"tsx": "^4.22.0",
|
|
"typescript": "^5.8.3",
|
|
"typescript-eslint": "^8.59.2",
|
|
"vitest": "^4.1.5"
|
|
}
|
|
}
|