@leanspec/ui 0.2.5 → 0.2.6-dev.20251125015611
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/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +95 -0
- package/.next/standalone/node_modules/.pnpm/tiktoken@1.0.22/node_modules/tiktoken/tiktoken_bg.wasm +0 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +13 -1
- package/.next/standalone/packages/ui/.next/build-manifest.json +6 -6
- package/.next/standalone/packages/ui/.next/prerender-manifest.json +6 -6
- package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
- package/.next/standalone/packages/ui/.next/routes-manifest.json +96 -3
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
- 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/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +3 -3
- 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 +21 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +21 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +26 -25
- 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 +6 -6
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js +6 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js +6 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js +6 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js +6 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +9 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +4 -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/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +3 -2
- 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 +4 -2
- 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 +4 -2
- 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]/route.js +4 -2
- 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/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +4 -2
- 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 +4 -2
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/page.js +3 -3
- 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]/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/{board → projects/[projectId]}/page/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +21 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +20 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +18 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page/next-font-manifest.json +6 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/{board → projects}/page.js +9 -10
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -0
- package/.next/standalone/packages/ui/.next/server/app/{board.meta → projects.meta} +3 -3
- package/.next/standalone/packages/ui/.next/server/app/projects.rsc +34 -0
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +34 -0
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +27 -0
- package/.next/standalone/packages/ui/.next/server/app/{board.segments → projects.segments}/_tree.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +9 -0
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +4 -0
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +5 -5
- 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/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js +3 -3
- 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/build-manifest.json +4 -4
- package/.next/standalone/packages/ui/.next/server/app/stats/page.js +3 -3
- 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 +13 -1
- package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_specs_[spec]_route_actions_d018d9e0.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_[id]_route_actions_664abe9c.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_discover_route_actions_e6ec3fa7.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_stats_route_actions_a0bb04a8.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_status_route_actions_5d700407.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +21 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ac744182._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bb9fca84._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/e0876_tiktoken_3efea2dc._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_local-projects_list-directory_route_actions_d620ec1a.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_status_route_actions_e9f1bdc5.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/node_modules__pnpm_731b55aa._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_local-projects_route_actions_9142d5ad.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_projects_[id]_route_actions_bff49675.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +64 -5
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/38a22_sonner_dist_index_mjs_207730fe._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_a5b58449._.js → 6e9bd_next_dist_df5dcbe9._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_specs_page_actions_82e32fe4.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__1af33d49._.js → [root-of-the-server]__50122e7e._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__5382b397._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +7 -0
- 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]__88a691ee._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c592f5d1._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__e5891e5a._.js → [root-of-the-server]__fd80e4dd._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_196b5a83._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_39562b2a._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6174313a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6e4dd8b6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_85effc18._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ad8c1e99._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_bae6d2b8._.js +4 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +5 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_e1889307._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_4f2c4868._.js → _fdd7780b._.js} +3 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_specs_[specId]_page_actions_22d9c35e.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_af9d3830._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_[projectId]_page_actions_f2986585.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_page_actions_715940ea.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_loading_tsx_9304a706._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_be242d6c._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_project-context-syncer_tsx_7954ea3b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_select_tsx_7e21d40f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_specs_sources_database-source_ts_f7186c2a._.js +60 -1
- package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +4 -4
- 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/07f48b316e895080.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/0a7be410b438418a.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1089ca88f6bef846.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/17471c87082c392c.js +5 -0
- package/.next/standalone/packages/ui/.next/static/chunks/220ba5cb8fe4dd69.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/35ccd3286e538bd2.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/571033caca823138.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/5a6fc30cd64085b4.css +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/843e1dfdc28e1385.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/9dad7fd31627df80.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/{f2151fb88f8fc70a.js → a055d4b2866ff8d4.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/afb7c5a4255f4081.js +3 -0
- package/.next/standalone/packages/ui/.next/static/chunks/{c557ac675be79771.js → b760a3a9c2c8be28.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/dcdd95180149fa10.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f9db24028d8c058e.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/fb640f50455ba34f.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/{turbopack-7450632b40b2e378.js → turbopack-b9690cacbf9fe48c.js} +1 -1
- package/.next/standalone/packages/ui/bin/ui.js +17 -7
- package/.next/standalone/packages/ui/package.json +4 -2
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/src/app/api/local-projects/[id]/route.ts +117 -0
- package/.next/standalone/packages/ui/src/app/api/local-projects/discover/route.ts +41 -0
- package/.next/standalone/packages/ui/src/app/api/local-projects/list-directory/route.ts +38 -0
- package/.next/standalone/packages/ui/src/app/api/local-projects/route.ts +63 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +97 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +38 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +97 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +7 -0
- package/.next/standalone/packages/ui/{dist/standalone/packages/web/src/app/api → src/app/api/projects/[id]}/stats/route.ts +7 -7
- package/.next/standalone/packages/ui/src/app/api/projects/route.ts +48 -1
- package/.next/standalone/packages/ui/src/app/api/specs/[id]/status/route.ts +122 -0
- package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +67 -6
- package/.next/standalone/packages/ui/src/app/globals.css +37 -0
- package/.next/standalone/packages/ui/src/app/layout.tsx +18 -14
- package/.next/standalone/packages/ui/src/app/not-found.tsx +1 -1
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/layout.tsx +18 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +10 -0
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/project-context-syncer.tsx +16 -0
- package/.next/standalone/packages/ui/{dist/standalone/packages/web/src/app/specs/[id] → src/app/projects/[projectId]/specs/[specId]}/page.tsx +7 -16
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/specs/page.tsx +20 -0
- package/.next/standalone/packages/ui/src/app/projects/page.tsx +156 -0
- package/.next/standalone/packages/ui/src/app/specs/page.tsx +2 -2
- package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +495 -223
- package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +139 -0
- package/.next/standalone/packages/ui/src/components/directory-picker.tsx +191 -0
- package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +4 -0
- package/.next/standalone/packages/ui/src/components/project-switcher.tsx +139 -0
- package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +71 -27
- package/.next/standalone/packages/ui/src/components/table-of-contents.tsx +56 -37
- package/.next/standalone/packages/ui/src/components/ui/dropdown-menu.tsx +200 -0
- package/.next/standalone/packages/ui/src/components/ui/popover.tsx +31 -0
- package/.next/standalone/packages/ui/src/contexts/project-context.tsx +229 -0
- package/.next/standalone/packages/ui/src/lib/db/index.ts +100 -0
- package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +23 -0
- package/.next/standalone/packages/ui/src/lib/projects/index.ts +7 -0
- package/.next/standalone/packages/ui/src/lib/projects/registry.ts +467 -0
- package/.next/standalone/packages/ui/src/lib/projects/types.ts +37 -0
- package/.next/standalone/packages/ui/src/lib/specs/service.ts +13 -1
- package/.next/standalone/packages/ui/src/lib/specs/sources/filesystem-source.ts +46 -6
- package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +258 -0
- package/.next/standalone/packages/ui/tsconfig.json +2 -1
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/standalone/packages/ui/vitest.config.ts +1 -0
- package/.next/static/chunks/07f48b316e895080.js +1 -0
- package/.next/static/chunks/0a7be410b438418a.js +1 -0
- package/.next/static/chunks/1089ca88f6bef846.js +1 -0
- package/.next/static/chunks/17471c87082c392c.js +5 -0
- package/.next/static/chunks/220ba5cb8fe4dd69.js +1 -0
- package/.next/static/chunks/35ccd3286e538bd2.js +1 -0
- package/.next/static/chunks/571033caca823138.js +1 -0
- package/.next/static/chunks/5a6fc30cd64085b4.css +1 -0
- package/.next/static/chunks/843e1dfdc28e1385.js +1 -0
- package/.next/static/chunks/9dad7fd31627df80.js +1 -0
- package/.next/static/chunks/{f2151fb88f8fc70a.js → a055d4b2866ff8d4.js} +1 -1
- package/.next/static/chunks/afb7c5a4255f4081.js +3 -0
- package/.next/static/chunks/{c557ac675be79771.js → b760a3a9c2c8be28.js} +1 -1
- package/.next/static/chunks/dcdd95180149fa10.js +1 -0
- package/.next/static/chunks/f9db24028d8c058e.js +1 -0
- package/.next/static/chunks/fb640f50455ba34f.js +1 -0
- package/.next/static/chunks/{turbopack-7450632b40b2e378.js → turbopack-b9690cacbf9fe48c.js} +1 -1
- package/bin/ui.js +17 -7
- package/package.json +4 -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/app/board/page/app-paths-manifest.json +0 -3
- package/.next/standalone/packages/ui/.next/server/app/board/page.js.nft.json +0 -1
- package/.next/standalone/packages/ui/.next/server/app/board/page_client-reference-manifest.js +0 -2
- package/.next/standalone/packages/ui/.next/server/app/board.html +0 -1
- package/.next/standalone/packages/ui/.next/server/app/board.rsc +0 -41
- package/.next/standalone/packages/ui/.next/server/app/board.segments/_full.segment.rsc +0 -41
- package/.next/standalone/packages/ui/.next/server/app/board.segments/_index.segment.rsc +0 -26
- package/.next/standalone/packages/ui/.next/server/app/board.segments/board/__PAGE__.segment.rsc +0 -9
- package/.next/standalone/packages/ui/.next/server/app/board.segments/board.segment.rsc +0 -8
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__003ee184._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__21119265._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__482b093a._.js +0 -21
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6ec5cafb._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__7acaa6ec._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2c55ffb._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__d169fe70._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f4ea2112._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__3fffdda5._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4b343655._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__68015eee._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b161f033._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b50fa24c._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c65aedd0._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__eefaabd3._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_64a39e38._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_66209e84._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_a527620e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d7e4bd50._.js +0 -5
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f8b2190a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b8ff10b9._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_board_page_actions_c5a3cb3c.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_board_loading_tsx_03dfd70d._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_board_page_tsx_9415dc46._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_input_tsx_190a7701._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_d725c10c._.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/107411d1a2f4b31d.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/17ac52d909def83e.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/212881511f73fc12.js +0 -5
- package/.next/standalone/packages/ui/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/5d646f493d4c6928.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/88f695d32910a4ac.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/aa47b212786d8695.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/ae04dcd433be6dab.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/c210559fdfe60fef.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/df1731c03abf1aee.css +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/e237e00fd3a84178.js +0 -3
- package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
- 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/leanspec.db +0 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -83
- package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/favicon.ico +0 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/file.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark-white.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/globe.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/icon.svg +0 -7
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-dark-bg.svg +0 -17
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-with-bg.svg +0 -17
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo.svg +0 -17
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/next.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/vercel.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/public/window.svg +0 -1
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
- 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/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/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-metadata.tsx +0 -136
- 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/014-complete-custom-frontmatter/README.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
- package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
- package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
- package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
- package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
- package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -306
- package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
- package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
- package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
- package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
- package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
- package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
- package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
- package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
- package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
- package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
- package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
- package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
- package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
- package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -287
- package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
- package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
- package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
- package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
- package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
- package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
- package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
- package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -825
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -501
- package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
- package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
- package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
- package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -421
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -106
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -126
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -131
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -254
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -152
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -65
- 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/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
- package/.next/standalone/packages/ui/package.json.backup +0 -119
- package/.next/standalone/packages/ui/src/app/board/board-client.tsx +0 -162
- package/.next/standalone/packages/ui/src/app/board/loading.tsx +0 -43
- package/.next/standalone/packages/ui/src/app/board/page.tsx +0 -18
- package/.next/static/chunks/107411d1a2f4b31d.js +0 -1
- package/.next/static/chunks/17ac52d909def83e.js +0 -1
- package/.next/static/chunks/212881511f73fc12.js +0 -5
- package/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
- package/.next/static/chunks/5d646f493d4c6928.js +0 -1
- package/.next/static/chunks/88f695d32910a4ac.js +0 -1
- package/.next/static/chunks/aa47b212786d8695.js +0 -1
- package/.next/static/chunks/ae04dcd433be6dab.js +0 -1
- package/.next/static/chunks/c210559fdfe60fef.js +0 -1
- package/.next/static/chunks/df1731c03abf1aee.css +0 -1
- package/.next/static/chunks/e237e00fd3a84178.js +0 -3
- /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/server/app/{board/page → api/local-projects/[id]/route}/server-reference-manifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/server/app/{board/page.js.map → api/local-projects/[id]/route.js.map} +0 -0
- /package/.next/standalone/packages/ui/.next/server/app/{board → projects/[projectId]}/page/next-font-manifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/server/app/{board → projects/[projectId]}/page/react-loadable-manifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_ssgManifest.js +0 -0
- /package/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_buildManifest.js +0 -0
- /package/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:221.2 83.2% 53.3%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:221.2 83.2% 53.3%;--radius:.5rem}.dark{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--popover:222.2 84% 4.9%;--popover-foreground:210 40% 98%;--primary:217.2 91.2% 59.8%;--primary-foreground:222.2 47.4% 11.2%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--ring:224.3 76.3% 48%}*{border-color:hsl(var(--border))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:#1118271a;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.71429}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-slate{--tw-prose-body:#334155;--tw-prose-headings:#0f172a;--tw-prose-lead:#475569;--tw-prose-links:#0f172a;--tw-prose-bold:#0f172a;--tw-prose-counters:#64748b;--tw-prose-bullets:#cbd5e1;--tw-prose-hr:#e2e8f0;--tw-prose-quotes:#0f172a;--tw-prose-quote-borders:#e2e8f0;--tw-prose-captions:#64748b;--tw-prose-kbd:#0f172a;--tw-prose-kbd-shadows:#0f172a1a;--tw-prose-code:#0f172a;--tw-prose-pre-code:#e2e8f0;--tw-prose-pre-bg:#1e293b;--tw-prose-th-borders:#cbd5e1;--tw-prose-td-borders:#e2e8f0;--tw-prose-invert-body:#cbd5e1;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#94a3b8;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#94a3b8;--tw-prose-invert-bullets:#475569;--tw-prose-invert-hr:#334155;--tw-prose-invert-quotes:#f1f5f9;--tw-prose-invert-quote-borders:#334155;--tw-prose-invert-captions:#94a3b8;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#cbd5e1;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#475569;--tw-prose-invert-td-borders:#334155}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-24{bottom:6rem}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-2{left:.5rem}.left-3{left:.75rem}.left-6{left:1.5rem}.left-\[50\%\]{left:50%}.left-\[calc\(var\(--main-sidebar-width\,240px\)\)\]{left:calc(var(--main-sidebar-width,240px))}.right-2{right:.5rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-14{top:3.5rem}.top-2\.5{top:.625rem}.top-20{top:5rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.col-span-2{grid-column:span 2/span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[85vh\]{height:85vh}.h-\[calc\(100vh-3\.5rem\)\]{height:calc(100vh - 3.5rem)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-\[14px\]{min-height:14px}.min-h-\[calc\(100vh-3\.5rem\)\]{min-height:calc(100vh - 3.5rem)}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\/3{width:66.6667%}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[280px\]{width:280px}.w-\[min\(1200px\,95vw\)\]{width:min(1200px,95vw)}.w-\[min\(900px\,90vw\)\]{width:min(900px,90vw)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-4{min-width:1rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-max{min-width:max-content}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.-translate-y-1{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-400\/70{border-color:#fbbf24b3}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-border{border-color:hsl(var(--border))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted{border-color:hsl(var(--muted))}.border-muted-foreground\/40{border-color:hsl(var(--muted-foreground)/.4)}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/70{border-color:hsl(var(--primary)/.7)}.border-red-400\/70{border-color:#f87171b3}.border-sky-400\/70{border-color:#38bdf8b3}.border-transparent{border-color:#0000}.border-l-blue-500{--tw-border-opacity:1;border-left-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-l-gray-300{--tw-border-opacity:1;border-left-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-l-gray-400{--tw-border-opacity:1;border-left-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-l-orange-500{--tw-border-opacity:1;border-left-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-l-primary{border-left-color:hsl(var(--primary))}.border-l-red-500{--tw-border-opacity:1;border-left-color:rgb(239 68 68/var(--tw-border-opacity,1))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-400\/10{background-color:#fbbf241a}.bg-amber-400\/80{background-color:#fbbf24cc}.bg-background{background-color:hsl(var(--background))}.bg-background\/95{background-color:hsl(var(--background)/.95)}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/40{background-color:hsl(var(--muted-foreground)/.4)}.bg-muted\/30{background-color:hsl(var(--muted)/.3)}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/5{background-color:hsl(var(--primary)/.05)}.bg-primary\/60{background-color:hsl(var(--primary)/.6)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-400\/10{background-color:#f871711a}.bg-red-400\/80{background-color:#f87171cc}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sky-400\/10{background-color:#38bdf81a}.bg-sky-400\/80{background-color:#38bdf8cc}.bg-transparent{background-color:#0000}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-blue-500\/10{--tw-gradient-from:#3b82f61a var(--tw-gradient-from-position);--tw-gradient-to:#3b82f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500\/10{--tw-gradient-from:#22c55e1a var(--tw-gradient-from-position);--tw-gradient-to:#22c55e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500\/10{--tw-gradient-from:#f973161a var(--tw-gradient-from-position);--tw-gradient-to:#f9731600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500\/10{--tw-gradient-from:#a855f71a var(--tw-gradient-from-position);--tw-gradient-to:#a855f700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-14{padding-left:3.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/60{color:hsl(var(--muted-foreground)/.6)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-muted-foreground\/80{color:hsl(var(--muted-foreground)/.8)}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sky-900{--tw-text-opacity:1;color:rgb(12 74 110/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:hsl(var(--muted-foreground)/.2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--muted-foreground)/.4)}.overflow-x-hidden{overflow-x:hidden!important}body{font-family:system-ui,-apple-system,sans-serif}*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}:where([class*=transform],[class*=scale],[class*=translate]){transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}html.changing-theme *{transition:none!important}.hljs{color:#16181d;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.7;overflow-x:auto;box-shadow:0 1px 3px #0000001a}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#a833cc;font-weight:600}.hljs-number,.hljs-literal,.hljs-variable,.hljs-template-variable,.hljs-tag .hljs-attr{color:#157cd1}.hljs-string,.hljs-doctag{color:#608d3f}.hljs-title,.hljs-section,.hljs-selector-id{color:#b17135;font-weight:600}.hljs-type,.hljs-class .hljs-title{color:#d5992a}.hljs-tag,.hljs-name,.hljs-attribute{color:#d7424e;font-weight:400}.hljs-regexp,.hljs-link{color:#3d9ca9}.hljs-symbol,.hljs-bullet{color:#c3983c}.hljs-built_in,.hljs-builtin-name{color:#3d9ca9}.hljs-meta{color:#586174}.hljs-deletion{color:#900;background:#fcc}.hljs-addition{color:green;background:#cfc}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.dark .hljs{color:#f3f4f6;background:#1f2228;border-color:#2c313a;box-shadow:0 1px 2px #0000004d}.dark .hljs-comment,.dark .hljs-quote{color:#676f7e}.dark .hljs-keyword,.dark .hljs-selector-tag,.dark .hljs-subst{color:#ce8de2}.dark .hljs-number,.dark .hljs-literal,.dark .hljs-variable,.dark .hljs-template-variable,.dark .hljs-tag .hljs-attr{color:#78bbf2}.dark .hljs-string,.dark .hljs-doctag{color:#a6cb8b}.dark .hljs-title,.dark .hljs-section,.dark .hljs-selector-id{color:#d7a779}.dark .hljs-type,.dark .hljs-class .hljs-title{color:#e9ca90}.dark .hljs-tag,.dark .hljs-name,.dark .hljs-attribute{color:#e48189}.dark .hljs-regexp,.dark .hljs-link{color:#69bec9}.dark .hljs-symbol,.dark .hljs-bullet{color:#ddc592}.dark .hljs-built_in,.dark .hljs-builtin-name{color:#69bec9}.dark .hljs-meta{color:#b9bfca}.dark .hljs-deletion{color:#fcc;background:maroon}.dark .hljs-addition{color:#cfc;background:green}.prose{color:#020817;max-width:none;font-size:1rem;line-height:1.75}@media (max-width:640px){.prose{font-size:.9375rem;line-height:1.65}.prose h1{font-size:1.75em}.prose h2{font-size:1.5em}.prose h3{font-size:1.25em}.prose h4{font-size:1.125em}.prose pre{border-radius:0;margin-left:-.75rem;margin-right:-.75rem}.prose table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:#020817;margin-top:2em;margin-bottom:.75em;scroll-margin-top:5rem;font-weight:600;line-height:1.25}.prose h1{border-bottom:1px solid #e2e8f0;margin-top:0;padding-bottom:.3em;font-size:2.25em}.prose h2{border-bottom:1px solid #e2e8f0;padding-bottom:.3em;font-size:1.875em}.prose h3{font-size:1.5em}.prose h4{font-size:1.25em}.prose h5{font-size:1.125em}.prose h6{font-size:1em}.prose p{margin-top:1.25em;margin-bottom:1.25em;line-height:1.75}.prose a{color:#2463eb;-webkit-text-decoration:underline #2463eb4d;text-decoration:underline #2463eb4d;transition:all .2s}.prose a:hover{color:#134cc9;text-decoration-color:#2463eb}.prose :not(pre)>code{color:#bd2835;background:#f1f2f4;border:1px solid #dcdfe4;border-radius:.25rem;padding:.2em .4em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875em;font-weight:600}.prose pre{border:1px solid #e5e7eb;border-radius:.5rem;margin:1.75em 0;overflow-x:auto;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.prose pre code{color:inherit;font-size:.875em;font-weight:400;line-height:1.7;display:block;background:0 0!important;border:none!important;border-radius:0!important}.prose ul,.prose ol{margin-top:.75em;margin-bottom:.75em;padding-left:1.625em}.prose li{margin-top:.5em;margin-bottom:.5em}.prose blockquote{color:#4f5b6d;background:#f8fafc;border-left:4px solid #2463eb;border-radius:0 .25rem .25rem 0;margin:1.5em 0;padding-top:.5em;padding-bottom:.5em;padding-left:1em}.prose blockquote p{margin:.5em 0}.prose table{border-collapse:collapse;width:100%;margin:1.5em 0}.prose th,.prose td{text-align:left;border:1px solid #e2e8f0;padding:.5em 1em}.prose th{background:hsl(var(--muted));color:hsl(var(--muted-foreground));font-weight:600}.prose hr{border:none;border-top:1px solid #e2e8f0;margin:2em 0}.prose img{border-radius:.5rem;max-width:100%;height:auto;margin:1.5em 0}.prose strong,.prose b{color:#020817;font-weight:600}.dark .prose{color:#f8fafc}.dark .prose strong,.dark .prose b{color:#f8fafc;font-weight:600}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:#f8fafc}.dark .prose h1,.dark .prose h2{border-bottom-color:#1e293b}.dark .prose a{color:#6da2f8;text-decoration-color:#6da2f84d}.dark .prose a:hover{color:#9ec1fa;text-decoration-color:#6da2f8}.dark .prose :not(pre)>code{color:#e48189;background:#282c34;border-color:#373d48;font-weight:600}.dark .prose pre{border-color:#2c313a;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -2px #0000004d}.dark .prose blockquote{color:#b3bdcc;background:#151c29;border-left-color:#6da2f8}.dark .prose th,.dark .prose td{border-color:#1e293b}.dark .prose th{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.dark .prose hr{border-top-color:#1e293b}.dark\:prose-invert:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}@media (min-width:640px){.sm\:prose-base{font-size:1rem;line-height:1.75}.sm\:prose-base :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.sm\:prose-base :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.sm\:prose-base :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.sm\:prose-base :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.888889em;font-size:2.25em;line-height:1.11111}.sm\:prose-base :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:1em;font-size:1.5em;line-height:1.33333}.sm\:prose-base :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;line-height:1.6}.sm\:prose-base :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.sm\:prose-base :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.sm\:prose-base :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.sm\:prose-base :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.sm\:prose-base :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.sm\:prose-base :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-size:.875em}.sm\:prose-base :where(code):not(:where([class~=not-prose],[class~=not-prose] *)),.sm\:prose-base :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.sm\:prose-base :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.sm\:prose-base :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;line-height:1.71429}.sm\:prose-base :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.sm\:prose-base :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.sm\:prose-base :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.sm\:prose-base :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.sm\:prose-base :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.sm\:prose-base :where(.sm\:prose-base>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.sm\:prose-base :where(.sm\:prose-base>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.sm\:prose-base :where(.sm\:prose-base>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.sm\:prose-base :where(.sm\:prose-base>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.sm\:prose-base :where(.sm\:prose-base>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.sm\:prose-base :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.sm\:prose-base :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.sm\:prose-base :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.sm\:prose-base :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.sm\:prose-base :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3em;margin-bottom:3em}.sm\:prose-base :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.sm\:prose-base :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.sm\:prose-base :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.sm\:prose-base :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.sm\:prose-base :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.71429}.sm\:prose-base :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.sm\:prose-base :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.sm\:prose-base :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.sm\:prose-base :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.sm\:prose-base :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.sm\:prose-base :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.sm\:prose-base :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.sm\:prose-base :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.sm\:prose-base :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.857143em;font-size:.875em;line-height:1.42857}.sm\:prose-base :where(.sm\:prose-base>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.sm\:prose-base :where(.sm\:prose-base>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.01\]:hover{--tw-scale-x:1.01;--tw-scale-y:1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:border-foreground\/20:hover{border-color:hsl(var(--foreground)/.2)}.hover\:border-primary\/70:hover{border-color:hsl(var(--primary)/.7)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent)/.5)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[state\=active\]\:border-b-2[data-state=active]{border-bottom-width:2px}.data-\[state\=active\]\:border-primary[data-state=active]{border-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:-rotate-90:is(.dark *){--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.dark\:rotate-0:is(.dark *){--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.dark\:scale-0:is(.dark *){--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.dark\:divide-gray-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(31 41 55/var(--tw-divide-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-orange-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:bg-gray-900\/20:is(.dark *){background-color:#11182733}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-900\/20:is(.dark *){background-color:#7c2d1233}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7c2d124d}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:text-amber-200:is(.dark *){--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-sky-200:is(.dark *){--tw-text-opacity:1;color:rgb(186 230 253/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:mb-3{margin-bottom:.75rem}.sm\:mt-3{margin-top:.75rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:h-10{height:2.5rem}.sm\:h-8{height:2rem}.sm\:w-10{width:2.5rem}.sm\:w-8{width:2rem}.sm\:w-\[180px\]{width:180px}.sm\:w-\[220px\]{width:220px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-8{padding:2rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\:block{display:block}.md\:inline{display:inline}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-14{top:3.5rem}.lg\:z-20{z-index:20}.lg\:z-30{z-index:30}.lg\:z-40{z-index:40}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-0{width:0}.lg\:w-\[240px\]{width:240px}.lg\:w-\[280px\]{width:280px}.lg\:w-\[60px\]{width:60px}.lg\:w-\[calc\(100vw-var\(--main-sidebar-width\,240px\)\)\]{width:calc(100vw - var(--main-sidebar-width,240px))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:justify-center{justify-content:center}.lg\:border-r-0{border-right-width:0}}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6454,(e,t,r)=>{"use strict";function a({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:n,objectFit:s}){let i=r?40*r:e,o=a?40*a:t,l=i&&o?`viewBox='0 0 ${i} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${l}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${l?"none":"contain"===s?"xMidYMid":"cover"===s?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return a}})},94547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={VALID_LOADERS:function(){return s},imageConfigDefault:function(){return i}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=["default","imgix","cloudinary","akamai","custom"],i={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}},50696,(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 a=e.r(6454),n=e.r(94547),s=["-moz-initial","fill","none","scale-down",void 0];function i(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:d,className:c,quality:h,width:f,height:m,fill:p=!1,style:g,overrideSrc:v,onLoad:b,onLoadingComplete:y,placeholder:x="empty",blurDataURL:w,fetchPriority:E,decoding:C="async",layout:k,objectFit:j,objectPosition:A,lazyBoundary:S,lazyRoot:M,...N},_){var B;let D,R,I,{imgConf:F,showAltText:P,blurComplete:T,defaultLoader:$}=_,O=F||n.imageConfigDefault;if("allSizes"in O)D=O;else{let e=[...O.deviceSizes,...O.imageSizes].sort((e,t)=>e-t),t=O.deviceSizes.sort((e,t)=>e-t),r=O.qualities?.sort((e,t)=>e-t);D={...O,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===$)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let z=N.loader||$;delete N.loader,delete N.srcSet;let L="__next_img_default"in z;if(L){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=z;z=t=>{let{config:r,...a}=t;return e(a)}}if(k){"fill"===k&&(p=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[k];e&&(g={...g,...e});let r={responsive:"100vw",fill:"100vw"}[k];r&&!t&&(t=r)}let H="",V=o(f),W=o(m);if((B=e)&&"object"==typeof B&&(i(B)||void 0!==B.src)){let t=i(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(R=t.blurWidth,I=t.blurHeight,w=w||t.blurDataURL,H=t.src,!p)if(V||W){if(V&&!W){let e=V/t.width;W=Math.round(t.height*e)}else if(!V&&W){let e=W/t.height;V=Math.round(t.width*e)}}else V=t.width,W=t.height}let q=!l&&!u&&("lazy"===d||void 0===d);(!(e="string"==typeof e?e:H)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,q=!1),D.unoptimized&&(r=!0),L&&!D.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let K=o(h),U=Object.assign(p?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:j,objectPosition:A}:{},P?{}:{color:"transparent"},g),Y=T||"empty"===x?null:"blur"===x?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:V,heightInt:W,blurWidth:R,blurHeight:I,blurDataURL:w||"",objectFit:U.objectFit})}")`:`url("${x}")`,G=s.includes(U.objectFit)?"fill"===U.objectFit?"100% 100%":"cover":U.objectFit,X=Y?{backgroundSize:G,backgroundPosition:U.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},J=function({config:e,src:t,unoptimized:r,width:a,quality:n,sizes:s,loader:i}){if(r)return{src:t,srcSet:void 0,sizes:void 0};let{widths:o,kind:l}=function({deviceSizes:e,allSizes:t},r,a){if(a){let r=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=r.exec(a);)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,a,s),u=o.length-1;return{sizes:s||"w"!==l?s:"100vw",srcSet:o.map((r,a)=>`${i({config:e,src:t,quality:n,width:r})} ${"w"===l?r:a+1}${l}`).join(", "),src:i({config:e,src:t,quality:n,width:o[u]})}}({config:D,src:e,unoptimized:r,width:V,quality:K,sizes:t,loader:z}),Q=q?"lazy":d;return{props:{...N,loading:Q,fetchPriority:E,width:V,height:W,decoding:C,className:c,style:{...U,...X},sizes:J.sizes,srcSet:J.srcSet,src:v||J.src},meta:{unoptimized:r,preload:u||l,placeholder:x,fill:p}}}},5059,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let a=e.r(31231),n="undefined"==typeof window,s=n?()=>{}:a.useLayoutEffect,i=n?()=>{}:a.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=a.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return n&&(t?.mountedInstances?.add(e.children),o()),s(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),s(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},82032,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return p},defaultHead:function(){return c}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(81258),i=e.r(44066),o=e.r(90022),l=i._(e.r(31231)),u=s._(e.r(5059)),d=e.r(92600);function c(){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 m(e){let t,r,a,n;return e.reduce(h,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,a=new Set,n={},e=>{let s=!0,i=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){i=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?s=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?s=!1:r.add(e.type);break;case"meta":for(let t=0,r=f.length;t<r;t++){let r=f[t];if(e.props.hasOwnProperty(r))if("charSet"===r)a.has(r)?s=!1:a.add(r);else{let t=e.props[r],a=n[r]||new Set;("name"!==r||!i)&&a.has(t)?s=!1:(a.add(t),n[r]=a)}}}return s})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let p=function({children:e}){let t=(0,l.useContext)(d.HeadManagerContext);return(0,o.jsx)(u.default,{reduceComponentsToState:m,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)},11258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return s}});let a=e.r(81258)._(e.r(31231)),n=e.r(94547),s=a.default.createContext(n.imageConfigDefault)},1879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return a}});let a=e.r(81258)._(e.r(31231)).default.createContext(null)},81035,(e,t,r)=>{"use strict";function a(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 a}})},65774,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let a=e.r(81035);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 s=(0,a.findClosestQuality)(n,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${s}${t.startsWith("/_next/static/media/"),""}`}n.__next_img_default=!0;let s=n},81988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return x}});let a=e.r(81258),n=e.r(44066),s=e.r(90022),i=n._(e.r(31231)),o=a._(e.r(95635)),l=a._(e.r(82032)),u=e.r(50696),d=e.r(94547),c=e.r(11258);e.r(56863);let h=e.r(1879),f=a._(e.r(65774)),m=e.r(66500),p={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,a,n,s,i){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 a=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>a,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{a=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}a?.current&&a.current(e)}}))}function v(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,i.forwardRef)(({src:e,srcSet:t,sizes:r,height:a,width:n,decoding:o,className:l,style:u,fetchPriority:d,placeholder:c,loading:h,unoptimized:f,fill:p,onLoadRef:b,onLoadingCompleteRef:y,setBlurComplete:x,setShowAltText:w,sizesInput:E,onLoad:C,onError:k,...j},A)=>{let S=(0,i.useCallback)(e=>{e&&(k&&(e.src=e.src),e.complete&&g(e,c,b,y,x,f,E))},[e,c,b,y,x,k,f,E]),M=(0,m.useMergedRef)(A,S);return(0,s.jsx)("img",{...j,...v(d),loading:h,width:n,height:a,decoding:o,"data-nimg":p?"fill":"1",className:l,style:u,sizes:r,srcSet:t,src:e,ref:M,onLoad:e=>{g(e.currentTarget,c,b,y,x,f,E)},onError:e=>{w(!0),"empty"!==c&&x(!0),k&&k(e)}})});function y({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...v(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,s.jsx)(l.default,{children:(0,s.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let x=(0,i.forwardRef)((e,t)=>{let r=(0,i.useContext)(h.RouterContext),a=(0,i.useContext)(c.ImageConfigContext),n=(0,i.useMemo)(()=>{let e=p||a||d.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?a?.localPatterns:e.localPatterns}},[a]),{onLoad:o,onLoadingComplete:l}=e,m=(0,i.useRef)(o);(0,i.useEffect)(()=>{m.current=o},[o]);let g=(0,i.useRef)(l);(0,i.useEffect)(()=>{g.current=l},[l]);let[v,x]=(0,i.useState)(!1),[w,E]=(0,i.useState)(!1),{props:C,meta:k}=(0,u.getImgProps)(e,{defaultLoader:f.default,imgConf:n,blurComplete:v,showAltText:w});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(b,{...C,unoptimized:k.unoptimized,placeholder:k.placeholder,fill:k.fill,onLoadRef:m,onLoadingCompleteRef:g,setBlurComplete:x,setShowAltText:E,sizesInput:e.sizes,ref:t}),k.preload?(0,s.jsx)(y,{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)},22867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return d},getImageProps:function(){return u}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(81258),i=e.r(50696),o=e.r(81988),l=s._(e.r(65774));function u(e){let{props:t}=(0,i.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 d=o.Image},5970,(e,t,r)=>{t.exports=e.r(22867)},81795,e=>{"use strict";var t=e.i(31231),r=(e,t,r,a,n,s,i,o)=>{let l=document.documentElement,u=["light","dark"];function d(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,a=r&&s?n.map(e=>s[e]||e):n;r?(l.classList.remove(...a),l.classList.add(s&&s[t]?s[t]:t)):l.setAttribute(e,t)}),r=t,o&&u.includes(r)&&(l.style.colorScheme=r)}if(a)d(a);else try{let e=localStorage.getItem(t)||r,a=i&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(a)}catch(e){}},a=["light","dark"],n="(prefers-color-scheme: dark)",s="undefined"==typeof window,i=t.createContext(void 0),o={setTheme:e=>{},themes:[]},l=()=>{var e;return null!=(e=t.useContext(i))?e:o},u=e=>t.useContext(i)?t.createElement(t.Fragment,null,e.children):t.createElement(c,{...e}),d=["light","dark"],c=({forcedTheme:e,disableTransitionOnChange:r=!1,enableSystem:s=!0,enableColorScheme:o=!0,storageKey:l="theme",themes:u=d,defaultTheme:c=s?"system":"light",attribute:g="data-theme",value:v,children:b,nonce:y,scriptProps:x})=>{let[w,E]=t.useState(()=>f(l,c)),[C,k]=t.useState(()=>"system"===w?p():w),j=v?Object.values(v):u,A=t.useCallback(e=>{let t=e;if(!t)return;"system"===e&&s&&(t=p());let n=v?v[t]:t,i=r?m(y):null,l=document.documentElement,u=e=>{"class"===e?(l.classList.remove(...j),n&&l.classList.add(n)):e.startsWith("data-")&&(n?l.setAttribute(e,n):l.removeAttribute(e))};if(Array.isArray(g)?g.forEach(u):u(g),o){let e=a.includes(c)?c:null,r=a.includes(t)?t:e;l.style.colorScheme=r}null==i||i()},[y]),S=t.useCallback(e=>{let t="function"==typeof e?e(w):e;E(t);try{localStorage.setItem(l,t)}catch(e){}},[w]),M=t.useCallback(t=>{k(p(t)),"system"===w&&s&&!e&&A("system")},[w,e]);t.useEffect(()=>{let e=window.matchMedia(n);return e.addListener(M),M(e),()=>e.removeListener(M)},[M]),t.useEffect(()=>{let e=e=>{e.key===l&&(e.newValue?E(e.newValue):S(c))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[S]),t.useEffect(()=>{A(null!=e?e:w)},[e,w]);let N=t.useMemo(()=>({theme:w,setTheme:S,forcedTheme:e,resolvedTheme:"system"===w?C:w,themes:s?[...u,"system"]:u,systemTheme:s?C:void 0}),[w,S,e,C,s,u]);return t.createElement(i.Provider,{value:N},t.createElement(h,{forcedTheme:e,storageKey:l,attribute:g,enableSystem:s,enableColorScheme:o,defaultTheme:c,value:v,themes:u,nonce:y,scriptProps:x}),b)},h=t.memo(({forcedTheme:e,storageKey:a,attribute:n,enableSystem:s,enableColorScheme:i,defaultTheme:o,value:l,themes:u,nonce:d,scriptProps:c})=>{let h=JSON.stringify([n,a,o,e,u,l,s,i]).slice(1,-1);return t.createElement("script",{...c,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?d:"",dangerouslySetInnerHTML:{__html:`(${r.toString()})(${h})`}})}),f=(e,t)=>{let r;if(!s){try{r=localStorage.getItem(e)||void 0}catch(e){}return r||t}},m=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.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(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},p=e=>(e||(e=window.matchMedia(n)),e.matches?"dark":"light");e.s(["ThemeProvider",()=>u,"useTheme",()=>l])},26160,e=>{"use strict";var t=e.i(90022),r=e.i(87985),a=e.i(5970),n=e.i(30827),s=e.i(25761),i=e.i(22436);let o=(0,i.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),l=(0,i.default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var u=e.i(31231);let d=(0,i.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"}]]),c=(0,i.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(35893);function m(){let{theme:e,setTheme:r}=(0,h.useTheme)(),[a,n]=u.useState(!1);return(u.useEffect(()=>{n(!0)},[]),a)?(0,t.jsxs)(f.Button,{variant:"ghost",size:"icon",onClick:()=>r("light"===e?"dark":"light"),"aria-label":"Toggle theme",children:[(0,t.jsx)(c,{className:"h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,t.jsx)(d,{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)(c,{className:"h-5 w-5"})})}var p=e.i(20315),g=e.i(329),v=e.i(40843);let b=(0,i.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 y(e){return Array.isArray?Array.isArray(e):"[object Array]"===A(e)}let x=1/0;function w(e){return"string"==typeof e}function E(e){return"number"==typeof e}function C(e){return"object"==typeof e}function k(e){return null!=e}function j(e){return!e.trim().length}function A(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let S=Object.prototype.hasOwnProperty;class M{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,a=null,n=1,s=null;if(w(e)||y(e))a=e,t=_(e),r=B(e);else{if(!S.call(e,"name"))throw Error("Missing name property in key");let i=e.name;if(a=i,S.call(e,"weight")&&(n=e.weight)<=0)throw Error(`Property 'weight' in key '${i}' must be a positive integer`);t=_(i),r=B(i),s=e.getFn}return{path:t,id:r,weight:n,src:a,getFn:s}}function _(e){return y(e)?e:e.split(".")}function B(e){return y(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=[],a=!1,n=(e,t,s)=>{if(k(e))if(t[s]){var i,o;let l=e[t[s]];if(!k(l))return;if(s===t.length-1&&(w(l)||E(l)||!0===(i=l)||!1===i||C(o=i)&&null!==o&&"[object Boolean]"==A(i)))r.push(null==l?"":function(e){if("string"==typeof e)return e;let t=e+"";return"0"==t&&1/e==-x?"-0":t}(l));else if(y(l)){a=!0;for(let e=0,r=l.length;e<r;e+=1)n(l[e],t,s+1)}else t.length&&n(l,t,s+1)}else r.push(e)};return n(e,w(t)?t.split("."):t,0),a?r:r[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};let R=/[^ ]+/g;class I{constructor({getFn:e=D.getFn,fieldNormWeight:t=D.fieldNormWeight}={}){this.norm=function(e=1,t=3){let r=new Map,a=Math.pow(10,t);return{get(t){let n=t.match(R).length;if(r.has(n))return r.get(n);let s=parseFloat(Math.round(1/Math.pow(n,.5*e)*a)/a);return r.set(n,s),s},clear(){r.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,w(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();w(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,r=this.size();t<r;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!k(e)||j(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,a)=>{let n=t.getFn?t.getFn(e):this.getFn(e,t.path);if(k(n)){if(y(n)){let e=[],t=[{nestedArrIndex:-1,value:n}];for(;t.length;){let{nestedArrIndex:r,value:a}=t.pop();if(k(a))if(w(a)&&!j(a)){let t={v:a,i:r,n:this.norm.get(a)};e.push(t)}else y(a)&&a.forEach((e,r)=>{t.push({nestedArrIndex:r,value:e})})}r.$[a]=e}else if(w(n)&&!j(n)){let e={v:n,n:this.norm.get(n)};r.$[a]=e}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function F(e,t,{getFn:r=D.getFn,fieldNormWeight:a=D.fieldNormWeight}={}){let n=new I({getFn:r,fieldNormWeight:a});return n.setKeys(e.map(N)),n.setSources(t),n.create(),n}function P(e,{errors:t=0,currentLocation:r=0,expectedLocation:a=0,distance:n=D.distance,ignoreLocation:s=D.ignoreLocation}={}){let i=t/e.length;if(s)return i;let o=Math.abs(a-r);return n?i+o/n:o?1:i}let T=String.prototype.normalize?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):e=>e;class ${constructor(e,{location:t=D.location,threshold:r=D.threshold,distance:a=D.distance,includeMatches:n=D.includeMatches,findAllMatches:s=D.findAllMatches,minMatchCharLength:i=D.minMatchCharLength,isCaseSensitive:o=D.isCaseSensitive,ignoreDiacritics:l=D.ignoreDiacritics,ignoreLocation:u=D.ignoreLocation}={}){if(this.options={location:t,threshold:r,distance:a,includeMatches:n,findAllMatches:s,minMatchCharLength:i,isCaseSensitive:o,ignoreDiacritics:l,ignoreLocation:u},e=o?e:e.toLowerCase(),e=l?T(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const d=(e,t)=>{this.chunks.push({pattern:e,alphabet:function(e){let t={};for(let r=0,a=e.length;r<a;r+=1){let n=e.charAt(r);t[n]=(t[n]||0)|1<<a-r-1}return t}(e),startIndex:t})},c=this.pattern.length;if(c>32){let e=0;const t=c%32,r=c-t;for(;e<r;)d(this.pattern.substr(e,32),e),e+=32;if(t){const e=c-32;d(this.pattern.substr(e),e)}}else d(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:r,includeMatches:a}=this.options;if(e=t?e:e.toLowerCase(),e=r?T(e):e,this.pattern===e){let t={isMatch:!0,score:0};return a&&(t.indices=[[0,e.length-1]]),t}let{location:n,distance:s,threshold:i,findAllMatches:o,minMatchCharLength:l,ignoreLocation:u}=this.options,d=[],c=0,h=!1;this.chunks.forEach(({pattern:t,alphabet:r,startIndex:f})=>{let{isMatch:m,score:p,indices:g}=function(e,t,r,{location:a=D.location,distance:n=D.distance,threshold:s=D.threshold,findAllMatches:i=D.findAllMatches,minMatchCharLength:o=D.minMatchCharLength,includeMatches:l=D.includeMatches,ignoreLocation:u=D.ignoreLocation}={}){let d;if(t.length>32)throw Error("Pattern length exceeds max of 32.");let c=t.length,h=e.length,f=Math.max(0,Math.min(a,h)),m=s,p=f,g=o>1||l,v=g?Array(h):[];for(;(d=e.indexOf(t,p))>-1;)if(m=Math.min(P(t,{currentLocation:d,expectedLocation:f,distance:n,ignoreLocation:u}),m),p=d+c,g){let e=0;for(;e<c;)v[d+e]=1,e+=1}p=-1;let b=[],y=1,x=c+h,w=1<<c-1;for(let a=0;a<c;a+=1){let s=0,o=x;for(;s<o;)P(t,{errors:a,currentLocation:f+o,expectedLocation:f,distance:n,ignoreLocation:u})<=m?s=o:x=o,o=Math.floor((x-s)/2+s);x=o;let l=Math.max(1,f-o+1),d=i?h:Math.min(f+o,h)+c,E=Array(d+2);E[d+1]=(1<<a)-1;for(let s=d;s>=l;s-=1){let i=s-1,o=r[e.charAt(i)];if(g&&(v[i]=+!!o),E[s]=(E[s+1]<<1|1)&o,a&&(E[s]|=(b[s+1]|b[s])<<1|1|b[s+1]),E[s]&w&&(y=P(t,{errors:a,currentLocation:i,expectedLocation:f,distance:n,ignoreLocation:u}))<=m){if(m=y,(p=i)<=f)break;l=Math.max(1,2*f-p)}}if(P(t,{errors:a+1,currentLocation:f,expectedLocation:f,distance:n,ignoreLocation:u})>m)break;b=E}let E={isMatch:p>=0,score:Math.max(.001,y)};if(g){let e=function(e=[],t=D.minMatchCharLength){let r=[],a=-1,n=-1,s=0;for(let i=e.length;s<i;s+=1){let i=e[s];i&&-1===a?a=s:i||-1===a||((n=s-1)-a+1>=t&&r.push([a,n]),a=-1)}return e[s-1]&&s-a>=t&&r.push([a,s-1]),r}(v,o);e.length?l&&(E.indices=e):E.isMatch=!1}return E}(e,t,r,{location:n+f,distance:s,threshold:i,findAllMatches:o,minMatchCharLength:l,includeMatches:a,ignoreLocation:u});m&&(h=!0),c+=p,m&&g&&(d=[...d,...g])});let f={isMatch:h,score:h?c/this.chunks.length:1};return h&&a&&(f.indices=d),f}}class O{constructor(e){this.pattern=e}static isMultiMatch(e){return z(e,this.multiRegex)}static isSingleMatch(e){return z(e,this.singleRegex)}search(){}}function z(e,t){let r=e.match(t);return r?r[1]:null}class L extends O{constructor(e,{location:t=D.location,threshold:r=D.threshold,distance:a=D.distance,includeMatches:n=D.includeMatches,findAllMatches:s=D.findAllMatches,minMatchCharLength:i=D.minMatchCharLength,isCaseSensitive:o=D.isCaseSensitive,ignoreDiacritics:l=D.ignoreDiacritics,ignoreLocation:u=D.ignoreLocation}={}){super(e),this._bitapSearch=new $(e,{location:t,threshold:r,distance:a,includeMatches:n,findAllMatches:s,minMatchCharLength:i,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 H extends O{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,r=0,a=[],n=this.pattern.length;for(;(t=e.indexOf(this.pattern,r))>-1;)r=t+n,a.push([t,r-1]);let s=!!a.length;return{isMatch:s,score:+!s,indices:a}}}let V=[class extends O{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]}}},H,class extends O{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 O{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 O{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 O{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 O{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]}}},L],W=V.length,q=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,K=new Set([L.type,H.type]),U=[];function Y(e,t){for(let r=0,a=U.length;r<a;r+=1){let a=U[r];if(a.condition(e,t))return new a(e,t)}return new $(e,t)}let G="$and",X="$path",J=e=>!!(e[G]||e.$or),Q=e=>({[G]:Object.keys(e).map(t=>({[t]:e[t]}))});function Z(e,t,{auto:r=!0}={}){let a=e=>{let n=Object.keys(e),s=!!e[X];if(!s&&n.length>1&&!J(e))return a(Q(e));if(!y(e)&&C(e)&&!J(e)){let a=s?e[X]:n[0],i=s?e.$val:e[a];if(!w(i))throw Error(`Invalid value for key ${a}`);let o={keyId:B(a),pattern:i};return r&&(o.searcher=Y(i,t)),o}let i={children:[],operator:n[0]};return n.forEach(t=>{let r=e[t];y(r)&&r.forEach(e=>{i.children.push(a(e))})}),i};return J(e)||(e=Q(e)),a(e)}function ee(e,t){let r=e.matches;t.matches=[],k(r)&&r.forEach(e=>{if(!k(e.indices)||!e.indices.length)return;let{indices:r,value:a}=e,n={indices:r,value:a};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 M(this.options.keys),this.setCollection(e,r)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof I))throw Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){let t=[];for(let r=0,a=this._docs.length;r<a;r+=1){let n=this._docs[r];e(n,r)&&(this.removeAt(r),r-=1,a-=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:a,shouldSort:n,sortFn:s,ignoreFieldNorm:i}=this.options,o=w(e)?w(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:a,score:n})=>{let s=e?e.weight:null;r*=Math.pow(0===n&&s?Number.EPSILON:n,(s||1)*(t?1:a))}),e.score=r})}(o,{ignoreFieldNorm:i}),n&&o.sort(s),E(t)&&t>-1&&(o=o.slice(0,t)),function(e,t,{includeMatches:r=D.includeMatches,includeScore:a=D.includeScore}={}){let n=[];return r&&n.push(ee),a&&n.push(et),e.map(e=>{let{idx:r}=e,a={item:t[r],refIndex:r};return n.length&&n.forEach(t=>{t(e,a)}),a})}(o,this._docs,{includeMatches:r,includeScore:a})}_searchStringList(e){let t=Y(e,this.options),{records:r}=this._myIndex,a=[];return r.forEach(({v:e,i:r,n:n})=>{if(!k(e))return;let{isMatch:s,score:i,indices:o}=t.searchIn(e);s&&a.push({item:e,idx:r,matches:[{score:i,value:e,norm:n,indices:o}]})}),a}_searchLogical(e){let t=Z(e,this.options),r=(e,t,a)=>{if(!e.children){let{keyId:r,searcher:n}=e,s=this._findMatches({key:this._keyStore.get(r),value:this._myIndex.getValueForItemAtKeyId(t,r),searcher:n});return s&&s.length?[{idx:a,item:t,matches:s}]:[]}let n=[];for(let s=0,i=e.children.length;s<i;s+=1){let i=r(e.children[s],t,a);if(i.length)n.push(...i);else if(e.operator===G)return[]}return n},a=this._myIndex.records,n={},s=[];return a.forEach(({$:e,i:a})=>{if(k(e)){let i=r(t,e,a);i.length&&(n[a]||(n[a]={idx:a,item:e,matches:[]},s.push(n[a])),i.forEach(({matches:e})=>{n[a].matches.push(...e)}))}}),s}_searchObjectList(e){let t=Y(e,this.options),{keys:r,records:a}=this._myIndex,n=[];return a.forEach(({$:e,i:a})=>{if(!k(e))return;let s=[];r.forEach((r,a)=>{s.push(...this._findMatches({key:r,value:e[a],searcher:t}))}),s.length&&n.push({idx:a,item:e,matches:s})}),n}_findMatches({key:e,value:t,searcher:r}){if(!k(t))return[];let a=[];if(y(t))t.forEach(({v:t,i:n,n:s})=>{if(!k(t))return;let{isMatch:i,score:o,indices:l}=r.searchIn(t);i&&a.push({score:o,key:e,value:t,idx:n,norm:s,indices:l})});else{let{v:n,n:s}=t,{isMatch:i,score:o,indices:l}=r.searchIn(n);i&&a.push({score:o,key:e,value:n,norm:s,indices:l})}return a}}er.version="7.1.0",er.createIndex=F,er.parseIndex=function(e,{getFn:t=D.getFn,fieldNormWeight:r=D.fieldNormWeight}={}){let{keys:a,records:n}=e,s=new I({getFn:t,fieldNormWeight:r});return s.setKeys(a),s.setIndexRecords(n),s},er.config=D,er.parseQuery=Z,function(...e){U.push(...e)}(class{constructor(e,{isCaseSensitive:t=D.isCaseSensitive,ignoreDiacritics:r=D.ignoreDiacritics,includeMatches:a=D.includeMatches,minMatchCharLength:n=D.minMatchCharLength,ignoreLocation:s=D.ignoreLocation,findAllMatches:i=D.findAllMatches,location:o=D.location,threshold:l=D.threshold,distance:u=D.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:r,includeMatches:a,minMatchCharLength:n,findAllMatches:i,ignoreLocation:s,location:o,threshold:l,distance:u},e=t?e:e.toLowerCase(),e=r?T(e):e,this.pattern=e,this.query=function(e,t={}){return e.split("|").map(e=>{let r=e.trim().split(q).filter(e=>e&&!!e.trim()),a=[];for(let e=0,n=r.length;e<n;e+=1){let n=r[e],s=!1,i=-1;for(;!s&&++i<W;){let e=V[i],r=e.isMultiMatch(n);r&&(a.push(new e(r,t)),s=!0)}if(!s)for(i=-1;++i<W;){let e=V[i],r=e.isSingleMatch(n);if(r){a.push(new e(r,t));break}}}return a})}(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:a,ignoreDiacritics:n}=this.options;e=a?e:e.toLowerCase(),e=n?T(e):e;let s=0,i=[],o=0;for(let a=0,n=t.length;a<n;a+=1){let n=t[a];i.length=0,s=0;for(let t=0,a=n.length;t<a;t+=1){let a=n[t],{isMatch:l,indices:u,score:d}=a.search(e);if(l){if(s+=1,o+=d,r){let e=a.constructor.type;K.has(e)?i=[...i,...u]:i.push(u)}}else{o=0,s=0,i.length=0;break}}if(s){let e={isMatch:!0,score:o/s};return r&&(e.indices=i),e}}return{isMatch:!1,score:1}}});var ea=/[\\\/_+.#"@\[\(\{&]/,en=/[\\\/_+.#"@\[\(\{&]/g,es=/[\s-]/,ei=/[\s-]/g;function eo(e){return e.toLowerCase().replace(ei," ")}var el=e.i(39065);e.i(95635);var eu=e.i(14433),ed=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let a=(0,eu.createSlot)(`Primitive.${r}`),n=u.forwardRef((e,n)=>{let{asChild:s,...i}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(s?a:r,{...i,ref:n})});return n.displayName=`Primitive.${r}`,{...e,[r]:n}},{}),ec=e.i(15599),eh=e.i(30406),ef='[cmdk-group=""]',em='[cmdk-group-items=""]',ep='[cmdk-item=""]',eg=`${ep}:not([aria-disabled="true"])`,ev="cmdk-item-select",eb="data-value",ey=(e,t,r)=>{var a;return a=e,function e(t,r,a,n,s,i,o){if(i===r.length)return s===t.length?1:.99;var l=`${s},${i}`;if(void 0!==o[l])return o[l];for(var u,d,c,h,f=n.charAt(i),m=a.indexOf(f,s),p=0;m>=0;)(u=e(t,r,a,n,m+1,i+1,o))>p&&(m===s?u*=1:ea.test(t.charAt(m-1))?(u*=.8,(c=t.slice(s,m-1).match(en))&&s>0&&(u*=Math.pow(.999,c.length))):es.test(t.charAt(m-1))?(u*=.9,(h=t.slice(s,m-1).match(ei))&&s>0&&(u*=Math.pow(.999,h.length))):(u*=.17,s>0&&(u*=Math.pow(.999,m-s))),t.charAt(m)!==r.charAt(i)&&(u*=.9999)),(u<.1&&a.charAt(m-1)===n.charAt(i+1)||n.charAt(i+1)===n.charAt(i)&&a.charAt(m-1)!==n.charAt(i))&&.1*(d=e(t,r,a,n,m+1,i+2,o))>u&&(u=.1*d),u>p&&(p=u),m=a.indexOf(f,m+1);return o[l]=p,p}(a=r&&r.length>0?`${a+" "+r.join(" ")}`:a,t,eo(a),eo(t),0,0,{})},ex=u.createContext(void 0),ew=u.createContext(void 0),eE=u.createContext(void 0),eC=u.forwardRef((e,t)=>{let r=eR(()=>{var t,r;return{search:"",value:null!=(r=null!=(t=e.value)?t:e.defaultValue)?r:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),a=eR(()=>new Set),n=eR(()=>new Map),s=eR(()=>new Map),i=eR(()=>new Set),o=eB(e),{label:l,children:d,value:c,onValueChange:h,filter:f,shouldFilter:m,loop:p,disablePointerSelection:g=!1,vimBindings:v=!0,...b}=e,y=(0,ec.useId)(),x=(0,ec.useId)(),w=(0,ec.useId)(),E=u.useRef(null),C=eP();eD(()=>{if(void 0!==c){let e=c.trim();r.current.value=e,k.emit()}},[c]),eD(()=>{C(6,_)},[]);let k=u.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>r.current,setState:(e,t,a)=>{var n,s,i,l;if(!Object.is(r.current[e],t)){if(r.current[e]=t,"search"===e)N(),S(),C(1,M);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(w);e?e.focus():null==(n=document.getElementById(y))||n.focus()}if(C(7,()=>{var e;r.current.selectedItemId=null==(e=B())?void 0:e.id,k.emit()}),a||C(5,_),(null==(s=o.current)?void 0:s.value)!==void 0){null==(l=(i=o.current).onValueChange)||l.call(i,null!=t?t:"");return}}k.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),j=u.useMemo(()=>({value:(e,t,a)=>{var n;t!==(null==(n=s.current.get(e))?void 0:n.value)&&(s.current.set(e,{value:t,keywords:a}),r.current.filtered.items.set(e,A(t,a)),C(2,()=>{S(),k.emit()}))},item:(e,t)=>(a.current.add(e),t&&(n.current.has(t)?n.current.get(t).add(e):n.current.set(t,new Set([e]))),C(3,()=>{N(),S(),r.current.value||M(),k.emit()}),()=>{s.current.delete(e),a.current.delete(e),r.current.filtered.items.delete(e);let t=B();C(4,()=>{N(),(null==t?void 0:t.getAttribute("id"))===e&&M(),k.emit()})}),group:e=>(n.current.has(e)||n.current.set(e,new Set),()=>{s.current.delete(e),n.current.delete(e)}),filter:()=>o.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>o.current.disablePointerSelection,listId:y,inputId:w,labelId:x,listInnerRef:E}),[]);function A(e,t){var a,n;let s=null!=(n=null==(a=o.current)?void 0:a.filter)?n:ey;return e?s(e,r.current.search,t):0}function S(){if(!r.current.search||!1===o.current.shouldFilter)return;let e=r.current.filtered.items,t=[];r.current.filtered.groups.forEach(r=>{let a=n.current.get(r),s=0;a.forEach(t=>{s=Math.max(e.get(t),s)}),t.push([r,s])});let a=E.current;D().sort((t,r)=>{var a,n;let s=t.getAttribute("id"),i=r.getAttribute("id");return(null!=(a=e.get(i))?a:0)-(null!=(n=e.get(s))?n:0)}).forEach(e=>{let t=e.closest(em);t?t.appendChild(e.parentElement===t?e:e.closest(`${em} > *`)):a.appendChild(e.parentElement===a?e:e.closest(`${em} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let r=null==(t=E.current)?void 0:t.querySelector(`${ef}[${eb}="${encodeURIComponent(e[0])}"]`);null==r||r.parentElement.appendChild(r)})}function M(){let e=D().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(eb);k.setState("value",t||void 0)}function N(){var e,t,i,l;if(!r.current.search||!1===o.current.shouldFilter){r.current.filtered.count=a.current.size;return}r.current.filtered.groups=new Set;let u=0;for(let n of a.current){let a=A(null!=(t=null==(e=s.current.get(n))?void 0:e.value)?t:"",null!=(l=null==(i=s.current.get(n))?void 0:i.keywords)?l:[]);r.current.filtered.items.set(n,a),a>0&&u++}for(let[e,t]of n.current)for(let a of t)if(r.current.filtered.items.get(a)>0){r.current.filtered.groups.add(e);break}r.current.filtered.count=u}function _(){var e,t,r;let a=B();a&&((null==(e=a.parentElement)?void 0:e.firstChild)===a&&(null==(r=null==(t=a.closest(ef))?void 0:t.querySelector('[cmdk-group-heading=""]'))||r.scrollIntoView({block:"nearest"})),a.scrollIntoView({block:"nearest"}))}function B(){var e;return null==(e=E.current)?void 0:e.querySelector(`${ep}[aria-selected="true"]`)}function D(){var e;return Array.from((null==(e=E.current)?void 0:e.querySelectorAll(eg))||[])}function R(e){let t=D()[e];t&&k.setState("value",t.getAttribute(eb))}function I(e){var t;let r=B(),a=D(),n=a.findIndex(e=>e===r),s=a[n+e];null!=(t=o.current)&&t.loop&&(s=n+e<0?a[a.length-1]:n+e===a.length?a[0]:a[n+e]),s&&k.setState("value",s.getAttribute(eb))}function F(e){let t=B(),r=null==t?void 0:t.closest(ef),a;for(;r&&!a;)a=null==(r=e>0?function(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}(r,ef):function(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}(r,ef))?void 0:r.querySelector(eg);a?k.setState("value",a.getAttribute(eb)):I(e)}let P=()=>R(D().length-1),T=e=>{e.preventDefault(),e.metaKey?P():e.altKey?F(1):I(1)},$=e=>{e.preventDefault(),e.metaKey?R(0):e.altKey?F(-1):I(-1)};return u.createElement(ed.div,{ref:t,tabIndex:-1,...b,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=b.onKeyDown)||t.call(b,e);let r=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||r))switch(e.key){case"n":case"j":v&&e.ctrlKey&&T(e);break;case"ArrowDown":T(e);break;case"p":case"k":v&&e.ctrlKey&&$(e);break;case"ArrowUp":$(e);break;case"Home":e.preventDefault(),R(0);break;case"End":e.preventDefault(),P();break;case"Enter":{e.preventDefault();let t=B();if(t){let e=new Event(ev);t.dispatchEvent(e)}}}}},u.createElement("label",{"cmdk-label":"",htmlFor:j.inputId,id:j.labelId,style:e$},l),eT(e,e=>u.createElement(ew.Provider,{value:k},u.createElement(ex.Provider,{value:j},e))))}),ek=u.forwardRef((e,t)=>{var r,a;let n=(0,ec.useId)(),s=u.useRef(null),i=u.useContext(eE),o=u.useContext(ex),l=eB(e),d=null!=(a=null==(r=l.current)?void 0:r.forceMount)?a:null==i?void 0:i.forceMount;eD(()=>{if(!d)return o.item(n,null==i?void 0:i.id)},[d]);let c=eF(n,s,[e.value,e.children,s],e.keywords),h=u.useContext(ew),f=eI(e=>e.value&&e.value===c.current),m=eI(e=>!!d||!1===o.filter()||!e.search||e.filtered.items.get(n)>0);function p(){var e,t;g(),null==(t=(e=l.current).onSelect)||t.call(e,c.current)}function g(){h.setState("value",c.current,!0)}if(u.useEffect(()=>{let t=s.current;if(!(!t||e.disabled))return t.addEventListener(ev,p),()=>t.removeEventListener(ev,p)},[m,e.onSelect,e.disabled]),!m)return null;let{disabled:v,value:b,onSelect:y,forceMount:x,keywords:w,...E}=e;return u.createElement(ed.div,{ref:(0,eh.composeRefs)(s,t),...E,id:n,"cmdk-item":"",role:"option","aria-disabled":!!v,"aria-selected":!!f,"data-disabled":!!v,"data-selected":!!f,onPointerMove:v||o.getDisablePointerSelection()?void 0:g,onClick:v?void 0:p},e.children)}),ej=u.forwardRef((e,t)=>{let{heading:r,children:a,forceMount:n,...s}=e,i=(0,ec.useId)(),o=u.useRef(null),l=u.useRef(null),d=(0,ec.useId)(),c=u.useContext(ex),h=eI(e=>!!n||!1===c.filter()||!e.search||e.filtered.groups.has(i));eD(()=>c.group(i),[]),eF(i,o,[e.value,e.heading,l]);let f=u.useMemo(()=>({id:i,forceMount:n}),[n]);return u.createElement(ed.div,{ref:(0,eh.composeRefs)(o,t),...s,"cmdk-group":"",role:"presentation",hidden:!h||void 0},r&&u.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:d},r),eT(e,e=>u.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?d:void 0},u.createElement(eE.Provider,{value:f},e))))}),eA=u.forwardRef((e,t)=>{let{alwaysRender:r,...a}=e,n=u.useRef(null),s=eI(e=>!e.search);return r||s?u.createElement(ed.div,{ref:(0,eh.composeRefs)(n,t),...a,"cmdk-separator":"",role:"separator"}):null}),eS=u.forwardRef((e,t)=>{let{onValueChange:r,...a}=e,n=null!=e.value,s=u.useContext(ew),i=eI(e=>e.search),o=eI(e=>e.selectedItemId),l=u.useContext(ex);return u.useEffect(()=>{null!=e.value&&s.setState("search",e.value)},[e.value]),u.createElement(ed.input,{ref:t,...a,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":o,id:l.inputId,type:"text",value:n?e.value:i,onChange:e=>{n||s.setState("search",e.target.value),null==r||r(e.target.value)}})}),eM=u.forwardRef((e,t)=>{let{children:r,label:a="Suggestions",...n}=e,s=u.useRef(null),i=u.useRef(null),o=eI(e=>e.selectedItemId),l=u.useContext(ex);return u.useEffect(()=>{if(i.current&&s.current){let e=i.current,t=s.current,r,a=new ResizeObserver(()=>{r=requestAnimationFrame(()=>{let r=e.offsetHeight;t.style.setProperty("--cmdk-list-height",r.toFixed(1)+"px")})});return a.observe(e),()=>{cancelAnimationFrame(r),a.unobserve(e)}}},[]),u.createElement(ed.div,{ref:(0,eh.composeRefs)(s,t),...n,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":o,"aria-label":a,id:l.listId},eT(e,e=>u.createElement("div",{ref:(0,eh.composeRefs)(i,l.listInnerRef),"cmdk-list-sizer":""},e)))}),eN=u.forwardRef((e,t)=>{let{open:r,onOpenChange:a,overlayClassName:n,contentClassName:s,container:i,...o}=e;return u.createElement(el.Root,{open:r,onOpenChange:a},u.createElement(el.Portal,{container:i},u.createElement(el.Overlay,{"cmdk-overlay":"",className:n}),u.createElement(el.Content,{"aria-label":e.label,"cmdk-dialog":"",className:s},u.createElement(eC,{ref:t,...o}))))}),e_=Object.assign(eC,{List:eM,Item:ek,Input:eS,Group:ej,Separator:eA,Dialog:eN,Empty:u.forwardRef((e,t)=>eI(e=>0===e.filtered.count)?u.createElement(ed.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:u.forwardRef((e,t)=>{let{progress:r,children:a,label:n="Loading...",...s}=e;return u.createElement(ed.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":n},eT(e,e=>u.createElement("div",{"aria-hidden":!0},e)))})});function eB(e){let t=u.useRef(e);return eD(()=>{t.current=e}),t}var eD="undefined"==typeof window?u.useEffect:u.useLayoutEffect;function eR(e){let t=u.useRef();return void 0===t.current&&(t.current=e()),t}function eI(e){let t=u.useContext(ew),r=()=>e(t.snapshot());return u.useSyncExternalStore(t.subscribe,r,r)}function eF(e,t,r,a=[]){let n=u.useRef(),s=u.useContext(ex);return eD(()=>{var i;let o=(()=>{var e;for(let t of r){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():n.current}})(),l=a.map(e=>e.trim());s.value(e,o,l),null==(i=t.current)||i.setAttribute(eb,o),n.current=o}),n}var eP=()=>{let[e,t]=u.useState(),r=eR(()=>new Map);return eD(()=>{r.current.forEach(e=>e()),r.current=new Map},[e]),(e,a)=>{r.current.set(e,a),t({})}};function eT({asChild:e,children:t},r){let a;return e&&u.isValidElement(t)?u.cloneElement("function"==typeof(a=t.type)?a(t.props):"render"in a?a.render(t.props):t,{ref:t.ref},r(t.props.children)):r(t)}var e$={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},eO=e.i(32137),ez=e.i(39779);let eL=u.forwardRef(({className:e,...r},a)=>(0,t.jsx)(e_,{ref:a,className:(0,eO.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...r}));eL.displayName=e_.displayName;let eH=({children:e,...r})=>(0,t.jsx)(ez.Dialog,{...r,children:(0,t.jsx)(ez.DialogContent,{className:"overflow-hidden p-0 shadow-lg",children:(0,t.jsx)(eL,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:e})})}),eV=u.forwardRef(({className:e,...r},a)=>(0,t.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,t.jsx)(g.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,t.jsx)(e_.Input,{ref:a,className:(0,eO.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...r})]}));eV.displayName=e_.Input.displayName;let eW=u.forwardRef(({className:e,...r},a)=>(0,t.jsx)(e_.List,{ref:a,className:(0,eO.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...r}));eW.displayName=e_.List.displayName;let eq=u.forwardRef((e,r)=>(0,t.jsx)(e_.Empty,{ref:r,className:"py-6 text-center text-sm",...e}));eq.displayName=e_.Empty.displayName;let eK=u.forwardRef(({className:e,...r},a)=>(0,t.jsx)(e_.Group,{ref:a,className:(0,eO.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...r}));eK.displayName=e_.Group.displayName,u.forwardRef(({className:e,...r},a)=>(0,t.jsx)(e_.Separator,{ref:a,className:(0,eO.cn)("-mx-1 h-px bg-border",e),...r})).displayName=e_.Separator.displayName;let eU=u.forwardRef(({className:e,...r},a)=>(0,t.jsx)(e_.Item,{ref:a,className:(0,eO.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...r}));eU.displayName=e_.Item.displayName;var eY=e.i(68497),eG=e.i(97705);function eX({specs:e}){let r=(0,n.useRouter)(),[a,s]=u.useState(!1),[i,o]=u.useState(""),[l,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(),s(e=>!e))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let c=u.useMemo(()=>new er(e,{keys:[{name:"title",weight:2},{name:"specNumber",weight:1.5},{name:"tags",weight:.5}],threshold:.4,includeScore:!0,minMatchCharLength:2}),[e]),h=u.useMemo(()=>i?c.search(i).map(e=>e.item):e.slice(0,8),[i,c,e]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:()=>s(!0),className:"inline-flex items-center gap-2 px-2 sm:px-3 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors border rounded-md hover:border-foreground/20",children:[(0,t.jsx)(g.Search,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Quick search..."}),(0,t.jsxs)("kbd",{className:"hidden md:inline-flex pointer-events-none h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100",children:[(0,t.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]}),(0,t.jsxs)(eH,{open:a,onOpenChange:s,children:[(0,t.jsx)(eV,{placeholder:"Search specs by title, number, or tags...",value:i,onValueChange:o}),(0,t.jsxs)(eW,{children:[(0,t.jsx)(eq,{children:"No specs found."}),!i&&l.length>0&&(0,t.jsx)(eK,{heading:"Recent Searches",children:l.map(e=>(0,t.jsxs)(eU,{value:e,onSelect:()=>{o(e)},children:[(0,t.jsx)(v.Clock,{className:"mr-2 h-4 w-4"}),e]},e))}),(0,t.jsx)(eK,{heading:"Specs",children:h.map(e=>(0,t.jsxs)(eU,{value:`${e.specNumber} ${e.title}`,onSelect:()=>{var t,a;let n;return t=e.id,void(d(n=[a=e.title,...l.filter(e=>e!==a)].slice(0,5)),localStorage.setItem("leanspec-recent-searches",JSON.stringify(n)),r.push(`/specs/${t}`),s(!1),o(""))},children:[(0,t.jsx)(p.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)(eY.StatusBadge,{status:e.status}),(0,t.jsx)(eG.PriorityBadge,{priority:e.priority})]})]})]},e.id))}),i&&(0,t.jsx)(eK,{heading:"Filter by Tag",children:Array.from(new Set(e.flatMap(e=>e.tags))).filter(e=>e.toLowerCase().includes(i.toLowerCase())).slice(0,5).map(e=>(0,t.jsxs)(eU,{value:e,onSelect:()=>{r.push(`/?tag=${encodeURIComponent(e)}`),s(!1)},children:[(0,t.jsx)(b,{className:"mr-2 h-4 w-4"}),"Filter by: ",(0,t.jsx)("span",{className:"ml-1 font-medium",children:e})]},e))})]})]})]})}var eJ=e.i(8402);function eQ({items:e}){return(0,t.jsx)("nav",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:e.map((e,a)=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[a>0&&(0,t.jsx)(s.ChevronRight,{className:"h-4 w-4"}),e.href?(0,t.jsx)(r.default,{href:e.href,className:"hover:text-foreground transition-colors",children:e.label}):(0,t.jsx)("span",{className:"text-foreground",children:e.label})]},a))})}function eZ({specs:e}){let s=function(e){if("/"===e)return[{label:"Home"}];if("/stats"===e)return[{label:"Home",href:"/"},{label:"Stats"}];if("/specs"===e||e.startsWith("/specs?")){let t=new URLSearchParams(e.split("?")[1]||"").get("view");return[{label:"Home",href:"/"},{label:`Specs (${"board"===t?"Board View":"List View"})`}]}return e.startsWith("/specs/")?[{label:"Home",href:"/"},{label:"Specs",href:"/specs"},{label:e.split("/")[2]}]:"/board"===e?[{label:"Home",href:"/"},{label:"Board"}]:[{label:"Home",href:"/"}]}((0,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)(a.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)(a.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)(eQ,{items:s})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 sm:gap-2 shrink-0",children:[(0,t.jsx)(eX,{specs:e}),(0,t.jsxs)(eJ.TooltipProvider,{children:[(0,t.jsxs)(eJ.Tooltip,{children:[(0,t.jsx)(eJ.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(m,{})})}),(0,t.jsx)(eJ.TooltipContent,{children:(0,t.jsx)("p",{children:"Toggle theme"})})]}),(0,t.jsxs)(eJ.Tooltip,{children:[(0,t.jsx)(eJ.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,{className:"h-5 w-5"})})})}),(0,t.jsx)(eJ.TooltipContent,{children:(0,t.jsx)("p",{children:"Documentation"})})]}),(0,t.jsxs)(eJ.Tooltip,{children:[(0,t.jsx)(eJ.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)(a.default,{src:"/github-mark-white.svg",alt:"GitHub",width:20,height:20,className:"hidden dark:block"}),(0,t.jsx)(a.default,{src:"/github-mark.svg",alt:"GitHub",width:20,height:20,className:"dark:hidden"})]})})}),(0,t.jsx)(eJ.TooltipContent,{children:(0,t.jsx)("p",{children:"GitHub repository"})})]})]})]})]})})}e.s(["Navigation",()=>eZ],26160)},42634,e=>{"use strict";var t=e.i(90022),r=e.i(87985),a=e.i(30827),n=e.i(97332),s=e.i(20315);let i=(0,e.i(22436).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 o=e.i(58362),l=e.i(25761),u=e.i(44021),d=e.i(35893),c=e.i(32137),h=e.i(31231);function f({href:e,icon:a,children:n,description:s,currentPath:i,isCollapsed:o}){let l=i===e||"/"!==e&&i.startsWith(e);return(0,t.jsxs)(r.default,{href:e,className:(0,c.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)(a,{className:(0,c.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}),s&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:s})]})]})}function m(){let e=(0,a.usePathname)(),[r,m]=h.useState(()=>"true"===localStorage.getItem("main-sidebar-collapsed")),[p,g]=h.useState(!1),[v,b]=h.useState(!1);return h.useEffect(()=>{b(!0)},[]),h.useEffect(()=>{document.documentElement.style.setProperty("--main-sidebar-width",r?"60px":"240px"),localStorage.setItem("main-sidebar-collapsed",String(r))},[r]),h.useEffect(()=>{g(!1)},[e]),h.useEffect(()=>(window.toggleMainSidebar=()=>g(e=>!e),()=>{window.toggleMainSidebar=void 0}),[]),(0,t.jsxs)(t.Fragment,{children:[p&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>g(!1)}),(0,t.jsx)("aside",{className:(0,c.cn)("sticky top-14 h-[calc(100vh-3.5rem)] border-r border-border bg-background transition-all duration-300 flex-shrink-0","hidden lg:flex",v&&r?"lg:w-[60px]":"lg:w-[240px]",p&&"fixed left-0 top-14 z-50 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)(d.Button,{variant:"ghost",size:"sm",onClick:()=>g(!1),className:"h-8 w-8 p-0",children:[(0,t.jsx)(u.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close menu"})]})}),v&&(0,t.jsxs)("nav",{className:"flex-1 px-2 py-4 space-y-1",children:[(0,t.jsx)(f,{href:"/",icon:n.Home,currentPath:e,description:!r||p?"Dashboard":void 0,isCollapsed:r&&!p,children:"Home"}),(0,t.jsx)(f,{href:"/specs",icon:s.FileText,currentPath:e,description:!r||p?"All Specifications":void 0,isCollapsed:r&&!p,children:"Specs"}),(0,t.jsx)(f,{href:"/stats",icon:i,currentPath:e,description:!r||p?"Analytics":void 0,isCollapsed:r&&!p,children:"Stats"})]}),(0,t.jsx)("div",{className:"hidden lg:block p-2 border-t border-border",children:(0,t.jsx)(d.Button,{variant:"ghost",size:"sm",onClick:()=>m(!r),className:(0,c.cn)("w-full",v&&r&&"px-2"),children:v&&r?(0,t.jsx)(l.ChevronRight,{className:"h-4 w-4"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.ChevronLeft,{className:"h-4 w-4 mr-2"}),(0,t.jsx)("span",{className:"text-xs",children:"Collapse"})]})})})]})})]})}e.s(["MainSidebar",()=>m],42634)},14636,e=>{"use strict";var t=e.i(90022),r=e.i(81795);function a({children:e,...a}){return(0,t.jsx)(r.ThemeProvider,{...a,children:e})}e.s(["ThemeProvider",()=>a])},74916,e=>{"use strict";var t=e.i(90022),r=e.i(31231),a=e.i(95635);let n=Array(12).fill(0),s=({visible:e,className:t})=>r.default.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},r.default.createElement("div",{className:"sonner-spinner"},n.map((e,t)=>r.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${t}`})))),i=r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},r.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"})),o=r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},r.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"})),l=r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},r.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"})),u=r.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},r.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=r.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"},r.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),c=1,h=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:r,...a}=e,n="number"==typeof(null==e?void 0:e.id)||(null==(t=e.id)?void 0:t.length)>0?e.id:c++,s=this.toasts.find(e=>e.id===n),i=void 0===e.dismissible||e.dismissible;return this.dismissedToasts.has(n)&&this.dismissedToasts.delete(n),s?this.toasts=this.toasts.map(t=>t.id===n?(this.publish({...t,...e,id:n,title:r}),{...t,...e,id:n,dismissible:i,title:r}):t):this.addToast({title:r,...a,dismissible:i,id:n}),n},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{let a,n;if(!t)return;void 0!==t.loading&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:"function"!=typeof t.description?t.description:void 0}));let s=Promise.resolve(e instanceof Function?e():e),i=void 0!==n,o=s.then(async e=>{if(a=["resolve",e],r.default.isValidElement(e))i=!1,this.create({id:n,type:"default",message:e});else if(f(e)&&!e.ok){i=!1;let a="function"==typeof t.error?await t.error(`HTTP error! status: ${e.status}`):t.error,s="function"==typeof t.description?await t.description(`HTTP error! status: ${e.status}`):t.description,o="object"!=typeof a||r.default.isValidElement(a)?{message:a}:a;this.create({id:n,type:"error",description:s,...o})}else if(e instanceof Error){i=!1;let a="function"==typeof t.error?await t.error(e):t.error,s="function"==typeof t.description?await t.description(e):t.description,o="object"!=typeof a||r.default.isValidElement(a)?{message:a}:a;this.create({id:n,type:"error",description:s,...o})}else if(void 0!==t.success){i=!1;let a="function"==typeof t.success?await t.success(e):t.success,s="function"==typeof t.description?await t.description(e):t.description,o="object"!=typeof a||r.default.isValidElement(a)?{message:a}:a;this.create({id:n,type:"success",description:s,...o})}}).catch(async e=>{if(a=["reject",e],void 0!==t.error){i=!1;let a="function"==typeof t.error?await t.error(e):t.error,s="function"==typeof t.description?await t.description(e):t.description,o="object"!=typeof a||r.default.isValidElement(a)?{message:a}:a;this.create({id:n,type:"error",description:s,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),null==t.finally||t.finally.call(t)}),l=()=>new Promise((e,t)=>o.then(()=>"reject"===a[0]?t(a[1]):e(a[1])).catch(t));return"string"!=typeof n&&"number"!=typeof n?{unwrap:l}:Object.assign(n,{unwrap:l})},this.custom=(e,t)=>{let r=(null==t?void 0:t.id)||c++;return this.create({jsx:e(r),id:r,...t}),r},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=e=>e&&"object"==typeof e&&"ok"in e&&"boolean"==typeof e.ok&&"status"in e&&"number"==typeof e.status,m=Object.assign((e,t)=>{let r=(null==t?void 0:t.id)||c++;return h.addToast({title:e,...t,id:r}),r},{success:h.success,info:h.info,warning:h.warning,error:h.error,custom:h.custom,message:h.message,promise:h.promise,dismiss:h.dismiss,loading:h.loading},{getHistory:()=>h.toasts,getToasts:()=>h.getActiveToasts()});function p(e){return void 0!==e.label}function g(...e){return e.filter(Boolean).join(" ")}!function(e){if(!e||"undefined"==typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}("[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 v=e=>{var t,a,n,c,h,f,m,v,b,y,x,w,E;let{invert:C,toast:k,unstyled:j,interacting:A,setHeights:S,visibleToasts:M,heights:N,index:_,toasts:B,expanded:D,removeToast:R,defaultRichColors:I,closeButton:F,style:P,cancelButtonStyle:T,actionButtonStyle:$,className:O="",descriptionClassName:z="",duration:L,position:H,gap:V,expandByDefault:W,classNames:q,icons:K,closeButtonAriaLabel:U="Close toast"}=e,[Y,G]=r.default.useState(null),[X,J]=r.default.useState(null),[Q,Z]=r.default.useState(!1),[ee,et]=r.default.useState(!1),[er,ea]=r.default.useState(!1),[en,es]=r.default.useState(!1),[ei,eo]=r.default.useState(!1),[el,eu]=r.default.useState(0),[ed,ec]=r.default.useState(0),eh=r.default.useRef(k.duration||L||4e3),ef=r.default.useRef(null),em=r.default.useRef(null),ep=0===_,eg=_+1<=M,ev=k.type,eb=!1!==k.dismissible,ey=k.className||"",ex=k.descriptionClassName||"",ew=r.default.useMemo(()=>N.findIndex(e=>e.toastId===k.id)||0,[N,k.id]),eE=r.default.useMemo(()=>{var e;return null!=(e=k.closeButton)?e:F},[k.closeButton,F]),eC=r.default.useMemo(()=>k.duration||L||4e3,[k.duration,L]),ek=r.default.useRef(0),ej=r.default.useRef(0),eA=r.default.useRef(0),eS=r.default.useRef(null),[eM,eN]=H.split("-"),e_=r.default.useMemo(()=>N.reduce((e,t,r)=>r>=ew?e:e+t.height,0),[N,ew]),eB=(()=>{let[e,t]=r.default.useState(document.hidden);return r.default.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",e),()=>window.removeEventListener("visibilitychange",e)},[]),e})(),eD=k.invert||C,eR="loading"===ev;ej.current=r.default.useMemo(()=>ew*V+e_,[ew,e_]),r.default.useEffect(()=>{eh.current=eC},[eC]),r.default.useEffect(()=>{Z(!0)},[]),r.default.useEffect(()=>{let e=em.current;if(e){let t=e.getBoundingClientRect().height;return ec(t),S(e=>[{toastId:k.id,height:t,position:k.position},...e]),()=>S(e=>e.filter(e=>e.toastId!==k.id))}},[S,k.id]),r.default.useLayoutEffect(()=>{if(!Q)return;let e=em.current,t=e.style.height;e.style.height="auto";let r=e.getBoundingClientRect().height;e.style.height=t,ec(r),S(e=>e.find(e=>e.toastId===k.id)?e.map(e=>e.toastId===k.id?{...e,height:r}:e):[{toastId:k.id,height:r,position:k.position},...e])},[Q,k.title,k.description,S,k.id,k.jsx,k.action,k.cancel]);let eI=r.default.useCallback(()=>{et(!0),eu(ej.current),S(e=>e.filter(e=>e.toastId!==k.id)),setTimeout(()=>{R(k)},200)},[k,R,S,ej]);r.default.useEffect(()=>{let e;if((!k.promise||"loading"!==ev)&&k.duration!==1/0&&"loading"!==k.type){if(D||A||eB){if(eA.current<ek.current){let e=new Date().getTime()-ek.current;eh.current=eh.current-e}eA.current=new Date().getTime()}else eh.current!==1/0&&(ek.current=new Date().getTime(),e=setTimeout(()=>{null==k.onAutoClose||k.onAutoClose.call(k,k),eI()},eh.current));return()=>clearTimeout(e)}},[D,A,k,ev,eB,eI]),r.default.useEffect(()=>{k.delete&&(eI(),null==k.onDismiss||k.onDismiss.call(k,k))},[eI,k.delete]);let eF=k.icon||(null==K?void 0:K[ev])||(e=>{switch(e){case"success":return i;case"info":return l;case"warning":return o;case"error":return u;default:return null}})(ev);return r.default.createElement("li",{tabIndex:0,ref:em,className:g(O,ey,null==q?void 0:q.toast,null==k||null==(t=k.classNames)?void 0:t.toast,null==q?void 0:q.default,null==q?void 0:q[ev],null==k||null==(a=k.classNames)?void 0:a[ev]),"data-sonner-toast":"","data-rich-colors":null!=(y=k.richColors)?y:I,"data-styled":!(k.jsx||k.unstyled||j),"data-mounted":Q,"data-promise":!!k.promise,"data-swiped":ei,"data-removed":ee,"data-visible":eg,"data-y-position":eM,"data-x-position":eN,"data-index":_,"data-front":ep,"data-swiping":er,"data-dismissible":eb,"data-type":ev,"data-invert":eD,"data-swipe-out":en,"data-swipe-direction":X,"data-expanded":!!(D||W&&Q),"data-testid":k.testId,style:{"--index":_,"--toasts-before":_,"--z-index":B.length-_,"--offset":`${ee?el:ej.current}px`,"--initial-height":W?"auto":`${ed}px`,...P,...k.style},onDragEnd:()=>{ea(!1),G(null),eS.current=null},onPointerDown:e=>{2===e.button||eR||!eb||(ef.current=new Date,eu(ej.current),e.target.setPointerCapture(e.pointerId),"BUTTON"!==e.target.tagName&&(ea(!0),eS.current={x:e.clientX,y:e.clientY}))},onPointerUp:()=>{var e,t,r,a,n;if(en||!eb)return;eS.current=null;let s=Number((null==(e=em.current)?void 0:e.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),i=Number((null==(t=em.current)?void 0:t.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),o=new Date().getTime()-(null==(r=ef.current)?void 0:r.getTime()),l="x"===Y?s:i,u=Math.abs(l)/o;if(Math.abs(l)>=45||u>.11){eu(ej.current),null==k.onDismiss||k.onDismiss.call(k,k),"x"===Y?J(s>0?"right":"left"):J(i>0?"down":"up"),eI(),es(!0);return}null==(a=em.current)||a.style.setProperty("--swipe-amount-x","0px"),null==(n=em.current)||n.style.setProperty("--swipe-amount-y","0px"),eo(!1),ea(!1),G(null)},onPointerMove:t=>{var r,a,n,s;if(!eS.current||!eb||(null==(r=window.getSelection())?void 0:r.toString().length)>0)return;let i=t.clientY-eS.current.y,o=t.clientX-eS.current.x,l=null!=(s=e.swipeDirections)?s:function(e){let[t,r]=e.split("-"),a=[];return t&&a.push(t),r&&a.push(r),a}(H);!Y&&(Math.abs(o)>1||Math.abs(i)>1)&&G(Math.abs(o)>Math.abs(i)?"x":"y");let u={x:0,y:0},d=e=>1/(1.5+Math.abs(e)/20);if("y"===Y){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&i<0||l.includes("bottom")&&i>0)u.y=i;else{let e=i*d(i);u.y=Math.abs(e)<Math.abs(i)?e:i}}else if("x"===Y&&(l.includes("left")||l.includes("right")))if(l.includes("left")&&o<0||l.includes("right")&&o>0)u.x=o;else{let e=o*d(o);u.x=Math.abs(e)<Math.abs(o)?e:o}(Math.abs(u.x)>0||Math.abs(u.y)>0)&&eo(!0),null==(a=em.current)||a.style.setProperty("--swipe-amount-x",`${u.x}px`),null==(n=em.current)||n.style.setProperty("--swipe-amount-y",`${u.y}px`)}},eE&&!k.jsx&&"loading"!==ev?r.default.createElement("button",{"aria-label":U,"data-disabled":eR,"data-close-button":!0,onClick:eR||!eb?()=>{}:()=>{eI(),null==k.onDismiss||k.onDismiss.call(k,k)},className:g(null==q?void 0:q.closeButton,null==k||null==(n=k.classNames)?void 0:n.closeButton)},null!=(x=null==K?void 0:K.close)?x:d):null,(ev||k.icon||k.promise)&&null!==k.icon&&((null==K?void 0:K[ev])!==null||k.icon)?r.default.createElement("div",{"data-icon":"",className:g(null==q?void 0:q.icon,null==k||null==(c=k.classNames)?void 0:c.icon)},k.promise||"loading"===k.type&&!k.icon?k.icon||((null==K?void 0:K.loading)?r.default.createElement("div",{className:g(null==q?void 0:q.loader,null==k||null==(E=k.classNames)?void 0:E.loader,"sonner-loader"),"data-visible":"loading"===ev},K.loading):r.default.createElement(s,{className:g(null==q?void 0:q.loader,null==k||null==(w=k.classNames)?void 0:w.loader),visible:"loading"===ev})):null,"loading"!==k.type?eF:null):null,r.default.createElement("div",{"data-content":"",className:g(null==q?void 0:q.content,null==k||null==(h=k.classNames)?void 0:h.content)},r.default.createElement("div",{"data-title":"",className:g(null==q?void 0:q.title,null==k||null==(f=k.classNames)?void 0:f.title)},k.jsx?k.jsx:"function"==typeof k.title?k.title():k.title),k.description?r.default.createElement("div",{"data-description":"",className:g(z,ex,null==q?void 0:q.description,null==k||null==(m=k.classNames)?void 0:m.description)},"function"==typeof k.description?k.description():k.description):null),r.default.isValidElement(k.cancel)?k.cancel:k.cancel&&p(k.cancel)?r.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:k.cancelButtonStyle||T,onClick:e=>{!p(k.cancel)||eb&&(null==k.cancel.onClick||k.cancel.onClick.call(k.cancel,e),eI())},className:g(null==q?void 0:q.cancelButton,null==k||null==(v=k.classNames)?void 0:v.cancelButton)},k.cancel.label):null,r.default.isValidElement(k.action)?k.action:k.action&&p(k.action)?r.default.createElement("button",{"data-button":!0,"data-action":!0,style:k.actionButtonStyle||$,onClick:e=>{!p(k.action)||(null==k.action.onClick||k.action.onClick.call(k.action,e),e.defaultPrevented||eI())},className:g(null==q?void 0:q.actionButton,null==k||null==(b=k.classNames)?void 0:b.actionButton)},k.action.label):null)};function b(){if("undefined"==typeof window||"undefined"==typeof document)return"ltr";let e=document.documentElement.getAttribute("dir");return"auto"!==e&&e?e:window.getComputedStyle(document.documentElement).direction}let y=r.default.forwardRef(function(e,t){let{id:n,invert:s,position:i="bottom-right",hotkey:o=["altKey","KeyT"],expand:l,closeButton:u,className:d,offset:c,mobileOffset:f,theme:m="light",richColors:p,duration:g,style:y,visibleToasts:x=3,toastOptions:w,dir:E=b(),gap:C=14,icons:k,containerAriaLabel:j="Notifications"}=e,[A,S]=r.default.useState([]),M=r.default.useMemo(()=>n?A.filter(e=>e.toasterId===n):A.filter(e=>!e.toasterId),[A,n]),N=r.default.useMemo(()=>Array.from(new Set([i].concat(M.filter(e=>e.position).map(e=>e.position)))),[M,i]),[_,B]=r.default.useState([]),[D,R]=r.default.useState(!1),[I,F]=r.default.useState(!1),[P,T]=r.default.useState("system"!==m?m:"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),$=r.default.useRef(null),O=o.join("+").replace(/Key/g,"").replace(/Digit/g,""),z=r.default.useRef(null),L=r.default.useRef(!1),H=r.default.useCallback(e=>{S(t=>{var r;return(null==(r=t.find(t=>t.id===e.id))?void 0:r.delete)||h.dismiss(e.id),t.filter(({id:t})=>t!==e.id)})},[]);return r.default.useEffect(()=>h.subscribe(e=>{e.dismiss?requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))}):setTimeout(()=>{a.default.flushSync(()=>{S(t=>{let r=t.findIndex(t=>t.id===e.id);return -1!==r?[...t.slice(0,r),{...t[r],...e},...t.slice(r+1)]:[e,...t]})})})}),[A]),r.default.useEffect(()=>{if("system"!==m)return void T(m);if("system"===m&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?T("dark"):T("light")),"undefined"==typeof window)return;let e=window.matchMedia("(prefers-color-scheme: dark)");try{e.addEventListener("change",({matches:e})=>{e?T("dark"):T("light")})}catch(t){e.addListener(({matches:e})=>{try{e?T("dark"):T("light")}catch(e){console.error(e)}})}},[m]),r.default.useEffect(()=>{A.length<=1&&R(!1)},[A]),r.default.useEffect(()=>{let e=e=>{var t,r;o.every(t=>e[t]||e.code===t)&&(R(!0),null==(r=$.current)||r.focus()),"Escape"===e.code&&(document.activeElement===$.current||(null==(t=$.current)?void 0:t.contains(document.activeElement)))&&R(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[o]),r.default.useEffect(()=>{if($.current)return()=>{z.current&&(z.current.focus({preventScroll:!0}),z.current=null,L.current=!1)}},[$.current]),r.default.createElement("section",{ref:t,"aria-label":`${j} ${O}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},N.map((t,a)=>{var n;let i,[o,h]=t.split("-");return M.length?r.default.createElement("ol",{key:t,dir:"auto"===E?b():E,tabIndex:-1,ref:$,className:d,"data-sonner-toaster":!0,"data-sonner-theme":P,"data-y-position":o,"data-x-position":h,style:{"--front-toast-height":`${(null==(n=_[0])?void 0:n.height)||0}px`,"--width":"356px","--gap":`${C}px`,...y,...(i={},[c,f].forEach((e,t)=>{let r=1===t,a=r?"--mobile-offset":"--offset",n=r?"16px":"24px";function s(e){["top","right","bottom","left"].forEach(t=>{i[`${a}-${t}`]="number"==typeof e?`${e}px`:e})}"number"==typeof e||"string"==typeof e?s(e):"object"==typeof e?["top","right","bottom","left"].forEach(t=>{void 0===e[t]?i[`${a}-${t}`]=n:i[`${a}-${t}`]="number"==typeof e[t]?`${e[t]}px`:e[t]}):s(n)}),i)},onBlur:e=>{L.current&&!e.currentTarget.contains(e.relatedTarget)&&(L.current=!1,z.current&&(z.current.focus({preventScroll:!0}),z.current=null))},onFocus:e=>{!(e.target instanceof HTMLElement&&"false"===e.target.dataset.dismissible)&&(L.current||(L.current=!0,z.current=e.relatedTarget))},onMouseEnter:()=>R(!0),onMouseMove:()=>R(!0),onMouseLeave:()=>{I||R(!1)},onDragEnd:()=>R(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&"false"===e.target.dataset.dismissible||F(!0)},onPointerUp:()=>F(!1)},M.filter(e=>!e.position&&0===a||e.position===t).map((a,n)=>{var i,o;return r.default.createElement(v,{key:a.id,icons:k,index:n,toast:a,defaultRichColors:p,duration:null!=(i=null==w?void 0:w.duration)?i:g,className:null==w?void 0:w.className,descriptionClassName:null==w?void 0:w.descriptionClassName,invert:s,visibleToasts:x,closeButton:null!=(o=null==w?void 0:w.closeButton)?o:u,interacting:I,position:t,style:null==w?void 0:w.style,unstyled:null==w?void 0:w.unstyled,classNames:null==w?void 0:w.classNames,cancelButtonStyle:null==w?void 0:w.cancelButtonStyle,actionButtonStyle:null==w?void 0:w.actionButtonStyle,closeButtonAriaLabel:null==w?void 0:w.closeButtonAriaLabel,removeToast:H,toasts:M.filter(e=>e.position==a.position),heights:_.filter(e=>e.position==a.position),setHeights:B,expandByDefault:l,gap:C,expanded:D,swipeDirections:e.swipeDirections})})):null}))});var x=e.i(81795);function w(){let{theme:e}=(0,x.useTheme)();return(0,t.jsx)(y,{theme:e,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"}}})}e.s(["Toast",()=>w],93455),e.i(93455),e.s(["Toast",()=>w,"toast",()=>m],74916)}]);
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
# LeanSpec Web
|
|
2
|
-
|
|
3
|
-
> Interactive spec showcase platform for browsing and exploring LeanSpec specifications
|
|
4
|
-
|
|
5
|
-
A fullstack web application built with Next.js 16, showcasing LeanSpec's own specifications in a rich, interactive format. This is the MVP (Phase 1) implementation for spec 035-live-specs-showcase.
|
|
6
|
-
|
|
7
|
-
## Features
|
|
8
|
-
|
|
9
|
-
✨ **Core Features (MVP - Phase 1)**:
|
|
10
|
-
- 📊 **Stats Dashboard**: Visual overview of project metrics and completion rates
|
|
11
|
-
- 🔍 **Search & Filtering**: Find specs by title, name, tags, status, or priority
|
|
12
|
-
- 📋 **Spec Browser**: Table view with sortable columns and detailed information
|
|
13
|
-
- 🎯 **Kanban Board**: Visual workflow tracking across all statuses
|
|
14
|
-
- 📝 **Rich Markdown Rendering**: Syntax-highlighted code blocks and GitHub-flavored markdown
|
|
15
|
-
- 🎨 **Modern UI**: Built with shadcn/ui components and Tailwind CSS
|
|
16
|
-
- 🌐 **Navigation**: Clean header with routing between pages
|
|
17
|
-
- ⚡ **Loading States**: Skeleton loaders for better UX
|
|
18
|
-
- 🛡️ **Error Handling**: Custom 404 and error pages
|
|
19
|
-
|
|
20
|
-
## Tech Stack
|
|
21
|
-
|
|
22
|
-
- **Framework**: Next.js 16 with App Router
|
|
23
|
-
- **UI**: React 19, Tailwind CSS 4, shadcn/ui components
|
|
24
|
-
- **Database**: SQLite (dev) with Drizzle ORM
|
|
25
|
-
- **Markdown**: react-markdown with syntax highlighting (highlight.js)
|
|
26
|
-
- **Icons**: lucide-react
|
|
27
|
-
- **Testing**: Vitest
|
|
28
|
-
|
|
29
|
-
## Getting Started
|
|
30
|
-
|
|
31
|
-
### Prerequisites
|
|
32
|
-
|
|
33
|
-
- Node.js 18+
|
|
34
|
-
- pnpm (monorepo package manager)
|
|
35
|
-
|
|
36
|
-
### Installation
|
|
37
|
-
|
|
38
|
-
From the monorepo root:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
# Install dependencies
|
|
42
|
-
pnpm install
|
|
43
|
-
|
|
44
|
-
# Navigate to web package
|
|
45
|
-
cd packages/web
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### Database Setup
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
# Generate migrations
|
|
52
|
-
npm run db:generate
|
|
53
|
-
|
|
54
|
-
# Run migrations
|
|
55
|
-
npm run db:migrate
|
|
56
|
-
|
|
57
|
-
# Seed database with LeanSpec specs
|
|
58
|
-
npm run db:seed
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Development
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
# Start dev server (from packages/web)
|
|
65
|
-
npm run dev
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Open [http://localhost:3000](http://localhost:3000) to see the application.
|
|
69
|
-
|
|
70
|
-
### Build
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# Type check
|
|
74
|
-
npm run typecheck
|
|
75
|
-
|
|
76
|
-
# Build for production
|
|
77
|
-
npm run build
|
|
78
|
-
|
|
79
|
-
# Start production server
|
|
80
|
-
npm run start
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Testing
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
# Run tests once
|
|
87
|
-
npm run test
|
|
88
|
-
|
|
89
|
-
# Watch mode
|
|
90
|
-
npm run test:watch
|
|
91
|
-
|
|
92
|
-
# UI mode
|
|
93
|
-
npm run test:ui
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Project Structure
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
src/
|
|
100
|
-
├── app/ # Next.js App Router pages
|
|
101
|
-
│ ├── api/ # API routes
|
|
102
|
-
│ │ ├── projects/ # Projects endpoints
|
|
103
|
-
│ │ ├── specs/ # Specs endpoints
|
|
104
|
-
│ │ └── stats/ # Statistics endpoint
|
|
105
|
-
│ ├── board/ # Kanban board page
|
|
106
|
-
│ ├── specs/[id]/ # Spec detail page
|
|
107
|
-
│ ├── error.tsx # Error boundary
|
|
108
|
-
│ ├── loading.tsx # Global loading state
|
|
109
|
-
│ ├── not-found.tsx # 404 page
|
|
110
|
-
│ ├── page.tsx # Home page (server)
|
|
111
|
-
│ └── home-client.tsx # Home page (client)
|
|
112
|
-
├── components/
|
|
113
|
-
│ ├── ui/ # shadcn/ui components
|
|
114
|
-
│ │ ├── badge.tsx
|
|
115
|
-
│ │ ├── button.tsx
|
|
116
|
-
│ │ ├── card.tsx
|
|
117
|
-
│ │ ├── input.tsx
|
|
118
|
-
│ │ └── skeleton.tsx
|
|
119
|
-
│ └── navigation.tsx # Header navigation
|
|
120
|
-
├── lib/
|
|
121
|
-
│ ├── db/ # Database layer
|
|
122
|
-
│ │ ├── index.ts # DB connection
|
|
123
|
-
│ │ ├── schema.ts # Drizzle schema
|
|
124
|
-
│ │ ├── queries.ts # Data access layer
|
|
125
|
-
│ │ ├── migrate.ts # Migration runner
|
|
126
|
-
│ │ └── seed.ts # Database seeding
|
|
127
|
-
│ └── utils.ts # Utility functions
|
|
128
|
-
└── types/ # TypeScript types
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## Database Schema
|
|
132
|
-
|
|
133
|
-
- **projects**: GitHub repositories using LeanSpec
|
|
134
|
-
- **specs**: Cached specification content from GitHub
|
|
135
|
-
- **spec_relationships**: Dependencies and relationships between specs
|
|
136
|
-
- **sync_logs**: Audit trail for GitHub sync operations
|
|
137
|
-
|
|
138
|
-
## Available Scripts
|
|
139
|
-
|
|
140
|
-
| Command | Description |
|
|
141
|
-
|---------|-------------|
|
|
142
|
-
| `npm run dev` | Start development server |
|
|
143
|
-
| `npm run build` | Build for production |
|
|
144
|
-
| `npm run start` | Start production server |
|
|
145
|
-
| `npm run lint` | Run ESLint |
|
|
146
|
-
| `npm run typecheck` | Type check with TypeScript |
|
|
147
|
-
| `npm run test` | Run tests once |
|
|
148
|
-
| `npm run test:watch` | Run tests in watch mode |
|
|
149
|
-
| `npm run test:ui` | Run tests with UI |
|
|
150
|
-
| `npm run db:generate` | Generate Drizzle migrations |
|
|
151
|
-
| `npm run db:migrate` | Run database migrations |
|
|
152
|
-
| `npm run db:studio` | Open Drizzle Studio |
|
|
153
|
-
| `npm run db:seed` | Seed database with specs |
|
|
154
|
-
|
|
155
|
-
## Roadmap
|
|
156
|
-
|
|
157
|
-
### ✅ Phase 1: Foundation & MVP (Complete)
|
|
158
|
-
- Core pages and navigation
|
|
159
|
-
- Search and filtering
|
|
160
|
-
- Kanban board view
|
|
161
|
-
- Error handling and loading states
|
|
162
|
-
- Basic testing
|
|
163
|
-
|
|
164
|
-
### 🚧 Phase 2: GitHub Integration (Upcoming)
|
|
165
|
-
- Multi-project support
|
|
166
|
-
- Automatic GitHub sync
|
|
167
|
-
- Scheduled cron jobs
|
|
168
|
-
- Enhanced error handling
|
|
169
|
-
|
|
170
|
-
### 📋 Phase 3: Community & Discovery (Future)
|
|
171
|
-
- Public project explorer
|
|
172
|
-
- Full-text search across projects
|
|
173
|
-
- Spec relationship visualization
|
|
174
|
-
- Export to PDF
|
|
175
|
-
|
|
176
|
-
### 🔮 Phase 4: Advanced Features (Future)
|
|
177
|
-
- GitHub OAuth for private repos
|
|
178
|
-
- Real-time webhooks
|
|
179
|
-
- Version history and diffs
|
|
180
|
-
- Team collaboration features
|
|
181
|
-
|
|
182
|
-
## Contributing
|
|
183
|
-
|
|
184
|
-
This is part of the LeanSpec monorepo. See the main README for contribution guidelines.
|
|
185
|
-
|
|
186
|
-
## License
|
|
187
|
-
|
|
188
|
-
Same as the LeanSpec project.
|
|
189
|
-
|
|
190
|
-
## Documentation
|
|
191
|
-
|
|
192
|
-
For detailed architecture, design decisions, and implementation details, see:
|
|
193
|
-
- [Spec 035 README](../../specs/035-live-specs-showcase/README.md)
|
|
194
|
-
- [Architecture](../../specs/035-live-specs-showcase/ARCHITECTURE.md)
|
|
195
|
-
- [Implementation Plan](../../specs/035-live-specs-showcase/IMPLEMENTATION.md)
|
|
196
|
-
|