@leanspec/ui 0.2.8 → 0.2.9-dev.20251205030455

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 (640) 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/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +95 -0
  3. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  4. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +8 -0
  5. package/.next/standalone/packages/ui/.next/build-manifest.json +4 -4
  6. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  7. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  8. package/.next/standalone/packages/ui/.next/routes-manifest.json +60 -0
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +2 -2
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  17. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +2 -2
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -18
  25. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
  26. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  27. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  28. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  29. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  30. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/app-paths-manifest.json +3 -0
  33. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/build-manifest.json +11 -0
  34. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/server-reference-manifest.json +4 -0
  35. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +8 -0
  36. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.map +5 -0
  37. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -0
  38. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route_client-reference-manifest.js +2 -0
  39. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/app-paths-manifest.json +3 -0
  44. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/build-manifest.json +11 -0
  45. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/server-reference-manifest.json +4 -0
  46. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +8 -0
  47. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.map +5 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route_client-reference-manifest.js +2 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/app-paths-manifest.json +3 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/build-manifest.json +11 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/server-reference-manifest.json +4 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +8 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.map +5 -0
  55. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -0
  56. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route_client-reference-manifest.js +2 -0
  57. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +1 -3
  58. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +1 -2
  60. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -2
  64. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  65. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  67. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/app-paths-manifest.json +3 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/build-manifest.json +11 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/server-reference-manifest.json +4 -0
  70. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js +6 -0
  71. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.map +5 -0
  72. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -0
  73. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route_client-reference-manifest.js +2 -0
  74. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -3
  75. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  76. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
  77. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  78. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  79. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  80. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  81. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  82. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  83. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  84. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  85. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  86. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  87. package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +2 -2
  88. package/.next/standalone/packages/ui/.next/server/app/context/page.js +2 -2
  89. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -1
  90. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +1 -1
  91. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/app-paths-manifest.json +3 -0
  92. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/build-manifest.json +18 -0
  93. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/next-font-manifest.json +6 -0
  94. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/react-loadable-manifest.json +1 -0
  95. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/server-reference-manifest.json +4 -0
  96. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +19 -0
  97. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.map +5 -0
  98. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -0
  99. package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +2 -0
  100. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +2 -2
  101. package/.next/standalone/packages/ui/.next/server/app/page.js +4 -3
  102. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  103. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  104. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/app-paths-manifest.json +3 -0
  105. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/build-manifest.json +18 -0
  106. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/next-font-manifest.json +6 -0
  107. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/react-loadable-manifest.json +1 -0
  108. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/server-reference-manifest.json +4 -0
  109. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +21 -0
  110. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.map +5 -0
  111. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -0
  112. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +2 -0
  113. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/app-paths-manifest.json +3 -0
  114. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/build-manifest.json +18 -0
  115. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/next-font-manifest.json +6 -0
  116. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/react-loadable-manifest.json +1 -0
  117. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/server-reference-manifest.json +4 -0
  118. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +21 -0
  119. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.map +5 -0
  120. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -0
  121. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +2 -0
  122. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/build-manifest.json +2 -2
  123. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +7 -7
  124. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  125. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  126. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +2 -2
  127. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +8 -7
  128. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  129. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  130. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +2 -2
  131. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +7 -6
  132. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  133. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  134. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/app-paths-manifest.json +3 -0
  135. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/build-manifest.json +18 -0
  136. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/next-font-manifest.json +6 -0
  137. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/react-loadable-manifest.json +1 -0
  138. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/server-reference-manifest.json +4 -0
  139. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +21 -0
  140. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.map +5 -0
  141. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -0
  142. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +2 -0
  143. package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +2 -2
  144. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +7 -6
  145. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  146. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  147. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  148. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -23
  149. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -23
  150. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  151. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  152. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  153. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  154. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +2 -2
  155. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
  156. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  157. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  158. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +2 -2
  159. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
  160. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  161. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  162. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +2 -2
  163. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
  164. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  165. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  166. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +8 -0
  167. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_dependencies_route_actions_7ac49581.js +3 -0
  168. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_context_route_actions_96adca70.js +3 -0
  169. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_validate_route_actions_b60372c9.js +3 -0
  170. package/.next/standalone/packages/ui/.next/server/chunks/[externals]_better-sqlite3_a1cc22cb._.js +3 -0
  171. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +3 -0
  172. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__18aca702._.js +3 -0
  173. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__27348781._.js +3 -0
  174. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a7f0840._.js +3 -0
  175. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3e17db24._.js +3 -0
  176. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5f1e0195._.js +3 -0
  177. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6e06fd2a._.js +3 -0
  178. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +3 -0
  179. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__97b99cc0._.js +3 -0
  180. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9d9758e1._.js +3 -0
  181. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +3 -0
  182. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b212b9bd._.js +3 -0
  183. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b9c03a57._.js +3 -0
  184. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e99e7672._.js +3 -0
  185. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f38a5f20._.js +3 -0
  186. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__126dea7b._.js → [root-of-the-server]__fa8cf2bc._.js} +2 -2
  187. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_dependencies_route_actions_cf6b14c3.js +3 -0
  188. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_b8c1af87._.js +3 -0
  189. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +72 -1
  190. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_context_page_actions_e4940a48.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_stats_page_actions_82a85203.js +3 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
  193. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__13f96ef4._.js +3 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__212c8580._.js +3 -0
  195. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2b66bcca._.js +3 -0
  196. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__312221a2._.js +3 -0
  197. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +3 -0
  198. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__fd80e4dd._.js → [root-of-the-server]__38c56adc._.js} +2 -2
  199. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +3 -0
  200. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__46b71f61._.js +3 -0
  201. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__53f4506c._.js +3 -0
  202. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__665ae766._.js +3 -0
  203. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__84124d4b._.js +3 -0
  204. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__921689ca._.js +3 -0
  205. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a34731d8._.js +3 -0
  206. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a9d7fd42._.js +3 -0
  207. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b0d6e2ad._.js +3 -0
  208. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b27b2469._.js +3 -0
  209. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b3633d6e._.js +3 -0
  210. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dcee62dd._.js +3 -0
  211. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  212. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +7 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_39562b2a._.js → _170362f4._.js} +3 -3
  214. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_1a642e67._.js +4 -0
  215. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +1 -1
  216. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_85effc18._.js → _2bc76f88._.js} +3 -3
  217. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_fdd7780b._.js → _3f059230._.js} +3 -3
  218. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_58b98a8f._.js +4 -0
  219. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
  220. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_90eed09a._.js +3 -0
  221. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_22274047._.js → _adb9d7cb._.js} +2 -2
  222. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b303aeea._.js +3 -0
  223. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_bae6d2b8._.js → _b421ba4a._.js} +3 -3
  224. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.js +3 -0
  225. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_da18b655._.js +3 -0
  226. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +3 -0
  227. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f05260d6._.js +4 -0
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f38e75b7._.js +4 -0
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f9129aae._.js +3 -0
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_dependencies_page_actions_ba2321b8.js +3 -0
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_0056f1f2._.js +3 -0
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_015f83ca._.js +3 -0
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_30b0b05a._.js +3 -0
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_478d57e5._.js +3 -0
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_4e3e790c._.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_80605a06._.js +3 -0
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_f5b29533._.js → node_modules__pnpm_8680dc29._.js} +2 -2
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_e175b92a._.js → node_modules__pnpm_94a0b1f5._.js} +2 -2
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b4ff5c78._.js +3 -0
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_bb80de48._.js +3 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_7791e3b8._.js → node_modules__pnpm_d3262b3d._.js} +2 -2
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e8075f9b._.js +3 -0
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f919ef4a._.js +3 -0
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_dependencies_page_actions_57387d47.js +3 -0
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +2 -2
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_dependencies_dependencies-client_tsx_0e82443a._.js +4 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_layout_tsx_86c2ce0f._.js +3 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +3 -0
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  252. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +2 -2
  253. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  254. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  255. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  256. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  257. package/.next/standalone/packages/ui/.next/static/chunks/04de9ed512b8098b.js +10 -0
  258. package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
  259. package/.next/standalone/packages/ui/.next/static/chunks/3d12a8c3152b526d.js +3 -0
  260. package/.next/standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
  261. package/.next/standalone/packages/ui/.next/static/chunks/46275d9d67603bf5.js +1 -0
  262. package/.next/standalone/packages/ui/.next/static/chunks/7931c6cb379305b1.js +1 -0
  263. package/.next/standalone/packages/ui/.next/static/chunks/7a00633903e066b4.js +1 -0
  264. package/.next/standalone/packages/ui/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  265. package/.next/standalone/packages/ui/.next/static/chunks/7f9a218732be8099.js +5 -0
  266. package/.next/standalone/packages/ui/.next/static/chunks/840c6743a491a398.js +1 -0
  267. package/.next/standalone/packages/ui/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
  268. package/.next/standalone/packages/ui/.next/static/chunks/8d8c106c6848d15b.js +1 -0
  269. package/.next/standalone/packages/ui/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
  270. package/.next/standalone/packages/ui/.next/static/chunks/a640b005f2e15d98.js +1 -0
  271. package/.next/standalone/packages/ui/.next/static/chunks/a7075a240adea8e8.js +1 -0
  272. package/.next/standalone/packages/ui/.next/static/chunks/b53250480fde6816.js +1 -0
  273. package/.next/{static/chunks/794f3931f1ca12d2.js → standalone/packages/ui/.next/static/chunks/bbd498aa5689c057.js} +1 -1
  274. package/.next/standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
  275. package/.next/standalone/packages/ui/.next/static/chunks/c658e22a605e0ed1.js +1 -0
  276. package/.next/standalone/packages/ui/.next/static/chunks/c92660d8d0c4763d.js +1 -0
  277. package/.next/standalone/packages/ui/.next/static/chunks/{e3bc96a996e2a314.js → d26f4109b44eb240.js} +1 -1
  278. package/.next/standalone/packages/ui/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
  279. package/.next/standalone/packages/ui/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
  280. package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
  281. package/.next/standalone/packages/ui/.next/static/chunks/f924ae32752e1583.js +1 -0
  282. package/.next/standalone/packages/ui/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
  283. package/.next/{static/chunks/turbopack-5fa55215af0efb15.js → standalone/packages/ui/.next/static/chunks/turbopack-261c5dcdd873f310.js} +1 -1
  284. package/.next/standalone/packages/ui/package.json +3 -1
  285. package/.next/standalone/packages/ui/server.js +1 -1
  286. package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +81 -0
  287. package/.next/standalone/packages/ui/src/app/api/projects/[id]/context/route.ts +39 -0
  288. package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +69 -0
  289. package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +25 -9
  290. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +14 -14
  291. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +9 -8
  292. package/.next/standalone/packages/ui/src/app/api/projects/[id]/validate/route.ts +49 -0
  293. package/.next/standalone/packages/ui/src/app/api/projects/route.ts +18 -5
  294. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -2
  295. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts +0 -15
  296. package/.next/standalone/packages/ui/src/app/context/context-client.tsx +23 -1
  297. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +29 -58
  298. package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +25 -0
  299. package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +700 -0
  300. package/.next/standalone/packages/ui/src/app/dependencies/index.ts +19 -0
  301. package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +38 -0
  302. package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +80 -0
  303. package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +171 -0
  304. package/.next/standalone/packages/ui/src/app/dependencies/types.ts +37 -0
  305. package/.next/standalone/packages/ui/src/app/dependencies/utils.ts +194 -0
  306. package/.next/standalone/packages/ui/src/app/page.tsx +24 -0
  307. package/.next/standalone/packages/ui/src/app/projects/[projectId]/context/page.tsx +41 -0
  308. package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +43 -0
  309. package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +18 -2
  310. package/.next/standalone/packages/ui/src/app/projects/[projectId]/stats/page.tsx +24 -0
  311. package/.next/standalone/packages/ui/src/app/projects/layout.tsx +7 -0
  312. package/.next/standalone/packages/ui/src/app/projects/page.tsx +167 -20
  313. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +27 -17
  314. package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
  315. package/.next/standalone/packages/ui/src/components/context-file-detail.tsx +308 -0
  316. package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +96 -2
  317. package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +3 -5
  318. package/.next/standalone/packages/ui/src/components/directory-picker.tsx +1 -0
  319. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +31 -6
  320. package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
  321. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +24 -5
  322. package/.next/standalone/packages/ui/src/components/quick-search.tsx +3 -1
  323. package/.next/standalone/packages/ui/src/components/spec-dependency-graph.tsx +13 -52
  324. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +36 -11
  325. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +3 -4
  326. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +8 -6
  327. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
  328. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +85 -31
  329. package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
  330. package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
  331. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  332. package/.next/static/chunks/04de9ed512b8098b.js +10 -0
  333. package/.next/static/chunks/1e0689744f87e958.js +2 -0
  334. package/.next/static/chunks/3d12a8c3152b526d.js +3 -0
  335. package/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
  336. package/.next/static/chunks/46275d9d67603bf5.js +1 -0
  337. package/.next/static/chunks/7931c6cb379305b1.js +1 -0
  338. package/.next/static/chunks/7a00633903e066b4.js +1 -0
  339. package/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  340. package/.next/static/chunks/7f9a218732be8099.js +5 -0
  341. package/.next/static/chunks/840c6743a491a398.js +1 -0
  342. package/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
  343. package/.next/static/chunks/8d8c106c6848d15b.js +1 -0
  344. package/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
  345. package/.next/static/chunks/a640b005f2e15d98.js +1 -0
  346. package/.next/static/chunks/a7075a240adea8e8.js +1 -0
  347. package/.next/static/chunks/b53250480fde6816.js +1 -0
  348. package/.next/{standalone/packages/ui/.next/static/chunks/794f3931f1ca12d2.js → static/chunks/bbd498aa5689c057.js} +1 -1
  349. package/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
  350. package/.next/static/chunks/c658e22a605e0ed1.js +1 -0
  351. package/.next/static/chunks/c92660d8d0c4763d.js +1 -0
  352. package/.next/static/chunks/{e3bc96a996e2a314.js → d26f4109b44eb240.js} +1 -1
  353. package/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
  354. package/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
  355. package/.next/static/chunks/e399b4afc7936907.js +1 -0
  356. package/.next/static/chunks/f924ae32752e1583.js +1 -0
  357. package/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
  358. package/.next/{standalone/packages/ui/.next/static/chunks/turbopack-5fa55215af0efb15.js → static/chunks/turbopack-261c5dcdd873f310.js} +1 -1
  359. package/package.json +4 -2
  360. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +0 -3
  361. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +0 -3
  362. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +0 -3
  363. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +0 -3
  364. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +0 -3
  365. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +0 -3
  366. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +0 -3
  367. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +0 -3
  368. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +0 -3
  369. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +0 -3
  370. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +0 -3
  371. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +0 -3
  372. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +0 -74
  373. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +0 -3
  374. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +0 -3
  375. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__12b4eb41._.js +0 -3
  376. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +0 -3
  377. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +0 -3
  378. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__6e739186._.js +0 -7
  379. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +0 -3
  380. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a4c56419._.js +0 -7
  381. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b6632d78._.js +0 -3
  382. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +0 -3
  383. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +0 -3
  384. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +0 -3
  385. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +0 -3
  386. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +0 -3
  387. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_315f3b3a._.js +0 -3
  388. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
  389. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_9dcf102b._.js +0 -3
  390. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ac867463._.js +0 -3
  391. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b397e94a._.js +0 -3
  392. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +0 -3
  393. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_8272a49c._.js +0 -3
  394. package/.next/standalone/packages/ui/.next/static/chunks/1eb8283995f370c6.js +0 -1
  395. package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  396. package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +0 -1
  397. package/.next/standalone/packages/ui/.next/static/chunks/336e8e8fc6b0fba8.js +0 -1
  398. package/.next/standalone/packages/ui/.next/static/chunks/37a1236ed50645a6.js +0 -1
  399. package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  400. package/.next/standalone/packages/ui/.next/static/chunks/9d84ba08a41145ec.js +0 -5
  401. package/.next/standalone/packages/ui/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
  402. package/.next/standalone/packages/ui/.next/static/chunks/c4b1faff3361a749.js +0 -1
  403. package/.next/standalone/packages/ui/.next/static/chunks/d7420d2a867e57b5.js +0 -1
  404. package/.next/standalone/packages/ui/.next/static/chunks/dae403679aae65f4.js +0 -1
  405. package/.next/standalone/packages/ui/.next/static/chunks/efded9da04c960d8.js +0 -1
  406. package/.next/standalone/packages/ui/.next/static/chunks/f382932f1a5d6359.js +0 -10
  407. package/.next/standalone/packages/ui/.next/static/chunks/f43b6e43b4da1a32.css +0 -1
  408. package/.next/standalone/packages/ui/.next/static/chunks/f6dd06e6d22d2d12.js +0 -3
  409. package/.next/standalone/packages/ui/dist/BUILD_ID +0 -1
  410. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
  411. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  412. package/.next/standalone/packages/ui/dist/public/file.svg +0 -1
  413. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +0 -1
  414. package/.next/standalone/packages/ui/dist/public/github-mark.svg +0 -1
  415. package/.next/standalone/packages/ui/dist/public/globe.svg +0 -1
  416. package/.next/standalone/packages/ui/dist/public/icon.svg +0 -7
  417. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +0 -17
  418. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +0 -17
  419. package/.next/standalone/packages/ui/dist/public/logo.svg +0 -17
  420. package/.next/standalone/packages/ui/dist/public/next.svg +0 -1
  421. package/.next/standalone/packages/ui/dist/public/vercel.svg +0 -1
  422. package/.next/standalone/packages/ui/dist/public/window.svg +0 -1
  423. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
  424. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -75
  425. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
  426. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +0 -175
  427. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
  428. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
  429. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
  430. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
  431. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
  432. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
  433. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
  434. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
  435. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
  436. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
  437. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
  438. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
  439. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
  440. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
  441. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
  442. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -302
  443. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
  444. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
  445. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
  446. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
  447. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
  448. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
  449. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
  450. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
  451. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
  452. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
  453. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
  454. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
  455. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
  456. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
  457. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
  458. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
  459. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
  460. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
  461. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
  462. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
  463. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
  464. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
  465. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
  466. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
  467. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
  468. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
  469. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
  470. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
  471. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
  472. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
  473. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
  474. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
  475. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
  476. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
  477. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
  478. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
  479. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
  480. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
  481. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
  482. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
  483. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
  484. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
  485. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
  486. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
  487. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
  488. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
  489. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
  490. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
  491. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
  492. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
  493. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
  494. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
  495. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
  496. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
  497. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
  498. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
  499. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
  500. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
  501. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
  502. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
  503. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
  504. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
  505. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
  506. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
  507. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
  508. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
  509. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
  510. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
  511. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
  512. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
  513. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
  514. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
  515. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
  516. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
  517. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
  518. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
  519. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
  520. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
  521. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
  522. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
  523. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -285
  524. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
  525. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
  526. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
  527. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
  528. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
  529. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
  530. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
  531. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
  532. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -824
  533. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
  534. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
  535. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
  536. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
  537. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -496
  538. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
  539. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
  540. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
  541. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
  542. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -607
  543. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -104
  544. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -124
  545. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -129
  546. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -244
  547. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -148
  548. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -54
  549. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
  550. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
  551. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
  552. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
  553. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
  554. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
  555. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
  556. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
  557. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
  558. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
  559. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
  560. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
  561. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
  562. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
  563. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
  564. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
  565. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
  566. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
  567. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
  568. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
  569. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
  570. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
  571. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
  572. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
  573. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
  574. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
  575. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
  576. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
  577. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
  578. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
  579. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
  580. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
  581. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
  582. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
  583. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
  584. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
  585. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
  586. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
  587. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
  588. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
  589. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
  590. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
  591. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
  592. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +0 -1
  593. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +0 -1
  594. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +0 -1
  595. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +0 -1
  596. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +0 -1
  597. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +0 -3
  598. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +0 -1
  599. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +0 -1
  600. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +0 -1
  601. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +0 -1
  602. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +0 -1
  603. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +0 -1
  604. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +0 -1
  605. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +0 -1
  606. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +0 -1
  607. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +0 -1
  608. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +0 -1
  609. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +0 -1
  610. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +0 -5
  611. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +0 -1
  612. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +0 -1
  613. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +0 -4
  614. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +0 -2
  615. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +0 -19
  616. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +0 -3
  617. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_buildManifest.js +0 -11
  618. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_clientMiddlewareManifest.json +0 -1
  619. package/.next/static/-Mn9iD4O5f_khGd1P3kmB/_ssgManifest.js +0 -1
  620. package/.next/static/chunks/1eb8283995f370c6.js +0 -1
  621. package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  622. package/.next/static/chunks/2c85b8059e42248a.js +0 -1
  623. package/.next/static/chunks/336e8e8fc6b0fba8.js +0 -1
  624. package/.next/static/chunks/37a1236ed50645a6.js +0 -1
  625. package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  626. package/.next/static/chunks/9d84ba08a41145ec.js +0 -5
  627. package/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
  628. package/.next/static/chunks/c4b1faff3361a749.js +0 -1
  629. package/.next/static/chunks/d7420d2a867e57b5.js +0 -1
  630. package/.next/static/chunks/dae403679aae65f4.js +0 -1
  631. package/.next/static/chunks/efded9da04c960d8.js +0 -1
  632. package/.next/static/chunks/f382932f1a5d6359.js +0 -10
  633. package/.next/static/chunks/f43b6e43b4da1a32.css +0 -1
  634. package/.next/static/chunks/f6dd06e6d22d2d12.js +0 -3
  635. /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB → T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
  636. /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB → T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
  637. /package/.next/standalone/packages/ui/.next/static/{-Mn9iD4O5f_khGd1P3kmB → T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
  638. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
  639. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
  640. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6454,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:n,blurDataURL:i,objectFit:s}){let a=r?40*r:e,o=n?40*n:t,l=a&&o?`viewBox='0 0 ${a} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${l}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${l?"none":"contain"===s?"xMidYMid":"cover"===s?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},594547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return s},imageConfigDefault:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let s=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},550696,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return l}}),e.r(56863);let n=e.r(6454),i=e.r(594547),s=["-moz-initial","fill","none","scale-down",void 0];function a(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function l({src:e,sizes:t,unoptimized:r=!1,priority:l=!1,preload:u=!1,loading:c,className:d,quality:h,width:f,height:p,fill:m=!1,style:g,overrideSrc:v,onLoad:x,onLoadingComplete:b,placeholder:y="empty",blurDataURL:w,fetchPriority:C,decoding:j="async",layout:E,objectFit:A,objectPosition:k,lazyBoundary:S,lazyRoot:_,...N},P){var R;let F,D,M,{imgConf:I,showAltText:B,blurComplete:O,defaultLoader:$}=P,L=I||i.imageConfigDefault;if("allSizes"in L)F=L;else{let e=[...L.deviceSizes,...L.imageSizes].sort((e,t)=>e-t),t=L.deviceSizes.sort((e,t)=>e-t),r=L.qualities?.sort((e,t)=>e-t);F={...L,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===$)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let z=N.loader||$;delete N.loader,delete N.srcSet;let T="__next_img_default"in z;if(T){if("custom"===F.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=z;z=t=>{let{config:r,...n}=t;return e(n)}}if(E){"fill"===E&&(m=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[E];e&&(g={...g,...e});let r={responsive:"100vw",fill:"100vw"}[E];r&&!t&&(t=r)}let q="",H=o(f),W=o(p);if((R=e)&&"object"==typeof R&&(a(R)||void 0!==R.src)){let t=a(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(D=t.blurWidth,M=t.blurHeight,w=w||t.blurDataURL,q=t.src,!m)if(H||W){if(H&&!W){let e=H/t.width;W=Math.round(t.height*e)}else if(!H&&W){let e=W/t.height;H=Math.round(t.width*e)}}else H=t.width,W=t.height}let G=!l&&!u&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:q)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,G=!1),F.unoptimized&&(r=!0),T&&!F.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let V=o(h),K=Object.assign(m?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:A,objectPosition:k}:{},B?{}:{color:"transparent"},g),U=O||"empty"===y?null:"blur"===y?`url("data:image/svg+xml;charset=utf-8,${(0,n.getImageBlurSvg)({widthInt:H,heightInt:W,blurWidth:D,blurHeight:M,blurDataURL:w||"",objectFit:K.objectFit})}")`:`url("${y}")`,J=s.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,X=U?{backgroundSize:J,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:U}:{},Q=function({config:e,src:t,unoptimized:r,width:n,quality:i,sizes:s,loader:a}){if(r)return{src:t,srcSet:void 0,sizes:void 0};let{widths:o,kind:l}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,n,s),u=o.length-1;return{sizes:s||"w"!==l?s:"100vw",srcSet:o.map((r,n)=>`${a({config:e,src:t,quality:i,width:r})} ${"w"===l?r:n+1}${l}`).join(", "),src:a({config:e,src:t,quality:i,width:o[u]})}}({config:F,src:e,unoptimized:r,width:H,quality:V,sizes:t,loader:z}),Y=G?"lazy":c;return{props:{...N,loading:Y,fetchPriority:C,width:H,height:W,decoding:j,className:d,style:{...K,...X},sizes:Q.sizes,srcSet:Q.srcSet,src:v||Q.src},meta:{unoptimized:r,preload:u||l,placeholder:y,fill:m}}}},29549,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(431231),i="undefined"==typeof window,s=i?()=>{}:n.useLayoutEffect,a=i?()=>{}:n.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i&&(t?.mountedInstances?.add(e.children),o()),s(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),s(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},582032,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},defaultHead:function(){return d}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let s=e.r(481258),a=e.r(744066),o=e.r(890022),l=a._(e.r(431231)),u=s._(e.r(29549)),c=e.r(392600);function d(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function h(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(56863);let f=["name","httpEquiv","charSet","itemProp"];function p(e){let t,r,n,i;return e.reduce(h,[]).reverse().concat(d().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let s=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?s=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?s=!1:r.add(e.type);break;case"meta":for(let t=0,r=f.length;t<r;t++){let r=f[t];if(e.props.hasOwnProperty(r))if("charSet"===r)n.has(r)?s=!1:n.add(r);else{let t=e.props[r],n=i[r]||new Set;("name"!==r||!a)&&n.has(t)?s=!1:(n.add(t),i[r]=n)}}}return s})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,l.useContext)(c.HeadManagerContext);return(0,o.jsx)(u.default,{reduceComponentsToState:p,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},111258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return s}});let n=e.r(481258)._(e.r(431231)),i=e.r(594547),s=n.default.createContext(i.imageConfigDefault)},394453,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(481258)._(e.r(431231)).default.createContext(null)},781035,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return n}})},765774,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(781035);function i({config:e,src:t,width:r,quality:i}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let s=(0,n.findClosestQuality)(i,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${s}${t.startsWith("/_next/static/media/"),""}`}i.__next_img_default=!0;let s=i},881988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return y}});let n=e.r(481258),i=e.r(744066),s=e.r(890022),a=i._(e.r(431231)),o=n._(e.r(395635)),l=n._(e.r(582032)),u=e.r(550696),c=e.r(594547),d=e.r(111258);e.r(56863);let h=e.r(394453),f=n._(e.r(765774)),p=e.r(266500),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function g(e,t,r,n,i,s,a){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function v(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let x=(0,a.forwardRef)(({src:e,srcSet:t,sizes:r,height:n,width:i,decoding:o,className:l,style:u,fetchPriority:c,placeholder:d,loading:h,unoptimized:f,fill:m,onLoadRef:x,onLoadingCompleteRef:b,setBlurComplete:y,setShowAltText:w,sizesInput:C,onLoad:j,onError:E,...A},k)=>{let S=(0,a.useCallback)(e=>{e&&(E&&(e.src=e.src),e.complete&&g(e,d,x,b,y,f,C))},[e,d,x,b,y,E,f,C]),_=(0,p.useMergedRef)(k,S);return(0,s.jsx)("img",{...A,...v(c),loading:h,width:i,height:n,decoding:o,"data-nimg":m?"fill":"1",className:l,style:u,sizes:r,srcSet:t,src:e,ref:_,onLoad:e=>{g(e.currentTarget,d,x,b,y,f,C)},onError:e=>{w(!0),"empty"!==d&&y(!0),E&&E(e)}})});function b({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...v(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,s.jsx)(l.default,{children:(0,s.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let y=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(h.RouterContext),n=(0,a.useContext)(d.ImageConfigContext),i=(0,a.useMemo)(()=>{let e=m||n||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:i,localPatterns:"undefined"==typeof window?n?.localPatterns:e.localPatterns}},[n]),{onLoad:o,onLoadingComplete:l}=e,p=(0,a.useRef)(o);(0,a.useEffect)(()=>{p.current=o},[o]);let g=(0,a.useRef)(l);(0,a.useEffect)(()=>{g.current=l},[l]);let[v,y]=(0,a.useState)(!1),[w,C]=(0,a.useState)(!1),{props:j,meta:E}=(0,u.getImgProps)(e,{defaultLoader:f.default,imgConf:i,blurComplete:v,showAltText:w});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(x,{...j,unoptimized:E.unoptimized,placeholder:E.placeholder,fill:E.fill,onLoadRef:p,onLoadingCompleteRef:g,setBlurComplete:y,setShowAltText:C,sizesInput:e.sizes,ref:t}),E.preload?(0,s.jsx)(b,{isAppRouter:!r,imgAttributes:j}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},322867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return c},getImageProps:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let s=e.r(481258),a=e.r(550696),o=e.r(881988),l=s._(e.r(765774));function u(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=o.Image},805970,(e,t,r)=>{t.exports=e.r(322867)},694541,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=/[\\\/_+.#"@\[\(\{&]/,i=/[\\\/_+.#"@\[\(\{&]/g,s=/[\s-]/,a=/[\s-]/g;function o(e){return e.toLowerCase().replace(a," ")}var l=e.i(739065);e.i(395635);var u=e.i(614433),c=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{let i=(0,u.createSlot)(`Primitive.${n}`),s=r.forwardRef((e,r)=>{let{asChild:s,...a}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(s?i:n,{...a,ref:r})});return s.displayName=`Primitive.${n}`,{...e,[n]:s}},{}),d=e.i(315599),h=e.i(430406),f='[cmdk-group=""]',p='[cmdk-group-items=""]',m='[cmdk-item=""]',g=`${m}:not([aria-disabled="true"])`,v="cmdk-item-select",x="data-value",b=(e,t,r)=>{var l;return l=e,function e(t,r,o,l,u,c,d){if(c===r.length)return u===t.length?1:.99;var h=`${u},${c}`;if(void 0!==d[h])return d[h];for(var f,p,m,g,v=l.charAt(c),x=o.indexOf(v,u),b=0;x>=0;)(f=e(t,r,o,l,x+1,c+1,d))>b&&(x===u?f*=1:n.test(t.charAt(x-1))?(f*=.8,(m=t.slice(u,x-1).match(i))&&u>0&&(f*=Math.pow(.999,m.length))):s.test(t.charAt(x-1))?(f*=.9,(g=t.slice(u,x-1).match(a))&&u>0&&(f*=Math.pow(.999,g.length))):(f*=.17,u>0&&(f*=Math.pow(.999,x-u))),t.charAt(x)!==r.charAt(c)&&(f*=.9999)),(f<.1&&o.charAt(x-1)===l.charAt(c+1)||l.charAt(c+1)===l.charAt(c)&&o.charAt(x-1)!==l.charAt(c))&&.1*(p=e(t,r,o,l,x+1,c+2,d))>f&&(f=.1*p),f>b&&(b=f),x=o.indexOf(v,x+1);return d[h]=b,b}(l=r&&r.length>0?`${l+" "+r.join(" ")}`:l,t,o(l),o(t),0,0,{})},y=r.createContext(void 0),w=r.createContext(void 0),C=r.createContext(void 0),j=r.forwardRef((e,t)=>{let n=D(()=>{var t,r;return{search:"",value:null!=(r=null!=(t=e.value)?t:e.defaultValue)?r:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),i=D(()=>new Set),s=D(()=>new Map),a=D(()=>new Map),o=D(()=>new Set),l=R(e),{label:u,children:h,value:C,onValueChange:j,filter:E,shouldFilter:A,loop:k,disablePointerSelection:S=!1,vimBindings:_=!0,...N}=e,P=(0,d.useId)(),M=(0,d.useId)(),I=(0,d.useId)(),L=r.useRef(null),z=B();F(()=>{if(void 0!==C){let e=C.trim();n.current.value=e,T.emit()}},[C]),F(()=>{z(6,K)},[]);let T=r.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,s,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)V(),W(),z(1,G);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(I);e?e.focus():null==(i=document.getElementById(P))||i.focus()}if(z(7,()=>{var e;n.current.selectedItemId=null==(e=U())?void 0:e.id,T.emit()}),r||z(5,K),(null==(s=l.current)?void 0:s.value)!==void 0){null==(o=(a=l.current).onValueChange)||o.call(a,null!=t?t:"");return}}T.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),q=r.useMemo(()=>({value:(e,t,r)=>{var i;t!==(null==(i=a.current.get(e))?void 0:i.value)&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,H(t,r)),z(2,()=>{W(),T.emit()}))},item:(e,t)=>(i.current.add(e),t&&(s.current.has(t)?s.current.get(t).add(e):s.current.set(t,new Set([e]))),z(3,()=>{V(),W(),n.current.value||G(),T.emit()}),()=>{a.current.delete(e),i.current.delete(e),n.current.filtered.items.delete(e);let t=U();z(4,()=>{V(),(null==t?void 0:t.getAttribute("id"))===e&&G(),T.emit()})}),group:e=>(s.current.has(e)||s.current.set(e,new Set),()=>{a.current.delete(e),s.current.delete(e)}),filter:()=>l.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:P,inputId:I,labelId:M,listInnerRef:L}),[]);function H(e,t){var r,i;let s=null!=(i=null==(r=l.current)?void 0:r.filter)?i:b;return e?s(e,n.current.search,t):0}function W(){if(!n.current.search||!1===l.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(r=>{let n=s.current.get(r),i=0;n.forEach(t=>{i=Math.max(e.get(t),i)}),t.push([r,i])});let r=L.current;J().sort((t,r)=>{var n,i;let s=t.getAttribute("id"),a=r.getAttribute("id");return(null!=(n=e.get(a))?n:0)-(null!=(i=e.get(s))?i:0)}).forEach(e=>{let t=e.closest(p);t?t.appendChild(e.parentElement===t?e:e.closest(`${p} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${p} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let r=null==(t=L.current)?void 0:t.querySelector(`${f}[${x}="${encodeURIComponent(e[0])}"]`);null==r||r.parentElement.appendChild(r)})}function G(){let e=J().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(x);T.setState("value",t||void 0)}function V(){var e,t,r,o;if(!n.current.search||!1===l.current.shouldFilter){n.current.filtered.count=i.current.size;return}n.current.filtered.groups=new Set;let u=0;for(let s of i.current){let i=H(null!=(t=null==(e=a.current.get(s))?void 0:e.value)?t:"",null!=(o=null==(r=a.current.get(s))?void 0:r.keywords)?o:[]);n.current.filtered.items.set(s,i),i>0&&u++}for(let[e,t]of s.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=u}function K(){var e,t,r;let n=U();n&&((null==(e=n.parentElement)?void 0:e.firstChild)===n&&(null==(r=null==(t=n.closest(f))?void 0:t.querySelector('[cmdk-group-heading=""]'))||r.scrollIntoView({block:"nearest"})),n.scrollIntoView({block:"nearest"}))}function U(){var e;return null==(e=L.current)?void 0:e.querySelector(`${m}[aria-selected="true"]`)}function J(){var e;return Array.from((null==(e=L.current)?void 0:e.querySelectorAll(g))||[])}function X(e){let t=J()[e];t&&T.setState("value",t.getAttribute(x))}function Q(e){var t;let r=U(),n=J(),i=n.findIndex(e=>e===r),s=n[i+e];null!=(t=l.current)&&t.loop&&(s=i+e<0?n[n.length-1]:i+e===n.length?n[0]:n[i+e]),s&&T.setState("value",s.getAttribute(x))}function Y(e){let t=U(),r=null==t?void 0:t.closest(f),n;for(;r&&!n;)n=null==(r=e>0?function(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}(r,f):function(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}(r,f))?void 0:r.querySelector(g);n?T.setState("value",n.getAttribute(x)):Q(e)}let Z=()=>X(J().length-1),ee=e=>{e.preventDefault(),e.metaKey?Z():e.altKey?Y(1):Q(1)},et=e=>{e.preventDefault(),e.metaKey?X(0):e.altKey?Y(-1):Q(-1)};return r.createElement(c.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=N.onKeyDown)||t.call(N,e);let r=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||r))switch(e.key){case"n":case"j":_&&e.ctrlKey&&ee(e);break;case"ArrowDown":ee(e);break;case"p":case"k":_&&e.ctrlKey&&et(e);break;case"ArrowUp":et(e);break;case"Home":e.preventDefault(),X(0);break;case"End":e.preventDefault(),Z();break;case"Enter":{e.preventDefault();let t=U();if(t){let e=new Event(v);t.dispatchEvent(e)}}}}},r.createElement("label",{"cmdk-label":"",htmlFor:q.inputId,id:q.labelId,style:$},u),O(e,e=>r.createElement(w.Provider,{value:T},r.createElement(y.Provider,{value:q},e))))}),E=r.forwardRef((e,t)=>{var n,i;let s=(0,d.useId)(),a=r.useRef(null),o=r.useContext(C),l=r.useContext(y),u=R(e),f=null!=(i=null==(n=u.current)?void 0:n.forceMount)?i:null==o?void 0:o.forceMount;F(()=>{if(!f)return l.item(s,null==o?void 0:o.id)},[f]);let p=I(s,a,[e.value,e.children,a],e.keywords),m=r.useContext(w),g=M(e=>e.value&&e.value===p.current),x=M(e=>!!f||!1===l.filter()||!e.search||e.filtered.items.get(s)>0);function b(){var e,t;j(),null==(t=(e=u.current).onSelect)||t.call(e,p.current)}function j(){m.setState("value",p.current,!0)}if(r.useEffect(()=>{let t=a.current;if(!(!t||e.disabled))return t.addEventListener(v,b),()=>t.removeEventListener(v,b)},[x,e.onSelect,e.disabled]),!x)return null;let{disabled:E,value:A,onSelect:k,forceMount:S,keywords:_,...N}=e;return r.createElement(c.div,{ref:(0,h.composeRefs)(a,t),...N,id:s,"cmdk-item":"",role:"option","aria-disabled":!!E,"aria-selected":!!g,"data-disabled":!!E,"data-selected":!!g,onPointerMove:E||l.getDisablePointerSelection()?void 0:j,onClick:E?void 0:b},e.children)}),A=r.forwardRef((e,t)=>{let{heading:n,children:i,forceMount:s,...a}=e,o=(0,d.useId)(),l=r.useRef(null),u=r.useRef(null),f=(0,d.useId)(),p=r.useContext(y),m=M(e=>!!s||!1===p.filter()||!e.search||e.filtered.groups.has(o));F(()=>p.group(o),[]),I(o,l,[e.value,e.heading,u]);let g=r.useMemo(()=>({id:o,forceMount:s}),[s]);return r.createElement(c.div,{ref:(0,h.composeRefs)(l,t),...a,"cmdk-group":"",role:"presentation",hidden:!m||void 0},n&&r.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),O(e,e=>r.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},r.createElement(C.Provider,{value:g},e))))}),k=r.forwardRef((e,t)=>{let{alwaysRender:n,...i}=e,s=r.useRef(null),a=M(e=>!e.search);return n||a?r.createElement(c.div,{ref:(0,h.composeRefs)(s,t),...i,"cmdk-separator":"",role:"separator"}):null}),S=r.forwardRef((e,t)=>{let{onValueChange:n,...i}=e,s=null!=e.value,a=r.useContext(w),o=M(e=>e.search),l=M(e=>e.selectedItemId),u=r.useContext(y);return r.useEffect(()=>{null!=e.value&&a.setState("search",e.value)},[e.value]),r.createElement(c.input,{ref:t,...i,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":l,id:u.inputId,type:"text",value:s?e.value:o,onChange:e=>{s||a.setState("search",e.target.value),null==n||n(e.target.value)}})}),_=r.forwardRef((e,t)=>{let{children:n,label:i="Suggestions",...s}=e,a=r.useRef(null),o=r.useRef(null),l=M(e=>e.selectedItemId),u=r.useContext(y);return r.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,r,n=new ResizeObserver(()=>{r=requestAnimationFrame(()=>{let r=e.offsetHeight;t.style.setProperty("--cmdk-list-height",r.toFixed(1)+"px")})});return n.observe(e),()=>{cancelAnimationFrame(r),n.unobserve(e)}}},[]),r.createElement(c.div,{ref:(0,h.composeRefs)(a,t),...s,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":l,"aria-label":i,id:u.listId},O(e,e=>r.createElement("div",{ref:(0,h.composeRefs)(o,u.listInnerRef),"cmdk-list-sizer":""},e)))}),N=r.forwardRef((e,t)=>{let{open:n,onOpenChange:i,overlayClassName:s,contentClassName:a,container:o,...u}=e;return r.createElement(l.Root,{open:n,onOpenChange:i},r.createElement(l.Portal,{container:o},r.createElement(l.Overlay,{"cmdk-overlay":"",className:s}),r.createElement(l.Content,{"aria-label":e.label,"cmdk-dialog":"",className:a},r.createElement(j,{ref:t,...u}))))}),P=Object.assign(j,{List:_,Item:E,Input:S,Group:A,Separator:k,Dialog:N,Empty:r.forwardRef((e,t)=>M(e=>0===e.filtered.count)?r.createElement(c.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:r.forwardRef((e,t)=>{let{progress:n,children:i,label:s="Loading...",...a}=e;return r.createElement(c.div,{ref:t,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":s},O(e,e=>r.createElement("div",{"aria-hidden":!0},e)))})});function R(e){let t=r.useRef(e);return F(()=>{t.current=e}),t}var F="undefined"==typeof window?r.useEffect:r.useLayoutEffect;function D(e){let t=r.useRef();return void 0===t.current&&(t.current=e()),t}function M(e){let t=r.useContext(w),n=()=>e(t.snapshot());return r.useSyncExternalStore(t.subscribe,n,n)}function I(e,t,n,i=[]){let s=r.useRef(),a=r.useContext(y);return F(()=>{var r;let o=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():s.current}})(),l=i.map(e=>e.trim());a.value(e,o,l),null==(r=t.current)||r.setAttribute(x,o),s.current=o}),s}var B=()=>{let[e,t]=r.useState(),n=D(()=>new Map);return F(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function O({asChild:e,children:t},n){let i;return e&&r.isValidElement(t)?r.cloneElement("function"==typeof(i=t.type)?i(t.props):"render"in i?i.render(t.props):t,{ref:t.ref},n(t.props.children)):n(t)}var $={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},L=e.i(300329),z=e.i(632137),T=e.i(439779);let q=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(P,{ref:n,className:(0,z.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...r}));q.displayName=P.displayName;let H=({children:e,...r})=>(0,t.jsx)(T.Dialog,{...r,children:(0,t.jsx)(T.DialogContent,{className:"overflow-hidden p-0 shadow-lg",children:(0,t.jsx)(q,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:e})})}),W=r.forwardRef(({className:e,...r},n)=>(0,t.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,t.jsx)(L.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,t.jsx)(P.Input,{ref:n,className:(0,z.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...r})]}));W.displayName=P.Input.displayName;let G=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(P.List,{ref:n,className:(0,z.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...r}));G.displayName=P.List.displayName;let V=r.forwardRef((e,r)=>(0,t.jsx)(P.Empty,{ref:r,className:"py-6 text-center text-sm",...e}));V.displayName=P.Empty.displayName;let K=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(P.Group,{ref:n,className:(0,z.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...r}));K.displayName=P.Group.displayName;let U=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(P.Separator,{ref:n,className:(0,z.cn)("-mx-1 h-px bg-border",e),...r}));U.displayName=P.Separator.displayName;let J=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(P.Item,{ref:n,className:(0,z.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...r}));J.displayName=P.Item.displayName,e.s(["Command",()=>q,"CommandDialog",()=>H,"CommandEmpty",()=>V,"CommandGroup",()=>K,"CommandInput",()=>W,"CommandItem",()=>J,"CommandList",()=>G,"CommandSeparator",()=>U],694541)},426160,e=>{"use strict";var t=e.i(890022),r=e.i(987985),n=e.i(805970),i=e.i(230827),s=e.i(525761),a=e.i(122436);let o=(0,a.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);var l=e.i(954049),u=e.i(431231);let c=(0,a.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),d=(0,a.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var h=e.i(81795),f=e.i(235893);function p(){let{theme:e,setTheme:r}=(0,h.useTheme)(),[n,i]=u.useState(!1);return(u.useEffect(()=>{i(!0)},[]),n)?(0,t.jsxs)(f.Button,{variant:"ghost",size:"icon",onClick:()=>r("light"===e?"dark":"light"),"aria-label":"Toggle theme",children:[(0,t.jsx)(d,{className:"h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,t.jsx)(c,{className:"absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"})]}):(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",disabled:!0,"aria-label":"Toggle theme",children:(0,t.jsx)(d,{className:"h-5 w-5"})})}var m=e.i(20315),g=e.i(300329),v=e.i(40843);let x=(0,a.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);function b(e){return Array.isArray?Array.isArray(e):"[object Array]"===k(e)}let y=1/0;function w(e){return"string"==typeof e}function C(e){return"number"==typeof e}function j(e){return"object"==typeof e}function E(e){return null!=e}function A(e){return!e.trim().length}function k(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let S=Object.prototype.hasOwnProperty;class _{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let r=N(e);this._keys.push(r),this._keyMap[r.id]=r,t+=r.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function N(e){let t=null,r=null,n=null,i=1,s=null;if(w(e)||b(e))n=e,t=P(e),r=R(e);else{if(!S.call(e,"name"))throw Error("Missing name property in key");let a=e.name;if(n=a,S.call(e,"weight")&&(i=e.weight)<=0)throw Error(`Property 'weight' in key '${a}' must be a positive integer`);t=P(a),r=R(a),s=e.getFn}return{path:t,id:r,weight:i,src:n,getFn:s}}function P(e){return b(e)?e:e.split(".")}function R(e){return b(e)?e.join("."):e}var F={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,useExtendedSearch:!1,getFn:function(e,t){let r=[],n=!1,i=(e,t,s)=>{if(E(e))if(t[s]){var a,o;let l=e[t[s]];if(!E(l))return;if(s===t.length-1&&(w(l)||C(l)||!0===(a=l)||!1===a||j(o=a)&&null!==o&&"[object Boolean]"==k(a)))r.push(null==l?"":function(e){if("string"==typeof e)return e;let t=e+"";return"0"==t&&1/e==-y?"-0":t}(l));else if(b(l)){n=!0;for(let e=0,r=l.length;e<r;e+=1)i(l[e],t,s+1)}else t.length&&i(l,t,s+1)}else r.push(e)};return i(e,w(t)?t.split("."):t,0),n?r:r[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};let D=/[^ ]+/g;class M{constructor({getFn:e=F.getFn,fieldNormWeight:t=F.fieldNormWeight}={}){this.norm=function(e=1,t=3){let r=new Map,n=Math.pow(10,t);return{get(t){let i=t.match(D).length;if(r.has(i))return r.get(i);let s=parseFloat(Math.round(1/Math.pow(i,.5*e)*n)/n);return r.set(i,s),s},clear(){r.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,w(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();w(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,r=this.size();t<r;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!E(e)||A(e))return;let r={v:e,i:t,n:this.norm.get(e)};this.records.push(r)}_addObject(e,t){let r={i:t,$:{}};this.keys.forEach((t,n)=>{let i=t.getFn?t.getFn(e):this.getFn(e,t.path);if(E(i)){if(b(i)){let e=[],t=[{nestedArrIndex:-1,value:i}];for(;t.length;){let{nestedArrIndex:r,value:n}=t.pop();if(E(n))if(w(n)&&!A(n)){let t={v:n,i:r,n:this.norm.get(n)};e.push(t)}else b(n)&&n.forEach((e,r)=>{t.push({nestedArrIndex:r,value:e})})}r.$[n]=e}else if(w(i)&&!A(i)){let e={v:i,n:this.norm.get(i)};r.$[n]=e}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function I(e,t,{getFn:r=F.getFn,fieldNormWeight:n=F.fieldNormWeight}={}){let i=new M({getFn:r,fieldNormWeight:n});return i.setKeys(e.map(N)),i.setSources(t),i.create(),i}function B(e,{errors:t=0,currentLocation:r=0,expectedLocation:n=0,distance:i=F.distance,ignoreLocation:s=F.ignoreLocation}={}){let a=t/e.length;if(s)return a;let o=Math.abs(n-r);return i?a+o/i:o?1:a}let O=String.prototype.normalize?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):e=>e;class ${constructor(e,{location:t=F.location,threshold:r=F.threshold,distance:n=F.distance,includeMatches:i=F.includeMatches,findAllMatches:s=F.findAllMatches,minMatchCharLength:a=F.minMatchCharLength,isCaseSensitive:o=F.isCaseSensitive,ignoreDiacritics:l=F.ignoreDiacritics,ignoreLocation:u=F.ignoreLocation}={}){if(this.options={location:t,threshold:r,distance:n,includeMatches:i,findAllMatches:s,minMatchCharLength:a,isCaseSensitive:o,ignoreDiacritics:l,ignoreLocation:u},e=o?e:e.toLowerCase(),e=l?O(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const c=(e,t)=>{this.chunks.push({pattern:e,alphabet:function(e){let t={};for(let r=0,n=e.length;r<n;r+=1){let i=e.charAt(r);t[i]=(t[i]||0)|1<<n-r-1}return t}(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0;const t=d%32,r=d-t;for(;e<r;)c(this.pattern.substr(e,32),e),e+=32;if(t){const e=d-32;c(this.pattern.substr(e),e)}}else c(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:r,includeMatches:n}=this.options;if(e=t?e:e.toLowerCase(),e=r?O(e):e,this.pattern===e){let t={isMatch:!0,score:0};return n&&(t.indices=[[0,e.length-1]]),t}let{location:i,distance:s,threshold:a,findAllMatches:o,minMatchCharLength:l,ignoreLocation:u}=this.options,c=[],d=0,h=!1;this.chunks.forEach(({pattern:t,alphabet:r,startIndex:f})=>{let{isMatch:p,score:m,indices:g}=function(e,t,r,{location:n=F.location,distance:i=F.distance,threshold:s=F.threshold,findAllMatches:a=F.findAllMatches,minMatchCharLength:o=F.minMatchCharLength,includeMatches:l=F.includeMatches,ignoreLocation:u=F.ignoreLocation}={}){let c;if(t.length>32)throw Error("Pattern length exceeds max of 32.");let d=t.length,h=e.length,f=Math.max(0,Math.min(n,h)),p=s,m=f,g=o>1||l,v=g?Array(h):[];for(;(c=e.indexOf(t,m))>-1;)if(p=Math.min(B(t,{currentLocation:c,expectedLocation:f,distance:i,ignoreLocation:u}),p),m=c+d,g){let e=0;for(;e<d;)v[c+e]=1,e+=1}m=-1;let x=[],b=1,y=d+h,w=1<<d-1;for(let n=0;n<d;n+=1){let s=0,o=y;for(;s<o;)B(t,{errors:n,currentLocation:f+o,expectedLocation:f,distance:i,ignoreLocation:u})<=p?s=o:y=o,o=Math.floor((y-s)/2+s);y=o;let l=Math.max(1,f-o+1),c=a?h:Math.min(f+o,h)+d,C=Array(c+2);C[c+1]=(1<<n)-1;for(let s=c;s>=l;s-=1){let a=s-1,o=r[e.charAt(a)];if(g&&(v[a]=+!!o),C[s]=(C[s+1]<<1|1)&o,n&&(C[s]|=(x[s+1]|x[s])<<1|1|x[s+1]),C[s]&w&&(b=B(t,{errors:n,currentLocation:a,expectedLocation:f,distance:i,ignoreLocation:u}))<=p){if(p=b,(m=a)<=f)break;l=Math.max(1,2*f-m)}}if(B(t,{errors:n+1,currentLocation:f,expectedLocation:f,distance:i,ignoreLocation:u})>p)break;x=C}let C={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=function(e=[],t=F.minMatchCharLength){let r=[],n=-1,i=-1,s=0;for(let a=e.length;s<a;s+=1){let a=e[s];a&&-1===n?n=s:a||-1===n||((i=s-1)-n+1>=t&&r.push([n,i]),n=-1)}return e[s-1]&&s-n>=t&&r.push([n,s-1]),r}(v,o);e.length?l&&(C.indices=e):C.isMatch=!1}return C}(e,t,r,{location:i+f,distance:s,threshold:a,findAllMatches:o,minMatchCharLength:l,includeMatches:n,ignoreLocation:u});p&&(h=!0),d+=m,p&&g&&(c=[...c,...g])});let f={isMatch:h,score:h?d/this.chunks.length:1};return h&&n&&(f.indices=c),f}}class L{constructor(e){this.pattern=e}static isMultiMatch(e){return z(e,this.multiRegex)}static isSingleMatch(e){return z(e,this.singleRegex)}search(){}}function z(e,t){let r=e.match(t);return r?r[1]:null}class T extends L{constructor(e,{location:t=F.location,threshold:r=F.threshold,distance:n=F.distance,includeMatches:i=F.includeMatches,findAllMatches:s=F.findAllMatches,minMatchCharLength:a=F.minMatchCharLength,isCaseSensitive:o=F.isCaseSensitive,ignoreDiacritics:l=F.ignoreDiacritics,ignoreLocation:u=F.ignoreLocation}={}){super(e),this._bitapSearch=new $(e,{location:t,threshold:r,distance:n,includeMatches:i,findAllMatches:s,minMatchCharLength:a,isCaseSensitive:o,ignoreDiacritics:l,ignoreLocation:u})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class q extends L{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,r=0,n=[],i=this.pattern.length;for(;(t=e.indexOf(this.pattern,r))>-1;)r=t+i,n.push([t,r-1]);let s=!!n.length;return{isMatch:s,score:+!s,indices:n}}}let H=[class extends L{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){let t=e===this.pattern;return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},q,class extends L{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){let t=e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},class extends L{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){let t=!e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends L{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){let t=!e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends L{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){let t=e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[e.length-this.pattern.length,e.length-1]}}},class extends L{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){let t=-1===e.indexOf(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},T],W=H.length,G=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,V=new Set([T.type,q.type]),K=[];function U(e,t){for(let r=0,n=K.length;r<n;r+=1){let n=K[r];if(n.condition(e,t))return new n(e,t)}return new $(e,t)}let J="$and",X="$path",Q=e=>!!(e[J]||e.$or),Y=e=>({[J]:Object.keys(e).map(t=>({[t]:e[t]}))});function Z(e,t,{auto:r=!0}={}){let n=e=>{let i=Object.keys(e),s=!!e[X];if(!s&&i.length>1&&!Q(e))return n(Y(e));if(!b(e)&&j(e)&&!Q(e)){let n=s?e[X]:i[0],a=s?e.$val:e[n];if(!w(a))throw Error(`Invalid value for key ${n}`);let o={keyId:R(n),pattern:a};return r&&(o.searcher=U(a,t)),o}let a={children:[],operator:i[0]};return i.forEach(t=>{let r=e[t];b(r)&&r.forEach(e=>{a.children.push(n(e))})}),a};return Q(e)||(e=Y(e)),n(e)}function ee(e,t){let r=e.matches;t.matches=[],E(r)&&r.forEach(e=>{if(!E(e.indices)||!e.indices.length)return;let{indices:r,value:n}=e,i={indices:r,value:n};e.key&&(i.key=e.key.src),e.idx>-1&&(i.refIndex=e.idx),t.matches.push(i)})}function et(e,t){t.score=e.score}class er{constructor(e,t={},r){this.options={...F,...t},this.options.useExtendedSearch,this._keyStore=new _(this.options.keys),this.setCollection(e,r)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof M))throw Error("Incorrect 'index' type");this._myIndex=t||I(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){E(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){let t=[];for(let r=0,n=this._docs.length;r<n;r+=1){let i=this._docs[r];e(i,r)&&(this.removeAt(r),r-=1,n-=1,t.push(i))}return t}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:t=-1}={}){let{includeMatches:r,includeScore:n,shouldSort:i,sortFn:s,ignoreFieldNorm:a}=this.options,o=w(e)?w(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return!function(e,{ignoreFieldNorm:t=F.ignoreFieldNorm}){e.forEach(e=>{let r=1;e.matches.forEach(({key:e,norm:n,score:i})=>{let s=e?e.weight:null;r*=Math.pow(0===i&&s?Number.EPSILON:i,(s||1)*(t?1:n))}),e.score=r})}(o,{ignoreFieldNorm:a}),i&&o.sort(s),C(t)&&t>-1&&(o=o.slice(0,t)),function(e,t,{includeMatches:r=F.includeMatches,includeScore:n=F.includeScore}={}){let i=[];return r&&i.push(ee),n&&i.push(et),e.map(e=>{let{idx:r}=e,n={item:t[r],refIndex:r};return i.length&&i.forEach(t=>{t(e,n)}),n})}(o,this._docs,{includeMatches:r,includeScore:n})}_searchStringList(e){let t=U(e,this.options),{records:r}=this._myIndex,n=[];return r.forEach(({v:e,i:r,n:i})=>{if(!E(e))return;let{isMatch:s,score:a,indices:o}=t.searchIn(e);s&&n.push({item:e,idx:r,matches:[{score:a,value:e,norm:i,indices:o}]})}),n}_searchLogical(e){let t=Z(e,this.options),r=(e,t,n)=>{if(!e.children){let{keyId:r,searcher:i}=e,s=this._findMatches({key:this._keyStore.get(r),value:this._myIndex.getValueForItemAtKeyId(t,r),searcher:i});return s&&s.length?[{idx:n,item:t,matches:s}]:[]}let i=[];for(let s=0,a=e.children.length;s<a;s+=1){let a=r(e.children[s],t,n);if(a.length)i.push(...a);else if(e.operator===J)return[]}return i},n=this._myIndex.records,i={},s=[];return n.forEach(({$:e,i:n})=>{if(E(e)){let a=r(t,e,n);a.length&&(i[n]||(i[n]={idx:n,item:e,matches:[]},s.push(i[n])),a.forEach(({matches:e})=>{i[n].matches.push(...e)}))}}),s}_searchObjectList(e){let t=U(e,this.options),{keys:r,records:n}=this._myIndex,i=[];return n.forEach(({$:e,i:n})=>{if(!E(e))return;let s=[];r.forEach((r,n)=>{s.push(...this._findMatches({key:r,value:e[n],searcher:t}))}),s.length&&i.push({idx:n,item:e,matches:s})}),i}_findMatches({key:e,value:t,searcher:r}){if(!E(t))return[];let n=[];if(b(t))t.forEach(({v:t,i:i,n:s})=>{if(!E(t))return;let{isMatch:a,score:o,indices:l}=r.searchIn(t);a&&n.push({score:o,key:e,value:t,idx:i,norm:s,indices:l})});else{let{v:i,n:s}=t,{isMatch:a,score:o,indices:l}=r.searchIn(i);a&&n.push({score:o,key:e,value:i,norm:s,indices:l})}return n}}er.version="7.1.0",er.createIndex=I,er.parseIndex=function(e,{getFn:t=F.getFn,fieldNormWeight:r=F.fieldNormWeight}={}){let{keys:n,records:i}=e,s=new M({getFn:t,fieldNormWeight:r});return s.setKeys(n),s.setIndexRecords(i),s},er.config=F,er.parseQuery=Z,function(...e){K.push(...e)}(class{constructor(e,{isCaseSensitive:t=F.isCaseSensitive,ignoreDiacritics:r=F.ignoreDiacritics,includeMatches:n=F.includeMatches,minMatchCharLength:i=F.minMatchCharLength,ignoreLocation:s=F.ignoreLocation,findAllMatches:a=F.findAllMatches,location:o=F.location,threshold:l=F.threshold,distance:u=F.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:r,includeMatches:n,minMatchCharLength:i,findAllMatches:a,ignoreLocation:s,location:o,threshold:l,distance:u},e=t?e:e.toLowerCase(),e=r?O(e):e,this.pattern=e,this.query=function(e,t={}){return e.split("|").map(e=>{let r=e.trim().split(G).filter(e=>e&&!!e.trim()),n=[];for(let e=0,i=r.length;e<i;e+=1){let i=r[e],s=!1,a=-1;for(;!s&&++a<W;){let e=H[a],r=e.isMultiMatch(i);r&&(n.push(new e(r,t)),s=!0)}if(!s)for(a=-1;++a<W;){let e=H[a],r=e.isSingleMatch(i);if(r){n.push(new e(r,t));break}}}return n})}(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:r,isCaseSensitive:n,ignoreDiacritics:i}=this.options;e=n?e:e.toLowerCase(),e=i?O(e):e;let s=0,a=[],o=0;for(let n=0,i=t.length;n<i;n+=1){let i=t[n];a.length=0,s=0;for(let t=0,n=i.length;t<n;t+=1){let n=i[t],{isMatch:l,indices:u,score:c}=n.search(e);if(l){if(s+=1,o+=c,r){let e=n.constructor.type;V.has(e)?a=[...a,...u]:a.push(u)}}else{o=0,s=0,a.length=0;break}}if(s){let e={isMatch:!0,score:o/s};return r&&(e.indices=a),e}}return{isMatch:!1,score:1}}});var en=e.i(694541),ei=e.i(168497),es=e.i(597705);function ea({specs:e}){let r=(0,i.useRouter)(),[n,s]=u.useState(!1),[a,o]=u.useState(""),[l,c]=u.useState([]);u.useEffect(()=>{let e=localStorage.getItem("leanspec-recent-searches");e&&c(JSON.parse(e))},[]),u.useEffect(()=>{let e=e=>{"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),s(e=>!e))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let d=u.useMemo(()=>new er(e,{keys:[{name:"title",weight:2},{name:"specNumber",weight:1.5},{name:"tags",weight:.5}],threshold:.4,includeScore:!0,minMatchCharLength:2}),[e]),h=u.useMemo(()=>a?d.search(a).map(e=>e.item):e.slice(0,8),[a,d,e]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:()=>s(!0),className:"inline-flex items-center gap-2 px-2 sm:px-3 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors border rounded-md hover:border-foreground/20",children:[(0,t.jsx)(g.Search,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Quick search..."}),(0,t.jsxs)("kbd",{className:"hidden md:inline-flex pointer-events-none h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100",children:[(0,t.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]}),(0,t.jsxs)(en.CommandDialog,{open:n,onOpenChange:s,children:[(0,t.jsx)(en.CommandInput,{placeholder:"Search specs by title, number, or tags...",value:a,onValueChange:o}),(0,t.jsxs)(en.CommandList,{children:[(0,t.jsx)(en.CommandEmpty,{children:"No specs found."}),!a&&l.length>0&&(0,t.jsx)(en.CommandGroup,{heading:"Recent Searches",children:l.map(e=>(0,t.jsxs)(en.CommandItem,{value:e,onSelect:()=>{o(e)},children:[(0,t.jsx)(v.Clock,{className:"mr-2 h-4 w-4"}),e]},e))}),(0,t.jsx)(en.CommandGroup,{heading:"Specs",children:h.map(e=>(0,t.jsxs)(en.CommandItem,{value:`${e.specNumber} ${e.title}`,onSelect:()=>{var t,n;let i;return t=e.id,void(c(i=[n=e.title,...l.filter(e=>e!==n)].slice(0,5)),localStorage.setItem("leanspec-recent-searches",JSON.stringify(i)),r.push(`/specs/${t}`),s(!1),o(""))},children:[(0,t.jsx)(m.FileText,{className:"mr-2 h-4 w-4"}),(0,t.jsxs)("div",{className:"flex-1 flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"font-medium",children:["#",e.specNumber]}),(0,t.jsx)("span",{className:"truncate",children:e.title})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,t.jsx)(ei.StatusBadge,{status:e.status}),(0,t.jsx)(es.PriorityBadge,{priority:e.priority})]})]})]},e.id))}),a&&(0,t.jsx)(en.CommandGroup,{heading:"Filter by Tag",children:Array.from(new Set(e.flatMap(e=>e.tags))).filter(e=>e.toLowerCase().includes(a.toLowerCase())).slice(0,5).map(e=>(0,t.jsxs)(en.CommandItem,{value:e,onSelect:()=>{r.push(`/?tag=${encodeURIComponent(e)}`),s(!1)},children:[(0,t.jsx)(x,{className:"mr-2 h-4 w-4"}),"Filter by: ",(0,t.jsx)("span",{className:"ml-1 font-medium",children:e})]},e))})]})]})]})}var eo=e.i(308402);function el({items:e}){return(0,t.jsx)("nav",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:e.map((e,n)=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[n>0&&(0,t.jsx)(s.ChevronRight,{className:"h-4 w-4"}),e.href?(0,t.jsx)(r.default,{href:e.href,className:"hover:text-foreground transition-colors",children:e.label}):(0,t.jsx)("span",{className:"text-foreground",children:e.label})]},n))})}function eu({specs:e}){let s=function(e){if("/"===e)return[{label:"Home"}];if("/stats"===e)return[{label:"Home",href:"/"},{label:"Stats"}];if("/specs"===e||e.startsWith("/specs?")){let t=new URLSearchParams(e.split("?")[1]||"").get("view");return[{label:"Home",href:"/"},{label:`Specs (${"board"===t?"Board View":"List View"})`}]}return e.startsWith("/specs/")?[{label:"Home",href:"/"},{label:"Specs",href:"/specs"},{label:e.split("/")[2]}]:"/board"===e?[{label:"Home",href:"/"},{label:"Board"}]:[{label:"Home",href:"/"}]}((0,i.usePathname)());return(0,t.jsx)("header",{className:"sticky top-0 z-50 w-full h-14 border-b border-border bg-background",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-full px-2 sm:px-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4 min-w-0 flex-1",children:[(0,t.jsxs)(f.Button,{variant:"ghost",size:"icon",onClick:()=>{window.toggleMainSidebar&&window.toggleMainSidebar()},className:"lg:hidden h-9 w-9 shrink-0",children:[(0,t.jsx)(o,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle menu"})]}),(0,t.jsxs)(r.default,{href:"/",className:"flex items-center space-x-2 shrink-0",children:[(0,t.jsx)(n.default,{src:"/logo-with-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 dark:hidden"}),(0,t.jsx)(n.default,{src:"/logo-dark-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 hidden dark:block"}),(0,t.jsx)("span",{className:"font-bold text-lg sm:text-xl hidden sm:inline",children:"LeanSpec"})]}),(0,t.jsx)("div",{className:"hidden md:block min-w-0",children:(0,t.jsx)(el,{items:s})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 sm:gap-2 shrink-0",children:[(0,t.jsx)(ea,{specs:e}),(0,t.jsxs)(eo.TooltipProvider,{children:[(0,t.jsxs)(eo.Tooltip,{children:[(0,t.jsx)(eo.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(p,{})})}),(0,t.jsx)(eo.TooltipContent,{children:(0,t.jsx)("p",{children:"Toggle theme"})})]}),(0,t.jsxs)(eo.Tooltip,{children:[(0,t.jsx)(eo.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,t.jsx)("a",{href:"https://www.lean-spec.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",children:(0,t.jsx)(l.BookOpen,{className:"h-5 w-5"})})})}),(0,t.jsx)(eo.TooltipContent,{children:(0,t.jsx)("p",{children:"Documentation"})})]}),(0,t.jsxs)(eo.Tooltip,{children:[(0,t.jsx)(eo.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,t.jsxs)("a",{href:"https://github.com/codervisor/lean-spec",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub repository",children:[(0,t.jsx)(n.default,{src:"/github-mark-white.svg",alt:"GitHub",width:20,height:20,className:"hidden dark:block"}),(0,t.jsx)(n.default,{src:"/github-mark.svg",alt:"GitHub",width:20,height:20,className:"dark:hidden"})]})})}),(0,t.jsx)(eo.TooltipContent,{children:(0,t.jsx)("p",{children:"GitHub repository"})})]})]})]})]})})}e.s(["Navigation",()=>eu],426160)},742634,e=>{"use strict";var t=e.i(890022),r=e.i(987985),n=e.i(230827),i=e.i(497332),s=e.i(20315),a=e.i(122436);let o=(0,a.default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var l=e.i(954049),u=e.i(158362),c=e.i(525761),d=e.i(644021),h=e.i(431231),f=e.i(686266);let p=(0,a.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var m=e.i(963781),g=e.i(723882),v=e.i(828964),x=e.i(632137),b=e.i(235893),y=e.i(694541),w=e.i(291967),C=e.i(430406),j=e.i(79014),E=e.i(255235),A=e.i(254440),k=e.i(31007),S=e.i(315599),_=e.i(306839),N=e.i(214260),P=e.i(111052),R=e.i(122925),F=e.i(665489),D=e.i(393136),M=e.i(73772),I=e.i(97496),B="Popover",[O,$]=(0,j.createContextScope)(B,[_.createPopperScope]),L=(0,_.createPopperScope)(),[z,T]=O(B),q=e=>{let{__scopePopover:r,children:n,open:i,defaultOpen:s,onOpenChange:a,modal:o=!1}=e,l=L(r),u=h.useRef(null),[c,d]=h.useState(!1),[f,p]=(0,D.useControllableState)({prop:i,defaultProp:s??!1,onChange:a,caller:B});return(0,t.jsx)(_.Root,{...l,children:(0,t.jsx)(z,{scope:r,contentId:(0,S.useId)(),triggerRef:u,open:f,onOpenChange:p,onOpenToggle:h.useCallback(()=>p(e=>!e),[p]),hasCustomAnchor:c,onCustomAnchorAdd:h.useCallback(()=>d(!0),[]),onCustomAnchorRemove:h.useCallback(()=>d(!1),[]),modal:o,children:n})})};q.displayName=B;var H="PopoverAnchor";h.forwardRef((e,r)=>{let{__scopePopover:n,...i}=e,s=T(H,n),a=L(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:l}=s;return h.useEffect(()=>(o(),()=>l()),[o,l]),(0,t.jsx)(_.Anchor,{...a,...i,ref:r})}).displayName=H;var W="PopoverTrigger",G=h.forwardRef((e,r)=>{let{__scopePopover:n,...i}=e,s=T(W,n),a=L(n),o=(0,C.useComposedRefs)(r,s.triggerRef),l=(0,t.jsx)(R.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":en(s.open),...i,ref:o,onClick:(0,w.composeEventHandlers)(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?l:(0,t.jsx)(_.Anchor,{asChild:!0,...a,children:l})});G.displayName=W;var V="PopoverPortal",[K,U]=O(V,{forceMount:void 0}),J=e=>{let{__scopePopover:r,forceMount:n,children:i,container:s}=e,a=T(V,r);return(0,t.jsx)(K,{scope:r,forceMount:n,children:(0,t.jsx)(P.Presence,{present:n||a.open,children:(0,t.jsx)(N.Portal,{asChild:!0,container:s,children:i})})})};J.displayName=V;var X="PopoverContent",Q=h.forwardRef((e,r)=>{let n=U(X,e.__scopePopover),{forceMount:i=n.forceMount,...s}=e,a=T(X,e.__scopePopover);return(0,t.jsx)(P.Presence,{present:i||a.open,children:a.modal?(0,t.jsx)(Z,{...s,ref:r}):(0,t.jsx)(ee,{...s,ref:r})})});Q.displayName=X;var Y=(0,F.createSlot)("PopoverContent.RemoveScroll"),Z=h.forwardRef((e,r)=>{let n=T(X,e.__scopePopover),i=h.useRef(null),s=(0,C.useComposedRefs)(r,i),a=h.useRef(!1);return h.useEffect(()=>{let e=i.current;if(e)return(0,M.hideOthers)(e)},[]),(0,t.jsx)(I.RemoveScroll,{as:Y,allowPinchZoom:!0,children:(0,t.jsx)(et,{...e,ref:s,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,w.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:(0,w.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;a.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,w.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),ee=h.forwardRef((e,r)=>{let n=T(X,e.__scopePopover),i=h.useRef(!1),s=h.useRef(!1);return(0,t.jsx)(et,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||n.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,s.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,"pointerdown"===t.detail.originalEvent.type&&(s.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&s.current&&t.preventDefault()}})}),et=h.forwardRef((e,r)=>{let{__scopePopover:n,trapFocus:i,onOpenAutoFocus:s,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:c,onInteractOutside:d,...h}=e,f=T(X,n),p=L(n);return(0,A.useFocusGuards)(),(0,t.jsx)(k.FocusScope,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:s,onUnmountAutoFocus:a,children:(0,t.jsx)(E.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:d,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:(0,t.jsx)(_.Content,{"data-state":en(f.open),role:"dialog",id:f.contentId,...p,...h,ref:r,style:{...h.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),er="PopoverClose";function en(e){return e?"open":"closed"}h.forwardRef((e,r)=>{let{__scopePopover:n,...i}=e,s=T(er,n);return(0,t.jsx)(R.Primitive.button,{type:"button",...i,ref:r,onClick:(0,w.composeEventHandlers)(e.onClick,()=>s.onOpenChange(!1))})}).displayName=er,h.forwardRef((e,r)=>{let{__scopePopover:n,...i}=e,s=L(n);return(0,t.jsx)(_.Arrow,{...s,...i,ref:r})}).displayName="PopoverArrow";let ei=h.forwardRef(({className:e,align:r="center",sideOffset:n=4,...i},s)=>(0,t.jsx)(J,{children:(0,t.jsx)(Q,{ref:s,align:r,sideOffset:n,className:(0,x.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...i})}));ei.displayName=Q.displayName;var es=e.i(20648),ea=e.i(361877);function eo({collapsed:e}){let{mode:r,currentProject:n,projects:i,switchProject:s}=(0,es.useProject)(),[a,o]=(0,h.useState)(!1),[l,u]=(0,h.useState)(!1);if("multi-project"!==r)return null;let c=async e=>{await s(e),o(!1)},d=[...i].sort((e,t)=>e.favorite===t.favorite?0:e.favorite?-1:1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ea.CreateProjectDialog,{open:l,onOpenChange:u}),(0,t.jsxs)(q,{open:a,onOpenChange:o,children:[(0,t.jsx)(G,{asChild:!0,children:(0,t.jsx)(b.Button,{variant:"outline",role:"combobox","aria-expanded":a,className:(0,x.cn)("w-full justify-between",e?"h-9 w-9 p-0 justify-center":"px-3"),children:e?(0,t.jsx)(g.FolderOpen,{className:"h-4 w-4"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 truncate",children:[(0,t.jsx)(g.FolderOpen,{className:"h-4 w-4 shrink-0 opacity-50"}),(0,t.jsx)("span",{className:"truncate",children:n?.name||"Select project..."})]}),(0,t.jsx)(p,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})})}),(0,t.jsx)(ei,{className:"w-[200px] p-0",align:"start",children:(0,t.jsxs)(y.Command,{children:[(0,t.jsx)(y.CommandInput,{placeholder:"Search projects..."}),(0,t.jsxs)(y.CommandList,{children:[(0,t.jsx)(y.CommandEmpty,{children:"No project found."}),(0,t.jsx)(y.CommandGroup,{heading:"Projects",children:d.map(e=>(0,t.jsx)(y.CommandItem,{onSelect:()=>c(e.id),className:"text-sm",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 w-full",children:[(0,t.jsx)(f.Check,{className:(0,x.cn)("mr-2 h-4 w-4",n?.id===e.id?"opacity-100":"opacity-0")}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name}),e.favorite&&(0,t.jsx)(v.Star,{className:"h-3 w-3 fill-yellow-500 text-yellow-500"})]})},e.id))}),(0,t.jsx)(y.CommandSeparator,{}),(0,t.jsx)(y.CommandGroup,{children:(0,t.jsxs)(y.CommandItem,{className:"cursor-pointer",onSelect:()=>{o(!1),u(!0)},children:[(0,t.jsx)(m.Plus,{className:"mr-2 h-4 w-4"}),"Create Project"]})})]})]})})]})]})}function el({href:e,icon:n,children:i,description:s,currentPath:a,isCollapsed:o}){let l=a===e||"/"!==e&&a.startsWith(e);return(0,t.jsxs)(r.default,{href:e,className:(0,x.cn)("flex items-center gap-3 rounded-lg px-3 py-2 transition-colors","hover:bg-accent hover:text-accent-foreground",l&&"bg-accent text-accent-foreground font-medium",o&&"justify-center px-2"),children:[(0,t.jsx)(n,{className:(0,x.cn)("h-5 w-5 shrink-0",l&&"text-primary")}),!o&&(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-sm",children:i}),s&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:s})]})]})}function eu(){let e=(0,n.usePathname)(),[r,a]=h.useState(()=>"true"===localStorage.getItem("main-sidebar-collapsed")),[f,p]=h.useState(!1),[m,g]=h.useState(!1);return h.useEffect(()=>{g(!0)},[]),h.useEffect(()=>{document.documentElement.style.setProperty("--main-sidebar-width",r?"60px":"240px"),localStorage.setItem("main-sidebar-collapsed",String(r))},[r]),h.useEffect(()=>{p(!1)},[e]),h.useEffect(()=>(window.toggleMainSidebar=()=>p(e=>!e),()=>{window.toggleMainSidebar=void 0}),[]),(0,t.jsxs)(t.Fragment,{children:[f&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>p(!1)}),(0,t.jsx)("aside",{className:(0,x.cn)("border-r border-border bg-background transition-all duration-300 flex-shrink-0","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",m&&r?"lg:w-[60px]":"lg:w-[240px]",f&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:(0,t.jsxs)("div",{className:"flex flex-col h-full w-full",children:[(0,t.jsx)("div",{className:"lg:hidden flex justify-end p-2 border-b border-border",children:(0,t.jsxs)(b.Button,{variant:"ghost",size:"sm",onClick:()=>p(!1),className:"h-8 w-8 p-0",children:[(0,t.jsx)(d.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close menu"})]})}),m&&(0,t.jsxs)("nav",{className:"flex-1 px-2 py-4 space-y-1",children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(eo,{collapsed:r&&!f})}),(0,t.jsx)(el,{href:"/",icon:i.Home,currentPath:e,description:!r||f?"Dashboard":void 0,isCollapsed:r&&!f,children:"Home"}),(0,t.jsx)(el,{href:"/specs",icon:s.FileText,currentPath:e,description:!r||f?"All Specifications":void 0,isCollapsed:r&&!f,children:"Specs"}),(0,t.jsx)(el,{href:"/stats",icon:o,currentPath:e,description:!r||f?"Analytics":void 0,isCollapsed:r&&!f,children:"Stats"}),(0,t.jsx)(el,{href:"/context",icon:l.BookOpen,currentPath:e,description:!r||f?"Project Context":void 0,isCollapsed:r&&!f,children:"Context"})]}),(0,t.jsx)("div",{className:"hidden lg:block p-2 border-t border-border",children:(0,t.jsx)(b.Button,{variant:"ghost",size:"sm",onClick:()=>a(!r),className:(0,x.cn)("w-full",m&&r&&"px-2"),children:m&&r?(0,t.jsx)(c.ChevronRight,{className:"h-4 w-4"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.ChevronLeft,{className:"h-4 w-4 mr-2"}),(0,t.jsx)("span",{className:"text-xs",children:"Collapse"})]})})})]})})]})}e.s(["MainSidebar",()=>eu],742634)},305215,e=>{"use strict";var t=e.i(890022),r=e.i(81795);function n({children:e,...n}){return(0,t.jsx)(r.ThemeProvider,{...n,children:e})}e.s(["ThemeProvider",()=>n])},474916,e=>{"use strict";var t=e.i(178420),r=e.i(995403);e.s(["Toast",()=>t.Toast,"toast",()=>r.toast])},124636,e=>{"use strict";var t=e.i(959124),r=e.i(431231);function n(){return"undefined"!=typeof window}function i(){return"production"}function s(){return(n()?window.vam:i())||"production"}function a(){return"production"===s()}function o(){return"development"===s()}function l(e,t,r){var i,s;if(!n()){let e="[Vercel Web Analytics] Please import `track` from `@vercel/analytics/server` when using this function in a server environment";if(a())console.warn(e);else throw Error(e);return}if(!t){null==(i=window.va)||i.call(window,"event",{name:e,options:r});return}try{let n=function(e,t){if(!e)return;let r=e,n=[];for(let[i,s]of Object.entries(e))"object"==typeof s&&null!==s&&(t.strip?r=function(e,{[e]:t,...r}){return r}(i,r):n.push(i));if(n.length>0&&!t.strip)throw Error(`The following properties are not valid: ${n.join(", ")}. Only strings, numbers, booleans, and null are allowed.`);return r}(t,{strip:a()});null==(s=window.va)||s.call(window,"event",{name:e,data:n,options:r})}catch(e){e instanceof Error&&o()&&console.error(e)}}function u(e){return(0,r.useEffect)(()=>{var t;e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]),(0,r.useEffect)(()=>{!function(e={debug:!0}){var t;if(!n())return;!function(e="auto"){if("auto"===e){window.vam=i();return}window.vam=e}(e.mode),window.va||(window.va=function(...e){(window.vaq=window.vaq||[]).push(e)}),e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend));let r=e.scriptSrc?e.scriptSrc:o()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?`${e.basePath}/insights/script.js`:"/_vercel/insights/script.js";if(document.head.querySelector(`script[src*="${r}"]`))return;let s=document.createElement("script");s.src=r,s.defer=!0,s.dataset.sdkn="@vercel/analytics"+(e.framework?`/${e.framework}`:""),s.dataset.sdkv="1.5.0",e.disableAutoTrack&&(s.dataset.disableAutoTrack="1"),e.endpoint?s.dataset.endpoint=e.endpoint:e.basePath&&(s.dataset.endpoint=`${e.basePath}/insights`),e.dsn&&(s.dataset.dsn=e.dsn),s.onerror=()=>{let e=o()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${r}. ${e}`)},o()&&!1===e.debug&&(s.dataset.debug="false"),document.head.appendChild(s)}({framework:e.framework||"react",basePath:e.basePath??function(){if(void 0!==t.default&&void 0!==t.default.env)return t.default.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}(),...void 0!==e.route&&{disableAutoTrack:!0},...e})},[]),(0,r.useEffect)(()=>{e.route&&e.path&&function({route:e,path:t}){var r;null==(r=window.va)||r.call(window,"pageview",{route:e,path:t})}({route:e.route,path:e.path})},[e.route,e.path]),null}e.s(["Analytics",()=>u,"track",()=>l])}]);
@@ -1 +0,0 @@
1
- 4ZnYN1WbN4LGJQOwP6FkT
@@ -1 +0,0 @@
1
- b8a98cb5aeb125b59779ef790da5a13e7ad48091
@@ -1 +0,0 @@
1
- <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
@@ -1 +0,0 @@
1
- <svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#fff"/></svg>
@@ -1 +0,0 @@
1
- <svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
@@ -1,7 +0,0 @@
1
- <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="6" y="4" width="20" height="24" rx="2" fill="#3B82F6"/>
3
- <rect x="9" y="8" width="14" height="2" rx="1" fill="white" opacity="0.9"/>
4
- <rect x="9" y="12" width="10" height="2" rx="1" fill="white" opacity="0.7"/>
5
- <rect x="9" y="16" width="12" height="2" rx="1" fill="white" opacity="0.7"/>
6
- <path d="M19 20 L21 22 L25 18" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.9"/>
7
- </svg>
@@ -1,17 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
2
- <!-- Dark background -->
3
- <rect width="120" height="120" fill="#1a1a2e" rx="8"/>
4
- <!-- Left bracket -->
5
- <path d="M 35 15 L 20 15 L 20 105 L 35 105"
6
- fill="none" stroke="#00d9ff" stroke-width="6" stroke-linecap="round"/>
7
- <!-- Right bracket -->
8
- <path d="M 85 15 L 100 15 L 100 105 L 85 105"
9
- fill="none" stroke="#00d9ff" stroke-width="6" stroke-linecap="round"/>
10
- <!-- LS monogram -->
11
- <text x="60" y="75"
12
- font-family="system-ui, -apple-system, sans-serif"
13
- font-size="42"
14
- font-weight="700"
15
- text-anchor="middle"
16
- fill="#00d9ff">LS</text>
17
- </svg>
@@ -1,17 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
2
- <!-- Light background for contrast -->
3
- <rect width="120" height="120" fill="#ffffff" rx="8"/>
4
- <!-- Left bracket -->
5
- <path d="M 35 15 L 20 15 L 20 105 L 35 105"
6
- fill="none" stroke="#1a1a2e" stroke-width="6" stroke-linecap="round"/>
7
- <!-- Right bracket -->
8
- <path d="M 85 15 L 100 15 L 100 105 L 85 105"
9
- fill="none" stroke="#1a1a2e" stroke-width="6" stroke-linecap="round"/>
10
- <!-- LS monogram -->
11
- <text x="60" y="75"
12
- font-family="system-ui, -apple-system, sans-serif"
13
- font-size="42"
14
- font-weight="700"
15
- text-anchor="middle"
16
- fill="#1a1a2e">LS</text>
17
- </svg>
@@ -1,17 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
2
- <!-- Light background for contrast -->
3
- <rect width="120" height="120" fill="#ffffff" rx="8"/>
4
- <!-- Left bracket -->
5
- <path d="M 35 15 L 20 15 L 20 105 L 35 105"
6
- fill="none" stroke="#1a1a2e" stroke-width="6" stroke-linecap="round"/>
7
- <!-- Right bracket -->
8
- <path d="M 85 15 L 100 15 L 100 105 L 85 105"
9
- fill="none" stroke="#1a1a2e" stroke-width="6" stroke-linecap="round"/>
10
- <!-- LS monogram -->
11
- <text x="60" y="75"
12
- font-family="system-ui, -apple-system, sans-serif"
13
- font-size="42"
14
- font-weight="700"
15
- text-anchor="middle"
16
- fill="#1a1a2e">LS</text>
17
- </svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
@@ -1,196 +0,0 @@
1
- # LeanSpec Web
2
-
3
- > Interactive spec showcase platform for browsing and exploring LeanSpec specifications
4
-
5
- A fullstack web application built with Next.js 16, showcasing LeanSpec's own specifications in a rich, interactive format. This is the MVP (Phase 1) implementation for spec 035-live-specs-showcase.
6
-
7
- ## Features
8
-
9
- ✨ **Core Features (MVP - Phase 1)**:
10
- - 📊 **Stats Dashboard**: Visual overview of project metrics and completion rates
11
- - 🔍 **Search & Filtering**: Find specs by title, name, tags, status, or priority
12
- - 📋 **Spec Browser**: Table view with sortable columns and detailed information
13
- - 🎯 **Kanban Board**: Visual workflow tracking across all statuses
14
- - 📝 **Rich Markdown Rendering**: Syntax-highlighted code blocks and GitHub-flavored markdown
15
- - 🎨 **Modern UI**: Built with shadcn/ui components and Tailwind CSS
16
- - 🌐 **Navigation**: Clean header with routing between pages
17
- - ⚡ **Loading States**: Skeleton loaders for better UX
18
- - 🛡️ **Error Handling**: Custom 404 and error pages
19
-
20
- ## Tech Stack
21
-
22
- - **Framework**: Next.js 16 with App Router
23
- - **UI**: React 19, Tailwind CSS 4, shadcn/ui components
24
- - **Database**: SQLite (dev) with Drizzle ORM
25
- - **Markdown**: react-markdown with syntax highlighting (highlight.js)
26
- - **Icons**: lucide-react
27
- - **Testing**: Vitest
28
-
29
- ## Getting Started
30
-
31
- ### Prerequisites
32
-
33
- - Node.js 18+
34
- - pnpm (monorepo package manager)
35
-
36
- ### Installation
37
-
38
- From the monorepo root:
39
-
40
- ```bash
41
- # Install dependencies
42
- pnpm install
43
-
44
- # Navigate to web package
45
- cd packages/web
46
- ```
47
-
48
- ### Database Setup
49
-
50
- ```bash
51
- # Generate migrations
52
- npm run db:generate
53
-
54
- # Run migrations
55
- npm run db:migrate
56
-
57
- # Seed database with LeanSpec specs
58
- npm run db:seed
59
- ```
60
-
61
- ### Development
62
-
63
- ```bash
64
- # Start dev server (from packages/web)
65
- npm run dev
66
- ```
67
-
68
- Open [http://localhost:3000](http://localhost:3000) to see the application.
69
-
70
- ### Build
71
-
72
- ```bash
73
- # Type check
74
- npm run typecheck
75
-
76
- # Build for production
77
- npm run build
78
-
79
- # Start production server
80
- npm run start
81
- ```
82
-
83
- ### Testing
84
-
85
- ```bash
86
- # Run tests once
87
- npm run test
88
-
89
- # Watch mode
90
- npm run test:watch
91
-
92
- # UI mode
93
- npm run test:ui
94
- ```
95
-
96
- ## Project Structure
97
-
98
- ```
99
- src/
100
- ├── app/ # Next.js App Router pages
101
- │ ├── api/ # API routes
102
- │ │ ├── projects/ # Projects endpoints
103
- │ │ ├── specs/ # Specs endpoints
104
- │ │ └── stats/ # Statistics endpoint
105
- │ ├── board/ # Kanban board page
106
- │ ├── specs/[id]/ # Spec detail page
107
- │ ├── error.tsx # Error boundary
108
- │ ├── loading.tsx # Global loading state
109
- │ ├── not-found.tsx # 404 page
110
- │ ├── page.tsx # Home page (server)
111
- │ └── home-client.tsx # Home page (client)
112
- ├── components/
113
- │ ├── ui/ # shadcn/ui components
114
- │ │ ├── badge.tsx
115
- │ │ ├── button.tsx
116
- │ │ ├── card.tsx
117
- │ │ ├── input.tsx
118
- │ │ └── skeleton.tsx
119
- │ └── navigation.tsx # Header navigation
120
- ├── lib/
121
- │ ├── db/ # Database layer
122
- │ │ ├── index.ts # DB connection
123
- │ │ ├── schema.ts # Drizzle schema
124
- │ │ ├── queries.ts # Data access layer
125
- │ │ ├── migrate.ts # Migration runner
126
- │ │ └── seed.ts # Database seeding
127
- │ └── utils.ts # Utility functions
128
- └── types/ # TypeScript types
129
- ```
130
-
131
- ## Database Schema
132
-
133
- - **projects**: GitHub repositories using LeanSpec
134
- - **specs**: Cached specification content from GitHub
135
- - **spec_relationships**: Dependencies and relationships between specs
136
- - **sync_logs**: Audit trail for GitHub sync operations
137
-
138
- ## Available Scripts
139
-
140
- | Command | Description |
141
- |---------|-------------|
142
- | `npm run dev` | Start development server |
143
- | `npm run build` | Build for production |
144
- | `npm run start` | Start production server |
145
- | `npm run lint` | Run ESLint |
146
- | `npm run typecheck` | Type check with TypeScript |
147
- | `npm run test` | Run tests once |
148
- | `npm run test:watch` | Run tests in watch mode |
149
- | `npm run test:ui` | Run tests with UI |
150
- | `npm run db:generate` | Generate Drizzle migrations |
151
- | `npm run db:migrate` | Run database migrations |
152
- | `npm run db:studio` | Open Drizzle Studio |
153
- | `npm run db:seed` | Seed database with specs |
154
-
155
- ## Roadmap
156
-
157
- ### ✅ Phase 1: Foundation & MVP (Complete)
158
- - Core pages and navigation
159
- - Search and filtering
160
- - Kanban board view
161
- - Error handling and loading states
162
- - Basic testing
163
-
164
- ### 🚧 Phase 2: GitHub Integration (Upcoming)
165
- - Multi-project support
166
- - Automatic GitHub sync
167
- - Scheduled cron jobs
168
- - Enhanced error handling
169
-
170
- ### 📋 Phase 3: Community & Discovery (Future)
171
- - Public project explorer
172
- - Full-text search across projects
173
- - Spec relationship visualization
174
- - Export to PDF
175
-
176
- ### 🔮 Phase 4: Advanced Features (Future)
177
- - GitHub OAuth for private repos
178
- - Real-time webhooks
179
- - Version history and diffs
180
- - Team collaboration features
181
-
182
- ## Contributing
183
-
184
- This is part of the LeanSpec monorepo. See the main README for contribution guidelines.
185
-
186
- ## License
187
-
188
- Same as the LeanSpec project.
189
-
190
- ## Documentation
191
-
192
- For detailed architecture, design decisions, and implementation details, see:
193
- - [Spec 035 README](../../specs/035-live-specs-showcase/README.md)
194
- - [Architecture](../../specs/035-live-specs-showcase/ARCHITECTURE.md)
195
- - [Implementation Plan](../../specs/035-live-specs-showcase/IMPLEMENTATION.md)
196
-
@@ -1,75 +0,0 @@
1
- {
2
- "name": "@leanspec/web",
3
- "version": "0.2.2",
4
- "description": "LeanSpec Web: Fullstack spec showcase platform",
5
- "private": true,
6
- "type": "module",
7
- "scripts": {
8
- "dev": "next dev",
9
- "build": "next build",
10
- "start": "next start",
11
- "lint": "eslint",
12
- "typecheck": "tsc --noEmit",
13
- "test": "vitest run",
14
- "test:watch": "vitest",
15
- "test:ui": "vitest --ui",
16
- "db:generate": "drizzle-kit generate",
17
- "db:migrate": "tsx src/lib/db/migrate.ts",
18
- "db:studio": "drizzle-kit studio",
19
- "db:seed": "tsx src/lib/db/seed.ts"
20
- },
21
- "dependencies": {
22
- "@leanspec/core": "workspace:*",
23
- "@radix-ui/react-avatar": "^1.1.11",
24
- "@radix-ui/react-dialog": "^1.1.15",
25
- "@radix-ui/react-dropdown-menu": "^2.1.16",
26
- "@radix-ui/react-progress": "^1.1.8",
27
- "@radix-ui/react-select": "^2.1.14",
28
- "@radix-ui/react-separator": "^1.1.8",
29
- "@radix-ui/react-slot": "^1.2.4",
30
- "@radix-ui/react-tabs": "^1.1.13",
31
- "@radix-ui/react-tooltip": "^1.2.8",
32
- "better-sqlite3": "^11.7.0",
33
- "class-variance-authority": "^0.7.1",
34
- "clsx": "^2.0.0",
35
- "cmdk": "^1.1.1",
36
- "dayjs": "^1.11.19",
37
- "drizzle-orm": "^0.38.3",
38
- "fuse.js": "^7.1.0",
39
- "gray-matter": "^4.0.3",
40
- "highlight.js": "^11.11.1",
41
- "lucide-react": "^0.553.0",
42
- "next": "16.0.1",
43
- "next-themes": "^0.4.6",
44
- "react": "19.2.0",
45
- "react-dom": "19.2.0",
46
- "react-markdown": "^9.0.2",
47
- "recharts": "^3.4.1",
48
- "rehype-highlight": "^7.0.1",
49
- "remark-gfm": "^4.0.0",
50
- "sonner": "^2.0.7",
51
- "swr": "^2.3.6",
52
- "tailwind-merge": "^3.4.0",
53
- "zod": "^3.25.76"
54
- },
55
- "devDependencies": {
56
- "@tailwindcss/typography": "^0.5.15",
57
- "@types/better-sqlite3": "^7.6.12",
58
- "@types/node": "^20",
59
- "@types/react": "^19",
60
- "@types/react-dom": "^19",
61
- "@vitest/ui": "^4.0.6",
62
- "autoprefixer": "^10.4.20",
63
- "drizzle-kit": "^0.31.0",
64
- "eslint": "^9",
65
- "eslint-config-next": "16.0.1",
66
- "postcss": "^8.4.49",
67
- "tailwindcss": "^3.4.17",
68
- "tsx": "^4.19.2",
69
- "typescript": "^5",
70
- "vitest": "^4.0.6"
71
- },
72
- "engines": {
73
- "node": ">=20"
74
- }
75
- }
@@ -1,44 +0,0 @@
1
- performance.mark('next-start');
2
- import path from 'node:path'
3
- import { fileURLToPath } from 'node:url'
4
- import module from 'node:module'
5
- const require = module.createRequire(import.meta.url)
6
- const __dirname = fileURLToPath(new URL('.', import.meta.url))
7
-
8
-
9
- const dir = path.join(__dirname)
10
-
11
- process.env.NODE_ENV = 'production'
12
- process.chdir(__dirname)
13
-
14
- const currentPort = parseInt(process.env.PORT, 10) || 3000
15
- const hostname = process.env.HOSTNAME || '0.0.0.0'
16
-
17
- let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
18
- const nextConfig = {"env":{},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/marvin/projects/codervisor/lean-spec","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientSegmentCache":true,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":31,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/marvin/projects/codervisor/lean-spec"},"distDirRoot":".next"}
19
-
20
- process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
21
-
22
- require('next')
23
- const { startServer } = require('next/dist/server/lib/start-server')
24
-
25
- if (
26
- Number.isNaN(keepAliveTimeout) ||
27
- !Number.isFinite(keepAliveTimeout) ||
28
- keepAliveTimeout < 0
29
- ) {
30
- keepAliveTimeout = undefined
31
- }
32
-
33
- startServer({
34
- dir,
35
- isDev: false,
36
- config: nextConfig,
37
- hostname,
38
- port: currentPort,
39
- allowRetry: false,
40
- keepAliveTimeout,
41
- }).catch((err) => {
42
- console.error(err);
43
- process.exit(1);
44
- });