@leanspec/ui 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
- package/.next/standalone/packages/ui/.next/routes-manifest.json +88 -0
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +23 -26
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +1 -3
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +1 -2
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -2
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js +6 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -3
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page.js +2 -1
- package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +2 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page.js +2 -1
- package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +5 -5
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +6 -5
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +5 -4
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js +5 -4
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -25
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -25
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +20 -24
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/chunks/284a8_app_api_projects_[id]_specs_[spec]_dependency-graph_route_actions_f18476ed.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_dependencies_route_actions_7ac49581.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_context_route_actions_96adca70.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_tags_route_actions_40899744.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_validate_route_actions_b60372c9.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_metadata_route_actions_139bb09f.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[externals]_better-sqlite3_a1cc22cb._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0afcada7._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0e63a440._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0ec6f9b0._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0edb782a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__38780e00._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a535244._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__41f43652._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5081ac6f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__526764b2._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5f1e0195._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__74af400b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9cf3bf21._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c7a4906b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__de15d2aa._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e16f7651._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2fcb5c6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e8d9903e._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f6936b89._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_metadata_route_actions_35af9a8c.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_tags_route_actions_64625b2c.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_b8c1af87._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +72 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_context_page_actions_e4940a48.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_stats_page_actions_82a85203.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__174e1ca1._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__212c8580._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2b66bcca._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__a965a67b._.js → [root-of-the-server]__2d9202e8._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__312221a2._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__338c65fe._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__46b71f61._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__665ae766._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a34731d8._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__12b4eb41._.js → [root-of-the-server]__b0d6e2ad._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c158c9a9._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c7735439._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dcee62dd._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e2c760eb._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_39562b2a._.js → _170362f4._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_1a642e67._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_adb9d7cb._.js → _22274047._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_85effc18._.js → _2bc76f88._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_fdd7780b._.js → _3f059230._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_58b98a8f._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_59616aa6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_5e1484f9._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b303aeea._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_bae6d2b8._.js → _b421ba4a._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_be836d6a._.js +5 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f05260d6._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_dependencies_page_actions_ba2321b8.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_0056f1f2._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_30b0b05a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_478d57e5._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_151891de._.js → node_modules__pnpm_4e3e790c._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_f5b29533._.js → node_modules__pnpm_8680dc29._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_e175b92a._.js → node_modules__pnpm_94a0b1f5._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_1120b57c._.js → node_modules__pnpm_b4ff5c78._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_7791e3b8._.js → node_modules__pnpm_d3262b3d._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_dependencies_dependencies-client_tsx_0e82443a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_layout_tsx_86c2ce0f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
- package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/0c7bbb59865774a1.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/0fe978002ba489fb.js +3 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1169d4ac8f9df687.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
- package/.next/standalone/packages/ui/.next/static/chunks/241b6b1c83610ebf.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
- package/.next/{static/chunks/6d938a49daa10208.js → standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/6d7922838a3513a4.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/781328ee279ffc41.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/840c6743a491a398.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/937cb3894a606899.js +5 -0
- package/.next/standalone/packages/ui/.next/static/chunks/9cf644b700f37825.css +1 -0
- package/.next/{static/chunks/a3d7e1be47de010b.js → standalone/packages/ui/.next/static/chunks/bbd498aa5689c057.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
- package/.next/{static/chunks/979625373d5474b6.js → standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js} +1 -1
- package/.next/{static/chunks/e3bc96a996e2a314.js → standalone/packages/ui/.next/static/chunks/d26f4109b44eb240.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/dbce73f7087f2470.js +10 -0
- package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
- package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +1 -9
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +1 -1
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +3 -7
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +1 -2
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +3 -8
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +259 -73
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +3 -5
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +23 -33
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +3 -7
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +14 -25
- package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
- package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
- package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
- package/.next/standalone/packages/ui/package.json +1 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +4 -67
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/context/route.ts +39 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +20 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +25 -9
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/dependency-graph/route.ts +129 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/metadata/route.ts +170 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +14 -14
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +9 -2
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +9 -8
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/tags/route.ts +25 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/validate/route.ts +49 -0
- package/.next/standalone/packages/ui/src/app/api/projects/route.ts +18 -5
- package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -2
- package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts +0 -15
- package/.next/standalone/packages/ui/src/app/api/specs/[id]/metadata/route.ts +184 -0
- package/.next/standalone/packages/ui/src/app/api/tags/route.ts +16 -0
- package/.next/standalone/packages/ui/src/app/context/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +43 -62
- package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +9 -8
- package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +95 -20
- package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +25 -13
- package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +8 -8
- package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +40 -67
- package/.next/standalone/packages/ui/src/app/page.tsx +24 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/context/page.tsx +41 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +30 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +18 -2
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/stats/page.tsx +24 -0
- package/.next/standalone/packages/ui/src/app/projects/layout.tsx +7 -0
- package/.next/standalone/packages/ui/src/app/projects/page.tsx +375 -107
- package/.next/standalone/packages/ui/src/app/specs/[id]/page.tsx +24 -1
- package/.next/standalone/packages/ui/src/app/specs/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +28 -18
- package/.next/standalone/packages/ui/src/app/stats/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
- package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +3 -5
- package/.next/standalone/packages/ui/src/components/directory-picker.tsx +1 -0
- package/.next/standalone/packages/ui/{dist/standalone/packages/web/src/components/spec-metadata.tsx → src/components/editable-spec-metadata.tsx} +46 -30
- package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +28 -6
- package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
- package/.next/standalone/packages/ui/src/components/priority-editor.tsx +153 -0
- package/.next/standalone/packages/ui/src/components/project-switcher.tsx +74 -10
- package/.next/standalone/packages/ui/src/components/quick-search.tsx +3 -1
- package/.next/standalone/packages/ui/src/components/spec-dependency-graph.tsx +13 -52
- package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +58 -30
- package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +3 -4
- package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +8 -6
- package/.next/standalone/packages/ui/src/components/status-editor.tsx +153 -0
- package/.next/standalone/packages/ui/src/components/tags-editor.tsx +238 -0
- package/.next/standalone/packages/ui/src/components/ui/command.tsx +1 -1
- package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
- package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +230 -40
- package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
- package/.next/standalone/packages/ui/src/lib/projects/registry.ts +1 -1
- package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +21 -5
- package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/chunks/0c7bbb59865774a1.js +1 -0
- package/.next/static/chunks/0fe978002ba489fb.js +3 -0
- package/.next/static/chunks/1169d4ac8f9df687.js +1 -0
- package/.next/static/chunks/1e0689744f87e958.js +2 -0
- package/.next/static/chunks/241b6b1c83610ebf.js +1 -0
- package/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/6d938a49daa10208.js → static/chunks/4610aea3ca2e69eb.js} +1 -1
- package/.next/static/chunks/6d7922838a3513a4.js +1 -0
- package/.next/static/chunks/781328ee279ffc41.js +1 -0
- package/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
- package/.next/static/chunks/840c6743a491a398.js +1 -0
- package/.next/static/chunks/937cb3894a606899.js +5 -0
- package/.next/static/chunks/9cf644b700f37825.css +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/a3d7e1be47de010b.js → static/chunks/bbd498aa5689c057.js} +1 -1
- package/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/979625373d5474b6.js → static/chunks/c26909a25ca9fc9b.js} +1 -1
- package/.next/{standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js → static/chunks/d26f4109b44eb240.js} +1 -1
- package/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
- package/.next/static/chunks/dbce73f7087f2470.js +10 -0
- package/.next/static/chunks/e399b4afc7936907.js +1 -0
- package/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_buildManifest.js +11 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_clientMiddlewareManifest.json +1 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_ssgManifest.js +1 -0
- package/package.json +2 -2
- 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
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b0969111._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +0 -74
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__3c77d95b._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__8608a6fa._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daedd80e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dc176c61._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +0 -5
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8cec504f._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ea899b87._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fe120f8a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_1c916fe3._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/094cf9f4e3553261.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/1d36660b2877d213.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/4d29ca0fa6843070.js +0 -2
- package/.next/standalone/packages/ui/.next/static/chunks/59854b15bf046467.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/5fd8101e32b076b1.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/a33f10af6abef4df.js +0 -10
- package/.next/standalone/packages/ui/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/eeec245955b3b600.js +0 -5
- package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +0 -20
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +0 -59
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +0 -427
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +0 -436
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +0 -20
- package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +0 -10
- package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
- package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +0 -23
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +0 -19
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +0 -63
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -51
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +0 -171
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +0 -36
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +0 -46
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +0 -19
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +0 -162
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +0 -43
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +0 -364
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +0 -43
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +0 -531
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +0 -277
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +0 -70
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +0 -87
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +0 -27
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +0 -5
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +0 -43
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +0 -425
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +0 -283
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +0 -46
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +0 -52
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +0 -175
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +0 -96
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +0 -95
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +0 -210
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +0 -53
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +0 -180
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +0 -119
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +0 -369
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +0 -372
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +0 -42
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +0 -70
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +0 -127
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +0 -186
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +0 -561
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +0 -53
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +0 -143
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +0 -130
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +0 -11
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +0 -37
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +0 -50
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +0 -36
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +0 -110
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +0 -57
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +0 -76
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +0 -153
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +0 -122
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +0 -24
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +0 -159
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +0 -31
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +0 -15
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +0 -55
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +0 -30
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +0 -32
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +0 -76
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +0 -42
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +0 -114
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +0 -123
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +0 -156
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +0 -216
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +0 -105
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +0 -120
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +0 -94
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +0 -249
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +0 -55
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +0 -152
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +0 -171
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +0 -17
- package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +0 -18
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +0 -58
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +0 -34
- package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +0 -14
- package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +0 -332
- package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +0 -339
- package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +0 -399
- package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +0 -525
- package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +0 -387
- package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +0 -613
- package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +0 -266
- package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +0 -100
- package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +0 -172
- package/.next/static/chunks/094cf9f4e3553261.js +0 -1
- package/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
- package/.next/static/chunks/1d36660b2877d213.js +0 -3
- package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
- package/.next/static/chunks/2c85b8059e42248a.js +0 -1
- package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
- package/.next/static/chunks/4d29ca0fa6843070.js +0 -2
- package/.next/static/chunks/59854b15bf046467.js +0 -1
- package/.next/static/chunks/5fd8101e32b076b1.js +0 -1
- package/.next/static/chunks/a33f10af6abef4df.js +0 -10
- package/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
- package/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
- package/.next/static/chunks/eeec245955b3b600.js +0 -5
- /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
- /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
- /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_ssgManifest.js +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/favicon.ico +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/file.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark-white.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/globe.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/icon.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-dark-bg.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-with-bg.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/next.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/vercel.svg +0 -0
- /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/window.svg +0 -0
- /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
- /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
|
@@ -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 d=(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"}]]),c=(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 x=e.i(196812),v=e.i(753938),g=e.i(987985),w=e.i(20648),j=e.i(235893),y=e.i(21079),b=e.i(76075),N=e.i(291967),C=e.i(430406),k=e.i(79014),R=e.i(393136),P=e.i(122925),M=e.i(670465),E=e.i(695587),D=e.i(255235),S=e.i(254440),I=e.i(31007),_=e.i(315599),T=e.i(306839),F=e.i(214260),O=e.i(111052),A=e.i(938657),L="rovingFocusGroup.onEntryFocus",H={bubbles:!1,cancelable:!0},K="RovingFocusGroup",[z,B,G]=(0,M.createCollection)(K),[V,U]=(0,k.createContextScope)(K,[G]),[$,X]=V(K),q=r.forwardRef((e,r)=>(0,t.jsx)(z.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(z.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(W,{...e,ref:r})})}));q.displayName=K;var W=r.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,orientation:o,loop:s=!1,dir:l,currentTabStopId:i,defaultCurrentTabStopId:d,onCurrentTabStopIdChange:c,onEntryFocus:u,preventScrollOnEntryFocus:p=!1,...f}=e,m=r.useRef(null),h=(0,C.useComposedRefs)(n,m),x=(0,E.useDirection)(l),[v,g]=(0,R.useControllableState)({prop:i,defaultProp:d??null,onChange:c,caller:K}),[w,j]=r.useState(!1),y=(0,A.useCallbackRef)(u),b=B(a),k=r.useRef(!1),[M,D]=r.useState(0);return r.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(L,y),()=>e.removeEventListener(L,y)},[y]),(0,t.jsx)($,{scope:a,orientation:o,dir:x,loop:s,currentTabStopId:v,onItemFocus:r.useCallback(e=>g(e),[g]),onItemShiftTab:r.useCallback(()=>j(!0),[]),onFocusableItemAdd:r.useCallback(()=>D(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>D(e=>e-1),[]),children:(0,t.jsx)(P.Primitive.div,{tabIndex:w||0===M?-1:0,"data-orientation":o,...f,ref:h,style:{outline:"none",...e.style},onMouseDown:(0,N.composeEventHandlers)(e.onMouseDown,()=>{k.current=!0}),onFocus:(0,N.composeEventHandlers)(e.onFocus,e=>{let t=!k.current;if(e.target===e.currentTarget&&t&&!w){let t=new CustomEvent(L,H);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=b().filter(e=>e.focusable);Q([e.find(e=>e.active),e.find(e=>e.id===v),...e].filter(Boolean).map(e=>e.ref.current),p)}}k.current=!1}),onBlur:(0,N.composeEventHandlers)(e.onBlur,()=>j(!1))})})}),Y="RovingFocusGroupItem",Z=r.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,focusable:o=!0,active:s=!1,tabStopId:l,children:i,...d}=e,c=(0,_.useId)(),u=l||c,p=X(Y,a),f=p.currentTabStopId===u,m=B(a),{onFocusableItemAdd:h,onFocusableItemRemove:x,currentTabStopId:v}=p;return r.useEffect(()=>{if(o)return h(),()=>x()},[o,h,x]),(0,t.jsx)(z.ItemSlot,{scope:a,id:u,focusable:o,active:s,children:(0,t.jsx)(P.Primitive.span,{tabIndex:f?0:-1,"data-orientation":p.orientation,...d,ref:n,onMouseDown:(0,N.composeEventHandlers)(e.onMouseDown,e=>{o?p.onItemFocus(u):e.preventDefault()}),onFocus:(0,N.composeEventHandlers)(e.onFocus,()=>p.onItemFocus(u)),onKeyDown:(0,N.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 J[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(()=>Q(a))}}),children:"function"==typeof i?i({isCurrentTabStop:f,hasTabStop:null!=v}):i})})});Z.displayName=Y;var J={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Q(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var ee=e.i(665489),et=e.i(73772),er=e.i(97496),en=["Enter"," "],ea=["ArrowUp","PageDown","End"],eo=["ArrowDown","PageUp","Home",...ea],es={ltr:[...en,"ArrowRight"],rtl:[...en,"ArrowLeft"]},el={ltr:["ArrowLeft"],rtl:["ArrowRight"]},ei="Menu",[ed,ec,eu]=(0,M.createCollection)(ei),[ep,ef]=(0,k.createContextScope)(ei,[eu,T.createPopperScope,U]),em=(0,T.createPopperScope)(),eh=U(),[ex,ev]=ep(ei),[eg,ew]=ep(ei),ej=e=>{let{__scopeMenu:n,open:a=!1,children:o,dir:s,onOpenChange:l,modal:i=!0}=e,d=em(n),[c,u]=r.useState(null),p=r.useRef(!1),f=(0,A.useCallbackRef)(l),m=(0,E.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)(T.Root,{...d,children:(0,t.jsx)(ex,{scope:n,open:a,onOpenChange:f,content:c,onContentChange:u,children:(0,t.jsx)(eg,{scope:n,onClose:r.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:p,dir:m,modal:i,children:o})})})};ej.displayName=ei;var ey=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,o=em(n);return(0,t.jsx)(T.Anchor,{...o,...a,ref:r})});ey.displayName="MenuAnchor";var eb="MenuPortal",[eN,eC]=ep(eb,{forceMount:void 0}),ek=e=>{let{__scopeMenu:r,forceMount:n,children:a,container:o}=e,s=ev(eb,r);return(0,t.jsx)(eN,{scope:r,forceMount:n,children:(0,t.jsx)(O.Presence,{present:n||s.open,children:(0,t.jsx)(F.Portal,{asChild:!0,container:o,children:a})})})};ek.displayName=eb;var eR="MenuContent",[eP,eM]=ep(eR),eE=r.forwardRef((e,r)=>{let n=eC(eR,e.__scopeMenu),{forceMount:a=n.forceMount,...o}=e,s=ev(eR,e.__scopeMenu),l=ew(eR,e.__scopeMenu);return(0,t.jsx)(ed.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(O.Presence,{present:a||s.open,children:(0,t.jsx)(ed.Slot,{scope:e.__scopeMenu,children:l.modal?(0,t.jsx)(eD,{...o,ref:r}):(0,t.jsx)(eS,{...o,ref:r})})})})}),eD=r.forwardRef((e,n)=>{let a=ev(eR,e.__scopeMenu),o=r.useRef(null),s=(0,C.useComposedRefs)(n,o);return r.useEffect(()=>{let e=o.current;if(e)return(0,et.hideOthers)(e)},[]),(0,t.jsx)(e_,{...e,ref:s,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:(0,N.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),eS=r.forwardRef((e,r)=>{let n=ev(eR,e.__scopeMenu);return(0,t.jsx)(e_,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),eI=(0,ee.createSlot)("MenuContent.ScrollLock"),e_=r.forwardRef((e,n)=>{let{__scopeMenu:a,loop:o=!1,trapFocus:s,onOpenAutoFocus:l,onCloseAutoFocus:i,disableOutsidePointerEvents:d,onEntryFocus:c,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:h,disableOutsideScroll:x,...v}=e,g=ev(eR,a),w=ew(eR,a),j=em(a),y=eh(a),b=ec(a),[k,R]=r.useState(null),P=r.useRef(null),M=(0,C.useComposedRefs)(n,P,g.onContentChange),E=r.useRef(0),_=r.useRef(""),F=r.useRef(0),O=r.useRef(null),A=r.useRef("right"),L=r.useRef(0),H=x?er.RemoveScroll:r.Fragment;r.useEffect(()=>()=>window.clearTimeout(E.current),[]),(0,S.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,d=s.y,c=l.x,u=l.y;d>n!=u>n&&r<(c-i)*(n-d)/(u-d)+i&&(a=!a)}return a}({x:t.clientX,y:t.clientY},r))},[]);return(0,t.jsx)(eP,{scope:a,searchRef:_,onItemEnter:r.useCallback(e=>{K(e)&&e.preventDefault()},[K]),onItemLeave:r.useCallback(e=>{K(e)||(P.current?.focus(),R(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,{...x?{as:eI,allowPinchZoom:!0}:void 0,children:(0,t.jsx)(I.FocusScope,{asChild:!0,trapped:s,onMountAutoFocus:(0,N.composeEventHandlers)(l,e=>{e.preventDefault(),P.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:(0,t.jsx)(D.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:d,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:h,children:(0,t.jsx)(q,{asChild:!0,...y,dir:w.dir,orientation:"vertical",loop:o,currentTabStopId:k,onCurrentTabStopIdChange:R,onEntryFocus:(0,N.composeEventHandlers)(c,e=>{w.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,t.jsx)(T.Content,{role:"menu","aria-orientation":"vertical","data-state":e5(g.open),"data-radix-menu-content":"",dir:w.dir,...j,...v,ref:M,style:{outline:"none",...v.style},onKeyDown:(0,N.composeEventHandlers)(v.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,d;"Tab"===e.key&&e.preventDefault(),!r&&n&&(a=e.key,t=_.current+a,o=b().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),d=o.find(e=>e.textValue===i)?.ref.current,function e(t){_.current=t,window.clearTimeout(E.current),""!==t&&(E.current=window.setTimeout(()=>e(""),1e3))}(t),d&&setTimeout(()=>d.focus()))}let o=P.current;if(e.target!==o||!eo.includes(e.key))return;e.preventDefault();let s=b().filter(e=>!e.disabled).map(e=>e.ref.current);ea.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,N.composeEventHandlers)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(E.current),_.current="")}),onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,e9(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)}))})})})})})})});eE.displayName=eR;var eT=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(P.Primitive.div,{role:"group",...a,ref:r})});eT.displayName="MenuGroup";var eF=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(P.Primitive.div,{...a,ref:r})});eF.displayName="MenuLabel";var eO="MenuItem",eA="menu.itemSelect",eL=r.forwardRef((e,n)=>{let{disabled:a=!1,onSelect:o,...s}=e,l=r.useRef(null),i=ew(eO,e.__scopeMenu),d=eM(eO,e.__scopeMenu),c=(0,C.useComposedRefs)(n,l),u=r.useRef(!1);return(0,t.jsx)(eH,{...s,ref:c,disabled:a,onClick:(0,N.composeEventHandlers)(e.onClick,()=>{let e=l.current;if(!a&&e){let t=new CustomEvent(eA,{bubbles:!0,cancelable:!0});e.addEventListener(eA,e=>o?.(e),{once:!0}),(0,P.dispatchDiscreteCustomEvent)(e,t),t.defaultPrevented?u.current=!1:i.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:(0,N.composeEventHandlers)(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{let t=""!==d.searchRef.current;a||t&&" "===e.key||en.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});eL.displayName=eO;var eH=r.forwardRef((e,n)=>{let{__scopeMenu:a,disabled:o=!1,textValue:s,...l}=e,i=eM(eO,a),d=eh(a),c=r.useRef(null),u=(0,C.useComposedRefs)(n,c),[p,f]=r.useState(!1),[m,h]=r.useState("");return r.useEffect(()=>{let e=c.current;e&&h((e.textContent??"").trim())},[l.children]),(0,t.jsx)(ed.ItemSlot,{scope:a,disabled:o,textValue:s??m,children:(0,t.jsx)(Z,{asChild:!0,...d,focusable:!o,children:(0,t.jsx)(P.Primitive.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...l,ref:u,onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,e9(e=>{o?i.onItemLeave(e):(i.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,N.composeEventHandlers)(e.onPointerLeave,e9(e=>i.onItemLeave(e))),onFocus:(0,N.composeEventHandlers)(e.onFocus,()=>f(!0)),onBlur:(0,N.composeEventHandlers)(e.onBlur,()=>f(!1))})})})}),eK=r.forwardRef((e,r)=>{let{checked:n=!1,onCheckedChange:a,...o}=e;return(0,t.jsx)(eq,{scope:e.__scopeMenu,checked:n,children:(0,t.jsx)(eL,{role:"menuitemcheckbox","aria-checked":e6(n)?"mixed":n,...o,ref:r,"data-state":e8(n),onSelect:(0,N.composeEventHandlers)(o.onSelect,()=>a?.(!!e6(n)||!n),{checkForDefaultPrevented:!1})})})});eK.displayName="MenuCheckboxItem";var ez="MenuRadioGroup",[eB,eG]=ep(ez,{value:void 0,onValueChange:()=>{}}),eV=r.forwardRef((e,r)=>{let{value:n,onValueChange:a,...o}=e,s=(0,A.useCallbackRef)(a);return(0,t.jsx)(eB,{scope:e.__scopeMenu,value:n,onValueChange:s,children:(0,t.jsx)(eT,{...o,ref:r})})});eV.displayName=ez;var eU="MenuRadioItem",e$=r.forwardRef((e,r)=>{let{value:n,...a}=e,o=eG(eU,e.__scopeMenu),s=n===o.value;return(0,t.jsx)(eq,{scope:e.__scopeMenu,checked:s,children:(0,t.jsx)(eL,{role:"menuitemradio","aria-checked":s,...a,ref:r,"data-state":e8(s),onSelect:(0,N.composeEventHandlers)(a.onSelect,()=>o.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});e$.displayName=eU;var eX="MenuItemIndicator",[eq,eW]=ep(eX,{checked:!1}),eY=r.forwardRef((e,r)=>{let{__scopeMenu:n,forceMount:a,...o}=e,s=eW(eX,n);return(0,t.jsx)(O.Presence,{present:a||e6(s.checked)||!0===s.checked,children:(0,t.jsx)(P.Primitive.span,{...o,ref:r,"data-state":e8(s.checked)})})});eY.displayName=eX;var eZ=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(P.Primitive.div,{role:"separator","aria-orientation":"horizontal",...a,ref:r})});eZ.displayName="MenuSeparator";var eJ=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,o=em(n);return(0,t.jsx)(T.Arrow,{...o,...a,ref:r})});eJ.displayName="MenuArrow";var[eQ,e0]=ep("MenuSub"),e1="MenuSubTrigger",e2=r.forwardRef((e,n)=>{let a=ev(e1,e.__scopeMenu),o=ew(e1,e.__scopeMenu),s=e0(e1,e.__scopeMenu),l=eM(e1,e.__scopeMenu),i=r.useRef(null),{pointerGraceTimerRef:d,onPointerGraceIntentChange:c}=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=d.current;return()=>{window.clearTimeout(e),c(null)}},[d,c]),(0,t.jsx)(ey,{asChild:!0,...u,children:(0,t.jsx)(eH,{id:s.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":s.contentId,"data-state":e5(a.open),...e,ref:(0,C.composeRefs)(n,s.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,e9(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,N.composeEventHandlers)(e.onPointerLeave,e9(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(d.current),d.current=window.setTimeout(()=>l.onPointerGraceIntentChange(null),300)}else{if(l.onTriggerLeave(e),e.defaultPrevented)return;l.onPointerGraceIntentChange(null)}})),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,t=>{let r=""!==l.searchRef.current;e.disabled||r&&" "===t.key||es[o.dir].includes(t.key)&&(a.onOpenChange(!0),a.content?.focus(),t.preventDefault())})})})});e2.displayName=e1;var e4="MenuSubContent",e3=r.forwardRef((e,n)=>{let a=eC(eR,e.__scopeMenu),{forceMount:o=a.forceMount,...s}=e,l=ev(eR,e.__scopeMenu),i=ew(eR,e.__scopeMenu),d=e0(e4,e.__scopeMenu),c=r.useRef(null),u=(0,C.useComposedRefs)(n,c);return(0,t.jsx)(ed.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(O.Presence,{present:o||l.open,children:(0,t.jsx)(ed.Slot,{scope:e.__scopeMenu,children:(0,t.jsx)(e_,{id:d.contentId,"aria-labelledby":d.triggerId,...s,ref:u,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,N.composeEventHandlers)(e.onFocusOutside,e=>{e.target!==d.trigger&&l.onOpenChange(!1)}),onEscapeKeyDown:(0,N.composeEventHandlers)(e.onEscapeKeyDown,e=>{i.onClose(),e.preventDefault()}),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),r=el[i.dir].includes(e.key);t&&r&&(l.onOpenChange(!1),d.trigger?.focus(),e.preventDefault())})})})})})});function e5(e){return e?"open":"closed"}function e6(e){return"indeterminate"===e}function e8(e){return e6(e)?"indeterminate":e?"checked":"unchecked"}function e9(e){return t=>"mouse"===t.pointerType?e(t):void 0}e3.displayName=e4;var e7="DropdownMenu",[te,tt]=(0,k.createContextScope)(e7,[ef]),tr=ef(),[tn,ta]=te(e7),to=e=>{let{__scopeDropdownMenu:n,children:a,dir:o,open:s,defaultOpen:l,onOpenChange:i,modal:d=!0}=e,c=tr(n),u=r.useRef(null),[p,f]=(0,R.useControllableState)({prop:s,defaultProp:l??!1,onChange:i,caller:e7});return(0,t.jsx)(tn,{scope:n,triggerId:(0,_.useId)(),triggerRef:u,contentId:(0,_.useId)(),open:p,onOpenChange:f,onOpenToggle:r.useCallback(()=>f(e=>!e),[f]),modal:d,children:(0,t.jsx)(ej,{...c,open:p,onOpenChange:f,dir:o,modal:d,children:a})})};to.displayName=e7;var ts="DropdownMenuTrigger",tl=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,disabled:a=!1,...o}=e,s=ta(ts,n),l=tr(n);return(0,t.jsx)(ey,{asChild:!0,...l,children:(0,t.jsx)(P.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,C.composeRefs)(r,s.triggerRef),onPointerDown:(0,N.composeEventHandlers)(e.onPointerDown,e=>{!a&&0===e.button&&!1===e.ctrlKey&&(s.onOpenToggle(),s.open||e.preventDefault())}),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{!a&&(["Enter"," "].includes(e.key)&&s.onOpenToggle(),"ArrowDown"===e.key&&s.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});tl.displayName=ts;var ti=e=>{let{__scopeDropdownMenu:r,...n}=e,a=tr(r);return(0,t.jsx)(ek,{...a,...n})};ti.displayName="DropdownMenuPortal";var td="DropdownMenuContent",tc=r.forwardRef((e,n)=>{let{__scopeDropdownMenu:a,...o}=e,s=ta(td,a),l=tr(a),i=r.useRef(!1);return(0,t.jsx)(eE,{id:s.contentId,"aria-labelledby":s.triggerId,...l,...o,ref:n,onCloseAutoFocus:(0,N.composeEventHandlers)(e.onCloseAutoFocus,e=>{i.current||s.triggerRef.current?.focus(),i.current=!1,e.preventDefault()}),onInteractOutside:(0,N.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)"}})});tc.displayName=td,r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eT,{...o,...a,ref:r})}).displayName="DropdownMenuGroup";var tu=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eF,{...o,...a,ref:r})});tu.displayName="DropdownMenuLabel";var tp=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eL,{...o,...a,ref:r})});tp.displayName="DropdownMenuItem";var tf=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eK,{...o,...a,ref:r})});tf.displayName="DropdownMenuCheckboxItem",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eV,{...o,...a,ref:r})}).displayName="DropdownMenuRadioGroup";var tm=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(e$,{...o,...a,ref:r})});tm.displayName="DropdownMenuRadioItem";var th=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eY,{...o,...a,ref:r})});th.displayName="DropdownMenuItemIndicator";var tx=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eZ,{...o,...a,ref:r})});tx.displayName="DropdownMenuSeparator",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eJ,{...o,...a,ref:r})}).displayName="DropdownMenuArrow";var tv=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(e2,{...o,...a,ref:r})});tv.displayName="DropdownMenuSubTrigger";var tg=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(e3,{...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)"}})});tg.displayName="DropdownMenuSubContent";var tw=e.i(525761),tj=e.i(443991),ty=e.i(632137);r.forwardRef(({className:e,inset:r,children:n,...a},o)=>(0,t.jsxs)(tv,{ref:o,className:(0,ty.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)(tw.ChevronRight,{className:"ml-auto h-4 w-4"})]})).displayName=tv.displayName,r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(tg,{ref:n,className:(0,ty.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=tg.displayName;let tb=r.forwardRef(({className:e,sideOffset:r=4,...n},a)=>(0,t.jsx)(ti,{children:(0,t.jsx)(tc,{ref:a,sideOffset:r,className:(0,ty.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})}));tb.displayName=tc.displayName;let tN=r.forwardRef(({className:e,inset:r,...n},a)=>(0,t.jsx)(tp,{ref:a,className:(0,ty.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}));tN.displayName=tp.displayName,r.forwardRef(({className:e,children:r,checked:n,...a},o)=>(0,t.jsxs)(tf,{ref:o,className:(0,ty.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)(th,{children:(0,t.jsx)(f.Check,{className:"h-4 w-4"})})}),r]})).displayName=tf.displayName,r.forwardRef(({className:e,children:r,...n},a)=>(0,t.jsxs)(tm,{ref:a,className:(0,ty.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)(th,{children:(0,t.jsx)(tj.Circle,{className:"h-2 w-2 fill-current"})})}),r]})).displayName=tm.displayName,r.forwardRef(({className:e,inset:r,...n},a)=>(0,t.jsx)(tu,{ref:a,className:(0,ty.cn)("px-2 py-1.5 text-sm font-semibold",r&&"pl-8",e),...n})).displayName=tu.displayName;let tC=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(tx,{ref:n,className:(0,ty.cn)("-mx-1 my-1 h-px bg-muted",e),...r}));tC.displayName=tx.displayName;var tk=e.i(361877),tR=e.i(341965);let tP=["#ef4444","#f97316","#eab308","#22c55e","#14b8a6","#3b82f6","#6366f1","#8b5cf6","#d946ef","#ec4899","#6b7280","#78716c"];function tM({value:e,onChange:n,disabled:a}){let[o,s]=(0,r.useState)(!1);return(0,t.jsxs)(tR.Popover,{open:o,onOpenChange:s,children:[(0,t.jsx)(tR.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(j.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)(tR.PopoverContent,{className:"w-[200px] p-3",align:"start",children:(0,t.jsx)("div",{className:"grid grid-cols-6 gap-2",children:tP.map(r=>(0,t.jsx)("button",{className:(0,ty.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 tE=e.i(995403),tD=e.i(585458),tS=e.i(612437);function tI(){let e=(0,n.useRouter)(),{projects:i,currentProject:N,switchProject:C,toggleFavorite:k,removeProject:R,updateProject:P,isLoading:M}=(0,w.useProject)(),[E,D]=(0,r.useState)(""),[S,I]=(0,r.useState)(!1),[_,T]=(0,r.useState)(null),[F,O]=(0,r.useState)(""),[A,L]=(0,r.useState)({}),[H,K]=(0,r.useState)({}),z=i.filter(e=>e.name.toLowerCase().includes(E.toLowerCase()));(0,r.useEffect)(()=>{let e=async()=>{for(let e of i)if(A[e.id]?.status!=="valid"&&A[e.id]?.status!=="invalid")try{L(t=>({...t,[e.id]:{status:"validating"}}));let t=await fetch(`/api/projects/${e.id}/validate`,{method:"POST"});if(t.ok){let r=await t.json();L(t=>({...t,[e.id]:{status:r.validation.isValid?"valid":"invalid",error:r.validation.error}}))}}catch{L(t=>({...t,[e.id]:{status:"invalid",error:"Validation failed"}}))}};i.length>0&&e()},[i]),(0,r.useEffect)(()=>{let e=async()=>{for(let e of i)if(!H[e.id])try{let t=await fetch(`/api/projects/${e.id}/stats`);if(t.ok){let r=await t.json();K(t=>({...t,[e.id]:r.stats}))}}catch{}};i.length>0&&e()},[i]);let B=async t=>{await C(t),e.push(`/projects/${t}/specs`)},G=()=>{T(null),O("")},V=async e=>{if(!F.trim())return void tE.toast.error("Project name cannot be empty");try{await P(e,{name:F.trim()}),tE.toast.success("Project name updated"),T(null),O("")}catch{tE.toast.error("Failed to update project name")}},U=async(e,t)=>{try{await P(e,{color:t}),tE.toast.success("Project color updated")}catch{tE.toast.error("Failed to update project color")}},$=(0,r.useCallback)(async e=>{L(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();L(t=>({...t,[e]:{status:r.validation.isValid?"valid":"invalid",error:r.validation.error}})),r.validation.isValid?tE.toast.success("Project path is valid"):tE.toast.error(`Project path invalid: ${r.validation.error||"Unknown error"}`)}catch{L(t=>({...t,[e]:{status:"invalid",error:"Failed to validate"}})),tE.toast.error("Failed to validate project")}},[]);return(0,t.jsxs)("div",{className:"min-h-screen bg-background",children:[(0,t.jsx)("div",{className:"border-b bg-card/50 backdrop-blur-sm sticky top-0 z-10",children:(0,t.jsxs)("div",{className:"container max-w-7xl mx-auto py-6 space-y-6",children:[N&&(0,t.jsxs)(g.default,{href:`/projects/${N.id}/specs`,className:"inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[(0,t.jsx)(v.ArrowLeft,{className:"h-4 w-4"}),"Back to ",N.name]}),(0,t.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight text-foreground",children:"Projects"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-lg",children:"Manage your LeanSpec projects and workspaces."})]}),(0,t.jsxs)(j.Button,{onClick:()=>I(!0),size:"lg",className:"shadow-sm",children:[(0,t.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"New Project"]})]}),(0,t.jsx)("div",{className:"flex items-center space-x-2 max-w-md",children:(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(o.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(y.Input,{placeholder:"Search projects...",value:E,onChange:e=>D(e.target.value),className:"pl-9 bg-background/50"})]})})]})}),(0,t.jsxs)("div",{className:"container max-w-7xl mx-auto py-8",children:[(0,t.jsxs)("div",{className:"grid gap-6 grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:[z.map(e=>{let r,n=H[e.id];return(0,t.jsxs)(b.Card,{className:"group relative flex flex-col transition-all duration-200 hover:shadow-md hover:border-primary/20 overflow-hidden cursor-pointer bg-card",onClick:()=>B(e.id),children:[(0,t.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:e.color||"hsl(var(--primary))"}}),(0,t.jsx)(b.CardHeader,{className:"px-4 pt-4 pb-2 space-y-1",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[_===e.id?(0,t.jsxs)("div",{className:"flex items-center gap-1",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)(y.Input,{value:F,onChange:e=>O(e.target.value),className:"h-7 text-sm",autoFocus:!0,onKeyDown:t=>{"Enter"===t.key&&V(e.id),"Escape"===t.key&&G()}}),(0,t.jsx)(j.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>V(e.id),children:(0,t.jsx)(f.Check,{className:"h-3 w-3"})}),(0,t.jsx)(j.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:G,children:(0,t.jsx)(m.X,{className:"h-3 w-3"})})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,t.jsx)("h3",{className:"font-semibold text-base leading-none truncate",title:e.name,children:e.name}),(r=A[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)(x.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)("p",{className:"text-[10px] font-mono text-muted-foreground truncate",title:e.path,children:e.path})]}),(0,t.jsxs)(to,{children:[(0,t.jsx)(tl,{asChild:!0,onClick:e=>e.stopPropagation(),children:(0,t.jsxs)(j.Button,{variant:"ghost",size:"icon",className:"h-8 w-8 -mr-2 text-muted-foreground hover:text-foreground opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)(d,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Open menu"})]})}),(0,t.jsxs)(tb,{align:"end",children:[(0,t.jsxs)(tN,{onClick:t=>{var r,n;t.stopPropagation(),r=e.id,n=e.name,T(r),O(n)},children:[(0,t.jsx)(u,{className:"mr-2 h-4 w-4"}),"Rename"]}),(0,t.jsxs)("div",{className:"p-2",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground mb-2 px-2",children:"Project Color"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 px-2",children:(0,t.jsx)(tM,{value:e.color,onChange:t=>U(e.id,t)})})]}),(0,t.jsx)(tC,{}),(0,t.jsxs)(tN,{onClick:t=>{t.stopPropagation(),k(e.id)},children:[(0,t.jsx)(l.Star,{className:"mr-2 h-4 w-4"}),e.favorite?"Unfavorite":"Favorite"]}),(0,t.jsxs)(tN,{onClick:t=>{t.stopPropagation(),$(e.id)},children:[(0,t.jsx)(p,{className:"mr-2 h-4 w-4"}),"Validate Path"]}),(0,t.jsx)(tC,{}),(0,t.jsxs)(tN,{className:"text-destructive",onClick:t=>{t.stopPropagation(),R(e.id)},children:[(0,t.jsx)(c,{className:"mr-2 h-4 w-4"}),"Remove"]})]})]})]})}),(0,t.jsx)(b.CardContent,{className:"px-4 pb-4 flex-1",children:(0,t.jsxs)("div",{className:"flex items-center gap-4 py-1",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground font-medium uppercase tracking-wider",children:"Specs"}),(0,t.jsx)("span",{className:"text-lg font-bold tracking-tight",children:n?.totalSpecs||0})]}),(0,t.jsx)("div",{className:"w-px h-8 bg-border"}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground font-medium uppercase tracking-wider",children:"Completion"}),(0,t.jsxs)("span",{className:"text-lg font-bold tracking-tight",children:[n?.completionRate||0,"%"]})]})]})}),(0,t.jsxs)("div",{className:"px-4 py-2 bg-muted/20 border-t flex items-center justify-between text-[10px] text-muted-foreground mt-auto",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:e.color||"#666"}}),(0,t.jsx)("span",{children:"Local"})]}),e.lastAccessed&&(0,t.jsx)("span",{children:(0,tD.default)(e.lastAccessed).fromNow()})]}),e.favorite&&(0,t.jsx)("div",{className:"absolute top-0 right-0 p-2 pointer-events-none",children:(0,t.jsx)("div",{className:"bg-background/80 backdrop-blur-sm p-1.5 rounded-bl-lg border-b border-l shadow-sm",children:(0,t.jsx)(l.Star,{className:"h-3.5 w-3.5 fill-yellow-500 text-yellow-500"})})})]},e.id)}),0===z.length&&!M&&(0,t.jsxs)("div",{className:"col-span-full flex flex-col items-center justify-center py-16 text-center border-2 border-dashed rounded-xl bg-muted/10",children:[(0,t.jsx)("div",{className:"bg-muted/30 p-4 rounded-full mb-4",children:(0,t.jsx)(s.FolderOpen,{className:"h-8 w-8 text-muted-foreground"})}),(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"No projects found"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-2 mb-6 max-w-sm",children:E?"We couldn't find any projects matching your search.":"Get started by creating your first LeanSpec project."}),(0,t.jsxs)(j.Button,{onClick:()=>I(!0),size:"lg",children:[(0,t.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"Create Project"]})]})]}),(0,t.jsx)(tk.CreateProjectDialog,{open:S,onOpenChange:I})]})]})}tD.default.extend(tS.default),e.s(["default",()=>tI],340898)}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6454,(e,t,r)=>{"use strict";function s({widthInt:e,heightInt:t,blurWidth:r,blurHeight:s,blurDataURL:n,objectFit:i}){let a=r?40*r:e,o=s?40*s:t,l=a&&o?`viewBox='0 0 ${a} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${l}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${l?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return s}})},594547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return a}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},550696,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return l}}),e.r(56863);let s=e.r(6454),n=e.r(594547),i=["-moz-initial","fill","none","scale-down",void 0];function a(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function l({src:e,sizes:t,unoptimized:r=!1,priority:l=!1,preload:u=!1,loading:c,className:d,quality:h,width:f,height:p,fill:m=!1,style:g,overrideSrc:x,onLoad:y,onLoadingComplete:v,placeholder:b="empty",blurDataURL:j,fetchPriority:w,decoding:C="async",layout:A,objectFit:E,objectPosition:k,lazyBoundary:S,lazyRoot:_,...N},B){var M;let D,F,P,{imgConf:O,showAltText:I,blurComplete:$,defaultLoader:R}=B,z=O||n.imageConfigDefault;if("allSizes"in z)D=z;else{let e=[...z.deviceSizes,...z.imageSizes].sort((e,t)=>e-t),t=z.deviceSizes.sort((e,t)=>e-t),r=z.qualities?.sort((e,t)=>e-t);D={...z,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===R)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let L=N.loader||R;delete N.loader,delete N.srcSet;let T="__next_img_default"in L;if(T){if("custom"===D.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=L;L=t=>{let{config:r,...s}=t;return e(s)}}if(A){"fill"===A&&(m=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];e&&(g={...g,...e});let r={responsive:"100vw",fill:"100vw"}[A];r&&!t&&(t=r)}let W="",q=o(f),G=o(p);if((M=e)&&"object"==typeof M&&(a(M)||void 0!==M.src)){let t=a(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(F=t.blurWidth,P=t.blurHeight,j=j||t.blurDataURL,W=t.src,!m)if(q||G){if(q&&!G){let e=q/t.width;G=Math.round(t.height*e)}else if(!q&&G){let e=G/t.height;q=Math.round(t.width*e)}}else q=t.width,G=t.height}let H=!l&&!u&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,H=!1),D.unoptimized&&(r=!0),T&&!D.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let U=o(h),V=Object.assign(m?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:E,objectPosition:k}:{},I?{}:{color:"transparent"},g),K=$||"empty"===b?null:"blur"===b?`url("data:image/svg+xml;charset=utf-8,${(0,s.getImageBlurSvg)({widthInt:q,heightInt:G,blurWidth:F,blurHeight:P,blurDataURL:j||"",objectFit:V.objectFit})}")`:`url("${b}")`,J=i.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,X=K?{backgroundSize:J,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:K}:{},Q=function({config:e,src:t,unoptimized:r,width:s,quality:n,sizes:i,loader:a}){if(r)return{src:t,srcSet:void 0,sizes:void 0};let{widths:o,kind:l}=function({deviceSizes:e,allSizes:t},r,s){if(s){let r=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=r.exec(s);)n.push(parseInt(e[2]));if(n.length){let r=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,s,i),u=o.length-1;return{sizes:i||"w"!==l?i:"100vw",srcSet:o.map((r,s)=>`${a({config:e,src:t,quality:n,width:r})} ${"w"===l?r:s+1}${l}`).join(", "),src:a({config:e,src:t,quality:n,width:o[u]})}}({config:D,src:e,unoptimized:r,width:q,quality:U,sizes:t,loader:L}),Y=H?"lazy":c;return{props:{...N,loading:Y,fetchPriority:w,width:q,height:G,decoding:C,className:d,style:{...V,...X},sizes:Q.sizes,srcSet:Q.srcSet,src:x||Q.src},meta:{unoptimized:r,preload:u||l,placeholder:b,fill:m}}}},29549,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let s=e.r(431231),n="undefined"==typeof window,i=n?()=>{}:s.useLayoutEffect,a=n?()=>{}:s.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=s.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return n&&(t?.mountedInstances?.add(e.children),o()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},582032,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return m},defaultHead:function(){return d}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(481258),a=e.r(744066),o=e.r(890022),l=a._(e.r(431231)),u=i._(e.r(29549)),c=e.r(392600);function d(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function h(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(56863);let f=["name","httpEquiv","charSet","itemProp"];function p(e){let t,r,s,n;return e.reduce(h,[]).reverse().concat(d().reverse()).filter((t=new Set,r=new Set,s=new Set,n={},e=>{let i=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?i=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?i=!1:r.add(e.type);break;case"meta":for(let t=0,r=f.length;t<r;t++){let r=f[t];if(e.props.hasOwnProperty(r))if("charSet"===r)s.has(r)?i=!1:s.add(r);else{let t=e.props[r],s=n[r]||new Set;("name"!==r||!a)&&s.has(t)?i=!1:(s.add(t),n[r]=s)}}}return i})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,l.useContext)(c.HeadManagerContext);return(0,o.jsx)(u.default,{reduceComponentsToState:p,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},111258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let s=e.r(481258)._(e.r(431231)),n=e.r(594547),i=s.default.createContext(n.imageConfigDefault)},394453,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return s}});let s=e.r(481258)._(e.r(431231)).default.createContext(null)},781035,(e,t,r)=>{"use strict";function s(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return s}})},765774,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}});let s=e.r(781035);function n({config:e,src:t,width:r,quality:n}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
|
|
3
|
+
Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let i=(0,s.findClosestQuality)(n,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${i}${t.startsWith("/_next/static/media/"),""}`}n.__next_img_default=!0;let i=n},881988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return b}});let s=e.r(481258),n=e.r(744066),i=e.r(890022),a=n._(e.r(431231)),o=s._(e.r(395635)),l=s._(e.r(582032)),u=e.r(550696),c=e.r(594547),d=e.r(111258);e.r(56863);let h=e.r(394453),f=s._(e.r(765774)),p=e.r(266500),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function g(e,t,r,s,n,i,a){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let s=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>s,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{s=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}s?.current&&s.current(e)}}))}function x(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,a.forwardRef)(({src:e,srcSet:t,sizes:r,height:s,width:n,decoding:o,className:l,style:u,fetchPriority:c,placeholder:d,loading:h,unoptimized:f,fill:m,onLoadRef:y,onLoadingCompleteRef:v,setBlurComplete:b,setShowAltText:j,sizesInput:w,onLoad:C,onError:A,...E},k)=>{let S=(0,a.useCallback)(e=>{e&&(A&&(e.src=e.src),e.complete&&g(e,d,y,v,b,f,w))},[e,d,y,v,b,A,f,w]),_=(0,p.useMergedRef)(k,S);return(0,i.jsx)("img",{...E,...x(c),loading:h,width:n,height:s,decoding:o,"data-nimg":m?"fill":"1",className:l,style:u,sizes:r,srcSet:t,src:e,ref:_,onLoad:e=>{g(e.currentTarget,d,y,v,b,f,w)},onError:e=>{j(!0),"empty"!==d&&b(!0),A&&A(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...x(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,i.jsx)(l.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let b=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(h.RouterContext),s=(0,a.useContext)(d.ImageConfigContext),n=(0,a.useMemo)(()=>{let e=m||s||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:n,localPatterns:"undefined"==typeof window?s?.localPatterns:e.localPatterns}},[s]),{onLoad:o,onLoadingComplete:l}=e,p=(0,a.useRef)(o);(0,a.useEffect)(()=>{p.current=o},[o]);let g=(0,a.useRef)(l);(0,a.useEffect)(()=>{g.current=l},[l]);let[x,b]=(0,a.useState)(!1),[j,w]=(0,a.useState)(!1),{props:C,meta:A}=(0,u.getImgProps)(e,{defaultLoader:f.default,imgConf:n,blurComplete:x,showAltText:j});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(y,{...C,unoptimized:A.unoptimized,placeholder:A.placeholder,fill:A.fill,onLoadRef:p,onLoadingCompleteRef:g,setBlurComplete:b,setShowAltText:w,sizesInput:e.sizes,ref:t}),A.preload?(0,i.jsx)(v,{isAppRouter:!r,imgAttributes:C}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},322867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return c},getImageProps:function(){return u}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(481258),a=e.r(550696),o=e.r(881988),l=i._(e.r(765774));function u(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=o.Image},805970,(e,t,r)=>{t.exports=e.r(322867)},426160,e=>{"use strict";var t=e.i(890022),r=e.i(987985),s=e.i(805970),n=e.i(230827),i=e.i(525761),a=e.i(122436);let o=(0,a.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);var l=e.i(954049),u=e.i(431231);let c=(0,a.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),d=(0,a.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var h=e.i(81795),f=e.i(235893);function p(){let{theme:e,setTheme:r}=(0,h.useTheme)(),[s,n]=u.useState(!1);return(u.useEffect(()=>{n(!0)},[]),s)?(0,t.jsxs)(f.Button,{variant:"ghost",size:"icon",onClick:()=>r("light"===e?"dark":"light"),"aria-label":"Toggle theme",children:[(0,t.jsx)(d,{className:"h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,t.jsx)(c,{className:"absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"})]}):(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",disabled:!0,"aria-label":"Toggle theme",children:(0,t.jsx)(d,{className:"h-5 w-5"})})}var m=e.i(20315),g=e.i(300329),x=e.i(40843);let y=(0,a.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);function v(e){return Array.isArray?Array.isArray(e):"[object Array]"===k(e)}let b=1/0;function j(e){return"string"==typeof e}function w(e){return"number"==typeof e}function C(e){return"object"==typeof e}function A(e){return null!=e}function E(e){return!e.trim().length}function k(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let S=Object.prototype.hasOwnProperty;class _{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let r=N(e);this._keys.push(r),this._keyMap[r.id]=r,t+=r.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function N(e){let t=null,r=null,s=null,n=1,i=null;if(j(e)||v(e))s=e,t=B(e),r=M(e);else{if(!S.call(e,"name"))throw Error("Missing name property in key");let a=e.name;if(s=a,S.call(e,"weight")&&(n=e.weight)<=0)throw Error(`Property 'weight' in key '${a}' must be a positive integer`);t=B(a),r=M(a),i=e.getFn}return{path:t,id:r,weight:n,src:s,getFn:i}}function B(e){return v(e)?e:e.split(".")}function M(e){return v(e)?e.join("."):e}var D={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,useExtendedSearch:!1,getFn:function(e,t){let r=[],s=!1,n=(e,t,i)=>{if(A(e))if(t[i]){var a,o;let l=e[t[i]];if(!A(l))return;if(i===t.length-1&&(j(l)||w(l)||!0===(a=l)||!1===a||C(o=a)&&null!==o&&"[object Boolean]"==k(a)))r.push(null==l?"":function(e){if("string"==typeof e)return e;let t=e+"";return"0"==t&&1/e==-b?"-0":t}(l));else if(v(l)){s=!0;for(let e=0,r=l.length;e<r;e+=1)n(l[e],t,i+1)}else t.length&&n(l,t,i+1)}else r.push(e)};return n(e,j(t)?t.split("."):t,0),s?r:r[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};let F=/[^ ]+/g;class P{constructor({getFn:e=D.getFn,fieldNormWeight:t=D.fieldNormWeight}={}){this.norm=function(e=1,t=3){let r=new Map,s=Math.pow(10,t);return{get(t){let n=t.match(F).length;if(r.has(n))return r.get(n);let i=parseFloat(Math.round(1/Math.pow(n,.5*e)*s)/s);return r.set(n,i),i},clear(){r.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,j(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();j(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,r=this.size();t<r;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!A(e)||E(e))return;let r={v:e,i:t,n:this.norm.get(e)};this.records.push(r)}_addObject(e,t){let r={i:t,$:{}};this.keys.forEach((t,s)=>{let n=t.getFn?t.getFn(e):this.getFn(e,t.path);if(A(n)){if(v(n)){let e=[],t=[{nestedArrIndex:-1,value:n}];for(;t.length;){let{nestedArrIndex:r,value:s}=t.pop();if(A(s))if(j(s)&&!E(s)){let t={v:s,i:r,n:this.norm.get(s)};e.push(t)}else v(s)&&s.forEach((e,r)=>{t.push({nestedArrIndex:r,value:e})})}r.$[s]=e}else if(j(n)&&!E(n)){let e={v:n,n:this.norm.get(n)};r.$[s]=e}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function O(e,t,{getFn:r=D.getFn,fieldNormWeight:s=D.fieldNormWeight}={}){let n=new P({getFn:r,fieldNormWeight:s});return n.setKeys(e.map(N)),n.setSources(t),n.create(),n}function I(e,{errors:t=0,currentLocation:r=0,expectedLocation:s=0,distance:n=D.distance,ignoreLocation:i=D.ignoreLocation}={}){let a=t/e.length;if(i)return a;let o=Math.abs(s-r);return n?a+o/n:o?1:a}let $=String.prototype.normalize?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):e=>e;class R{constructor(e,{location:t=D.location,threshold:r=D.threshold,distance:s=D.distance,includeMatches:n=D.includeMatches,findAllMatches:i=D.findAllMatches,minMatchCharLength:a=D.minMatchCharLength,isCaseSensitive:o=D.isCaseSensitive,ignoreDiacritics:l=D.ignoreDiacritics,ignoreLocation:u=D.ignoreLocation}={}){if(this.options={location:t,threshold:r,distance:s,includeMatches:n,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:o,ignoreDiacritics:l,ignoreLocation:u},e=o?e:e.toLowerCase(),e=l?$(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const c=(e,t)=>{this.chunks.push({pattern:e,alphabet:function(e){let t={};for(let r=0,s=e.length;r<s;r+=1){let n=e.charAt(r);t[n]=(t[n]||0)|1<<s-r-1}return t}(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0;const t=d%32,r=d-t;for(;e<r;)c(this.pattern.substr(e,32),e),e+=32;if(t){const e=d-32;c(this.pattern.substr(e),e)}}else c(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:r,includeMatches:s}=this.options;if(e=t?e:e.toLowerCase(),e=r?$(e):e,this.pattern===e){let t={isMatch:!0,score:0};return s&&(t.indices=[[0,e.length-1]]),t}let{location:n,distance:i,threshold:a,findAllMatches:o,minMatchCharLength:l,ignoreLocation:u}=this.options,c=[],d=0,h=!1;this.chunks.forEach(({pattern:t,alphabet:r,startIndex:f})=>{let{isMatch:p,score:m,indices:g}=function(e,t,r,{location:s=D.location,distance:n=D.distance,threshold:i=D.threshold,findAllMatches:a=D.findAllMatches,minMatchCharLength:o=D.minMatchCharLength,includeMatches:l=D.includeMatches,ignoreLocation:u=D.ignoreLocation}={}){let c;if(t.length>32)throw Error("Pattern length exceeds max of 32.");let d=t.length,h=e.length,f=Math.max(0,Math.min(s,h)),p=i,m=f,g=o>1||l,x=g?Array(h):[];for(;(c=e.indexOf(t,m))>-1;)if(p=Math.min(I(t,{currentLocation:c,expectedLocation:f,distance:n,ignoreLocation:u}),p),m=c+d,g){let e=0;for(;e<d;)x[c+e]=1,e+=1}m=-1;let y=[],v=1,b=d+h,j=1<<d-1;for(let s=0;s<d;s+=1){let i=0,o=b;for(;i<o;)I(t,{errors:s,currentLocation:f+o,expectedLocation:f,distance:n,ignoreLocation:u})<=p?i=o:b=o,o=Math.floor((b-i)/2+i);b=o;let l=Math.max(1,f-o+1),c=a?h:Math.min(f+o,h)+d,w=Array(c+2);w[c+1]=(1<<s)-1;for(let i=c;i>=l;i-=1){let a=i-1,o=r[e.charAt(a)];if(g&&(x[a]=+!!o),w[i]=(w[i+1]<<1|1)&o,s&&(w[i]|=(y[i+1]|y[i])<<1|1|y[i+1]),w[i]&j&&(v=I(t,{errors:s,currentLocation:a,expectedLocation:f,distance:n,ignoreLocation:u}))<=p){if(p=v,(m=a)<=f)break;l=Math.max(1,2*f-m)}}if(I(t,{errors:s+1,currentLocation:f,expectedLocation:f,distance:n,ignoreLocation:u})>p)break;y=w}let w={isMatch:m>=0,score:Math.max(.001,v)};if(g){let e=function(e=[],t=D.minMatchCharLength){let r=[],s=-1,n=-1,i=0;for(let a=e.length;i<a;i+=1){let a=e[i];a&&-1===s?s=i:a||-1===s||((n=i-1)-s+1>=t&&r.push([s,n]),s=-1)}return e[i-1]&&i-s>=t&&r.push([s,i-1]),r}(x,o);e.length?l&&(w.indices=e):w.isMatch=!1}return w}(e,t,r,{location:n+f,distance:i,threshold:a,findAllMatches:o,minMatchCharLength:l,includeMatches:s,ignoreLocation:u});p&&(h=!0),d+=m,p&&g&&(c=[...c,...g])});let f={isMatch:h,score:h?d/this.chunks.length:1};return h&&s&&(f.indices=c),f}}class z{constructor(e){this.pattern=e}static isMultiMatch(e){return L(e,this.multiRegex)}static isSingleMatch(e){return L(e,this.singleRegex)}search(){}}function L(e,t){let r=e.match(t);return r?r[1]:null}class T extends z{constructor(e,{location:t=D.location,threshold:r=D.threshold,distance:s=D.distance,includeMatches:n=D.includeMatches,findAllMatches:i=D.findAllMatches,minMatchCharLength:a=D.minMatchCharLength,isCaseSensitive:o=D.isCaseSensitive,ignoreDiacritics:l=D.ignoreDiacritics,ignoreLocation:u=D.ignoreLocation}={}){super(e),this._bitapSearch=new R(e,{location:t,threshold:r,distance:s,includeMatches:n,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:o,ignoreDiacritics:l,ignoreLocation:u})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class W extends z{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,r=0,s=[],n=this.pattern.length;for(;(t=e.indexOf(this.pattern,r))>-1;)r=t+n,s.push([t,r-1]);let i=!!s.length;return{isMatch:i,score:+!i,indices:s}}}let q=[class extends z{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){let t=e===this.pattern;return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},W,class extends z{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){let t=e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){let t=!e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){let t=!e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){let t=e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[e.length-this.pattern.length,e.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){let t=-1===e.indexOf(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},T],G=q.length,H=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,U=new Set([T.type,W.type]),V=[];function K(e,t){for(let r=0,s=V.length;r<s;r+=1){let s=V[r];if(s.condition(e,t))return new s(e,t)}return new R(e,t)}let J="$and",X="$path",Q=e=>!!(e[J]||e.$or),Y=e=>({[J]:Object.keys(e).map(t=>({[t]:e[t]}))});function Z(e,t,{auto:r=!0}={}){let s=e=>{let n=Object.keys(e),i=!!e[X];if(!i&&n.length>1&&!Q(e))return s(Y(e));if(!v(e)&&C(e)&&!Q(e)){let s=i?e[X]:n[0],a=i?e.$val:e[s];if(!j(a))throw Error(`Invalid value for key ${s}`);let o={keyId:M(s),pattern:a};return r&&(o.searcher=K(a,t)),o}let a={children:[],operator:n[0]};return n.forEach(t=>{let r=e[t];v(r)&&r.forEach(e=>{a.children.push(s(e))})}),a};return Q(e)||(e=Y(e)),s(e)}function ee(e,t){let r=e.matches;t.matches=[],A(r)&&r.forEach(e=>{if(!A(e.indices)||!e.indices.length)return;let{indices:r,value:s}=e,n={indices:r,value:s};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)})}function et(e,t){t.score=e.score}class er{constructor(e,t={},r){this.options={...D,...t},this.options.useExtendedSearch,this._keyStore=new _(this.options.keys),this.setCollection(e,r)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof P))throw Error("Incorrect 'index' type");this._myIndex=t||O(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){A(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){let t=[];for(let r=0,s=this._docs.length;r<s;r+=1){let n=this._docs[r];e(n,r)&&(this.removeAt(r),r-=1,s-=1,t.push(n))}return t}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:t=-1}={}){let{includeMatches:r,includeScore:s,shouldSort:n,sortFn:i,ignoreFieldNorm:a}=this.options,o=j(e)?j(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return!function(e,{ignoreFieldNorm:t=D.ignoreFieldNorm}){e.forEach(e=>{let r=1;e.matches.forEach(({key:e,norm:s,score:n})=>{let i=e?e.weight:null;r*=Math.pow(0===n&&i?Number.EPSILON:n,(i||1)*(t?1:s))}),e.score=r})}(o,{ignoreFieldNorm:a}),n&&o.sort(i),w(t)&&t>-1&&(o=o.slice(0,t)),function(e,t,{includeMatches:r=D.includeMatches,includeScore:s=D.includeScore}={}){let n=[];return r&&n.push(ee),s&&n.push(et),e.map(e=>{let{idx:r}=e,s={item:t[r],refIndex:r};return n.length&&n.forEach(t=>{t(e,s)}),s})}(o,this._docs,{includeMatches:r,includeScore:s})}_searchStringList(e){let t=K(e,this.options),{records:r}=this._myIndex,s=[];return r.forEach(({v:e,i:r,n:n})=>{if(!A(e))return;let{isMatch:i,score:a,indices:o}=t.searchIn(e);i&&s.push({item:e,idx:r,matches:[{score:a,value:e,norm:n,indices:o}]})}),s}_searchLogical(e){let t=Z(e,this.options),r=(e,t,s)=>{if(!e.children){let{keyId:r,searcher:n}=e,i=this._findMatches({key:this._keyStore.get(r),value:this._myIndex.getValueForItemAtKeyId(t,r),searcher:n});return i&&i.length?[{idx:s,item:t,matches:i}]:[]}let n=[];for(let i=0,a=e.children.length;i<a;i+=1){let a=r(e.children[i],t,s);if(a.length)n.push(...a);else if(e.operator===J)return[]}return n},s=this._myIndex.records,n={},i=[];return s.forEach(({$:e,i:s})=>{if(A(e)){let a=r(t,e,s);a.length&&(n[s]||(n[s]={idx:s,item:e,matches:[]},i.push(n[s])),a.forEach(({matches:e})=>{n[s].matches.push(...e)}))}}),i}_searchObjectList(e){let t=K(e,this.options),{keys:r,records:s}=this._myIndex,n=[];return s.forEach(({$:e,i:s})=>{if(!A(e))return;let i=[];r.forEach((r,s)=>{i.push(...this._findMatches({key:r,value:e[s],searcher:t}))}),i.length&&n.push({idx:s,item:e,matches:i})}),n}_findMatches({key:e,value:t,searcher:r}){if(!A(t))return[];let s=[];if(v(t))t.forEach(({v:t,i:n,n:i})=>{if(!A(t))return;let{isMatch:a,score:o,indices:l}=r.searchIn(t);a&&s.push({score:o,key:e,value:t,idx:n,norm:i,indices:l})});else{let{v:n,n:i}=t,{isMatch:a,score:o,indices:l}=r.searchIn(n);a&&s.push({score:o,key:e,value:n,norm:i,indices:l})}return s}}er.version="7.1.0",er.createIndex=O,er.parseIndex=function(e,{getFn:t=D.getFn,fieldNormWeight:r=D.fieldNormWeight}={}){let{keys:s,records:n}=e,i=new P({getFn:t,fieldNormWeight:r});return i.setKeys(s),i.setIndexRecords(n),i},er.config=D,er.parseQuery=Z,function(...e){V.push(...e)}(class{constructor(e,{isCaseSensitive:t=D.isCaseSensitive,ignoreDiacritics:r=D.ignoreDiacritics,includeMatches:s=D.includeMatches,minMatchCharLength:n=D.minMatchCharLength,ignoreLocation:i=D.ignoreLocation,findAllMatches:a=D.findAllMatches,location:o=D.location,threshold:l=D.threshold,distance:u=D.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:r,includeMatches:s,minMatchCharLength:n,findAllMatches:a,ignoreLocation:i,location:o,threshold:l,distance:u},e=t?e:e.toLowerCase(),e=r?$(e):e,this.pattern=e,this.query=function(e,t={}){return e.split("|").map(e=>{let r=e.trim().split(H).filter(e=>e&&!!e.trim()),s=[];for(let e=0,n=r.length;e<n;e+=1){let n=r[e],i=!1,a=-1;for(;!i&&++a<G;){let e=q[a],r=e.isMultiMatch(n);r&&(s.push(new e(r,t)),i=!0)}if(!i)for(a=-1;++a<G;){let e=q[a],r=e.isSingleMatch(n);if(r){s.push(new e(r,t));break}}}return s})}(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:r,isCaseSensitive:s,ignoreDiacritics:n}=this.options;e=s?e:e.toLowerCase(),e=n?$(e):e;let i=0,a=[],o=0;for(let s=0,n=t.length;s<n;s+=1){let n=t[s];a.length=0,i=0;for(let t=0,s=n.length;t<s;t+=1){let s=n[t],{isMatch:l,indices:u,score:c}=s.search(e);if(l){if(i+=1,o+=c,r){let e=s.constructor.type;U.has(e)?a=[...a,...u]:a.push(u)}}else{o=0,i=0,a.length=0;break}}if(i){let e={isMatch:!0,score:o/i};return r&&(e.indices=a),e}}return{isMatch:!1,score:1}}});var es=e.i(694541),en=e.i(168497),ei=e.i(597705),ea=e.i(20648);function eo({specs:e}){let r=(0,n.useRouter)(),{getSpecUrl:s}=(0,ea.useProjectUrl)(),[i,a]=u.useState(!1),[o,l]=u.useState(""),[c,d]=u.useState([]);u.useEffect(()=>{let e=localStorage.getItem("leanspec-recent-searches");e&&d(JSON.parse(e))},[]),u.useEffect(()=>{let e=e=>{"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),a(e=>!e))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let h=u.useMemo(()=>new er(e,{keys:[{name:"title",weight:2},{name:"specNumber",weight:1.5},{name:"tags",weight:.5}],threshold:.4,includeScore:!0,minMatchCharLength:2}),[e]),f=u.useMemo(()=>o?h.search(o).map(e=>e.item):e.slice(0,8),[o,h,e]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:()=>a(!0),className:"inline-flex items-center gap-2 px-2 sm:px-3 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors border rounded-md hover:border-foreground/20",children:[(0,t.jsx)(g.Search,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Quick search..."}),(0,t.jsxs)("kbd",{className:"hidden md:inline-flex pointer-events-none h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100",children:[(0,t.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]}),(0,t.jsxs)(es.CommandDialog,{open:i,onOpenChange:a,children:[(0,t.jsx)(es.CommandInput,{placeholder:"Search specs by title, number, or tags...",value:o,onValueChange:l}),(0,t.jsxs)(es.CommandList,{children:[(0,t.jsx)(es.CommandEmpty,{children:"No specs found."}),!o&&c.length>0&&(0,t.jsx)(es.CommandGroup,{heading:"Recent Searches",children:c.map(e=>(0,t.jsxs)(es.CommandItem,{value:e,onSelect:()=>{l(e)},children:[(0,t.jsx)(x.Clock,{className:"mr-2 h-4 w-4"}),e]},e))}),(0,t.jsx)(es.CommandGroup,{heading:"Specs",children:f.map(e=>(0,t.jsxs)(es.CommandItem,{value:`${e.specNumber} ${e.title}`,onSelect:()=>{var t,n;let i;return t=e.id,void(d(i=[n=e.title,...c.filter(e=>e!==n)].slice(0,5)),localStorage.setItem("leanspec-recent-searches",JSON.stringify(i)),r.push(s(t)),a(!1),l(""))},children:[(0,t.jsx)(m.FileText,{className:"mr-2 h-4 w-4"}),(0,t.jsxs)("div",{className:"flex-1 flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"font-medium",children:["#",e.specNumber]}),(0,t.jsx)("span",{className:"truncate",children:e.title})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,t.jsx)(en.StatusBadge,{status:e.status}),(0,t.jsx)(ei.PriorityBadge,{priority:e.priority})]})]})]},e.id))}),o&&(0,t.jsx)(es.CommandGroup,{heading:"Filter by Tag",children:Array.from(new Set(e.flatMap(e=>e.tags))).filter(e=>e.toLowerCase().includes(o.toLowerCase())).slice(0,5).map(e=>(0,t.jsxs)(es.CommandItem,{value:e,onSelect:()=>{r.push(`/?tag=${encodeURIComponent(e)}`),a(!1)},children:[(0,t.jsx)(y,{className:"mr-2 h-4 w-4"}),"Filter by: ",(0,t.jsx)("span",{className:"ml-1 font-medium",children:e})]},e))})]})]})]})}var el=e.i(308402);function eu({items:e}){return(0,t.jsx)("nav",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:e.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[s>0&&(0,t.jsx)(i.ChevronRight,{className:"h-4 w-4"}),e.href?(0,t.jsx)(r.default,{href:e.href,className:"hover:text-foreground transition-colors",children:e.label}):(0,t.jsx)("span",{className:"text-foreground",children:e.label})]},s))})}function ec({specs:e}){let i=function(e){if("/"===e)return[{label:"Home"}];if("/stats"===e)return[{label:"Home",href:"/"},{label:"Stats"}];if("/specs"===e||e.startsWith("/specs?")){let t=new URLSearchParams(e.split("?")[1]||"").get("view");return[{label:"Home",href:"/"},{label:`Specs (${"board"===t?"Board View":"List View"})`}]}return e.startsWith("/specs/")?[{label:"Home",href:"/"},{label:"Specs",href:"/specs"},{label:e.split("/")[2]}]:"/board"===e?[{label:"Home",href:"/"},{label:"Board"}]:[{label:"Home",href:"/"}]}((0,n.usePathname)());return(0,t.jsx)("header",{className:"sticky top-0 z-50 w-full h-14 border-b border-border bg-background",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-full px-2 sm:px-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4 min-w-0 flex-1",children:[(0,t.jsxs)(f.Button,{variant:"ghost",size:"icon",onClick:()=>{window.toggleMainSidebar&&window.toggleMainSidebar()},className:"lg:hidden h-9 w-9 shrink-0",children:[(0,t.jsx)(o,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle menu"})]}),(0,t.jsxs)(r.default,{href:"/",className:"flex items-center space-x-2 shrink-0",children:[(0,t.jsx)(s.default,{src:"/logo-with-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 dark:hidden"}),(0,t.jsx)(s.default,{src:"/logo-dark-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 hidden dark:block"}),(0,t.jsx)("span",{className:"font-bold text-lg sm:text-xl hidden sm:inline",children:"LeanSpec"})]}),(0,t.jsx)("div",{className:"hidden md:block min-w-0",children:(0,t.jsx)(eu,{items:i})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 sm:gap-2 shrink-0",children:[(0,t.jsx)(eo,{specs:e}),(0,t.jsxs)(el.TooltipProvider,{children:[(0,t.jsxs)(el.Tooltip,{children:[(0,t.jsx)(el.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(p,{})})}),(0,t.jsx)(el.TooltipContent,{children:(0,t.jsx)("p",{children:"Toggle theme"})})]}),(0,t.jsxs)(el.Tooltip,{children:[(0,t.jsx)(el.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,t.jsx)("a",{href:"https://www.lean-spec.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",children:(0,t.jsx)(l.BookOpen,{className:"h-5 w-5"})})})}),(0,t.jsx)(el.TooltipContent,{children:(0,t.jsx)("p",{children:"Documentation"})})]}),(0,t.jsxs)(el.Tooltip,{children:[(0,t.jsx)(el.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,t.jsxs)("a",{href:"https://github.com/codervisor/lean-spec",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub repository",children:[(0,t.jsx)(s.default,{src:"/github-mark-white.svg",alt:"GitHub",width:20,height:20,className:"hidden dark:block"}),(0,t.jsx)(s.default,{src:"/github-mark.svg",alt:"GitHub",width:20,height:20,className:"dark:hidden"})]})})}),(0,t.jsx)(el.TooltipContent,{children:(0,t.jsx)("p",{children:"GitHub repository"})})]})]})]})]})})}e.s(["Navigation",()=>ec],426160)},742634,e=>{"use strict";var t=e.i(890022),r=e.i(987985),s=e.i(230827),n=e.i(497332),i=e.i(20315),a=e.i(122436);let o=(0,a.default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var l=e.i(954049);let u=(0,a.default)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);var c=e.i(158362),d=e.i(525761),h=e.i(644021),f=e.i(431231),p=e.i(686266);let m=(0,a.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var g=e.i(963781),x=e.i(828964),y=e.i(828666),v=e.i(787949),b=e.i(632137),j=e.i(235893),w=e.i(694541),C=e.i(341965),A=e.i(222850),E=e.i(20648),k=e.i(361877);function S({collapsed:e}){let r=(0,s.useRouter)(),n=(0,s.usePathname)(),{mode:i,currentProject:a,projects:o,isLoading:l}=(0,E.useProject)(),[u,c]=(0,f.useState)(!1),[d,h]=(0,f.useState)(!1),[S,_]=(0,f.useState)(!1);if(l)return(0,t.jsx)(A.Skeleton,{className:(0,b.cn)("w-full",e?"h-9 w-9":"h-10")});if("multi-project"!==i)return null;let N=[...o].sort((e,t)=>e.favorite===t.favorite?0:e.favorite?-1:1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.CreateProjectDialog,{open:d,onOpenChange:h}),(0,t.jsxs)(C.Popover,{open:u,onOpenChange:c,children:[(0,t.jsx)(C.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(j.Button,{variant:"outline",role:"combobox","aria-expanded":u,disabled:S,className:(0,b.cn)("w-full justify-between transition-opacity",e?"h-9 w-9 p-0 justify-center":"px-3",S&&"opacity-70"),children:e?S?(0,t.jsx)(v.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)("div",{className:"h-4 w-4 rounded-full border",style:{backgroundColor:a?.color||"hsl(var(--primary))"}}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 truncate",children:[S?(0,t.jsx)(v.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)("div",{className:"h-4 w-4 rounded-full border shrink-0",style:{backgroundColor:a?.color||"hsl(var(--primary))"}}),(0,t.jsx)("span",{className:"truncate",children:S?"Switching...":a?.name||"Select project..."})]}),(0,t.jsx)(m,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})})}),(0,t.jsx)(C.PopoverContent,{className:"w-[200px] p-0",align:"start",children:(0,t.jsxs)(w.Command,{children:[(0,t.jsx)(w.CommandInput,{placeholder:"Search projects..."}),(0,t.jsxs)(w.CommandList,{children:[(0,t.jsx)(w.CommandEmpty,{children:"No project found."}),(0,t.jsx)(w.CommandGroup,{heading:"Projects",children:N.map(e=>(0,t.jsx)(w.CommandItem,{onSelect:()=>(e=>{if(e===a?.id)return void c(!1);_(!0),c(!1);let t=n.match(/^\/projects\/[^/]+(\/.*)?$/),r=t?.[1]||"";r.match(/^\/specs\/[^/]+$/)&&(r="/specs"),window.location.assign(`/projects/${e}${r}`)})(e.id),className:"text-sm",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 w-full",children:[(0,t.jsx)(p.Check,{className:(0,b.cn)("mr-2 h-4 w-4",a?.id===e.id?"opacity-100":"opacity-0")}),(0,t.jsx)("div",{className:"h-3 w-3 rounded-full shrink-0",style:{backgroundColor:e.color||"hsl(var(--primary))"}}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name}),e.favorite&&(0,t.jsx)(x.Star,{className:"h-3 w-3 fill-yellow-500 text-yellow-500"})]})},e.id))}),(0,t.jsx)(w.CommandSeparator,{}),(0,t.jsxs)(w.CommandGroup,{children:[(0,t.jsxs)(w.CommandItem,{className:"cursor-pointer",onSelect:()=>{c(!1),h(!0)},children:[(0,t.jsx)(g.Plus,{className:"mr-2 h-4 w-4"}),"Create Project"]}),(0,t.jsxs)(w.CommandItem,{className:"cursor-pointer",onSelect:()=>{c(!1),r.push("/projects")},children:[(0,t.jsx)(y.Settings,{className:"mr-2 h-4 w-4"}),"Manage Projects"]})]})]})]})})]})]})}function _({href:e,icon:s,children:n,description:i,currentPath:a,isCollapsed:o}){let l="/"===e||/^\/projects\/[^/]+$/.test(e)?a===e:a.startsWith(e);return(0,t.jsxs)(r.default,{href:e,className:(0,b.cn)("flex items-center gap-3 rounded-lg px-3 py-2 transition-colors","hover:bg-accent hover:text-accent-foreground",l&&"bg-accent text-accent-foreground font-medium",o&&"justify-center px-2"),children:[(0,t.jsx)(s,{className:(0,b.cn)("h-5 w-5 shrink-0",l&&"text-primary")}),!o&&(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-sm",children:n}),i&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:i})]})]})}function N(){let e=(0,s.usePathname)(),{mode:r,currentProject:a}=(0,E.useProject)(),[p,m]=f.useState(()=>"true"===localStorage.getItem("main-sidebar-collapsed")),[g,x]=f.useState(!1),[y,v]=f.useState(!1);f.useEffect(()=>{v(!0)},[]),f.useEffect(()=>{document.documentElement.style.setProperty("--main-sidebar-width",p?"60px":"240px"),localStorage.setItem("main-sidebar-collapsed",String(p))},[p]),f.useEffect(()=>{x(!1)},[e]),f.useEffect(()=>(window.toggleMainSidebar=()=>x(e=>!e),()=>{window.toggleMainSidebar=void 0}),[]);let w=e=>"multi-project"===r&&a?"/"===e?`/projects/${a.id}`:`/projects/${a.id}${e}`:e;return"/projects"===e?null:(0,t.jsxs)(t.Fragment,{children:[g&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>x(!1)}),(0,t.jsx)("aside",{className:(0,b.cn)("border-r border-border bg-background transition-all duration-300 flex-shrink-0","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",y&&p?"lg:w-[60px]":"lg:w-[240px]",g&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:(0,t.jsxs)("div",{className:"flex flex-col h-full w-full",children:[(0,t.jsx)("div",{className:"lg:hidden flex justify-end p-2 border-b border-border",children:(0,t.jsxs)(j.Button,{variant:"ghost",size:"sm",onClick:()=>x(!1),className:"h-8 w-8 p-0",children:[(0,t.jsx)(h.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close menu"})]})}),y&&(0,t.jsxs)("nav",{className:"flex-1 px-2 py-4 space-y-1",children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(S,{collapsed:p&&!g})}),(0,t.jsx)(_,{href:w("/"),icon:n.Home,currentPath:e,description:!p||g?"Dashboard":void 0,isCollapsed:p&&!g,children:"Home"}),(0,t.jsx)(_,{href:w("/specs"),icon:i.FileText,currentPath:e,description:!p||g?"All Specifications":void 0,isCollapsed:p&&!g,children:"Specs"}),(0,t.jsx)(_,{href:w("/dependencies"),icon:u,currentPath:e,description:!p||g?"Dependency Graph":void 0,isCollapsed:p&&!g,children:"Dependencies"}),(0,t.jsx)(_,{href:w("/stats"),icon:o,currentPath:e,description:!p||g?"Analytics":void 0,isCollapsed:p&&!g,children:"Stats"}),(0,t.jsx)(_,{href:w("/context"),icon:l.BookOpen,currentPath:e,description:!p||g?"Project Context":void 0,isCollapsed:p&&!g,children:"Context"})]}),(0,t.jsx)("div",{className:"hidden lg:block p-2 border-t border-border",children:(0,t.jsx)(j.Button,{variant:"ghost",size:"sm",onClick:()=>m(!p),className:(0,b.cn)("w-full",y&&p&&"px-2"),children:y&&p?(0,t.jsx)(d.ChevronRight,{className:"h-4 w-4"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.ChevronLeft,{className:"h-4 w-4 mr-2"}),(0,t.jsx)("span",{className:"text-xs",children:"Collapse"})]})})})]})})]})}e.s(["MainSidebar",()=>N],742634)},305215,e=>{"use strict";var t=e.i(890022),r=e.i(81795);function s({children:e,...s}){return(0,t.jsx)(r.ThemeProvider,{...s,children:e})}e.s(["ThemeProvider",()=>s])},474916,e=>{"use strict";var t=e.i(178420),r=e.i(995403);e.s(["Toast",()=>t.Toast,"toast",()=>r.toast])},124636,e=>{"use strict";var t=e.i(959124),r=e.i(431231);function s(){return"undefined"!=typeof window}function n(){return"production"}function i(){return(s()?window.vam:n())||"production"}function a(){return"production"===i()}function o(){return"development"===i()}function l(e,t,r){var n,i;if(!s()){let e="[Vercel Web Analytics] Please import `track` from `@vercel/analytics/server` when using this function in a server environment";if(a())console.warn(e);else throw Error(e);return}if(!t){null==(n=window.va)||n.call(window,"event",{name:e,options:r});return}try{let s=function(e,t){if(!e)return;let r=e,s=[];for(let[n,i]of Object.entries(e))"object"==typeof i&&null!==i&&(t.strip?r=function(e,{[e]:t,...r}){return r}(n,r):s.push(n));if(s.length>0&&!t.strip)throw Error(`The following properties are not valid: ${s.join(", ")}. Only strings, numbers, booleans, and null are allowed.`);return r}(t,{strip:a()});null==(i=window.va)||i.call(window,"event",{name:e,data:s,options:r})}catch(e){e instanceof Error&&o()&&console.error(e)}}function u(e){return(0,r.useEffect)(()=>{var t;e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]),(0,r.useEffect)(()=>{!function(e={debug:!0}){var t;if(!s())return;!function(e="auto"){if("auto"===e){window.vam=n();return}window.vam=e}(e.mode),window.va||(window.va=function(...e){(window.vaq=window.vaq||[]).push(e)}),e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend));let r=e.scriptSrc?e.scriptSrc:o()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?`${e.basePath}/insights/script.js`:"/_vercel/insights/script.js";if(document.head.querySelector(`script[src*="${r}"]`))return;let i=document.createElement("script");i.src=r,i.defer=!0,i.dataset.sdkn="@vercel/analytics"+(e.framework?`/${e.framework}`:""),i.dataset.sdkv="1.5.0",e.disableAutoTrack&&(i.dataset.disableAutoTrack="1"),e.endpoint?i.dataset.endpoint=e.endpoint:e.basePath&&(i.dataset.endpoint=`${e.basePath}/insights`),e.dsn&&(i.dataset.dsn=e.dsn),i.onerror=()=>{let e=o()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${r}. ${e}`)},o()&&!1===e.debug&&(i.dataset.debug="false"),document.head.appendChild(i)}({framework:e.framework||"react",basePath:e.basePath??function(){if(void 0!==t.default&&void 0!==t.default.env)return t.default.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}(),...void 0!==e.route&&{disableAutoTrack:!0},...e})},[]),(0,r.useEffect)(()=>{e.route&&e.path&&function({route:e,path:t}){var r;null==(r=window.va)||r.call(window,"pageview",{route:e,path:t})}({route:e.route,path:e.path})},[e.route,e.path]),null}e.s(["Analytics",()=>u,"track",()=>l])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,585458,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",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,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+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"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var x="$isDayjsObject",p=function(e){return e instanceof w||!(!e||!e[x])},g=function e(t,r,n){var s;if(!t)return f;if("string"==typeof t){var i=t.toLowerCase();m[i]&&(s=i),r&&(m[i]=r,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!n&&s&&(f=s),s||!n&&f},v=function(e,t){if(p(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new w(r)},S={s:h,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+h(Math.floor(r/60),2,"0")+":"+h(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),s=t.clone().add(n,i),l=r-s<0,a=t.clone().add(n+(l?-1:1),i);return+(-(n+(r-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:n,m:r,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,r=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 n=t.match(u);if(n){var s=n[2]-1||0,i=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)):new Date(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[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 r=v(e);return this.startOf(t)<=r&&r<=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,r){return S.u(e)?this[t]:this.set(r,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 r=S.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?r:r.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 n:return f(g+"Minutes",1);case r: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[n]=d+"Hours",c[r]=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 r=v(c);return S.w(r.date(r.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={})[r]=6e4,o[n]=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,r=this.$locale();if(!this.isValid())return r.invalidDate||c;var n=e||"YYYY-MM-DDTHH:mm:ssZ",s=S.z(this),i=this.$H,l=this.$m,a=this.$M,o=r.weekdays,u=r.months,h=r.meridiem,f=function(e,r,s,i){return e&&(e[r]||e(t,n))||s[r].slice(0,i)},m=function(e){return S.s(i%12||12,e,"0")},x=h||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return S.s(t.$y,4,"0");case"M":return a+1;case"MM":return S.s(a+1,2,"0");case"MMM":return f(r.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(r.weekdaysMin,t.$W,o,2);case"ddd":return f(r.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 n:u=x/36e5;break;case r: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 r=this.clone(),n=g(e,t,!0);return n&&(r.$L=n),r},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",r],["$H",n],["$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}()},417612,293821,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(987985);let s="u">typeof window?r.useLayoutEffect:r.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:r,scrollOffset:n}){if("horizontal"===t&&r)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 r=document.createElement("div"),n=r.style;return n.width="100px",n.height="100px",e.appendChild(r),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-n;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:r,scrollWidth:n}=e;return n-t-r}}return n}function o(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function c(e,t){if(e===t)return!0;if(!!e!=!!t||(o(void 0!==e),o(void 0!==t),Object.keys(e).length!==Object.keys(t).length))return!1;for(let r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function u({cachedBounds:e,itemCount:t,itemSize:r}){if(0===t)return 0;if("number"==typeof r)return t*r;{let r=e.get(0===e.size?0:e.size-1);return o(void 0!==r,"Unexpected bounds cache miss"),t*((r.scrollOffset+r.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:s}){let i=n-1,l=0,a=-1,o=0,c=-1,u=0;for(;u<i;){let r=e.get(u);if(r.scrollOffset+r.size>t)break;u++}for(o=Math.max(0,(l=u)-s);u<i;){let n=e.get(u);if(n.scrollOffset+n.size>=t+r)break;u++}return c=Math.min(n-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:r,style:n,...s}=e,{ariaAttributes:i,style:l,...a}=t;return c(r,i)&&c(n,l)&&c(s,a)}function f({children:e,className:n,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,r.useMemo)(()=>w,Object.values(w)),C=(0,r.useMemo)(()=>(0,r.memo)(g,h),[g]),[N,M]=(0,r.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:n=0,direction:l,isRtl:h=!1,itemCount:f,itemProps:m,itemSize:x,onResize:p,overscanCount:g}){var v;let S,[w,b]=(0,r.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=n,width:M=n}=function({box:e,defaultHeight:t,defaultWidth:n,disabled:l,element:a,mode:o,style:c}){let{styleHeight:u,styleWidth:d}=(0,r.useMemo)(()=>({styleHeight:i(c?.height),styleWidth:i(c?.width)}),[c?.height,c?.width]),[h,f]=(0,r.useState)({height:t,width:n}),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:r}=t;a===r&&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,r.useMemo)(()=>({height:u??h.height,width:d??h.width}),[h,u,d])}({defaultHeight:"vertical"===l?n:void 0,defaultWidth:"horizontal"===l?n:void 0,element:e,mode:"vertical"===l?"only-height":"only-width",style:t}),I=(0,r.useRef)({height:0,width:0}),O="vertical"===l?N:M,z=function({containerSize:e,itemSize:t}){let r;return"string"==typeof t?(o(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),o(void 0!==e,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100):r=t,r}({containerSize:O,itemSize:x});(0,r.useLayoutEffect)(()=>{if("function"==typeof 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:n}){return(0,r.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:r}){let n=new Map;return{get(s){for(o(s<e,`Invalid index ${s}`);n.size-1<s;){let e,i=n.size;switch(typeof r){case"function":e=r(i,t);break;case"number":e=r}if(0===i)n.set(i,{size:e,scrollOffset:0});else{let t=n.get(i-1);o(void 0!==t,`Unexpected bounds cache miss for index ${s}`),n.set(i,{scrollOffset:t.scrollOffset+t.size,size:e})}}let i=n.get(s);return o(void 0!==i,`Unexpected bounds cache miss for index ${s}`),i},set(e,t){n.set(e,t)},get size(){return n.size}}})({itemCount:e,itemProps:t,itemSize:n}),[e,t,n])}({itemCount:f,itemProps:m,itemSize:z}),k=(0,r.useCallback)(e=>T.get(e),[T]),D=(0,r.useCallback)(()=>u({cachedBounds:T,itemCount:f,itemSize:z}),[T,f,z]),A=(0,r.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:r,scrollTop:n}=e,s=d({cachedBounds:T,containerScrollOffset:a({containerElement:e,direction:l,isRtl:h,scrollOffset:"vertical"===l?n:r}),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:r,index:n})=>{let s=function({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:s,containerScrollOffset:i,containerSize:l}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});let a=u({cachedBounds:t,itemCount:n,itemSize:s}),o=t.get(r),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:r,containerSize:O,index:n,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,r.useRef)(()=>{throw Error("Cannot call during render.")}),s(()=>{S.current=v},[v]),(0,r.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,r.useMemo)(()=>I?e=>S.getRowHeight(e)??S.getAverageRowHeight():S,[I,S]),onResize:m,overscanCount:p});(0,r.useImperativeHandle)(f,()=>({get element(){return N},scrollToRow({align:e="auto",behavior:t="auto",index:r}){let n=T({align:e,containerScrollOffset:N?.scrollTop??0,index:r});"function"==typeof N?.scrollTo&&N.scrollTo({behavior:t,top:n})}}),[N,T]),s(()=>{if(!N)return;let e=Array.from(N.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let r=`${k+t}`;return e.setAttribute("data-react-window-index",r),!0});if(I)return S.observeRowElements(e)},[N,I,S,k,A]),(0,r.useEffect)(()=>{k>=0&&A>=0&&x&&x({startIndex:D,stopIndex:E},{startIndex:k,stopIndex:A})},[x,k,D,A,E]);let R=(0,r.useMemo)(()=>{let e=[];if(v>0)for(let t=k;t<=A;t++){let n=O(t);e.push((0,r.createElement)(C,{...$,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":v,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${n.scrollOffset}px)`,height:I?void 0:n.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,r.createElement)(b,{role:"list",...j,className:n,ref:M,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...y}},R,e,L)}r.useState,r.useRef,r.useState,r.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,r.useSyncExternalStore)(D,A,()=>M)}function R(){let e=r.useCallback(e=>(z.add(e),()=>{z.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>A().specs,()=>I)}function L(){let e=r.useCallback(e=>(T.add(e),()=>{T.delete(e)}),[]);return(0,r.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 r of(M={...M,specs:e,signature:t},k(),z))r()}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=r.useLayoutEffect;function Y({initialSpecs:e=[],currentSpecId:s,currentSubSpec:i,onSpecHover:l,className:a}){let[o,c]=r.useState(""),[u,d]=r.useState("all"),[h,M]=r.useState("all"),[I,O]=r.useState("all"),[z,T]=r.useState(!1),[k,D]=r.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[A,E]=r.useState(!1),[H,V]=r.useState(!1),Y=r.useRef(null),F=r.useRef(null),U=r.useRef(!1),q=r.useRef(null),J=r.useRef(0),Z=r.useRef(!1),K=r.useRef(!0),G=R(),Q=L(),X=r.useMemo(()=>G.length>0?G:e,[G,e]),ee=s||Q||"";r.useEffect(()=>{V(!0)},[]),r.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",k?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(k))},[k]),r.useEffect(()=>{E(!1)},[ee,i]);let et=r.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]),er=r.useMemo(()=>{let e=new Set;return X.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[X]),en="all"!==u||"all"!==h||"all"!==I,es=r.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 r=()=>{let n=q.current?.element;if(!n){e=window.requestAnimationFrame(r);return}U.current||(J.current>0&&(n.scrollTop=J.current),U.current=!0);let s=()=>{null===F.current&&(F.current=window.requestAnimationFrame(()=>{F.current=null,J.current=n.scrollTop,B(n.scrollTop)}))};n.addEventListener("scroll",s,{passive:!0}),t=()=>{n.removeEventListener("scroll",s)}};return r(),()=>{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 r=es.findIndex(e=>e.id===ee);-1!==r&&(Z.current=!0,q.current.scrollToRow({index:r,align:"center"}))};return t(),()=>{null!==e&&window.cancelAnimationFrame(e)}},[es,ee]),r.useEffect(()=>(window.toggleSpecsSidebar=()=>E(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]);let{getSpecUrl:ei}=(0,_.useProjectUrl)(),el=r.useCallback(e=>{let{index:r,style:s}=e,a=es[r],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)(n.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=r.useMemo(()=>window.innerHeight-56-180,[]),eo=r.useMemo(()=>r.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||en?"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"}),en&&(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"})]})]}),er.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"}),er.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),r=e.i(417612),n=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)(r.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)(n.Skeleton,{className:"h-7 w-56"}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,t.jsx)(n.Skeleton,{className:"h-6 w-24"}),(0,t.jsx)(n.Skeleton,{className:"h-6 w-24"}),(0,t.jsx)(n.Skeleton,{className:"h-6 w-20"})]}),(0,t.jsx)(n.Skeleton,{className:"h-4 w-64"})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(n.Skeleton,{className:"h-5 w-40"}),(0,t.jsx)(n.Skeleton,{className:"h-32 w-full"})]}),(0,t.jsx)("div",{className:"space-y-4",children:[...Array(6)].map((e,r)=>(0,t.jsx)(n.Skeleton,{className:"h-4 w-full"},r))})]})})]})}e.s(["SpecDetailLoadingShell",()=>i])}]);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,842541,e=>{"use strict";e.s(["default",0,function(e,t){return e*=1,t*=1,function(r){return e*(1-r)+t*r}}])},161610,189517,321137,e=>{"use strict";function t(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function r(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function n(){}e.s(["default",0,t,"extend",()=>r],189517);var a="\\s*([+-]?\\d+)\\s*",s="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",o="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",i=/^#([0-9a-f]{3,8})$/,l=RegExp(`^rgb\\(${a},${a},${a}\\)$`),d=RegExp(`^rgb\\(${o},${o},${o}\\)$`),c=RegExp(`^rgba\\(${a},${a},${a},${s}\\)$`),u=RegExp(`^rgba\\(${o},${o},${o},${s}\\)$`),f=RegExp(`^hsl\\(${s},${o},${o}\\)$`),g=RegExp(`^hsla\\(${s},${o},${o},${s}\\)$`),h={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function x(){return this.rgb().formatHex()}function m(){return this.rgb().formatRgb()}function p(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=i.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?b(t):3===r?new N(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?y(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?y(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=l.exec(e))?new N(t[1],t[2],t[3],1):(t=d.exec(e))?new N(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=c.exec(e))?y(t[1],t[2],t[3],t[4]):(t=u.exec(e))?y(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=f.exec(e))?M(t[1],t[2]/100,t[3]/100,1):(t=g.exec(e))?M(t[1],t[2]/100,t[3]/100,t[4]):h.hasOwnProperty(e)?b(h[e]):"transparent"===e?new N(NaN,NaN,NaN,0):null}function b(e){return new N(e>>16&255,e>>8&255,255&e,1)}function y(e,t,r,n){return n<=0&&(e=t=r=NaN),new N(e,t,r,n)}function w(e){return(e instanceof n||(e=p(e)),e)?new N((e=e.rgb()).r,e.g,e.b,e.opacity):new N}function v(e,t,r,n){return 1==arguments.length?w(e):new N(e,t,r,null==n?1:n)}function N(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function k(){return`#${E(this.r)}${E(this.g)}${E(this.b)}`}function j(){let e=S(this.opacity);return`${1===e?"rgb(":"rgba("}${$(this.r)}, ${$(this.g)}, ${$(this.b)}${1===e?")":`, ${e})`}`}function S(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function $(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function E(e){return((e=$(e))<16?"0":"")+e.toString(16)}function M(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new R(e,t,r,n)}function C(e){if(e instanceof R)return new R(e.h,e.s,e.l,e.opacity);if(e instanceof n||(e=p(e)),!e)return new R;if(e instanceof R)return e;var t=(e=e.rgb()).r/255,r=e.g/255,a=e.b/255,s=Math.min(t,r,a),o=Math.max(t,r,a),i=NaN,l=o-s,d=(o+s)/2;return l?(i=t===o?(r-a)/l+(r<a)*6:r===o?(a-t)/l+2:(t-r)/l+4,l/=d<.5?o+s:2-o-s,i*=60):l=d>0&&d<1?0:i,new R(i,l,d,e.opacity)}function R(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function O(e){return(e=(e||0)%360)<0?e+360:e}function z(e){return Math.max(0,Math.min(1,e||0))}function P(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}t(n,p,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return C(this).formatHsl()},formatRgb:m,toString:m}),t(N,v,r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new N(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new N(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new N($(this.r),$(this.g),$(this.b),S(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:k,formatHex:k,formatHex8:function(){return`#${E(this.r)}${E(this.g)}${E(this.b)}${E((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:j,toString:j})),t(R,function(e,t,r,n){return 1==arguments.length?C(e):new R(e,t,r,null==n?1:n)},r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new R(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new R(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new N(P(e>=240?e-240:e+120,a,n),P(e,a,n),P(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new R(O(this.h),z(this.s),z(this.l),S(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=S(this.opacity);return`${1===e?"hsl(":"hsla("}${O(this.h)}, ${100*z(this.s)}%, ${100*z(this.l)}%${1===e?")":`, ${e})`}`}})),e.s(["Color",()=>n,"Rgb",()=>N,"default",()=>p,"rgb",()=>v,"rgbConvert",()=>w],321137),e.s(["color",()=>p],161610)},77075,e=>{"use strict";var t=e.i(842541);e.s(["interpolateNumber",()=>t.default])},145665,181503,425902,e=>{"use strict";var t=e.i(321137);function r(e,t,r,n,a){var s=e*e,o=s*e;return((1-3*e+3*s-o)*t+(4-6*s+3*o)*r+(1+3*e+3*s-3*o)*n+o*a)/6}let n=e=>()=>e;function a(e,t){return function(r){return e+r*t}}function s(e,t){var r=t-e;return r?a(e,r>180||r<-180?r-360*Math.round(r/360):r):n(isNaN(e)?t:e)}function o(e){return 1==(e*=1)?i:function(t,r){var a,s,o;return r-t?(a=t,s=r,a=Math.pow(a,o=e),s=Math.pow(s,o)-a,o=1/o,function(e){return Math.pow(a+e*s,o)}):n(isNaN(t)?r:t)}}function i(e,t){var r=t-e;return r?a(e,r):n(isNaN(e)?t:e)}e.s(["default",0,n],181503),e.s(["default",()=>i,"gamma",()=>o,"hue",()=>s],425902);let l=function e(r){var n=o(r);function a(e,r){var a=n((e=(0,t.rgb)(e)).r,(r=(0,t.rgb)(r)).r),s=n(e.g,r.g),o=n(e.b,r.b),l=i(e.opacity,r.opacity);return function(t){return e.r=a(t),e.g=s(t),e.b=o(t),e.opacity=l(t),e+""}}return a.gamma=e,a}(1);function d(e){return function(r){var n,a,s=r.length,o=Array(s),i=Array(s),l=Array(s);for(n=0;n<s;++n)a=(0,t.rgb)(r[n]),o[n]=a.r||0,i[n]=a.g||0,l[n]=a.b||0;return o=e(o),i=e(i),l=e(l),a.opacity=1,function(e){return a.r=o(e),a.g=i(e),a.b=l(e),a+""}}}d(function(e){var t=e.length-1;return function(n){var a=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[a],o=e[a+1],i=a>0?e[a-1]:2*s-o,l=a<t-1?e[a+2]:2*o-s;return r((n-a/t)*t,i,s,o,l)}}),d(function(e){var t=e.length;return function(n){var a=Math.floor(((n%=1)<0?++n:n)*t),s=e[(a+t-1)%t],o=e[a%t],i=e[(a+1)%t],l=e[(a+2)%t];return r((n-a/t)*t,s,o,i,l)}}),e.s(["default",0,l],145665)},647483,e=>{"use strict";var t=e.i(842541),r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,n=RegExp(r.source,"g");e.s(["default",0,function(e,a){var s,o,i,l,d,c=r.lastIndex=n.lastIndex=0,u=-1,f=[],g=[];for(e+="",a+="";(i=r.exec(e))&&(l=n.exec(a));)(d=l.index)>c&&(d=a.slice(c,d),f[u]?f[u]+=d:f[++u]=d),(i=i[0])===(l=l[0])?f[u]?f[u]+=l:f[++u]=l:(f[++u]=null,g.push({i:u,x:(0,t.default)(i,l)})),c=n.lastIndex;return c<a.length&&(d=a.slice(c),f[u]?f[u]+=d:f[++u]=d),f.length<2?g[0]?(s=g[0].x,function(e){return s(e)+""}):(o=a,function(){return o}):(a=g.length,function(e){for(var t,r=0;r<a;++r)f[(t=g[r]).i]=t.x(e);return f.join("")})}])},170305,(e,t,r)=>{"use strict";var n=e.r(431231),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=n.useState,o=n.useEffect,i=n.useLayoutEffect,l=n.useDebugValue;function d(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!a(e,r)}catch(e){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=s({inst:{value:r,getSnapshot:t}}),a=n[0].inst,c=n[1];return i(function(){a.value=r,a.getSnapshot=t,d(a)&&c({inst:a})},[e,r,t]),o(function(){return d(a)&&c({inst:a}),e(function(){d(a)&&c({inst:a})})},[e]),l(r),r};r.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:c},334960,(e,t,r)=>{"use strict";t.exports=e.r(170305)},721665,(e,t,r)=>{"use strict";var n=e.r(431231),a=e.r(334960),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=a.useSyncExternalStore,i=n.useRef,l=n.useEffect,d=n.useMemo,c=n.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var u=i(null);if(null===u.current){var f={hasValue:!1,value:null};u.current=f}else f=u.current;var g=o(e,(u=d(function(){function e(e){if(!l){if(l=!0,o=e,e=n(e),void 0!==a&&f.hasValue){var t=f.value;if(a(t,e))return i=t}return i=e}if(t=i,s(o,e))return t;var r=n(e);return void 0!==a&&a(t,r)?(o=e,t):(o=e,i=r)}var o,i,l=!1,d=void 0===r?null:r;return[function(){return e(t())},null===d?void 0:function(){return e(d())}]},[t,r,n,a]))[0],u[1]);return l(function(){f.hasValue=!0,f.value=g},[g]),c(g),g}},596177,(e,t,r)=>{"use strict";t.exports=e.r(721665)},506361,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(230827),a=e.i(910338),s=e.i(555141),o=e.i(252294),i=e.i(796007),l=e.i(799388);e.i(250149);var d=e.i(402481),c=e.i(158687),u=e.i(692423),f=e.i(954542),g=e.i(771864);let h=({id:e,x:t,y:n,width:a,height:s,style:o,color:l,strokeColor:d,strokeWidth:c,className:u,borderRadius:f,shapeRendering:g,onClick:h,selected:x})=>{let{background:m,backgroundColor:p}=o||{};return r.default.createElement("rect",{className:(0,i.default)(["react-flow__minimap-node",{selected:x},u]),x:t,y:n,rx:f,ry:f,width:a,height:s,fill:l||m||p,stroke:d,strokeWidth:c,shapeRendering:g,onClick:h?t=>h(t,e):void 0})};h.displayName="MiniMapNode";var x=(0,r.memo)(h);let m=e=>e.nodeOrigin,p=e=>e.getNodes().filter(e=>!e.hidden&&e.width&&e.height),b=e=>e instanceof Function?e:()=>e;var y=(0,r.memo)(function({nodeStrokeColor:e="transparent",nodeColor:t="#e2e2e2",nodeClassName:n="",nodeBorderRadius:a=5,nodeStrokeWidth:s=2,nodeComponent:o=x,onClick:i}){let d=(0,g.useStore)(p,l.shallow),c=(0,g.useStore)(m),u=b(t),f=b(e),h=b(n),y="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return r.default.createElement(r.default.Fragment,null,d.map(e=>{let{x:t,y:n}=(0,g.getNodePositionWithOrigin)(e,c).positionAbsolute;return r.default.createElement(o,{key:e.id,x:t,y:n,width:e.width,height:e.height,style:e.style,selected:e.selected,className:h(e),color:u(e),borderRadius:a,strokeColor:f(e),strokeWidth:s,shapeRendering:y,onClick:i,id:e.id})}))});let w=e=>{let t=e.getNodes(),r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:t.length>0?(0,g.getBoundsOfRects)((0,g.getNodesBounds)(t,e.nodeOrigin),r):r,rfId:e.rfId}};function v({style:e,className:t,nodeStrokeColor:n="transparent",nodeColor:a="#e2e2e2",nodeClassName:s="",nodeBorderRadius:o=5,nodeStrokeWidth:h=2,nodeComponent:x,maskColor:m="rgb(240, 240, 240, 0.6)",maskStrokeColor:p="none",maskStrokeWidth:b=1,position:v="bottom-right",onClick:N,onNodeClick:k,pannable:j=!1,zoomable:S=!1,ariaLabel:$="React Flow mini map",inversePan:E=!1,zoomStep:M=10,offsetScale:C=5}){let R=(0,g.useStoreApi)(),O=(0,r.useRef)(null),{boundingRect:z,viewBB:P,rfId:L}=(0,g.useStore)(w,l.shallow),D=e?.width??200,I=e?.height??150,q=Math.max(z.width/D,z.height/I),W=q*D,T=q*I,A=C*q,H=z.x-(W-z.width)/2-A,B=z.y-(T-z.height)/2-A,F=W+2*A,_=T+2*A,V=`react-flow__minimap-desc-${L}`,U=(0,r.useRef)(0);U.current=q,(0,r.useEffect)(()=>{if(O.current){let e=(0,u.select)(O.current),t=(0,d.zoom)().on("zoom",j?e=>{let{transform:t,d3Selection:r,d3Zoom:n,translateExtent:a,width:s,height:o}=R.getState();if("mousemove"!==e.sourceEvent.type||!r||!n)return;let i=U.current*Math.max(1,t[2])*(E?-1:1),l={x:t[0]-e.sourceEvent.movementX*i,y:t[1]-e.sourceEvent.movementY*i},d=c.zoomIdentity.translate(l.x,l.y).scale(t[2]),u=n.constrain()(d,[[0,0],[s,o]],a);n.transform(r,u)}:null).on("zoom.wheel",S?e=>{let{transform:t,d3Selection:r,d3Zoom:n}=R.getState();if("wheel"!==e.sourceEvent.type||!r||!n)return;let a=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*M,s=t[2]*Math.pow(2,a);n.scaleTo(r,s)}:null);return e.call(t),()=>{e.on("zoom",null)}}},[j,S,E,M]);let G=N?e=>{let t=(0,f.pointer)(e);N(e,{x:t[0],y:t[1]})}:void 0,K=k?(e,t)=>{k(e,R.getState().nodeInternals.get(t))}:void 0;return r.default.createElement(g.Panel,{position:v,style:e,className:(0,i.default)(["react-flow__minimap",t]),"data-testid":"rf__minimap"},r.default.createElement("svg",{width:D,height:I,viewBox:`${H} ${B} ${F} ${_}`,role:"img","aria-labelledby":V,ref:O,onClick:G},$&&r.default.createElement("title",{id:V},$),r.default.createElement(y,{onClick:K,nodeColor:a,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:s,nodeStrokeWidth:h,nodeComponent:x}),r.default.createElement("path",{className:"react-flow__minimap-mask",d:`M${H-A},${B-A}h${F+2*A}v${_+2*A}h${-F-2*A}z
|
|
2
|
+
M${P.x},${P.y}h${P.width}v${P.height}h${-P.width}z`,fill:m,fillRule:"evenodd",stroke:p,strokeWidth:b,pointerEvents:"none"})))}v.displayName="MiniMap";var N=(0,r.memo)(v),k=e.i(632137);let j="#f59e0b",S={planned:"border-blue-500 bg-blue-100 text-blue-800 dark:bg-blue-950/60 dark:text-blue-200","in-progress":"border-orange-500 bg-orange-100 text-orange-800 dark:bg-orange-950/60 dark:text-orange-200",complete:"border-green-500 bg-green-100 text-green-800 dark:bg-green-950/60 dark:text-green-200",archived:"border-gray-400 bg-gray-100 text-gray-600 dark:border-gray-500/80 dark:bg-gray-900/60 dark:text-gray-400"},$={planned:"#3b82f6","in-progress":"#f97316",complete:"#22c55e",archived:"#6b7280"},E=r.memo(function({data:e}){let r=e.isCompact,n=e.isSecondary,a=0===e.connectionDepth?1:1===e.connectionDepth?.95:2===e.connectionDepth?.7:e.isDimmed?.15:1;return(0,t.jsxs)("div",{className:(0,k.cn)("flex flex-col rounded-lg shadow-lg transition-all duration-200",S[e.tone],e.interactive&&"cursor-pointer hover:scale-105 hover:shadow-xl hover:border-gray-400 dark:hover:border-white/50",e.isFocused&&"ring-2 ring-gray-800 dark:ring-white ring-offset-2 ring-offset-background scale-110 z-50",1===e.connectionDepth&&"ring-1 ring-gray-400 dark:ring-white/40",r?"px-2 py-1 gap-0.5":"px-2.5 py-1.5 gap-0.5",n?"border border-dashed":"border-2"),style:{width:r?120:180,opacity:a*(n?.65:1),transform:e.isDimmed?"scale(0.9)":void 0},children:[(0,t.jsx)(g.Handle,{type:"target",position:g.Position.Left,className:"opacity-0"}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,t.jsxs)("span",{className:(0,k.cn)("font-bold",r?"text-[9px]":"text-[10px]"),children:["#",e.number.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:(0,k.cn)("font-medium uppercase tracking-wide rounded",r?"text-[7px] px-0.5 py-0.5":"text-[8px] px-1 py-0.5","planned"===e.tone&&"bg-blue-500/30 text-blue-700 dark:text-blue-300","in-progress"===e.tone&&"bg-orange-500/30 text-orange-700 dark:text-orange-300","complete"===e.tone&&"bg-green-500/30 text-green-700 dark:text-green-300","archived"===e.tone&&"bg-gray-500/30 text-gray-600 dark:text-gray-400"),children:e.badge})]}),(0,t.jsx)("span",{className:(0,k.cn)("font-medium leading-tight truncate",r?"text-[8px]":"text-[10px]"),title:e.label,children:r?e.shortLabel:e.label}),(0,t.jsx)(g.Handle,{type:"source",position:g.Position.Right,className:"opacity-0"})]})});E.displayName="SpecNode";let M={specNode:E};function C({spec:e,type:r,depth:n,onClick:a}){let s=1===n?"Direct":`L${n}`;return(0,t.jsxs)("button",{onClick:a,className:(0,k.cn)("w-full text-left px-2 py-1.5 rounded border-l-2 bg-muted/30 hover:bg-muted/50 transition-colors",{upstream:"border-l-amber-500",downstream:"border-l-emerald-500"}[r]),children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("span",{className:"text-[10px] font-bold text-muted-foreground",children:["#",e.number.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:(0,k.cn)("text-[8px] px-1 py-0.5 rounded font-medium uppercase","planned"===e.status&&"bg-blue-500/20 text-blue-600 dark:text-blue-400","in-progress"===e.status&&"bg-orange-500/20 text-orange-600 dark:text-orange-400","complete"===e.status&&"bg-green-500/20 text-green-600 dark:text-green-400","archived"===e.status&&"bg-gray-500/20 text-gray-500 dark:text-gray-400"),children:"in-progress"===e.status?"WIP":e.status.slice(0,3)}),(0,t.jsx)("span",{className:"text-[8px] px-1 py-0.5 rounded bg-muted text-muted-foreground font-medium ml-auto",children:s})]}),(0,t.jsx)("p",{className:"text-[11px] text-foreground truncate leading-tight mt-0.5",children:e.name})]})}function R({focusedDetails:e,onSelectSpec:r,onOpenSpec:n}){if(!e)return(0,t.jsx)("div",{className:"w-64 shrink-0 rounded-lg border border-border bg-background/95 overflow-hidden flex flex-col",children:(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[(0,t.jsx)("div",{className:"w-12 h-12 mx-auto mb-3 rounded-full bg-muted/50 flex items-center justify-center",children:(0,t.jsx)("svg",{className:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"})})}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Select a spec"}),(0,t.jsx)("p",{className:"text-xs mt-1",children:"Click on a spec to see its dependencies"})]})})});let{node:a,upstream:s,downstream:o}=e;return(0,t.jsxs)("div",{className:"w-64 shrink-0 rounded-lg border border-border bg-background/95 overflow-hidden flex flex-col",children:[(0,t.jsxs)("div",{className:"p-3 border-b border-border bg-muted/30",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,t.jsxs)("span",{className:"font-bold text-sm",children:["#",a.number.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:(0,k.cn)("px-1.5 py-0.5 rounded text-[10px] font-medium uppercase","planned"===a.status&&"bg-blue-500/20 text-blue-600 dark:text-blue-300","in-progress"===a.status&&"bg-orange-500/20 text-orange-600 dark:text-orange-300","complete"===a.status&&"bg-green-500/20 text-green-600 dark:text-green-300","archived"===a.status&&"bg-gray-500/20 text-gray-500 dark:text-gray-300"),children:a.status})]}),(0,t.jsx)("p",{className:"text-sm font-medium text-foreground leading-snug",children:a.name}),(0,t.jsx)("button",{onClick:()=>n(a.number),className:"mt-2 w-full rounded bg-primary/20 border border-primary/40 px-2 py-1.5 text-xs text-primary hover:bg-primary/30 font-medium",children:"Open Spec →"})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-auto p-3 space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-amber-500"}),(0,t.jsxs)("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:["Depends On (",s.reduce((e,t)=>e+t.specs.length,0),")"]})]}),s.length>0?(0,t.jsx)("div",{className:"space-y-1.5",children:s.flatMap(e=>e.specs.map(n=>(0,t.jsx)(C,{spec:n,type:"upstream",depth:e.depth,onClick:()=>r(n.id)},n.id)))}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground/60 italic",children:"No upstream dependencies"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-emerald-500"}),(0,t.jsxs)("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:["Required By (",o.reduce((e,t)=>e+t.specs.length,0),")"]})]}),o.length>0?(0,t.jsx)("div",{className:"space-y-1.5",children:o.flatMap(e=>e.specs.map(n=>(0,t.jsx)(C,{spec:n,type:"downstream",depth:e.depth,onClick:()=>r(n.id)},n.id)))}):(0,t.jsx)("p",{className:"text-xs text-muted-foreground/60 italic",children:"No specs depend on this"})]})]})]})}var O=e.i(35380);function z({data:e,projectId:i}){let l=(0,n.useRouter)(),d=(0,n.usePathname)(),c=(0,n.useSearchParams)(),u=c.get("spec"),f=r.useCallback(e=>i?`/projects/${i}/specs/${e}`:`/specs/${e}`,[i]),[h,x]=r.useState(null),[m,p]=r.useState(!1),[b,y]=r.useState([]),[w,v]=r.useState(null),[S,E]=r.useState(e.nodes.length>30),[C,z]=r.useState(!1),[P,L]=r.useState(""),D=r.useRef(null),I=r.useRef(!1),q=r.useRef(null);r.useEffect(()=>{if(!I.current){if(u){let t=e.nodes.find(e=>e.number.toString()===u);t&&(q.current=t.id,v(t.id))}I.current=!0}},[u,e.nodes]),r.useEffect(()=>{if(!I.current)return;if(null!==q.current){if(w===q.current){q.current=null;return}q.current=null}let t=w?e.nodes.find(e=>e.id===w):null,r=t?t.number.toString():null;if(r!==u){let e=new URLSearchParams(c.toString());r?e.set("spec",r):e.delete("spec");let t=e.toString()?`${d}?${e.toString()}`:d;l.replace(t,{scroll:!1})}},[w,e.nodes,u,d,l,c]);let W=r.useMemo(()=>e.edges.filter(e=>"dependsOn"===e.type),[e.edges]),T=r.useMemo(()=>w?function(e,t,r=2){let n=new Map;n.set(e,0);let a=new Map,s=new Map;t.forEach(e=>{a.has(e.source)||a.set(e.source,new Set),a.get(e.source).add(e.target),s.has(e.target)||s.set(e.target,new Set),s.get(e.target).add(e.source)});let o=new Set([e]),i=1;for(;o.size>0&&i<=r;){let e=new Set;o.forEach(t=>{let r=a.get(t);r&&r.forEach(t=>{n.has(t)||(n.set(t,i),e.add(t))})}),o=e,i++}for(o=new Set([e]),i=1;o.size>0&&i<=r;){let e=new Set;o.forEach(t=>{let r=s.get(t);r&&r.forEach(t=>{n.has(t)||(n.set(t,i),e.add(t))})}),o=e,i++}return n}(w,W,1/0):null,[w,W]),A=r.useMemo(()=>{if(!w)return null;let t=e.nodes.find(e=>e.id===w);if(!t)return null;let r=new Map(e.nodes.map(e=>[e.id,e])),n=new Map,a=new Map;W.forEach(e=>{n.has(e.source)||n.set(e.source,new Set),n.get(e.source).add(e.target),a.has(e.target)||a.set(e.target,new Set),a.get(e.target).add(e.source)});let s=(e,t)=>{let n=new Set([e]),a=[],s=new Set([e]),o=1;for(;s.size>0;){let e=new Set,i=[];s.forEach(a=>{let s=t.get(a);s&&s.forEach(t=>{if(!n.has(t)){n.add(t),e.add(t);let a=r.get(t);a&&i.push(a)}})}),i.length>0&&a.push({depth:o,specs:i}),s=e,o++}return a};return{node:t,upstream:s(w,n),downstream:s(w,a)}},[w,e.nodes,W]),H=r.useMemo(()=>{let t=new Set(e.nodes.filter(e=>0===b.length||b.includes(e.status)).map(e=>e.id)),r=new Set(t),n=[...t];for(;n.length>0;){let e=n.shift();W.forEach(t=>{t.source!==e||r.has(t.target)||(r.add(t.target),n.push(t.target)),t.target!==e||r.has(t.source)||(r.add(t.source),n.push(t.source))})}let a=e.nodes.filter(e=>r.has(e.id)),s=W.filter(e=>r.has(e.source)&&r.has(e.target)),o=a;if(!m){let e=new Set;s.forEach(t=>{e.add(t.source),e.add(t.target)}),o=a.filter(t=>e.has(t.id))}let i=new Set(o.map(e=>e.id)),l=new Set([...i].filter(e=>!t.has(e)));return function(e,t,r,n){if(0===e.length)return{nodes:[],edges:[]};let a=r?120:180,s=r?40:60,o=r?30:50,i=new Set;t.forEach(e=>{i.add(e.source),i.add(e.target)});let l=e.filter(e=>i.has(e.id)),d=n?e.filter(e=>!i.has(e.id)):[],c=[];if(l.length>0){let e=new O.default.graphlib.Graph;e.setGraph({rankdir:"LR",align:"UL",nodesep:r?30:50,ranksep:r?80:120,marginx:40,marginy:40}),e.setDefaultEdgeLabel(()=>({})),l.forEach(t=>{e.setNode(t.id,{width:a,height:s})}),t.forEach(t=>{i.has(t.source)&&i.has(t.target)&&e.setEdge(t.source,t.target)}),O.default.layout(e);let n=1/0,u=1/0,f=0,g=0;if(l.forEach(t=>{let r=e.node(t.id);n=Math.min(n,r.x-a/2),u=Math.min(u,r.y-s/2),f=Math.max(f,r.x+a/2),g=Math.max(g,r.y+s/2)}),l.forEach(t=>{let r=e.node(t.id);c.push({...t,position:{x:r.x-n,y:r.y-u}})}),d.length>0){let e=f-n,t=g-u+2*o,r=Math.ceil(Math.sqrt(1.5*d.length)),i=r*(a+o),l=e>i?Math.floor((e-i)/2):0;d.forEach((e,n)=>{let i=Math.floor(n/r);c.push({...e,position:{x:l+n%r*(a+o),y:t+i*(s+o)}})})}}else{let e=Math.ceil(Math.sqrt(1.5*d.length));d.forEach((t,r)=>{let n=Math.floor(r/e);c.push({...t,position:{x:r%e*(a+o),y:n*(s+o)}})})}return{nodes:c,edges:t}}(o.map(e=>{let t,r=w===e.id,n=l.has(e.id),a=!1;return w&&(a=void 0===(t=T?.get(e.id))),{id:e.id,type:"specNode",data:{label:e.name,shortLabel:e.name.length>14?e.name.slice(0,12)+"…":e.name,badge:"in-progress"===e.status?"WIP":e.status.slice(0,3).toUpperCase(),number:e.number,tone:e.status,href:f(e.number),interactive:!0,isFocused:r,connectionDepth:t,isDimmed:a,isCompact:S,isSecondary:n},position:{x:0,y:0},draggable:!0,selectable:!0,sourcePosition:g.Position.Right,targetPosition:g.Position.Left}}),s.filter(e=>i.has(e.source)&&i.has(e.target)).map(e=>{let t=!0,r=.7;if(w){let n=T?.get(e.source),a=T?.get(e.target);r=(t=void 0!==n&&void 0!==a&&(0===n||0===a))?1:void 0!==n&&void 0!==a?.4:.1}return{id:`${e.source}-${e.target}-dependsOn`,source:e.source,target:e.target,type:"smoothstep",animated:t&&null!==w,markerEnd:{type:g.MarkerType.ArrowClosed,color:j,width:18,height:18},style:{stroke:j,strokeWidth:t?2.5:1.5,opacity:r}}}),S,m)},[e,W,b,w,T,S,m]),B=r.useMemo(()=>{let t=new Set;return W.forEach(e=>{t.add(e.source),t.add(e.target)}),{connected:t.size,standalone:e.nodes.length-t.size}},[W,e.nodes.length]),F=r.useMemo(()=>{let t={};return e.nodes.forEach(e=>{t[e.status]=(t[e.status]||0)+1}),t},[e.nodes]),_=r.useCallback(e=>{x(e),requestAnimationFrame(()=>{e.fitView({padding:.15,duration:300})})},[]);r.useEffect(()=>{if(!h)return;let e=setTimeout(()=>{h.fitView({padding:.15,duration:300})},50);return()=>clearTimeout(e)},[h,H.nodes.length,b,m]),r.useEffect(()=>{if(!h||!w||!u)return;let e=H.nodes.find(e=>e.id===w);if(e){let t=setTimeout(()=>{h.setCenter(e.position.x+80,e.position.y+30,{duration:400,zoom:1})},400);return()=>clearTimeout(t)}},[h,w,u,H.nodes]),r.useEffect(()=>{let e=e=>{D.current&&!D.current.contains(e.target)&&z(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let V=r.useMemo(()=>{if(!P.trim())return e.nodes.slice(0,15);let t=P.toLowerCase();return e.nodes.filter(e=>e.name.toLowerCase().includes(t)||e.number.toString().includes(t)||e.tags.some(e=>e.toLowerCase().includes(t))).slice(0,15)},[e.nodes,P]),U=r.useMemo(()=>w?e.nodes.find(e=>e.id===w):null,[w,e.nodes]),G=r.useCallback((e,t)=>{if(t?.data){if(2===e.detail&&t.data.href)return void l.push(t.data.href);v(e=>e===t.id?null:t.id)}},[l]),K=r.useCallback(()=>{v(null)},[]),Y=b.length>0||w;return(0,t.jsxs)("div",{className:"flex h-full flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center gap-4",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Dependency Graph"}),(0,t.jsx)("p",{className:"text-sm text-foreground",children:B.connected>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"text-emerald-600 dark:text-emerald-400",children:[B.connected," specs with dependencies"]}),B.standalone>0&&(0,t.jsxs)(t.Fragment,{children:[" • ",(0,t.jsxs)("span",{className:"text-muted-foreground",children:[B.standalone," standalone"]})]})]}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"No dependencies defined"})})]})}),(0,t.jsxs)("div",{className:"relative",ref:D,children:[(0,t.jsxs)("button",{onClick:()=>z(!C),className:(0,k.cn)("h-7 w-52 rounded-md border bg-background px-2.5 text-xs text-left flex items-center gap-2 transition-colors",w?"border-primary/60 bg-primary/10":"border-border hover:border-primary/40"),children:[U?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"text-muted-foreground",children:["#",U.number.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate flex-1 text-foreground",children:U.name})]}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"Select spec to highlight..."}),(0,t.jsx)("svg",{className:"w-3 h-3 text-muted-foreground shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),C&&(0,t.jsxs)("div",{className:"absolute right-0 top-8 z-50 w-64 rounded-md border border-border bg-background shadow-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"p-2 border-b border-border",children:(0,t.jsx)("input",{type:"text",placeholder:"Type to filter...",value:P,onChange:e=>L(e.target.value),className:"w-full h-7 rounded border border-border bg-muted/30 px-2 text-xs placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary",autoFocus:!0})}),(0,t.jsxs)("div",{className:"max-h-64 overflow-auto",children:[w&&(0,t.jsxs)("button",{onClick:()=>{v(null),z(!1),L("")},className:"w-full px-3 py-2 text-xs text-left hover:bg-muted/50 border-b border-border text-muted-foreground flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-red-400",children:"×"})," Clear selection"]}),V.length>0?V.map(e=>(0,t.jsxs)("button",{onClick:()=>(e=>{if(v(e),z(!1),L(""),h){let t=H.nodes.find(t=>t.id===e);t&&h.setCenter(t.position.x+80,t.position.y+30,{duration:400,zoom:1})}})(e.id),className:(0,k.cn)("w-full px-3 py-2 text-xs text-left hover:bg-muted/50 flex items-center gap-2",w===e.id&&"bg-primary/20"),children:[(0,t.jsxs)("span",{className:"text-muted-foreground font-mono",children:["#",e.number.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name}),(0,t.jsx)("span",{className:(0,k.cn)("text-[9px] px-1 py-0.5 rounded uppercase font-medium","planned"===e.status&&"bg-blue-500/20 text-blue-600 dark:text-blue-400","in-progress"===e.status&&"bg-orange-500/20 text-orange-600 dark:text-orange-400","complete"===e.status&&"bg-green-500/20 text-green-600 dark:text-green-400","archived"===e.status&&"bg-gray-500/20 text-gray-500 dark:text-gray-400"),children:"in-progress"===e.status?"WIP":e.status.slice(0,3)})]},e.id)):(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-muted-foreground text-center",children:"No specs found"})]})]})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 text-xs",children:[["planned","in-progress","complete","archived"].map(e=>{let r=0===b.length||b.includes(e);return(0,t.jsxs)("button",{onClick:()=>{y(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),v(null)},className:(0,k.cn)("rounded border px-2 py-1 font-medium transition-colors",r&&"planned"===e&&"border-blue-500/60 bg-blue-500/20 text-blue-700 dark:text-blue-300",r&&"in-progress"===e&&"border-orange-500/60 bg-orange-500/20 text-orange-700 dark:text-orange-300",r&&"complete"===e&&"border-green-500/60 bg-green-500/20 text-green-700 dark:text-green-300",r&&"archived"===e&&"border-gray-500/60 bg-gray-500/20 text-gray-600 dark:text-gray-300",!r&&"border-border bg-background text-muted-foreground/40"),children:["in-progress"===e?"WIP":e.charAt(0).toUpperCase()+e.slice(1),(0,t.jsxs)("span",{className:"ml-1 opacity-60",children:["(",F[e]||0,")"]})]},e)}),(0,t.jsx)("span",{className:"h-3 w-px bg-border"}),(0,t.jsxs)("button",{onClick:()=>p(!m),className:(0,k.cn)("rounded border px-2 py-1 font-medium transition-colors",m?"border-violet-500/60 bg-violet-500/20 text-violet-700 dark:text-violet-300":"border-border bg-background hover:bg-accent text-muted-foreground"),children:["Show Standalone",(0,t.jsxs)("span",{className:"ml-1 opacity-60",children:["(",B.standalone,")"]})]}),(0,t.jsx)("span",{className:"h-3 w-px bg-border"}),(0,t.jsx)("button",{onClick:()=>E(!S),className:(0,k.cn)("rounded border px-2 py-1 font-medium transition-colors",S?"border-primary/60 bg-primary/20 text-primary":"border-border bg-background hover:bg-accent text-muted-foreground"),children:"Compact"}),Y&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"h-3 w-px bg-border"}),(0,t.jsx)("button",{onClick:()=>{y([]),v(null),L("")},className:"rounded border border-red-500/40 bg-red-500/10 px-2 py-1 font-medium text-red-400 hover:bg-red-500/20",children:"Clear"})]})]}),(0,t.jsxs)("div",{className:"flex flex-1 gap-3 min-h-0",children:[(0,t.jsx)("div",{className:"flex-1 overflow-hidden rounded-lg border border-border bg-gray-50 dark:bg-[#080c14]",children:H.nodes.length>0?(0,t.jsxs)(a.default,{nodes:H.nodes,edges:H.edges,nodeTypes:M,onInit:_,className:"h-full w-full",fitView:!0,proOptions:{hideAttribution:!0},nodesDraggable:!0,nodesConnectable:!1,elementsSelectable:!0,panOnScroll:!0,panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,minZoom:.05,maxZoom:2,onNodeClick:G,onPaneClick:K,children:[(0,t.jsx)(s.Background,{gap:20,size:1,color:"rgba(100, 116, 139, 0.06)"}),(0,t.jsx)(o.Controls,{showInteractive:!1,className:"!bg-background/90 !border-border !rounded-md"}),(0,t.jsx)(N,{nodeColor:e=>$[e.data.tone]||"#6b7280",maskColor:"rgba(128, 128, 128, 0.6)",className:"!bg-white/95 dark:!bg-background/95 !border-border !rounded-md",style:{width:120,height:80},pannable:!0,zoomable:!0})]}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:"No dependencies to display"}),(0,t.jsx)("p",{className:"text-xs mt-1",children:m?"No specs match the current filters":'Enable "Show Standalone" to see specs without dependencies'})]})})}),(0,t.jsx)(R,{focusedDetails:A,onSelectSpec:v,onOpenSpec:e=>l.push(f(e))})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-4 text-[10px] text-muted-foreground",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"inline-block h-0.5 w-6 bg-amber-400 rounded"}),"Depends On (arrow shows direction)"]}),(0,t.jsx)("span",{className:"text-muted-foreground/50 ml-auto",children:"Click: select • Double-click: open • Drag to rearrange"})]})]})}e.s(["ProjectDependencyGraphClient",()=>z],506361)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81795,t=>{"use strict";var e=t.i(431231),a=(t,e,a,o,r,n,s,i)=>{let l=document.documentElement,d=["light","dark"];function c(e){var a;(Array.isArray(t)?t:[t]).forEach(t=>{let a="class"===t,o=a&&n?r.map(t=>n[t]||t):r;a?(l.classList.remove(...o),l.classList.add(n&&n[e]?n[e]:e)):l.setAttribute(t,e)}),a=e,i&&d.includes(a)&&(l.style.colorScheme=a)}if(o)c(o);else try{let t=localStorage.getItem(e)||a,o=s&&"system"===t?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t;c(o)}catch(t){}},o=["light","dark"],r="(prefers-color-scheme: dark)",n="undefined"==typeof window,s=e.createContext(void 0),i={setTheme:t=>{},themes:[]},l=()=>{var t;return null!=(t=e.useContext(s))?t:i},d=t=>e.useContext(s)?e.createElement(e.Fragment,null,t.children):e.createElement(u,{...t}),c=["light","dark"],u=({forcedTheme:t,disableTransitionOnChange:a=!1,enableSystem:n=!0,enableColorScheme:i=!0,storageKey:l="theme",themes:d=c,defaultTheme:u=n?"system":"light",attribute:g="data-theme",value:b,children:y,nonce:v,scriptProps:w})=>{let[x,E]=e.useState(()=>m(l,u)),[k,T]=e.useState(()=>"system"===x?h():x),S=b?Object.values(b):d,N=e.useCallback(t=>{let e=t;if(!e)return;"system"===t&&n&&(e=h());let r=b?b[e]:e,s=a?p(v):null,l=document.documentElement,d=t=>{"class"===t?(l.classList.remove(...S),r&&l.classList.add(r)):t.startsWith("data-")&&(r?l.setAttribute(t,r):l.removeAttribute(t))};if(Array.isArray(g)?g.forEach(d):d(g),i){let t=o.includes(u)?u:null,a=o.includes(e)?e:t;l.style.colorScheme=a}null==s||s()},[v]),C=e.useCallback(t=>{let e="function"==typeof t?t(x):t;E(e);try{localStorage.setItem(l,e)}catch(t){}},[x]),M=e.useCallback(e=>{T(h(e)),"system"===x&&n&&!t&&N("system")},[x,t]);e.useEffect(()=>{let t=window.matchMedia(r);return t.addListener(M),M(t),()=>t.removeListener(M)},[M]),e.useEffect(()=>{let t=t=>{t.key===l&&(t.newValue?E(t.newValue):C(u))};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[C]),e.useEffect(()=>{N(null!=t?t:x)},[t,x]);let B=e.useMemo(()=>({theme:x,setTheme:C,forcedTheme:t,resolvedTheme:"system"===x?k:x,themes:n?[...d,"system"]:d,systemTheme:n?k:void 0}),[x,C,t,k,n,d]);return e.createElement(s.Provider,{value:B},e.createElement(f,{forcedTheme:t,storageKey:l,attribute:g,enableSystem:n,enableColorScheme:i,defaultTheme:u,value:b,themes:d,nonce:v,scriptProps:w}),y)},f=e.memo(({forcedTheme:t,storageKey:o,attribute:r,enableSystem:n,enableColorScheme:s,defaultTheme:i,value:l,themes:d,nonce:c,scriptProps:u})=>{let f=JSON.stringify([r,o,i,t,d,l,n,s]).slice(1,-1);return e.createElement("script",{...u,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?c:"",dangerouslySetInnerHTML:{__html:`(${a.toString()})(${f})`}})}),m=(t,e)=>{let a;if(!n){try{a=localStorage.getItem(t)||void 0}catch(t){}return a||e}},p=t=>{let e=document.createElement("style");return t&&e.setAttribute("nonce",t),e.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},h=t=>(t||(t=window.matchMedia(r)),t.matches?"dark":"light");t.s(["ThemeProvider",()=>d,"useTheme",()=>l])},178420,t=>{"use strict";var e=t.i(890022),a=t.i(995403),o=t.i(81795);function r(){let{theme:t}=(0,o.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",()=>r])},826985,t=>{"use strict";var e=t.i(431231),a=t.i(122925),o=t.i(890022),r=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),n=e.forwardRef((t,e)=>(0,o.jsx)(a.Primitive.span,{...t,ref:e,style:{...r,...t.style}}));n.displayName="VisuallyHidden",t.s(["Root",()=>n,"VISUALLY_HIDDEN_STYLES",()=>r])},230827,(t,e,a)=>{e.exports=t.r(301698)},995403,t=>{"use strict";var e=t.i(431231),a=t.i(395635);let o=Array(12).fill(0),r=({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"},o.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,...o}=t,r="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===r),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),n?this.toasts=this.toasts.map(e=>e.id===r?(this.publish({...e,...t,id:r,title:a}),{...e,...t,id:r,dismissible:s,title:a}):e):this.addToast({title:a,...o,dismissible:s,id:r}),r},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 o,r;if(!a)return;void 0!==a.loading&&(r=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!==r,i=n.then(async t=>{if(o=["resolve",t],e.default.isValidElement(t))s=!1,this.create({id:r,type:"default",message:t});else if(f(t)&&!t.ok){s=!1;let o="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 o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let o="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"error",description:n,...i})}else if(void 0!==a.success){s=!1;let o="function"==typeof a.success?await a.success(t):a.success,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"success",description:n,...i})}}).catch(async t=>{if(o=["reject",t],void 0!==a.error){s=!1;let o="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(r),r=void 0),null==a.finally||a.finally.call(a)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===o[0]?e(o[1]):t(o[1])).catch(e));return"string"!=typeof r&&"number"!=typeof r?{unwrap:l}:Object.assign(r,{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,m=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 p(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,o,c,u,f,m,g,b,y,v,w,x,E;let{invert:k,toast:T,unstyled:S,interacting:N,setHeights:C,visibleToasts:M,heights:B,index:j,toasts:z,expanded:A,removeToast:L,defaultRichColors:R,closeButton:I,style:P,cancelButtonStyle:Y,actionButtonStyle:D,className:$="",descriptionClassName:H="",duration:V,position:O,gap:U,expandByDefault:K,classNames:X,icons:F,closeButtonAriaLabel:W="Close toast"}=t,[_,q]=e.default.useState(null),[J,G]=e.default.useState(null),[Q,Z]=e.default.useState(!1),[tt,te]=e.default.useState(!1),[ta,to]=e.default.useState(!1),[tr,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(T.duration||V||4e3),tm=e.default.useRef(null),tp=e.default.useRef(null),th=0===j,tg=j+1<=M,tb=T.type,ty=!1!==T.dismissible,tv=T.className||"",tw=T.descriptionClassName||"",tx=e.default.useMemo(()=>B.findIndex(t=>t.toastId===T.id)||0,[B,T.id]),tE=e.default.useMemo(()=>{var t;return null!=(t=T.closeButton)?t:I},[T.closeButton,I]),tk=e.default.useMemo(()=>T.duration||V||4e3,[T.duration,V]),tT=e.default.useRef(0),tS=e.default.useRef(0),tN=e.default.useRef(0),tC=e.default.useRef(null),[tM,tB]=O.split("-"),tj=e.default.useMemo(()=>B.reduce((t,e,a)=>a>=tx?t:t+e.height,0),[B,tx]),tz=(()=>{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})(),tA=T.invert||k,tL="loading"===tb;tS.current=e.default.useMemo(()=>tx*U+tj,[tx,tj]),e.default.useEffect(()=>{tf.current=tk},[tk]),e.default.useEffect(()=>{Z(!0)},[]),e.default.useEffect(()=>{let t=tp.current;if(t){let e=t.getBoundingClientRect().height;return tu(e),C(t=>[{toastId:T.id,height:e,position:T.position},...t]),()=>C(t=>t.filter(t=>t.toastId!==T.id))}},[C,T.id]),e.default.useLayoutEffect(()=>{if(!Q)return;let t=tp.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,tu(a),C(t=>t.find(t=>t.toastId===T.id)?t.map(t=>t.toastId===T.id?{...t,height:a}:t):[{toastId:T.id,height:a,position:T.position},...t])},[Q,T.title,T.description,C,T.id,T.jsx,T.action,T.cancel]);let tR=e.default.useCallback(()=>{te(!0),td(tS.current),C(t=>t.filter(t=>t.toastId!==T.id)),setTimeout(()=>{L(T)},200)},[T,L,C,tS]);e.default.useEffect(()=>{let t;if((!T.promise||"loading"!==tb)&&T.duration!==1/0&&"loading"!==T.type){if(A||N||tz){if(tN.current<tT.current){let t=new Date().getTime()-tT.current;tf.current=tf.current-t}tN.current=new Date().getTime()}else tf.current!==1/0&&(tT.current=new Date().getTime(),t=setTimeout(()=>{null==T.onAutoClose||T.onAutoClose.call(T,T),tR()},tf.current));return()=>clearTimeout(t)}},[A,N,T,tb,tz,tR]),e.default.useEffect(()=>{T.delete&&(tR(),null==T.onDismiss||T.onDismiss.call(T,T))},[tR,T.delete]);let tI=T.icon||(null==F?void 0:F[tb])||(t=>{switch(t){case"success":return n;case"info":return i;case"warning":return s;case"error":return l;default:return null}})(tb);return e.default.createElement("li",{tabIndex:0,ref:tp,className:h($,tv,null==X?void 0:X.toast,null==T||null==(a=T.classNames)?void 0:a.toast,null==X?void 0:X.default,null==X?void 0:X[tb],null==T||null==(o=T.classNames)?void 0:o[tb]),"data-sonner-toast":"","data-rich-colors":null!=(v=T.richColors)?v:R,"data-styled":!(T.jsx||T.unstyled||S),"data-mounted":Q,"data-promise":!!T.promise,"data-swiped":ts,"data-removed":tt,"data-visible":tg,"data-y-position":tM,"data-x-position":tB,"data-index":j,"data-front":th,"data-swiping":ta,"data-dismissible":ty,"data-type":tb,"data-invert":tA,"data-swipe-out":tr,"data-swipe-direction":J,"data-expanded":!!(A||K&&Q),"data-testid":T.testId,style:{"--index":j,"--toasts-before":j,"--z-index":z.length-j,"--offset":`${tt?tl:tS.current}px`,"--initial-height":K?"auto":`${tc}px`,...P,...T.style},onDragEnd:()=>{to(!1),q(null),tC.current=null},onPointerDown:t=>{2===t.button||tL||!ty||(tm.current=new Date,td(tS.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(to(!0),tC.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,o,r;if(tr||!ty)return;tC.current=null;let n=Number((null==(t=tp.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),s=Number((null==(e=tp.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=tm.current)?void 0:a.getTime()),l="x"===_?n:s,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){td(tS.current),null==T.onDismiss||T.onDismiss.call(T,T),"x"===_?G(n>0?"right":"left"):G(s>0?"down":"up"),tR(),tn(!0);return}null==(o=tp.current)||o.style.setProperty("--swipe-amount-x","0px"),null==(r=tp.current)||r.style.setProperty("--swipe-amount-y","0px"),ti(!1),to(!1),q(null)},onPointerMove:e=>{var a,o,r,n;if(!tC.current||!ty||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tC.current.y,i=e.clientX-tC.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),o=[];return e&&o.push(e),a&&o.push(a),o}(O);!_&&(Math.abs(i)>1||Math.abs(s)>1)&&q(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"===_){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"===_&&(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==(o=tp.current)||o.style.setProperty("--swipe-amount-x",`${d.x}px`),null==(r=tp.current)||r.style.setProperty("--swipe-amount-y",`${d.y}px`)}},tE&&!T.jsx&&"loading"!==tb?e.default.createElement("button",{"aria-label":W,"data-disabled":tL,"data-close-button":!0,onClick:tL||!ty?()=>{}:()=>{tR(),null==T.onDismiss||T.onDismiss.call(T,T)},className:h(null==X?void 0:X.closeButton,null==T||null==(c=T.classNames)?void 0:c.closeButton)},null!=(w=null==F?void 0:F.close)?w:d):null,(tb||T.icon||T.promise)&&null!==T.icon&&((null==F?void 0:F[tb])!==null||T.icon)?e.default.createElement("div",{"data-icon":"",className:h(null==X?void 0:X.icon,null==T||null==(u=T.classNames)?void 0:u.icon)},T.promise||"loading"===T.type&&!T.icon?T.icon||((null==F?void 0:F.loading)?e.default.createElement("div",{className:h(null==X?void 0:X.loader,null==T||null==(E=T.classNames)?void 0:E.loader,"sonner-loader"),"data-visible":"loading"===tb},F.loading):e.default.createElement(r,{className:h(null==X?void 0:X.loader,null==T||null==(x=T.classNames)?void 0:x.loader),visible:"loading"===tb})):null,"loading"!==T.type?tI:null):null,e.default.createElement("div",{"data-content":"",className:h(null==X?void 0:X.content,null==T||null==(f=T.classNames)?void 0:f.content)},e.default.createElement("div",{"data-title":"",className:h(null==X?void 0:X.title,null==T||null==(m=T.classNames)?void 0:m.title)},T.jsx?T.jsx:"function"==typeof T.title?T.title():T.title),T.description?e.default.createElement("div",{"data-description":"",className:h(H,tw,null==X?void 0:X.description,null==T||null==(g=T.classNames)?void 0:g.description)},"function"==typeof T.description?T.description():T.description):null),e.default.isValidElement(T.cancel)?T.cancel:T.cancel&&p(T.cancel)?e.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:T.cancelButtonStyle||Y,onClick:t=>{!p(T.cancel)||ty&&(null==T.cancel.onClick||T.cancel.onClick.call(T.cancel,t),tR())},className:h(null==X?void 0:X.cancelButton,null==T||null==(b=T.classNames)?void 0:b.cancelButton)},T.cancel.label):null,e.default.isValidElement(T.action)?T.action:T.action&&p(T.action)?e.default.createElement("button",{"data-button":!0,"data-action":!0,style:T.actionButtonStyle||D,onClick:t=>{!p(T.action)||(null==T.action.onClick||T.action.onClick.call(T.action,t),t.defaultPrevented||tR())},className:h(null==X?void 0:X.actionButton,null==T||null==(y=T.classNames)?void 0:y.actionButton)},T.action.label):null)};function b(){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,o){let{id:r,invert:n,position:s="bottom-right",hotkey:i=["altKey","KeyT"],expand:l,closeButton:d,className:c,offset:f,mobileOffset:m,theme:p="light",richColors:h,duration:y,style:v,visibleToasts:w=3,toastOptions:x,dir:E=b(),gap:k=14,icons:T,containerAriaLabel:S="Notifications"}=t,[N,C]=e.default.useState([]),M=e.default.useMemo(()=>r?N.filter(t=>t.toasterId===r):N.filter(t=>!t.toasterId),[N,r]),B=e.default.useMemo(()=>Array.from(new Set([s].concat(M.filter(t=>t.position).map(t=>t.position)))),[M,s]),[j,z]=e.default.useState([]),[A,L]=e.default.useState(!1),[R,I]=e.default.useState(!1),[P,Y]=e.default.useState("system"!==p?p:"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),D=e.default.useRef(null),$=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),H=e.default.useRef(null),V=e.default.useRef(!1),O=e.default.useCallback(t=>{C(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(()=>{C(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))}):setTimeout(()=>{a.default.flushSync(()=>{C(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"!==p)return void Y(p);if("system"===p&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Y("dark"):Y("light")),"undefined"==typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",({matches:t})=>{t?Y("dark"):Y("light")})}catch(e){t.addListener(({matches:t})=>{try{t?Y("dark"):Y("light")}catch(t){console.error(t)}})}},[p]),e.default.useEffect(()=>{N.length<=1&&L(!1)},[N]),e.default.useEffect(()=>{let t=t=>{var e,a;i.every(e=>t[e]||t.code===e)&&(L(!0),null==(a=D.current)||a.focus()),"Escape"===t.code&&(document.activeElement===D.current||(null==(e=D.current)?void 0:e.contains(document.activeElement)))&&L(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i]),e.default.useEffect(()=>{if(D.current)return()=>{H.current&&(H.current.focus({preventScroll:!0}),H.current=null,V.current=!1)}},[D.current]),e.default.createElement("section",{ref:o,"aria-label":`${S} ${$}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},B.map((a,o)=>{var r;let s,[i,u]=a.split("-");return M.length?e.default.createElement("ol",{key:a,dir:"auto"===E?b():E,tabIndex:-1,ref:D,className:c,"data-sonner-toaster":!0,"data-sonner-theme":P,"data-y-position":i,"data-x-position":u,style:{"--front-toast-height":`${(null==(r=j[0])?void 0:r.height)||0}px`,"--width":"356px","--gap":`${k}px`,...v,...(s={},[f,m].forEach((t,e)=>{let a=1===e,o=a?"--mobile-offset":"--offset",r=a?"16px":"24px";function n(t){["top","right","bottom","left"].forEach(e=>{s[`${o}-${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[`${o}-${e}`]=r:s[`${o}-${e}`]="number"==typeof t[e]?`${t[e]}px`:t[e]}):n(r)}),s)},onBlur:t=>{V.current&&!t.currentTarget.contains(t.relatedTarget)&&(V.current=!1,H.current&&(H.current.focus({preventScroll:!0}),H.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(V.current||(V.current=!0,H.current=t.relatedTarget))},onMouseEnter:()=>L(!0),onMouseMove:()=>L(!0),onMouseLeave:()=>{R||L(!1)},onDragEnd:()=>L(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||I(!0)},onPointerUp:()=>I(!1)},M.filter(t=>!t.position&&0===o||t.position===a).map((o,r)=>{var s,i;return e.default.createElement(g,{key:o.id,icons:T,index:r,toast:o,defaultRichColors:h,duration:null!=(s=null==x?void 0:x.duration)?s:y,className:null==x?void 0:x.className,descriptionClassName:null==x?void 0:x.descriptionClassName,invert:n,visibleToasts:w,closeButton:null!=(i=null==x?void 0:x.closeButton)?i:d,interacting:R,position:a,style:null==x?void 0:x.style,unstyled:null==x?void 0:x.unstyled,classNames:null==x?void 0:x.classNames,cancelButtonStyle:null==x?void 0:x.cancelButtonStyle,actionButtonStyle:null==x?void 0:x.actionButtonStyle,closeButtonAriaLabel:null==x?void 0:x.closeButtonAriaLabel,removeToast:O,toasts:M.filter(t=>t.position==o.position),heights:j.filter(t=>t.position==o.position),setHeights:z,expandByDefault:l,gap:k,expanded:A,swipeDirections:t.swipeDirections})})):null}))});t.s(["Toaster",()=>y,"toast",()=>m])}]);
|