@leanspec/ui 0.2.6-dev.20251125010539 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
- package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
- package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
- package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
- package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
- package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/leanspec.db +0 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
- package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
- package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
- package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
- package/.next/standalone/packages/ui/leanspec.db +0 -0
- package/.next/standalone/packages/ui/package.json +1 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_buildManifest.js +11 -0
- package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_clientMiddlewareManifest.json +1 -0
- package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_ssgManifest.js +1 -0
- package/package.json +2 -2
- /package/.next/standalone/packages/ui/.next/static/{WJi9opx4ShY8zt8yBFo4r → T_KGFP0pHt_xSaaYUJa3L}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{WJi9opx4ShY8zt8yBFo4r → T_KGFP0pHt_xSaaYUJa3L}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{WJi9opx4ShY8zt8yBFo4r → T_KGFP0pHt_xSaaYUJa3L}/_ssgManifest.js +0 -0
- /package/.next/{static/WJi9opx4ShY8zt8yBFo4r → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
- /package/.next/{static/WJi9opx4ShY8zt8yBFo4r → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{static/WJi9opx4ShY8zt8yBFo4r → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md
ADDED
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
# UI/UX Design System & Implementation Guide
|
|
2
|
+
|
|
3
|
+
This document details the comprehensive UI/UX design requirements, design system specifications, and component patterns for LeanSpec Web enhancements.
|
|
4
|
+
|
|
5
|
+
## Design Goals
|
|
6
|
+
|
|
7
|
+
1. **Professional Quality** - Match standards of Linear, Vercel, Stripe docs
|
|
8
|
+
2. **Accessible** - WCAG 2.1 AA compliance, keyboard navigation, screen readers
|
|
9
|
+
3. **Responsive** - Mobile-first design that works on all devices
|
|
10
|
+
4. **Performant** - Fast loading, smooth animations, optimistic updates
|
|
11
|
+
5. **Intuitive** - Clear information hierarchy, easy navigation
|
|
12
|
+
|
|
13
|
+
## Design System Foundation
|
|
14
|
+
|
|
15
|
+
### Color Palette
|
|
16
|
+
|
|
17
|
+
**Status Colors:**
|
|
18
|
+
```css
|
|
19
|
+
Complete: hsl(142 76% 36%) /* Green */
|
|
20
|
+
In Progress: hsl(38 92% 50%) /* Orange */
|
|
21
|
+
Planned: hsl(221 83% 53%) /* Blue */
|
|
22
|
+
Archived: hsl(215 16% 47%) /* Gray */
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Priority Colors:**
|
|
26
|
+
```css
|
|
27
|
+
Critical: hsl(0 84% 60%) /* Red */
|
|
28
|
+
High: hsl(38 92% 50%) /* Orange */
|
|
29
|
+
Medium: hsl(221 83% 53%) /* Blue */
|
|
30
|
+
Low: hsl(215 16% 47%) /* Gray */
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Typography
|
|
34
|
+
|
|
35
|
+
**Font Stack:**
|
|
36
|
+
```css
|
|
37
|
+
--font-sans: system-ui, -apple-system, 'Segoe UI', sans-serif
|
|
38
|
+
--font-mono: 'SF Mono', Monaco, 'Cascadia Code', monospace
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Sizes & Weights:**
|
|
42
|
+
- Display: 2.25rem (36px), weight 700, line-height 1.1
|
|
43
|
+
- Heading 1: 1.875rem (30px), weight 700, line-height 1.2
|
|
44
|
+
- Heading 2: 1.5rem (24px), weight 600, line-height 1.3
|
|
45
|
+
- Body: 1rem (16px), weight 400, line-height 1.5
|
|
46
|
+
- Small: 0.875rem (14px), weight 400, line-height 1.5
|
|
47
|
+
|
|
48
|
+
### Spacing Scale
|
|
49
|
+
|
|
50
|
+
```css
|
|
51
|
+
xs: 4px sm: 8px md: 12px
|
|
52
|
+
base: 16px lg: 24px xl: 32px
|
|
53
|
+
2xl: 48px 3xl: 64px 4xl: 80px
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Icon System
|
|
57
|
+
|
|
58
|
+
**Library:** Lucide React v0.553.0+
|
|
59
|
+
|
|
60
|
+
**Status Icons:**
|
|
61
|
+
- Clock: Planned
|
|
62
|
+
- PlayCircle: In Progress
|
|
63
|
+
- CheckCircle2: Complete
|
|
64
|
+
- Archive: Archived
|
|
65
|
+
|
|
66
|
+
**Priority Icons:**
|
|
67
|
+
- AlertCircle: Critical
|
|
68
|
+
- ArrowUp: High
|
|
69
|
+
- Minus: Medium
|
|
70
|
+
- ArrowDown: Low
|
|
71
|
+
|
|
72
|
+
**Icon Size Standards:**
|
|
73
|
+
- Small (inline): h-4 w-4 (16px)
|
|
74
|
+
- Medium (default): h-5 w-5 (20px)
|
|
75
|
+
- Large (sections): h-6 w-6 (24px)
|
|
76
|
+
- Extra large (empty states): h-12 w-12 (48px)
|
|
77
|
+
|
|
78
|
+
## Component Specifications
|
|
79
|
+
|
|
80
|
+
### Stats Cards with Gradients
|
|
81
|
+
|
|
82
|
+
```tsx
|
|
83
|
+
<Card className="relative overflow-hidden">
|
|
84
|
+
<div className="absolute inset-0 bg-gradient-to-br from-blue-500/10 to-transparent" />
|
|
85
|
+
<CardHeader className="relative pb-3">
|
|
86
|
+
<div className="flex items-center justify-between">
|
|
87
|
+
<CardTitle className="text-sm font-medium text-muted-foreground">
|
|
88
|
+
Total Specs
|
|
89
|
+
</CardTitle>
|
|
90
|
+
<FileText className="h-5 w-5 text-blue-600" />
|
|
91
|
+
</div>
|
|
92
|
+
</CardHeader>
|
|
93
|
+
<CardContent className="relative">
|
|
94
|
+
<div className="text-3xl font-bold">{stats.totalSpecs}</div>
|
|
95
|
+
<p className="text-xs text-muted-foreground mt-1">
|
|
96
|
+
<TrendingUp className="inline h-3 w-3 text-green-600" />
|
|
97
|
+
<span className="text-green-600">↑ 12%</span> from last month
|
|
98
|
+
</p>
|
|
99
|
+
</CardContent>
|
|
100
|
+
</Card>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Sidebar Navigation (Spec List)
|
|
104
|
+
|
|
105
|
+
**Features:**
|
|
106
|
+
- Collapsible left sidebar
|
|
107
|
+
- Search/filter within sidebar
|
|
108
|
+
- Current spec highlighted
|
|
109
|
+
- Sticky positioning
|
|
110
|
+
- Quick access to all specs
|
|
111
|
+
|
|
112
|
+
**Layout:**
|
|
113
|
+
```tsx
|
|
114
|
+
<aside className="sticky top-14 h-[calc(100vh-3.5rem)] w-64 border-r overflow-y-auto">
|
|
115
|
+
<div className="p-4 space-y-4">
|
|
116
|
+
<Input
|
|
117
|
+
placeholder="Search specs..."
|
|
118
|
+
className="h-9"
|
|
119
|
+
/>
|
|
120
|
+
<ScrollArea className="h-full">
|
|
121
|
+
{specs.map(spec => (
|
|
122
|
+
<Link
|
|
123
|
+
key={spec.id}
|
|
124
|
+
href={`/specs/${spec.id}`}
|
|
125
|
+
className={cn(
|
|
126
|
+
"block p-2 rounded-md text-sm transition-colors",
|
|
127
|
+
currentSpec === spec.id
|
|
128
|
+
? "bg-accent text-accent-foreground font-medium"
|
|
129
|
+
: "hover:bg-accent/50"
|
|
130
|
+
)}
|
|
131
|
+
>
|
|
132
|
+
#{spec.specNumber} - {spec.title}
|
|
133
|
+
</Link>
|
|
134
|
+
))}
|
|
135
|
+
</ScrollArea>
|
|
136
|
+
</div>
|
|
137
|
+
</aside>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Sticky Elements Implementation
|
|
141
|
+
|
|
142
|
+
**Sticky Header:**
|
|
143
|
+
```tsx
|
|
144
|
+
<div className="sticky top-0 z-40 bg-background/95 backdrop-blur">
|
|
145
|
+
<Breadcrumb />
|
|
146
|
+
<div className="flex items-center justify-between px-6 py-3 border-b">
|
|
147
|
+
<h1 className="text-2xl font-bold">{spec.title}</h1>
|
|
148
|
+
<div className="flex gap-2">
|
|
149
|
+
<ThemeToggle />
|
|
150
|
+
<Button variant="outline">Actions</Button>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Sticky Info Panel:**
|
|
157
|
+
```tsx
|
|
158
|
+
<aside className="sticky top-24 h-fit w-80 flex-shrink-0">
|
|
159
|
+
<Card>
|
|
160
|
+
<CardHeader>
|
|
161
|
+
<CardTitle>Metadata</CardTitle>
|
|
162
|
+
</CardHeader>
|
|
163
|
+
<CardContent>
|
|
164
|
+
{/* Timeline, status, priority, tags, etc. */}
|
|
165
|
+
</CardContent>
|
|
166
|
+
</Card>
|
|
167
|
+
</aside>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Enhanced Frontmatter Display
|
|
171
|
+
|
|
172
|
+
**Improved Layout with Icons:**
|
|
173
|
+
```tsx
|
|
174
|
+
<Card>
|
|
175
|
+
<CardContent className="pt-6">
|
|
176
|
+
<dl className="grid grid-cols-2 gap-4">
|
|
177
|
+
<div>
|
|
178
|
+
<dt className="text-sm font-medium text-muted-foreground flex items-center gap-1.5">
|
|
179
|
+
<PlayCircle className="h-4 w-4" />
|
|
180
|
+
Status
|
|
181
|
+
</dt>
|
|
182
|
+
<dd className="mt-1">
|
|
183
|
+
<Badge variant="secondary" className="flex items-center gap-1.5 w-fit">
|
|
184
|
+
<PlayCircle className="h-3.5 w-3.5" />
|
|
185
|
+
In Progress
|
|
186
|
+
</Badge>
|
|
187
|
+
</dd>
|
|
188
|
+
</div>
|
|
189
|
+
{/* Additional metadata fields... */}
|
|
190
|
+
</dl>
|
|
191
|
+
</CardContent>
|
|
192
|
+
</Card>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Sub-Spec Navigation Redesign
|
|
196
|
+
|
|
197
|
+
**Better Hierarchy with Icons:**
|
|
198
|
+
```tsx
|
|
199
|
+
<Tabs defaultValue="readme" className="w-full">
|
|
200
|
+
<TabsList className="grid w-full grid-cols-auto">
|
|
201
|
+
<TabsTrigger value="readme" className="flex items-center gap-2">
|
|
202
|
+
<FileText className="h-4 w-4" />
|
|
203
|
+
Overview
|
|
204
|
+
</TabsTrigger>
|
|
205
|
+
<TabsTrigger value="design" className="flex items-center gap-2">
|
|
206
|
+
<Palette className="h-4 w-4 text-purple-600" />
|
|
207
|
+
Design
|
|
208
|
+
</TabsTrigger>
|
|
209
|
+
<TabsTrigger value="implementation" className="flex items-center gap-2">
|
|
210
|
+
<Code className="h-4 w-4 text-green-600" />
|
|
211
|
+
Implementation
|
|
212
|
+
</TabsTrigger>
|
|
213
|
+
</TabsList>
|
|
214
|
+
</Tabs>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Quick Search (Cmd+K)
|
|
218
|
+
|
|
219
|
+
**Implementation with shadcn/ui Command:**
|
|
220
|
+
```tsx
|
|
221
|
+
<CommandDialog open={open} onOpenChange={setOpen}>
|
|
222
|
+
<CommandInput placeholder="Search specs..." />
|
|
223
|
+
<CommandList>
|
|
224
|
+
<CommandEmpty>No results found.</CommandEmpty>
|
|
225
|
+
<CommandGroup heading="Recent">
|
|
226
|
+
{recentSearches.map(search => (
|
|
227
|
+
<CommandItem key={search} onSelect={() => navigate(search)}>
|
|
228
|
+
<History className="mr-2 h-4 w-4" />
|
|
229
|
+
{search}
|
|
230
|
+
</CommandItem>
|
|
231
|
+
))}
|
|
232
|
+
</CommandGroup>
|
|
233
|
+
<CommandGroup heading="Specs">
|
|
234
|
+
{searchResults.map(spec => (
|
|
235
|
+
<CommandItem key={spec.id} onSelect={() => navigate(`/specs/${spec.id}`)}>
|
|
236
|
+
<FileText className="mr-2 h-4 w-4" />
|
|
237
|
+
<div className="flex flex-col">
|
|
238
|
+
<span>{spec.title}</span>
|
|
239
|
+
<span className="text-xs text-muted-foreground">{spec.description}</span>
|
|
240
|
+
</div>
|
|
241
|
+
</CommandItem>
|
|
242
|
+
))}
|
|
243
|
+
</CommandGroup>
|
|
244
|
+
</CommandList>
|
|
245
|
+
</CommandDialog>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Loading Skeletons
|
|
249
|
+
|
|
250
|
+
**Spec Card Skeleton:**
|
|
251
|
+
```tsx
|
|
252
|
+
<Card>
|
|
253
|
+
<CardHeader>
|
|
254
|
+
<Skeleton className="h-4 w-[250px]" />
|
|
255
|
+
</CardHeader>
|
|
256
|
+
<CardContent className="space-y-2">
|
|
257
|
+
<Skeleton className="h-4 w-full" />
|
|
258
|
+
<Skeleton className="h-4 w-4/5" />
|
|
259
|
+
<div className="flex gap-2">
|
|
260
|
+
<Skeleton className="h-5 w-16" />
|
|
261
|
+
<Skeleton className="h-5 w-16" />
|
|
262
|
+
</div>
|
|
263
|
+
</CardContent>
|
|
264
|
+
</Card>
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Page Loading State:**
|
|
268
|
+
```tsx
|
|
269
|
+
// app/specs/[id]/loading.tsx
|
|
270
|
+
export default function Loading() {
|
|
271
|
+
return (
|
|
272
|
+
<div className="container py-6 space-y-6">
|
|
273
|
+
<Skeleton className="h-8 w-2/3" />
|
|
274
|
+
<Skeleton className="h-64 w-full" />
|
|
275
|
+
<Skeleton className="h-96 w-full" />
|
|
276
|
+
</div>
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Enhanced Empty States
|
|
282
|
+
|
|
283
|
+
**With Icons and Actions:**
|
|
284
|
+
```tsx
|
|
285
|
+
<Card className="border-dashed">
|
|
286
|
+
<CardContent className="py-12 text-center">
|
|
287
|
+
<FileX className="mx-auto h-12 w-12 text-muted-foreground/50" />
|
|
288
|
+
<h3 className="mt-4 text-lg font-semibold">No specs found</h3>
|
|
289
|
+
<p className="mt-2 text-sm text-muted-foreground">
|
|
290
|
+
Try adjusting your filters or search query
|
|
291
|
+
</p>
|
|
292
|
+
<div className="mt-4 flex items-center justify-center gap-2">
|
|
293
|
+
<Button variant="outline" onClick={clearFilters}>
|
|
294
|
+
<Filter className="h-4 w-4 mr-2" />
|
|
295
|
+
Clear Filters
|
|
296
|
+
</Button>
|
|
297
|
+
<Button variant="outline" onClick={clearSearch}>
|
|
298
|
+
<X className="h-4 w-4 mr-2" />
|
|
299
|
+
Clear Search
|
|
300
|
+
</Button>
|
|
301
|
+
</div>
|
|
302
|
+
</CardContent>
|
|
303
|
+
</Card>
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Toast Notifications
|
|
307
|
+
|
|
308
|
+
**Using sonner library:**
|
|
309
|
+
```tsx
|
|
310
|
+
import { toast } from 'sonner';
|
|
311
|
+
|
|
312
|
+
// Success
|
|
313
|
+
toast.success('Spec created successfully', {
|
|
314
|
+
description: 'Your spec has been saved to the database.',
|
|
315
|
+
action: {
|
|
316
|
+
label: 'View',
|
|
317
|
+
onClick: () => router.push(`/specs/${spec.id}`)
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
// Error
|
|
322
|
+
toast.error('Failed to save spec', {
|
|
323
|
+
description: error.message
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
// Loading
|
|
327
|
+
toast.loading('Saving spec...');
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
## Theme Switching
|
|
331
|
+
|
|
332
|
+
### next-themes Implementation
|
|
333
|
+
|
|
334
|
+
**Provider Setup:**
|
|
335
|
+
```tsx
|
|
336
|
+
// app/providers.tsx
|
|
337
|
+
import { ThemeProvider } from 'next-themes';
|
|
338
|
+
|
|
339
|
+
export function Providers({ children }) {
|
|
340
|
+
return (
|
|
341
|
+
<ThemeProvider
|
|
342
|
+
attribute="class"
|
|
343
|
+
defaultTheme="system"
|
|
344
|
+
enableSystem
|
|
345
|
+
disableTransitionOnChange
|
|
346
|
+
>
|
|
347
|
+
{children}
|
|
348
|
+
</ThemeProvider>
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**Toggle Component:**
|
|
354
|
+
```tsx
|
|
355
|
+
export function ThemeToggle() {
|
|
356
|
+
const { theme, setTheme } = useTheme();
|
|
357
|
+
|
|
358
|
+
return (
|
|
359
|
+
<Button
|
|
360
|
+
variant="ghost"
|
|
361
|
+
size="icon"
|
|
362
|
+
onClick={() => setTheme(theme === 'light' ? 'dark' : 'light')}
|
|
363
|
+
>
|
|
364
|
+
<Sun className="h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" />
|
|
365
|
+
<Moon className="absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" />
|
|
366
|
+
</Button>
|
|
367
|
+
);
|
|
368
|
+
}
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
## Responsive Design
|
|
372
|
+
|
|
373
|
+
### Breakpoints
|
|
374
|
+
- sm: 640px
|
|
375
|
+
- md: 768px
|
|
376
|
+
- lg: 1024px
|
|
377
|
+
- xl: 1280px
|
|
378
|
+
- 2xl: 1536px
|
|
379
|
+
|
|
380
|
+
### Mobile Optimizations
|
|
381
|
+
- Hamburger menu below 768px
|
|
382
|
+
- Single column layout on mobile
|
|
383
|
+
- Collapsible sidebar
|
|
384
|
+
- Horizontal scroll for tables
|
|
385
|
+
- Bottom sheet for filters
|
|
386
|
+
- Larger touch targets (min 44x44px)
|
|
387
|
+
|
|
388
|
+
## Accessibility Standards
|
|
389
|
+
|
|
390
|
+
### WCAG 2.1 AA Requirements
|
|
391
|
+
|
|
392
|
+
**Keyboard Navigation:**
|
|
393
|
+
- Tab order follows visual order
|
|
394
|
+
- Skip links to main content
|
|
395
|
+
- Cmd+K for search
|
|
396
|
+
- Escape to close modals
|
|
397
|
+
- Arrow keys for lists
|
|
398
|
+
|
|
399
|
+
**Screen Readers:**
|
|
400
|
+
- Semantic HTML
|
|
401
|
+
- ARIA labels for icons
|
|
402
|
+
- Live regions for dynamic content
|
|
403
|
+
- Descriptive link text
|
|
404
|
+
|
|
405
|
+
**Visual:**
|
|
406
|
+
- Color contrast >= 4.5:1 for text
|
|
407
|
+
- Color contrast >= 3:1 for UI components
|
|
408
|
+
- Focus indicators visible
|
|
409
|
+
- No information by color alone
|
|
410
|
+
|
|
411
|
+
**Testing Tools:**
|
|
412
|
+
- axe DevTools
|
|
413
|
+
- Lighthouse accessibility audit
|
|
414
|
+
- Manual keyboard testing
|
|
415
|
+
- Screen reader testing (NVDA/JAWS/VoiceOver)
|
|
416
|
+
|
|
417
|
+
## Performance Targets
|
|
418
|
+
|
|
419
|
+
- First Contentful Paint: < 1.5s
|
|
420
|
+
- Time to Interactive: < 3s
|
|
421
|
+
- Lighthouse Performance: > 90
|
|
422
|
+
- Largest Contentful Paint: < 2.5s
|
|
423
|
+
- Cumulative Layout Shift: < 0.1
|
|
424
|
+
|
|
425
|
+
## Implementation Priority
|
|
426
|
+
|
|
427
|
+
### High Priority (Week 1-2)
|
|
428
|
+
1. Quick search (Cmd+K)
|
|
429
|
+
2. Sidebar navigation
|
|
430
|
+
3. Sticky header and info panel
|
|
431
|
+
4. Improved frontmatter display
|
|
432
|
+
5. Sub-spec navigation redesign
|
|
433
|
+
|
|
434
|
+
### Medium Priority (Week 3)
|
|
435
|
+
6. Loading skeletons
|
|
436
|
+
7. Enhanced empty states
|
|
437
|
+
8. Toast notifications
|
|
438
|
+
9. Stats page completion
|
|
439
|
+
|
|
440
|
+
### Lower Priority (Week 4)
|
|
441
|
+
10. Logo and favicon
|
|
442
|
+
11. Accessibility audit
|
|
443
|
+
12. Performance optimization
|
|
444
|
+
13. Final polish
|