@leanspec/ui 0.2.7 → 0.2.9-dev.20251205030455

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (741) 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 +10 -0
  18. package/.next/standalone/packages/ui/.next/build-manifest.json +4 -4
  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 +72 -0
  22. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +2 -2
  23. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  24. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  25. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  27. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +2 -2
  33. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
  34. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  37. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +19 -19
  38. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +19 -19
  39. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  40. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  41. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  42. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
  43. package/.next/standalone/packages/ui/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
  44. package/.next/standalone/packages/ui/.next/server/app/api/context/route/build-manifest.json +11 -0
  45. package/.next/standalone/packages/ui/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
  46. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +8 -0
  47. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.map +5 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/context/route_client-reference-manifest.js +2 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/app-paths-manifest.json +3 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/build-manifest.json +11 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/server-reference-manifest.json +4 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +8 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.map +5 -0
  55. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -0
  56. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route_client-reference-manifest.js +2 -0
  57. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  60. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/app-paths-manifest.json +3 -0
  62. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/build-manifest.json +11 -0
  63. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/server-reference-manifest.json +4 -0
  64. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +8 -0
  65. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.map +5 -0
  66. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -0
  67. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route_client-reference-manifest.js +2 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/app-paths-manifest.json +3 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/build-manifest.json +11 -0
  70. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/server-reference-manifest.json +4 -0
  71. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +8 -0
  72. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.map +5 -0
  73. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -0
  74. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route_client-reference-manifest.js +2 -0
  75. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +1 -3
  76. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  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]/validate/route/app-paths-manifest.json +3 -0
  86. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/build-manifest.json +11 -0
  87. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/server-reference-manifest.json +4 -0
  88. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js +6 -0
  89. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.map +5 -0
  90. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -0
  91. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route_client-reference-manifest.js +2 -0
  92. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -3
  93. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  94. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
  95. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  96. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  98. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  99. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  100. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  101. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  102. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  103. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  104. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  105. package/.next/standalone/packages/ui/.next/server/app/context/page/app-paths-manifest.json +3 -0
  106. package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +18 -0
  107. package/.next/standalone/packages/ui/.next/server/app/context/page/next-font-manifest.json +6 -0
  108. package/.next/standalone/packages/ui/.next/server/app/context/page/react-loadable-manifest.json +1 -0
  109. package/.next/standalone/packages/ui/.next/server/app/context/page/server-reference-manifest.json +4 -0
  110. package/.next/standalone/packages/ui/.next/server/app/context/page.js +19 -0
  111. package/.next/standalone/packages/ui/.next/server/app/context/page.js.map +5 -0
  112. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -0
  113. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +2 -0
  114. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/app-paths-manifest.json +3 -0
  115. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/build-manifest.json +18 -0
  116. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/next-font-manifest.json +6 -0
  117. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/react-loadable-manifest.json +1 -0
  118. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/server-reference-manifest.json +4 -0
  119. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +19 -0
  120. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.map +5 -0
  121. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -0
  122. package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +2 -0
  123. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +2 -2
  124. package/.next/standalone/packages/ui/.next/server/app/page.js +4 -3
  125. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  126. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  127. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/app-paths-manifest.json +3 -0
  128. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/build-manifest.json +18 -0
  129. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/next-font-manifest.json +6 -0
  130. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/react-loadable-manifest.json +1 -0
  131. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/server-reference-manifest.json +4 -0
  132. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +21 -0
  133. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.map +5 -0
  134. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -0
  135. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +2 -0
  136. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/app-paths-manifest.json +3 -0
  137. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/build-manifest.json +18 -0
  138. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/next-font-manifest.json +6 -0
  139. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/react-loadable-manifest.json +1 -0
  140. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/server-reference-manifest.json +4 -0
  141. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +21 -0
  142. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.map +5 -0
  143. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -0
  144. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +2 -0
  145. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/build-manifest.json +2 -2
  146. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +7 -7
  147. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  148. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  149. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +2 -2
  150. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +8 -7
  151. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  152. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  153. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +2 -2
  154. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +7 -6
  155. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  156. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  157. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/app-paths-manifest.json +3 -0
  158. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/build-manifest.json +18 -0
  159. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/next-font-manifest.json +6 -0
  160. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/react-loadable-manifest.json +1 -0
  161. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/server-reference-manifest.json +4 -0
  162. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +21 -0
  163. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.map +5 -0
  164. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -0
  165. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +2 -0
  166. package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +2 -2
  167. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +7 -6
  168. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  169. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  170. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  171. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -23
  172. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -23
  173. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  174. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +3 -3
  175. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +2 -2
  178. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
  179. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  180. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  181. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +2 -2
  182. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
  183. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  184. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  185. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +2 -2
  186. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
  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 +10 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_dependencies_route_actions_7ac49581.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_context_route_actions_96adca70.js +3 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_validate_route_actions_b60372c9.js +3 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/[externals]_better-sqlite3_a1cc22cb._.js +3 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +3 -0
  195. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__18aca702._.js +3 -0
  196. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__27348781._.js +3 -0
  197. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +2 -2
  198. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a7f0840._.js +3 -0
  199. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3e17db24._.js +3 -0
  200. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5f1e0195._.js +3 -0
  201. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6e06fd2a._.js +3 -0
  202. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +3 -0
  203. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__97b99cc0._.js +3 -0
  204. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9d9758e1._.js +3 -0
  205. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +3 -0
  206. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b212b9bd._.js +3 -0
  207. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b9c03a57._.js +3 -0
  208. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e99e7672._.js +3 -0
  209. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f38a5f20._.js +3 -0
  210. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__126dea7b._.js → [root-of-the-server]__fa8cf2bc._.js} +2 -2
  211. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_context_route_actions_dead6daa.js +3 -0
  212. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_dependencies_route_actions_cf6b14c3.js +3 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_b8c1af87._.js +3 -0
  214. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +72 -1
  215. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_context_page_actions_e4940a48.js +3 -0
  216. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_stats_page_actions_82a85203.js +3 -0
  217. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
  218. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__13f96ef4._.js +3 -0
  219. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__212c8580._.js +3 -0
  220. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2b66bcca._.js +3 -0
  221. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__312221a2._.js +3 -0
  222. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +3 -0
  223. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__fd80e4dd._.js → [root-of-the-server]__38c56adc._.js} +2 -2
  224. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +3 -0
  225. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__46b71f61._.js +3 -0
  226. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__53f4506c._.js +3 -0
  227. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__665ae766._.js +3 -0
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +3 -0
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__84124d4b._.js +3 -0
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__921689ca._.js +3 -0
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a34731d8._.js +3 -0
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a9d7fd42._.js +3 -0
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b0d6e2ad._.js +3 -0
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b27b2469._.js +3 -0
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b3633d6e._.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dcee62dd._.js +3 -0
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +7 -0
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_39562b2a._.js → _170362f4._.js} +3 -3
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_1a642e67._.js +4 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +5 -0
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_85effc18._.js → _2bc76f88._.js} +3 -3
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_fdd7780b._.js → _3f059230._.js} +3 -3
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_58b98a8f._.js +4 -0
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_90eed09a._.js +3 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_959ad3d8._.js +4 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_22274047._.js → _adb9d7cb._.js} +2 -2
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_0f9ffe32._.js → _b303aeea._.js} +2 -2
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_bae6d2b8._.js → _b421ba4a._.js} +3 -3
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.js +3 -0
  252. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_da18b655._.js +3 -0
  253. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +3 -0
  254. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f05260d6._.js +4 -0
  255. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f38e75b7._.js +4 -0
  256. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f9129aae._.js +3 -0
  257. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_dependencies_page_actions_ba2321b8.js +3 -0
  258. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_0056f1f2._.js +3 -0
  259. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_015f83ca._.js +3 -0
  260. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_30b0b05a._.js +3 -0
  261. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_478d57e5._.js +3 -0
  262. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_4e3e790c._.js +3 -0
  263. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_80605a06._.js +3 -0
  264. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_f5b29533._.js → node_modules__pnpm_8680dc29._.js} +2 -2
  265. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_e175b92a._.js → node_modules__pnpm_94a0b1f5._.js} +2 -2
  266. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b4ff5c78._.js +3 -0
  267. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_bb80de48._.js +3 -0
  268. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_7791e3b8._.js → node_modules__pnpm_d3262b3d._.js} +2 -2
  269. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e8075f9b._.js +3 -0
  270. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f919ef4a._.js +3 -0
  271. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_context_page_actions_1a062d48.js +3 -0
  272. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_dependencies_page_actions_57387d47.js +3 -0
  273. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +12 -0
  274. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_dependencies_dependencies-client_tsx_0e82443a._.js +4 -0
  275. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_layout_tsx_86c2ce0f._.js +3 -0
  276. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  277. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  278. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +3 -0
  279. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  280. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +2 -2
  281. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  282. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  283. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  284. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  285. package/.next/standalone/packages/ui/.next/static/chunks/04de9ed512b8098b.js +10 -0
  286. package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
  287. package/.next/standalone/packages/ui/.next/static/chunks/3d12a8c3152b526d.js +3 -0
  288. package/.next/standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
  289. package/.next/standalone/packages/ui/.next/static/chunks/46275d9d67603bf5.js +1 -0
  290. package/.next/standalone/packages/ui/.next/static/chunks/7931c6cb379305b1.js +1 -0
  291. package/.next/standalone/packages/ui/.next/static/chunks/7a00633903e066b4.js +1 -0
  292. package/.next/standalone/packages/ui/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  293. package/.next/standalone/packages/ui/.next/static/chunks/7f9a218732be8099.js +5 -0
  294. package/.next/standalone/packages/ui/.next/static/chunks/840c6743a491a398.js +1 -0
  295. package/.next/standalone/packages/ui/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
  296. package/.next/standalone/packages/ui/.next/static/chunks/8d8c106c6848d15b.js +1 -0
  297. package/.next/standalone/packages/ui/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
  298. package/.next/standalone/packages/ui/.next/static/chunks/a640b005f2e15d98.js +1 -0
  299. package/.next/standalone/packages/ui/.next/static/chunks/a7075a240adea8e8.js +1 -0
  300. package/.next/standalone/packages/ui/.next/static/chunks/b53250480fde6816.js +1 -0
  301. package/.next/standalone/packages/ui/.next/static/chunks/{794f3931f1ca12d2.js → bbd498aa5689c057.js} +1 -1
  302. package/.next/standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
  303. package/.next/standalone/packages/ui/.next/static/chunks/c658e22a605e0ed1.js +1 -0
  304. package/.next/standalone/packages/ui/.next/static/chunks/c92660d8d0c4763d.js +1 -0
  305. package/.next/{static/chunks/e3bc96a996e2a314.js → standalone/packages/ui/.next/static/chunks/d26f4109b44eb240.js} +1 -1
  306. package/.next/{static/chunks/3276ca6fd9005903.js → standalone/packages/ui/.next/static/chunks/d52a048b511c32bd.js} +1 -1
  307. package/.next/standalone/packages/ui/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
  308. package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
  309. package/.next/standalone/packages/ui/.next/static/chunks/f924ae32752e1583.js +1 -0
  310. package/.next/standalone/packages/ui/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
  311. package/.next/standalone/packages/ui/.next/static/chunks/{turbopack-5fa55215af0efb15.js → turbopack-261c5dcdd873f310.js} +1 -1
  312. package/.next/standalone/packages/ui/package.json +5 -1
  313. package/.next/standalone/packages/ui/server.js +1 -1
  314. package/.next/standalone/packages/ui/src/app/api/context/route.ts +22 -0
  315. package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +81 -0
  316. package/.next/standalone/packages/ui/src/app/api/projects/[id]/context/route.ts +39 -0
  317. package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +69 -0
  318. package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +25 -9
  319. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +14 -14
  320. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +9 -8
  321. package/.next/standalone/packages/ui/src/app/api/projects/[id]/validate/route.ts +49 -0
  322. package/.next/standalone/packages/ui/src/app/api/projects/route.ts +18 -5
  323. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -2
  324. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts +0 -15
  325. package/.next/standalone/packages/ui/src/app/context/context-client.tsx +393 -0
  326. package/.next/standalone/packages/ui/src/app/context/page.tsx +17 -0
  327. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +29 -58
  328. package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +25 -0
  329. package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +700 -0
  330. package/.next/standalone/packages/ui/src/app/dependencies/index.ts +19 -0
  331. package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +38 -0
  332. package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +80 -0
  333. package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +171 -0
  334. package/.next/standalone/packages/ui/src/app/dependencies/types.ts +37 -0
  335. package/.next/standalone/packages/ui/src/app/dependencies/utils.ts +194 -0
  336. package/.next/standalone/packages/ui/src/app/globals.css +16 -16
  337. package/.next/standalone/packages/ui/src/app/layout.tsx +4 -7
  338. package/.next/standalone/packages/ui/src/app/page.tsx +24 -0
  339. package/.next/standalone/packages/ui/src/app/projects/[projectId]/context/page.tsx +41 -0
  340. package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +43 -0
  341. package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +18 -2
  342. package/.next/standalone/packages/ui/src/app/projects/[projectId]/stats/page.tsx +24 -0
  343. package/.next/standalone/packages/ui/src/app/projects/layout.tsx +7 -0
  344. package/.next/standalone/packages/ui/src/app/projects/page.tsx +167 -20
  345. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +27 -17
  346. package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
  347. package/.next/standalone/packages/ui/src/components/context-file-detail.tsx +308 -0
  348. package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +385 -0
  349. package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +3 -5
  350. package/.next/standalone/packages/ui/src/components/directory-picker.tsx +1 -0
  351. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +39 -5
  352. package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
  353. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +24 -5
  354. package/.next/standalone/packages/ui/src/components/quick-search.tsx +3 -1
  355. package/.next/standalone/packages/ui/src/components/spec-dependency-graph.tsx +13 -52
  356. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +215 -143
  357. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +23 -4
  358. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +11 -8
  359. package/.next/standalone/packages/ui/src/components/ui/accordion.tsx +58 -0
  360. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
  361. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +246 -23
  362. package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
  363. package/.next/standalone/packages/ui/src/lib/specs/types.ts +44 -0
  364. package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
  365. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  366. package/.next/static/chunks/04de9ed512b8098b.js +10 -0
  367. package/.next/static/chunks/1e0689744f87e958.js +2 -0
  368. package/.next/static/chunks/3d12a8c3152b526d.js +3 -0
  369. package/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
  370. package/.next/static/chunks/46275d9d67603bf5.js +1 -0
  371. package/.next/static/chunks/7931c6cb379305b1.js +1 -0
  372. package/.next/static/chunks/7a00633903e066b4.js +1 -0
  373. package/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  374. package/.next/static/chunks/7f9a218732be8099.js +5 -0
  375. package/.next/static/chunks/840c6743a491a398.js +1 -0
  376. package/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
  377. package/.next/static/chunks/8d8c106c6848d15b.js +1 -0
  378. package/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
  379. package/.next/static/chunks/a640b005f2e15d98.js +1 -0
  380. package/.next/static/chunks/a7075a240adea8e8.js +1 -0
  381. package/.next/static/chunks/b53250480fde6816.js +1 -0
  382. package/.next/static/chunks/{794f3931f1ca12d2.js → bbd498aa5689c057.js} +1 -1
  383. package/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
  384. package/.next/static/chunks/c658e22a605e0ed1.js +1 -0
  385. package/.next/static/chunks/c92660d8d0c4763d.js +1 -0
  386. package/.next/{standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js → static/chunks/d26f4109b44eb240.js} +1 -1
  387. package/.next/{standalone/packages/ui/.next/static/chunks/3276ca6fd9005903.js → static/chunks/d52a048b511c32bd.js} +1 -1
  388. package/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
  389. package/.next/static/chunks/e399b4afc7936907.js +1 -0
  390. package/.next/static/chunks/f924ae32752e1583.js +1 -0
  391. package/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
  392. package/.next/static/chunks/{turbopack-5fa55215af0efb15.js → turbopack-261c5dcdd873f310.js} +1 -1
  393. package/package.json +6 -2
  394. 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
  395. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +0 -3
  396. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +0 -3
  397. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +0 -3
  398. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +0 -3
  399. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +0 -3
  400. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +0 -3
  401. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +0 -3
  402. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +0 -3
  403. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +0 -3
  404. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +0 -3
  405. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +0 -3
  406. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +0 -74
  407. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +0 -3
  408. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +0 -3
  409. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +0 -3
  410. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +0 -3
  411. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +0 -3
  412. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__5382b397._.js +0 -3
  413. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +0 -7
  414. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +0 -3
  415. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +0 -7
  416. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +0 -3
  417. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +0 -3
  418. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +0 -3
  419. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +0 -3
  420. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
  421. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +0 -3
  422. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_497c8b73._.js +0 -3
  423. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ac867463._.js +0 -3
  424. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +0 -5
  425. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +0 -3
  426. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  427. package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  428. package/.next/standalone/packages/ui/.next/static/chunks/2204c0f16b23ec4c.js +0 -3
  429. package/.next/standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js +0 -1
  430. package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +0 -1
  431. package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  432. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  433. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  434. package/.next/standalone/packages/ui/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
  435. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +0 -5
  436. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  437. package/.next/standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js +0 -1
  438. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +0 -1
  439. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
  440. package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +0 -20
  441. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +0 -59
  442. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +0 -1
  443. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +0 -427
  444. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +0 -436
  445. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +0 -20
  446. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +0 -10
  447. package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +0 -18
  448. package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
  449. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -83
  450. package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
  451. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
  452. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/favicon.ico +0 -0
  453. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/file.svg +0 -1
  454. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark-white.svg +0 -1
  455. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark.svg +0 -1
  456. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/globe.svg +0 -1
  457. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/icon.svg +0 -7
  458. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-dark-bg.svg +0 -17
  459. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-with-bg.svg +0 -17
  460. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo.svg +0 -17
  461. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/next.svg +0 -1
  462. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/vercel.svg +0 -1
  463. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/window.svg +0 -1
  464. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
  465. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +0 -23
  466. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +0 -19
  467. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +0 -63
  468. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -51
  469. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +0 -171
  470. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +0 -36
  471. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +0 -46
  472. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +0 -19
  473. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +0 -162
  474. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +0 -43
  475. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +0 -18
  476. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +0 -364
  477. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +0 -43
  478. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +0 -531
  479. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +0 -277
  480. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +0 -70
  481. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +0 -87
  482. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +0 -27
  483. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +0 -18
  484. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +0 -5
  485. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +0 -43
  486. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +0 -18
  487. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +0 -425
  488. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +0 -18
  489. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +0 -283
  490. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +0 -46
  491. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +0 -52
  492. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +0 -175
  493. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +0 -96
  494. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +0 -95
  495. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +0 -210
  496. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +0 -53
  497. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +0 -180
  498. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +0 -119
  499. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +0 -369
  500. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +0 -372
  501. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +0 -42
  502. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +0 -70
  503. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-metadata.tsx +0 -136
  504. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +0 -127
  505. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +0 -186
  506. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +0 -561
  507. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +0 -53
  508. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +0 -143
  509. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +0 -130
  510. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +0 -11
  511. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +0 -37
  512. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +0 -50
  513. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +0 -36
  514. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +0 -110
  515. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +0 -57
  516. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +0 -76
  517. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +0 -153
  518. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +0 -122
  519. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +0 -24
  520. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +0 -159
  521. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +0 -31
  522. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +0 -15
  523. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +0 -55
  524. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +0 -30
  525. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +0 -32
  526. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +0 -76
  527. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +0 -42
  528. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +0 -18
  529. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +0 -114
  530. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +0 -123
  531. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +0 -156
  532. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +0 -216
  533. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +0 -105
  534. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +0 -120
  535. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +0 -94
  536. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +0 -249
  537. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +0 -55
  538. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +0 -152
  539. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +0 -171
  540. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +0 -17
  541. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +0 -18
  542. package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +0 -58
  543. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +0 -34
  544. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +0 -1
  545. package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +0 -14
  546. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +0 -175
  547. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
  548. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
  549. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
  550. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
  551. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
  552. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
  553. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
  554. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
  555. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
  556. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
  557. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
  558. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
  559. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
  560. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
  561. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
  562. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -306
  563. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
  564. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
  565. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
  566. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
  567. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
  568. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
  569. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
  570. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
  571. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
  572. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
  573. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
  574. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
  575. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
  576. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
  577. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
  578. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
  579. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
  580. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
  581. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
  582. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
  583. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
  584. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
  585. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
  586. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
  587. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
  588. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
  589. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
  590. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
  591. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
  592. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
  593. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
  594. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
  595. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
  596. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
  597. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
  598. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
  599. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
  600. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
  601. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
  602. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
  603. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
  604. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
  605. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
  606. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
  607. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
  608. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
  609. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
  610. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
  611. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
  612. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
  613. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
  614. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
  615. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
  616. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
  617. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
  618. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
  619. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
  620. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
  621. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
  622. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
  623. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
  624. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
  625. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
  626. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
  627. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
  628. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
  629. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
  630. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
  631. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
  632. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
  633. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
  634. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
  635. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
  636. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
  637. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
  638. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
  639. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
  640. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
  641. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
  642. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
  643. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -287
  644. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
  645. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
  646. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
  647. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
  648. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
  649. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
  650. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
  651. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
  652. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -825
  653. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
  654. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
  655. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
  656. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
  657. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -501
  658. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
  659. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
  660. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
  661. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
  662. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -421
  663. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -106
  664. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -126
  665. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -131
  666. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -254
  667. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -152
  668. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -65
  669. package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +0 -332
  670. package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +0 -339
  671. package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +0 -399
  672. package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +0 -525
  673. package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +0 -387
  674. package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +0 -613
  675. package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +0 -266
  676. package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +0 -100
  677. package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +0 -172
  678. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
  679. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
  680. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
  681. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
  682. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
  683. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
  684. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
  685. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
  686. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
  687. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
  688. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
  689. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
  690. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
  691. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
  692. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
  693. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
  694. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
  695. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
  696. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
  697. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
  698. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
  699. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
  700. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
  701. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
  702. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
  703. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
  704. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
  705. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
  706. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
  707. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
  708. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
  709. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
  710. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
  711. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
  712. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
  713. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
  714. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
  715. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
  716. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
  717. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
  718. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
  719. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
  720. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
  721. package/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  722. package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  723. package/.next/static/chunks/2204c0f16b23ec4c.js +0 -3
  724. package/.next/static/chunks/294dea6dbec43ca6.js +0 -1
  725. package/.next/static/chunks/2c85b8059e42248a.js +0 -1
  726. package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  727. package/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  728. package/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  729. package/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
  730. package/.next/static/chunks/b845813463167db0.js +0 -5
  731. package/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  732. package/.next/static/chunks/cca4441cde342ae3.js +0 -1
  733. package/.next/static/chunks/d784d84d5b880e48.js +0 -1
  734. /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
  735. /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
  736. /package/.next/standalone/packages/ui/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
  737. /package/.next/standalone/packages/ui/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
  738. /package/.next/standalone/packages/ui/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
  739. /package/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
  740. /package/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
  741. /package/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,585458,(e,t,n)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",n="minute",r="hour",s="week",i="month",l="quarter",a="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,h=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},f="en",m={};m[f]={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"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}};var x="$isDayjsObject",p=function(e){return e instanceof w||!(!e||!e[x])},g=function e(t,n,r){var s;if(!t)return f;if("string"==typeof t){var i=t.toLowerCase();m[i]&&(s=i),n&&(m[i]=n,s=i);var l=t.split("-");if(!s&&l.length>1)return e(l[0])}else{var a=t.name;m[a]=t,s=a}return!r&&s&&(f=s),s||!r&&f},v=function(e,t){if(p(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new w(n)},S={s:h,z:function(e){var t=-e.utcOffset(),n=Math.abs(t);return(t<=0?"+":"-")+h(Math.floor(n/60),2,"0")+":"+h(n%60,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),s=t.clone().add(r,i),l=n-s<0,a=t.clone().add(r+(l?-1:1),i);return+(-(r+(n-s)/(l?s-a:a-s))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return({M:i,y:a,w:s,d:"day",D:o,h:r,m:n,s:t,ms:e,Q:l})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};S.l=g,S.i=p,S.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var w=function(){function h(e){this.$L=g(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var f=h.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(u);if(r){var s=r[2]-1||0,i=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)):new Date(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,i)}}return new Date(t)}(e),this.init()},f.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()},f.$utils=function(){return S},f.isValid=function(){return this.$d.toString()!==c},f.isSame=function(e,t){var n=v(e);return this.startOf(t)<=n&&n<=this.endOf(t)},f.isAfter=function(e,t){return v(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<v(e)},f.$g=function(e,t,n){return S.u(e)?this[t]:this.set(n,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,l){var c=this,u=!!S.u(l)||l,d=S.p(e),h=function(e,t){var n=S.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?n:n.endOf("day")},f=function(e,t){return S.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,p=this.$D,g="set"+(this.$u?"UTC":"");switch(d){case a:return u?h(1,0):h(31,11);case i:return u?h(1,x):h(0,x+1);case s:var v=this.$locale().weekStart||0,w=(m<v?m+7:m)-v;return h(u?p-w:p+(6-w),x);case"day":case o:return f(g+"Hours",0);case r:return f(g+"Minutes",1);case n:return f(g+"Seconds",2);case t:return f(g+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(s,l){var c,u=S.p(s),d="set"+(this.$u?"UTC":""),h=((c={}).day=d+"Date",c[o]=d+"Date",c[i]=d+"Month",c[a]=d+"FullYear",c[r]=d+"Hours",c[n]=d+"Minutes",c[t]=d+"Seconds",c[e]=d+"Milliseconds",c)[u],f="day"===u?this.$D+(l-this.$W):l;if(u===i||u===a){var m=this.clone().set(o,1);m.$d[h](f),m.init(),this.$d=m.set(o,Math.min(this.$D,m.daysInMonth())).$d}else h&&this.$d[h](f);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[S.p(e)]()},f.add=function(e,l){var o,c=this;e=Number(e);var u=S.p(l),d=function(t){var n=v(c);return S.w(n.date(n.date()+Math.round(t*e)),c)};if(u===i)return this.set(i,this.$M+e);if(u===a)return this.set(a,this.$y+e);if("day"===u)return d(1);if(u===s)return d(7);var h=((o={})[n]=6e4,o[r]=36e5,o[t]=1e3,o)[u]||1,f=this.$d.getTime()+e*h;return S.w(f,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||c;var r=e||"YYYY-MM-DDTHH:mm:ssZ",s=S.z(this),i=this.$H,l=this.$m,a=this.$M,o=n.weekdays,u=n.months,h=n.meridiem,f=function(e,n,s,i){return e&&(e[n]||e(t,r))||s[n].slice(0,i)},m=function(e){return S.s(i%12||12,e,"0")},x=h||function(e,t,n){var r=e<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(d,function(e,r){return r||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return S.s(t.$y,4,"0");case"M":return a+1;case"MM":return S.s(a+1,2,"0");case"MMM":return f(n.monthsShort,a,u,3);case"MMMM":return f(u,a);case"D":return t.$D;case"DD":return S.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return f(n.weekdaysMin,t.$W,o,2);case"ddd":return f(n.weekdaysShort,t.$W,o,3);case"dddd":return o[t.$W];case"H":return String(i);case"HH":return S.s(i,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return x(i,l,!0);case"A":return x(i,l,!1);case"m":return String(l);case"mm":return S.s(l,2,"0");case"s":return String(t.$s);case"ss":return S.s(t.$s,2,"0");case"SSS":return S.s(t.$ms,3,"0");case"Z":return s}return null}(e)||s.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(e,o,c){var u,d=this,h=S.p(o),f=v(e),m=(f.utcOffset()-this.utcOffset())*6e4,x=this-f,p=function(){return S.m(d,f)};switch(h){case a:u=p()/12;break;case i:u=p();break;case l:u=p()/3;break;case s:u=(x-m)/6048e5;break;case"day":u=(x-m)/864e5;break;case r:u=x/36e5;break;case n:u=x/6e4;break;case t:u=x/1e3;break;default:u=x}return c?u:S.a(u)},f.daysInMonth=function(){return this.endOf(i).$D},f.$locale=function(){return m[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=g(e,t,!0);return r&&(n.$L=r),n},f.clone=function(){return S.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},h}(),b=w.prototype;return v.prototype=b,[["$ms",e],["$s",t],["$m",n],["$H",r],["$W","day"],["$M",i],["$y",a],["$D",o]].forEach(function(e){b[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),v.extend=function(e,t){return e.$i||(e(t,w,v),e.$i=!0),v},v.locale=g,v.isDayjs=p,v.unix=function(e){return v(1e3*e)},v.en=m[f],v.Ls=m,v.p={},v}()},222850,e=>{"use strict";var t=e.i(890022),n=e.i(632137);function r({className:e,...r}){return(0,t.jsx)("div",{className:(0,n.cn)("animate-pulse rounded-md bg-muted",e),...r})}e.s(["Skeleton",()=>r])},417612,293821,e=>{"use strict";var t=e.i(890022),n=e.i(431231),r=e.i(987985);let s="u">typeof window?n.useLayoutEffect:n.useEffect;function i(e){if(void 0!==e)switch(typeof e){case"number":return e;case"string":if(e.endsWith("px"))return parseFloat(e)}}let l=null;function a({containerElement:e,direction:t,isRtl:n,scrollOffset:r}){if("horizontal"===t&&n)switch(function(e=!1){if(null===l||e){let e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";let n=document.createElement("div"),r=n.style;return r.width="100px",r.height="100px",e.appendChild(n),document.body.appendChild(e),e.scrollLeft>0?l="positive-descending":(e.scrollLeft=1,l=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),l}return l}()){case"negative":return-r;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:n,scrollWidth:r}=e;return r-t-n}}return r}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 n in e)if(!Object.is(t[n],e[n]))return!1;return!0}function u({cachedBounds:e,itemCount:t,itemSize:n}){if(0===t)return 0;if("number"==typeof n)return t*n;{let n=e.get(0===e.size?0:e.size-1);return o(void 0!==n,"Unexpected bounds cache miss"),t*((n.scrollOffset+n.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:n,itemCount:r,overscanCount:s}){let i=r-1,l=0,a=-1,o=0,c=-1,u=0;for(;u<i;){let n=e.get(u);if(n.scrollOffset+n.size>t)break;u++}for(o=Math.max(0,(l=u)-s);u<i;){let r=e.get(u);if(r.scrollOffset+r.size>=t+n)break;u++}return c=Math.min(r-1,(a=Math.min(i,u))+s),l<0&&(l=0,a=-1,o=0,c=-1),{startIndexVisible:l,stopIndexVisible:a,startIndexOverscan:o,stopIndexOverscan:c}}function h(e,t){let{ariaAttributes:n,style:r,...s}=e,{ariaAttributes:i,style:l,...a}=t;return c(n,i)&&c(r,l)&&c(s,a)}function f({children:e,className:r,defaultHeight:l=0,listRef:f,onResize:m,onRowsRendered:x,overscanCount:p=3,rowComponent:g,rowCount:v,rowHeight:S,rowProps:w,tagName:b="div",style:y,...j}){let $=(0,n.useMemo)(()=>w,Object.values(w)),C=(0,n.useMemo)(()=>(0,n.memo)(g,h),[g]),[N,M]=(0,n.useState)(null),I=null!=S&&"object"==typeof S&&"getAverageRowHeight"in S&&"function"==typeof S.getAverageRowHeight,{getCellBounds:O,getEstimatedSize:z,scrollToIndex:T,startIndexOverscan:k,startIndexVisible:D,stopIndexOverscan:A,stopIndexVisible:E}=function({containerElement:e,containerStyle:t,defaultContainerSize:r=0,direction:l,isRtl:h=!1,itemCount:f,itemProps:m,itemSize:x,onResize:p,overscanCount:g}){var v;let S,[w,b]=(0,n.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:y,startIndexOverscan:j,stopIndexVisible:$,stopIndexOverscan:C}={startIndexVisible:Math.min(f-1,w.startIndexVisible),startIndexOverscan:Math.min(f-1,w.startIndexOverscan),stopIndexVisible:Math.min(f-1,w.stopIndexVisible),stopIndexOverscan:Math.min(f-1,w.stopIndexOverscan)},{height:N=r,width:M=r}=function({box:e,defaultHeight:t,defaultWidth:r,disabled:l,element:a,mode:o,style:c}){let{styleHeight:u,styleWidth:d}=(0,n.useMemo)(()=>({styleHeight:i(c?.height),styleWidth:i(c?.width)}),[c?.height,c?.width]),[h,f]=(0,n.useState)({height:t,width:r}),m=l||"only-height"===o&&void 0!==u||"only-width"===o&&void 0!==d||void 0!==u&&void 0!==d;return s(()=>{if(null===a||m)return;let t=new ResizeObserver(e=>{for(let t of e){let{contentRect:e,target:n}=t;a===n&&f(t=>t.height===e.height&&t.width===e.width?t:{height:e.height,width:e.width})}});return t.observe(a,{box:e}),()=>{t?.unobserve(a)}},[e,m,a,u,d]),(0,n.useMemo)(()=>({height:u??h.height,width:d??h.width}),[h,u,d])}({defaultHeight:"vertical"===l?r:void 0,defaultWidth:"horizontal"===l?r:void 0,element:e,mode:"vertical"===l?"only-height":"only-width",style:t}),I=(0,n.useRef)({height:0,width:0}),O="vertical"===l?N:M,z=function({containerSize:e,itemSize:t}){let n;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"),n=e*parseInt(t)/100):n=t,n}({containerSize:O,itemSize:x});(0,n.useLayoutEffect)(()=>{if("function"==typeof p){let e=I.current;(e.height!==N||e.width!==M)&&(p({height:N,width:M},{...e}),e.height=N,e.width=M)}},[N,p,M]);let T=function({itemCount:e,itemProps:t,itemSize:r}){return(0,n.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:n}){let r=new Map;return{get(s){for(o(s<e,`Invalid index ${s}`);r.size-1<s;){let e,i=r.size;switch(typeof n){case"function":e=n(i,t);break;case"number":e=n}if(0===i)r.set(i,{size:e,scrollOffset:0});else{let t=r.get(i-1);o(void 0!==t,`Unexpected bounds cache miss for index ${s}`),r.set(i,{scrollOffset:t.scrollOffset+t.size,size:e})}}let i=r.get(s);return o(void 0!==i,`Unexpected bounds cache miss for index ${s}`),i},set(e,t){r.set(e,t)},get size(){return r.size}}})({itemCount:e,itemProps:t,itemSize:r}),[e,t,r])}({itemCount:f,itemProps:m,itemSize:z}),k=(0,n.useCallback)(e=>T.get(e),[T]),D=(0,n.useCallback)(()=>u({cachedBounds:T,itemCount:f,itemSize:z}),[T,f,z]),A=(0,n.useCallback)(t=>d({cachedBounds:T,containerScrollOffset:a({containerElement:e,direction:l,isRtl:h,scrollOffset:t}),containerSize:O,itemCount:f,overscanCount:g}),[T,e,O,l,h,f,g]);return s(()=>{b(A(("vertical"===l?e?.scrollTop:e?.scrollLeft)??0))},[e,l,A]),s(()=>{if(!e)return;let t=()=>{b(t=>{let{scrollLeft:n,scrollTop:r}=e,s=d({cachedBounds:T,containerScrollOffset:a({containerElement:e,direction:l,isRtl:h,scrollOffset:"vertical"===l?r:n}),containerSize:O,itemCount:f,overscanCount:g});return c(s,t)?t:s})};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[T,e,O,l,f,g]),{getCellBounds:k,getEstimatedSize:D,scrollToIndex:(v=({align:t="auto",containerScrollOffset:n,index:r})=>{let s=function({align:e,cachedBounds:t,index:n,itemCount:r,itemSize:s,containerScrollOffset:i,containerSize:l}){if(n<0||n>=r)throw RangeError(`Invalid index specified: ${n}`,{cause:`Index ${n} is not within the range of 0 - ${r-1}`});let a=u({cachedBounds:t,itemCount:r,itemSize:s}),o=t.get(n),c=Math.max(0,Math.min(a-l,o.scrollOffset)),d=Math.max(0,o.scrollOffset-l+o.size);switch("smart"===e&&(e=i>=d&&i<=c?"auto":"center"),e){case"start":return c;case"end":return d;case"center":return o.scrollOffset<=l/2?0:o.scrollOffset+o.size/2>=a-l/2?a-l:o.scrollOffset+o.size/2-l/2;default:return i>=d&&i<=c?i:i<d?d:c}}({align:t,cachedBounds:T,containerScrollOffset:n,containerSize:O,index:r,itemCount:f,itemSize:z});if(e){if(s=a({containerElement:e,direction:l,isRtl:h,scrollOffset:s}),"function"!=typeof e.scrollTo){let e=A(s);c(w,e)||b(e)}return s}},S=(0,n.useRef)(()=>{throw Error("Cannot call during render.")}),s(()=>{S.current=v},[v]),(0,n.useCallback)(e=>S.current?.(e),[S])),startIndexOverscan:j,startIndexVisible:y,stopIndexOverscan:C,stopIndexVisible:$}}({containerElement:N,containerStyle:y,defaultContainerSize:l,direction:"vertical",itemCount:v,itemProps:$,itemSize:(0,n.useMemo)(()=>I?e=>S.getRowHeight(e)??S.getAverageRowHeight():S,[I,S]),onResize:m,overscanCount:p});(0,n.useImperativeHandle)(f,()=>({get element(){return N},scrollToRow({align:e="auto",behavior:t="auto",index:n}){let r=T({align:e,containerScrollOffset:N?.scrollTop??0,index:n});"function"==typeof N?.scrollTo&&N.scrollTo({behavior:t,top:r})}}),[N,T]),s(()=>{if(!N)return;let e=Array.from(N.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let n=`${k+t}`;return e.setAttribute("data-react-window-index",n),!0});if(I)return S.observeRowElements(e)},[N,I,S,k,A]),(0,n.useEffect)(()=>{k>=0&&A>=0&&x&&x({startIndex:D,stopIndex:E},{startIndex:k,stopIndex:A})},[x,k,D,A,E]);let R=(0,n.useMemo)(()=>{let e=[];if(v>0)for(let t=k;t<=A;t++){let r=O(t);e.push((0,n.createElement)(C,{...$,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":v,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${r.scrollOffset}px)`,height:I?void 0:r.size,width:"100%"}}))}return e},[C,O,I,v,$,k,A]),L=(0,t.jsx)("div",{"aria-hidden":!0,style:{height:z(),width:"100%",zIndex:-1}});return(0,n.createElement)(b,{role:"list",...j,className:r,ref:M,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...y}},R,e,L)}n.useState,n.useRef,n.useState,n.useRef;var m=e.i(300329),x=e.i(158362),p=e.i(525761),g=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 S=e.i(21079),w=e.i(235893),b=e.i(168497),y=e.i(308402),j=e.i(708737),$=e.i(632137),C=e.i(597705),N=e.i(145878);let M={specs:[],signature:null,scrollTop:0,activeSpecId:null},I=[],O=new Set,z=new Set,T=new Set;function k(){for(let e of O)e()}function D(e){return O.add(e),()=>{O.delete(e)}}function A(){return M}function E(){return(0,n.useSyncExternalStore)(D,A,()=>M)}function R(){let e=n.useCallback(e=>(z.add(e),()=>{z.delete(e)}),[]);return(0,n.useSyncExternalStore)(e,()=>A().specs,()=>I)}function L(){let e=n.useCallback(e=>(T.add(e),()=>{T.delete(e)}),[]);return(0,n.useSyncExternalStore)(e,()=>A().activeSpecId,()=>null)}function H(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!==M.signature)for(let n of(M={...M,specs:e,signature:t},k(),z))n()}function V(e){if(M.activeSpecId!==e)for(let t of(M={...M,activeSpecId:e},k(),T))t()}function B(e){1>Math.abs(e-M.scrollTop)||(M={...M,scrollTop:e})}function P(){return M.scrollTop}e.s(["getSidebarScrollTop",()=>P,"primeSpecsSidebar",()=>H,"setActiveSidebarSpec",()=>V,"updateSidebarScrollTop",()=>B,"useSpecsSidebarActiveSpec",()=>L,"useSpecsSidebarSpecs",()=>R,"useSpecsSidebarState",()=>E],293821);var _=e.i(20648);let W=n.useLayoutEffect;function Y({initialSpecs:e=[],currentSpecId:s,currentSubSpec:i,onSpecHover:l,className:a}){let[o,c]=n.useState(""),[u,d]=n.useState("all"),[h,M]=n.useState("all"),[I,O]=n.useState("all"),[z,T]=n.useState(!1),[k,D]=n.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[A,E]=n.useState(!1),[H,V]=n.useState(!1),Y=n.useRef(null),F=n.useRef(null),U=n.useRef(!1),q=n.useRef(null),J=n.useRef(0),Z=n.useRef(!1),K=n.useRef(!0),G=R(),Q=L(),X=n.useMemo(()=>G.length>0?G:e,[G,e]),ee=s||Q||"";n.useEffect(()=>{V(!0)},[]),n.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",k?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(k))},[k]),n.useEffect(()=>{E(!1)},[ee,i]);let et=n.useMemo(()=>{let e=X;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"!==h&&(e=e.filter(e=>e.priority===h)),"all"!==I&&(e=e.filter(e=>e.tags?.includes(I))),console.debug(e),e},[X,o,u,h,I]),en=n.useMemo(()=>{let e=new Set;return X.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[X]),er="all"!==u||"all"!==h||"all"!==I,es=n.useMemo(()=>[...et].sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)),[et]);W(()=>{let e=null,t=null;J.current=P(),Z.current=J.current>0;let n=()=>{let r=q.current?.element;if(!r){e=window.requestAnimationFrame(n);return}U.current||(J.current>0&&(r.scrollTop=J.current),U.current=!0);let s=()=>{null===F.current&&(F.current=window.requestAnimationFrame(()=>{F.current=null,J.current=r.scrollTop,B(r.scrollTop)}))};r.addEventListener("scroll",s,{passive:!0}),t=()=>{r.removeEventListener("scroll",s)}};return n(),()=>{t&&t(),null!==e&&window.cancelAnimationFrame(e),null!==F.current&&(window.cancelAnimationFrame(F.current),F.current=null)}},[]),W(()=>{if(!K.current||(K.current=!1,Z.current||!ee))return;let e=null,t=()=>{if(Z.current)return;if(!U.current||!q.current){e=window.requestAnimationFrame(t);return}let n=es.findIndex(e=>e.id===ee);-1!==n&&(Z.current=!0,q.current.scrollToRow({index:n,align:"center"}))};return t(),()=>{null!==e&&window.cancelAnimationFrame(e)}},[es,ee]),n.useEffect(()=>(window.toggleSpecsSidebar=()=>E(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]);let{getSpecUrl:ei}=(0,_.useProjectUrl)(),el=n.useCallback(e=>{let{index:n,style:s}=e,a=es[n],o=a.id===ee,c=a.title||a.specName,u=ei(a.specNumber||a.id);return(0,t.jsx)("div",{style:s,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)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(r.default,{ref:o&&!i?Y:null,href:u,onMouseEnter:()=>l?.(a.specNumber?.toString()||a.id),className:(0,$.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:[a.specNumber&&(0,t.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",a.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:[a.status&&(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(b.StatusBadge,{status:a.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(y.TooltipContent,{side:"right",children:(0,b.getStatusLabel)(a.status)})]}),a.priority&&(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(C.PriorityBadge,{priority:a.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(y.TooltipContent,{side:"right",children:(0,C.getPriorityLabel)(a.priority)})]}),"number"==typeof a.subSpecsCount&&a.subSpecsCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",a.subSpecsCount," files"]}),a.updatedAt&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:(0,N.formatRelativeTime)(a.updatedAt)})]})]})}),(0,t.jsx)(y.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:a.specName})]})})]})})})})},[es,ee,i,l,ei]),ea=n.useMemo(()=>window.innerHeight-56-180,[]),eo=n.useMemo(()=>n.memo(f),[]);return(0,t.jsxs)(y.TooltipProvider,{delayDuration:700,children:[A&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>E(!1)}),(0,t.jsxs)("div",{className:(0,$.cn)("relative flex-shrink-0",a),children:[(0,t.jsxs)("aside",{className:(0,$.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)]",H&&k?"lg:w-0 lg:border-r-0":"lg:w-[280px]",A&&"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)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(w.Button,{variant:z||er?"default":"ghost",size:"sm",onClick:()=>T(!z),className:"h-6 w-6 p-0",children:(0,t.jsx)(v,{className:"h-4 w-4"})})}),(0,t.jsx)(y.TooltipContent,{side:"bottom",children:z?"Hide filters":"Show filters"})]}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>E(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,t.jsx)(g.X,{className:"h-4 w-4"})}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>D(!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)(w.Button,{variant:"ghost",size:"sm",onClick:()=>{d("all"),M("all"),O("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,t.jsxs)(j.Select,{value:u,onValueChange:d,children:[(0,t.jsx)(j.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(j.SelectValue,{placeholder:"Status"})}),(0,t.jsxs)(j.SelectContent,{children:[(0,t.jsx)(j.SelectItem,{value:"all",children:"All Status"}),(0,t.jsx)(j.SelectItem,{value:"planned",children:"Planned"}),(0,t.jsx)(j.SelectItem,{value:"in-progress",children:"In Progress"}),(0,t.jsx)(j.SelectItem,{value:"complete",children:"Complete"}),(0,t.jsx)(j.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,t.jsxs)(j.Select,{value:h,onValueChange:M,children:[(0,t.jsx)(j.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(j.SelectValue,{placeholder:"Priority"})}),(0,t.jsxs)(j.SelectContent,{children:[(0,t.jsx)(j.SelectItem,{value:"all",children:"All Priority"}),(0,t.jsx)(j.SelectItem,{value:"low",children:"Low"}),(0,t.jsx)(j.SelectItem,{value:"medium",children:"Medium"}),(0,t.jsx)(j.SelectItem,{value:"high",children:"High"}),(0,t.jsx)(j.SelectItem,{value:"critical",children:"Critical"})]})]}),en.length>0&&(0,t.jsxs)(j.Select,{value:I,onValueChange:O,children:[(0,t.jsx)(j.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(j.SelectValue,{placeholder:"Tag"})}),(0,t.jsxs)(j.SelectContent,{children:[(0,t.jsx)(j.SelectItem,{value:"all",children:"All Tags"}),en.map(e=>(0,t.jsx)(j.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)(S.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===es.length?(0,t.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,t.jsx)(eo,{listRef:q,defaultHeight:ea,rowCount:es.length,rowHeight:72,overscanCount:5,rowComponent:el,rowProps:{}})})]}),H&&k&&(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>D(!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)(p.ChevronRight,{className:"h-4 w-4"})})]})]})}e.s(["SpecsNavSidebar",()=>Y],417612)},653213,e=>{"use strict";var t=e.i(890022),n=e.i(417612),r=e.i(222850),s=e.i(293821);function i(){let e=(0,s.useSpecsSidebarState)(),i=e.specs,l=e.activeSpecId||"";return(0,t.jsxs)("div",{className:"flex min-h-[calc(100vh-3.5rem)] w-full min-w-0",children:[(0,t.jsx)(n.SpecsNavSidebar,{initialSpecs:i,currentSpecId:l}),(0,t.jsx)("div",{className:"flex-1 min-w-0 px-4 py-6 sm:px-8 sm:py-10",children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(r.Skeleton,{className:"h-7 w-56"}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,t.jsx)(r.Skeleton,{className:"h-6 w-24"}),(0,t.jsx)(r.Skeleton,{className:"h-6 w-24"}),(0,t.jsx)(r.Skeleton,{className:"h-6 w-20"})]}),(0,t.jsx)(r.Skeleton,{className:"h-4 w-64"})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(r.Skeleton,{className:"h-5 w-40"}),(0,t.jsx)(r.Skeleton,{className:"h-32 w-full"})]}),(0,t.jsx)("div",{className:"space-y-4",children:[...Array(6)].map((e,n)=>(0,t.jsx)(r.Skeleton,{className:"h-4 w-full"},n))})]})})]})}e.s(["SpecDetailLoadingShell",()=>i])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,20648,t=>{"use strict";var e=t.i(890022),a=t.i(431231);let r=(0,a.createContext)(null);function o(){let t=(0,a.useContext)(r);if(!t)throw Error("useProject must be used within ProjectProvider");return t}function n({children:t,initialProjectId:o}){let[n,s]=(0,a.useState)("single-project"),[i,l]=(0,a.useState)(null),[d,c]=(0,a.useState)([]),[u,f]=(0,a.useState)([]),[p,m]=(0,a.useState)([]),[h,g]=(0,a.useState)(!0),[v,y]=(0,a.useState)(null),b=(0,a.useCallback)(async()=>{try{g(!0),y(null);let t=await fetch("/api/projects");if(!t.ok)throw Error("Failed to fetch projects");let e=await t.json();if(s(e.mode||"single-project"),c(e.projects||[]),f(e.recentProjects||[]),m(e.favoriteProjects||[]),!i&&e.projects.length>0){let t=o?e.projects.find(t=>t.id===o):e.recentProjects?.[0]||e.projects[0];t&&l(t)}}catch(t){console.error("Error fetching projects:",t),y(t instanceof Error?t.message:"Failed to load projects")}finally{g(!1)}},[i,o]),x=(0,a.useCallback)(async t=>{try{let e=await fetch(`/api/projects/${t}`);if(!e.ok)throw Error("Failed to fetch project");let a=await e.json();l(a.project),await b()}catch(t){throw console.error("Error switching project:",t),y(t instanceof Error?t.message:"Failed to switch project"),t}},[b]),w=(0,a.useCallback)(async(t,e)=>{try{let a=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...e})});if(!a.ok){let t=await a.json();throw Error(t.details||"Failed to add project")}let r=await a.json();return await b(),r.project}catch(t){throw console.error("Error adding project:",t),y(t instanceof Error?t.message:"Failed to add project"),t}},[b]),j=(0,a.useCallback)(async t=>{try{if(!(await fetch(`/api/projects/${t}`,{method:"DELETE"})).ok)throw Error("Failed to remove project");if(i?.id===t){let e=d.find(e=>e.id!==t);l(e||null)}await b()}catch(t){throw console.error("Error removing project:",t),y(t instanceof Error?t.message:"Failed to remove project"),t}},[i,d,b]),k=(0,a.useCallback)(async t=>{try{if(!(await fetch(`/api/projects/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({favorite:!0})})).ok)throw Error("Failed to toggle favorite");await b()}catch(t){throw console.error("Error toggling favorite:",t),y(t instanceof Error?t.message:"Failed to toggle favorite"),t}},[b]),E=(0,a.useCallback)(async(t,e)=>{try{if(!(await fetch(`/api/projects/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok)throw Error("Failed to update project");await b()}catch(t){throw console.error("Error updating project:",t),y(t instanceof Error?t.message:"Failed to update project"),t}},[b]);return(0,a.useEffect)(()=>{b()},[b]),(0,e.jsx)(r.Provider,{value:{mode:n,currentProject:i,projects:d,recentProjects:u,favoriteProjects:p,isLoading:h,error:v,switchProject:x,addProject:w,removeProject:j,toggleFavorite:k,updateProject:E,refreshProjects:b},children:t})}function s(){let{mode:t,currentProject:e}=o(),r=(0,a.useCallback)(a=>{if("multi-project"===t&&e){let t=a.startsWith("/")?a:`/${a}`;return`/projects/${e.id}${t}`}return a.startsWith("/")?a:`/${a}`},[t,e]),n=(0,a.useCallback)((t,e)=>{let a=r(`/specs/${t}`);return e?`${a}?subspec=${e}`:a},[r]);return{getUrl:r,getSpecUrl:n,isMultiProject:"multi-project"===t,projectId:e?.id}}t.s(["ProjectProvider",()=>n,"useProject",()=>o,"useProjectUrl",()=>s])},787949,t=>{"use strict";let e=(0,t.i(122436).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);t.s(["Loader2",()=>e],787949)},753938,t=>{"use strict";let e=(0,t.i(122436).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);t.s(["ArrowLeft",()=>e],753938)},954049,t=>{"use strict";let e=(0,t.i(122436).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);t.s(["BookOpen",()=>e],954049)},828666,t=>{"use strict";let e=(0,t.i(122436).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);t.s(["Settings",()=>e],828666)},995403,t=>{"use strict";var e=t.i(431231),a=t.i(395635);let r=Array(12).fill(0),o=({visible:t,className:a})=>e.default.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":t},e.default.createElement("div",{className:"sonner-spinner"},r.map((t,a)=>e.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),n=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),s=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),i=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),l=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),d=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},e.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),c=1,u=new class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...r}=t,o="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:c++,n=this.toasts.find(t=>t.id===o),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),n?this.toasts=this.toasts.map(e=>e.id===o?(this.publish({...e,...t,id:o,title:a}),{...e,...t,id:o,dismissible:s,title:a}):e):this.addToast({title:a,...r,dismissible:s,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,a)=>{let r,o;if(!a)return;void 0!==a.loading&&(o=this.create({...a,promise:t,type:"loading",message:a.loading,description:"function"!=typeof a.description?a.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=void 0!==o,i=n.then(async t=>{if(r=["resolve",t],e.default.isValidElement(t))s=!1,this.create({id:o,type:"default",message:t});else if(f(t)&&!t.ok){s=!1;let r="function"==typeof a.error?await a.error(`HTTP error! status: ${t.status}`):a.error,n="function"==typeof a.description?await a.description(`HTTP error! status: ${t.status}`):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(void 0!==a.success){s=!1;let r="function"==typeof a.success?await a.success(t):a.success,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"success",description:n,...i})}}).catch(async t=>{if(r=["reject",t],void 0!==a.error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(o),o=void 0),null==a.finally||a.finally.call(a)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===r[0]?e(r[1]):t(r[1])).catch(e));return"string"!=typeof o&&"number"!=typeof o?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||c++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,p=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||c++;return u.addToast({title:t,...e,id:a}),a},{success:u.success,info:u.info,warning:u.warning,error:u.error,custom:u.custom,message:u.message,promise:u.promise,dismiss:u.dismiss,loading:u.loading},{getHistory:()=>u.toasts,getToasts:()=>u.getActiveToasts()});function m(t){return void 0!==t.label}function h(...t){return t.filter(Boolean).join(" ")}!function(t){if(!t||"undefined"==typeof document)return;let e=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",e.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let g=t=>{var a,r,c,u,f,p,g,v,y,b,x,w,j;let{invert:k,toast:E,unstyled:C,interacting:N,setHeights:P,visibleToasts:S,heights:T,index:M,toasts:R,expanded:B,removeToast:A,defaultRichColors:D,closeButton:z,style:F,cancelButtonStyle:O,actionButtonStyle:$,className:L="",descriptionClassName:I="",duration:H,position:Y,gap:V,expandByDefault:U,classNames:X,icons:_,closeButtonAriaLabel:K="Close toast"}=t,[W,J]=e.default.useState(null),[G,q]=e.default.useState(null),[Z,Q]=e.default.useState(!1),[tt,te]=e.default.useState(!1),[ta,tr]=e.default.useState(!1),[to,tn]=e.default.useState(!1),[ts,ti]=e.default.useState(!1),[tl,td]=e.default.useState(0),[tc,tu]=e.default.useState(0),tf=e.default.useRef(E.duration||H||4e3),tp=e.default.useRef(null),tm=e.default.useRef(null),th=0===M,tg=M+1<=S,tv=E.type,ty=!1!==E.dismissible,tb=E.className||"",tx=E.descriptionClassName||"",tw=e.default.useMemo(()=>T.findIndex(t=>t.toastId===E.id)||0,[T,E.id]),tj=e.default.useMemo(()=>{var t;return null!=(t=E.closeButton)?t:z},[E.closeButton,z]),tk=e.default.useMemo(()=>E.duration||H||4e3,[E.duration,H]),tE=e.default.useRef(0),tC=e.default.useRef(0),tN=e.default.useRef(0),tP=e.default.useRef(null),[tS,tT]=Y.split("-"),tM=e.default.useMemo(()=>T.reduce((t,e,a)=>a>=tw?t:t+e.height,0),[T,tw]),tR=(()=>{let[t,a]=e.default.useState(document.hidden);return e.default.useEffect(()=>{let t=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t})(),tB=E.invert||k,tA="loading"===tv;tC.current=e.default.useMemo(()=>tw*V+tM,[tw,tM]),e.default.useEffect(()=>{tf.current=tk},[tk]),e.default.useEffect(()=>{Q(!0)},[]),e.default.useEffect(()=>{let t=tm.current;if(t){let e=t.getBoundingClientRect().height;return tu(e),P(t=>[{toastId:E.id,height:e,position:E.position},...t]),()=>P(t=>t.filter(t=>t.toastId!==E.id))}},[P,E.id]),e.default.useLayoutEffect(()=>{if(!Z)return;let t=tm.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,tu(a),P(t=>t.find(t=>t.toastId===E.id)?t.map(t=>t.toastId===E.id?{...t,height:a}:t):[{toastId:E.id,height:a,position:E.position},...t])},[Z,E.title,E.description,P,E.id,E.jsx,E.action,E.cancel]);let tD=e.default.useCallback(()=>{te(!0),td(tC.current),P(t=>t.filter(t=>t.toastId!==E.id)),setTimeout(()=>{A(E)},200)},[E,A,P,tC]);e.default.useEffect(()=>{let t;if((!E.promise||"loading"!==tv)&&E.duration!==1/0&&"loading"!==E.type){if(B||N||tR){if(tN.current<tE.current){let t=new Date().getTime()-tE.current;tf.current=tf.current-t}tN.current=new Date().getTime()}else tf.current!==1/0&&(tE.current=new Date().getTime(),t=setTimeout(()=>{null==E.onAutoClose||E.onAutoClose.call(E,E),tD()},tf.current));return()=>clearTimeout(t)}},[B,N,E,tv,tR,tD]),e.default.useEffect(()=>{E.delete&&(tD(),null==E.onDismiss||E.onDismiss.call(E,E))},[tD,E.delete]);let tz=E.icon||(null==_?void 0:_[tv])||(t=>{switch(t){case"success":return n;case"info":return i;case"warning":return s;case"error":return l;default:return null}})(tv);return e.default.createElement("li",{tabIndex:0,ref:tm,className:h(L,tb,null==X?void 0:X.toast,null==E||null==(a=E.classNames)?void 0:a.toast,null==X?void 0:X.default,null==X?void 0:X[tv],null==E||null==(r=E.classNames)?void 0:r[tv]),"data-sonner-toast":"","data-rich-colors":null!=(b=E.richColors)?b:D,"data-styled":!(E.jsx||E.unstyled||C),"data-mounted":Z,"data-promise":!!E.promise,"data-swiped":ts,"data-removed":tt,"data-visible":tg,"data-y-position":tS,"data-x-position":tT,"data-index":M,"data-front":th,"data-swiping":ta,"data-dismissible":ty,"data-type":tv,"data-invert":tB,"data-swipe-out":to,"data-swipe-direction":G,"data-expanded":!!(B||U&&Z),"data-testid":E.testId,style:{"--index":M,"--toasts-before":M,"--z-index":R.length-M,"--offset":`${tt?tl:tC.current}px`,"--initial-height":U?"auto":`${tc}px`,...F,...E.style},onDragEnd:()=>{tr(!1),J(null),tP.current=null},onPointerDown:t=>{2===t.button||tA||!ty||(tp.current=new Date,td(tC.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(tr(!0),tP.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,r,o;if(to||!ty)return;tP.current=null;let n=Number((null==(t=tm.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),s=Number((null==(e=tm.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=tp.current)?void 0:a.getTime()),l="x"===W?n:s,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){td(tC.current),null==E.onDismiss||E.onDismiss.call(E,E),"x"===W?q(n>0?"right":"left"):q(s>0?"down":"up"),tD(),tn(!0);return}null==(r=tm.current)||r.style.setProperty("--swipe-amount-x","0px"),null==(o=tm.current)||o.style.setProperty("--swipe-amount-y","0px"),ti(!1),tr(!1),J(null)},onPointerMove:e=>{var a,r,o,n;if(!tP.current||!ty||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tP.current.y,i=e.clientX-tP.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),r=[];return e&&r.push(e),a&&r.push(a),r}(Y);!W&&(Math.abs(i)>1||Math.abs(s)>1)&&J(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0},c=t=>1/(1.5+Math.abs(t)/20);if("y"===W){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&s<0||l.includes("bottom")&&s>0)d.y=s;else{let t=s*c(s);d.y=Math.abs(t)<Math.abs(s)?t:s}}else if("x"===W&&(l.includes("left")||l.includes("right")))if(l.includes("left")&&i<0||l.includes("right")&&i>0)d.x=i;else{let t=i*c(i);d.x=Math.abs(t)<Math.abs(i)?t:i}(Math.abs(d.x)>0||Math.abs(d.y)>0)&&ti(!0),null==(r=tm.current)||r.style.setProperty("--swipe-amount-x",`${d.x}px`),null==(o=tm.current)||o.style.setProperty("--swipe-amount-y",`${d.y}px`)}},tj&&!E.jsx&&"loading"!==tv?e.default.createElement("button",{"aria-label":K,"data-disabled":tA,"data-close-button":!0,onClick:tA||!ty?()=>{}:()=>{tD(),null==E.onDismiss||E.onDismiss.call(E,E)},className:h(null==X?void 0:X.closeButton,null==E||null==(c=E.classNames)?void 0:c.closeButton)},null!=(x=null==_?void 0:_.close)?x:d):null,(tv||E.icon||E.promise)&&null!==E.icon&&((null==_?void 0:_[tv])!==null||E.icon)?e.default.createElement("div",{"data-icon":"",className:h(null==X?void 0:X.icon,null==E||null==(u=E.classNames)?void 0:u.icon)},E.promise||"loading"===E.type&&!E.icon?E.icon||((null==_?void 0:_.loading)?e.default.createElement("div",{className:h(null==X?void 0:X.loader,null==E||null==(j=E.classNames)?void 0:j.loader,"sonner-loader"),"data-visible":"loading"===tv},_.loading):e.default.createElement(o,{className:h(null==X?void 0:X.loader,null==E||null==(w=E.classNames)?void 0:w.loader),visible:"loading"===tv})):null,"loading"!==E.type?tz:null):null,e.default.createElement("div",{"data-content":"",className:h(null==X?void 0:X.content,null==E||null==(f=E.classNames)?void 0:f.content)},e.default.createElement("div",{"data-title":"",className:h(null==X?void 0:X.title,null==E||null==(p=E.classNames)?void 0:p.title)},E.jsx?E.jsx:"function"==typeof E.title?E.title():E.title),E.description?e.default.createElement("div",{"data-description":"",className:h(I,tx,null==X?void 0:X.description,null==E||null==(g=E.classNames)?void 0:g.description)},"function"==typeof E.description?E.description():E.description):null),e.default.isValidElement(E.cancel)?E.cancel:E.cancel&&m(E.cancel)?e.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:E.cancelButtonStyle||O,onClick:t=>{!m(E.cancel)||ty&&(null==E.cancel.onClick||E.cancel.onClick.call(E.cancel,t),tD())},className:h(null==X?void 0:X.cancelButton,null==E||null==(v=E.classNames)?void 0:v.cancelButton)},E.cancel.label):null,e.default.isValidElement(E.action)?E.action:E.action&&m(E.action)?e.default.createElement("button",{"data-button":!0,"data-action":!0,style:E.actionButtonStyle||$,onClick:t=>{!m(E.action)||(null==E.action.onClick||E.action.onClick.call(E.action,t),t.defaultPrevented||tD())},className:h(null==X?void 0:X.actionButton,null==E||null==(y=E.classNames)?void 0:y.actionButton)},E.action.label):null)};function v(){if("undefined"==typeof window||"undefined"==typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let y=e.default.forwardRef(function(t,r){let{id:o,invert:n,position:s="bottom-right",hotkey:i=["altKey","KeyT"],expand:l,closeButton:d,className:c,offset:f,mobileOffset:p,theme:m="light",richColors:h,duration:y,style:b,visibleToasts:x=3,toastOptions:w,dir:j=v(),gap:k=14,icons:E,containerAriaLabel:C="Notifications"}=t,[N,P]=e.default.useState([]),S=e.default.useMemo(()=>o?N.filter(t=>t.toasterId===o):N.filter(t=>!t.toasterId),[N,o]),T=e.default.useMemo(()=>Array.from(new Set([s].concat(S.filter(t=>t.position).map(t=>t.position)))),[S,s]),[M,R]=e.default.useState([]),[B,A]=e.default.useState(!1),[D,z]=e.default.useState(!1),[F,O]=e.default.useState("system"!==m?m:"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),$=e.default.useRef(null),L=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),I=e.default.useRef(null),H=e.default.useRef(!1),Y=e.default.useCallback(t=>{P(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||u.dismiss(t.id),e.filter(({id:e})=>e!==t.id)})},[]);return e.default.useEffect(()=>u.subscribe(t=>{t.dismiss?requestAnimationFrame(()=>{P(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))}):setTimeout(()=>{a.default.flushSync(()=>{P(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[N]),e.default.useEffect(()=>{if("system"!==m)return void O(m);if("system"===m&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?O("dark"):O("light")),"undefined"==typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",({matches:t})=>{t?O("dark"):O("light")})}catch(e){t.addListener(({matches:t})=>{try{t?O("dark"):O("light")}catch(t){console.error(t)}})}},[m]),e.default.useEffect(()=>{N.length<=1&&A(!1)},[N]),e.default.useEffect(()=>{let t=t=>{var e,a;i.every(e=>t[e]||t.code===e)&&(A(!0),null==(a=$.current)||a.focus()),"Escape"===t.code&&(document.activeElement===$.current||(null==(e=$.current)?void 0:e.contains(document.activeElement)))&&A(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i]),e.default.useEffect(()=>{if($.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,H.current=!1)}},[$.current]),e.default.createElement("section",{ref:r,"aria-label":`${C} ${L}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},T.map((a,r)=>{var o;let s,[i,u]=a.split("-");return S.length?e.default.createElement("ol",{key:a,dir:"auto"===j?v():j,tabIndex:-1,ref:$,className:c,"data-sonner-toaster":!0,"data-sonner-theme":F,"data-y-position":i,"data-x-position":u,style:{"--front-toast-height":`${(null==(o=M[0])?void 0:o.height)||0}px`,"--width":"356px","--gap":`${k}px`,...b,...(s={},[f,p].forEach((t,e)=>{let a=1===e,r=a?"--mobile-offset":"--offset",o=a?"16px":"24px";function n(t){["top","right","bottom","left"].forEach(e=>{s[`${r}-${e}`]="number"==typeof t?`${t}px`:t})}"number"==typeof t||"string"==typeof t?n(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?s[`${r}-${e}`]=o:s[`${r}-${e}`]="number"==typeof t[e]?`${t[e]}px`:t[e]}):n(o)}),s)},onBlur:t=>{H.current&&!t.currentTarget.contains(t.relatedTarget)&&(H.current=!1,I.current&&(I.current.focus({preventScroll:!0}),I.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(H.current||(H.current=!0,I.current=t.relatedTarget))},onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>{D||A(!1)},onDragEnd:()=>A(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||z(!0)},onPointerUp:()=>z(!1)},S.filter(t=>!t.position&&0===r||t.position===a).map((r,o)=>{var s,i;return e.default.createElement(g,{key:r.id,icons:E,index:o,toast:r,defaultRichColors:h,duration:null!=(s=null==w?void 0:w.duration)?s:y,className:null==w?void 0:w.className,descriptionClassName:null==w?void 0:w.descriptionClassName,invert:n,visibleToasts:x,closeButton:null!=(i=null==w?void 0:w.closeButton)?i:d,interacting:D,position:a,style:null==w?void 0:w.style,unstyled:null==w?void 0:w.unstyled,classNames:null==w?void 0:w.classNames,cancelButtonStyle:null==w?void 0:w.cancelButtonStyle,actionButtonStyle:null==w?void 0:w.actionButtonStyle,closeButtonAriaLabel:null==w?void 0:w.closeButtonAriaLabel,removeToast:Y,toasts:S.filter(t=>t.position==r.position),heights:M.filter(t=>t.position==r.position),setHeights:R,expandByDefault:l,gap:k,expanded:B,swipeDirections:t.swipeDirections})})):null}))});t.s(["Toaster",()=>y,"toast",()=>p])},178420,t=>{"use strict";var e=t.i(890022),a=t.i(995403),r=t.i(81795);function o(){let{theme:t}=(0,r.useTheme)();return(0,e.jsx)(a.Toaster,{theme:t,position:"bottom-right",richColors:!0,closeButton:!0,expand:!1,duration:4e3,toastOptions:{classNames:{toast:"group",title:"font-semibold",description:"text-sm opacity-90",actionButton:"bg-primary text-primary-foreground",cancelButton:"bg-muted text-muted-foreground"}}})}t.s(["Toast",()=>o])},963781,723882,828964,t=>{"use strict";var e=t.i(122436);let a=(0,e.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);t.s(["Plus",()=>a],963781);let r=(0,e.default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);t.s(["FolderOpen",()=>r],723882);let o=(0,e.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);t.s(["Star",()=>o],828964)},341965,t=>{"use strict";var e=t.i(890022),a=t.i(431231),r=t.i(291967),o=t.i(430406),n=t.i(79014),s=t.i(255235),i=t.i(254440),l=t.i(31007),d=t.i(315599),c=t.i(306839),u=t.i(214260),f=t.i(111052),p=t.i(122925),m=t.i(665489),h=t.i(393136),g=t.i(73772),v=t.i(97496),y="Popover",[b,x]=(0,n.createContextScope)(y,[c.createPopperScope]),w=(0,c.createPopperScope)(),[j,k]=b(y),E=t=>{let{__scopePopover:r,children:o,open:n,defaultOpen:s,onOpenChange:i,modal:l=!1}=t,u=w(r),f=a.useRef(null),[p,m]=a.useState(!1),[g,v]=(0,h.useControllableState)({prop:n,defaultProp:s??!1,onChange:i,caller:y});return(0,e.jsx)(c.Root,{...u,children:(0,e.jsx)(j,{scope:r,contentId:(0,d.useId)(),triggerRef:f,open:g,onOpenChange:v,onOpenToggle:a.useCallback(()=>v(t=>!t),[v]),hasCustomAnchor:p,onCustomAnchorAdd:a.useCallback(()=>m(!0),[]),onCustomAnchorRemove:a.useCallback(()=>m(!1),[]),modal:l,children:o})})};E.displayName=y;var C="PopoverAnchor";a.forwardRef((t,r)=>{let{__scopePopover:o,...n}=t,s=k(C,o),i=w(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=s;return a.useEffect(()=>(l(),()=>d()),[l,d]),(0,e.jsx)(c.Anchor,{...i,...n,ref:r})}).displayName=C;var N="PopoverTrigger",P=a.forwardRef((t,a)=>{let{__scopePopover:n,...s}=t,i=k(N,n),l=w(n),d=(0,o.useComposedRefs)(a,i.triggerRef),u=(0,e.jsx)(p.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":L(i.open),...s,ref:d,onClick:(0,r.composeEventHandlers)(t.onClick,i.onOpenToggle)});return i.hasCustomAnchor?u:(0,e.jsx)(c.Anchor,{asChild:!0,...l,children:u})});P.displayName=N;var S="PopoverPortal",[T,M]=b(S,{forceMount:void 0}),R=t=>{let{__scopePopover:a,forceMount:r,children:o,container:n}=t,s=k(S,a);return(0,e.jsx)(T,{scope:a,forceMount:r,children:(0,e.jsx)(f.Presence,{present:r||s.open,children:(0,e.jsx)(u.Portal,{asChild:!0,container:n,children:o})})})};R.displayName=S;var B="PopoverContent",A=a.forwardRef((t,a)=>{let r=M(B,t.__scopePopover),{forceMount:o=r.forceMount,...n}=t,s=k(B,t.__scopePopover);return(0,e.jsx)(f.Presence,{present:o||s.open,children:s.modal?(0,e.jsx)(z,{...n,ref:a}):(0,e.jsx)(F,{...n,ref:a})})});A.displayName=B;var D=(0,m.createSlot)("PopoverContent.RemoveScroll"),z=a.forwardRef((t,n)=>{let s=k(B,t.__scopePopover),i=a.useRef(null),l=(0,o.useComposedRefs)(n,i),d=a.useRef(!1);return a.useEffect(()=>{let t=i.current;if(t)return(0,g.hideOthers)(t)},[]),(0,e.jsx)(v.RemoveScroll,{as:D,allowPinchZoom:!0,children:(0,e.jsx)(O,{...t,ref:l,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,r.composeEventHandlers)(t.onCloseAutoFocus,t=>{t.preventDefault(),d.current||s.triggerRef.current?.focus()}),onPointerDownOutside:(0,r.composeEventHandlers)(t.onPointerDownOutside,t=>{let e=t.detail.originalEvent,a=0===e.button&&!0===e.ctrlKey;d.current=2===e.button||a},{checkForDefaultPrevented:!1}),onFocusOutside:(0,r.composeEventHandlers)(t.onFocusOutside,t=>t.preventDefault(),{checkForDefaultPrevented:!1})})})}),F=a.forwardRef((t,r)=>{let o=k(B,t.__scopePopover),n=a.useRef(!1),s=a.useRef(!1);return(0,e.jsx)(O,{...t,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:e=>{t.onCloseAutoFocus?.(e),e.defaultPrevented||(n.current||o.triggerRef.current?.focus(),e.preventDefault()),n.current=!1,s.current=!1},onInteractOutside:e=>{t.onInteractOutside?.(e),e.defaultPrevented||(n.current=!0,"pointerdown"===e.detail.originalEvent.type&&(s.current=!0));let a=e.target;o.triggerRef.current?.contains(a)&&e.preventDefault(),"focusin"===e.detail.originalEvent.type&&s.current&&e.preventDefault()}})}),O=a.forwardRef((t,a)=>{let{__scopePopover:r,trapFocus:o,onOpenAutoFocus:n,onCloseAutoFocus:d,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:m,onInteractOutside:h,...g}=t,v=k(B,r),y=w(r);return(0,i.useFocusGuards)(),(0,e.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:n,onUnmountAutoFocus:d,children:(0,e.jsx)(s.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:h,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:m,onDismiss:()=>v.onOpenChange(!1),children:(0,e.jsx)(c.Content,{"data-state":L(v.open),role:"dialog",id:v.contentId,...y,...g,ref:a,style:{...g.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),$="PopoverClose";function L(t){return t?"open":"closed"}a.forwardRef((t,a)=>{let{__scopePopover:o,...n}=t,s=k($,o);return(0,e.jsx)(p.Primitive.button,{type:"button",...n,ref:a,onClick:(0,r.composeEventHandlers)(t.onClick,()=>s.onOpenChange(!1))})}).displayName=$,a.forwardRef((t,a)=>{let{__scopePopover:r,...o}=t,n=w(r);return(0,e.jsx)(c.Arrow,{...n,...o,ref:a})}).displayName="PopoverArrow";var I=t.i(632137);let H=a.forwardRef(({className:t,align:a="center",sideOffset:r=4,...o},n)=>(0,e.jsx)(R,{children:(0,e.jsx)(A,{ref:n,align:a,sideOffset:r,className:(0,I.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...o})}));H.displayName=A.displayName,t.s(["Popover",()=>E,"PopoverContent",()=>H,"PopoverTrigger",()=>P],341965)},361877,t=>{"use strict";var e=t.i(890022),a=t.i(431231),r=t.i(20648),o=t.i(235893),n=t.i(21079);let s=(0,t.i(122436).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var i=t.i(787949),l=t.i(753938),d=t.i(497332),c=t.i(525761),u=t.i(632137);function f({onSelect:t,onCancel:r,initialPath:n,actionLabel:f="Select This Folder",isLoading:p}){let[m,h]=(0,a.useState)(n||""),[g,v]=(0,a.useState)([]),[y,b]=(0,a.useState)(!1),[x,w]=(0,a.useState)(null),j=(0,a.useRef)(null),k=p||y;(0,a.useEffect)(()=>{E(m)},[m]),(0,a.useEffect)(()=>{j.current&&(j.current.scrollLeft=j.current.scrollWidth)},[m]);let E=async t=>{try{b(!0),w(null);let e=await fetch("/api/local-projects/list-directory",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});if(!e.ok)throw Error("Failed to list directory");let a=await e.json();v(a.items),t||h(a.path)}catch(t){w(t instanceof Error?t.message:String(t))}finally{b(!1)}},C=t=>{h(t)},N=g.find(t=>".."===t.name),P=g.filter(t=>".."!==t.name),S=(t=>{if(!t)return[];let e=t.includes("\\")?"\\":"/",a=t.split(e).filter(Boolean),r=t.startsWith("/");return a.map((t,o)=>{let n=a.slice(0,o+1).join(e);return r&&(n="/"+n),{name:t,path:n}})})(m);return(0,e.jsxs)("div",{className:"flex flex-col h-[400px] gap-4 min-w-0",children:[(0,e.jsxs)("div",{className:"flex items-center border rounded-md p-1 gap-1 bg-muted/30",children:[(0,e.jsx)(o.Button,{variant:"ghost",size:"icon",className:"h-8 w-8 shrink-0",disabled:!N||k,onClick:()=>N&&C(N.path),title:"Go to parent directory",children:(0,e.jsx)(l.ArrowLeft,{className:"h-4 w-4"})}),(0,e.jsx)("div",{className:"w-px h-5 bg-border mx-1"}),(0,e.jsxs)("div",{ref:j,className:"flex-1 overflow-x-auto whitespace-nowrap flex items-center scrollbar-hide px-1 min-w-0",title:m,children:[(0,e.jsx)("button",{onClick:()=>C("/"),className:"hover:bg-accent p-1 rounded-sm transition-colors shrink-0",title:"Go to root",children:(0,e.jsx)(d.Home,{className:"h-4 w-4 text-muted-foreground"})}),S.map((t,a)=>(0,e.jsxs)("div",{className:"flex items-center shrink-0",children:[(0,e.jsx)(c.ChevronRight,{className:"h-3 w-3 text-muted-foreground mx-0.5 shrink-0"}),(0,e.jsx)("button",{onClick:()=>C(t.path),className:(0,u.cn)("px-1.5 py-0.5 rounded-sm transition-colors text-sm hover:bg-accent hover:text-accent-foreground",a===S.length-1?"font-medium text-foreground":"text-muted-foreground"),children:t.name})]},t.path))]})]}),(0,e.jsxs)("div",{className:"flex-1 border rounded-md overflow-hidden relative bg-background min-h-0",children:[k&&(0,e.jsx)("div",{className:"absolute inset-0 bg-background/50 flex items-center justify-center z-10",children:(0,e.jsx)(i.Loader2,{className:"h-6 w-6 animate-spin"})}),x?(0,e.jsxs)("div",{className:"p-4 text-destructive text-sm text-center",children:[x,(0,e.jsx)(o.Button,{variant:"link",onClick:()=>E(m),className:"block mx-auto mt-2",children:"Retry"})]}):(0,e.jsx)("div",{className:"h-full overflow-auto",children:(0,e.jsx)("div",{className:"p-1",children:0!==P.length||k?P.map(t=>(0,e.jsxs)("button",{onClick:()=>C(t.path),className:"flex items-center gap-3 w-full px-3 py-2 text-sm rounded-sm hover:bg-accent hover:text-accent-foreground text-left group transition-colors",children:[(0,e.jsx)(s,{className:"h-4 w-4 text-blue-500 fill-blue-500/20 group-hover:fill-blue-500/30 transition-colors shrink-0"}),(0,e.jsx)("span",{className:"truncate",children:t.name})]},t.path)):(0,e.jsx)("div",{className:"p-4 text-center text-sm text-muted-foreground",children:"Empty directory"})})})]}),(0,e.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,e.jsx)(o.Button,{variant:"outline",onClick:r,disabled:k,children:"Cancel"}),(0,e.jsx)(o.Button,{onClick:()=>t(m),disabled:k||!m,children:f})]})]})}var p=t.i(723882),m=t.i(439779),h=t.i(995403);function g({open:t,onOpenChange:s}){let{addProject:i}=(0,r.useProject)(),[l,d]=(0,a.useState)(""),[c,u]=(0,a.useState)(!1),[g,v]=(0,a.useState)("picker");(0,a.useEffect)(()=>{t&&(v("picker"),d(""))},[t]);let y=async t=>{try{u(!0);let e=await i(t);h.toast.success("Project added successfully"),s(!1),window.location.href=`/projects/${e.id}/specs`}catch(e){let t=e instanceof Error?e.message:"Failed to add project";h.toast.error(t)}finally{u(!1)}};return(0,e.jsx)(m.Dialog,{open:t,onOpenChange:s,children:(0,e.jsxs)(m.DialogContent,{className:"sm:max-w-[600px]",children:[(0,e.jsxs)(m.DialogHeader,{children:[(0,e.jsx)(m.DialogTitle,{children:"Add Project"}),(0,e.jsx)(m.DialogDescription,{children:"picker"===g?"Browse and select the project directory.":"Enter the absolute path to your local project directory."})]}),"picker"===g?(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(f,{onSelect:y,onCancel:()=>s(!1),initialPath:l,actionLabel:c?"Adding...":"Add Project",isLoading:c}),(0,e.jsx)("div",{className:"flex justify-center",children:(0,e.jsx)(o.Button,{variant:"link",size:"sm",onClick:()=>v("manual"),className:"text-muted-foreground",children:"Enter path manually"})})]}):(0,e.jsxs)("form",{onSubmit:t=>{t.preventDefault(),l&&y(l)},children:[(0,e.jsx)("div",{className:"grid gap-4 py-4",children:(0,e.jsxs)("div",{className:"grid gap-2",children:[(0,e.jsx)("label",{htmlFor:"path",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:"Project Path"}),(0,e.jsx)("div",{className:"flex gap-2",children:(0,e.jsx)(n.Input,{id:"path",value:l,onChange:t=>d(t.target.value),placeholder:"/path/to/your/project",className:"flex-1",disabled:c})}),(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:"Select the root directory of your project."})]})}),(0,e.jsxs)(m.DialogFooter,{className:"flex-col sm:flex-row gap-2",children:[(0,e.jsx)("div",{className:"flex-1 flex justify-start",children:(0,e.jsxs)(o.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>v("picker"),children:[(0,e.jsx)(p.FolderOpen,{className:"h-4 w-4 mr-2"}),"Browse folders"]})}),(0,e.jsx)(o.Button,{type:"button",variant:"outline",onClick:()=>s(!1),disabled:c,children:"Cancel"}),(0,e.jsx)(o.Button,{type:"submit",disabled:c||!l,children:c?"Adding...":"Add Project"})]})]})]})})}t.s(["CreateProjectDialog",()=>g],361877)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,300329,e=>{"use strict";let t=(0,e.i(122436).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],300329)},291967,79014,e=>{"use strict";function t(e,n,{checkForDefaultPrevented:r=!0}={}){return function(t){if(e?.(t),!1===r||!t.defaultPrevented)return n?.(t)}}"undefined"!=typeof window&&window.document&&window.document.createElement,e.s(["composeEventHandlers",()=>t],291967);var n=e.i(431231),r=e.i(890022);function o(e,t){let o=n.createContext(t),i=e=>{let{children:t,...i}=e,a=n.useMemo(()=>i,Object.values(i));return(0,r.jsx)(o.Provider,{value:a,children:t})};return i.displayName=e+"Provider",[i,function(r){let i=n.useContext(o);if(i)return i;if(void 0!==t)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}]}function i(e,t=[]){let o=[],a=()=>{let t=o.map(e=>n.createContext(e));return function(r){let o=r?.[e]||t;return n.useMemo(()=>({[`__scope${e}`]:{...r,[e]:o}}),[r,o])}};return a.scopeName=e,[function(t,i){let a=n.createContext(i),u=o.length;o=[...o,i];let c=t=>{let{scope:o,children:i,...c}=t,l=o?.[e]?.[u]||a,s=n.useMemo(()=>c,Object.values(c));return(0,r.jsx)(l.Provider,{value:s,children:i})};return c.displayName=t+"Provider",[c,function(r,o){let c=o?.[e]?.[u]||a,l=n.useContext(c);if(l)return l;if(void 0!==i)return i;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=r.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return n.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}(a,...t)]}e.s(["createContext",()=>o,"createContextScope",()=>i],79014)},943988,e=>{"use strict";var t=e.i(431231),n=globalThis?.document?t.useLayoutEffect:()=>{};e.s(["useLayoutEffect",()=>n])},315599,e=>{"use strict";var t=e.i(431231),n=e.i(943988),r=t[" useId ".trim().toString()]||(()=>void 0),o=0;function i(e){let[i,a]=t.useState(r());return(0,n.useLayoutEffect)(()=>{e||a(e=>e??String(o++))},[e]),e||(i?`radix-${i}`:"")}e.s(["useId",()=>i])},393136,e=>{"use strict";var t=e.i(431231),n=e.i(943988);t[" useEffectEvent ".trim().toString()],t[" useInsertionEffect ".trim().toString()];var r=t[" useInsertionEffect ".trim().toString()]||n.useLayoutEffect;function o({prop:e,defaultProp:n,onChange:o=()=>{},caller:i}){let[a,u,c]=function({defaultProp:e,onChange:n}){let[o,i]=t.useState(e),a=t.useRef(o),u=t.useRef(n);return r(()=>{u.current=n},[n]),t.useEffect(()=>{a.current!==o&&(u.current?.(o),a.current=o)},[o,a]),[o,i,u]}({defaultProp:n,onChange:o}),l=void 0!==e,s=l?e:a;{let n=t.useRef(void 0!==e);t.useEffect(()=>{let e=n.current;if(e!==l){let t=l?"controlled":"uncontrolled";console.warn(`${i} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}n.current=l},[l,i])}return[s,t.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&c.current?.(n)}else u(t)},[l,e,u,c])]}Symbol("RADIX:SYNC_STATE"),e.s(["useControllableState",()=>o],393136)},255235,665489,122925,938657,e=>{"use strict";var t,n=e.i(431231),r=e.i(291967),o=e.i(395635),i=e.i(430406),a=e.i(890022);function u(e){var t;let r,o=(t=e,(r=n.forwardRef((e,t)=>{let{children:r,...o}=e;if(n.isValidElement(r)){var a;let e,u,c=(a=r,(u=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(u=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),l=function(e,t){let n={...t};for(let r in t){let o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...i}:"className"===r&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}(o,r.props);return r.type!==n.Fragment&&(l.ref=t?(0,i.composeRefs)(t,c):c),n.cloneElement(r,l)}return n.Children.count(r)>1?n.Children.only(null):null})).displayName=`${t}.SlotClone`,r),u=n.forwardRef((e,t)=>{let{children:r,...i}=e,u=n.Children.toArray(r),c=u.find(s);if(c){let e=c.props.children,r=u.map(t=>t!==c?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,a.jsx)(o,{...i,ref:t,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,a.jsx)(o,{...i,ref:t,children:r})});return u.displayName=`${e}.Slot`,u}var c=Symbol("radix.slottable");function l(e){let t=({children:e})=>(0,a.jsx)(a.Fragment,{children:e});return t.displayName=`${e}.Slottable`,t.__radixId=c,t}function s(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===c}e.s(["createSlot",()=>u,"createSlottable",()=>l],665489);var d=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let r=u(`Primitive.${t}`),o=n.forwardRef((e,n)=>{let{asChild:o,...i}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,a.jsx)(o?r:t,{...i,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function f(e,t){e&&o.flushSync(()=>e.dispatchEvent(t))}function p(e){let t=n.useRef(e);return n.useEffect(()=>{t.current=e}),n.useMemo(()=>(...e)=>t.current?.(...e),[])}e.s(["Primitive",()=>d,"dispatchDiscreteCustomEvent",()=>f],122925),e.s(["useCallbackRef",()=>p],938657);var v="dismissableLayer.update",m=n.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),h=n.forwardRef((e,o)=>{let{disableOutsidePointerEvents:u=!1,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:s,onInteractOutside:f,onDismiss:h,...b}=e,E=n.useContext(m),[w,C]=n.useState(null),S=w?.ownerDocument??globalThis?.document,[,x]=n.useState({}),R=(0,i.useComposedRefs)(o,e=>C(e)),L=Array.from(E.layers),[N]=[...E.layersWithOutsidePointerEventsDisabled].slice(-1),P=L.indexOf(N),k=w?L.indexOf(w):-1,T=E.layersWithOutsidePointerEventsDisabled.size>0,A=k>=P,O=function(e,t=globalThis?.document){let r=p(e),o=n.useRef(!1),i=n.useRef(()=>{});return n.useEffect(()=>{let e=e=>{if(e.target&&!o.current){let n=function(){g("dismissableLayer.pointerDownOutside",r,o,{discrete:!0})},o={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",i.current),i.current=n,t.addEventListener("click",i.current,{once:!0})):n()}else t.removeEventListener("click",i.current);o.current=!1},n=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(n),t.removeEventListener("pointerdown",e),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>o.current=!0}}(e=>{let t=e.target,n=[...E.branches].some(e=>e.contains(t));A&&!n&&(l?.(e),f?.(e),e.defaultPrevented||h?.())},S),M=function(e,t=globalThis?.document){let r=p(e),o=n.useRef(!1);return n.useEffect(()=>{let e=e=>{e.target&&!o.current&&g("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,r]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}(e=>{let t=e.target;![...E.branches].some(e=>e.contains(t))&&(s?.(e),f?.(e),e.defaultPrevented||h?.())},S);return!function(e,t=globalThis?.document){let r=p(e);n.useEffect(()=>{let e=e=>{"Escape"===e.key&&r(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[r,t])}(e=>{k===E.layers.size-1&&(c?.(e),!e.defaultPrevented&&h&&(e.preventDefault(),h()))},S),n.useEffect(()=>{if(w)return u&&(0===E.layersWithOutsidePointerEventsDisabled.size&&(t=S.body.style.pointerEvents,S.body.style.pointerEvents="none"),E.layersWithOutsidePointerEventsDisabled.add(w)),E.layers.add(w),y(),()=>{u&&1===E.layersWithOutsidePointerEventsDisabled.size&&(S.body.style.pointerEvents=t)}},[w,S,u,E]),n.useEffect(()=>()=>{w&&(E.layers.delete(w),E.layersWithOutsidePointerEventsDisabled.delete(w),y())},[w,E]),n.useEffect(()=>{let e=()=>x({});return document.addEventListener(v,e),()=>document.removeEventListener(v,e)},[]),(0,a.jsx)(d.div,{...b,ref:R,style:{pointerEvents:T?A?"auto":"none":void 0,...e.style},onFocusCapture:(0,r.composeEventHandlers)(e.onFocusCapture,M.onFocusCapture),onBlurCapture:(0,r.composeEventHandlers)(e.onBlurCapture,M.onBlurCapture),onPointerDownCapture:(0,r.composeEventHandlers)(e.onPointerDownCapture,O.onPointerDownCapture)})});function y(){let e=new CustomEvent(v);document.dispatchEvent(e)}function g(e,t,n,{discrete:r}){let o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?f(o,i):o.dispatchEvent(i)}h.displayName="DismissableLayer",n.forwardRef((e,t)=>{let r=n.useContext(m),o=n.useRef(null),u=(0,i.useComposedRefs)(t,o);return n.useEffect(()=>{let e=o.current;if(e)return r.branches.add(e),()=>{r.branches.delete(e)}},[r.branches]),(0,a.jsx)(d.div,{...e,ref:u})}).displayName="DismissableLayerBranch",e.s(["DismissableLayer",()=>h],255235)},31007,e=>{"use strict";let t;var n=e.i(431231),r=e.i(430406),o=e.i(122925),i=e.i(938657),a=e.i(890022),u="focusScope.autoFocusOnMount",c="focusScope.autoFocusOnUnmount",l={bubbles:!1,cancelable:!0},s=n.forwardRef((e,t)=>{let{loop:s=!1,trapped:m=!1,onMountAutoFocus:h,onUnmountAutoFocus:y,...g}=e,[b,E]=n.useState(null),w=(0,i.useCallbackRef)(h),C=(0,i.useCallbackRef)(y),S=n.useRef(null),x=(0,r.useComposedRefs)(t,e=>E(e)),R=n.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;n.useEffect(()=>{if(m){let e=function(e){if(R.paused||!b)return;let t=e.target;b.contains(t)?S.current=t:p(S.current,{select:!0})},t=function(e){if(R.paused||!b)return;let t=e.relatedTarget;null!==t&&(b.contains(t)||p(S.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&p(b)});return b&&n.observe(b,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[m,b,R.paused]),n.useEffect(()=>{if(b){v.add(R);let e=document.activeElement;if(!b.contains(e)){let t=new CustomEvent(u,l);b.addEventListener(u,w),b.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(p(r,{select:t}),document.activeElement!==n)return}(d(b).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&p(b))}return()=>{b.removeEventListener(u,w),setTimeout(()=>{let t=new CustomEvent(c,l);b.addEventListener(c,C),b.dispatchEvent(t),t.defaultPrevented||p(e??document.body,{select:!0}),b.removeEventListener(c,C),v.remove(R)},0)}}},[b,w,C,R]);let L=n.useCallback(e=>{if(!s&&!m||R.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){var r;let t,o=e.currentTarget,[i,a]=[f(t=d(r=o),r),f(t.reverse(),r)];i&&a?e.shiftKey||n!==a?e.shiftKey&&n===i&&(e.preventDefault(),s&&p(a,{select:!0})):(e.preventDefault(),s&&p(i,{select:!0})):n===o&&e.preventDefault()}},[s,m,R.paused]);return(0,a.jsx)(o.Primitive.div,{tabIndex:-1,...g,ref:x,onKeyDown:L})});function d(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function f(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function p(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}s.displayName="FocusScope";var v=(t=[],{add(e){let n=t[0];e!==n&&n?.pause(),(t=m(t,e)).unshift(e)},remove(e){t=m(t,e),t[0]?.resume()}});function m(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}e.s(["FocusScope",()=>s])},214260,e=>{"use strict";var t=e.i(431231),n=e.i(395635),r=e.i(122925),o=e.i(943988),i=e.i(890022),a=t.forwardRef((e,a)=>{let{container:u,...c}=e,[l,s]=t.useState(!1);(0,o.useLayoutEffect)(()=>s(!0),[]);let d=u||l&&globalThis?.document?.body;return d?n.default.createPortal((0,i.jsx)(r.Primitive.div,{...c,ref:a}),d):null});a.displayName="Portal",e.s(["Portal",()=>a])},254440,e=>{"use strict";var t=e.i(431231),n=0;function r(){t.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??o()),document.body.insertAdjacentElement("beforeend",e[1]??o()),n++,()=>{1===n&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),n--}},[])}function o(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}e.s(["useFocusGuards",()=>r])},97496,e=>{"use strict";var t,n,r,o,i,a,u,c=function(){return(c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function l(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var s=("function"==typeof SuppressedError&&SuppressedError,e.i(431231)),d="right-scroll-bar-position",f="width-before-scroll-bar";function p(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var v="undefined"!=typeof window?s.useLayoutEffect:s.useEffect,m=new WeakMap,h=(void 0===t&&(t={}),(void 0===n&&(n=function(e){return e}),r=[],o=!1,i={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var t=n(e,o);return r.push(t),function(){r=r.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){o=!0;var t=[];if(r.length){var n=r;r=[],n.forEach(e),t=r}var i=function(){var n=t;t=[],n.forEach(e)},a=function(){return Promise.resolve().then(i)};a(),r={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),r}}}}).options=c({async:!0,ssr:!1},t),i),y=function(){},g=s.forwardRef(function(e,t){var n,r,o,i,a=s.useRef(null),u=s.useState({onScrollCapture:y,onWheelCapture:y,onTouchMoveCapture:y}),d=u[0],f=u[1],g=e.forwardProps,b=e.children,E=e.className,w=e.removeScrollBar,C=e.enabled,S=e.shards,x=e.sideCar,R=e.noRelative,L=e.noIsolation,N=e.inert,P=e.allowPinchZoom,k=e.as,T=e.gapMode,A=l(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),O=(n=[a,t],r=function(e){return n.forEach(function(t){return p(t,e)})},(o=(0,s.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,i=o.facade,v(function(){var e=m.get(i);if(e){var t=new Set(e),r=new Set(n),o=i.current;t.forEach(function(e){r.has(e)||p(e,null)}),r.forEach(function(e){t.has(e)||p(e,o)})}m.set(i,n)},[n]),i),M=c(c({},A),d);return s.createElement(s.Fragment,null,C&&s.createElement(x,{sideCar:h,removeScrollBar:w,shards:S,noRelative:R,noIsolation:L,inert:N,setCallbacks:f,allowPinchZoom:!!P,lockRef:a,gapMode:T}),g?s.cloneElement(s.Children.only(b),c(c({},M),{ref:O})):s.createElement(void 0===k?"div":k,c({},M,{className:E,ref:O}),b))});g.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},g.classNames={fullWidth:f,zeroRight:d};var b=function(e){var t=e.sideCar,n=l(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return s.createElement(r,c({},n))};b.isSideCarExport=!0;var E=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=u||("undefined"!=typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},w=function(){var e=E();return function(t,n){s.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},C=function(){var e=w();return function(t){return e(t.styles,t.dynamic),null}},S={left:0,top:0,right:0,gap:0},x=function(e){return parseInt(e||"",10)||0},R=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[x(n),x(r),x(o)]},L=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return S;var t=R(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},N=C(),P="data-scroll-locked",k=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,u=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(u,"px ").concat(r,";\n }\n body[").concat(P,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(i,"px;\n padding-right: ").concat(a,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(u,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(d," {\n right: ").concat(u,"px ").concat(r,";\n }\n \n .").concat(f," {\n margin-right: ").concat(u,"px ").concat(r,";\n }\n \n .").concat(d," .").concat(d," {\n right: 0 ").concat(r,";\n }\n \n .").concat(f," .").concat(f," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(P,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(u,"px;\n }\n")},T=function(){var e=parseInt(document.body.getAttribute(P)||"0",10);return isFinite(e)?e:0},A=function(){s.useEffect(function(){return document.body.setAttribute(P,(T()+1).toString()),function(){var e=T()-1;e<=0?document.body.removeAttribute(P):document.body.setAttribute(P,e.toString())}},[])},O=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;A();var i=s.useMemo(function(){return L(o)},[o]);return s.createElement(N,{styles:k(i,!t,o,n?"":"!important")})},M=!1;if("undefined"!=typeof window)try{var D=Object.defineProperty({},"passive",{get:function(){return M=!0,!0}});window.addEventListener("test",D,D),window.removeEventListener("test",D,D)}catch(e){M=!1}var j=!!M&&{passive:!1},_=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},I=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),W(e,r)){var o=F(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},W=function(e,t){return"v"===e?_(t,"overflowY"):_(t,"overflowX")},F=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},B=function(e,t,n,r,o){var i,a=(i=window.getComputedStyle(t).direction,"h"===e&&"rtl"===i?-1:1),u=a*r,c=n.target,l=t.contains(c),s=!1,d=u>0,f=0,p=0;do{if(!c)break;var v=F(e,c),m=v[0],h=v[1]-v[2]-a*m;(m||h)&&W(e,c)&&(f+=h,p+=m);var y=c.parentNode;c=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!l&&c!==document.body||l&&(t.contains(c)||t===c))return d&&(o&&1>Math.abs(f)||!o&&u>f)?s=!0:!d&&(o&&1>Math.abs(p)||!o&&-u>p)&&(s=!0),s},$=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},K=function(e){return[e.deltaX,e.deltaY]},H=function(e){return e&&"current"in e?e.current:e},X=0,Y=[];let z=(a=function(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),o=s.useState(X++)[0],i=s.useState(C)[0],a=s.useRef(e);s.useEffect(function(){a.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(H),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var u=s.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!a.current.allowPinchZoom;var o,i=$(e),u=n.current,c="deltaX"in e?e.deltaX:u[0]-i[0],l="deltaY"in e?e.deltaY:u[1]-i[1],s=e.target,d=Math.abs(c)>Math.abs(l)?"h":"v";if("touches"in e&&"h"===d&&"range"===s.type)return!1;var f=I(d,s);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=I(d,s)),!f)return!1;if(!r.current&&"changedTouches"in e&&(c||l)&&(r.current=o),!o)return!0;var p=r.current||o;return B(p,t,e,"h"===p?c:l,!0)},[]),c=s.useCallback(function(e){if(Y.length&&Y[Y.length-1]===i){var n="deltaY"in e?K(e):$(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(a.current.shards||[]).map(H).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?u(e,o[0]):!a.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),l=s.useCallback(function(e,n,r,o){var i={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(i),setTimeout(function(){t.current=t.current.filter(function(e){return e!==i})},1)},[]),d=s.useCallback(function(e){n.current=$(e),r.current=void 0},[]),f=s.useCallback(function(t){l(t.type,K(t),t.target,u(t,e.lockRef.current))},[]),p=s.useCallback(function(t){l(t.type,$(t),t.target,u(t,e.lockRef.current))},[]);s.useEffect(function(){return Y.push(i),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",c,j),document.addEventListener("touchmove",c,j),document.addEventListener("touchstart",d,j),function(){Y=Y.filter(function(e){return e!==i}),document.removeEventListener("wheel",c,j),document.removeEventListener("touchmove",c,j),document.removeEventListener("touchstart",d,j)}},[]);var v=e.removeScrollBar,m=e.inert;return s.createElement(s.Fragment,null,m?s.createElement(i,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,v?s.createElement(O,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},h.useMedium(a),b);var U=s.forwardRef(function(e,t){return s.createElement(g,c({},e,{ref:t,sideCar:z}))});U.classNames=g.classNames,e.s(["RemoveScroll",0,U],97496)},73772,e=>{"use strict";var t=new WeakMap,n=new WeakMap,r={},o=0,i=function(e){return e&&(e.host||i(e.parentNode))},a=function(e,a,u,c){var l=(Array.isArray(e)?e:[e]).map(function(e){if(a.contains(e))return e;var t=i(e);return t&&a.contains(t)?t:(console.error("aria-hidden",e,"in not contained inside",a,". Doing nothing"),null)}).filter(function(e){return!!e});r[u]||(r[u]=new WeakMap);var s=r[u],d=[],f=new Set,p=new Set(l),v=function(e){!e||f.has(e)||(f.add(e),v(e.parentNode))};l.forEach(v);var m=function(e){!e||p.has(e)||Array.prototype.forEach.call(e.children,function(e){if(f.has(e))m(e);else try{var r=e.getAttribute(c),o=null!==r&&"false"!==r,i=(t.get(e)||0)+1,a=(s.get(e)||0)+1;t.set(e,i),s.set(e,a),d.push(e),1===i&&o&&n.set(e,!0),1===a&&e.setAttribute(u,"true"),o||e.setAttribute(c,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return m(a),f.clear(),o++,function(){d.forEach(function(e){var r=t.get(e)-1,o=s.get(e)-1;t.set(e,r),s.set(e,o),r||(n.has(e)||e.removeAttribute(c),n.delete(e)),o||e.removeAttribute(u)}),--o||(t=new WeakMap,t=new WeakMap,n=new WeakMap,r={})}},u=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),a(r,o,n,"aria-hidden")):function(){return null}};e.s(["hideOthers",()=>u])},686266,e=>{"use strict";let t=(0,e.i(122436).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],686266)},21079,e=>{"use strict";var t=e.i(890022),n=e.i(431231),r=e.i(632137);let o=n.forwardRef(({className:e,type:n,...o},i)=>(0,t.jsx)("input",{type:n,className:(0,r.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:i,...o}));o.displayName="Input",e.s(["Input",()=>o])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,340898,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(230827),a=e.i(963781),o=e.i(300329),s=e.i(723882),l=e.i(828964),i=e.i(122436);let c=(0,i.default)("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]),d=(0,i.default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]),u=(0,i.default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),p=(0,i.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var f=e.i(686266),m=e.i(644021);let h=(0,i.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var v=e.i(196812),x=e.i(20648),w=e.i(235893),g=e.i(21079),y=e.i(76075),j=e.i(291967),b=e.i(430406),C=e.i(79014),N=e.i(393136),R=e.i(122925),k=e.i(670465),M=e.i(695587),P=e.i(255235),E=e.i(254440),D=e.i(31007),S=e.i(315599),I=e.i(306839),_=e.i(214260),T=e.i(111052),F=e.i(938657),O="rovingFocusGroup.onEntryFocus",A={bubbles:!1,cancelable:!0},L="RovingFocusGroup",[H,K,B]=(0,k.createCollection)(L),[G,z]=(0,C.createContextScope)(L,[B]),[U,V]=G(L),X=r.forwardRef((e,r)=>(0,t.jsx)(H.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(H.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(q,{...e,ref:r})})}));X.displayName=L;var q=r.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,orientation:o,loop:s=!1,dir:l,currentTabStopId:i,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:u,preventScrollOnEntryFocus:p=!1,...f}=e,m=r.useRef(null),h=(0,b.useComposedRefs)(n,m),v=(0,M.useDirection)(l),[x,w]=(0,N.useControllableState)({prop:i,defaultProp:c??null,onChange:d,caller:L}),[g,y]=r.useState(!1),C=(0,F.useCallbackRef)(u),k=K(a),P=r.useRef(!1),[E,D]=r.useState(0);return r.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(O,C),()=>e.removeEventListener(O,C)},[C]),(0,t.jsx)(U,{scope:a,orientation:o,dir:v,loop:s,currentTabStopId:x,onItemFocus:r.useCallback(e=>w(e),[w]),onItemShiftTab:r.useCallback(()=>y(!0),[]),onFocusableItemAdd:r.useCallback(()=>D(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>D(e=>e-1),[]),children:(0,t.jsx)(R.Primitive.div,{tabIndex:g||0===E?-1:0,"data-orientation":o,...f,ref:h,style:{outline:"none",...e.style},onMouseDown:(0,j.composeEventHandlers)(e.onMouseDown,()=>{P.current=!0}),onFocus:(0,j.composeEventHandlers)(e.onFocus,e=>{let t=!P.current;if(e.target===e.currentTarget&&t&&!g){let t=new CustomEvent(O,A);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=k().filter(e=>e.focusable);Z([e.find(e=>e.active),e.find(e=>e.id===x),...e].filter(Boolean).map(e=>e.ref.current),p)}}P.current=!1}),onBlur:(0,j.composeEventHandlers)(e.onBlur,()=>y(!1))})})}),$="RovingFocusGroupItem",Y=r.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,focusable:o=!0,active:s=!1,tabStopId:l,children:i,...c}=e,d=(0,S.useId)(),u=l||d,p=V($,a),f=p.currentTabStopId===u,m=K(a),{onFocusableItemAdd:h,onFocusableItemRemove:v,currentTabStopId:x}=p;return r.useEffect(()=>{if(o)return h(),()=>v()},[o,h,v]),(0,t.jsx)(H.ItemSlot,{scope:a,id:u,focusable:o,active:s,children:(0,t.jsx)(R.Primitive.span,{tabIndex:f?0:-1,"data-orientation":p.orientation,...c,ref:n,onMouseDown:(0,j.composeEventHandlers)(e.onMouseDown,e=>{o?p.onItemFocus(u):e.preventDefault()}),onFocus:(0,j.composeEventHandlers)(e.onFocus,()=>p.onItemFocus(u)),onKeyDown:(0,j.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void p.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let a=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return W[a]}(e,p.orientation,p.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=m().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&a.reverse();let o=a.indexOf(e.currentTarget);a=p.loop?(r=a,n=o+1,r.map((e,t)=>r[(n+t)%r.length])):a.slice(o+1)}setTimeout(()=>Z(a))}}),children:"function"==typeof i?i({isCurrentTabStop:f,hasTabStop:null!=x}):i})})});Y.displayName=$;var W={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Z(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var J=e.i(665489),Q=e.i(73772),ee=e.i(97496),et=["Enter"," "],er=["ArrowUp","PageDown","End"],en=["ArrowDown","PageUp","Home",...er],ea={ltr:[...et,"ArrowRight"],rtl:[...et,"ArrowLeft"]},eo={ltr:["ArrowLeft"],rtl:["ArrowRight"]},es="Menu",[el,ei,ec]=(0,k.createCollection)(es),[ed,eu]=(0,C.createContextScope)(es,[ec,I.createPopperScope,z]),ep=(0,I.createPopperScope)(),ef=z(),[em,eh]=ed(es),[ev,ex]=ed(es),ew=e=>{let{__scopeMenu:n,open:a=!1,children:o,dir:s,onOpenChange:l,modal:i=!0}=e,c=ep(n),[d,u]=r.useState(null),p=r.useRef(!1),f=(0,F.useCallbackRef)(l),m=(0,M.useDirection)(s);return r.useEffect(()=>{let e=()=>{p.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>p.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,t.jsx)(I.Root,{...c,children:(0,t.jsx)(em,{scope:n,open:a,onOpenChange:f,content:d,onContentChange:u,children:(0,t.jsx)(ev,{scope:n,onClose:r.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:p,dir:m,modal:i,children:o})})})};ew.displayName=es;var eg=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,o=ep(n);return(0,t.jsx)(I.Anchor,{...o,...a,ref:r})});eg.displayName="MenuAnchor";var ey="MenuPortal",[ej,eb]=ed(ey,{forceMount:void 0}),eC=e=>{let{__scopeMenu:r,forceMount:n,children:a,container:o}=e,s=eh(ey,r);return(0,t.jsx)(ej,{scope:r,forceMount:n,children:(0,t.jsx)(T.Presence,{present:n||s.open,children:(0,t.jsx)(_.Portal,{asChild:!0,container:o,children:a})})})};eC.displayName=ey;var eN="MenuContent",[eR,ek]=ed(eN),eM=r.forwardRef((e,r)=>{let n=eb(eN,e.__scopeMenu),{forceMount:a=n.forceMount,...o}=e,s=eh(eN,e.__scopeMenu),l=ex(eN,e.__scopeMenu);return(0,t.jsx)(el.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(T.Presence,{present:a||s.open,children:(0,t.jsx)(el.Slot,{scope:e.__scopeMenu,children:l.modal?(0,t.jsx)(eP,{...o,ref:r}):(0,t.jsx)(eE,{...o,ref:r})})})})}),eP=r.forwardRef((e,n)=>{let a=eh(eN,e.__scopeMenu),o=r.useRef(null),s=(0,b.useComposedRefs)(n,o);return r.useEffect(()=>{let e=o.current;if(e)return(0,Q.hideOthers)(e)},[]),(0,t.jsx)(eS,{...e,ref:s,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:(0,j.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),eE=r.forwardRef((e,r)=>{let n=eh(eN,e.__scopeMenu);return(0,t.jsx)(eS,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),eD=(0,J.createSlot)("MenuContent.ScrollLock"),eS=r.forwardRef((e,n)=>{let{__scopeMenu:a,loop:o=!1,trapFocus:s,onOpenAutoFocus:l,onCloseAutoFocus:i,disableOutsidePointerEvents:c,onEntryFocus:d,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:h,disableOutsideScroll:v,...x}=e,w=eh(eN,a),g=ex(eN,a),y=ep(a),C=ef(a),N=ei(a),[R,k]=r.useState(null),M=r.useRef(null),S=(0,b.useComposedRefs)(n,M,w.onContentChange),_=r.useRef(0),T=r.useRef(""),F=r.useRef(0),O=r.useRef(null),A=r.useRef("right"),L=r.useRef(0),H=v?ee.RemoveScroll:r.Fragment;r.useEffect(()=>()=>window.clearTimeout(_.current),[]),(0,E.useFocusGuards)();let K=r.useCallback(e=>{var t,r;return A.current===O.current?.side&&(t=e,!!(r=O.current?.area)&&function(e,t){let{x:r,y:n}=e,a=!1;for(let e=0,o=t.length-1;e<t.length;o=e++){let s=t[e],l=t[o],i=s.x,c=s.y,d=l.x,u=l.y;c>n!=u>n&&r<(d-i)*(n-c)/(u-c)+i&&(a=!a)}return a}({x:t.clientX,y:t.clientY},r))},[]);return(0,t.jsx)(eR,{scope:a,searchRef:T,onItemEnter:r.useCallback(e=>{K(e)&&e.preventDefault()},[K]),onItemLeave:r.useCallback(e=>{K(e)||(M.current?.focus(),k(null))},[K]),onTriggerLeave:r.useCallback(e=>{K(e)&&e.preventDefault()},[K]),pointerGraceTimerRef:F,onPointerGraceIntentChange:r.useCallback(e=>{O.current=e},[]),children:(0,t.jsx)(H,{...v?{as:eD,allowPinchZoom:!0}:void 0,children:(0,t.jsx)(D.FocusScope,{asChild:!0,trapped:s,onMountAutoFocus:(0,j.composeEventHandlers)(l,e=>{e.preventDefault(),M.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:(0,t.jsx)(P.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:h,children:(0,t.jsx)(X,{asChild:!0,...C,dir:g.dir,orientation:"vertical",loop:o,currentTabStopId:R,onCurrentTabStopIdChange:k,onEntryFocus:(0,j.composeEventHandlers)(d,e=>{g.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,t.jsx)(I.Content,{role:"menu","aria-orientation":"vertical","data-state":e4(w.open),"data-radix-menu-content":"",dir:g.dir,...y,...x,ref:S,style:{outline:"none",...x.style},onKeyDown:(0,j.composeEventHandlers)(x.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,r=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;if(t){var a;let t,o,s,l,i,c;"Tab"===e.key&&e.preventDefault(),!r&&n&&(a=e.key,t=T.current+a,o=N().filter(e=>!e.disabled),s=document.activeElement,l=o.find(e=>e.ref.current===s)?.textValue,i=function(e,t,r){var n;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,o=r?e.indexOf(r):-1,s=(n=Math.max(o,0),e.map((t,r)=>e[(n+r)%e.length]));1===a.length&&(s=s.filter(e=>e!==r));let l=s.find(e=>e.toLowerCase().startsWith(a.toLowerCase()));return l!==r?l:void 0}(o.map(e=>e.textValue),t,l),c=o.find(e=>e.textValue===i)?.ref.current,function e(t){T.current=t,window.clearTimeout(_.current),""!==t&&(_.current=window.setTimeout(()=>e(""),1e3))}(t),c&&setTimeout(()=>c.focus()))}let o=M.current;if(e.target!==o||!en.includes(e.key))return;e.preventDefault();let s=N().filter(e=>!e.disabled).map(e=>e.ref.current);er.includes(e.key)&&s.reverse(),function(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}(s)}),onBlur:(0,j.composeEventHandlers)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(_.current),T.current="")}),onPointerMove:(0,j.composeEventHandlers)(e.onPointerMove,e6(e=>{let t=e.target,r=L.current!==e.clientX;e.currentTarget.contains(t)&&r&&(A.current=e.clientX>L.current?"right":"left",L.current=e.clientX)}))})})})})})})});eM.displayName=eN;var eI=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(R.Primitive.div,{role:"group",...a,ref:r})});eI.displayName="MenuGroup";var e_=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(R.Primitive.div,{...a,ref:r})});e_.displayName="MenuLabel";var eT="MenuItem",eF="menu.itemSelect",eO=r.forwardRef((e,n)=>{let{disabled:a=!1,onSelect:o,...s}=e,l=r.useRef(null),i=ex(eT,e.__scopeMenu),c=ek(eT,e.__scopeMenu),d=(0,b.useComposedRefs)(n,l),u=r.useRef(!1);return(0,t.jsx)(eA,{...s,ref:d,disabled:a,onClick:(0,j.composeEventHandlers)(e.onClick,()=>{let e=l.current;if(!a&&e){let t=new CustomEvent(eF,{bubbles:!0,cancelable:!0});e.addEventListener(eF,e=>o?.(e),{once:!0}),(0,R.dispatchDiscreteCustomEvent)(e,t),t.defaultPrevented?u.current=!1:i.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:(0,j.composeEventHandlers)(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:(0,j.composeEventHandlers)(e.onKeyDown,e=>{let t=""!==c.searchRef.current;a||t&&" "===e.key||et.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});eO.displayName=eT;var eA=r.forwardRef((e,n)=>{let{__scopeMenu:a,disabled:o=!1,textValue:s,...l}=e,i=ek(eT,a),c=ef(a),d=r.useRef(null),u=(0,b.useComposedRefs)(n,d),[p,f]=r.useState(!1),[m,h]=r.useState("");return r.useEffect(()=>{let e=d.current;e&&h((e.textContent??"").trim())},[l.children]),(0,t.jsx)(el.ItemSlot,{scope:a,disabled:o,textValue:s??m,children:(0,t.jsx)(Y,{asChild:!0,...c,focusable:!o,children:(0,t.jsx)(R.Primitive.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...l,ref:u,onPointerMove:(0,j.composeEventHandlers)(e.onPointerMove,e6(e=>{o?i.onItemLeave(e):(i.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,j.composeEventHandlers)(e.onPointerLeave,e6(e=>i.onItemLeave(e))),onFocus:(0,j.composeEventHandlers)(e.onFocus,()=>f(!0)),onBlur:(0,j.composeEventHandlers)(e.onBlur,()=>f(!1))})})})}),eL=r.forwardRef((e,r)=>{let{checked:n=!1,onCheckedChange:a,...o}=e;return(0,t.jsx)(eX,{scope:e.__scopeMenu,checked:n,children:(0,t.jsx)(eO,{role:"menuitemcheckbox","aria-checked":e3(n)?"mixed":n,...o,ref:r,"data-state":e5(n),onSelect:(0,j.composeEventHandlers)(o.onSelect,()=>a?.(!!e3(n)||!n),{checkForDefaultPrevented:!1})})})});eL.displayName="MenuCheckboxItem";var eH="MenuRadioGroup",[eK,eB]=ed(eH,{value:void 0,onValueChange:()=>{}}),eG=r.forwardRef((e,r)=>{let{value:n,onValueChange:a,...o}=e,s=(0,F.useCallbackRef)(a);return(0,t.jsx)(eK,{scope:e.__scopeMenu,value:n,onValueChange:s,children:(0,t.jsx)(eI,{...o,ref:r})})});eG.displayName=eH;var ez="MenuRadioItem",eU=r.forwardRef((e,r)=>{let{value:n,...a}=e,o=eB(ez,e.__scopeMenu),s=n===o.value;return(0,t.jsx)(eX,{scope:e.__scopeMenu,checked:s,children:(0,t.jsx)(eO,{role:"menuitemradio","aria-checked":s,...a,ref:r,"data-state":e5(s),onSelect:(0,j.composeEventHandlers)(a.onSelect,()=>o.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});eU.displayName=ez;var eV="MenuItemIndicator",[eX,eq]=ed(eV,{checked:!1}),e$=r.forwardRef((e,r)=>{let{__scopeMenu:n,forceMount:a,...o}=e,s=eq(eV,n);return(0,t.jsx)(T.Presence,{present:a||e3(s.checked)||!0===s.checked,children:(0,t.jsx)(R.Primitive.span,{...o,ref:r,"data-state":e5(s.checked)})})});e$.displayName=eV;var eY=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(R.Primitive.div,{role:"separator","aria-orientation":"horizontal",...a,ref:r})});eY.displayName="MenuSeparator";var eW=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,o=ep(n);return(0,t.jsx)(I.Arrow,{...o,...a,ref:r})});eW.displayName="MenuArrow";var[eZ,eJ]=ed("MenuSub"),eQ="MenuSubTrigger",e0=r.forwardRef((e,n)=>{let a=eh(eQ,e.__scopeMenu),o=ex(eQ,e.__scopeMenu),s=eJ(eQ,e.__scopeMenu),l=ek(eQ,e.__scopeMenu),i=r.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:d}=l,u={__scopeMenu:e.__scopeMenu},p=r.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return r.useEffect(()=>p,[p]),r.useEffect(()=>{let e=c.current;return()=>{window.clearTimeout(e),d(null)}},[c,d]),(0,t.jsx)(eg,{asChild:!0,...u,children:(0,t.jsx)(eA,{id:s.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":s.contentId,"data-state":e4(a.open),...e,ref:(0,b.composeRefs)(n,s.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:(0,j.composeEventHandlers)(e.onPointerMove,e6(t=>{l.onItemEnter(t),!t.defaultPrevented&&(e.disabled||a.open||i.current||(l.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{a.onOpenChange(!0),p()},100)))})),onPointerLeave:(0,j.composeEventHandlers)(e.onPointerLeave,e6(e=>{p();let t=a.content?.getBoundingClientRect();if(t){let r=a.content?.dataset.side,n="right"===r,o=t[n?"left":"right"],s=t[n?"right":"left"];l.onPointerGraceIntentChange({area:[{x:e.clientX+(n?-5:5),y:e.clientY},{x:o,y:t.top},{x:s,y:t.top},{x:s,y:t.bottom},{x:o,y:t.bottom}],side:r}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>l.onPointerGraceIntentChange(null),300)}else{if(l.onTriggerLeave(e),e.defaultPrevented)return;l.onPointerGraceIntentChange(null)}})),onKeyDown:(0,j.composeEventHandlers)(e.onKeyDown,t=>{let r=""!==l.searchRef.current;e.disabled||r&&" "===t.key||ea[o.dir].includes(t.key)&&(a.onOpenChange(!0),a.content?.focus(),t.preventDefault())})})})});e0.displayName=eQ;var e1="MenuSubContent",e2=r.forwardRef((e,n)=>{let a=eb(eN,e.__scopeMenu),{forceMount:o=a.forceMount,...s}=e,l=eh(eN,e.__scopeMenu),i=ex(eN,e.__scopeMenu),c=eJ(e1,e.__scopeMenu),d=r.useRef(null),u=(0,b.useComposedRefs)(n,d);return(0,t.jsx)(el.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(T.Presence,{present:o||l.open,children:(0,t.jsx)(el.Slot,{scope:e.__scopeMenu,children:(0,t.jsx)(eS,{id:c.contentId,"aria-labelledby":c.triggerId,...s,ref:u,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&d.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,j.composeEventHandlers)(e.onFocusOutside,e=>{e.target!==c.trigger&&l.onOpenChange(!1)}),onEscapeKeyDown:(0,j.composeEventHandlers)(e.onEscapeKeyDown,e=>{i.onClose(),e.preventDefault()}),onKeyDown:(0,j.composeEventHandlers)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),r=eo[i.dir].includes(e.key);t&&r&&(l.onOpenChange(!1),c.trigger?.focus(),e.preventDefault())})})})})})});function e4(e){return e?"open":"closed"}function e3(e){return"indeterminate"===e}function e5(e){return e3(e)?"indeterminate":e?"checked":"unchecked"}function e6(e){return t=>"mouse"===t.pointerType?e(t):void 0}e2.displayName=e1;var e8="DropdownMenu",[e9,e7]=(0,C.createContextScope)(e8,[eu]),te=eu(),[tt,tr]=e9(e8),tn=e=>{let{__scopeDropdownMenu:n,children:a,dir:o,open:s,defaultOpen:l,onOpenChange:i,modal:c=!0}=e,d=te(n),u=r.useRef(null),[p,f]=(0,N.useControllableState)({prop:s,defaultProp:l??!1,onChange:i,caller:e8});return(0,t.jsx)(tt,{scope:n,triggerId:(0,S.useId)(),triggerRef:u,contentId:(0,S.useId)(),open:p,onOpenChange:f,onOpenToggle:r.useCallback(()=>f(e=>!e),[f]),modal:c,children:(0,t.jsx)(ew,{...d,open:p,onOpenChange:f,dir:o,modal:c,children:a})})};tn.displayName=e8;var ta="DropdownMenuTrigger",to=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,disabled:a=!1,...o}=e,s=tr(ta,n),l=te(n);return(0,t.jsx)(eg,{asChild:!0,...l,children:(0,t.jsx)(R.Primitive.button,{type:"button",id:s.triggerId,"aria-haspopup":"menu","aria-expanded":s.open,"aria-controls":s.open?s.contentId:void 0,"data-state":s.open?"open":"closed","data-disabled":a?"":void 0,disabled:a,...o,ref:(0,b.composeRefs)(r,s.triggerRef),onPointerDown:(0,j.composeEventHandlers)(e.onPointerDown,e=>{!a&&0===e.button&&!1===e.ctrlKey&&(s.onOpenToggle(),s.open||e.preventDefault())}),onKeyDown:(0,j.composeEventHandlers)(e.onKeyDown,e=>{!a&&(["Enter"," "].includes(e.key)&&s.onOpenToggle(),"ArrowDown"===e.key&&s.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});to.displayName=ta;var ts=e=>{let{__scopeDropdownMenu:r,...n}=e,a=te(r);return(0,t.jsx)(eC,{...a,...n})};ts.displayName="DropdownMenuPortal";var tl="DropdownMenuContent",ti=r.forwardRef((e,n)=>{let{__scopeDropdownMenu:a,...o}=e,s=tr(tl,a),l=te(a),i=r.useRef(!1);return(0,t.jsx)(eM,{id:s.contentId,"aria-labelledby":s.triggerId,...l,...o,ref:n,onCloseAutoFocus:(0,j.composeEventHandlers)(e.onCloseAutoFocus,e=>{i.current||s.triggerRef.current?.focus(),i.current=!1,e.preventDefault()}),onInteractOutside:(0,j.composeEventHandlers)(e.onInteractOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey,n=2===t.button||r;(!s.modal||n)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});ti.displayName=tl,r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(eI,{...o,...a,ref:r})}).displayName="DropdownMenuGroup";var tc=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(e_,{...o,...a,ref:r})});tc.displayName="DropdownMenuLabel";var td=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(eO,{...o,...a,ref:r})});td.displayName="DropdownMenuItem";var tu=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(eL,{...o,...a,ref:r})});tu.displayName="DropdownMenuCheckboxItem",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(eG,{...o,...a,ref:r})}).displayName="DropdownMenuRadioGroup";var tp=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(eU,{...o,...a,ref:r})});tp.displayName="DropdownMenuRadioItem";var tf=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(e$,{...o,...a,ref:r})});tf.displayName="DropdownMenuItemIndicator";var tm=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(eY,{...o,...a,ref:r})});tm.displayName="DropdownMenuSeparator",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(eW,{...o,...a,ref:r})}).displayName="DropdownMenuArrow";var th=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(e0,{...o,...a,ref:r})});th.displayName="DropdownMenuSubTrigger";var tv=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=te(n);return(0,t.jsx)(e2,{...o,...a,ref:r,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});tv.displayName="DropdownMenuSubContent";var tx=e.i(525761),tw=e.i(443991),tg=e.i(632137);r.forwardRef(({className:e,inset:r,children:n,...a},o)=>(0,t.jsxs)(th,{ref:o,className:(0,tg.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",r&&"pl-8",e),...a,children:[n,(0,t.jsx)(tx.ChevronRight,{className:"ml-auto h-4 w-4"})]})).displayName=th.displayName,r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(tv,{ref:n,className:(0,tg.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r})).displayName=tv.displayName;let ty=r.forwardRef(({className:e,sideOffset:r=4,...n},a)=>(0,t.jsx)(ts,{children:(0,t.jsx)(ti,{ref:a,sideOffset:r,className:(0,tg.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));ty.displayName=ti.displayName;let tj=r.forwardRef(({className:e,inset:r,...n},a)=>(0,t.jsx)(td,{ref:a,className:(0,tg.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r&&"pl-8",e),...n}));tj.displayName=td.displayName,r.forwardRef(({className:e,children:r,checked:n,...a},o)=>(0,t.jsxs)(tu,{ref:o,className:(0,tg.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...a,children:[(0,t.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(tf,{children:(0,t.jsx)(f.Check,{className:"h-4 w-4"})})}),r]})).displayName=tu.displayName,r.forwardRef(({className:e,children:r,...n},a)=>(0,t.jsxs)(tp,{ref:a,className:(0,tg.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[(0,t.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(tf,{children:(0,t.jsx)(tw.Circle,{className:"h-2 w-2 fill-current"})})}),r]})).displayName=tp.displayName,r.forwardRef(({className:e,inset:r,...n},a)=>(0,t.jsx)(tc,{ref:a,className:(0,tg.cn)("px-2 py-1.5 text-sm font-semibold",r&&"pl-8",e),...n})).displayName=tc.displayName;let tb=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(tm,{ref:n,className:(0,tg.cn)("-mx-1 my-1 h-px bg-muted",e),...r}));tb.displayName=tm.displayName;var tC=e.i(361877),tN=e.i(341965);let tR=["#ef4444","#f97316","#eab308","#22c55e","#14b8a6","#3b82f6","#6366f1","#8b5cf6","#d946ef","#ec4899","#6b7280","#78716c"];function tk({value:e,onChange:n,disabled:a}){let[o,s]=(0,r.useState)(!1);return(0,t.jsxs)(tN.Popover,{open:o,onOpenChange:s,children:[(0,t.jsx)(tN.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(w.Button,{variant:"outline",size:"sm",className:"h-8 w-8 p-0",disabled:a,"aria-label":"Pick color",children:(0,t.jsx)("div",{className:"h-4 w-4 rounded-full border",style:{backgroundColor:e||"#666"}})})}),(0,t.jsx)(tN.PopoverContent,{className:"w-[200px] p-3",align:"start",children:(0,t.jsx)("div",{className:"grid grid-cols-6 gap-2",children:tR.map(r=>(0,t.jsx)("button",{className:(0,tg.cn)("h-6 w-6 rounded-full border-2 transition-transform hover:scale-110",e===r?"border-primary":"border-transparent"),style:{backgroundColor:r},onClick:()=>{n(r),s(!1)},"aria-label":`Select color ${r}`},r))})})]})}var tM=e.i(995403),tP=e.i(585458),tE=e.i(612437);function tD(){let e=(0,n.useRouter)(),{projects:i,switchProject:j,toggleFavorite:b,removeProject:C,updateProject:N}=(0,x.useProject)(),[R,k]=(0,r.useState)(""),[M,P]=(0,r.useState)(!1),[E,D]=(0,r.useState)(null),[S,I]=(0,r.useState)(""),[_,T]=(0,r.useState)({}),F=i.filter(e=>e.name.toLowerCase().includes(R.toLowerCase())),O=async t=>{await j(t),e.push(`/projects/${t}/specs`)},A=()=>{D(null),I("")},L=async e=>{if(!S.trim())return void tM.toast.error("Project name cannot be empty");try{await N(e,{name:S.trim()}),tM.toast.success("Project name updated"),D(null),I("")}catch{tM.toast.error("Failed to update project name")}},H=async(e,t)=>{try{await N(e,{color:t}),tM.toast.success("Project color updated")}catch{tM.toast.error("Failed to update project color")}},K=(0,r.useCallback)(async e=>{T(t=>({...t,[e]:{status:"validating"}}));try{let t=await fetch(`/api/projects/${e}/validate`,{method:"POST"});if(!t.ok)throw Error("Validation request failed");let r=await t.json();T(t=>({...t,[e]:{status:r.validation.isValid?"valid":"invalid",error:r.validation.error}})),r.validation.isValid?tM.toast.success("Project path is valid"):tM.toast.error(`Project path invalid: ${r.validation.error||"Unknown error"}`)}catch{T(t=>({...t,[e]:{status:"invalid",error:"Failed to validate"}})),tM.toast.error("Failed to validate project")}},[]);return(0,t.jsxs)("div",{className:"container max-w-5xl py-8 space-y-8",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-2",children:"Manage your LeanSpec projects and workspaces."})]}),(0,t.jsxs)(w.Button,{onClick:()=>P(!0),children:[(0,t.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"Add Project"]})]}),(0,t.jsx)("div",{className:"flex items-center space-x-2",children:(0,t.jsxs)("div",{className:"relative flex-1 max-w-sm",children:[(0,t.jsx)(o.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(g.Input,{placeholder:"Search projects...",value:R,onChange:e=>k(e.target.value),className:"pl-8"})]})}),(0,t.jsxs)("div",{className:"grid gap-6 md:grid-cols-2 lg:grid-cols-3",children:[F.map(e=>{let r;return(0,t.jsxs)(y.Card,{className:"group relative hover:border-primary/50 transition-colors",children:[(0,t.jsx)(y.CardHeader,{className:"pb-4",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(tk,{value:e.color,onChange:t=>H(e.id,t)}),(0,t.jsxs)("div",{className:"space-y-1 flex-1 min-w-0",children:[E===e.id?(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(g.Input,{value:S,onChange:e=>I(e.target.value),className:"h-7 text-sm",autoFocus:!0,onKeyDown:t=>{"Enter"===t.key&&L(e.id),"Escape"===t.key&&A()}}),(0,t.jsx)(w.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>L(e.id),children:(0,t.jsx)(f.Check,{className:"h-3 w-3"})}),(0,t.jsx)(w.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:A,children:(0,t.jsx)(m.X,{className:"h-3 w-3"})})]}):(0,t.jsxs)(y.CardTitle,{className:"text-base leading-none flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:()=>O(e.id),className:"hover:underline focus:outline-none truncate",children:e.name}),(r=_[e.id])&&"unknown"!==r.status?"validating"===r.status?(0,t.jsx)(p,{className:"h-4 w-4 animate-spin text-muted-foreground"}):"valid"===r.status?(0,t.jsx)(v.CheckCircle2,{className:"h-4 w-4 text-green-500"}):"invalid"===r.status?(0,t.jsx)("span",{title:r.error||"Invalid project",children:(0,t.jsx)(h,{className:"h-4 w-4 text-destructive"})}):null:null]}),(0,t.jsx)(y.CardDescription,{className:"text-xs truncate max-w-[180px]",title:e.path,children:e.path})]})]}),(0,t.jsxs)(tn,{children:[(0,t.jsx)(to,{asChild:!0,children:(0,t.jsxs)(w.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",children:[(0,t.jsx)(c,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Open menu"})]})}),(0,t.jsxs)(ty,{align:"end",children:[(0,t.jsxs)(tj,{onClick:()=>{var t,r;return t=e.id,r=e.name,void(D(t),I(r))},children:[(0,t.jsx)(u,{className:"mr-2 h-4 w-4"}),"Rename"]}),(0,t.jsxs)(tj,{onClick:()=>b(e.id),children:[(0,t.jsx)(l.Star,{className:"mr-2 h-4 w-4"}),e.favorite?"Unfavorite":"Favorite"]}),(0,t.jsxs)(tj,{onClick:()=>K(e.id),children:[(0,t.jsx)(p,{className:"mr-2 h-4 w-4"}),"Validate Path"]}),(0,t.jsx)(tb,{}),(0,t.jsxs)(tj,{className:"text-destructive",onClick:()=>C(e.id),children:[(0,t.jsx)(d,{className:"mr-2 h-4 w-4"}),"Remove"]})]})]})]})}),(0,t.jsx)(y.CardContent,{className:"pb-4",children:(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm text-muted-foreground",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(s.FolderOpen,{className:"mr-1 h-3 w-3"}),(0,t.jsx)("span",{className:"text-xs",children:"Local"})]}),e.lastAccessed&&(0,t.jsxs)("span",{className:"text-xs",children:["Opened ",(0,tP.default)(e.lastAccessed).fromNow()]})]})}),e.favorite&&(0,t.jsx)("div",{className:"absolute top-2 right-10 text-yellow-500",children:(0,t.jsx)(l.Star,{className:"h-4 w-4 fill-current"})})]},e.id)}),0===F.length&&(0,t.jsxs)("div",{className:"col-span-full flex flex-col items-center justify-center py-12 text-center border rounded-lg border-dashed",children:[(0,t.jsx)(s.FolderOpen,{className:"h-10 w-10 text-muted-foreground mb-4"}),(0,t.jsx)("h3",{className:"text-lg font-medium",children:"No projects found"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-1 mb-4",children:R?"Try adjusting your search query.":"Get started by adding your first project."}),(0,t.jsxs)(w.Button,{onClick:()=>P(!0),children:[(0,t.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"Add Project"]})]})]}),(0,t.jsx)(tC.CreateProjectDialog,{open:M,onOpenChange:P})]})}tP.default.extend(tE.default),e.s(["default",()=>tD],340898)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,918412,e=>{"use strict";let t;var r=e.i(890022),s=e.i(431231),n=e.i(417612),i=e.i(230827),a=e.i(334960);e.s(["ERROR_REVALIDATE_EVENT",()=>3,"FOCUS_EVENT",()=>0,"MUTATE_EVENT",()=>2,"RECONNECT_EVENT",()=>1],89601);var l=Object.prototype.hasOwnProperty;let o=new WeakMap,c=()=>{},d=c(),u=Object,p=e=>e===d,m=(e,t)=>({...e,...t}),f={},h={},x="undefined",g=typeof window!=x,b=typeof document!=x,y=g&&"Deno"in window,v=(e,t)=>{let r=o.get(e);return[()=>!p(t)&&e.get(t)||f,s=>{if(!p(t)){let n=e.get(t);t in h||(h[t]=n),r[5](t,m(n,s),n||f)}},r[6],()=>!p(t)&&t in h?h[t]:!p(t)&&e.get(t)||f]},j=!0,[w,N]=g&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[c,c],k={initFocus:e=>(b&&document.addEventListener("visibilitychange",e),w("focus",e),()=>{b&&document.removeEventListener("visibilitychange",e),N("focus",e)}),initReconnect:e=>{let t=()=>{j=!0,e()},r=()=>{j=!1};return w("online",t),w("offline",r),()=>{N("online",t),N("offline",r)}}},E=!s.default.useId,S=!g||y,T=S?s.useEffect:s.useLayoutEffect,C="undefined"!=typeof navigator&&navigator.connection,O=!S&&C&&(["slow-2g","2g"].includes(C.effectiveType)||C.saveData),R=new WeakMap,A=(e,t)=>e===`[object ${t}]`,D=0,P=e=>{let t,r,s=typeof e,n=u.prototype.toString.call(e),i=A(n,"Date"),a=A(n,"RegExp"),l=A(n,"Object");if(u(e)!==e||i||a)t=i?e.toJSON():"symbol"==s?e.toString():"string"==s?JSON.stringify(e):""+e;else{if(t=R.get(e))return t;if(t=++D+"~",R.set(e,t),Array.isArray(e)){for(r=0,t="@";r<e.length;r++)t+=P(e[r])+",";R.set(e,t)}if(l){t="#";let s=u.keys(e).sort();for(;!p(r=s.pop());)p(e[r])||(t+=r+":"+P(e[r])+",");R.set(e,t)}}return t},_=e=>{if("function"==typeof e)try{e=e()}catch(t){e=""}let t=e;return[e="string"==typeof e?e:(Array.isArray(e)?e.length:e)?P(e):"",t]},F=0,V=()=>++F;async function M(...e){let[t,r,s,n]=e,i=m({populateCache:!0,throwOnError:!0},"boolean"==typeof n?{revalidate:n}:n||{}),a=i.populateCache,l=i.rollbackOnError,c=i.optimisticData,u=i.throwOnError;if("function"==typeof r){let e=[];for(let s of t.keys())!/^\$(inf|sub)\$/.test(s)&&r(t.get(s)._k)&&e.push(s);return Promise.all(e.map(f))}return f(r);async function f(r){let n,[m]=_(r);if(!m)return;let[f,h]=v(t,m),[x,g,b,y]=o.get(t),j=()=>{let e=x[m];return("function"==typeof i.revalidate?i.revalidate(f().data,r):!1!==i.revalidate)&&(delete b[m],delete y[m],e&&e[0])?e[0](2).then(()=>f().data):f().data};if(e.length<3)return j();let w=s,N=!1,k=V();g[m]=[k,0];let E=!p(c),S=f(),T=S.data,C=S._c,O=p(C)?T:C;if(E&&h({data:c="function"==typeof c?c(O,T):c,_c:O}),"function"==typeof w)try{w=w(O)}catch(e){n=e,N=!0}if(w&&"function"==typeof w.then){let e;if(w=await w.catch(e=>{n=e,N=!0}),k!==g[m][0]){if(N)throw n;return w}N&&E&&(e=n,"function"==typeof l?l(e):!1!==l)&&(a=!0,h({data:O,_c:d}))}if(a&&!N&&("function"==typeof a?h({data:a(w,O),error:d,_c:d}):h({data:w,error:d,_c:d})),g[m][1]=V(),Promise.resolve(j()).then(()=>{h({_c:d})}),N){if(u)throw n;return}return w}}let $=(e,t)=>{for(let r in e)e[r][0]&&e[r][0](t)},L=(e,t)=>{if(!o.has(e)){let r=m(k,t),s=Object.create(null),n=M.bind(d,e),i=c,a=Object.create(null),l=(e,t)=>{let r=a[e]||[];return a[e]=r,r.push(t),()=>r.splice(r.indexOf(t),1)},u=(t,r,s)=>{e.set(t,r);let n=a[t];if(n)for(let e of n)e(r,s)},p=()=>{if(!o.has(e)&&(o.set(e,[s,Object.create(null),Object.create(null),Object.create(null),n,u,l]),!S)){let t=r.initFocus(setTimeout.bind(d,$.bind(d,s,0))),n=r.initReconnect(setTimeout.bind(d,$.bind(d,s,1)));i=()=>{t&&t(),n&&n(),o.delete(e)}}};return p(),[e,n,p,i]}return[e,o.get(e)[4]]},[B,I]=L(new Map),z=m({onLoadingSlow:c,onSuccess:c,onError:c,onErrorRetry:(e,t,r,s,n)=>{let i=r.errorRetryCount,a=n.retryCount,l=~~((Math.random()+.5)*(1<<(a<8?a:8)))*r.errorRetryInterval;(p(i)||!(a>i))&&setTimeout(s,l,n)},onDiscarded:c,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:O?1e4:5e3,focusThrottleInterval:5e3,dedupingInterval:2e3,loadingTimeout:O?5e3:3e3,compare:function e(t,r){var s,n;if(t===r)return!0;if(t&&r&&(s=t.constructor)===r.constructor){if(s===Date)return t.getTime()===r.getTime();if(s===RegExp)return t.toString()===r.toString();if(s===Array){if((n=t.length)===r.length)for(;n--&&e(t[n],r[n]););return -1===n}if(!s||"object"==typeof t){for(s in n=0,t)if(l.call(t,s)&&++n&&!l.call(r,s)||!(s in r)||!e(t[s],r[s]))return!1;return Object.keys(r).length===n}}return t!=t&&r!=r},isPaused:()=>!1,cache:B,mutate:I,fallback:{}},{isOnline:()=>j,isVisible:()=>{let e=b&&document.visibilityState;return p(e)||"hidden"!==e}}),W=(e,t)=>{let r=m(e,t);if(t){let{use:s,fallback:n}=e,{use:i,fallback:a}=t;s&&i&&(r.use=s.concat(i)),n&&a&&(r.fallback=m(n,a))}return r},q=(0,s.createContext)({});var U=e.i(89601);let H=g&&window.__SWR_DEVTOOLS_USE__,G=(H?window.__SWR_DEVTOOLS_USE__:[]).concat(e=>(t,r,s)=>{let n=r&&((...e)=>{let[s]=_(t),[,,,n]=o.get(B);if(s.startsWith("$inf$"))return r(...e);let i=n[s];return p(i)?r(...e):(delete n[s],i)});return e(t,n,s)});H&&(window.__SWR_DEVTOOLS_REACT__=s.default);let J=()=>{},K=J(),Z=(new WeakMap,s.default.use||(e=>{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e}})),Q={dedupe:!0},X=Promise.resolve(d);u.defineProperty(e=>{let{value:t}=e,r=(0,s.useContext)(q),n="function"==typeof t,i=(0,s.useMemo)(()=>n?t(r):t,[n,r,t]),a=(0,s.useMemo)(()=>n?i:W(r,i),[n,r,i]),l=i&&i.provider,o=(0,s.useRef)(d);l&&!o.current&&(o.current=L(l(a.cache||B),i));let c=o.current;return c&&(a.cache=c[0],a.mutate=c[1]),T(()=>{if(c)return c[2]&&c[2](),c[3]},[]),(0,s.createElement)(q.Provider,m(e,{value:a}))},"defaultValue",{value:z});let Y=(t=(e,t,r)=>{let{cache:n,compare:i,suspense:l,fallbackData:c,revalidateOnMount:u,revalidateIfStale:f,refreshInterval:h,refreshWhenHidden:b,refreshWhenOffline:y,keepPreviousData:j}=r,[w,N,k,C]=o.get(n),[O,R]=_(e),A=(0,s.useRef)(!1),D=(0,s.useRef)(!1),P=(0,s.useRef)(O),F=(0,s.useRef)(t),$=(0,s.useRef)(r),L=()=>$.current.isVisible()&&$.current.isOnline(),[B,I,z,W]=v(n,O),q=(0,s.useRef)({}).current,H=p(c)?p(r.fallback)?d:r.fallback[O]:c,G=(e,t)=>{for(let r in q)if("data"===r){if(!i(e[r],t[r])&&(!p(e[r])||!i(ei,t[r])))return!1}else if(t[r]!==e[r])return!1;return!0},J=(0,s.useMemo)(()=>{let e=!!O&&!!t&&(p(u)?!$.current.isPaused()&&!l&&!1!==f:u),r=t=>{let r=m(t);return(delete r._k,e)?{isValidating:!0,isLoading:!0,...r}:r},s=B(),n=W(),i=r(s),a=s===n?i:r(n),o=i;return[()=>{let e=r(B());return G(e,o)?(o.data=e.data,o.isLoading=e.isLoading,o.isValidating=e.isValidating,o.error=e.error,o):(o=e,e)},()=>a]},[n,O]),K=(0,a.useSyncExternalStore)((0,s.useCallback)(e=>z(O,(t,r)=>{G(r,t)||e()}),[n,O]),J[0],J[1]),Y=!A.current,ee=w[O]&&w[O].length>0,et=K.data,er=p(et)?H&&"function"==typeof H.then?Z(H):H:et,es=K.error,en=(0,s.useRef)(er),ei=j?p(et)?p(en.current)?er:en.current:et:er,ea=(!ee||!!p(es))&&(Y&&!p(u)?u:!$.current.isPaused()&&(l?!p(er)&&f:p(er)||f)),el=!!(O&&t&&Y&&ea),eo=p(K.isValidating)?el:K.isValidating,ec=p(K.isLoading)?el:K.isLoading,ed=(0,s.useCallback)(async e=>{let t,s,n=F.current;if(!O||!n||D.current||$.current.isPaused())return!1;let a=!0,l=e||{},o=!k[O]||!l.dedupe,c=()=>E?!D.current&&O===P.current&&A.current:O===P.current,u={isValidating:!1,isLoading:!1},m=()=>{I(u)},f=()=>{let e=k[O];e&&e[1]===s&&delete k[O]},h={isValidating:!0};p(B().data)&&(h.isLoading=!0);try{if(o&&(I(h),r.loadingTimeout&&p(B().data)&&setTimeout(()=>{a&&c()&&$.current.onLoadingSlow(O,r)},r.loadingTimeout),k[O]=[n(R),V()]),[t,s]=k[O],t=await t,o&&setTimeout(f,r.dedupingInterval),!k[O]||k[O][1]!==s)return o&&c()&&$.current.onDiscarded(O),!1;u.error=d;let e=N[O];if(!p(e)&&(s<=e[0]||s<=e[1]||0===e[1]))return m(),o&&c()&&$.current.onDiscarded(O),!1;let l=B().data;u.data=i(l,t)?l:t,o&&c()&&$.current.onSuccess(t,O,r)}catch(r){f();let e=$.current,{shouldRetryOnError:t}=e;!e.isPaused()&&(u.error=r,o&&c())&&(e.onError(r,O,e),(!0===t||"function"==typeof t&&t(r))&&(!$.current.revalidateOnFocus||!$.current.revalidateOnReconnect||L())&&e.onErrorRetry(r,O,e,e=>{let t=w[O];t&&t[0]&&t[0](U.ERROR_REVALIDATE_EVENT,e)},{retryCount:(l.retryCount||0)+1,dedupe:!0}))}return a=!1,m(),!0},[O,n]),eu=(0,s.useCallback)((...e)=>M(n,P.current,...e),[]);if(T(()=>{F.current=t,$.current=r,p(et)||(en.current=et)}),T(()=>{var e;let t;if(!O)return;let r=ed.bind(d,Q),s=0;$.current.revalidateOnFocus&&(s=Date.now()+$.current.focusThrottleInterval);let n=(e=(e,t={})=>{if(e==U.FOCUS_EVENT){let e=Date.now();$.current.revalidateOnFocus&&e>s&&L()&&(s=e+$.current.focusThrottleInterval,r())}else if(e==U.RECONNECT_EVENT)$.current.revalidateOnReconnect&&L()&&r();else if(e==U.MUTATE_EVENT)return ed();else if(e==U.ERROR_REVALIDATE_EVENT)return ed(t)},(t=w[O]||(w[O]=[])).push(e),()=>{let r=t.indexOf(e);r>=0&&(t[r]=t[t.length-1],t.pop())});if(D.current=!1,P.current=O,A.current=!0,I({_k:R}),ea&&!k[O])if(p(er)||S)r();else g&&typeof window.requestAnimationFrame!=x?window.requestAnimationFrame(r):setTimeout(r,1);return()=>{D.current=!0,n()}},[O]),T(()=>{let e;function t(){let t="function"==typeof h?h(B().data):h;t&&-1!==e&&(e=setTimeout(r,t))}function r(){!B().error&&(b||$.current.isVisible())&&(y||$.current.isOnline())?ed(Q).then(t):t()}return t(),()=>{e&&(clearTimeout(e),e=-1)}},[h,b,y,O]),(0,s.useDebugValue)(ei),l){let e=O&&p(er);if(!E&&S&&e)throw Error("Fallback data is required when using Suspense in SSR.");e&&(F.current=t,$.current=r,D.current=!1);let s=C[O];if(Z(!p(s)&&e?eu(s):X),!p(es)&&e)throw es;let n=e?ed(Q):X;!p(ei)&&e&&(n.status="fulfilled",n.value=!0),Z(n)}return{mutate:eu,get data(){return q.data=!0,ei},get error(){return q.error=!0,es},get isValidating(){return q.isValidating=!0,eo},get isLoading(){return q.isLoading=!0,ec}}},function(...e){let r,n=(r=(0,s.useContext)(q),(0,s.useMemo)(()=>m(z,r),[r])),[i,a,l]="function"==typeof e[1]?[e[0],e[1],e[2]||{}]:[e[0],null,(null===e[1]?e[2]:e[1])||{}],o=W(n,l),c=t,{use:d}=o,u=(d||[]).concat(G);for(let e=u.length;e--;)c=u[e](c);return c(i,a||o.fetcher||null,o)});var ee=e.i(603921),et=e.i(812878),er=e.i(188168),es=e.i(237545),en=e.i(323490),ei=e.i(235893),ea=e.i(40843),el=e.i(75364),eo=e.i(196812),ec=e.i(490225),ed=e.i(443991),eu=e.i(145878),ep=e.i(632137);function em({createdAt:e,updatedAt:t,completedAt:s,status:n,className:i}){let a=[];return(e&&a.push({label:"Created",date:e,isActive:!0,isFuture:!1,icon:ea.Clock,color:"text-blue-600"}),"in-progress"===n||"complete"===n||"archived"===n?a.push({label:"In Progress",date:t||e,isActive:!0,isFuture:!1,icon:el.PlayCircle,color:"text-orange-600"}):a.push({label:"In Progress",date:null,isActive:!1,isFuture:!0,icon:ed.Circle,color:"text-muted-foreground"}),"complete"===n||"archived"===n?a.push({label:"Complete",date:s||t,isActive:!0,isFuture:!1,icon:eo.CheckCircle2,color:"text-green-600"}):a.push({label:"Complete",date:null,isActive:!1,isFuture:!0,icon:ed.Circle,color:"text-muted-foreground"}),"archived"===n&&a.push({label:"Archived",date:t,isActive:!0,isFuture:!1,icon:ec.Archive,color:"text-gray-600"}),0===a.length)?null:(0,r.jsx)("div",{className:(0,ep.cn)("flex items-start gap-2",i),children:a.map((e,t)=>{let s=e.icon,n=t===a.length-1,i=n?null:a[t+1],l=e.date&&i?.date&&!i.isFuture?(0,eu.formatDuration)(e.date,i.date):"";return(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-1",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center gap-1 min-w-0",children:[(0,r.jsx)("div",{className:(0,ep.cn)("w-8 h-8 rounded-full border-2 bg-background flex items-center justify-center shrink-0",e.isActive&&!e.isFuture?"border-primary":"border-muted-foreground/40"),children:s&&(0,r.jsx)(s,{className:(0,ep.cn)("h-4 w-4",e.isActive&&!e.isFuture?"text-primary":"text-muted-foreground/60")})}),(0,r.jsx)("div",{className:(0,ep.cn)("text-xs font-medium text-center whitespace-nowrap",e.isActive&&!e.isFuture?"text-foreground":"text-muted-foreground"),children:e.label}),(0,r.jsxs)("div",{className:"text-[10px] text-center min-h-[14px]",children:[e.date&&!e.isFuture&&(0,r.jsx)("span",{className:"text-muted-foreground",children:(0,eu.formatRelativeTime)(e.date)}),!e.date&&e.isFuture&&(0,r.jsx)("span",{className:"text-muted-foreground/70",children:"Awaiting start"}),e.date&&e.isFuture&&(0,r.jsx)("span",{className:"text-muted-foreground/70",children:"Queued"}),!e.date&&!e.isFuture&&(0,r.jsx)("span",{className:"text-muted-foreground/60",children:"Pending update"})]})]}),!n&&(0,r.jsxs)("div",{className:"flex flex-col items-center flex-1 min-w-4 gap-0.5",children:[(0,r.jsx)("div",{className:(0,ep.cn)("h-0.5 w-full",e.isActive&&!e.isFuture?"bg-primary":"bg-muted-foreground/40")}),l&&(0,r.jsx)("div",{className:"text-[10px] text-muted-foreground font-medium whitespace-nowrap",children:l})]})]},t)})})}var ef=e.i(168497),eh=e.i(597705),ex=e.i(987985);function eg({href:e,children:t,currentSpecNumber:s,projectId:n,...i}){if(!e)return(0,r.jsx)("a",{...i,children:t});let a=function(e,t,r){if(e.startsWith("#")||e.startsWith("http://")||e.startsWith("https://"))return e;let s=(e,t)=>{let s=r?`/projects/${r}/specs/${e}`:`/specs/${e}`;return t?`${s}?subspec=${t}`:s},n=e.match(/^\.\/([^/]+\.md)$/);if(n&&t){let e=n[1];return"README.md"!==e?s(t,e):s(t)}let i=e.match(/^\.\.\/(\d+)-[^/]+\/?([^/]+\.md)?$/);if(i){let e=parseInt(i[1],10),t=i[2];return t&&"README.md"!==t?s(e,t):s(e)}return e}(e,s,n),l=a.startsWith("http://")||a.startsWith("https://"),o=a.startsWith("#");return l||o?(0,r.jsx)("a",{href:a,...i,target:l?"_blank":void 0,rel:l?"noopener noreferrer":void 0,children:t}):(0,r.jsx)(ex.default,{href:a,...i,className:"text-primary hover:underline",children:t})}var eb=e.i(998489),ey=e.i(656756),ev=e.i(35380),ej=e.i(910338),ew=e.i(555141),eN=e.i(252294),ek=e.i(771864);let eE="#f59e0b",eS="#ef4444",eT={current:"border-primary/70 bg-primary/5 text-foreground",precedence:"border-amber-400/70 bg-amber-400/10 text-amber-900 dark:text-amber-200","required-by":"border-red-400/70 bg-red-400/10 text-red-900 dark:text-red-200"},eC={rankdir:"LR",align:"UL",nodesep:60,ranksep:120,marginx:40,marginy:40},eO=s.memo(function({data:e}){return(0,r.jsxs)("div",{className:(0,ep.cn)("flex w-[280px] flex-col gap-1.5 rounded-xl border-2 px-5 py-4 text-base shadow-md transition-colors",eT[e.tone],e.interactive&&"cursor-pointer hover:border-primary/70 hover:shadow-lg"),children:[(0,r.jsx)(ek.Handle,{type:"target",position:ek.Position.Left,className:"opacity-0"}),(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/70",children:e.badge}),(0,r.jsx)("span",{className:"text-base font-semibold leading-snug",children:e.label}),e.subtitle&&(0,r.jsx)("span",{className:"text-sm text-muted-foreground/80",children:e.subtitle}),(0,r.jsx)(ek.Handle,{type:"source",position:ek.Position.Right,className:"opacity-0"})]})});eO.displayName="SpecNode";let eR={specNode:eO};function eA(e){let t=e.trim();if(!t)return"Unknown Spec";let r=t.match(/^(\d+)[-_]?(.*)$/);if(!r)return t;let s=r[1].padStart(3,"0"),n=r[2]?.replace(/[-_]/g," ").trim();return n?`#${s} ${n}`:`#${s}`}function eD(e,t){let r=e.trim(),s=r.match(/^(\d+)/),n=s?parseInt(s[1],10):r;return t?`/projects/${t}/specs/${n}`:`/specs/${n}`}function eP(e,t,r){return`${e}-${r}-${t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-")||r}`}function e_({relationships:e,specNumber:t,specTitle:n,projectId:a}){let l=(0,i.useRouter)(),[o,c]=s.useState(null),d=s.useMemo(()=>{let r,s,i,l;return r=[],s=[],i={id:"current-spec",type:"specNode",data:{label:t?`#${t.toString().padStart(3,"0")} ${n}`:n,badge:"Current Spec",subtitle:"This spec",tone:"current",interactive:!1},position:{x:0,y:0},draggable:!1,selectable:!1,sourcePosition:ek.Position.Right,targetPosition:ek.Position.Left},r.push(i),e.dependsOn?.forEach((e,t)=>{let n=eP("precedence",e,t);r.push({id:n,type:"specNode",data:{label:eA(e),badge:"Depends On",subtitle:"Must complete first",tone:"precedence",href:eD(e,a),interactive:!0},position:{x:0,y:0},draggable:!1,selectable:!0,sourcePosition:ek.Position.Right,targetPosition:ek.Position.Left}),s.push({id:`edge-${n}-current`,source:n,target:i.id,type:"smoothstep",markerEnd:{type:ek.MarkerType.ArrowClosed,color:eE,width:28,height:28},style:{stroke:eE,strokeWidth:3}})}),e.requiredBy?.forEach((e,t)=>{let n=eP("required-by",e,t);r.push({id:n,type:"specNode",data:{label:eA(e),badge:"Required By",subtitle:"Blocked by this spec",tone:"required-by",href:eD(e,a),interactive:!0},position:{x:0,y:0},draggable:!1,selectable:!0,sourcePosition:ek.Position.Right,targetPosition:ek.Position.Left}),s.push({id:`edge-current-${n}`,source:i.id,target:n,type:"smoothstep",markerEnd:{type:ek.MarkerType.ArrowClosed,color:eS,width:28,height:28},style:{stroke:eS,strokeWidth:3}})}),(l=new ev.default.graphlib.Graph).setGraph(eC),l.setDefaultEdgeLabel(()=>({})),r.forEach(e=>{l.setNode(e.id,{width:280,height:110})}),s.forEach(e=>{l.setEdge(e.source,e.target)}),ev.default.layout(l),{nodes:r.map(e=>{let{x:t,y:r}=l.node(e.id);return{...e,position:{x:t-140,y:r-55}}}),edges:s}},[e,t,n,a]),u=s.useCallback(e=>{c(e),requestAnimationFrame(()=>{e.fitView({padding:.4,duration:350})})},[]);s.useEffect(()=>{o&&o.fitView({padding:.4,duration:350})},[o,d.nodes]);let p=s.useCallback((e,t)=>{!t?.data||t.data.href&&l.push(t.data.href)},[l]);return(0,r.jsxs)("div",{className:"flex h-full flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 text-sm text-muted-foreground",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs font-semibold uppercase tracking-wide",children:"Dependency Map"}),(0,r.jsx)("p",{className:"text-base text-foreground",children:"Explore precedence and connected work"})]}),(0,r.jsx)("div",{className:"rounded-full border border-border px-3 py-1.5 text-sm font-medium uppercase tracking-wide",children:"React Flow DAG"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-hidden rounded-2xl border border-border bg-muted/30",children:(0,r.jsxs)(ej.default,{nodes:d.nodes,edges:d.edges,nodeTypes:eR,onInit:u,className:"h-full w-full",fitView:!0,proOptions:{hideAttribution:!0},nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,panOnScroll:!0,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,minZoom:.4,maxZoom:1.6,onNodeClick:p,children:[(0,r.jsx)(ew.Background,{gap:24,size:1,color:"rgba(148, 163, 184, 0.3)"}),(0,r.jsx)(eN.Controls,{showInteractive:!1})]})}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-4 text-sm text-muted-foreground",children:[(0,r.jsxs)("span",{className:"inline-flex items-center gap-2 font-medium",children:[(0,r.jsx)("span",{className:"inline-block h-2.5 w-8 rounded-full bg-amber-400/80"}),"Depends On → blocks until complete"]}),(0,r.jsxs)("span",{className:"inline-flex items-center gap-2 font-medium",children:[(0,r.jsx)("span",{className:"inline-block h-2.5 w-8 rounded-full bg-red-400/80"}),"Required By ← blocked by this spec"]}),(0,r.jsxs)("span",{className:"inline-flex items-center gap-2 font-medium",children:[(0,r.jsx)("span",{className:"inline-block h-2.5 w-8 rounded-full bg-sky-400/80"}),"Related ↔ connected work (bidirectional)"]}),(0,r.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,r.jsx)("span",{className:"inline-block h-2.5 w-8 rounded-full bg-primary/60"}),"Drag to pan • Scroll / pinch to zoom."]})]})]})}var eF=e.i(715683),eV=e.i(439779),eM=e.i(20648),e$=e.i(20315),eL=e.i(122436);let eB=(0,eL.default)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]),eI=(0,eL.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),ez=(0,eL.default)("test-tube",[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]]),eW=(0,eL.default)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),eq=(0,eL.default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]),eU=(0,eL.default)("map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);var eH=e.i(730885),eG=e.i(497332),eJ=e.i(296026),eK=e.i(635389),eZ=e.i(340982),eQ=e.i(522764),eX=e.i(765213),eY=e.i(446207);let e0=()=>e=>{(0,eY.visit)(e,"html",e=>{"string"==typeof e.value&&e.value.trim().startsWith("<!--")&&(e.value="")})},e1={FileText:e$.FileText,Palette:eB,Code:eI,TestTube:ez,CheckSquare:eW,Wrench:eq,Map:eU,GitBranch:eH.GitBranch,Home:eG.Home,TrendingUp:eJ.TrendingUp},e2=e=>fetch(e).then(e=>{if(!e.ok)throw Error(`HTTP error! status: ${e.status}`);return e.json()});function e5({initialSpec:e,initialSubSpec:t,isFocusMode:n=!1,onToggleFocusMode:a}){let l=(0,i.useRouter)(),o=(0,i.useSearchParams)().get("subspec")||t,[c,d]=s.useState(!1),[u,p]=s.useState(!1),{getSpecUrl:m,projectId:f}=(0,eM.useProjectUrl)(),h=f?`/api/projects/${f}/specs/${e.specNumber||e.id}`:`/api/specs/${e.specNumber||e.id}`,x=f?`/api/projects/${f}/specs/${e.specNumber||e.id}/dependency-graph`:`/api/specs/${e.specNumber||e.id}/dependency-graph`,{data:g,error:b,isLoading:y}=Y(h,e2,{fallbackData:{spec:e},revalidateOnFocus:!1,dedupingInterval:5e3}),{data:v}=Y(u?x:null,e2,{revalidateOnFocus:!1,dedupingInterval:6e4}),j=g?.spec||e,w=s.useMemo(()=>j.tags||[],[j.tags]),N=j.updatedAt?(0,eu.formatRelativeTime)(j.updatedAt):"N/A",k=j.relationships,E=v?{dependsOn:v.dependsOn.map(e=>e.specName),requiredBy:v.requiredBy.map(e=>e.specName)}:k,S=!!(k&&((k.dependsOn?.length??0)>0||(k.requiredBy?.length??0)>0));s.useEffect(()=>{S||p(!1)},[S]);let T=(0,ep.extractH1Title)(j.contentMd)||j.title||j.specName,C=j.contentMd;if(o&&j.subSpecs){let e=j.subSpecs.find(e=>e.file===o);e&&(C=e.content)}let O=e=>e?new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):"N/A",R=e=>{let t=e?m(j.specNumber||j.id,e):m(j.specNumber||j.id);l.push(t,{scroll:!1})},A=s.useRef(null);return s.useEffect(()=>{let e=()=>{let e=56;window.innerWidth>=1024&&A.current&&(e+=A.current.offsetHeight-56),document.documentElement.style.scrollPaddingTop=`${e}px`};e(),window.addEventListener("resize",e);let t=new ResizeObserver(e);return A.current&&t.observe(A.current),()=>{window.removeEventListener("resize",e),t.disconnect(),document.documentElement.style.scrollPaddingTop=""}},[j,w]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("header",{ref:A,className:"lg:sticky lg:top-14 lg:z-20 border-b bg-card",children:[(0,r.jsx)("div",{className:(0,ep.cn)("px-3 sm:px-6",n?"py-1.5":"py-2 sm:py-3"),children:n?(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,r.jsxs)("h1",{className:"text-base font-semibold tracking-tight truncate",children:[j.specNumber&&(0,r.jsxs)("span",{className:"text-muted-foreground",children:["#",j.specNumber.toString().padStart(3,"0")," "]}),T]}),(0,r.jsx)(ef.StatusBadge,{status:j.status||"planned"}),(0,r.jsx)(eh.PriorityBadge,{priority:j.priority||"medium"})]}),(0,r.jsx)(ei.Button,{type:"button",variant:"ghost",size:"sm",onClick:a,className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground shrink-0",title:"Exit focus mode",children:(0,r.jsx)(eZ.Minimize2,{className:"h-4 w-4"})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-1.5 sm:mb-2",children:[(0,r.jsxs)("h1",{className:"text-lg sm:text-xl font-bold tracking-tight",children:[j.specNumber&&(0,r.jsxs)("span",{className:"text-muted-foreground",children:["#",j.specNumber.toString().padStart(3,"0")," "]}),T]}),(0,r.jsxs)(ei.Button,{variant:"ghost",size:"icon",className:"lg:hidden h-8 w-8 -mr-2 shrink-0 text-muted-foreground",onClick:()=>{window.toggleSpecsSidebar&&window.toggleSpecsSidebar()},children:[(0,r.jsx)(eQ.List,{className:"h-5 w-5"}),(0,r.jsx)("span",{className:"sr-only",children:"Toggle specs list"})]})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(ef.StatusBadge,{status:j.status||"planned"}),(0,r.jsx)(eh.PriorityBadge,{priority:j.priority||"medium"}),w.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"h-4 w-px bg-border mx-1 hidden sm:block"}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-1",children:[w.slice(0,5).map(e=>(0,r.jsx)(en.Badge,{variant:"secondary",className:"text-xs",children:e},e)),w.length>5&&(0,r.jsxs)(en.Badge,{variant:"secondary",className:"text-xs",children:["+",w.length-5," more"]})]})]})]}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2 sm:gap-4 text-xs text-muted-foreground mt-1.5 sm:mt-2",children:[(0,r.jsxs)("span",{className:"hidden sm:inline",children:["Created: ",O(j.createdAt)]}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"•"}),(0,r.jsxs)("span",{children:["Updated: ",O(j.updatedAt),j.updatedAt&&(0,r.jsxs)("span",{className:"ml-1 text-[11px] text-muted-foreground/80",children:["(",N,")"]})]}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"•"}),(0,r.jsxs)("span",{className:"hidden md:inline",children:["Name: ",j.specName]}),j.assignee&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"hidden sm:inline",children:"•"}),(0,r.jsxs)("span",{className:"hidden sm:inline",children:["Assignee: ",j.assignee]})]})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-2",children:[(0,r.jsxs)(eV.Dialog,{open:c,onOpenChange:d,children:[(0,r.jsxs)(ei.Button,{type:"button",variant:"outline",size:"sm","aria-haspopup":"dialog","aria-expanded":c,onClick:()=>d(!0),className:"h-8 rounded-full border px-3 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",children:[(0,r.jsx)(ea.Clock,{className:"mr-1.5 h-3.5 w-3.5"}),"View Timeline",(0,r.jsx)(eK.Maximize2,{className:"ml-1.5 h-3.5 w-3.5"})]}),(0,r.jsxs)(eV.DialogContent,{className:"w-[min(900px,90vw)] max-w-3xl max-h-[90vh] overflow-y-auto",children:[(0,r.jsxs)(eV.DialogHeader,{children:[(0,r.jsx)(eV.DialogTitle,{children:"Spec Timeline"}),(0,r.jsx)(eV.DialogDescription,{children:"Created, updated, and completion milestones."})]}),(0,r.jsx)("div",{className:"rounded-xl border border-border bg-muted/30 p-4",children:(0,r.jsx)(em,{createdAt:j.createdAt,updatedAt:j.updatedAt,completedAt:j.completedAt,status:j.status||"planned"})})]})]}),(0,r.jsxs)(eV.Dialog,{open:u,onOpenChange:p,children:[(0,r.jsxs)(ei.Button,{type:"button",variant:"outline",size:"sm","aria-haspopup":"dialog","aria-expanded":u,onClick:()=>p(!0),disabled:!S,className:(0,ep.cn)("h-8 rounded-full border px-3 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",!S&&"cursor-not-allowed opacity-50"),children:[(0,r.jsx)(eH.GitBranch,{className:"mr-1.5 h-3.5 w-3.5"}),"View Dependencies",(0,r.jsx)(eK.Maximize2,{className:"ml-1.5 h-3.5 w-3.5"})]}),(0,r.jsxs)(eV.DialogContent,{className:"flex h-[85vh] w-[min(1200px,95vw)] max-w-6xl flex-col gap-4 overflow-hidden",children:[(0,r.jsxs)(eV.DialogHeader,{children:[(0,r.jsx)(eV.DialogTitle,{children:"Dependency Graph"}),(0,r.jsxs)(eV.DialogDescription,{className:"flex flex-col gap-2",children:[(0,r.jsx)("span",{children:"Precedence requirements and connected specs rendered with automatic layout."}),(0,r.jsxs)(ex.default,{href:`/dependencies?spec=${j.specNumber||j.id}`,className:"inline-flex items-center gap-1.5 text-xs text-primary hover:underline w-fit",onClick:()=>p(!1),children:[(0,r.jsx)(eX.ExternalLink,{className:"h-3 w-3"}),"View in full dependencies page"]})]})]}),(0,r.jsx)("div",{className:"min-h-0 flex-1",children:E&&(0,r.jsx)(e_,{relationships:E,specNumber:j.specNumber,specTitle:T,projectId:f})})]})]}),a&&(0,r.jsxs)(ei.Button,{type:"button",variant:"outline",size:"sm",onClick:a,className:"hidden lg:inline-flex h-8 rounded-full border px-3 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground",title:"Enter focus mode",children:[(0,r.jsx)(eK.Maximize2,{className:"mr-1.5 h-3.5 w-3.5"}),"Focus"]})]})]})}),j.subSpecs&&j.subSpecs.length>0&&(0,r.jsx)("div",{className:"border-t bg-muted/30",children:(0,r.jsx)("div",{className:"px-3 sm:px-6 overflow-x-auto",children:(0,r.jsxs)("div",{className:"flex gap-1 py-2 min-w-max",children:[(0,r.jsxs)("button",{onClick:()=>R(null),className:`flex items-center gap-2 px-3 sm:px-4 py-2 text-xs sm:text-sm font-medium rounded-md whitespace-nowrap transition-colors ${!o?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(eG.Home,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"Overview"})]}),j.subSpecs.map(e=>{let t=e1[e.iconName]||e$.FileText;return(0,r.jsxs)("button",{onClick:()=>R(e.file),className:`flex items-center gap-2 px-3 sm:px-4 py-2 text-xs sm:text-sm font-medium rounded-md whitespace-nowrap transition-colors ${o===e.file?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(t,{className:`h-4 w-4 ${e.color}`}),(0,r.jsx)("span",{className:"hidden sm:inline",children:e.name})]},e.file)})]})})})]}),(0,r.jsxs)("div",{className:"flex flex-col xl:flex-row xl:items-start",children:[(0,r.jsx)("main",{className:"flex-1 px-3 sm:px-6 py-3 sm:py-6 min-w-0",children:(0,r.jsxs)("div",{className:"space-y-4",children:[y&&(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:"Loading..."}),b&&(0,r.jsx)("div",{className:"text-sm text-destructive",children:"Error loading spec"}),(0,r.jsx)("article",{className:"prose prose-slate dark:prose-invert max-w-none prose-sm sm:prose-base",children:(0,r.jsx)(ee.default,{remarkPlugins:[et.default,e0],rehypePlugins:[er.default,es.default],components:{a:e=>(0,r.jsx)(eg,{...e,currentSpecNumber:j.specNumber||void 0,projectId:f}),pre:({children:e,...t})=>{let n=s.Children.toArray(e)[0];if(s.isValidElement(n)&&"code"===n.type&&"string"==typeof n.props.className&&n.props.className?.includes("language-mermaid")){let e=n.props,t="string"==typeof e.children?e.children:"";return(0,r.jsx)(eF.MermaidDiagram,{code:t})}return(0,r.jsx)("pre",{...t,children:e})}},children:C})})]})}),(0,r.jsx)("aside",{className:"hidden xl:block w-72 shrink-0 px-6 py-6 sticky top-32 h-[calc(100vh-8rem)] overflow-y-auto scrollbar-auto-hide",children:(0,r.jsx)(eb.TableOfContentsSidebar,{content:C})})]}),(0,r.jsx)("div",{className:"xl:hidden",children:(0,r.jsx)(eb.TableOfContents,{content:C})}),(0,r.jsx)(ey.BackToTop,{})]})}var e3=e.i(293821);function e4({spec:e,allSpecs:t,currentSubSpec:i}){let[a,l]=s.useState(()=>"true"===localStorage.getItem("spec-detail-focus-mode")),o=s.useCallback(()=>{l(e=>{let t=!e;return localStorage.setItem("spec-detail-focus-mode",String(t)),t})},[]),c=s.useMemo(()=>t.map(e=>({id:e.id,specNumber:e.specNumber,title:e.title,specName:e.specName,status:e.status,priority:e.priority,tags:e.tags,updatedAt:e.updatedAt,subSpecsCount:"subSpecsCount"in e?e.subSpecsCount:void 0})),[t]);s.useEffect(()=>{(0,e3.primeSpecsSidebar)(c)},[c]),s.useEffect(()=>{(0,e3.setActiveSidebarSpec)(e.id)},[e.id]);let d=s.useCallback(e=>{fetch(`/api/specs/${e}`).catch(()=>{})},[]);return(0,r.jsxs)("div",{className:"flex min-h-[calc(100vh-3.5rem)] w-full min-w-0",children:[(0,r.jsx)(n.SpecsNavSidebar,{initialSpecs:c,currentSpecId:e.id,currentSubSpec:i,onSpecHover:d,className:(0,ep.cn)(a&&"hidden")}),(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)(e5,{initialSpec:e,initialSubSpec:i,isFocusMode:a,onToggleFocusMode:o})})]})}e.s(["SpecDetailWrapper",()=>e4],918412)}]);