@leanspec/ui 0.2.7-dev.20251128020042 → 0.2.8

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.
Files changed (386) hide show
  1. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +2 -0
  4. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  7. package/.next/standalone/packages/ui/.next/routes-manifest.json +12 -0
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -18
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
  24. package/.next/standalone/packages/ui/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
  25. package/.next/standalone/packages/ui/.next/server/app/api/context/route/build-manifest.json +11 -0
  26. package/.next/standalone/packages/ui/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
  27. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +8 -0
  28. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.map +5 -0
  29. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -0
  30. package/.next/standalone/packages/ui/.next/server/app/api/context/route_client-reference-manifest.js +2 -0
  31. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/context/page/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +18 -0
  49. package/.next/standalone/packages/ui/.next/server/app/context/page/next-font-manifest.json +6 -0
  50. package/.next/standalone/packages/ui/.next/server/app/context/page/react-loadable-manifest.json +1 -0
  51. package/.next/standalone/packages/ui/.next/server/app/context/page/server-reference-manifest.json +4 -0
  52. package/.next/standalone/packages/ui/.next/server/app/context/page.js +19 -0
  53. package/.next/standalone/packages/ui/.next/server/app/context/page.js.map +5 -0
  54. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -0
  55. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +2 -0
  56. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  65. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  67. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +12 -12
  68. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +12 -12
  69. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  70. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +3 -3
  71. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  72. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  73. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  76. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  78. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +2 -0
  80. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +2 -2
  81. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
  82. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
  83. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
  84. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +3 -0
  85. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
  86. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
  87. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_context_route_actions_dead6daa.js +3 -0
  88. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__12b4eb41._.js +3 -0
  89. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +3 -0
  90. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__6e739186._.js +7 -0
  91. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a4c56419._.js +7 -0
  92. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b6632d78._.js +3 -0
  93. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +1 -1
  94. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
  95. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  96. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
  98. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_315f3b3a._.js +3 -0
  99. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_959ad3d8._.js +4 -0
  100. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_9dcf102b._.js +3 -0
  101. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_497c8b73._.js → _b397e94a._.js} +2 -2
  102. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_8272a49c._.js +3 -0
  103. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_context_page_actions_1a062d48.js +3 -0
  104. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +12 -0
  105. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  106. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  107. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  108. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  109. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  110. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  111. package/.next/standalone/packages/ui/.next/static/chunks/1eb8283995f370c6.js +1 -0
  112. package/.next/standalone/packages/ui/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  113. package/.next/standalone/packages/ui/.next/static/chunks/37a1236ed50645a6.js +1 -0
  114. package/.next/standalone/packages/ui/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  115. package/.next/standalone/packages/ui/.next/static/chunks/c4b1faff3361a749.js +1 -0
  116. package/.next/{static/chunks/294dea6dbec43ca6.js → standalone/packages/ui/.next/static/chunks/d7420d2a867e57b5.js} +1 -1
  117. package/.next/{static/chunks/cca4441cde342ae3.js → standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js} +1 -1
  118. package/.next/standalone/packages/ui/.next/static/chunks/efded9da04c960d8.js +1 -0
  119. package/.next/standalone/packages/ui/.next/static/chunks/f382932f1a5d6359.js +10 -0
  120. package/.next/standalone/packages/ui/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  121. package/.next/standalone/packages/ui/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  122. package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
  123. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
  124. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  125. package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
  126. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
  127. package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
  128. package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
  129. package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
  130. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
  131. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
  132. package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
  133. package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
  134. package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
  135. package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
  136. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
  137. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
  138. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
  139. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
  140. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
  141. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
  142. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
  143. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
  144. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
  145. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
  146. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
  147. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
  148. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
  149. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
  150. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
  151. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
  152. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
  153. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
  154. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
  155. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
  156. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
  157. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
  158. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
  159. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
  160. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
  161. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
  162. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
  163. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
  164. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
  165. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
  166. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
  167. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
  168. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
  169. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
  170. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
  171. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
  172. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
  173. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
  174. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
  175. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
  176. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
  177. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
  178. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
  179. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
  180. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
  181. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
  182. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
  183. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
  184. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
  185. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
  186. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
  187. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
  188. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
  189. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
  190. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
  191. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
  192. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
  193. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
  194. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
  195. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
  196. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
  197. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
  198. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
  199. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
  200. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
  201. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
  202. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
  203. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
  204. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
  205. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
  206. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
  207. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
  208. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
  209. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
  210. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
  211. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
  212. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
  213. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
  214. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
  215. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
  216. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
  217. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
  218. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
  219. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
  220. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
  221. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
  222. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
  223. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
  224. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
  225. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
  226. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
  227. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
  228. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
  229. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
  230. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
  231. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
  232. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
  233. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
  234. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
  235. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
  236. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
  237. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
  238. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
  239. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
  240. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
  241. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
  242. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
  243. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
  244. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
  245. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
  246. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
  247. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
  248. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
  249. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
  250. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
  251. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
  252. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
  253. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
  254. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
  255. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
  256. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
  257. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
  258. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
  259. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
  260. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
  261. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
  262. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
  263. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
  264. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
  265. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
  266. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
  267. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
  268. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
  269. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
  270. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
  271. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
  272. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
  273. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
  274. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
  275. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
  276. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
  277. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
  278. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
  279. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
  280. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
  281. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
  282. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
  283. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
  284. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
  285. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
  286. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
  287. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
  288. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
  289. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
  290. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
  291. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
  292. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
  293. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
  294. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
  295. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
  296. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
  297. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
  298. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
  299. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
  300. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
  301. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
  302. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
  303. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
  304. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
  305. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
  306. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
  307. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
  308. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
  309. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
  310. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
  311. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
  312. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
  313. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
  314. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
  315. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
  316. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
  317. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
  318. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
  319. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
  320. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
  321. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
  322. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
  323. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
  324. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
  325. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
  326. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
  327. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
  328. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
  329. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
  330. package/.next/standalone/packages/ui/package.json +2 -1
  331. package/.next/standalone/packages/ui/server.js +1 -1
  332. package/.next/standalone/packages/ui/src/app/api/context/route.ts +22 -0
  333. package/.next/standalone/packages/ui/src/app/context/context-client.tsx +371 -0
  334. package/.next/standalone/packages/ui/src/app/context/page.tsx +17 -0
  335. package/.next/standalone/packages/ui/src/app/globals.css +16 -16
  336. package/.next/standalone/packages/ui/src/app/layout.tsx +1 -7
  337. package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +291 -0
  338. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +10 -1
  339. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +181 -134
  340. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +20 -0
  341. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -2
  342. package/.next/standalone/packages/ui/src/components/ui/accordion.tsx +58 -0
  343. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +172 -3
  344. package/.next/standalone/packages/ui/src/lib/specs/types.ts +44 -0
  345. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  346. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_buildManifest.js +11 -0
  347. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_clientMiddlewareManifest.json +1 -0
  348. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_ssgManifest.js +1 -0
  349. package/.next/static/chunks/1eb8283995f370c6.js +1 -0
  350. package/.next/static/chunks/336e8e8fc6b0fba8.js +1 -0
  351. package/.next/static/chunks/37a1236ed50645a6.js +1 -0
  352. package/.next/static/chunks/9d84ba08a41145ec.js +5 -0
  353. package/.next/static/chunks/c4b1faff3361a749.js +1 -0
  354. package/.next/{standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js → static/chunks/d7420d2a867e57b5.js} +1 -1
  355. package/.next/{standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js → static/chunks/dae403679aae65f4.js} +1 -1
  356. package/.next/static/chunks/efded9da04c960d8.js +1 -0
  357. package/.next/static/chunks/f382932f1a5d6359.js +10 -0
  358. package/.next/static/chunks/f43b6e43b4da1a32.css +1 -0
  359. package/.next/static/chunks/f6dd06e6d22d2d12.js +3 -0
  360. package/package.json +3 -2
  361. package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +0 -95
  362. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +0 -3
  363. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +0 -7
  364. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +0 -7
  365. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +0 -3
  366. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +0 -3
  367. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  368. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  369. package/.next/standalone/packages/ui/.next/static/chunks/a803d646487dfc2d.js +0 -3
  370. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  371. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +0 -5
  372. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  373. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +0 -1
  374. package/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  375. package/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  376. package/.next/static/chunks/a803d646487dfc2d.js +0 -3
  377. package/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  378. package/.next/static/chunks/b845813463167db0.js +0 -5
  379. package/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  380. package/.next/static/chunks/d784d84d5b880e48.js +0 -1
  381. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_buildManifest.js +0 -0
  382. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_clientMiddlewareManifest.json +0 -0
  383. /package/.next/standalone/packages/ui/.next/static/{RV93_WHoymRJ5886d_ry8 → -Mn9iD4O5f_khGd1P3kmB}/_ssgManifest.js +0 -0
  384. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
  385. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
  386. /package/.next/{static/RV93_WHoymRJ5886d_ry8 → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
@@ -0,0 +1,400 @@
1
+ ---
2
+ status: archived
3
+ created: '2025-11-05'
4
+ tags:
5
+ - architecture
6
+ - cli
7
+ - mcp
8
+ - redesign
9
+ - first-principles
10
+ - dx
11
+ - v0.3.0
12
+ priority: medium
13
+ related:
14
+ - 049-leanspec-first-principles
15
+ - 048-spec-complexity-analysis
16
+ - 043-official-launch-02
17
+ created_at: '2025-11-05T00:00:00Z'
18
+ updated_at: '2025-11-10T07:50:03.476Z'
19
+ transitions:
20
+ - status: archived
21
+ at: '2025-11-10T07:50:03.476Z'
22
+ ---
23
+
24
+ # Tool Redesign: First Principles Application
25
+
26
+ > **Status**: 📦 Archived · **Priority**: Medium · **Created**: 2025-11-05 · **Tags**: architecture, cli, mcp, redesign, first-principles, dx, v0.3.0
27
+
28
+ **Project**: lean-spec
29
+ **Team**: Core Development
30
+
31
+ ## Overview
32
+
33
+ **Purpose**: Redesign CLI and MCP tools by applying the 5 LeanSpec first principles from spec 049, creating tools that practice what we preach.
34
+
35
+ **Why Now**:
36
+ - We've established clear first principles (spec 049)
37
+ - Current tools evolved organically without systematic design
38
+ - Need to dogfood our own philosophy in the implementation
39
+ - Opportunity to showcase first-principles thinking in practice
40
+
41
+ **Key Insight**: Tools should embody the philosophy they enable. If LeanSpec optimizes for Context Economy and Signal-to-Noise, our tools must do the same.
42
+
43
+ **Result**: Redesigned CLI and MCP that demonstrate first principles through their interface design, implementation structure, and user experience.
44
+
45
+ ## Background
46
+
47
+ ### Current Tool State
48
+
49
+ **CLI (`lean-spec` command)**:
50
+ - 15+ commands with inconsistent patterns
51
+ - Some commands do too much (`stats` vs `stats --full`)
52
+ - Error messages vary in helpfulness
53
+ - No clear mental model for users
54
+
55
+ **MCP Server**:
56
+ - Good functionality but complex interface
57
+ - Some operations require multiple round-trips
58
+ - Not optimized for AI agent workflows
59
+ - Error handling inconsistent
60
+
61
+ ### The First Principles (from spec 049)
62
+
63
+ 1. **Context Economy** - Fit in working memory (human + AI)
64
+ 2. **Signal-to-Noise Maximization** - Every word must inform decisions
65
+ 3. **Progressive Disclosure** - Start simple, add complexity when pain is felt
66
+ 4. **Intent Over Implementation** - Capture why, not just how
67
+ 5. **Bridge the Gap** - Align human intent with machine execution
68
+
69
+ ### Design Constraints
70
+
71
+ **Human Usage** (CLI):
72
+ - Working memory: 7±2 items
73
+ - Need discoverable commands
74
+ - Want quick feedback loops
75
+ - Prefer consistent patterns
76
+
77
+ **AI Usage** (MCP):
78
+ - Token efficiency critical
79
+ - Clear success/failure states
80
+ - Batching for complex operations
81
+ - Structured, parseable output
82
+
83
+ ## Design
84
+
85
+ ### Core Philosophy: Tools as Philosophy Demo
86
+
87
+ **Principle**: Our tools should be the best example of LeanSpec thinking.
88
+
89
+ **Application**: Every command, parameter, and output designed through first-principles lens.
90
+
91
+ ### CLI Redesign: Progressive Command Structure
92
+
93
+ **Current Problem**: 15 commands with no clear organization
94
+ **Solution**: Group by mental model, progressive disclosure
95
+
96
+ #### Level 1: Discovery (Context Economy)
97
+ ```bash
98
+ lean-spec # Show overview + 3 most common commands
99
+ lean-spec help # Show all commands, grouped by purpose
100
+ lean-spec status # Project health at-a-glance
101
+ ```
102
+
103
+ #### Level 2: Core Operations (Signal-to-Noise)
104
+ ```bash
105
+ # View/Navigate (most common)
106
+ lean-spec list # Smart defaults, most relevant first
107
+ lean-spec view <spec> # Single spec, optimized display
108
+ lean-spec search <query> # Focused search with ranking
109
+
110
+ # Modify (when needed)
111
+ lean-spec create <name> # Guided creation with templates
112
+ lean-spec update <spec> # Status/metadata only
113
+ lean-spec edit <spec> # Open in editor
114
+
115
+ # Project (occasional)
116
+ lean-spec board # Kanban view
117
+ lean-spec stats # Key metrics only
118
+ ```
119
+
120
+ #### Level 3: Advanced (Progressive Disclosure)
121
+ ```bash
122
+ # Analysis (when pain is felt)
123
+ lean-spec validate # Check first principles adherence
124
+ lean-spec complexity # Detailed complexity analysis
125
+ lean-spec deps <spec> # Relationship analysis
126
+ lean-spec split <spec> # Guided spec splitting
127
+
128
+ # Power User (specific needs)
129
+ lean-spec stats --full # Comprehensive analytics
130
+ lean-spec export # Various formats
131
+ lean-spec init # Project setup
132
+ ```
133
+
134
+ **Key Changes**:
135
+ - Grouped by frequency of use (Context Economy)
136
+ - Each command has single clear purpose (Signal-to-Noise)
137
+ - Advanced features hidden until needed (Progressive Disclosure)
138
+ - Intent clear from command name (Intent Over Implementation)
139
+ - Same patterns work for humans and AI (Bridge the Gap)
140
+
141
+ ### MCP Redesign: Batch-First Architecture
142
+
143
+ **Current Problem**: Many small operations, chatty interface
144
+ **Solution**: Batch operations, rich context in responses
145
+
146
+ #### Core Operations
147
+ ```typescript
148
+ // Single spec operations (atomic)
149
+ view(specPath: string, options?: ViewOptions) -> SpecWithContext
150
+ update(specPath: string, changes: SpecChanges) -> SpecWithContext
151
+ create(name: string, template: SpecTemplate) -> SpecWithContext
152
+
153
+ // Multi-spec operations (batched)
154
+ list(filters?: Filters) -> SpecSummary[]
155
+ search(query: string, options?: SearchOptions) -> SearchResults
156
+ board() -> KanbanBoard
157
+
158
+ // Project operations (contextual)
159
+ stats(level?: 'basic' | 'full') -> ProjectStats
160
+ validate(specs?: string[]) -> ValidationReport
161
+ health() -> ProjectHealth
162
+ ```
163
+
164
+ **Key Changes**:
165
+ - Rich context in every response (Context Economy for AI)
166
+ - Structured errors with actionable guidance (Signal-to-Noise)
167
+ - Batch operations reduce round-trips (Progressive Disclosure)
168
+ - Clear success/failure states (Intent Over Implementation)
169
+ - Same data structure for CLI/MCP (Bridge the Gap)
170
+
171
+ ### Shared Principles: Output Design
172
+
173
+ #### Context Economy in Output
174
+ ```bash
175
+ # Bad: Information overload
176
+ lean-spec list
177
+ 049-leanspec-first-principles | planned | created: 2025-11-04 | priority: critical | tags: philosophy,meta,foundation,principles | related: 048-spec-complexity-analysis,043-official-launch-02,012-sub-spec-files | 1,042 lines (warning: >400) | last modified: 2 hours ago
178
+
179
+ # Good: Essential info, detail on demand
180
+ lean-spec list
181
+ 📋 049 leanspec-first-principles (critical)
182
+ ✅ 048 spec-complexity-analysis
183
+ 🔄 047 git-timestamps (in-progress)
184
+
185
+ lean-spec list --verbose # Detail when requested
186
+ lean-spec view 049 # Full context for specific spec
187
+ ```
188
+
189
+ #### Signal-to-Noise in Commands
190
+ ```bash
191
+ # Bad: Ambiguous what it does
192
+ lean-spec show 049 --with-meta --include-related --format=detailed
193
+
194
+ # Good: Clear intent, smart defaults
195
+ lean-spec view 049 # Show spec (formatted by default)
196
+ lean-spec view 049 --raw # Raw when needed (progressive disclosure)
197
+ lean-spec view 049 --json # Structured when needed
198
+ ```
199
+
200
+ ### Implementation Strategy
201
+
202
+ #### Phase 1: CLI Core Redesign
203
+ - Implement new command grouping
204
+ - Standardize output formats
205
+ - Add progressive disclosure patterns
206
+ - Maintain backward compatibility with deprecation warnings
207
+
208
+ #### Phase 2: MCP Optimization
209
+ - Implement batch operations
210
+ - Standardize response structures
211
+ - Add rich error context
212
+ - Optimize for AI workflows
213
+
214
+ #### Phase 3: Integration
215
+ - Ensure CLI and MCP use same core logic
216
+ - Unified configuration system
217
+ - Consistent behavior across interfaces
218
+ - Performance optimization
219
+
220
+ ## Plan
221
+
222
+ ### Phase 1: Foundation (Week 1-2)
223
+ **Goal**: New CLI command structure with backward compatibility
224
+
225
+ **Tasks**:
226
+ - [ ] Design new command hierarchy
227
+ - [ ] Implement core command groups (view/modify/project)
228
+ - [ ] Add progressive disclosure for advanced commands
229
+ - [ ] Create unified output formatting system
230
+ - [ ] Add deprecation warnings for old patterns
231
+ - [ ] Update help system to show grouped commands
232
+
233
+ **Success Criteria**:
234
+ - New users find commands intuitively
235
+ - Output fits in terminal without scrolling (Context Economy)
236
+ - Every command has single clear purpose (Signal-to-Noise)
237
+
238
+ ### Phase 2: MCP Optimization (Week 3-4)
239
+ **Goal**: Batch-first MCP with rich context
240
+
241
+ **Tasks**:
242
+ - [ ] Implement batch operations for multi-spec workflows
243
+ - [ ] Redesign response structures with full context
244
+ - [ ] Add structured error handling with actionable guidance
245
+ - [ ] Optimize for common AI agent patterns
246
+ - [ ] Create MCP performance benchmarks
247
+
248
+ **Success Criteria**:
249
+ - AI agents can accomplish tasks in fewer round-trips
250
+ - Rich context reduces need for additional queries
251
+ - Clear success/failure states for all operations
252
+
253
+ ### Phase 3: Integration & Polish (Week 5-6)
254
+ **Goal**: Unified experience across interfaces
255
+
256
+ **Tasks**:
257
+ - [ ] Ensure CLI and MCP use same underlying logic
258
+ - [ ] Create unified configuration system
259
+ - [ ] Add cross-interface consistency tests
260
+ - [ ] Performance optimization and profiling
261
+ - [ ] Documentation updates reflecting new philosophy
262
+
263
+ **Success Criteria**:
264
+ - Identical behavior between CLI and MCP for same operations
265
+ - Performance meets or exceeds current implementation
266
+ - Documentation demonstrates first principles in practice
267
+
268
+ ### Phase 4: Validation (Week 7)
269
+ **Goal**: Prove we practice what we preach
270
+
271
+ **Tasks**:
272
+ - [ ] User testing with both interfaces
273
+ - [ ] Measure adherence to first principles
274
+ - [ ] Gather feedback from AI agent usage
275
+ - [ ] Performance benchmarking
276
+ - [ ] Create case studies of improvements
277
+
278
+ **Success Criteria**:
279
+ - Tools demonstrate all 5 first principles
280
+ - Users report improved experience
281
+ - AI agents more efficient in workflows
282
+ - Implementation serves as reference for first-principles design
283
+
284
+ ## Test
285
+
286
+ ### First Principles Validation
287
+
288
+ **Context Economy** (Tools fit in working memory):
289
+ - [ ] CLI commands grouped into 3 clear levels
290
+ - [ ] MCP operations batchable to reduce context
291
+ - [ ] Output designed for human/AI consumption limits
292
+
293
+ **Signal-to-Noise Maximization** (Every element informs decisions):
294
+ - [ ] Each command has single clear purpose
295
+ - [ ] Output contains only actionable information
296
+ - [ ] Error messages guide toward resolution
297
+
298
+ **Progressive Disclosure** (Complexity when pain is felt):
299
+ - [ ] Basic commands handle 80% of use cases
300
+ - [ ] Advanced features available but not prominent
301
+ - [ ] `--verbose` and detailed modes for when needed
302
+
303
+ **Intent Over Implementation** (Why, not just how):
304
+ - [ ] Command names reflect user goals, not system operations
305
+ - [ ] Help text explains purpose, not just syntax
306
+ - [ ] Error messages explain what user was trying to achieve
307
+
308
+ **Bridge the Gap** (Human + AI alignment):
309
+ - [ ] Same operations available in CLI and MCP
310
+ - [ ] Consistent data structures across interfaces
311
+ - [ ] Output formats optimized for both human and machine parsing
312
+
313
+ ### User Experience Tests
314
+
315
+ **New User Journey**:
316
+ - [ ] Can discover main commands in <2 minutes
317
+ - [ ] Can complete basic workflow (create/view/update) without documentation
318
+ - [ ] Advanced features discoverable when needed
319
+
320
+ **AI Agent Efficiency**:
321
+ - [ ] Common workflows require fewer tool calls
322
+ - [ ] Batch operations reduce token usage
323
+ - [ ] Error recovery is automated where possible
324
+
325
+ **Performance Benchmarks**:
326
+ - [ ] CLI response time <100ms for common commands
327
+ - [ ] MCP operations complete in comparable time to current implementation
328
+ - [ ] Memory usage within acceptable bounds
329
+
330
+ ### Philosophy Demonstration
331
+
332
+ **Can we say our tools demonstrate LeanSpec?**:
333
+ - [ ] Tools embody the principles they enable
334
+ - [ ] Implementation structure follows first principles
335
+ - [ ] User experience optimized through first-principles lens
336
+ - [ ] Tools serve as reference implementation for philosophy
337
+
338
+ ## Success Metrics
339
+
340
+ **Quantitative**:
341
+ - CLI command discovery time: <2 minutes (vs current ~5 minutes)
342
+ - AI agent efficiency: 30% fewer tool calls for common workflows
343
+ - User task completion: 90% success rate without documentation
344
+ - Performance: Match or exceed current implementation
345
+
346
+ **Qualitative**:
347
+ - Tools feel "lean" and focused
348
+ - Clear mental model for command organization
349
+ - AI agents can use efficiently without extensive prompting
350
+ - Implementation demonstrates first principles in practice
351
+
352
+ **Philosophy Validation**:
353
+ - Tools practice what LeanSpec preaches
354
+ - Can point to tools as examples of first-principles thinking
355
+ - Users understand LeanSpec philosophy through tool usage
356
+ - Tools serve as template for future first-principles design
357
+
358
+ ## Notes
359
+
360
+ ### Why This Redesign Matters
361
+
362
+ This is foundational work because:
363
+ - **Credibility**: Tools must practice LeanSpec philosophy
364
+ - **Usability**: First principles create better user experiences
365
+ - **Teaching**: Tools become examples of the methodology
366
+ - **Scaling**: Systematic design enables growth without complexity creep
367
+
368
+ ### Key Design Decisions
369
+
370
+ **Progressive Command Hierarchy**: Instead of flat command list, organize by frequency and complexity
371
+ **Batch-First MCP**: Optimize for AI workflows while maintaining human usability
372
+ **Unified Output**: Same data structures work for both CLI and MCP consumption
373
+ **First-Principles Validation**: Every design decision justified by the 5 principles
374
+
375
+ ### Success Indicators
376
+
377
+ We'll know this succeeded when:
378
+ - New users intuitively discover commands
379
+ - AI agents accomplish tasks more efficiently
380
+ - Tools feel like natural extensions of LeanSpec thinking
381
+ - Implementation becomes reference for first-principles design
382
+
383
+ ---
384
+
385
+ **Remember**: We're not just building better tools. We're proving that LeanSpec philosophy creates superior user experiences when applied systematically.
386
+
387
+ ---
388
+
389
+ ## Archive Note
390
+
391
+ **Archived**: 2025-11-10
392
+
393
+ **Reason**: Spec was too broad and many of its proposed improvements have already been implemented incrementally through other specs:
394
+ - Spec 039: simplify-viewer-commands
395
+ - Spec 045: unified-dashboard
396
+ - Spec 046: stats-dashboard-refactor
397
+ - Spec 051: docs-system-prompt-principles
398
+ - Spec 049: leanspec-first-principles
399
+
400
+ **Key Learning**: The 7-week comprehensive redesign plan conflicted with LeanSpec's own "Progressive Disclosure" principle. Better to make incremental improvements as pain is felt rather than big-bang redesigns. The current CLI is already well-organized with grouped commands, and the MCP server functions effectively. This spec itself demonstrates why we should practice what we preach: start simple, add complexity when needed.
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,22764,e=>{"use strict";let s=(0,e.i(22436).default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);e.s(["List",()=>s],22764)},96026,e=>{"use strict";let s=(0,e.i(22436).default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>s],96026)},12603,e=>{"use strict";var s=e.i(90022),t=e.i(31231),a=e.i(65458);let r=t.forwardRef(({className:e,...t},r)=>(0,s.jsx)("div",{ref:r,className:(0,a.cn)("rounded-xl border border-gray-200 dark:border-gray-800 bg-card text-card-foreground shadow",e),...t}));r.displayName="Card";let d=t.forwardRef(({className:e,...t},r)=>(0,s.jsx)("div",{ref:r,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...t}));d.displayName="CardHeader";let l=t.forwardRef(({className:e,...t},r)=>(0,s.jsx)("div",{ref:r,className:(0,a.cn)("font-semibold leading-none tracking-tight",e),...t}));l.displayName="CardTitle";let i=t.forwardRef(({className:e,...t},r)=>(0,s.jsx)("div",{ref:r,className:(0,a.cn)("text-sm text-muted-foreground",e),...t}));i.displayName="CardDescription";let c=t.forwardRef(({className:e,...t},r)=>(0,s.jsx)("div",{ref:r,className:(0,a.cn)("p-6 pt-0",e),...t}));c.displayName="CardContent",t.forwardRef(({className:e,...t},r)=>(0,s.jsx)("div",{ref:r,className:(0,a.cn)("flex items-center p-6 pt-0",e),...t})).displayName="CardFooter",e.s(["Card",()=>r,"CardContent",()=>c,"CardDescription",()=>i,"CardHeader",()=>d,"CardTitle",()=>l])},38604,e=>{"use strict";let s=(0,e.i(22436).default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);e.s(["LayoutGrid",()=>s],38604)},34404,e=>{"use strict";var s=e.i(90022),t=e.i(87985),a=e.i(12603),r=e.i(60218),d=e.i(20315),l=e.i(96812),i=e.i(75364),c=e.i(40843),n=e.i(38604),x=e.i(22764),o=e.i(96026);let m=(0,e.i(22436).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);var h=e.i(71840),p=e.i(35179),u=e.i(62918),j=e.i(65458);function f({spec:e}){let a=(e.contentMd?(0,j.extractH1Title)(e.contentMd):null)||e.title||e.specName;return(0,s.jsx)(t.default,{href:`/specs/${e.specNumber}`,className:"block p-3 rounded-lg hover:bg-accent transition-colors",title:e.specName,children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[e.specNumber&&(0,s.jsxs)("span",{className:"text-sm font-mono text-muted-foreground shrink-0",children:["#",e.specNumber.toString().padStart(3,"0")]}),(0,s.jsx)("h4",{className:"text-sm font-medium truncate",children:a})]}),a!==e.specName&&(0,s.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:e.specName}),e.tags&&e.tags.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:e.tags.slice(0,3).map(e=>(0,s.jsx)(u.Badge,{variant:"secondary",className:"text-xs",children:e},e))})]}),(0,s.jsxs)("div",{className:"flex flex-col items-end gap-1 shrink-0",children:[e.status&&(0,s.jsx)(h.StatusBadge,{status:e.status,className:"text-xs scale-90"}),e.priority&&(0,s.jsx)(p.PriorityBadge,{priority:e.priority,className:"text-xs scale-90"})]})]})})}function g({spec:e,action:a,time:r}){let d=(e.contentMd?(0,j.extractH1Title)(e.contentMd):null)||e.title||e.specName;return(0,s.jsxs)("div",{className:"flex items-start gap-3 py-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 rounded-full bg-primary mt-2 shrink-0"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("p",{className:"text-sm",children:[(0,s.jsxs)(t.default,{href:`/specs/${e.specNumber}`,className:"font-medium hover:underline",title:e.specName,children:["#",e.specNumber?.toString().padStart(3,"0")," ",d]})," ",(0,s.jsx)("span",{className:"text-muted-foreground",children:a})]}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:function(e){if(!e)return"Unknown";let s=Math.floor((new Date().getTime()-e.getTime())/36e5),t=Math.floor(s/24);return s<1?"Just now":s<24?`${s} hour${s>1?"s":""} ago`:t<7?`${t} day${t>1?"s":""} ago`:t<30?`${Math.floor(t/7)} week${Math.floor(t/7)>1?"s":""} ago`:e.toLocaleDateString()}(r)})]})]})}function N({initialSpecs:e,initialStats:h}){let p=e.filter(e=>"in-progress"===e.status).sort((e,s)=>(s.specNumber||0)-(e.specNumber||0)).slice(0,5),u=e.filter(e=>"planned"===e.status).sort((e,s)=>(s.specNumber||0)-(e.specNumber||0)).slice(0,5),j=e.sort((e,s)=>e.createdAt?s.createdAt?s.createdAt.getTime()-e.createdAt.getTime():-1:1).slice(0,5),N=e.filter(e=>e.updatedAt).sort((e,s)=>e.updatedAt?s.updatedAt?s.updatedAt.getTime()-e.updatedAt.getTime():-1:1).slice(0,10),C=h.specsByStatus.find(e=>"complete"===e.status)?.count||0;return(0,s.jsx)("div",{className:"min-h-screen bg-background p-4 sm:p-8",children:(0,s.jsxs)("div",{className:"max-w-7xl mx-auto space-y-6 sm:space-y-8",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-3xl sm:text-4xl font-bold tracking-tight",children:"Dashboard"}),(0,s.jsx)("p",{className:"text-muted-foreground mt-2",children:"Project overview and recent activity"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4",children:[(0,s.jsxs)(a.Card,{className:"relative overflow-hidden",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-500/10 to-transparent"}),(0,s.jsx)(a.CardHeader,{className:"relative pb-3",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)(a.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Total Specs"}),(0,s.jsx)(d.FileText,{className:"h-5 w-5 text-blue-600"})]})}),(0,s.jsx)(a.CardContent,{className:"relative",children:(0,s.jsx)("div",{className:"text-3xl font-bold",children:h.totalSpecs})})]}),(0,s.jsxs)(a.Card,{className:"relative overflow-hidden",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-orange-500/10 to-transparent"}),(0,s.jsx)(a.CardHeader,{className:"relative pb-3",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)(a.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"In Progress"}),(0,s.jsx)(i.PlayCircle,{className:"h-5 w-5 text-orange-600"})]})}),(0,s.jsx)(a.CardContent,{className:"relative",children:(0,s.jsx)("div",{className:"text-3xl font-bold",children:h.specsByStatus.find(e=>"in-progress"===e.status)?.count||0})})]}),(0,s.jsxs)(a.Card,{className:"relative overflow-hidden",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-green-500/10 to-transparent"}),(0,s.jsx)(a.CardHeader,{className:"relative pb-3",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)(a.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Completed"}),(0,s.jsx)(l.CheckCircle2,{className:"h-5 w-5 text-green-600"})]})}),(0,s.jsxs)(a.CardContent,{className:"relative",children:[(0,s.jsx)("div",{className:"text-3xl font-bold",children:C}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground mt-1 flex items-center gap-1",children:[(0,s.jsx)(o.TrendingUp,{className:"h-3 w-3"}),h.completionRate.toFixed(1),"% completion rate"]})]})]}),(0,s.jsxs)(a.Card,{className:"relative overflow-hidden",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-purple-500/10 to-transparent"}),(0,s.jsx)(a.CardHeader,{className:"relative pb-3",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)(a.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Planned"}),(0,s.jsx)(c.Clock,{className:"h-5 w-5 text-purple-600"})]})}),(0,s.jsx)(a.CardContent,{className:"relative",children:(0,s.jsx)("div",{className:"text-3xl font-bold",children:h.specsByStatus.find(e=>"planned"===e.status)?.count||0})})]})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4 sm:gap-6",children:[(0,s.jsxs)(a.Card,{children:[(0,s.jsx)(a.CardHeader,{children:(0,s.jsxs)(a.CardTitle,{className:"text-lg flex items-center gap-2",children:[(0,s.jsx)(m,{className:"h-5 w-5 text-blue-600"}),"Recently Added"]})}),(0,s.jsx)(a.CardContent,{className:"space-y-1",children:j.slice(0,5).map(e=>(0,s.jsx)(f,{spec:e},e.id))})]}),(0,s.jsxs)(a.Card,{children:[(0,s.jsx)(a.CardHeader,{children:(0,s.jsxs)(a.CardTitle,{className:"text-lg flex items-center gap-2",children:[(0,s.jsx)(c.Clock,{className:"h-5 w-5 text-purple-600"}),"Planned (",u.length,")"]})}),(0,s.jsx)(a.CardContent,{className:"space-y-1",children:u.length>0?u.map(e=>(0,s.jsx)(f,{spec:e},e.id)):(0,s.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No planned specs"})})]}),(0,s.jsxs)(a.Card,{children:[(0,s.jsx)(a.CardHeader,{children:(0,s.jsxs)(a.CardTitle,{className:"text-lg flex items-center gap-2",children:[(0,s.jsx)(i.PlayCircle,{className:"h-5 w-5 text-orange-600"}),"In Progress (",p.length,")"]})}),(0,s.jsx)(a.CardContent,{className:"space-y-1",children:p.length>0?p.map(e=>(0,s.jsx)(f,{spec:e},e.id)):(0,s.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No specs in progress"})})]})]}),(0,s.jsxs)(a.Card,{children:[(0,s.jsx)(a.CardHeader,{children:(0,s.jsx)(a.CardTitle,{className:"text-lg",children:"Recent Activity"})}),(0,s.jsx)(a.CardContent,{children:(0,s.jsx)("div",{className:"border-l-2 border-muted pl-4 space-y-1",children:N.map(e=>(0,s.jsx)(g,{spec:e,action:"updated",time:e.updatedAt},e.id))})})]}),(0,s.jsxs)(a.Card,{children:[(0,s.jsx)(a.CardHeader,{children:(0,s.jsx)(a.CardTitle,{className:"text-lg",children:"Quick Actions"})}),(0,s.jsx)(a.CardContent,{children:(0,s.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,s.jsx)(r.Button,{asChild:!0,children:(0,s.jsxs)(t.default,{href:"/specs",children:[(0,s.jsx)(x.List,{className:"h-4 w-4 mr-2"}),"View All Specs"]})}),(0,s.jsx)(r.Button,{variant:"outline",asChild:!0,children:(0,s.jsxs)(t.default,{href:"/specs?view=board",children:[(0,s.jsx)(n.LayoutGrid,{className:"h-4 w-4 mr-2"}),"Board View"]})}),(0,s.jsx)(r.Button,{variant:"outline",asChild:!0,children:(0,s.jsxs)(t.default,{href:"/stats",children:[(0,s.jsx)(o.TrendingUp,{className:"h-4 w-4 mr-2"}),"View Stats"]})})]})})]})]})})}e.s(["DashboardClient",()=>N],34404)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,21411,e=>{"use strict";var t=e.i(31231),u=e.i(30827);function c(){let e=(0,u.useRouter)();return(0,t.useEffect)(()=>{e.replace("/specs?view=board")},[e]),null}e.s(["default",()=>c])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,329,e=>{"use strict";let t=(0,e.i(22436).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],329)},91967,79014,e=>{"use strict";function t(e,n,{checkForDefaultPrevented:r=!0}={}){return function(t){if(e?.(t),!1===r||!t.defaultPrevented)return n?.(t)}}"undefined"!=typeof window&&window.document&&window.document.createElement,e.s(["composeEventHandlers",()=>t],91967);var n=e.i(31231),r=e.i(90022);function o(e,t){let o=n.createContext(t),i=e=>{let{children:t,...i}=e,a=n.useMemo(()=>i,Object.values(i));return(0,r.jsx)(o.Provider,{value:a,children:t})};return i.displayName=e+"Provider",[i,function(r){let i=n.useContext(o);if(i)return i;if(void 0!==t)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}]}function i(e,t=[]){let o=[],a=()=>{let t=o.map(e=>n.createContext(e));return function(r){let o=r?.[e]||t;return n.useMemo(()=>({[`__scope${e}`]:{...r,[e]:o}}),[r,o])}};return a.scopeName=e,[function(t,i){let a=n.createContext(i),u=o.length;o=[...o,i];let c=t=>{let{scope:o,children:i,...c}=t,l=o?.[e]?.[u]||a,s=n.useMemo(()=>c,Object.values(c));return(0,r.jsx)(l.Provider,{value:s,children:i})};return c.displayName=t+"Provider",[c,function(r,o){let c=o?.[e]?.[u]||a,l=n.useContext(c);if(l)return l;if(void 0!==i)return i;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=r.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return n.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}(a,...t)]}e.s(["createContext",()=>o,"createContextScope",()=>i],79014)},15599,43988,e=>{"use strict";var t=e.i(31231),n=globalThis?.document?t.useLayoutEffect:()=>{};e.s(["useLayoutEffect",()=>n],43988);var r=t[" useId ".trim().toString()]||(()=>void 0),o=0;function i(e){let[i,a]=t.useState(r());return n(()=>{e||a(e=>e??String(o++))},[e]),e||(i?`radix-${i}`:"")}e.s(["useId",()=>i],15599)},93136,e=>{"use strict";var t=e.i(31231),n=e.i(43988);t[" useEffectEvent ".trim().toString()],t[" useInsertionEffect ".trim().toString()];var r=t[" useInsertionEffect ".trim().toString()]||n.useLayoutEffect;function o({prop:e,defaultProp:n,onChange:o=()=>{},caller:i}){let[a,u,c]=function({defaultProp:e,onChange:n}){let[o,i]=t.useState(e),a=t.useRef(o),u=t.useRef(n);return r(()=>{u.current=n},[n]),t.useEffect(()=>{a.current!==o&&(u.current?.(o),a.current=o)},[o,a]),[o,i,u]}({defaultProp:n,onChange:o}),l=void 0!==e,s=l?e:a;{let n=t.useRef(void 0!==e);t.useEffect(()=>{let e=n.current;if(e!==l){let t=l?"controlled":"uncontrolled";console.warn(`${i} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}n.current=l},[l,i])}return[s,t.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&c.current?.(n)}else u(t)},[l,e,u,c])]}Symbol("RADIX:SYNC_STATE"),e.s(["useControllableState",()=>o],93136)},55235,65489,22925,38657,e=>{"use strict";var t,n=e.i(31231),r=e.i(91967),o=e.i(95635),i=e.i(30406),a=e.i(90022);function u(e){var t;let r,o=(t=e,(r=n.forwardRef((e,t)=>{let{children:r,...o}=e;if(n.isValidElement(r)){var a;let e,u,c=(a=r,(u=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(u=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),l=function(e,t){let n={...t};for(let r in t){let o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...i}:"className"===r&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}(o,r.props);return r.type!==n.Fragment&&(l.ref=t?(0,i.composeRefs)(t,c):c),n.cloneElement(r,l)}return n.Children.count(r)>1?n.Children.only(null):null})).displayName=`${t}.SlotClone`,r),u=n.forwardRef((e,t)=>{let{children:r,...i}=e,u=n.Children.toArray(r),c=u.find(s);if(c){let e=c.props.children,r=u.map(t=>t!==c?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,a.jsx)(o,{...i,ref:t,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,a.jsx)(o,{...i,ref:t,children:r})});return u.displayName=`${e}.Slot`,u}var c=Symbol("radix.slottable");function l(e){let t=({children:e})=>(0,a.jsx)(a.Fragment,{children:e});return t.displayName=`${e}.Slottable`,t.__radixId=c,t}function s(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===c}e.s(["createSlot",()=>u,"createSlottable",()=>l],65489);var d=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let r=u(`Primitive.${t}`),o=n.forwardRef((e,n)=>{let{asChild:o,...i}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,a.jsx)(o?r:t,{...i,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function f(e,t){e&&o.flushSync(()=>e.dispatchEvent(t))}function v(e){let t=n.useRef(e);return n.useEffect(()=>{t.current=e}),n.useMemo(()=>(...e)=>t.current?.(...e),[])}e.s(["Primitive",()=>d,"dispatchDiscreteCustomEvent",()=>f],22925),e.s(["useCallbackRef",()=>v],38657);var p="dismissableLayer.update",m=n.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),h=n.forwardRef((e,o)=>{let{disableOutsidePointerEvents:u=!1,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:s,onInteractOutside:f,onDismiss:h,...E}=e,b=n.useContext(m),[w,C]=n.useState(null),S=w?.ownerDocument??globalThis?.document,[,R]=n.useState({}),x=(0,i.useComposedRefs)(o,e=>C(e)),L=Array.from(b.layers),[P]=[...b.layersWithOutsidePointerEventsDisabled].slice(-1),N=L.indexOf(P),k=w?L.indexOf(w):-1,T=b.layersWithOutsidePointerEventsDisabled.size>0,A=k>=N,O=function(e,t=globalThis?.document){let r=v(e),o=n.useRef(!1),i=n.useRef(()=>{});return n.useEffect(()=>{let e=e=>{if(e.target&&!o.current){let n=function(){g("dismissableLayer.pointerDownOutside",r,o,{discrete:!0})},o={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",i.current),i.current=n,t.addEventListener("click",i.current,{once:!0})):n()}else t.removeEventListener("click",i.current);o.current=!1},n=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(n),t.removeEventListener("pointerdown",e),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>o.current=!0}}(e=>{let t=e.target,n=[...b.branches].some(e=>e.contains(t));A&&!n&&(l?.(e),f?.(e),e.defaultPrevented||h?.())},S),M=function(e,t=globalThis?.document){let r=v(e),o=n.useRef(!1);return n.useEffect(()=>{let e=e=>{e.target&&!o.current&&g("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,r]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}(e=>{let t=e.target;![...b.branches].some(e=>e.contains(t))&&(s?.(e),f?.(e),e.defaultPrevented||h?.())},S);return!function(e,t=globalThis?.document){let r=v(e);n.useEffect(()=>{let e=e=>{"Escape"===e.key&&r(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[r,t])}(e=>{k===b.layers.size-1&&(c?.(e),!e.defaultPrevented&&h&&(e.preventDefault(),h()))},S),n.useEffect(()=>{if(w)return u&&(0===b.layersWithOutsidePointerEventsDisabled.size&&(t=S.body.style.pointerEvents,S.body.style.pointerEvents="none"),b.layersWithOutsidePointerEventsDisabled.add(w)),b.layers.add(w),y(),()=>{u&&1===b.layersWithOutsidePointerEventsDisabled.size&&(S.body.style.pointerEvents=t)}},[w,S,u,b]),n.useEffect(()=>()=>{w&&(b.layers.delete(w),b.layersWithOutsidePointerEventsDisabled.delete(w),y())},[w,b]),n.useEffect(()=>{let e=()=>R({});return document.addEventListener(p,e),()=>document.removeEventListener(p,e)},[]),(0,a.jsx)(d.div,{...E,ref:x,style:{pointerEvents:T?A?"auto":"none":void 0,...e.style},onFocusCapture:(0,r.composeEventHandlers)(e.onFocusCapture,M.onFocusCapture),onBlurCapture:(0,r.composeEventHandlers)(e.onBlurCapture,M.onBlurCapture),onPointerDownCapture:(0,r.composeEventHandlers)(e.onPointerDownCapture,O.onPointerDownCapture)})});function y(){let e=new CustomEvent(p);document.dispatchEvent(e)}function g(e,t,n,{discrete:r}){let o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?f(o,i):o.dispatchEvent(i)}h.displayName="DismissableLayer",n.forwardRef((e,t)=>{let r=n.useContext(m),o=n.useRef(null),u=(0,i.useComposedRefs)(t,o);return n.useEffect(()=>{let e=o.current;if(e)return r.branches.add(e),()=>{r.branches.delete(e)}},[r.branches]),(0,a.jsx)(d.div,{...e,ref:u})}).displayName="DismissableLayerBranch",e.s(["DismissableLayer",()=>h],55235)},31007,e=>{"use strict";let t;var n=e.i(31231),r=e.i(30406),o=e.i(22925),i=e.i(38657),a=e.i(90022),u="focusScope.autoFocusOnMount",c="focusScope.autoFocusOnUnmount",l={bubbles:!1,cancelable:!0},s=n.forwardRef((e,t)=>{let{loop:s=!1,trapped:m=!1,onMountAutoFocus:h,onUnmountAutoFocus:y,...g}=e,[E,b]=n.useState(null),w=(0,i.useCallbackRef)(h),C=(0,i.useCallbackRef)(y),S=n.useRef(null),R=(0,r.useComposedRefs)(t,e=>b(e)),x=n.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;n.useEffect(()=>{if(m){let e=function(e){if(x.paused||!E)return;let t=e.target;E.contains(t)?S.current=t:v(S.current,{select:!0})},t=function(e){if(x.paused||!E)return;let t=e.relatedTarget;null!==t&&(E.contains(t)||v(S.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&v(E)});return E&&n.observe(E,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[m,E,x.paused]),n.useEffect(()=>{if(E){p.add(x);let e=document.activeElement;if(!E.contains(e)){let t=new CustomEvent(u,l);E.addEventListener(u,w),E.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(v(r,{select:t}),document.activeElement!==n)return}(d(E).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&v(E))}return()=>{E.removeEventListener(u,w),setTimeout(()=>{let t=new CustomEvent(c,l);E.addEventListener(c,C),E.dispatchEvent(t),t.defaultPrevented||v(e??document.body,{select:!0}),E.removeEventListener(c,C),p.remove(x)},0)}}},[E,w,C,x]);let L=n.useCallback(e=>{if(!s&&!m||x.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){var r;let t,o=e.currentTarget,[i,a]=[f(t=d(r=o),r),f(t.reverse(),r)];i&&a?e.shiftKey||n!==a?e.shiftKey&&n===i&&(e.preventDefault(),s&&v(a,{select:!0})):(e.preventDefault(),s&&v(i,{select:!0})):n===o&&e.preventDefault()}},[s,m,x.paused]);return(0,a.jsx)(o.Primitive.div,{tabIndex:-1,...g,ref:R,onKeyDown:L})});function d(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function f(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function v(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}s.displayName="FocusScope";var p=(t=[],{add(e){let n=t[0];e!==n&&n?.pause(),(t=m(t,e)).unshift(e)},remove(e){t=m(t,e),t[0]?.resume()}});function m(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}e.s(["FocusScope",()=>s])},14260,e=>{"use strict";var t=e.i(31231),n=e.i(95635),r=e.i(22925),o=e.i(43988),i=e.i(90022),a=t.forwardRef((e,a)=>{let{container:u,...c}=e,[l,s]=t.useState(!1);(0,o.useLayoutEffect)(()=>s(!0),[]);let d=u||l&&globalThis?.document?.body;return d?n.default.createPortal((0,i.jsx)(r.Primitive.div,{...c,ref:a}),d):null});a.displayName="Portal",e.s(["Portal",()=>a])},54440,e=>{"use strict";var t=e.i(31231),n=0;function r(){t.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??o()),document.body.insertAdjacentElement("beforeend",e[1]??o()),n++,()=>{1===n&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),n--}},[])}function o(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}e.s(["useFocusGuards",()=>r])},97496,e=>{"use strict";var t,n,r,o,i,a,u,c=function(){return(c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function l(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var s=("function"==typeof SuppressedError&&SuppressedError,e.i(31231)),d="right-scroll-bar-position",f="width-before-scroll-bar";function v(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var p="undefined"!=typeof window?s.useLayoutEffect:s.useEffect,m=new WeakMap,h=(void 0===t&&(t={}),(void 0===n&&(n=function(e){return e}),r=[],o=!1,i={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var t=n(e,o);return r.push(t),function(){r=r.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){o=!0;var t=[];if(r.length){var n=r;r=[],n.forEach(e),t=r}var i=function(){var n=t;t=[],n.forEach(e)},a=function(){return Promise.resolve().then(i)};a(),r={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),r}}}}).options=c({async:!0,ssr:!1},t),i),y=function(){},g=s.forwardRef(function(e,t){var n,r,o,i,a=s.useRef(null),u=s.useState({onScrollCapture:y,onWheelCapture:y,onTouchMoveCapture:y}),d=u[0],f=u[1],g=e.forwardProps,E=e.children,b=e.className,w=e.removeScrollBar,C=e.enabled,S=e.shards,R=e.sideCar,x=e.noRelative,L=e.noIsolation,P=e.inert,N=e.allowPinchZoom,k=e.as,T=e.gapMode,A=l(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),O=(n=[a,t],r=function(e){return n.forEach(function(t){return v(t,e)})},(o=(0,s.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,i=o.facade,p(function(){var e=m.get(i);if(e){var t=new Set(e),r=new Set(n),o=i.current;t.forEach(function(e){r.has(e)||v(e,null)}),r.forEach(function(e){t.has(e)||v(e,o)})}m.set(i,n)},[n]),i),M=c(c({},A),d);return s.createElement(s.Fragment,null,C&&s.createElement(R,{sideCar:h,removeScrollBar:w,shards:S,noRelative:x,noIsolation:L,inert:P,setCallbacks:f,allowPinchZoom:!!N,lockRef:a,gapMode:T}),g?s.cloneElement(s.Children.only(E),c(c({},M),{ref:O})):s.createElement(void 0===k?"div":k,c({},M,{className:b,ref:O}),E))});g.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},g.classNames={fullWidth:f,zeroRight:d};var E=function(e){var t=e.sideCar,n=l(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return s.createElement(r,c({},n))};E.isSideCarExport=!0;var b=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=u||("undefined"!=typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},w=function(){var e=b();return function(t,n){s.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},C=function(){var e=w();return function(t){return e(t.styles,t.dynamic),null}},S={left:0,top:0,right:0,gap:0},R=function(e){return parseInt(e||"",10)||0},x=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[R(n),R(r),R(o)]},L=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return S;var t=x(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},P=C(),N="data-scroll-locked",k=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,u=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(u,"px ").concat(r,";\n }\n body[").concat(N,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(i,"px;\n padding-right: ").concat(a,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(u,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(d," {\n right: ").concat(u,"px ").concat(r,";\n }\n \n .").concat(f," {\n margin-right: ").concat(u,"px ").concat(r,";\n }\n \n .").concat(d," .").concat(d," {\n right: 0 ").concat(r,";\n }\n \n .").concat(f," .").concat(f," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(N,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(u,"px;\n }\n")},T=function(){var e=parseInt(document.body.getAttribute(N)||"0",10);return isFinite(e)?e:0},A=function(){s.useEffect(function(){return document.body.setAttribute(N,(T()+1).toString()),function(){var e=T()-1;e<=0?document.body.removeAttribute(N):document.body.setAttribute(N,e.toString())}},[])},O=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;A();var i=s.useMemo(function(){return L(o)},[o]);return s.createElement(P,{styles:k(i,!t,o,n?"":"!important")})},M=!1;if("undefined"!=typeof window)try{var D=Object.defineProperty({},"passive",{get:function(){return M=!0,!0}});window.addEventListener("test",D,D),window.removeEventListener("test",D,D)}catch(e){M=!1}var j=!!M&&{passive:!1},_=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},W=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),I(e,r)){var o=F(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},I=function(e,t){return"v"===e?_(t,"overflowY"):_(t,"overflowX")},F=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},B=function(e,t,n,r,o){var i,a=(i=window.getComputedStyle(t).direction,"h"===e&&"rtl"===i?-1:1),u=a*r,c=n.target,l=t.contains(c),s=!1,d=u>0,f=0,v=0;do{if(!c)break;var p=F(e,c),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&I(e,c)&&(f+=h,v+=m);var y=c.parentNode;c=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!l&&c!==document.body||l&&(t.contains(c)||t===c))return d&&(o&&1>Math.abs(f)||!o&&u>f)?s=!0:!d&&(o&&1>Math.abs(v)||!o&&-u>v)&&(s=!0),s},$=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},K=function(e){return[e.deltaX,e.deltaY]},H=function(e){return e&&"current"in e?e.current:e},X=0,Y=[];let z=(a=function(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),o=s.useState(X++)[0],i=s.useState(C)[0],a=s.useRef(e);s.useEffect(function(){a.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(H),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var u=s.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!a.current.allowPinchZoom;var o,i=$(e),u=n.current,c="deltaX"in e?e.deltaX:u[0]-i[0],l="deltaY"in e?e.deltaY:u[1]-i[1],s=e.target,d=Math.abs(c)>Math.abs(l)?"h":"v";if("touches"in e&&"h"===d&&"range"===s.type)return!1;var f=W(d,s);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=W(d,s)),!f)return!1;if(!r.current&&"changedTouches"in e&&(c||l)&&(r.current=o),!o)return!0;var v=r.current||o;return B(v,t,e,"h"===v?c:l,!0)},[]),c=s.useCallback(function(e){if(Y.length&&Y[Y.length-1]===i){var n="deltaY"in e?K(e):$(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(a.current.shards||[]).map(H).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?u(e,o[0]):!a.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),l=s.useCallback(function(e,n,r,o){var i={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(i),setTimeout(function(){t.current=t.current.filter(function(e){return e!==i})},1)},[]),d=s.useCallback(function(e){n.current=$(e),r.current=void 0},[]),f=s.useCallback(function(t){l(t.type,K(t),t.target,u(t,e.lockRef.current))},[]),v=s.useCallback(function(t){l(t.type,$(t),t.target,u(t,e.lockRef.current))},[]);s.useEffect(function(){return Y.push(i),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:v}),document.addEventListener("wheel",c,j),document.addEventListener("touchmove",c,j),document.addEventListener("touchstart",d,j),function(){Y=Y.filter(function(e){return e!==i}),document.removeEventListener("wheel",c,j),document.removeEventListener("touchmove",c,j),document.removeEventListener("touchstart",d,j)}},[]);var p=e.removeScrollBar,m=e.inert;return s.createElement(s.Fragment,null,m?s.createElement(i,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?s.createElement(O,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},h.useMedium(a),E);var U=s.forwardRef(function(e,t){return s.createElement(g,c({},e,{ref:t,sideCar:z}))});U.classNames=g.classNames,e.s(["RemoveScroll",0,U],97496)},73772,e=>{"use strict";var t=new WeakMap,n=new WeakMap,r={},o=0,i=function(e){return e&&(e.host||i(e.parentNode))},a=function(e,a,u,c){var l=(Array.isArray(e)?e:[e]).map(function(e){if(a.contains(e))return e;var t=i(e);return t&&a.contains(t)?t:(console.error("aria-hidden",e,"in not contained inside",a,". Doing nothing"),null)}).filter(function(e){return!!e});r[u]||(r[u]=new WeakMap);var s=r[u],d=[],f=new Set,v=new Set(l),p=function(e){!e||f.has(e)||(f.add(e),p(e.parentNode))};l.forEach(p);var m=function(e){!e||v.has(e)||Array.prototype.forEach.call(e.children,function(e){if(f.has(e))m(e);else try{var r=e.getAttribute(c),o=null!==r&&"false"!==r,i=(t.get(e)||0)+1,a=(s.get(e)||0)+1;t.set(e,i),s.set(e,a),d.push(e),1===i&&o&&n.set(e,!0),1===a&&e.setAttribute(u,"true"),o||e.setAttribute(c,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return m(a),f.clear(),o++,function(){d.forEach(function(e){var r=t.get(e)-1,o=s.get(e)-1;t.set(e,r),s.set(e,o),r||(n.has(e)||e.removeAttribute(c),n.delete(e)),o||e.removeAttribute(u)}),--o||(t=new WeakMap,t=new WeakMap,n=new WeakMap,r={})}},u=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),a(r,o,n,"aria-hidden")):function(){return null}};e.s(["hideOthers",()=>u])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,65458,7284,e=>{"use strict";function r(){for(var e,r,o=0,t="",l=arguments.length;o<l;o++)(e=arguments[o])&&(r=function e(r){var o,t,l="";if("string"==typeof r||"number"==typeof r)l+=r;else if("object"==typeof r)if(Array.isArray(r)){var a=r.length;for(o=0;o<a;o++)r[o]&&(t=e(r[o]))&&(l&&(l+=" "),l+=t)}else for(t in r)r[t]&&(l&&(l+=" "),l+=t);return l}(e))&&(t&&(t+=" "),t+=r);return t}e.s(["clsx",()=>r],7284);let o=(e=new Map,r=null,o)=>({nextPart:e,validators:r,classGroupId:o}),t=[],l=(e,r,o)=>{if(0==e.length-r)return o.classGroupId;let t=e[r],a=o.nextPart.get(t);if(a){let o=l(e,r+1,a);if(o)return o}let n=o.validators;if(null===n)return;let s=0===r?e.join("-"):e.slice(r).join("-"),i=n.length;for(let e=0;e<i;e++){let r=n[e];if(r.validator(s))return r.classGroupId}},a=(e,r)=>{let t=o();for(let o in e)n(e[o],t,o,r);return t},n=(e,r,o,t)=>{let l=e.length;for(let a=0;a<l;a++)s(e[a],r,o,t)},s=(e,r,o,t)=>{"string"==typeof e?i(e,r,o):"function"==typeof e?d(e,r,o,t):c(e,r,o,t)},i=(e,r,o)=>{(""===e?r:m(r,e)).classGroupId=o},d=(e,r,o,t)=>{p(e)?n(e(t),r,o,t):(null===r.validators&&(r.validators=[]),r.validators.push({classGroupId:o,validator:e}))},c=(e,r,o,t)=>{let l=Object.entries(e),a=l.length;for(let e=0;e<a;e++){let[a,s]=l[e];n(s,m(r,a),o,t)}},m=(e,r)=>{let t=e,l=r.split("-"),a=l.length;for(let e=0;e<a;e++){let r=l[e],a=t.nextPart.get(r);a||(a=o(),t.nextPart.set(r,a)),t=a}return t},p=e=>"isThemeGetter"in e&&!0===e.isThemeGetter,u=[],b=(e,r,o,t,l)=>({modifiers:e,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:l}),f=/\s+/,g=e=>{let r;if("string"==typeof e)return e;let o="";for(let t=0;t<e.length;t++)e[t]&&(r=g(e[t]))&&(o&&(o+=" "),o+=r);return o},h=[],k=e=>{let r=r=>r[e]||h;return r.isThemeGetter=!0,r},x=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,w=/^\((?:(\w[\w-]*):)?(.+)\)$/i,y=/^\d+\/\d+$/,v=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,z=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,j=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,G=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,C=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,O=e=>y.test(e),N=e=>!!e&&!Number.isNaN(Number(e)),T=e=>!!e&&Number.isInteger(Number(e)),$=e=>e.endsWith("%")&&N(e.slice(0,-1)),I=e=>v.test(e),M=()=>!0,W=e=>z.test(e)&&!j.test(e),A=()=>!1,P=e=>G.test(e),S=e=>C.test(e),q=e=>!K(e)&&!D(e),B=e=>Y(e,eo,A),K=e=>x.test(e),R=e=>Y(e,et,W),U=e=>Y(e,el,N),_=e=>Y(e,ee,A),E=e=>Y(e,er,S),H=e=>Y(e,en,P),D=e=>w.test(e),F=e=>Z(e,et),J=e=>Z(e,ea),L=e=>Z(e,ee),Q=e=>Z(e,eo),V=e=>Z(e,er),X=e=>Z(e,en,!0),Y=(e,r,o)=>{let t=x.exec(e);return!!t&&(t[1]?r(t[1]):o(t[2]))},Z=(e,r,o=!1)=>{let t=w.exec(e);return!!t&&(t[1]?r(t[1]):o)},ee=e=>"position"===e||"percentage"===e,er=e=>"image"===e||"url"===e,eo=e=>"length"===e||"size"===e||"bg-size"===e,et=e=>"length"===e,el=e=>"number"===e,ea=e=>"family-name"===e,en=e=>"shadow"===e,es=((e,...r)=>{let o,n,s,i,d=e=>{let r=n(e);if(r)return r;let t=((e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:l,sortModifiers:a}=r,n=[],s=e.trim().split(f),i="";for(let e=s.length-1;e>=0;e-=1){let r=s[e],{isExternal:d,modifiers:c,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:u}=o(r);if(d){i=r+(i.length>0?" "+i:i);continue}let b=!!u,f=t(b?p.substring(0,u):p);if(!f){if(!b||!(f=t(p))){i=r+(i.length>0?" "+i:i);continue}b=!1}let g=0===c.length?"":1===c.length?c[0]:a(c).join(":"),h=m?g+"!":g,k=h+f;if(n.indexOf(k)>-1)continue;n.push(k);let x=l(f,b);for(let e=0;e<x.length;++e){let r=x[e];n.push(h+r)}i=r+(i.length>0?" "+i:i)}return i})(e,o);return s(e,t),t};return i=c=>{var m;let p;return n=(o={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null),l=(l,a)=>{o[l]=a,++r>e&&(r=0,t=o,o=Object.create(null))};return{get(e){let r=o[e];return void 0!==r?r:void 0!==(r=t[e])?(l(e,r),r):void 0},set(e,r){e in o?o[e]=r:l(e,r)}}})((m=r.reduce((e,r)=>r(e),e())).cacheSize),parseClassName:(e=>{let{prefix:r,experimentalParseClassName:o}=e,t=e=>{let r,o=[],t=0,l=0,a=0,n=e.length;for(let s=0;s<n;s++){let n=e[s];if(0===t&&0===l){if(":"===n){o.push(e.slice(a,s)),a=s+1;continue}if("/"===n){r=s;continue}}"["===n?t++:"]"===n?t--:"("===n?l++:")"===n&&l--}let s=0===o.length?e:e.slice(a),i=s,d=!1;return s.endsWith("!")?(i=s.slice(0,-1),d=!0):s.startsWith("!")&&(i=s.slice(1),d=!0),b(o,d,i,r&&r>a?r-a:void 0)};if(r){let e=r+":",o=t;t=r=>r.startsWith(e)?o(r.slice(e.length)):b(u,!1,r,void 0,!0)}if(o){let e=t;t=r=>o({className:r,parseClassName:e})}return t})(m),sortModifiers:(p=new Map,m.orderSensitiveModifiers.forEach((e,r)=>{p.set(e,1e6+r)}),e=>{let r=[],o=[];for(let t=0;t<e.length;t++){let l=e[t],a="["===l[0],n=p.has(l);a||n?(o.length>0&&(o.sort(),r.push(...o),o=[]),r.push(l)):o.push(l)}return o.length>0&&(o.sort(),r.push(...o)),r}),...(e=>{let r=(e=>{let{theme:r,classGroups:o}=e;return a(o,r)})(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var o;let r,t,l;return -1===(o=e).slice(1,-1).indexOf(":")?void 0:(t=(r=o.slice(1,-1)).indexOf(":"),(l=r.slice(0,t))?"arbitrary.."+l:void 0)}let t=e.split("-"),a=+(""===t[0]&&t.length>1);return l(t,a,r)},getConflictingClassGroupIds:(e,r)=>{if(r){let r=n[e],l=o[e];if(r){if(l){let e=Array(l.length+r.length);for(let r=0;r<l.length;r++)e[r]=l[r];for(let o=0;o<r.length;o++)e[l.length+o]=r[o];return e}return r}return l||t}return o[e]||t}}})(m)}).cache.get,s=o.cache.set,i=d,d(c)},(...e)=>i(((...e)=>{let r,o,t=0,l="";for(;t<e.length;)(r=e[t++])&&(o=g(r))&&(l&&(l+=" "),l+=o);return l})(...e))})(()=>{let e=k("color"),r=k("font"),o=k("text"),t=k("font-weight"),l=k("tracking"),a=k("leading"),n=k("breakpoint"),s=k("container"),i=k("spacing"),d=k("radius"),c=k("shadow"),m=k("inset-shadow"),p=k("text-shadow"),u=k("drop-shadow"),b=k("blur"),f=k("perspective"),g=k("aspect"),h=k("ease"),x=k("animate"),w=()=>["auto","avoid","all","avoid-page","page","left","right","column"],y=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],v=()=>[...y(),D,K],z=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],G=()=>[D,K,i],C=()=>[O,"full","auto",...G()],W=()=>[T,"none","subgrid",D,K],A=()=>["auto",{span:["full",T,D,K]},T,D,K],P=()=>[T,"auto",D,K],S=()=>["auto","min","max","fr",D,K],Y=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Z=()=>["start","end","center","stretch","center-safe","end-safe"],ee=()=>["auto",...G()],er=()=>[O,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...G()],eo=()=>[e,D,K],et=()=>[...y(),L,_,{position:[D,K]}],el=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ea=()=>["auto","cover","contain",Q,B,{size:[D,K]}],en=()=>[$,F,R],es=()=>["","none","full",d,D,K],ei=()=>["",N,F,R],ed=()=>["solid","dashed","dotted","double"],ec=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],em=()=>[N,$,L,_],ep=()=>["","none",b,D,K],eu=()=>["none",N,D,K],eb=()=>["none",N,D,K],ef=()=>[N,D,K],eg=()=>[O,"full",...G()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[I],breakpoint:[I],color:[M],container:[I],"drop-shadow":[I],ease:["in","out","in-out"],font:[q],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[I],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[I],shadow:[I],spacing:["px",N],text:[I],"text-shadow":[I],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",O,K,D,g]}],container:["container"],columns:[{columns:[N,K,D,s]}],"break-after":[{"break-after":w()}],"break-before":[{"break-before":w()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:v()}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{start:C()}],end:[{end:C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:["visible","invisible","collapse"],z:[{z:[T,"auto",D,K]}],basis:[{basis:[O,"full","auto",s,...G()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[N,O,"auto","initial","none",K]}],grow:[{grow:["",N,D,K]}],shrink:[{shrink:["",N,D,K]}],order:[{order:[T,"first","last","none",D,K]}],"grid-cols":[{"grid-cols":W()}],"col-start-end":[{col:A()}],"col-start":[{"col-start":P()}],"col-end":[{"col-end":P()}],"grid-rows":[{"grid-rows":W()}],"row-start-end":[{row:A()}],"row-start":[{"row-start":P()}],"row-end":[{"row-end":P()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":S()}],"auto-rows":[{"auto-rows":S()}],gap:[{gap:G()}],"gap-x":[{"gap-x":G()}],"gap-y":[{"gap-y":G()}],"justify-content":[{justify:[...Y(),"normal"]}],"justify-items":[{"justify-items":[...Z(),"normal"]}],"justify-self":[{"justify-self":["auto",...Z()]}],"align-content":[{content:["normal",...Y()]}],"align-items":[{items:[...Z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Z(),{baseline:["","last"]}]}],"place-content":[{"place-content":Y()}],"place-items":[{"place-items":[...Z(),"baseline"]}],"place-self":[{"place-self":["auto",...Z()]}],p:[{p:G()}],px:[{px:G()}],py:[{py:G()}],ps:[{ps:G()}],pe:[{pe:G()}],pt:[{pt:G()}],pr:[{pr:G()}],pb:[{pb:G()}],pl:[{pl:G()}],m:[{m:ee()}],mx:[{mx:ee()}],my:[{my:ee()}],ms:[{ms:ee()}],me:[{me:ee()}],mt:[{mt:ee()}],mr:[{mr:ee()}],mb:[{mb:ee()}],ml:[{ml:ee()}],"space-x":[{"space-x":G()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":G()}],"space-y-reverse":["space-y-reverse"],size:[{size:er()}],w:[{w:[s,"screen",...er()]}],"min-w":[{"min-w":[s,"screen","none",...er()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[n]},...er()]}],h:[{h:["screen","lh",...er()]}],"min-h":[{"min-h":["screen","lh","none",...er()]}],"max-h":[{"max-h":["screen","lh",...er()]}],"font-size":[{text:["base",o,F,R]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,D,U]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",$,K]}],"font-family":[{font:[J,K,r]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,D,K]}],"line-clamp":[{"line-clamp":[N,"none",D,U]}],leading:[{leading:[a,...G()]}],"list-image":[{"list-image":["none",D,K]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",D,K]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:eo()}],"text-color":[{text:eo()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ed(),"wavy"]}],"text-decoration-thickness":[{decoration:[N,"from-font","auto",D,R]}],"text-decoration-color":[{decoration:eo()}],"underline-offset":[{"underline-offset":[N,"auto",D,K]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:G()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",D,K]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",D,K]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:et()}],"bg-repeat":[{bg:el()}],"bg-size":[{bg:ea()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},T,D,K],radial:["",D,K],conic:[T,D,K]},V,E]}],"bg-color":[{bg:eo()}],"gradient-from-pos":[{from:en()}],"gradient-via-pos":[{via:en()}],"gradient-to-pos":[{to:en()}],"gradient-from":[{from:eo()}],"gradient-via":[{via:eo()}],"gradient-to":[{to:eo()}],rounded:[{rounded:es()}],"rounded-s":[{"rounded-s":es()}],"rounded-e":[{"rounded-e":es()}],"rounded-t":[{"rounded-t":es()}],"rounded-r":[{"rounded-r":es()}],"rounded-b":[{"rounded-b":es()}],"rounded-l":[{"rounded-l":es()}],"rounded-ss":[{"rounded-ss":es()}],"rounded-se":[{"rounded-se":es()}],"rounded-ee":[{"rounded-ee":es()}],"rounded-es":[{"rounded-es":es()}],"rounded-tl":[{"rounded-tl":es()}],"rounded-tr":[{"rounded-tr":es()}],"rounded-br":[{"rounded-br":es()}],"rounded-bl":[{"rounded-bl":es()}],"border-w":[{border:ei()}],"border-w-x":[{"border-x":ei()}],"border-w-y":[{"border-y":ei()}],"border-w-s":[{"border-s":ei()}],"border-w-e":[{"border-e":ei()}],"border-w-t":[{"border-t":ei()}],"border-w-r":[{"border-r":ei()}],"border-w-b":[{"border-b":ei()}],"border-w-l":[{"border-l":ei()}],"divide-x":[{"divide-x":ei()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ei()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ed(),"hidden","none"]}],"divide-style":[{divide:[...ed(),"hidden","none"]}],"border-color":[{border:eo()}],"border-color-x":[{"border-x":eo()}],"border-color-y":[{"border-y":eo()}],"border-color-s":[{"border-s":eo()}],"border-color-e":[{"border-e":eo()}],"border-color-t":[{"border-t":eo()}],"border-color-r":[{"border-r":eo()}],"border-color-b":[{"border-b":eo()}],"border-color-l":[{"border-l":eo()}],"divide-color":[{divide:eo()}],"outline-style":[{outline:[...ed(),"none","hidden"]}],"outline-offset":[{"outline-offset":[N,D,K]}],"outline-w":[{outline:["",N,F,R]}],"outline-color":[{outline:eo()}],shadow:[{shadow:["","none",c,X,H]}],"shadow-color":[{shadow:eo()}],"inset-shadow":[{"inset-shadow":["none",m,X,H]}],"inset-shadow-color":[{"inset-shadow":eo()}],"ring-w":[{ring:ei()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:eo()}],"ring-offset-w":[{"ring-offset":[N,R]}],"ring-offset-color":[{"ring-offset":eo()}],"inset-ring-w":[{"inset-ring":ei()}],"inset-ring-color":[{"inset-ring":eo()}],"text-shadow":[{"text-shadow":["none",p,X,H]}],"text-shadow-color":[{"text-shadow":eo()}],opacity:[{opacity:[N,D,K]}],"mix-blend":[{"mix-blend":[...ec(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ec()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[N]}],"mask-image-linear-from-pos":[{"mask-linear-from":em()}],"mask-image-linear-to-pos":[{"mask-linear-to":em()}],"mask-image-linear-from-color":[{"mask-linear-from":eo()}],"mask-image-linear-to-color":[{"mask-linear-to":eo()}],"mask-image-t-from-pos":[{"mask-t-from":em()}],"mask-image-t-to-pos":[{"mask-t-to":em()}],"mask-image-t-from-color":[{"mask-t-from":eo()}],"mask-image-t-to-color":[{"mask-t-to":eo()}],"mask-image-r-from-pos":[{"mask-r-from":em()}],"mask-image-r-to-pos":[{"mask-r-to":em()}],"mask-image-r-from-color":[{"mask-r-from":eo()}],"mask-image-r-to-color":[{"mask-r-to":eo()}],"mask-image-b-from-pos":[{"mask-b-from":em()}],"mask-image-b-to-pos":[{"mask-b-to":em()}],"mask-image-b-from-color":[{"mask-b-from":eo()}],"mask-image-b-to-color":[{"mask-b-to":eo()}],"mask-image-l-from-pos":[{"mask-l-from":em()}],"mask-image-l-to-pos":[{"mask-l-to":em()}],"mask-image-l-from-color":[{"mask-l-from":eo()}],"mask-image-l-to-color":[{"mask-l-to":eo()}],"mask-image-x-from-pos":[{"mask-x-from":em()}],"mask-image-x-to-pos":[{"mask-x-to":em()}],"mask-image-x-from-color":[{"mask-x-from":eo()}],"mask-image-x-to-color":[{"mask-x-to":eo()}],"mask-image-y-from-pos":[{"mask-y-from":em()}],"mask-image-y-to-pos":[{"mask-y-to":em()}],"mask-image-y-from-color":[{"mask-y-from":eo()}],"mask-image-y-to-color":[{"mask-y-to":eo()}],"mask-image-radial":[{"mask-radial":[D,K]}],"mask-image-radial-from-pos":[{"mask-radial-from":em()}],"mask-image-radial-to-pos":[{"mask-radial-to":em()}],"mask-image-radial-from-color":[{"mask-radial-from":eo()}],"mask-image-radial-to-color":[{"mask-radial-to":eo()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":y()}],"mask-image-conic-pos":[{"mask-conic":[N]}],"mask-image-conic-from-pos":[{"mask-conic-from":em()}],"mask-image-conic-to-pos":[{"mask-conic-to":em()}],"mask-image-conic-from-color":[{"mask-conic-from":eo()}],"mask-image-conic-to-color":[{"mask-conic-to":eo()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:et()}],"mask-repeat":[{mask:el()}],"mask-size":[{mask:ea()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",D,K]}],filter:[{filter:["","none",D,K]}],blur:[{blur:ep()}],brightness:[{brightness:[N,D,K]}],contrast:[{contrast:[N,D,K]}],"drop-shadow":[{"drop-shadow":["","none",u,X,H]}],"drop-shadow-color":[{"drop-shadow":eo()}],grayscale:[{grayscale:["",N,D,K]}],"hue-rotate":[{"hue-rotate":[N,D,K]}],invert:[{invert:["",N,D,K]}],saturate:[{saturate:[N,D,K]}],sepia:[{sepia:["",N,D,K]}],"backdrop-filter":[{"backdrop-filter":["","none",D,K]}],"backdrop-blur":[{"backdrop-blur":ep()}],"backdrop-brightness":[{"backdrop-brightness":[N,D,K]}],"backdrop-contrast":[{"backdrop-contrast":[N,D,K]}],"backdrop-grayscale":[{"backdrop-grayscale":["",N,D,K]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[N,D,K]}],"backdrop-invert":[{"backdrop-invert":["",N,D,K]}],"backdrop-opacity":[{"backdrop-opacity":[N,D,K]}],"backdrop-saturate":[{"backdrop-saturate":[N,D,K]}],"backdrop-sepia":[{"backdrop-sepia":["",N,D,K]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":G()}],"border-spacing-x":[{"border-spacing-x":G()}],"border-spacing-y":[{"border-spacing-y":G()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",D,K]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[N,"initial",D,K]}],ease:[{ease:["linear","initial",h,D,K]}],delay:[{delay:[N,D,K]}],animate:[{animate:["none",x,D,K]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,D,K]}],"perspective-origin":[{"perspective-origin":v()}],rotate:[{rotate:eu()}],"rotate-x":[{"rotate-x":eu()}],"rotate-y":[{"rotate-y":eu()}],"rotate-z":[{"rotate-z":eu()}],scale:[{scale:eb()}],"scale-x":[{"scale-x":eb()}],"scale-y":[{"scale-y":eb()}],"scale-z":[{"scale-z":eb()}],"scale-3d":["scale-3d"],skew:[{skew:ef()}],"skew-x":[{"skew-x":ef()}],"skew-y":[{"skew-y":ef()}],transform:[{transform:[D,K,"","none","gpu","cpu"]}],"transform-origin":[{origin:v()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:eg()}],"translate-x":[{"translate-x":eg()}],"translate-y":[{"translate-y":eg()}],"translate-z":[{"translate-z":eg()}],"translate-none":["translate-none"],accent:[{accent:eo()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:eo()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",D,K]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":G()}],"scroll-mx":[{"scroll-mx":G()}],"scroll-my":[{"scroll-my":G()}],"scroll-ms":[{"scroll-ms":G()}],"scroll-me":[{"scroll-me":G()}],"scroll-mt":[{"scroll-mt":G()}],"scroll-mr":[{"scroll-mr":G()}],"scroll-mb":[{"scroll-mb":G()}],"scroll-ml":[{"scroll-ml":G()}],"scroll-p":[{"scroll-p":G()}],"scroll-px":[{"scroll-px":G()}],"scroll-py":[{"scroll-py":G()}],"scroll-ps":[{"scroll-ps":G()}],"scroll-pe":[{"scroll-pe":G()}],"scroll-pt":[{"scroll-pt":G()}],"scroll-pr":[{"scroll-pr":G()}],"scroll-pb":[{"scroll-pb":G()}],"scroll-pl":[{"scroll-pl":G()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",D,K]}],fill:[{fill:["none",...eo()]}],"stroke-w":[{stroke:[N,F,R,U]}],stroke:[{stroke:["none",...eo()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function ei(...e){return es(r(e))}function ed(e){if(!e)return null;let r=e.match(/^#\s+(.+)$/m);return r?r[1].trim():null}e.s(["cn",()=>ei,"extractH1Title",()=>ed],65458)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12603,e=>{"use strict";var r=e.i(90022),t=e.i(31231),a=e.i(65458);let n=t.forwardRef(({className:e,...t},n)=>(0,r.jsx)("div",{ref:n,className:(0,a.cn)("rounded-xl border border-gray-200 dark:border-gray-800 bg-card text-card-foreground shadow",e),...t}));n.displayName="Card";let o=t.forwardRef(({className:e,...t},n)=>(0,r.jsx)("div",{ref:n,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...t}));o.displayName="CardHeader";let s=t.forwardRef(({className:e,...t},n)=>(0,r.jsx)("div",{ref:n,className:(0,a.cn)("font-semibold leading-none tracking-tight",e),...t}));s.displayName="CardTitle";let d=t.forwardRef(({className:e,...t},n)=>(0,r.jsx)("div",{ref:n,className:(0,a.cn)("text-sm text-muted-foreground",e),...t}));d.displayName="CardDescription";let i=t.forwardRef(({className:e,...t},n)=>(0,r.jsx)("div",{ref:n,className:(0,a.cn)("p-6 pt-0",e),...t}));i.displayName="CardContent",t.forwardRef(({className:e,...t},n)=>(0,r.jsx)("div",{ref:n,className:(0,a.cn)("flex items-center p-6 pt-0",e),...t})).displayName="CardFooter",e.s(["Card",()=>n,"CardContent",()=>i,"CardDescription",()=>d,"CardHeader",()=>o,"CardTitle",()=>s])},70305,(e,r,t)=>{"use strict";var a=e.r(31231),n="function"==typeof Object.is?Object.is:function(e,r){return e===r&&(0!==e||1/e==1/r)||e!=e&&r!=r},o=a.useState,s=a.useEffect,d=a.useLayoutEffect,i=a.useDebugValue;function c(e){var r=e.getSnapshot;e=e.value;try{var t=r();return!n(e,t)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,r){return r()}:function(e,r){var t=r(),a=o({inst:{value:t,getSnapshot:r}}),n=a[0].inst,u=a[1];return d(function(){n.value=t,n.getSnapshot=r,c(n)&&u({inst:n})},[e,t,r]),s(function(){return c(n)&&u({inst:n}),e(function(){c(n)&&u({inst:n})})},[e]),i(t),t};t.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:u},34960,(e,r,t)=>{"use strict";r.exports=e.r(70305)}]);