@leanspec/ui 0.2.9 → 0.2.10

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 (609) hide show
  1. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/README.md +2 -2
  2. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
  3. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
  4. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/package.json +11 -5
  5. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  6. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  7. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  8. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  9. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  10. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  11. package/.next/standalone/node_modules/.pnpm/@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  12. package/.next/standalone/node_modules/.pnpm/{@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64 → @img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64}/package.json +13 -7
  13. package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  14. package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  15. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  16. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  17. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +11 -0
  18. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  19. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  20. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  21. package/.next/standalone/packages/ui/.next/routes-manifest.json +88 -0
  22. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  23. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  25. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  27. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  33. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -20
  34. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -20
  35. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +23 -26
  36. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  37. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  38. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  39. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/build-manifest.json +11 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/server-reference-manifest.json +4 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +8 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.map +5 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route_client-reference-manifest.js +2 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/app-paths-manifest.json +3 -0
  55. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/build-manifest.json +11 -0
  56. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/server-reference-manifest.json +4 -0
  57. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +8 -0
  58. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.map +5 -0
  59. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -0
  60. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route_client-reference-manifest.js +2 -0
  61. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +1 -3
  62. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/app-paths-manifest.json +3 -0
  64. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/build-manifest.json +11 -0
  65. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/server-reference-manifest.json +4 -0
  66. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js +8 -0
  67. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.map +5 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.nft.json +1 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route_client-reference-manifest.js +2 -0
  70. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/app-paths-manifest.json +3 -0
  71. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/build-manifest.json +11 -0
  72. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/server-reference-manifest.json +4 -0
  73. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js +8 -0
  74. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.map +5 -0
  75. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.nft.json +1 -0
  76. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route_client-reference-manifest.js +2 -0
  77. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +1 -2
  78. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  79. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +1 -1
  80. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  81. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -2
  82. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  83. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +1 -1
  84. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  85. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/app-paths-manifest.json +3 -0
  86. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/build-manifest.json +11 -0
  87. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/server-reference-manifest.json +4 -0
  88. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js +8 -0
  89. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.map +5 -0
  90. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.nft.json +1 -0
  91. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route_client-reference-manifest.js +2 -0
  92. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/app-paths-manifest.json +3 -0
  93. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/build-manifest.json +11 -0
  94. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/server-reference-manifest.json +4 -0
  95. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js +6 -0
  96. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.map +5 -0
  97. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -0
  98. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route_client-reference-manifest.js +2 -0
  99. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -3
  100. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  101. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
  102. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  103. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  104. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  105. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/app-paths-manifest.json +3 -0
  106. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/build-manifest.json +11 -0
  107. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/server-reference-manifest.json +4 -0
  108. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js +8 -0
  109. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.map +5 -0
  110. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.nft.json +1 -0
  111. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route_client-reference-manifest.js +2 -0
  112. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  113. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  114. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  115. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  116. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  117. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  118. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  119. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
  120. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/build-manifest.json +11 -0
  121. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
  122. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js +8 -0
  123. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.map +5 -0
  124. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.nft.json +1 -0
  125. package/.next/standalone/packages/ui/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
  126. package/.next/standalone/packages/ui/.next/server/app/context/page.js +2 -1
  127. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -1
  128. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +1 -1
  129. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +2 -1
  130. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -1
  131. package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +1 -1
  132. package/.next/standalone/packages/ui/.next/server/app/page.js +2 -1
  133. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  134. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  135. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/app-paths-manifest.json +3 -0
  136. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/build-manifest.json +18 -0
  137. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/next-font-manifest.json +6 -0
  138. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/react-loadable-manifest.json +1 -0
  139. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/server-reference-manifest.json +4 -0
  140. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +21 -0
  141. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.map +5 -0
  142. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -0
  143. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +2 -0
  144. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/app-paths-manifest.json +3 -0
  145. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/build-manifest.json +18 -0
  146. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/next-font-manifest.json +6 -0
  147. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/react-loadable-manifest.json +1 -0
  148. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/server-reference-manifest.json +4 -0
  149. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +21 -0
  150. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.map +5 -0
  151. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -0
  152. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +2 -0
  153. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +5 -5
  154. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  155. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  156. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +6 -5
  157. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  158. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  159. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +5 -4
  160. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  161. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  162. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/app-paths-manifest.json +3 -0
  163. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/build-manifest.json +18 -0
  164. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/next-font-manifest.json +6 -0
  165. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/react-loadable-manifest.json +1 -0
  166. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/server-reference-manifest.json +4 -0
  167. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +21 -0
  168. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.map +5 -0
  169. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -0
  170. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +2 -0
  171. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +5 -4
  172. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  173. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  174. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  175. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -25
  176. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -25
  177. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +20 -24
  178. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  179. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  180. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  181. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  182. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  183. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -1
  184. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  185. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  186. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -1
  187. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  188. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  189. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +11 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/284a8_app_api_projects_[id]_specs_[spec]_dependency-graph_route_actions_f18476ed.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_dependencies_route_actions_7ac49581.js +3 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_context_route_actions_96adca70.js +3 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_tags_route_actions_40899744.js +3 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_validate_route_actions_b60372c9.js +3 -0
  195. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_metadata_route_actions_139bb09f.js +3 -0
  196. package/.next/standalone/packages/ui/.next/server/chunks/[externals]_better-sqlite3_a1cc22cb._.js +3 -0
  197. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0afcada7._.js +3 -0
  198. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0e63a440._.js +3 -0
  199. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0ec6f9b0._.js +3 -0
  200. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0edb782a._.js +3 -0
  201. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
  202. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +3 -0
  203. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +1 -1
  204. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__38780e00._.js +3 -0
  205. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a535244._.js +3 -0
  206. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__41f43652._.js +3 -0
  207. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5081ac6f._.js +3 -0
  208. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__526764b2._.js +3 -0
  209. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
  210. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5f1e0195._.js +3 -0
  211. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +3 -0
  212. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__74af400b._.js +3 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
  214. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
  215. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9cf3bf21._.js +3 -0
  216. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
  217. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +3 -0
  218. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c7a4906b._.js +3 -0
  219. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__de15d2aa._.js +3 -0
  220. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e16f7651._.js +3 -0
  221. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2fcb5c6._.js +3 -0
  222. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e8d9903e._.js +3 -0
  223. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f6936b89._.js +3 -0
  224. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_metadata_route_actions_35af9a8c.js +3 -0
  225. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_tags_route_actions_64625b2c.js +3 -0
  226. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_b8c1af87._.js +3 -0
  227. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +72 -1
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_context_page_actions_e4940a48.js +3 -0
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_stats_page_actions_82a85203.js +3 -0
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__174e1ca1._.js +3 -0
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__212c8580._.js +3 -0
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2b66bcca._.js +3 -0
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__a965a67b._.js → [root-of-the-server]__2d9202e8._.js} +2 -2
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__312221a2._.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__338c65fe._.js +1 -1
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +3 -0
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +1 -1
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__46b71f61._.js +3 -0
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__665ae766._.js +3 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +1 -1
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a34731d8._.js +3 -0
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__12b4eb41._.js → [root-of-the-server]__b0d6e2ad._.js} +2 -2
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c158c9a9._.js +3 -0
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c7735439._.js +3 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dcee62dd._.js +3 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e2c760eb._.js +3 -0
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  252. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_39562b2a._.js → _170362f4._.js} +3 -3
  253. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_1a642e67._.js +4 -0
  254. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_adb9d7cb._.js → _22274047._.js} +2 -2
  255. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_85effc18._.js → _2bc76f88._.js} +3 -3
  256. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_fdd7780b._.js → _3f059230._.js} +3 -3
  257. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_58b98a8f._.js +4 -0
  258. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_59616aa6._.js +3 -0
  259. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_5e1484f9._.js +7 -0
  260. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
  261. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b303aeea._.js +3 -0
  262. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_bae6d2b8._.js → _b421ba4a._.js} +3 -3
  263. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_be836d6a._.js +5 -0
  264. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.js +3 -0
  265. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +3 -0
  266. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f05260d6._.js +4 -0
  267. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_dependencies_page_actions_ba2321b8.js +3 -0
  268. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_0056f1f2._.js +3 -0
  269. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_30b0b05a._.js +3 -0
  270. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_478d57e5._.js +3 -0
  271. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_151891de._.js → node_modules__pnpm_4e3e790c._.js} +2 -2
  272. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_f5b29533._.js → node_modules__pnpm_8680dc29._.js} +2 -2
  273. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_e175b92a._.js → node_modules__pnpm_94a0b1f5._.js} +2 -2
  274. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_1120b57c._.js → node_modules__pnpm_b4ff5c78._.js} +2 -2
  275. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_7791e3b8._.js → node_modules__pnpm_d3262b3d._.js} +2 -2
  276. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +2 -2
  277. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_dependencies_dependencies-client_tsx_0e82443a._.js +1 -1
  278. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_layout_tsx_86c2ce0f._.js +3 -0
  279. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  280. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  281. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +1 -1
  282. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  283. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  284. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  285. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  286. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  287. package/.next/standalone/packages/ui/.next/static/chunks/0c7bbb59865774a1.js +1 -0
  288. package/.next/standalone/packages/ui/.next/static/chunks/0fe978002ba489fb.js +3 -0
  289. package/.next/standalone/packages/ui/.next/static/chunks/1169d4ac8f9df687.js +1 -0
  290. package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
  291. package/.next/standalone/packages/ui/.next/static/chunks/241b6b1c83610ebf.js +1 -0
  292. package/.next/standalone/packages/ui/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
  293. package/.next/{static/chunks/6d938a49daa10208.js → standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js} +1 -1
  294. package/.next/standalone/packages/ui/.next/static/chunks/6d7922838a3513a4.js +1 -0
  295. package/.next/standalone/packages/ui/.next/static/chunks/781328ee279ffc41.js +1 -0
  296. package/.next/standalone/packages/ui/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  297. package/.next/standalone/packages/ui/.next/static/chunks/840c6743a491a398.js +1 -0
  298. package/.next/standalone/packages/ui/.next/static/chunks/937cb3894a606899.js +5 -0
  299. package/.next/standalone/packages/ui/.next/static/chunks/9cf644b700f37825.css +1 -0
  300. package/.next/{static/chunks/a3d7e1be47de010b.js → standalone/packages/ui/.next/static/chunks/bbd498aa5689c057.js} +1 -1
  301. package/.next/standalone/packages/ui/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
  302. package/.next/{static/chunks/979625373d5474b6.js → standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js} +1 -1
  303. package/.next/{static/chunks/e3bc96a996e2a314.js → standalone/packages/ui/.next/static/chunks/d26f4109b44eb240.js} +1 -1
  304. package/.next/standalone/packages/ui/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
  305. package/.next/standalone/packages/ui/.next/static/chunks/dbce73f7087f2470.js +10 -0
  306. package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
  307. package/.next/standalone/packages/ui/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
  308. package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
  309. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +1 -9
  310. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +1 -1
  311. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +3 -7
  312. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +3 -5
  313. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +1 -2
  314. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +3 -8
  315. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +259 -73
  316. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +3 -5
  317. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +3 -5
  318. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +3 -5
  319. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +23 -33
  320. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +3 -7
  321. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +14 -25
  322. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
  323. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
  324. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
  325. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
  326. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
  327. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
  328. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
  329. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
  330. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
  331. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
  332. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
  333. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
  334. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
  335. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
  336. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
  337. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
  338. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
  339. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
  340. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
  341. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
  342. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
  343. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
  344. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
  345. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
  346. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
  347. package/.next/standalone/packages/ui/package.json +1 -1
  348. package/.next/standalone/packages/ui/server.js +1 -1
  349. package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +4 -67
  350. package/.next/standalone/packages/ui/src/app/api/projects/[id]/context/route.ts +39 -0
  351. package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +20 -0
  352. package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +25 -9
  353. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/dependency-graph/route.ts +129 -0
  354. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/metadata/route.ts +170 -0
  355. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +14 -14
  356. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +9 -2
  357. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +9 -8
  358. package/.next/standalone/packages/ui/src/app/api/projects/[id]/tags/route.ts +25 -0
  359. package/.next/standalone/packages/ui/src/app/api/projects/[id]/validate/route.ts +49 -0
  360. package/.next/standalone/packages/ui/src/app/api/projects/route.ts +18 -5
  361. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -2
  362. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts +0 -15
  363. package/.next/standalone/packages/ui/src/app/api/specs/[id]/metadata/route.ts +184 -0
  364. package/.next/standalone/packages/ui/src/app/api/tags/route.ts +16 -0
  365. package/.next/standalone/packages/ui/src/app/context/page.tsx +22 -0
  366. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +43 -62
  367. package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +9 -8
  368. package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +95 -20
  369. package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +25 -13
  370. package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +8 -8
  371. package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +40 -67
  372. package/.next/standalone/packages/ui/src/app/page.tsx +24 -0
  373. package/.next/standalone/packages/ui/src/app/projects/[projectId]/context/page.tsx +41 -0
  374. package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +30 -0
  375. package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +18 -2
  376. package/.next/standalone/packages/ui/src/app/projects/[projectId]/stats/page.tsx +24 -0
  377. package/.next/standalone/packages/ui/src/app/projects/layout.tsx +7 -0
  378. package/.next/standalone/packages/ui/src/app/projects/page.tsx +375 -107
  379. package/.next/standalone/packages/ui/src/app/specs/[id]/page.tsx +24 -1
  380. package/.next/standalone/packages/ui/src/app/specs/page.tsx +22 -0
  381. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +28 -18
  382. package/.next/standalone/packages/ui/src/app/stats/page.tsx +22 -0
  383. package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
  384. package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +3 -5
  385. package/.next/standalone/packages/ui/src/components/directory-picker.tsx +1 -0
  386. package/.next/standalone/packages/ui/{dist/standalone/packages/web/src/components/spec-metadata.tsx → src/components/editable-spec-metadata.tsx} +46 -30
  387. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +28 -6
  388. package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
  389. package/.next/standalone/packages/ui/src/components/priority-editor.tsx +153 -0
  390. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +74 -10
  391. package/.next/standalone/packages/ui/src/components/quick-search.tsx +3 -1
  392. package/.next/standalone/packages/ui/src/components/spec-dependency-graph.tsx +13 -52
  393. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +58 -30
  394. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +3 -4
  395. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +8 -6
  396. package/.next/standalone/packages/ui/src/components/status-editor.tsx +153 -0
  397. package/.next/standalone/packages/ui/src/components/tags-editor.tsx +238 -0
  398. package/.next/standalone/packages/ui/src/components/ui/command.tsx +1 -1
  399. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
  400. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +230 -40
  401. package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
  402. package/.next/standalone/packages/ui/src/lib/projects/registry.ts +1 -1
  403. package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +21 -5
  404. package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
  405. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  406. package/.next/static/chunks/0c7bbb59865774a1.js +1 -0
  407. package/.next/static/chunks/0fe978002ba489fb.js +3 -0
  408. package/.next/static/chunks/1169d4ac8f9df687.js +1 -0
  409. package/.next/static/chunks/1e0689744f87e958.js +2 -0
  410. package/.next/static/chunks/241b6b1c83610ebf.js +1 -0
  411. package/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
  412. package/.next/{standalone/packages/ui/.next/static/chunks/6d938a49daa10208.js → static/chunks/4610aea3ca2e69eb.js} +1 -1
  413. package/.next/static/chunks/6d7922838a3513a4.js +1 -0
  414. package/.next/static/chunks/781328ee279ffc41.js +1 -0
  415. package/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  416. package/.next/static/chunks/840c6743a491a398.js +1 -0
  417. package/.next/static/chunks/937cb3894a606899.js +5 -0
  418. package/.next/static/chunks/9cf644b700f37825.css +1 -0
  419. package/.next/{standalone/packages/ui/.next/static/chunks/a3d7e1be47de010b.js → static/chunks/bbd498aa5689c057.js} +1 -1
  420. package/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
  421. package/.next/{standalone/packages/ui/.next/static/chunks/979625373d5474b6.js → static/chunks/c26909a25ca9fc9b.js} +1 -1
  422. package/.next/{standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js → static/chunks/d26f4109b44eb240.js} +1 -1
  423. package/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
  424. package/.next/static/chunks/dbce73f7087f2470.js +10 -0
  425. package/.next/static/chunks/e399b4afc7936907.js +1 -0
  426. package/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
  427. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_buildManifest.js +11 -0
  428. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_clientMiddlewareManifest.json +1 -0
  429. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_ssgManifest.js +1 -0
  430. package/package.json +2 -2
  431. package/.next/standalone/node_modules/.pnpm/@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  432. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +0 -3
  433. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +0 -3
  434. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +0 -3
  435. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +0 -3
  436. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +0 -3
  437. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +0 -3
  438. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +0 -3
  439. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +0 -3
  440. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +0 -3
  441. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b0969111._.js +0 -3
  442. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +0 -3
  443. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +0 -3
  444. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +0 -3
  445. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +0 -3
  446. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +0 -74
  447. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +0 -3
  448. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__3c77d95b._.js +0 -3
  449. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +0 -3
  450. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__8608a6fa._.js +0 -3
  451. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +0 -3
  452. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +0 -3
  453. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +0 -3
  454. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daedd80e._.js +0 -3
  455. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dc176c61._.js +0 -3
  456. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +0 -7
  457. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +0 -5
  458. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
  459. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8cec504f._.js +0 -3
  460. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ea899b87._.js +0 -3
  461. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fe120f8a._.js +0 -3
  462. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_1c916fe3._.js +0 -3
  463. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +0 -3
  464. package/.next/standalone/packages/ui/.next/static/chunks/094cf9f4e3553261.js +0 -1
  465. package/.next/standalone/packages/ui/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
  466. package/.next/standalone/packages/ui/.next/static/chunks/1d36660b2877d213.js +0 -3
  467. package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  468. package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +0 -1
  469. package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  470. package/.next/standalone/packages/ui/.next/static/chunks/4d29ca0fa6843070.js +0 -2
  471. package/.next/standalone/packages/ui/.next/static/chunks/59854b15bf046467.js +0 -1
  472. package/.next/standalone/packages/ui/.next/static/chunks/5fd8101e32b076b1.js +0 -1
  473. package/.next/standalone/packages/ui/.next/static/chunks/a33f10af6abef4df.js +0 -10
  474. package/.next/standalone/packages/ui/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
  475. package/.next/standalone/packages/ui/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
  476. package/.next/standalone/packages/ui/.next/static/chunks/eeec245955b3b600.js +0 -5
  477. package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +0 -20
  478. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +0 -59
  479. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +0 -1
  480. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +0 -427
  481. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +0 -436
  482. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +0 -20
  483. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +0 -10
  484. package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +0 -18
  485. package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
  486. package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
  487. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +0 -23
  488. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +0 -19
  489. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +0 -63
  490. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -51
  491. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +0 -171
  492. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +0 -36
  493. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +0 -46
  494. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +0 -19
  495. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +0 -162
  496. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +0 -43
  497. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +0 -18
  498. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +0 -364
  499. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +0 -43
  500. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +0 -531
  501. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +0 -277
  502. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +0 -70
  503. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +0 -87
  504. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +0 -27
  505. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +0 -18
  506. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +0 -5
  507. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +0 -43
  508. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +0 -18
  509. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +0 -425
  510. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +0 -18
  511. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +0 -283
  512. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +0 -46
  513. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +0 -52
  514. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +0 -175
  515. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +0 -96
  516. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +0 -95
  517. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +0 -210
  518. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +0 -53
  519. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +0 -180
  520. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +0 -119
  521. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +0 -369
  522. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +0 -372
  523. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +0 -42
  524. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +0 -70
  525. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +0 -127
  526. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +0 -186
  527. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +0 -561
  528. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +0 -53
  529. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +0 -143
  530. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +0 -130
  531. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +0 -11
  532. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +0 -37
  533. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +0 -50
  534. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +0 -36
  535. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +0 -110
  536. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +0 -57
  537. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +0 -76
  538. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +0 -153
  539. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +0 -122
  540. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +0 -24
  541. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +0 -159
  542. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +0 -31
  543. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +0 -15
  544. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +0 -55
  545. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +0 -30
  546. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +0 -32
  547. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +0 -76
  548. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +0 -42
  549. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +0 -18
  550. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +0 -114
  551. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +0 -123
  552. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +0 -156
  553. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +0 -216
  554. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +0 -105
  555. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +0 -120
  556. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +0 -94
  557. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +0 -249
  558. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +0 -55
  559. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +0 -152
  560. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +0 -171
  561. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +0 -17
  562. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +0 -18
  563. package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +0 -58
  564. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +0 -34
  565. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +0 -1
  566. package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +0 -14
  567. package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +0 -332
  568. package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +0 -339
  569. package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +0 -399
  570. package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +0 -525
  571. package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +0 -387
  572. package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +0 -613
  573. package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +0 -266
  574. package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +0 -100
  575. package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +0 -172
  576. package/.next/static/chunks/094cf9f4e3553261.js +0 -1
  577. package/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
  578. package/.next/static/chunks/1d36660b2877d213.js +0 -3
  579. package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  580. package/.next/static/chunks/2c85b8059e42248a.js +0 -1
  581. package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  582. package/.next/static/chunks/4d29ca0fa6843070.js +0 -2
  583. package/.next/static/chunks/59854b15bf046467.js +0 -1
  584. package/.next/static/chunks/5fd8101e32b076b1.js +0 -1
  585. package/.next/static/chunks/a33f10af6abef4df.js +0 -10
  586. package/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
  587. package/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
  588. package/.next/static/chunks/eeec245955b3b600.js +0 -5
  589. /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/lib/index.js +0 -0
  590. /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/versions.json +0 -0
  591. /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_buildManifest.js +0 -0
  592. /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_clientMiddlewareManifest.json +0 -0
  593. /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_ssgManifest.js +0 -0
  594. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -0
  595. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/favicon.ico +0 -0
  596. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/file.svg +0 -0
  597. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark-white.svg +0 -0
  598. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark.svg +0 -0
  599. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/globe.svg +0 -0
  600. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/icon.svg +0 -0
  601. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-dark-bg.svg +0 -0
  602. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-with-bg.svg +0 -0
  603. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo.svg +0 -0
  604. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/next.svg +0 -0
  605. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/vercel.svg +0 -0
  606. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/window.svg +0 -0
  607. /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
  608. /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
  609. /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
@@ -1,266 +0,0 @@
1
- ---
2
- status: complete
3
- created: '2025-11-17'
4
- tags:
5
- - process
6
- - quality
7
- - ci-cd
8
- - post-mortem
9
- priority: high
10
- created_at: '2025-11-17T21:12:06.305Z'
11
- completed_at: '2025-11-17T21:12:00.000Z'
12
- updated_at: '2025-11-17T13:13:28.300Z'
13
- completed: '2025-11-17'
14
- ---
15
-
16
- # Post-Mortem: v0.2.3 TypeScript Check Failure
17
-
18
- ## Overview
19
-
20
- On November 17, 2025, we attempted to release v0.2.3 only to discover **30+ TypeScript compilation errors** that should have been caught before the release process began. This spec documents what went wrong, why it happened, and how to prevent it in the future.
21
-
22
- **Impact**: Blocked release, required emergency fix session, wasted development time, damaged trust in release process.
23
-
24
- ## What Went Wrong
25
-
26
- ### The Problem
27
- Version 0.2.3 was tagged and released without running `pnpm typecheck`, leading to a published package that:
28
- - Failed TypeScript compilation (`tsc --noEmit` showed 30+ errors)
29
- - Had broken MCP SDK integration (signature mismatches)
30
- - Had type mismatches across packages (core vs CLI)
31
- - Would break for users with strict TypeScript checking
32
-
33
- ### Root Causes
34
-
35
- 1. **No Pre-Release Type Check**
36
- - Release process did NOT include `pnpm typecheck` as a required step
37
- - Only ran `pnpm build` which uses `tsup` with less strict checking
38
- - `tsup` successfully bundles code even with type errors when `noCheck: true` or similar flags
39
-
40
- 2. **No CI/CD Type Checking**
41
- - GitHub Actions publish workflow (`.github/workflows/publish.yml`) does NOT run `pnpm typecheck`
42
- - Only runs `pnpm build` before publishing
43
- - No gate preventing broken releases
44
-
45
- 3. **Monorepo Complexity**
46
- - Errors were spread across CLI and Core packages
47
- - Cross-package type dependencies not validated
48
- - Core package exported types used in CLI weren't properly exposed
49
-
50
- 4. **MCP SDK Version Upgrade**
51
- - SDK v1.21.0 changed handler signatures (added `extra` parameter)
52
- - No automated check for SDK compatibility
53
- - Breaking changes went unnoticed until compilation
54
-
55
- ### Timeline of Errors
56
-
57
- The errors fell into several categories:
58
-
59
- **Type Export Issues (1 error)**
60
- - `isolate.ts` couldn't import `Frontmatter` type from core (not exported)
61
-
62
- **Interface Mismatches (2 errors)**
63
- - `SpecInfo.date` was required in CLI but optional in core
64
- - `deps.ts` failed due to this mismatch
65
-
66
- **Type Casting Issues (2 errors)**
67
- - `search.ts` had `unknown` types for `title`/`description` from frontmatter
68
- - Needed explicit type guards
69
-
70
- **MCP SDK Signature Changes (25+ errors)**
71
- - All tool handlers missing required `extra` parameter
72
- - Resource callbacks missing `variables` and `extra` parameters
73
- - Console capturing code broken by incorrect multi_replace edits
74
- - Type literal issues (`type: 'text'` vs `type: string`)
75
-
76
- ## Why Didn't We Catch This?
77
-
78
- ### Human Factors
79
- - **Assumption**: "If build passes, types are good"
80
- - **Habit**: Not running `pnpm typecheck` before releases
81
- - **Time pressure**: Rush to publish without full validation
82
- - **Trust**: Assumed CI would catch issues (but it didn't)
83
-
84
- ### Process Gaps
85
- - No checklist for releases
86
- - No automated pre-release validation
87
- - No CI gate for type checking
88
- - No cross-package type validation
89
-
90
- ### Tool Configuration
91
- - `tsup.config.ts` may have been too lenient
92
- - Build tool doesn't enforce strict type checking
93
- - Missing `turbo run typecheck` in release workflow
94
-
95
- ## What Should Have Happened
96
-
97
- ### Ideal Pre-Release Checklist
98
- ```bash
99
- # 1. Type check all packages
100
- pnpm typecheck
101
-
102
- # 2. Run all tests
103
- pnpm test:run
104
-
105
- # 3. Build all packages
106
- pnpm build
107
-
108
- # 4. Validate docs build
109
- cd docs-site && npm run build
110
-
111
- # 5. Run local spec validation
112
- node bin/lean-spec.js validate
113
-
114
- # 6. Update CHANGELOG.md
115
-
116
- # 7. Commit and tag
117
- git add -A
118
- git commit -m "chore: bump version to X.Y.Z"
119
- git tag vX.Y.Z
120
- git push origin main --tags
121
-
122
- # 8. Create GitHub release (triggers CI)
123
- gh release create vX.Y.Z
124
- ```
125
-
126
- ### Ideal CI/CD Workflow
127
- ```yaml
128
- # .github/workflows/publish.yml
129
- jobs:
130
- publish:
131
- steps:
132
- - name: Install dependencies
133
- run: pnpm install
134
-
135
- - name: Type check ⚠️ MISSING
136
- run: pnpm typecheck
137
-
138
- - name: Run tests ⚠️ MISSING
139
- run: pnpm test:run
140
-
141
- - name: Build
142
- run: pnpm build
143
-
144
- - name: Publish to npm
145
- if: all tests pass
146
- run: pnpm publish
147
- ```
148
-
149
- ## Lessons Learned
150
-
151
- ### What Worked
152
- - ✅ Fast identification and triage of errors
153
- - ✅ Systematic fix approach (categorize, prioritize, fix)
154
- - ✅ Good git practices (committed fix, tagged properly)
155
- - ✅ Clear documentation of what was fixed
156
-
157
- ### What Didn't Work
158
- - ❌ No automated type checking in CI
159
- - ❌ No pre-release validation checklist
160
- - ❌ Build tools don't enforce type safety
161
- - ❌ Assumed "build passes" = "types are correct"
162
- - ❌ No cross-package type validation
163
-
164
- ## Action Items
165
-
166
- ### Immediate (Before Next Release)
167
-
168
- **1. Add Type Checking to CI Workflow**
169
- ```yaml
170
- # .github/workflows/publish.yml
171
- - name: Type check all packages
172
- run: pnpm typecheck
173
-
174
- - name: Run tests
175
- run: pnpm test:run
176
- ```
177
-
178
- **2. Create Release Checklist**
179
- Add to `CONTRIBUTING.md` or create `RELEASING.md`:
180
- - [ ] Run `pnpm typecheck`
181
- - [ ] Run `pnpm test:run`
182
- - [ ] Run `pnpm build`
183
- - [ ] Validate with `node bin/lean-spec.js validate`
184
- - [ ] Update CHANGELOG.md
185
- - [ ] Commit, tag, push
186
- - [ ] Create GitHub release
187
-
188
- **3. Add Pre-Push Hook** (Optional)
189
- ```bash
190
- # .husky/pre-push
191
- pnpm typecheck || (echo "Type check failed!" && exit 1)
192
- ```
193
-
194
- ### Short-term (Next Sprint)
195
-
196
- **4. Improve Package Scripts**
197
- Add a `pre-release` script:
198
- ```json
199
- {
200
- "scripts": {
201
- "pre-release": "pnpm typecheck && pnpm test:run && pnpm build && pnpm validate"
202
- }
203
- }
204
- ```
205
-
206
- **5. Enhanced CI Pipeline**
207
- - Add separate typecheck job that runs on all PRs
208
- - Require passing typecheck before merge
209
- - Add matrix testing across Node versions
210
-
211
- **6. Documentation**
212
- - Document the release process in `AGENTS.md`
213
- - Add "Why typecheck matters" section
214
- - Include common type error patterns
215
-
216
- ### Long-term (Future)
217
-
218
- **7. Automated Release Process**
219
- Consider tools like:
220
- - `semantic-release` for automated versioning
221
- - `changesets` for monorepo releases
222
- - `release-please` for GitHub-native releases
223
-
224
- **8. Type Safety Improvements**
225
- - Enable stricter TypeScript compiler options
226
- - Add `strict: true` to all `tsconfig.json`
227
- - Use `exactOptionalPropertyTypes`
228
- - Enable `noUncheckedIndexedAccess`
229
-
230
- **9. Monorepo Type Validation**
231
- - Add Turbo task for cross-package type checking
232
- - Validate type exports/imports between packages
233
- - Add package boundary lint rules
234
-
235
- ## Metrics to Track
236
-
237
- Going forward, track:
238
- - **Time to catch type errors**: Pre-push vs CI vs post-release
239
- - **Type error frequency**: Trend over time
240
- - **Release confidence**: Did we catch issues before release?
241
- - **Developer friction**: Does strict checking slow development?
242
-
243
- ## Success Criteria
244
-
245
- This post-mortem is successful when:
246
- - ✅ CI blocks releases with type errors
247
- - ✅ `pnpm typecheck` is part of standard workflow
248
- - ✅ Developers run typecheck before PRs
249
- - ✅ Zero type-related release failures for 3 months
250
- - ✅ Release checklist is documented and followed
251
-
252
- ## References
253
-
254
- - [TypeScript Handbook - Type Checking](https://www.typescriptlang.org/docs/handbook/2/basic-types.html)
255
- - [Turbo: Type Checking in Monorepos](https://turbo.build/repo/docs/handbook/linting)
256
- - [GitHub Actions: Required Status Checks](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-status-checks-before-merging)
257
-
258
- ## Conclusion
259
-
260
- This was a **preventable failure** caused by process gaps, not technical limitations. The fix is straightforward:
261
-
262
- 1. **Always run `pnpm typecheck` before releasing**
263
- 2. **Add typecheck to CI/CD pipeline**
264
- 3. **Document and follow release checklist**
265
-
266
- The tools exist, we just need to use them consistently. This post-mortem serves as both documentation and action plan to ensure this never happens again.
@@ -1,100 +0,0 @@
1
- ---
2
- status: complete
3
- created: '2025-11-17'
4
- tags: []
5
- priority: high
6
- created_at: '2025-11-17T14:22:14.161Z'
7
- updated_at: '2025-11-17T14:54:01.282Z'
8
- completed_at: '2025-11-17T14:54:01.282Z'
9
- completed: '2025-11-17'
10
- transitions:
11
- - status: complete
12
- at: '2025-11-17T14:54:01.282Z'
13
- ---
14
-
15
- # Fix Sidebar Scroll Position Drift
16
-
17
- > **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-17
18
-
19
- **Project**: lean-spec
20
- **Team**: Core Development
21
-
22
- ## Overview
23
-
24
- The specs navigation sidebar in the web package experiences scroll position drift when navigating between specs. The list jumps or loses its scroll position during navigation, causing poor UX especially with large spec lists.
25
-
26
- **Root Cause**: Multiple performance optimization attempts revealed the issue stems from:
27
- 1. Store design causing unnecessary re-renders - `updateSidebarScrollTop` spreads state, triggering all subscribers even when only `scrollTop` changes
28
- 2. Component subscribing to entire store state rather than specific slices
29
- 3. `cachedSpecs` creating new references on every render before memoization
30
- 4. Complex interaction between react-window's internal scroll management and external state updates
31
-
32
- **Why Now**: This affects daily workflow navigation and has resisted multiple quick fixes. Needs proper investigation and testing.
33
-
34
- ## Design
35
-
36
- ### Investigation Completed
37
- - Verified React 19 `useSyncExternalStore` requirements: unstable server snapshot references were causing infinite loops
38
- - Determined global store broadcasts on every scroll write were the primary source of drift
39
- - Confirmed `react-window` retains internal scroll state reliably when left to manage DOM scroll positions
40
- - Observed that auto-anchoring logic was running too late, producing flicker during hydration
41
-
42
- ### Final Approach
43
- 1. **Selector-driven store reads** – keep existing selector hooks but ensure server snapshots are stable constants
44
- 2. **Isolate scroll persistence** – keep global persistence value, but stop emitting change events when the value updates
45
- 3. **Component-local scroll management** – mirror scrollTop in refs, throttle writes with `requestAnimationFrame`, and restore via `useIsomorphicLayoutEffect`
46
- 4. **Controlled auto-anchoring** – only scroll the virtual list on the first render (when no stored offset exists) and guard future attempts with refs
47
-
48
- ### Current Optimizations Applied
49
- - Wrapped List in React.memo
50
- - Memoized RowComponent with useCallback
51
- - Memoized cachedSpecs
52
- - Added selector-based store hooks (useSpecsSidebarSpecs, useSpecsSidebarActiveSpec)
53
- - Separate listener sets per state slice
54
-
55
- ## Plan
56
-
57
- - [ ] Add detailed logging to track re-render causes (component, store, props changes)
58
- - [x] Profile with React DevTools to identify actual render triggers
59
- - [x] Test removing all scroll management code to establish baseline behavior (browser-managed scroll proved stable)
60
- - [x] Implement proper selector pattern with verified render prevention
61
- - [x] Test with large spec lists (100+ items) to verify performance
62
- - [x] Document final solution and architecture decision
63
-
64
- ### Implementation Summary
65
-
66
- - Updated `useSyncExternalStore` server snapshot for specs to return a memoized empty array, eliminating React 19 infinite-loop warnings.
67
- - Prevented `updateSidebarScrollTop` from emitting global store changes so unrelated subscribers no longer re-render on scroll.
68
- - Added scroll persistence effect in `SpecsNavSidebar` that restores the cached offset via `useIsomorphicLayoutEffect` and throttled listeners.
69
- - Introduced guarded auto-anchoring that only runs on the initial render when no stored offset exists, ensuring refreshed pages center the active spec without affecting later interactions.
70
- - Added retry logic for auto-anchoring to wait until the virtualized list ref is ready, removing flicker.
71
-
72
- ### Validation
73
-
74
- - Navigating between specs preserves scroll position without jumps.
75
- - Filtering, collapsing, and mobile toggles retain the current offset.
76
- - Rapid spec changes and scrolling back to the top no longer trigger downward drift.
77
- - Browser refresh loads with the active spec centered when no previous scroll position was saved.
78
- - Large spec lists (>100 entries) scroll smoothly with no lag or unexpected reflows.
79
-
80
- ## Test
81
-
82
- - [x] Navigate between specs - scroll position should remain stable
83
- - [x] Filter specs while scrolled - list should not jump
84
- - [x] Open/close mobile sidebar - no scroll position loss
85
- - [x] Rapid navigation (click multiple specs quickly) - no drift or jumping
86
- - [x] Large spec lists (100+) - smooth scrolling without lag
87
- - [x] Browser refresh - reasonable scroll restoration behavior
88
-
89
- ## Notes
90
-
91
- **Attempted Fixes (Session 1)**:
92
- - Removed scroll restoration on navigation
93
- - Removed scroll tracking callbacks
94
- - Wrapped List in memo
95
- - Memoized cachedSpecs to prevent reference changes
96
- - Implemented selector-based store subscriptions
97
-
98
- **Key Learning**: The issue persisted despite multiple optimizations, suggesting the problem is architectural rather than a simple memoization issue. The store design fundamentally causes re-renders when any state changes, even with selector hooks.
99
-
100
- **Next Steps**: Monitor for regressions when introducing future sidebar features (e.g., grouping, pinning). Add logging only if new drift reports appear.
@@ -1,172 +0,0 @@
1
- ---
2
- status: in-progress
3
- created: '2025-11-18'
4
- tags:
5
- - mcp
6
- - integration
7
- - npm-package
8
- - developer-experience
9
- priority: high
10
- created_at: '2025-11-18T03:06:33.496Z'
11
- updated_at: '2025-11-18T03:24:10.457Z'
12
- transitions:
13
- - status: in-progress
14
- at: '2025-11-18T03:24:10.457Z'
15
- ---
16
-
17
- # @leanspec/mcp - MCP Server Integration Wrapper
18
-
19
- > **Status**: ⏳ In progress · **Priority**: High · **Created**: 2025-11-18 · **Tags**: mcp, integration, npm-package, developer-experience
20
-
21
- **Project**: lean-spec
22
- **Team**: Core Development
23
-
24
- ## Overview
25
-
26
- Create a lightweight CLI wrapper that makes `lean-spec mcp` more discoverable and easier to use. The existing `lean-spec` CLI has many features, making MCP setup less obvious. This dedicated package provides a simple entry point for users to quickly onboard MCP with their preferred IDE/tools.
27
-
28
- **Problem**: `lean-spec` is a full-featured CLI tool. When users configure MCP servers in their IDE, they need to know to use `lean-spec mcp`, which isn't obvious. Also, the package name `lean-spec` doesn't clearly indicate MCP functionality.
29
-
30
- **Solution**: Ship `@leanspec/mcp` as a thin wrapper. IDEs can call `npx @leanspec/mcp` directly, which just delegates to `lean-spec mcp`. This makes the MCP server more discoverable and the package name more intuitive.
31
-
32
- ## Design
33
-
34
- ### Package Structure
35
- ```
36
- @leanspec/mcp/
37
- ├── bin/
38
- │ └── leanspec-mcp.js # Thin wrapper CLI
39
- ├── package.json # Depends on lean-spec
40
- └── README.md # Quick start guide
41
- ```
42
-
43
- ### How It Works
44
-
45
- The package is a **simple passthrough**:
46
- 1. User adds MCP server to their IDE config: `npx @leanspec/mcp`
47
- 2. When IDE needs the server, npx auto-installs `@leanspec/mcp` and its `lean-spec` dependency
48
- 3. Script delegates to: `lean-spec mcp`
49
- 4. MCP server starts and IDE can communicate with it
50
-
51
- No interaction needed - the IDE handles everything.
52
-
53
- ### Usage in IDE Configs
54
-
55
- **Claude Desktop** (`claude_desktop_config.json`):
56
- ```json
57
- {
58
- "mcpServers": {
59
- "leanspec": {
60
- "command": "npx",
61
- "args": ["-y", "@leanspec/mcp"]
62
- }
63
- }
64
- }
65
- ```
66
-
67
- **Cline** (VS Code `settings.json`):
68
- ```json
69
- {
70
- "cline.mcpServers": {
71
- "leanspec": {
72
- "command": "npx",
73
- "args": ["-y", "@leanspec/mcp"]
74
- }
75
- }
76
- }
77
- ```
78
-
79
- **Zed** (`settings.json`):
80
- ```json
81
- {
82
- "context_servers": {
83
- "leanspec": {
84
- "command": "npx",
85
- "args": ["-y", "@leanspec/mcp"]
86
- }
87
- }
88
- }
89
- ```
90
-
91
- ### Key Design Decisions
92
-
93
- **Pure passthrough**: Just delegates to `lean-spec mcp`, no logic needed.
94
-
95
- **Better naming**: `@leanspec/mcp` is more intuitive than `lean-spec mcp` for MCP use cases.
96
-
97
- **Auto-install**: npx automatically installs both `@leanspec/mcp` and its `lean-spec` dependency when needed.
98
-
99
- **No interaction**: MCP servers are called by IDEs, not by users directly. No wizard needed.
100
-
101
- **Simpler docs**: Users just copy-paste the config snippet, IDE handles the rest.
102
-
103
- ## Plan
104
-
105
- - [ ] Create minimal package structure in `packages/mcp/`
106
- - [ ] Write simple passthrough script (delegates to `lean-spec mcp`)
107
- - [ ] Add `lean-spec` as dependency in package.json
108
- - [ ] Create README with config examples for different IDEs
109
- - [ ] Test with Claude Desktop, Cline, Zed
110
- - [ ] Publish to npm as `@leanspec/mcp`
111
- - [ ] Update main docs with `@leanspec/mcp` examples
112
-
113
- ## Test
114
-
115
- - [ ] Config with `npx @leanspec/mcp` works in Claude Desktop
116
- - [ ] Config with `npx @leanspec/mcp` works in Cline
117
- - [ ] Config with `npx @leanspec/mcp` works in Zed
118
- - [ ] Server starts correctly when IDE calls it
119
- - [ ] npx auto-installs dependencies on first run
120
- - [ ] Works on macOS, Windows, Linux
121
- - [ ] Package size is minimal (<5KB)
122
-
123
- ## Notes
124
-
125
- ### Why This Approach
126
-
127
- **Maximum simplicity**: Just a ~10 line passthrough script.
128
-
129
- **No complexity**: No IDE detection, no config merging, no interaction. Users just copy config.
130
-
131
- **Better naming**: Package name clearly indicates MCP functionality.
132
-
133
- **Zero maintenance**: All logic lives in `lean-spec mcp`, wrapper just delegates.
134
-
135
- **Discoverability**: Searching for "leanspec mcp" finds the right package immediately.
136
-
137
- ### Implementation
138
-
139
- ```javascript
140
- #!/usr/bin/env node
141
- const { spawn } = require('child_process');
142
-
143
- // Simply delegate to lean-spec mcp
144
- const child = spawn('lean-spec', ['mcp'], { stdio: 'inherit' });
145
- child.on('exit', (code) => process.exit(code));
146
- ```
147
-
148
- ### Documentation Example
149
-
150
- Users see this in the docs:
151
-
152
- > **Quick Setup**
153
- >
154
- > Add to your Claude Desktop config:
155
- > ```json
156
- > {
157
- > "mcpServers": {
158
- > "leanspec": {
159
- > "command": "npx",
160
- > "args": ["-y", "@leanspec/mcp"]
161
- > }
162
- > }
163
- > }
164
- > ```
165
- >
166
- > Restart Claude Desktop. Done!
167
-
168
- ### Dependencies
169
- - `lean-spec` - The actual MCP server (peer dependency)
170
-
171
- ### Related
172
- - Existing `lean-spec mcp` command (what this delegates to)
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,585458,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",i="week",s="month",a="quarter",l="year",o="date",c="Invalid Date",u=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},h="en",m={};m[h]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var x="$isDayjsObject",g=function(e){return e instanceof y||!(!e||!e[x])},p=function e(t,r,n){var i;if(!t)return h;if("string"==typeof t){var s=t.toLowerCase();m[s]&&(i=s),r&&(m[s]=r,i=s);var a=t.split("-");if(!i&&a.length>1)return e(a[0])}else{var l=t.name;m[l]=t,i=l}return!n&&i&&(h=i),i||!n&&h},v=function(e,t){if(g(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new y(r)},b={s:f,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+f(Math.floor(r/60),2,"0")+":"+f(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),i=t.clone().add(n,s),a=r-i<0,l=t.clone().add(n+(a?-1:1),s);return+(-(n+(r-i)/(a?i-l:l-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return({M:s,y:l,w:i,d:"day",D:o,h:n,m:r,s:t,ms:e,Q:a})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};b.l=p,b.i=g,b.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var y=function(){function f(e){this.$L=p(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var h=f.prototype;return h.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(b.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(u);if(n){var i=n[2]-1||0,s=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)}}return new Date(t)}(e),this.init()},h.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},h.$utils=function(){return b},h.isValid=function(){return this.$d.toString()!==c},h.isSame=function(e,t){var r=v(e);return this.startOf(t)<=r&&r<=this.endOf(t)},h.isAfter=function(e,t){return v(e)<this.startOf(t)},h.isBefore=function(e,t){return this.endOf(t)<v(e)},h.$g=function(e,t,r){return b.u(e)?this[t]:this.set(r,e)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(e,a){var c=this,u=!!b.u(a)||a,d=b.p(e),f=function(e,t){var r=b.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?r:r.endOf("day")},h=function(e,t){return b.w(c.toDate()[e].apply(c.toDate("s"),(u?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},m=this.$W,x=this.$M,g=this.$D,p="set"+(this.$u?"UTC":"");switch(d){case l:return u?f(1,0):f(31,11);case s:return u?f(1,x):f(0,x+1);case i:var v=this.$locale().weekStart||0,y=(m<v?m+7:m)-v;return f(u?g-y:g+(6-y),x);case"day":case o:return h(p+"Hours",0);case n:return h(p+"Minutes",1);case r:return h(p+"Seconds",2);case t:return h(p+"Milliseconds",3);default:return this.clone()}},h.endOf=function(e){return this.startOf(e,!1)},h.$set=function(i,a){var c,u=b.p(i),d="set"+(this.$u?"UTC":""),f=((c={}).day=d+"Date",c[o]=d+"Date",c[s]=d+"Month",c[l]=d+"FullYear",c[n]=d+"Hours",c[r]=d+"Minutes",c[t]=d+"Seconds",c[e]=d+"Milliseconds",c)[u],h="day"===u?this.$D+(a-this.$W):a;if(u===s||u===l){var m=this.clone().set(o,1);m.$d[f](h),m.init(),this.$d=m.set(o,Math.min(this.$D,m.daysInMonth())).$d}else f&&this.$d[f](h);return this.init(),this},h.set=function(e,t){return this.clone().$set(e,t)},h.get=function(e){return this[b.p(e)]()},h.add=function(e,a){var o,c=this;e=Number(e);var u=b.p(a),d=function(t){var r=v(c);return b.w(r.date(r.date()+Math.round(t*e)),c)};if(u===s)return this.set(s,this.$M+e);if(u===l)return this.set(l,this.$y+e);if("day"===u)return d(1);if(u===i)return d(7);var f=((o={})[r]=6e4,o[n]=36e5,o[t]=1e3,o)[u]||1,h=this.$d.getTime()+e*f;return b.w(h,this)},h.subtract=function(e,t){return this.add(-1*e,t)},h.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||c;var n=e||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,a=this.$m,l=this.$M,o=r.weekdays,u=r.months,f=r.meridiem,h=function(e,r,i,s){return e&&(e[r]||e(t,n))||i[r].slice(0,s)},m=function(e){return b.s(s%12||12,e,"0")},x=f||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return b.s(t.$y,4,"0");case"M":return l+1;case"MM":return b.s(l+1,2,"0");case"MMM":return h(r.monthsShort,l,u,3);case"MMMM":return h(u,l);case"D":return t.$D;case"DD":return b.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return h(r.weekdaysMin,t.$W,o,2);case"ddd":return h(r.weekdaysShort,t.$W,o,3);case"dddd":return o[t.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return x(s,a,!0);case"A":return x(s,a,!1);case"m":return String(a);case"mm":return b.s(a,2,"0");case"s":return String(t.$s);case"ss":return b.s(t.$s,2,"0");case"SSS":return b.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")})},h.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},h.diff=function(e,o,c){var u,d=this,f=b.p(o),h=v(e),m=(h.utcOffset()-this.utcOffset())*6e4,x=this-h,g=function(){return b.m(d,h)};switch(f){case l:u=g()/12;break;case s:u=g();break;case a:u=g()/3;break;case i:u=(x-m)/6048e5;break;case"day":u=(x-m)/864e5;break;case n:u=x/36e5;break;case r:u=x/6e4;break;case t:u=x/1e3;break;default:u=x}return c?u:b.a(u)},h.daysInMonth=function(){return this.endOf(s).$D},h.$locale=function(){return m[this.$L]},h.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=p(e,t,!0);return n&&(r.$L=n),r},h.clone=function(){return b.w(this.$d,this)},h.toDate=function(){return new Date(this.valueOf())},h.toJSON=function(){return this.isValid()?this.toISOString():null},h.toISOString=function(){return this.$d.toISOString()},h.toString=function(){return this.$d.toUTCString()},f}(),w=y.prototype;return v.prototype=w,[["$ms",e],["$s",t],["$m",r],["$H",n],["$W","day"],["$M",s],["$y",l],["$D",o]].forEach(function(e){w[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),v.extend=function(e,t){return e.$i||(e(t,y,v),e.$i=!0),v},v.locale=p,v.isDayjs=g,v.unix=function(e){return v(1e3*e)},v.en=m[h],v.Ls=m,v.p={},v}()},842541,e=>{"use strict";e.s(["default",0,function(e,t){return e*=1,t*=1,function(r){return e*(1-r)+t*r}}])},161610,189517,321137,e=>{"use strict";function t(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function r(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function n(){}e.s(["default",0,t,"extend",()=>r],189517);var i="\\s*([+-]?\\d+)\\s*",s="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",a="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",l=/^#([0-9a-f]{3,8})$/,o=RegExp(`^rgb\\(${i},${i},${i}\\)$`),c=RegExp(`^rgb\\(${a},${a},${a}\\)$`),u=RegExp(`^rgba\\(${i},${i},${i},${s}\\)$`),d=RegExp(`^rgba\\(${a},${a},${a},${s}\\)$`),f=RegExp(`^hsl\\(${s},${a},${a}\\)$`),h=RegExp(`^hsla\\(${s},${a},${a},${s}\\)$`),m={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function x(){return this.rgb().formatHex()}function g(){return this.rgb().formatRgb()}function p(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=l.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?v(t):3===r?new S(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?b(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?b(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=o.exec(e))?new S(t[1],t[2],t[3],1):(t=c.exec(e))?new S(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=u.exec(e))?b(t[1],t[2],t[3],t[4]):(t=d.exec(e))?b(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=f.exec(e))?C(t[1],t[2]/100,t[3]/100,1):(t=h.exec(e))?C(t[1],t[2]/100,t[3]/100,t[4]):m.hasOwnProperty(e)?v(m[e]):"transparent"===e?new S(NaN,NaN,NaN,0):null}function v(e){return new S(e>>16&255,e>>8&255,255&e,1)}function b(e,t,r,n){return n<=0&&(e=t=r=NaN),new S(e,t,r,n)}function y(e){return(e instanceof n||(e=p(e)),e)?new S((e=e.rgb()).r,e.g,e.b,e.opacity):new S}function w(e,t,r,n){return 1==arguments.length?y(e):new S(e,t,r,null==n?1:n)}function S(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function $(){return`#${N(this.r)}${N(this.g)}${N(this.b)}`}function j(){let e=k(this.opacity);return`${1===e?"rgb(":"rgba("}${M(this.r)}, ${M(this.g)}, ${M(this.b)}${1===e?")":`, ${e})`}`}function k(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function M(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function N(e){return((e=M(e))<16?"0":"")+e.toString(16)}function C(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new z(e,t,r,n)}function O(e){if(e instanceof z)return new z(e.h,e.s,e.l,e.opacity);if(e instanceof n||(e=p(e)),!e)return new z;if(e instanceof z)return e;var t=(e=e.rgb()).r/255,r=e.g/255,i=e.b/255,s=Math.min(t,r,i),a=Math.max(t,r,i),l=NaN,o=a-s,c=(a+s)/2;return o?(l=t===a?(r-i)/o+(r<i)*6:r===a?(i-t)/o+2:(t-r)/o+4,o/=c<.5?a+s:2-a-s,l*=60):o=c>0&&c<1?0:l,new z(l,o,c,e.opacity)}function z(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function I(e){return(e=(e||0)%360)<0?e+360:e}function T(e){return Math.max(0,Math.min(1,e||0))}function E(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}t(n,p,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return O(this).formatHsl()},formatRgb:g,toString:g}),t(S,w,r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new S(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new S(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new S(M(this.r),M(this.g),M(this.b),k(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$,formatHex:$,formatHex8:function(){return`#${N(this.r)}${N(this.g)}${N(this.b)}${N((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:j,toString:j})),t(z,function(e,t,r,n){return 1==arguments.length?O(e):new z(e,t,r,null==n?1:n)},r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new z(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new z(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new S(E(e>=240?e-240:e+120,i,n),E(e,i,n),E(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new z(I(this.h),T(this.s),T(this.l),k(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=k(this.opacity);return`${1===e?"hsl(":"hsla("}${I(this.h)}, ${100*T(this.s)}%, ${100*T(this.l)}%${1===e?")":`, ${e})`}`}})),e.s(["Color",()=>n,"Rgb",()=>S,"default",()=>p,"rgb",()=>w,"rgbConvert",()=>y],321137),e.s(["color",()=>p],161610)},77075,e=>{"use strict";var t=e.i(842541);e.s(["interpolateNumber",()=>t.default])},145665,181503,425902,e=>{"use strict";var t=e.i(321137);function r(e,t,r,n,i){var s=e*e,a=s*e;return((1-3*e+3*s-a)*t+(4-6*s+3*a)*r+(1+3*e+3*s-3*a)*n+a*i)/6}let n=e=>()=>e;function i(e,t){return function(r){return e+r*t}}function s(e,t){var r=t-e;return r?i(e,r>180||r<-180?r-360*Math.round(r/360):r):n(isNaN(e)?t:e)}function a(e){return 1==(e*=1)?l:function(t,r){var i,s,a;return r-t?(i=t,s=r,i=Math.pow(i,a=e),s=Math.pow(s,a)-i,a=1/a,function(e){return Math.pow(i+e*s,a)}):n(isNaN(t)?r:t)}}function l(e,t){var r=t-e;return r?i(e,r):n(isNaN(e)?t:e)}e.s(["default",0,n],181503),e.s(["default",()=>l,"gamma",()=>a,"hue",()=>s],425902);let o=function e(r){var n=a(r);function i(e,r){var i=n((e=(0,t.rgb)(e)).r,(r=(0,t.rgb)(r)).r),s=n(e.g,r.g),a=n(e.b,r.b),o=l(e.opacity,r.opacity);return function(t){return e.r=i(t),e.g=s(t),e.b=a(t),e.opacity=o(t),e+""}}return i.gamma=e,i}(1);function c(e){return function(r){var n,i,s=r.length,a=Array(s),l=Array(s),o=Array(s);for(n=0;n<s;++n)i=(0,t.rgb)(r[n]),a[n]=i.r||0,l[n]=i.g||0,o[n]=i.b||0;return a=e(a),l=e(l),o=e(o),i.opacity=1,function(e){return i.r=a(e),i.g=l(e),i.b=o(e),i+""}}}c(function(e){var t=e.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[i],a=e[i+1],l=i>0?e[i-1]:2*s-a,o=i<t-1?e[i+2]:2*a-s;return r((n-i/t)*t,l,s,a,o)}}),c(function(e){var t=e.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*t),s=e[(i+t-1)%t],a=e[i%t],l=e[(i+1)%t],o=e[(i+2)%t];return r((n-i/t)*t,s,a,l,o)}}),e.s(["default",0,o],145665)},647483,e=>{"use strict";var t=e.i(842541),r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,n=RegExp(r.source,"g");e.s(["default",0,function(e,i){var s,a,l,o,c,u=r.lastIndex=n.lastIndex=0,d=-1,f=[],h=[];for(e+="",i+="";(l=r.exec(e))&&(o=n.exec(i));)(c=o.index)>u&&(c=i.slice(u,c),f[d]?f[d]+=c:f[++d]=c),(l=l[0])===(o=o[0])?f[d]?f[d]+=o:f[++d]=o:(f[++d]=null,h.push({i:d,x:(0,t.default)(l,o)})),u=n.lastIndex;return u<i.length&&(c=i.slice(u),f[d]?f[d]+=c:f[++d]=c),f.length<2?h[0]?(s=h[0].x,function(e){return s(e)+""}):(a=i,function(){return a}):(i=h.length,function(e){for(var t,r=0;r<i;++r)f[(t=h[r]).i]=t.x(e);return f.join("")})}])},522764,e=>{"use strict";let t=(0,e.i(122436).default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);e.s(["List",()=>t],522764)},635389,e=>{"use strict";let t=(0,e.i(122436).default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);e.s(["Maximize2",()=>t],635389)},730885,340982,e=>{"use strict";var t=e.i(122436);let r=(0,t.default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>r],730885);let n=(0,t.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);e.s(["Minimize2",()=>n],340982)},170305,(e,t,r)=>{"use strict";var n=e.r(431231),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=n.useState,a=n.useEffect,l=n.useLayoutEffect,o=n.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!i(e,r)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=s({inst:{value:r,getSnapshot:t}}),i=n[0].inst,u=n[1];return l(function(){i.value=r,i.getSnapshot=t,c(i)&&u({inst:i})},[e,r,t]),a(function(){return c(i)&&u({inst:i}),e(function(){c(i)&&u({inst:i})})},[e]),o(r),r};r.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:u},334960,(e,t,r)=>{"use strict";t.exports=e.r(170305)},721665,(e,t,r)=>{"use strict";var n=e.r(431231),i=e.r(334960),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=i.useSyncExternalStore,l=n.useRef,o=n.useEffect,c=n.useMemo,u=n.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,n,i){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var h=a(e,(d=c(function(){function e(e){if(!o){if(o=!0,a=e,e=n(e),void 0!==i&&f.hasValue){var t=f.value;if(i(t,e))return l=t}return l=e}if(t=l,s(a,e))return t;var r=n(e);return void 0!==i&&i(t,r)?(a=e,t):(a=e,l=r)}var a,l,o=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,n,i]))[0],d[1]);return o(function(){f.hasValue=!0,f.value=h},[h]),u(h),h}},596177,(e,t,r)=>{"use strict";t.exports=e.r(721665)},443991,e=>{"use strict";let t=(0,e.i(122436).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],443991)},296026,e=>{"use strict";let t=(0,e.i(122436).default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>t],296026)},222850,e=>{"use strict";var t=e.i(890022),r=e.i(632137);function n({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("animate-pulse rounded-md bg-muted",e),...n})}e.s(["Skeleton",()=>n])},417612,293821,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(987985);let i="u">typeof window?r.useLayoutEffect:r.useEffect;function s(e){if(void 0!==e)switch(typeof e){case"number":return e;case"string":if(e.endsWith("px"))return parseFloat(e)}}let a=null;function l({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if("horizontal"===t&&r)switch(function(e=!1){if(null===a||e){let e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";let r=document.createElement("div"),n=r.style;return n.width="100px",n.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?a="positive-descending":(e.scrollLeft=1,a=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),a}return a}()){case"negative":return-n;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:r,scrollWidth:n}=e;return n-t-r}}return n}function o(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function c(e,t){if(e===t)return!0;if(!!e!=!!t||(o(void 0!==e),o(void 0!==t),Object.keys(e).length!==Object.keys(t).length))return!1;for(let r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function u({cachedBounds:e,itemCount:t,itemSize:r}){if(0===t)return 0;if("number"==typeof r)return t*r;{let r=e.get(0===e.size?0:e.size-1);return o(void 0!==r,"Unexpected bounds cache miss"),t*((r.scrollOffset+r.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:i}){let s=n-1,a=0,l=-1,o=0,c=-1,u=0;for(;u<s;){let r=e.get(u);if(r.scrollOffset+r.size>t)break;u++}for(o=Math.max(0,(a=u)-i);u<s;){let n=e.get(u);if(n.scrollOffset+n.size>=t+r)break;u++}return c=Math.min(n-1,(l=Math.min(s,u))+i),a<0&&(a=0,l=-1,o=0,c=-1),{startIndexVisible:a,stopIndexVisible:l,startIndexOverscan:o,stopIndexOverscan:c}}function f(e,t){let{ariaAttributes:r,style:n,...i}=e,{ariaAttributes:s,style:a,...l}=t;return c(r,s)&&c(n,a)&&c(i,l)}function h({children:e,className:n,defaultHeight:a=0,listRef:h,onResize:m,onRowsRendered:x,overscanCount:g=3,rowComponent:p,rowCount:v,rowHeight:b,rowProps:y,tagName:w="div",style:S,...$}){let j=(0,r.useMemo)(()=>y,Object.values(y)),k=(0,r.useMemo)(()=>(0,r.memo)(p,f),[p]),[M,N]=(0,r.useState)(null),C=null!=b&&"object"==typeof b&&"getAverageRowHeight"in b&&"function"==typeof b.getAverageRowHeight,{getCellBounds:O,getEstimatedSize:z,scrollToIndex:I,startIndexOverscan:T,startIndexVisible:E,stopIndexOverscan:R,stopIndexVisible:A}=function({containerElement:e,containerStyle:t,defaultContainerSize:n=0,direction:a,isRtl:f=!1,itemCount:h,itemProps:m,itemSize:x,onResize:g,overscanCount:p}){var v;let b,[y,w]=(0,r.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:S,startIndexOverscan:$,stopIndexVisible:j,stopIndexOverscan:k}={startIndexVisible:Math.min(h-1,y.startIndexVisible),startIndexOverscan:Math.min(h-1,y.startIndexOverscan),stopIndexVisible:Math.min(h-1,y.stopIndexVisible),stopIndexOverscan:Math.min(h-1,y.stopIndexOverscan)},{height:M=n,width:N=n}=function({box:e,defaultHeight:t,defaultWidth:n,disabled:a,element:l,mode:o,style:c}){let{styleHeight:u,styleWidth:d}=(0,r.useMemo)(()=>({styleHeight:s(c?.height),styleWidth:s(c?.width)}),[c?.height,c?.width]),[f,h]=(0,r.useState)({height:t,width:n}),m=a||"only-height"===o&&void 0!==u||"only-width"===o&&void 0!==d||void 0!==u&&void 0!==d;return i(()=>{if(null===l||m)return;let t=new ResizeObserver(e=>{for(let t of e){let{contentRect:e,target:r}=t;l===r&&h(t=>t.height===e.height&&t.width===e.width?t:{height:e.height,width:e.width})}});return t.observe(l,{box:e}),()=>{t?.unobserve(l)}},[e,m,l,u,d]),(0,r.useMemo)(()=>({height:u??f.height,width:d??f.width}),[f,u,d])}({defaultHeight:"vertical"===a?n:void 0,defaultWidth:"horizontal"===a?n:void 0,element:e,mode:"vertical"===a?"only-height":"only-width",style:t}),C=(0,r.useRef)({height:0,width:0}),O="vertical"===a?M:N,z=function({containerSize:e,itemSize:t}){let r;return"string"==typeof t?(o(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),o(void 0!==e,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100):r=t,r}({containerSize:O,itemSize:x});(0,r.useLayoutEffect)(()=>{if("function"==typeof g){let e=C.current;(e.height!==M||e.width!==N)&&(g({height:M,width:N},{...e}),e.height=M,e.width=N)}},[M,g,N]);let I=function({itemCount:e,itemProps:t,itemSize:n}){return(0,r.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:r}){let n=new Map;return{get(i){for(o(i<e,`Invalid index ${i}`);n.size-1<i;){let e,s=n.size;switch(typeof r){case"function":e=r(s,t);break;case"number":e=r}if(0===s)n.set(s,{size:e,scrollOffset:0});else{let t=n.get(s-1);o(void 0!==t,`Unexpected bounds cache miss for index ${i}`),n.set(s,{scrollOffset:t.scrollOffset+t.size,size:e})}}let s=n.get(i);return o(void 0!==s,`Unexpected bounds cache miss for index ${i}`),s},set(e,t){n.set(e,t)},get size(){return n.size}}})({itemCount:e,itemProps:t,itemSize:n}),[e,t,n])}({itemCount:h,itemProps:m,itemSize:z}),T=(0,r.useCallback)(e=>I.get(e),[I]),E=(0,r.useCallback)(()=>u({cachedBounds:I,itemCount:h,itemSize:z}),[I,h,z]),R=(0,r.useCallback)(t=>d({cachedBounds:I,containerScrollOffset:l({containerElement:e,direction:a,isRtl:f,scrollOffset:t}),containerSize:O,itemCount:h,overscanCount:p}),[I,e,O,a,f,h,p]);return i(()=>{w(R(("vertical"===a?e?.scrollTop:e?.scrollLeft)??0))},[e,a,R]),i(()=>{if(!e)return;let t=()=>{w(t=>{let{scrollLeft:r,scrollTop:n}=e,i=d({cachedBounds:I,containerScrollOffset:l({containerElement:e,direction:a,isRtl:f,scrollOffset:"vertical"===a?n:r}),containerSize:O,itemCount:h,overscanCount:p});return c(i,t)?t:i})};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[I,e,O,a,h,p]),{getCellBounds:T,getEstimatedSize:E,scrollToIndex:(v=({align:t="auto",containerScrollOffset:r,index:n})=>{let i=function({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:i,containerScrollOffset:s,containerSize:a}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});let l=u({cachedBounds:t,itemCount:n,itemSize:i}),o=t.get(r),c=Math.max(0,Math.min(l-a,o.scrollOffset)),d=Math.max(0,o.scrollOffset-a+o.size);switch("smart"===e&&(e=s>=d&&s<=c?"auto":"center"),e){case"start":return c;case"end":return d;case"center":return o.scrollOffset<=a/2?0:o.scrollOffset+o.size/2>=l-a/2?l-a:o.scrollOffset+o.size/2-a/2;default:return s>=d&&s<=c?s:s<d?d:c}}({align:t,cachedBounds:I,containerScrollOffset:r,containerSize:O,index:n,itemCount:h,itemSize:z});if(e){if(i=l({containerElement:e,direction:a,isRtl:f,scrollOffset:i}),"function"!=typeof e.scrollTo){let e=R(i);c(y,e)||w(e)}return i}},b=(0,r.useRef)(()=>{throw Error("Cannot call during render.")}),i(()=>{b.current=v},[v]),(0,r.useCallback)(e=>b.current?.(e),[b])),startIndexOverscan:$,startIndexVisible:S,stopIndexOverscan:k,stopIndexVisible:j}}({containerElement:M,containerStyle:S,defaultContainerSize:a,direction:"vertical",itemCount:v,itemProps:j,itemSize:(0,r.useMemo)(()=>C?e=>b.getRowHeight(e)??b.getAverageRowHeight():b,[C,b]),onResize:m,overscanCount:g});(0,r.useImperativeHandle)(h,()=>({get element(){return M},scrollToRow({align:e="auto",behavior:t="auto",index:r}){let n=I({align:e,containerScrollOffset:M?.scrollTop??0,index:r});"function"==typeof M?.scrollTo&&M.scrollTo({behavior:t,top:n})}}),[M,I]),i(()=>{if(!M)return;let e=Array.from(M.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let r=`${T+t}`;return e.setAttribute("data-react-window-index",r),!0});if(C)return b.observeRowElements(e)},[M,C,b,T,R]),(0,r.useEffect)(()=>{T>=0&&R>=0&&x&&x({startIndex:E,stopIndex:A},{startIndex:T,stopIndex:R})},[x,T,E,R,A]);let D=(0,r.useMemo)(()=>{let e=[];if(v>0)for(let t=T;t<=R;t++){let n=O(t);e.push((0,r.createElement)(k,{...j,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":v,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${n.scrollOffset}px)`,height:C?void 0:n.size,width:"100%"}}))}return e},[k,O,C,v,j,T,R]),H=(0,t.jsx)("div",{"aria-hidden":!0,style:{height:z(),width:"100%",zIndex:-1}});return(0,r.createElement)(w,{role:"list",...$,className:n,ref:N,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...S}},D,e,H)}r.useState,r.useRef,r.useState,r.useRef;var m=e.i(300329),x=e.i(158362),g=e.i(525761),p=e.i(644021);let v=(0,e.i(122436).default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var b=e.i(21079),y=e.i(235893),w=e.i(168497),S=e.i(308402),$=e.i(708737),j=e.i(632137),k=e.i(597705),M=e.i(145878);let N={specs:[],signature:null,scrollTop:0,activeSpecId:null},C=[],O=new Set,z=new Set,I=new Set;function T(){for(let e of O)e()}function E(e){return O.add(e),()=>{O.delete(e)}}function R(){return N}function A(){return(0,r.useSyncExternalStore)(E,R,()=>N)}function D(){let e=r.useCallback(e=>(z.add(e),()=>{z.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>R().specs,()=>C)}function H(){let e=r.useCallback(e=>(I.add(e),()=>{I.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>R().activeSpecId,()=>null)}function L(e){if(0===e.length)return;let t=e.map(e=>[e.id,e.specNumber??"",e.title??"",e.status??"",e.priority??"",e.updatedAt?new Date(e.updatedAt).getTime():0].join(":")).join("|");if(t!==N.signature)for(let r of(N={...N,specs:e,signature:t},T(),z))r()}function V(e){if(N.activeSpecId!==e)for(let t of(N={...N,activeSpecId:e},T(),I))t()}function B(e){1>Math.abs(e-N.scrollTop)||(N={...N,scrollTop:e})}function P(){return N.scrollTop}e.s(["getSidebarScrollTop",()=>P,"primeSpecsSidebar",()=>L,"setActiveSidebarSpec",()=>V,"updateSidebarScrollTop",()=>B,"useSpecsSidebarActiveSpec",()=>H,"useSpecsSidebarSpecs",()=>D,"useSpecsSidebarState",()=>A],293821);let _=r.useLayoutEffect;function q({initialSpecs:e=[],currentSpecId:i,currentSubSpec:s,onSpecHover:a,className:l}){let[o,c]=r.useState(""),[u,d]=r.useState("all"),[f,N]=r.useState("all"),[C,O]=r.useState("all"),[z,I]=r.useState(!1),[T,E]=r.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[R,A]=r.useState(!1),[L,V]=r.useState(!1),q=r.useRef(null),W=r.useRef(null),Y=r.useRef(!1),F=r.useRef(null),U=r.useRef(0),J=r.useRef(!1),Z=r.useRef(!0),G=D(),K=H(),Q=r.useMemo(()=>G.length>0?G:e,[G,e]),X=i||K||"";r.useEffect(()=>{V(!0)},[]),r.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",T?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(T))},[T]),r.useEffect(()=>{A(!1)},[X,s]);let ee=r.useMemo(()=>{let e=Q;if(o){let t=o.toLowerCase();e=e.filter(e=>e.title?.toLowerCase().includes(t)||e.specName.toLowerCase().includes(t)||e.specNumber?.toString().includes(t))}return"all"!==u&&(e=e.filter(e=>e.status===u)),"all"!==f&&(e=e.filter(e=>e.priority===f)),"all"!==C&&(e=e.filter(e=>e.tags?.includes(C))),console.debug(e),e},[Q,o,u,f,C]),et=r.useMemo(()=>{let e=new Set;return Q.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[Q]),er="all"!==u||"all"!==f||"all"!==C,en=r.useMemo(()=>[...ee].sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)),[ee]);_(()=>{let e=null,t=null;U.current=P(),J.current=U.current>0;let r=()=>{let n=F.current?.element;if(!n){e=window.requestAnimationFrame(r);return}Y.current||(U.current>0&&(n.scrollTop=U.current),Y.current=!0);let i=()=>{null===W.current&&(W.current=window.requestAnimationFrame(()=>{W.current=null,U.current=n.scrollTop,B(n.scrollTop)}))};n.addEventListener("scroll",i,{passive:!0}),t=()=>{n.removeEventListener("scroll",i)}};return r(),()=>{t&&t(),null!==e&&window.cancelAnimationFrame(e),null!==W.current&&(window.cancelAnimationFrame(W.current),W.current=null)}},[]),_(()=>{if(!Z.current||(Z.current=!1,J.current||!X))return;let e=null,t=()=>{if(J.current)return;if(!Y.current||!F.current){e=window.requestAnimationFrame(t);return}let r=en.findIndex(e=>e.id===X);-1!==r&&(J.current=!0,F.current.scrollToRow({index:r,align:"center"}))};return t(),()=>{null!==e&&window.cancelAnimationFrame(e)}},[en,X]),r.useEffect(()=>(window.toggleSpecsSidebar=()=>A(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]);let ei=r.useCallback(e=>{let{index:r,style:i}=e,l=en[r],o=l.id===X,c=(l.contentMd?(0,j.extractH1Title)(l.contentMd):null)||l.title||l.specName;return(0,t.jsx)("div",{style:i,className:"px-1",children:(0,t.jsx)("div",{className:"mb-0.5",children:(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(n.default,{ref:o&&!s?q:null,href:`/specs/${l.specNumber||l.id}`,onMouseEnter:()=>a?.(l.specNumber?.toString()||l.id),className:(0,j.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",o?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[l.specNumber&&(0,t.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",l.specNumber.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate text-xs leading-relaxed",children:c})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[l.status&&(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(w.StatusBadge,{status:l.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(S.TooltipContent,{side:"right",children:(0,w.getStatusLabel)(l.status)})]}),l.priority&&(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(k.PriorityBadge,{priority:l.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(S.TooltipContent,{side:"right",children:(0,k.getPriorityLabel)(l.priority)})]}),"number"==typeof l.subSpecsCount&&l.subSpecsCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",l.subSpecsCount," files"]}),l.updatedAt&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:(0,M.formatRelativeTime)(l.updatedAt)})]})]})}),(0,t.jsx)(S.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-semibold",children:c}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:l.specName})]})})]})})})})},[en,X,s,a]),es=r.useMemo(()=>window.innerHeight-56-180,[]),ea=r.useMemo(()=>r.memo(h),[]);return(0,t.jsxs)(S.TooltipProvider,{delayDuration:700,children:[R&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>A(!1)}),(0,t.jsxs)("div",{className:(0,j.cn)("relative flex-shrink-0",l),children:[(0,t.jsxs)("aside",{className:(0,j.cn)("border-r border-border bg-background flex flex-col overflow-hidden transition-all duration-300","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",L&&T?"lg:w-0 lg:border-r-0":"lg:w-[280px]",R&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:[(0,t.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(y.Button,{variant:z||er?"default":"ghost",size:"sm",onClick:()=>I(!z),className:"h-6 w-6 p-0",children:(0,t.jsx)(v,{className:"h-4 w-4"})})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:z?"Hide filters":"Show filters"})]}),(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>A(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,t.jsx)(p.X,{className:"h-4 w-4"})}),(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>E(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,t.jsx)(x.ChevronLeft,{className:"h-4 w-4"})})]})]}),z&&(0,t.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),er&&(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>{d("all"),N("all"),O("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,t.jsxs)($.Select,{value:u,onValueChange:d,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Status"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Status"}),(0,t.jsx)($.SelectItem,{value:"planned",children:"Planned"}),(0,t.jsx)($.SelectItem,{value:"in-progress",children:"In Progress"}),(0,t.jsx)($.SelectItem,{value:"complete",children:"Complete"}),(0,t.jsx)($.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,t.jsxs)($.Select,{value:f,onValueChange:N,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Priority"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Priority"}),(0,t.jsx)($.SelectItem,{value:"low",children:"Low"}),(0,t.jsx)($.SelectItem,{value:"medium",children:"Medium"}),(0,t.jsx)($.SelectItem,{value:"high",children:"High"}),(0,t.jsx)($.SelectItem,{value:"critical",children:"Critical"})]})]}),et.length>0&&(0,t.jsxs)($.Select,{value:C,onValueChange:O,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Tag"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Tags"}),et.map(e=>(0,t.jsx)($.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(b.Input,{placeholder:"Search specs...",value:o,onChange:e=>c(e.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:0===en.length?(0,t.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,t.jsx)(ea,{listRef:F,defaultHeight:es,rowCount:en.length,rowHeight:72,overscanCount:5,rowComponent:ei,rowProps:{}})})]}),L&&T&&(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>E(!1),className:"hidden lg:items-center lg:justify-center lg:flex h-6 w-6 p-0 fixed z-50 top-20 -translate-y-1 -translate-x-1/2 left-[calc(var(--main-sidebar-width,240px))] bg-background border",children:(0,t.jsx)(g.ChevronRight,{className:"h-4 w-4"})})]})]})}e.s(["SpecsNavSidebar",()=>q],417612)},172381,e=>{e.v(t=>Promise.all(["static/chunks/e5aab2c562822175.js","static/chunks/192b2f6118d057e2.js","static/chunks/038fb2d565c88582.js","static/chunks/2136b3131f74188f.js","static/chunks/414a78f7b9b58d11.js","static/chunks/97c8160044aea609.js","static/chunks/3276ca6fd9005903.js"].map(t=>e.l(t))).then(()=>t(396758)))}]);