@leanspec/ui 0.2.9-dev.20251205030455 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +5 -0
- package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
- package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
- package/.next/standalone/packages/ui/.next/routes-manifest.json +40 -0
- 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.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -20
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +23 -26
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/build-manifest.json +11 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js +8 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.map +5 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.nft.json +1 -0
- package/.next/standalone/packages/ui/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
- package/.next/standalone/packages/ui/.next/server/app/context/page.js +4 -3
- package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +4 -3
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -25
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -25
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +20 -24
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/app/specs/page.js +4 -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.js +4 -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 +5 -0
- package/.next/standalone/packages/ui/.next/server/chunks/284a8_app_api_projects_[id]_specs_[spec]_dependency-graph_route_actions_f18476ed.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_tags_route_actions_40899744.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_metadata_route_actions_139bb09f.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0afcada7._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0e63a440._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0ec6f9b0._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0edb782a._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__38780e00._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a535244._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__41f43652._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5081ac6f._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__526764b2._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__74af400b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9cf3bf21._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c7a4906b._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__de15d2aa._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e16f7651._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2fcb5c6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e8d9903e._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f6936b89._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_metadata_route_actions_35af9a8c.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_tags_route_actions_64625b2c.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__13f96ef4._.js → [root-of-the-server]__174e1ca1._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__38c56adc._.js → [root-of-the-server]__2d9202e8._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__338c65fe._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c158c9a9._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c7735439._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e2c760eb._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__84124d4b._.js → [root-of-the-server]__ead1539c._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_adb9d7cb._.js → _22274047._.js} +2 -2
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_59616aa6._.js +3 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_5e1484f9._.js +7 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_be836d6a._.js +5 -0
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +1 -1
- package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
- package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/0c7bbb59865774a1.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/0fe978002ba489fb.js +3 -0
- package/.next/standalone/packages/ui/.next/static/chunks/1169d4ac8f9df687.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/241b6b1c83610ebf.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/6d7922838a3513a4.js +1 -0
- package/.next/{static/chunks/7a00633903e066b4.js → standalone/packages/ui/.next/static/chunks/781328ee279ffc41.js} +1 -1
- package/.next/standalone/packages/ui/.next/static/chunks/937cb3894a606899.js +5 -0
- package/.next/standalone/packages/ui/.next/static/chunks/9cf644b700f37825.css +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
- package/.next/standalone/packages/ui/.next/static/chunks/dbce73f7087f2470.js +10 -0
- package/.next/standalone/packages/ui/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
- package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
- package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +1 -0
- package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
- package/.next/standalone/packages/ui/dist/public/file.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/github-mark.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/globe.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/icon.svg +7 -0
- package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/logo.svg +17 -0
- package/.next/standalone/packages/ui/dist/public/next.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/vercel.svg +1 -0
- package/.next/standalone/packages/ui/dist/public/window.svg +1 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +75 -0
- package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +261 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +380 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +368 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +327 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +117 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +73 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +109 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +107 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +429 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +302 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +359 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +86 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +437 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +365 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +203 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +156 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +183 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +217 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +126 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +108 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +382 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +144 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +208 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +182 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +314 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +237 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +149 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +254 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +376 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +240 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +374 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +339 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +128 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +97 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +93 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +175 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +397 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +342 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +44 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +150 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +351 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +238 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +280 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +466 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +178 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +295 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +487 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +279 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +642 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +286 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +392 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +1002 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +411 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +812 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +504 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +724 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +125 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +299 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +265 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +36 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +243 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +82 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +338 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +354 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +189 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +119 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +170 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +158 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +842 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +358 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +444 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +357 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +551 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +372 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +489 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +285 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +323 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +136 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +399 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +301 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +235 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +303 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +196 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +388 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +824 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +111 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +77 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +184 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +496 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +490 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +389 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +920 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +146 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +607 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +104 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +124 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +129 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +244 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +148 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +54 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +37 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +113 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +69 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +112 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +229 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +406 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +168 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +174 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +212 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +249 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +60 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +722 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +413 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +252 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +253 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +612 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +794 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +834 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +255 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +454 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +172 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +152 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +95 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +87 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +230 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +89 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +166 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +122 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +198 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +192 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +171 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +200 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +317 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +276 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +241 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +139 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +328 -0
- package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +400 -0
- package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
- package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
- package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
- package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
- package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
- package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
- package/.next/standalone/packages/ui/package.json +1 -1
- package/.next/standalone/packages/ui/server.js +1 -1
- package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +4 -67
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +3 -52
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/dependency-graph/route.ts +129 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/metadata/route.ts +170 -0
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +9 -2
- package/.next/standalone/packages/ui/src/app/api/projects/[id]/tags/route.ts +25 -0
- package/.next/standalone/packages/ui/src/app/api/specs/[id]/metadata/route.ts +184 -0
- package/.next/standalone/packages/ui/src/app/api/tags/route.ts +16 -0
- package/.next/standalone/packages/ui/src/app/context/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +14 -4
- package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +2 -2
- package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +25 -13
- package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +1 -14
- package/.next/standalone/packages/ui/src/app/projects/page.tsx +234 -113
- package/.next/standalone/packages/ui/src/app/specs/[id]/page.tsx +24 -1
- package/.next/standalone/packages/ui/src/app/specs/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +1 -1
- package/.next/standalone/packages/ui/src/app/stats/page.tsx +22 -0
- package/.next/standalone/packages/ui/src/components/editable-spec-metadata.tsx +152 -0
- package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +6 -0
- package/.next/standalone/packages/ui/src/components/priority-editor.tsx +153 -0
- package/.next/standalone/packages/ui/src/components/project-switcher.tsx +53 -8
- package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +23 -20
- package/.next/standalone/packages/ui/src/components/status-editor.tsx +153 -0
- package/.next/standalone/packages/ui/src/components/tags-editor.tsx +238 -0
- package/.next/standalone/packages/ui/src/components/ui/command.tsx +1 -1
- package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +151 -15
- package/.next/standalone/packages/ui/src/lib/projects/registry.ts +1 -1
- package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +21 -5
- package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
- package/.next/static/chunks/0c7bbb59865774a1.js +1 -0
- package/.next/static/chunks/0fe978002ba489fb.js +3 -0
- package/.next/static/chunks/1169d4ac8f9df687.js +1 -0
- package/.next/static/chunks/241b6b1c83610ebf.js +1 -0
- package/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
- package/.next/static/chunks/6d7922838a3513a4.js +1 -0
- package/.next/{standalone/packages/ui/.next/static/chunks/7a00633903e066b4.js → static/chunks/781328ee279ffc41.js} +1 -1
- package/.next/static/chunks/937cb3894a606899.js +5 -0
- package/.next/static/chunks/9cf644b700f37825.css +1 -0
- package/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
- package/.next/static/chunks/dbce73f7087f2470.js +10 -0
- package/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_buildManifest.js +11 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_clientMiddlewareManifest.json +1 -0
- package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_ssgManifest.js +1 -0
- package/package.json +2 -2
- package/.next/standalone/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +0 -95
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__18aca702._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__27348781._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a7f0840._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3e17db24._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6e06fd2a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__97b99cc0._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9d9758e1._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b212b9bd._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b9c03a57._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e99e7672._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f38a5f20._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fa8cf2bc._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__53f4506c._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__921689ca._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a9d7fd42._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b27b2469._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b3633d6e._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +0 -7
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +0 -5
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_90eed09a._.js +0 -3
- package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f9129aae._.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/04de9ed512b8098b.js +0 -10
- package/.next/standalone/packages/ui/.next/static/chunks/3d12a8c3152b526d.js +0 -3
- package/.next/standalone/packages/ui/.next/static/chunks/7931c6cb379305b1.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/7f9a218732be8099.js +0 -5
- package/.next/standalone/packages/ui/.next/static/chunks/8a6e8f3394240dbb.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/8d8c106c6848d15b.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/a640b005f2e15d98.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/a7075a240adea8e8.js +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/ddb2935cfe5310c7.css +0 -1
- package/.next/standalone/packages/ui/.next/static/chunks/f924ae32752e1583.js +0 -1
- package/.next/static/chunks/04de9ed512b8098b.js +0 -10
- package/.next/static/chunks/3d12a8c3152b526d.js +0 -3
- package/.next/static/chunks/7931c6cb379305b1.js +0 -1
- package/.next/static/chunks/7f9a218732be8099.js +0 -5
- package/.next/static/chunks/8a6e8f3394240dbb.js +0 -1
- package/.next/static/chunks/8d8c106c6848d15b.js +0 -1
- package/.next/static/chunks/a640b005f2e15d98.js +0 -1
- package/.next/static/chunks/a7075a240adea8e8.js +0 -1
- package/.next/static/chunks/ddb2935cfe5310c7.css +0 -1
- package/.next/static/chunks/f924ae32752e1583.js +0 -1
- /package/.next/standalone/packages/ui/.next/static/{T8X9UGfigRL0qWZiBHNjy → s9uUE9DnvJD2xIz-iBGMe}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/ui/.next/static/{T8X9UGfigRL0qWZiBHNjy → s9uUE9DnvJD2xIz-iBGMe}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/packages/ui/.next/static/{T8X9UGfigRL0qWZiBHNjy → s9uUE9DnvJD2xIz-iBGMe}/_ssgManifest.js +0 -0
- /package/.next/{static/T8X9UGfigRL0qWZiBHNjy → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
- /package/.next/{static/T8X9UGfigRL0qWZiBHNjy → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{static/T8X9UGfigRL0qWZiBHNjy → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,340898,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(230827),a=e.i(963781),o=e.i(300329),s=e.i(723882),l=e.i(828964),i=e.i(122436);let d=(0,i.default)("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]),c=(0,i.default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]),u=(0,i.default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),p=(0,i.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var f=e.i(686266),m=e.i(644021);let h=(0,i.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var x=e.i(196812),v=e.i(753938),g=e.i(987985),w=e.i(20648),j=e.i(235893),y=e.i(21079),b=e.i(76075),N=e.i(291967),C=e.i(430406),k=e.i(79014),R=e.i(393136),P=e.i(122925),M=e.i(670465),E=e.i(695587),D=e.i(255235),S=e.i(254440),I=e.i(31007),_=e.i(315599),T=e.i(306839),F=e.i(214260),O=e.i(111052),A=e.i(938657),L="rovingFocusGroup.onEntryFocus",H={bubbles:!1,cancelable:!0},K="RovingFocusGroup",[z,B,G]=(0,M.createCollection)(K),[V,U]=(0,k.createContextScope)(K,[G]),[$,X]=V(K),q=r.forwardRef((e,r)=>(0,t.jsx)(z.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(z.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(W,{...e,ref:r})})}));q.displayName=K;var W=r.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,orientation:o,loop:s=!1,dir:l,currentTabStopId:i,defaultCurrentTabStopId:d,onCurrentTabStopIdChange:c,onEntryFocus:u,preventScrollOnEntryFocus:p=!1,...f}=e,m=r.useRef(null),h=(0,C.useComposedRefs)(n,m),x=(0,E.useDirection)(l),[v,g]=(0,R.useControllableState)({prop:i,defaultProp:d??null,onChange:c,caller:K}),[w,j]=r.useState(!1),y=(0,A.useCallbackRef)(u),b=B(a),k=r.useRef(!1),[M,D]=r.useState(0);return r.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(L,y),()=>e.removeEventListener(L,y)},[y]),(0,t.jsx)($,{scope:a,orientation:o,dir:x,loop:s,currentTabStopId:v,onItemFocus:r.useCallback(e=>g(e),[g]),onItemShiftTab:r.useCallback(()=>j(!0),[]),onFocusableItemAdd:r.useCallback(()=>D(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>D(e=>e-1),[]),children:(0,t.jsx)(P.Primitive.div,{tabIndex:w||0===M?-1:0,"data-orientation":o,...f,ref:h,style:{outline:"none",...e.style},onMouseDown:(0,N.composeEventHandlers)(e.onMouseDown,()=>{k.current=!0}),onFocus:(0,N.composeEventHandlers)(e.onFocus,e=>{let t=!k.current;if(e.target===e.currentTarget&&t&&!w){let t=new CustomEvent(L,H);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=b().filter(e=>e.focusable);Q([e.find(e=>e.active),e.find(e=>e.id===v),...e].filter(Boolean).map(e=>e.ref.current),p)}}k.current=!1}),onBlur:(0,N.composeEventHandlers)(e.onBlur,()=>j(!1))})})}),Y="RovingFocusGroupItem",Z=r.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,focusable:o=!0,active:s=!1,tabStopId:l,children:i,...d}=e,c=(0,_.useId)(),u=l||c,p=X(Y,a),f=p.currentTabStopId===u,m=B(a),{onFocusableItemAdd:h,onFocusableItemRemove:x,currentTabStopId:v}=p;return r.useEffect(()=>{if(o)return h(),()=>x()},[o,h,x]),(0,t.jsx)(z.ItemSlot,{scope:a,id:u,focusable:o,active:s,children:(0,t.jsx)(P.Primitive.span,{tabIndex:f?0:-1,"data-orientation":p.orientation,...d,ref:n,onMouseDown:(0,N.composeEventHandlers)(e.onMouseDown,e=>{o?p.onItemFocus(u):e.preventDefault()}),onFocus:(0,N.composeEventHandlers)(e.onFocus,()=>p.onItemFocus(u)),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void p.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let a=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return J[a]}(e,p.orientation,p.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=m().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&a.reverse();let o=a.indexOf(e.currentTarget);a=p.loop?(r=a,n=o+1,r.map((e,t)=>r[(n+t)%r.length])):a.slice(o+1)}setTimeout(()=>Q(a))}}),children:"function"==typeof i?i({isCurrentTabStop:f,hasTabStop:null!=v}):i})})});Z.displayName=Y;var J={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Q(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var ee=e.i(665489),et=e.i(73772),er=e.i(97496),en=["Enter"," "],ea=["ArrowUp","PageDown","End"],eo=["ArrowDown","PageUp","Home",...ea],es={ltr:[...en,"ArrowRight"],rtl:[...en,"ArrowLeft"]},el={ltr:["ArrowLeft"],rtl:["ArrowRight"]},ei="Menu",[ed,ec,eu]=(0,M.createCollection)(ei),[ep,ef]=(0,k.createContextScope)(ei,[eu,T.createPopperScope,U]),em=(0,T.createPopperScope)(),eh=U(),[ex,ev]=ep(ei),[eg,ew]=ep(ei),ej=e=>{let{__scopeMenu:n,open:a=!1,children:o,dir:s,onOpenChange:l,modal:i=!0}=e,d=em(n),[c,u]=r.useState(null),p=r.useRef(!1),f=(0,A.useCallbackRef)(l),m=(0,E.useDirection)(s);return r.useEffect(()=>{let e=()=>{p.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>p.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,t.jsx)(T.Root,{...d,children:(0,t.jsx)(ex,{scope:n,open:a,onOpenChange:f,content:c,onContentChange:u,children:(0,t.jsx)(eg,{scope:n,onClose:r.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:p,dir:m,modal:i,children:o})})})};ej.displayName=ei;var ey=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,o=em(n);return(0,t.jsx)(T.Anchor,{...o,...a,ref:r})});ey.displayName="MenuAnchor";var eb="MenuPortal",[eN,eC]=ep(eb,{forceMount:void 0}),ek=e=>{let{__scopeMenu:r,forceMount:n,children:a,container:o}=e,s=ev(eb,r);return(0,t.jsx)(eN,{scope:r,forceMount:n,children:(0,t.jsx)(O.Presence,{present:n||s.open,children:(0,t.jsx)(F.Portal,{asChild:!0,container:o,children:a})})})};ek.displayName=eb;var eR="MenuContent",[eP,eM]=ep(eR),eE=r.forwardRef((e,r)=>{let n=eC(eR,e.__scopeMenu),{forceMount:a=n.forceMount,...o}=e,s=ev(eR,e.__scopeMenu),l=ew(eR,e.__scopeMenu);return(0,t.jsx)(ed.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(O.Presence,{present:a||s.open,children:(0,t.jsx)(ed.Slot,{scope:e.__scopeMenu,children:l.modal?(0,t.jsx)(eD,{...o,ref:r}):(0,t.jsx)(eS,{...o,ref:r})})})})}),eD=r.forwardRef((e,n)=>{let a=ev(eR,e.__scopeMenu),o=r.useRef(null),s=(0,C.useComposedRefs)(n,o);return r.useEffect(()=>{let e=o.current;if(e)return(0,et.hideOthers)(e)},[]),(0,t.jsx)(e_,{...e,ref:s,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:(0,N.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),eS=r.forwardRef((e,r)=>{let n=ev(eR,e.__scopeMenu);return(0,t.jsx)(e_,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),eI=(0,ee.createSlot)("MenuContent.ScrollLock"),e_=r.forwardRef((e,n)=>{let{__scopeMenu:a,loop:o=!1,trapFocus:s,onOpenAutoFocus:l,onCloseAutoFocus:i,disableOutsidePointerEvents:d,onEntryFocus:c,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:h,disableOutsideScroll:x,...v}=e,g=ev(eR,a),w=ew(eR,a),j=em(a),y=eh(a),b=ec(a),[k,R]=r.useState(null),P=r.useRef(null),M=(0,C.useComposedRefs)(n,P,g.onContentChange),E=r.useRef(0),_=r.useRef(""),F=r.useRef(0),O=r.useRef(null),A=r.useRef("right"),L=r.useRef(0),H=x?er.RemoveScroll:r.Fragment;r.useEffect(()=>()=>window.clearTimeout(E.current),[]),(0,S.useFocusGuards)();let K=r.useCallback(e=>{var t,r;return A.current===O.current?.side&&(t=e,!!(r=O.current?.area)&&function(e,t){let{x:r,y:n}=e,a=!1;for(let e=0,o=t.length-1;e<t.length;o=e++){let s=t[e],l=t[o],i=s.x,d=s.y,c=l.x,u=l.y;d>n!=u>n&&r<(c-i)*(n-d)/(u-d)+i&&(a=!a)}return a}({x:t.clientX,y:t.clientY},r))},[]);return(0,t.jsx)(eP,{scope:a,searchRef:_,onItemEnter:r.useCallback(e=>{K(e)&&e.preventDefault()},[K]),onItemLeave:r.useCallback(e=>{K(e)||(P.current?.focus(),R(null))},[K]),onTriggerLeave:r.useCallback(e=>{K(e)&&e.preventDefault()},[K]),pointerGraceTimerRef:F,onPointerGraceIntentChange:r.useCallback(e=>{O.current=e},[]),children:(0,t.jsx)(H,{...x?{as:eI,allowPinchZoom:!0}:void 0,children:(0,t.jsx)(I.FocusScope,{asChild:!0,trapped:s,onMountAutoFocus:(0,N.composeEventHandlers)(l,e=>{e.preventDefault(),P.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:(0,t.jsx)(D.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:d,onEscapeKeyDown:u,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:m,onDismiss:h,children:(0,t.jsx)(q,{asChild:!0,...y,dir:w.dir,orientation:"vertical",loop:o,currentTabStopId:k,onCurrentTabStopIdChange:R,onEntryFocus:(0,N.composeEventHandlers)(c,e=>{w.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,t.jsx)(T.Content,{role:"menu","aria-orientation":"vertical","data-state":e5(g.open),"data-radix-menu-content":"",dir:w.dir,...j,...v,ref:M,style:{outline:"none",...v.style},onKeyDown:(0,N.composeEventHandlers)(v.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,r=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;if(t){var a;let t,o,s,l,i,d;"Tab"===e.key&&e.preventDefault(),!r&&n&&(a=e.key,t=_.current+a,o=b().filter(e=>!e.disabled),s=document.activeElement,l=o.find(e=>e.ref.current===s)?.textValue,i=function(e,t,r){var n;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,o=r?e.indexOf(r):-1,s=(n=Math.max(o,0),e.map((t,r)=>e[(n+r)%e.length]));1===a.length&&(s=s.filter(e=>e!==r));let l=s.find(e=>e.toLowerCase().startsWith(a.toLowerCase()));return l!==r?l:void 0}(o.map(e=>e.textValue),t,l),d=o.find(e=>e.textValue===i)?.ref.current,function e(t){_.current=t,window.clearTimeout(E.current),""!==t&&(E.current=window.setTimeout(()=>e(""),1e3))}(t),d&&setTimeout(()=>d.focus()))}let o=P.current;if(e.target!==o||!eo.includes(e.key))return;e.preventDefault();let s=b().filter(e=>!e.disabled).map(e=>e.ref.current);ea.includes(e.key)&&s.reverse(),function(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}(s)}),onBlur:(0,N.composeEventHandlers)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(E.current),_.current="")}),onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,e9(e=>{let t=e.target,r=L.current!==e.clientX;e.currentTarget.contains(t)&&r&&(A.current=e.clientX>L.current?"right":"left",L.current=e.clientX)}))})})})})})})});eE.displayName=eR;var eT=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(P.Primitive.div,{role:"group",...a,ref:r})});eT.displayName="MenuGroup";var eF=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(P.Primitive.div,{...a,ref:r})});eF.displayName="MenuLabel";var eO="MenuItem",eA="menu.itemSelect",eL=r.forwardRef((e,n)=>{let{disabled:a=!1,onSelect:o,...s}=e,l=r.useRef(null),i=ew(eO,e.__scopeMenu),d=eM(eO,e.__scopeMenu),c=(0,C.useComposedRefs)(n,l),u=r.useRef(!1);return(0,t.jsx)(eH,{...s,ref:c,disabled:a,onClick:(0,N.composeEventHandlers)(e.onClick,()=>{let e=l.current;if(!a&&e){let t=new CustomEvent(eA,{bubbles:!0,cancelable:!0});e.addEventListener(eA,e=>o?.(e),{once:!0}),(0,P.dispatchDiscreteCustomEvent)(e,t),t.defaultPrevented?u.current=!1:i.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:(0,N.composeEventHandlers)(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{let t=""!==d.searchRef.current;a||t&&" "===e.key||en.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});eL.displayName=eO;var eH=r.forwardRef((e,n)=>{let{__scopeMenu:a,disabled:o=!1,textValue:s,...l}=e,i=eM(eO,a),d=eh(a),c=r.useRef(null),u=(0,C.useComposedRefs)(n,c),[p,f]=r.useState(!1),[m,h]=r.useState("");return r.useEffect(()=>{let e=c.current;e&&h((e.textContent??"").trim())},[l.children]),(0,t.jsx)(ed.ItemSlot,{scope:a,disabled:o,textValue:s??m,children:(0,t.jsx)(Z,{asChild:!0,...d,focusable:!o,children:(0,t.jsx)(P.Primitive.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...l,ref:u,onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,e9(e=>{o?i.onItemLeave(e):(i.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,N.composeEventHandlers)(e.onPointerLeave,e9(e=>i.onItemLeave(e))),onFocus:(0,N.composeEventHandlers)(e.onFocus,()=>f(!0)),onBlur:(0,N.composeEventHandlers)(e.onBlur,()=>f(!1))})})})}),eK=r.forwardRef((e,r)=>{let{checked:n=!1,onCheckedChange:a,...o}=e;return(0,t.jsx)(eq,{scope:e.__scopeMenu,checked:n,children:(0,t.jsx)(eL,{role:"menuitemcheckbox","aria-checked":e6(n)?"mixed":n,...o,ref:r,"data-state":e8(n),onSelect:(0,N.composeEventHandlers)(o.onSelect,()=>a?.(!!e6(n)||!n),{checkForDefaultPrevented:!1})})})});eK.displayName="MenuCheckboxItem";var ez="MenuRadioGroup",[eB,eG]=ep(ez,{value:void 0,onValueChange:()=>{}}),eV=r.forwardRef((e,r)=>{let{value:n,onValueChange:a,...o}=e,s=(0,A.useCallbackRef)(a);return(0,t.jsx)(eB,{scope:e.__scopeMenu,value:n,onValueChange:s,children:(0,t.jsx)(eT,{...o,ref:r})})});eV.displayName=ez;var eU="MenuRadioItem",e$=r.forwardRef((e,r)=>{let{value:n,...a}=e,o=eG(eU,e.__scopeMenu),s=n===o.value;return(0,t.jsx)(eq,{scope:e.__scopeMenu,checked:s,children:(0,t.jsx)(eL,{role:"menuitemradio","aria-checked":s,...a,ref:r,"data-state":e8(s),onSelect:(0,N.composeEventHandlers)(a.onSelect,()=>o.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});e$.displayName=eU;var eX="MenuItemIndicator",[eq,eW]=ep(eX,{checked:!1}),eY=r.forwardRef((e,r)=>{let{__scopeMenu:n,forceMount:a,...o}=e,s=eW(eX,n);return(0,t.jsx)(O.Presence,{present:a||e6(s.checked)||!0===s.checked,children:(0,t.jsx)(P.Primitive.span,{...o,ref:r,"data-state":e8(s.checked)})})});eY.displayName=eX;var eZ=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e;return(0,t.jsx)(P.Primitive.div,{role:"separator","aria-orientation":"horizontal",...a,ref:r})});eZ.displayName="MenuSeparator";var eJ=r.forwardRef((e,r)=>{let{__scopeMenu:n,...a}=e,o=em(n);return(0,t.jsx)(T.Arrow,{...o,...a,ref:r})});eJ.displayName="MenuArrow";var[eQ,e0]=ep("MenuSub"),e1="MenuSubTrigger",e2=r.forwardRef((e,n)=>{let a=ev(e1,e.__scopeMenu),o=ew(e1,e.__scopeMenu),s=e0(e1,e.__scopeMenu),l=eM(e1,e.__scopeMenu),i=r.useRef(null),{pointerGraceTimerRef:d,onPointerGraceIntentChange:c}=l,u={__scopeMenu:e.__scopeMenu},p=r.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return r.useEffect(()=>p,[p]),r.useEffect(()=>{let e=d.current;return()=>{window.clearTimeout(e),c(null)}},[d,c]),(0,t.jsx)(ey,{asChild:!0,...u,children:(0,t.jsx)(eH,{id:s.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":s.contentId,"data-state":e5(a.open),...e,ref:(0,C.composeRefs)(n,s.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,e9(t=>{l.onItemEnter(t),!t.defaultPrevented&&(e.disabled||a.open||i.current||(l.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{a.onOpenChange(!0),p()},100)))})),onPointerLeave:(0,N.composeEventHandlers)(e.onPointerLeave,e9(e=>{p();let t=a.content?.getBoundingClientRect();if(t){let r=a.content?.dataset.side,n="right"===r,o=t[n?"left":"right"],s=t[n?"right":"left"];l.onPointerGraceIntentChange({area:[{x:e.clientX+(n?-5:5),y:e.clientY},{x:o,y:t.top},{x:s,y:t.top},{x:s,y:t.bottom},{x:o,y:t.bottom}],side:r}),window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.onPointerGraceIntentChange(null),300)}else{if(l.onTriggerLeave(e),e.defaultPrevented)return;l.onPointerGraceIntentChange(null)}})),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,t=>{let r=""!==l.searchRef.current;e.disabled||r&&" "===t.key||es[o.dir].includes(t.key)&&(a.onOpenChange(!0),a.content?.focus(),t.preventDefault())})})})});e2.displayName=e1;var e4="MenuSubContent",e3=r.forwardRef((e,n)=>{let a=eC(eR,e.__scopeMenu),{forceMount:o=a.forceMount,...s}=e,l=ev(eR,e.__scopeMenu),i=ew(eR,e.__scopeMenu),d=e0(e4,e.__scopeMenu),c=r.useRef(null),u=(0,C.useComposedRefs)(n,c);return(0,t.jsx)(ed.Provider,{scope:e.__scopeMenu,children:(0,t.jsx)(O.Presence,{present:o||l.open,children:(0,t.jsx)(ed.Slot,{scope:e.__scopeMenu,children:(0,t.jsx)(e_,{id:d.contentId,"aria-labelledby":d.triggerId,...s,ref:u,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,N.composeEventHandlers)(e.onFocusOutside,e=>{e.target!==d.trigger&&l.onOpenChange(!1)}),onEscapeKeyDown:(0,N.composeEventHandlers)(e.onEscapeKeyDown,e=>{i.onClose(),e.preventDefault()}),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),r=el[i.dir].includes(e.key);t&&r&&(l.onOpenChange(!1),d.trigger?.focus(),e.preventDefault())})})})})})});function e5(e){return e?"open":"closed"}function e6(e){return"indeterminate"===e}function e8(e){return e6(e)?"indeterminate":e?"checked":"unchecked"}function e9(e){return t=>"mouse"===t.pointerType?e(t):void 0}e3.displayName=e4;var e7="DropdownMenu",[te,tt]=(0,k.createContextScope)(e7,[ef]),tr=ef(),[tn,ta]=te(e7),to=e=>{let{__scopeDropdownMenu:n,children:a,dir:o,open:s,defaultOpen:l,onOpenChange:i,modal:d=!0}=e,c=tr(n),u=r.useRef(null),[p,f]=(0,R.useControllableState)({prop:s,defaultProp:l??!1,onChange:i,caller:e7});return(0,t.jsx)(tn,{scope:n,triggerId:(0,_.useId)(),triggerRef:u,contentId:(0,_.useId)(),open:p,onOpenChange:f,onOpenToggle:r.useCallback(()=>f(e=>!e),[f]),modal:d,children:(0,t.jsx)(ej,{...c,open:p,onOpenChange:f,dir:o,modal:d,children:a})})};to.displayName=e7;var ts="DropdownMenuTrigger",tl=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,disabled:a=!1,...o}=e,s=ta(ts,n),l=tr(n);return(0,t.jsx)(ey,{asChild:!0,...l,children:(0,t.jsx)(P.Primitive.button,{type:"button",id:s.triggerId,"aria-haspopup":"menu","aria-expanded":s.open,"aria-controls":s.open?s.contentId:void 0,"data-state":s.open?"open":"closed","data-disabled":a?"":void 0,disabled:a,...o,ref:(0,C.composeRefs)(r,s.triggerRef),onPointerDown:(0,N.composeEventHandlers)(e.onPointerDown,e=>{!a&&0===e.button&&!1===e.ctrlKey&&(s.onOpenToggle(),s.open||e.preventDefault())}),onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{!a&&(["Enter"," "].includes(e.key)&&s.onOpenToggle(),"ArrowDown"===e.key&&s.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});tl.displayName=ts;var ti=e=>{let{__scopeDropdownMenu:r,...n}=e,a=tr(r);return(0,t.jsx)(ek,{...a,...n})};ti.displayName="DropdownMenuPortal";var td="DropdownMenuContent",tc=r.forwardRef((e,n)=>{let{__scopeDropdownMenu:a,...o}=e,s=ta(td,a),l=tr(a),i=r.useRef(!1);return(0,t.jsx)(eE,{id:s.contentId,"aria-labelledby":s.triggerId,...l,...o,ref:n,onCloseAutoFocus:(0,N.composeEventHandlers)(e.onCloseAutoFocus,e=>{i.current||s.triggerRef.current?.focus(),i.current=!1,e.preventDefault()}),onInteractOutside:(0,N.composeEventHandlers)(e.onInteractOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey,n=2===t.button||r;(!s.modal||n)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});tc.displayName=td,r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eT,{...o,...a,ref:r})}).displayName="DropdownMenuGroup";var tu=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eF,{...o,...a,ref:r})});tu.displayName="DropdownMenuLabel";var tp=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eL,{...o,...a,ref:r})});tp.displayName="DropdownMenuItem";var tf=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eK,{...o,...a,ref:r})});tf.displayName="DropdownMenuCheckboxItem",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eV,{...o,...a,ref:r})}).displayName="DropdownMenuRadioGroup";var tm=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(e$,{...o,...a,ref:r})});tm.displayName="DropdownMenuRadioItem";var th=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eY,{...o,...a,ref:r})});th.displayName="DropdownMenuItemIndicator";var tx=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eZ,{...o,...a,ref:r})});tx.displayName="DropdownMenuSeparator",r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(eJ,{...o,...a,ref:r})}).displayName="DropdownMenuArrow";var tv=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(e2,{...o,...a,ref:r})});tv.displayName="DropdownMenuSubTrigger";var tg=r.forwardRef((e,r)=>{let{__scopeDropdownMenu:n,...a}=e,o=tr(n);return(0,t.jsx)(e3,{...o,...a,ref:r,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});tg.displayName="DropdownMenuSubContent";var tw=e.i(525761),tj=e.i(443991),ty=e.i(632137);r.forwardRef(({className:e,inset:r,children:n,...a},o)=>(0,t.jsxs)(tv,{ref:o,className:(0,ty.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",r&&"pl-8",e),...a,children:[n,(0,t.jsx)(tw.ChevronRight,{className:"ml-auto h-4 w-4"})]})).displayName=tv.displayName,r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(tg,{ref:n,className:(0,ty.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r})).displayName=tg.displayName;let tb=r.forwardRef(({className:e,sideOffset:r=4,...n},a)=>(0,t.jsx)(ti,{children:(0,t.jsx)(tc,{ref:a,sideOffset:r,className:(0,ty.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));tb.displayName=tc.displayName;let tN=r.forwardRef(({className:e,inset:r,...n},a)=>(0,t.jsx)(tp,{ref:a,className:(0,ty.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r&&"pl-8",e),...n}));tN.displayName=tp.displayName,r.forwardRef(({className:e,children:r,checked:n,...a},o)=>(0,t.jsxs)(tf,{ref:o,className:(0,ty.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...a,children:[(0,t.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(th,{children:(0,t.jsx)(f.Check,{className:"h-4 w-4"})})}),r]})).displayName=tf.displayName,r.forwardRef(({className:e,children:r,...n},a)=>(0,t.jsxs)(tm,{ref:a,className:(0,ty.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[(0,t.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(th,{children:(0,t.jsx)(tj.Circle,{className:"h-2 w-2 fill-current"})})}),r]})).displayName=tm.displayName,r.forwardRef(({className:e,inset:r,...n},a)=>(0,t.jsx)(tu,{ref:a,className:(0,ty.cn)("px-2 py-1.5 text-sm font-semibold",r&&"pl-8",e),...n})).displayName=tu.displayName;let tC=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(tx,{ref:n,className:(0,ty.cn)("-mx-1 my-1 h-px bg-muted",e),...r}));tC.displayName=tx.displayName;var tk=e.i(361877),tR=e.i(341965);let tP=["#ef4444","#f97316","#eab308","#22c55e","#14b8a6","#3b82f6","#6366f1","#8b5cf6","#d946ef","#ec4899","#6b7280","#78716c"];function tM({value:e,onChange:n,disabled:a}){let[o,s]=(0,r.useState)(!1);return(0,t.jsxs)(tR.Popover,{open:o,onOpenChange:s,children:[(0,t.jsx)(tR.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(j.Button,{variant:"outline",size:"sm",className:"h-8 w-8 p-0",disabled:a,"aria-label":"Pick color",children:(0,t.jsx)("div",{className:"h-4 w-4 rounded-full border",style:{backgroundColor:e||"#666"}})})}),(0,t.jsx)(tR.PopoverContent,{className:"w-[200px] p-3",align:"start",children:(0,t.jsx)("div",{className:"grid grid-cols-6 gap-2",children:tP.map(r=>(0,t.jsx)("button",{className:(0,ty.cn)("h-6 w-6 rounded-full border-2 transition-transform hover:scale-110",e===r?"border-primary":"border-transparent"),style:{backgroundColor:r},onClick:()=>{n(r),s(!1)},"aria-label":`Select color ${r}`},r))})})]})}var tE=e.i(995403),tD=e.i(585458),tS=e.i(612437);function tI(){let e=(0,n.useRouter)(),{projects:i,currentProject:N,switchProject:C,toggleFavorite:k,removeProject:R,updateProject:P,isLoading:M}=(0,w.useProject)(),[E,D]=(0,r.useState)(""),[S,I]=(0,r.useState)(!1),[_,T]=(0,r.useState)(null),[F,O]=(0,r.useState)(""),[A,L]=(0,r.useState)({}),[H,K]=(0,r.useState)({}),z=i.filter(e=>e.name.toLowerCase().includes(E.toLowerCase()));(0,r.useEffect)(()=>{let e=async()=>{for(let e of i)if(A[e.id]?.status!=="valid"&&A[e.id]?.status!=="invalid")try{L(t=>({...t,[e.id]:{status:"validating"}}));let t=await fetch(`/api/projects/${e.id}/validate`,{method:"POST"});if(t.ok){let r=await t.json();L(t=>({...t,[e.id]:{status:r.validation.isValid?"valid":"invalid",error:r.validation.error}}))}}catch{L(t=>({...t,[e.id]:{status:"invalid",error:"Validation failed"}}))}};i.length>0&&e()},[i]),(0,r.useEffect)(()=>{let e=async()=>{for(let e of i)if(!H[e.id])try{let t=await fetch(`/api/projects/${e.id}/stats`);if(t.ok){let r=await t.json();K(t=>({...t,[e.id]:r.stats}))}}catch{}};i.length>0&&e()},[i]);let B=async t=>{await C(t),e.push(`/projects/${t}/specs`)},G=()=>{T(null),O("")},V=async e=>{if(!F.trim())return void tE.toast.error("Project name cannot be empty");try{await P(e,{name:F.trim()}),tE.toast.success("Project name updated"),T(null),O("")}catch{tE.toast.error("Failed to update project name")}},U=async(e,t)=>{try{await P(e,{color:t}),tE.toast.success("Project color updated")}catch{tE.toast.error("Failed to update project color")}},$=(0,r.useCallback)(async e=>{L(t=>({...t,[e]:{status:"validating"}}));try{let t=await fetch(`/api/projects/${e}/validate`,{method:"POST"});if(!t.ok)throw Error("Validation request failed");let r=await t.json();L(t=>({...t,[e]:{status:r.validation.isValid?"valid":"invalid",error:r.validation.error}})),r.validation.isValid?tE.toast.success("Project path is valid"):tE.toast.error(`Project path invalid: ${r.validation.error||"Unknown error"}`)}catch{L(t=>({...t,[e]:{status:"invalid",error:"Failed to validate"}})),tE.toast.error("Failed to validate project")}},[]);return(0,t.jsxs)("div",{className:"min-h-screen bg-background",children:[(0,t.jsx)("div",{className:"border-b bg-card/50 backdrop-blur-sm sticky top-0 z-10",children:(0,t.jsxs)("div",{className:"container max-w-7xl mx-auto py-6 space-y-6",children:[N&&(0,t.jsxs)(g.default,{href:`/projects/${N.id}/specs`,className:"inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[(0,t.jsx)(v.ArrowLeft,{className:"h-4 w-4"}),"Back to ",N.name]}),(0,t.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight text-foreground",children:"Projects"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-lg",children:"Manage your LeanSpec projects and workspaces."})]}),(0,t.jsxs)(j.Button,{onClick:()=>I(!0),size:"lg",className:"shadow-sm",children:[(0,t.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"New Project"]})]}),(0,t.jsx)("div",{className:"flex items-center space-x-2 max-w-md",children:(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(o.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(y.Input,{placeholder:"Search projects...",value:E,onChange:e=>D(e.target.value),className:"pl-9 bg-background/50"})]})})]})}),(0,t.jsxs)("div",{className:"container max-w-7xl mx-auto py-8",children:[(0,t.jsxs)("div",{className:"grid gap-6 grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:[z.map(e=>{let r,n=H[e.id];return(0,t.jsxs)(b.Card,{className:"group relative flex flex-col transition-all duration-200 hover:shadow-md hover:border-primary/20 overflow-hidden cursor-pointer bg-card",onClick:()=>B(e.id),children:[(0,t.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:e.color||"hsl(var(--primary))"}}),(0,t.jsx)(b.CardHeader,{className:"px-4 pt-4 pb-2 space-y-1",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[_===e.id?(0,t.jsxs)("div",{className:"flex items-center gap-1",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)(y.Input,{value:F,onChange:e=>O(e.target.value),className:"h-7 text-sm",autoFocus:!0,onKeyDown:t=>{"Enter"===t.key&&V(e.id),"Escape"===t.key&&G()}}),(0,t.jsx)(j.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>V(e.id),children:(0,t.jsx)(f.Check,{className:"h-3 w-3"})}),(0,t.jsx)(j.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:G,children:(0,t.jsx)(m.X,{className:"h-3 w-3"})})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,t.jsx)("h3",{className:"font-semibold text-base leading-none truncate",title:e.name,children:e.name}),(r=A[e.id])&&"unknown"!==r.status?"validating"===r.status?(0,t.jsx)(p,{className:"h-4 w-4 animate-spin text-muted-foreground"}):"valid"===r.status?(0,t.jsx)(x.CheckCircle2,{className:"h-4 w-4 text-green-500"}):"invalid"===r.status?(0,t.jsx)("span",{title:r.error||"Invalid project",children:(0,t.jsx)(h,{className:"h-4 w-4 text-destructive"})}):null:null]}),(0,t.jsx)("p",{className:"text-[10px] font-mono text-muted-foreground truncate",title:e.path,children:e.path})]}),(0,t.jsxs)(to,{children:[(0,t.jsx)(tl,{asChild:!0,onClick:e=>e.stopPropagation(),children:(0,t.jsxs)(j.Button,{variant:"ghost",size:"icon",className:"h-8 w-8 -mr-2 text-muted-foreground hover:text-foreground opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)(d,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Open menu"})]})}),(0,t.jsxs)(tb,{align:"end",children:[(0,t.jsxs)(tN,{onClick:t=>{var r,n;t.stopPropagation(),r=e.id,n=e.name,T(r),O(n)},children:[(0,t.jsx)(u,{className:"mr-2 h-4 w-4"}),"Rename"]}),(0,t.jsxs)("div",{className:"p-2",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground mb-2 px-2",children:"Project Color"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 px-2",children:(0,t.jsx)(tM,{value:e.color,onChange:t=>U(e.id,t)})})]}),(0,t.jsx)(tC,{}),(0,t.jsxs)(tN,{onClick:t=>{t.stopPropagation(),k(e.id)},children:[(0,t.jsx)(l.Star,{className:"mr-2 h-4 w-4"}),e.favorite?"Unfavorite":"Favorite"]}),(0,t.jsxs)(tN,{onClick:t=>{t.stopPropagation(),$(e.id)},children:[(0,t.jsx)(p,{className:"mr-2 h-4 w-4"}),"Validate Path"]}),(0,t.jsx)(tC,{}),(0,t.jsxs)(tN,{className:"text-destructive",onClick:t=>{t.stopPropagation(),R(e.id)},children:[(0,t.jsx)(c,{className:"mr-2 h-4 w-4"}),"Remove"]})]})]})]})}),(0,t.jsx)(b.CardContent,{className:"px-4 pb-4 flex-1",children:(0,t.jsxs)("div",{className:"flex items-center gap-4 py-1",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground font-medium uppercase tracking-wider",children:"Specs"}),(0,t.jsx)("span",{className:"text-lg font-bold tracking-tight",children:n?.totalSpecs||0})]}),(0,t.jsx)("div",{className:"w-px h-8 bg-border"}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground font-medium uppercase tracking-wider",children:"Completion"}),(0,t.jsxs)("span",{className:"text-lg font-bold tracking-tight",children:[n?.completionRate||0,"%"]})]})]})}),(0,t.jsxs)("div",{className:"px-4 py-2 bg-muted/20 border-t flex items-center justify-between text-[10px] text-muted-foreground mt-auto",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:e.color||"#666"}}),(0,t.jsx)("span",{children:"Local"})]}),e.lastAccessed&&(0,t.jsx)("span",{children:(0,tD.default)(e.lastAccessed).fromNow()})]}),e.favorite&&(0,t.jsx)("div",{className:"absolute top-0 right-0 p-2 pointer-events-none",children:(0,t.jsx)("div",{className:"bg-background/80 backdrop-blur-sm p-1.5 rounded-bl-lg border-b border-l shadow-sm",children:(0,t.jsx)(l.Star,{className:"h-3.5 w-3.5 fill-yellow-500 text-yellow-500"})})})]},e.id)}),0===z.length&&!M&&(0,t.jsxs)("div",{className:"col-span-full flex flex-col items-center justify-center py-16 text-center border-2 border-dashed rounded-xl bg-muted/10",children:[(0,t.jsx)("div",{className:"bg-muted/30 p-4 rounded-full mb-4",children:(0,t.jsx)(s.FolderOpen,{className:"h-8 w-8 text-muted-foreground"})}),(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"No projects found"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-2 mb-6 max-w-sm",children:E?"We couldn't find any projects matching your search.":"Get started by creating your first LeanSpec project."}),(0,t.jsxs)(j.Button,{onClick:()=>I(!0),size:"lg",children:[(0,t.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"Create Project"]})]})]}),(0,t.jsx)(tk.CreateProjectDialog,{open:S,onOpenChange:I})]})]})}tD.default.extend(tS.default),e.s(["default",()=>tI],340898)}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6454,(e,t,r)=>{"use strict";function s({widthInt:e,heightInt:t,blurWidth:r,blurHeight:s,blurDataURL:n,objectFit:i}){let a=r?40*r:e,o=s?40*s:t,l=a&&o?`viewBox='0 0 ${a} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${l}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${l?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return s}})},594547,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return a}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},550696,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return l}}),e.r(56863);let s=e.r(6454),n=e.r(594547),i=["-moz-initial","fill","none","scale-down",void 0];function a(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function l({src:e,sizes:t,unoptimized:r=!1,priority:l=!1,preload:u=!1,loading:c,className:d,quality:h,width:f,height:p,fill:m=!1,style:g,overrideSrc:x,onLoad:y,onLoadingComplete:v,placeholder:b="empty",blurDataURL:j,fetchPriority:w,decoding:C="async",layout:A,objectFit:E,objectPosition:k,lazyBoundary:S,lazyRoot:_,...N},B){var M;let D,F,P,{imgConf:O,showAltText:I,blurComplete:$,defaultLoader:R}=B,z=O||n.imageConfigDefault;if("allSizes"in z)D=z;else{let e=[...z.deviceSizes,...z.imageSizes].sort((e,t)=>e-t),t=z.deviceSizes.sort((e,t)=>e-t),r=z.qualities?.sort((e,t)=>e-t);D={...z,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===R)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let L=N.loader||R;delete N.loader,delete N.srcSet;let T="__next_img_default"in L;if(T){if("custom"===D.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=L;L=t=>{let{config:r,...s}=t;return e(s)}}if(A){"fill"===A&&(m=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];e&&(g={...g,...e});let r={responsive:"100vw",fill:"100vw"}[A];r&&!t&&(t=r)}let W="",q=o(f),G=o(p);if((M=e)&&"object"==typeof M&&(a(M)||void 0!==M.src)){let t=a(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(F=t.blurWidth,P=t.blurHeight,j=j||t.blurDataURL,W=t.src,!m)if(q||G){if(q&&!G){let e=q/t.width;G=Math.round(t.height*e)}else if(!q&&G){let e=G/t.height;q=Math.round(t.width*e)}}else q=t.width,G=t.height}let H=!l&&!u&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,H=!1),D.unoptimized&&(r=!0),T&&!D.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let U=o(h),V=Object.assign(m?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:E,objectPosition:k}:{},I?{}:{color:"transparent"},g),K=$||"empty"===b?null:"blur"===b?`url("data:image/svg+xml;charset=utf-8,${(0,s.getImageBlurSvg)({widthInt:q,heightInt:G,blurWidth:F,blurHeight:P,blurDataURL:j||"",objectFit:V.objectFit})}")`:`url("${b}")`,J=i.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,X=K?{backgroundSize:J,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:K}:{},Q=function({config:e,src:t,unoptimized:r,width:s,quality:n,sizes:i,loader:a}){if(r)return{src:t,srcSet:void 0,sizes:void 0};let{widths:o,kind:l}=function({deviceSizes:e,allSizes:t},r,s){if(s){let r=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=r.exec(s);)n.push(parseInt(e[2]));if(n.length){let r=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,s,i),u=o.length-1;return{sizes:i||"w"!==l?i:"100vw",srcSet:o.map((r,s)=>`${a({config:e,src:t,quality:n,width:r})} ${"w"===l?r:s+1}${l}`).join(", "),src:a({config:e,src:t,quality:n,width:o[u]})}}({config:D,src:e,unoptimized:r,width:q,quality:U,sizes:t,loader:L}),Y=H?"lazy":c;return{props:{...N,loading:Y,fetchPriority:w,width:q,height:G,decoding:C,className:d,style:{...V,...X},sizes:Q.sizes,srcSet:Q.srcSet,src:x||Q.src},meta:{unoptimized:r,preload:u||l,placeholder:b,fill:m}}}},29549,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let s=e.r(431231),n="undefined"==typeof window,i=n?()=>{}:s.useLayoutEffect,a=n?()=>{}:s.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=s.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return n&&(t?.mountedInstances?.add(e.children),o()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},582032,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return m},defaultHead:function(){return d}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(481258),a=e.r(744066),o=e.r(890022),l=a._(e.r(431231)),u=i._(e.r(29549)),c=e.r(392600);function d(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function h(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(56863);let f=["name","httpEquiv","charSet","itemProp"];function p(e){let t,r,s,n;return e.reduce(h,[]).reverse().concat(d().reverse()).filter((t=new Set,r=new Set,s=new Set,n={},e=>{let i=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?i=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?i=!1:r.add(e.type);break;case"meta":for(let t=0,r=f.length;t<r;t++){let r=f[t];if(e.props.hasOwnProperty(r))if("charSet"===r)s.has(r)?i=!1:s.add(r);else{let t=e.props[r],s=n[r]||new Set;("name"!==r||!a)&&s.has(t)?i=!1:(s.add(t),n[r]=s)}}}return i})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,l.useContext)(c.HeadManagerContext);return(0,o.jsx)(u.default,{reduceComponentsToState:p,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},111258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let s=e.r(481258)._(e.r(431231)),n=e.r(594547),i=s.default.createContext(n.imageConfigDefault)},394453,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return s}});let s=e.r(481258)._(e.r(431231)).default.createContext(null)},781035,(e,t,r)=>{"use strict";function s(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return s}})},765774,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}});let s=e.r(781035);function n({config:e,src:t,width:r,quality:n}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
|
|
3
|
+
Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let i=(0,s.findClosestQuality)(n,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${i}${t.startsWith("/_next/static/media/"),""}`}n.__next_img_default=!0;let i=n},881988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return b}});let s=e.r(481258),n=e.r(744066),i=e.r(890022),a=n._(e.r(431231)),o=s._(e.r(395635)),l=s._(e.r(582032)),u=e.r(550696),c=e.r(594547),d=e.r(111258);e.r(56863);let h=e.r(394453),f=s._(e.r(765774)),p=e.r(266500),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function g(e,t,r,s,n,i,a){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let s=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>s,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{s=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}s?.current&&s.current(e)}}))}function x(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,a.forwardRef)(({src:e,srcSet:t,sizes:r,height:s,width:n,decoding:o,className:l,style:u,fetchPriority:c,placeholder:d,loading:h,unoptimized:f,fill:m,onLoadRef:y,onLoadingCompleteRef:v,setBlurComplete:b,setShowAltText:j,sizesInput:w,onLoad:C,onError:A,...E},k)=>{let S=(0,a.useCallback)(e=>{e&&(A&&(e.src=e.src),e.complete&&g(e,d,y,v,b,f,w))},[e,d,y,v,b,A,f,w]),_=(0,p.useMergedRef)(k,S);return(0,i.jsx)("img",{...E,...x(c),loading:h,width:n,height:s,decoding:o,"data-nimg":m?"fill":"1",className:l,style:u,sizes:r,srcSet:t,src:e,ref:_,onLoad:e=>{g(e.currentTarget,d,y,v,b,f,w)},onError:e=>{j(!0),"empty"!==d&&b(!0),A&&A(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...x(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,i.jsx)(l.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let b=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(h.RouterContext),s=(0,a.useContext)(d.ImageConfigContext),n=(0,a.useMemo)(()=>{let e=m||s||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:n,localPatterns:"undefined"==typeof window?s?.localPatterns:e.localPatterns}},[s]),{onLoad:o,onLoadingComplete:l}=e,p=(0,a.useRef)(o);(0,a.useEffect)(()=>{p.current=o},[o]);let g=(0,a.useRef)(l);(0,a.useEffect)(()=>{g.current=l},[l]);let[x,b]=(0,a.useState)(!1),[j,w]=(0,a.useState)(!1),{props:C,meta:A}=(0,u.getImgProps)(e,{defaultLoader:f.default,imgConf:n,blurComplete:x,showAltText:j});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(y,{...C,unoptimized:A.unoptimized,placeholder:A.placeholder,fill:A.fill,onLoadRef:p,onLoadingCompleteRef:g,setBlurComplete:b,setShowAltText:w,sizesInput:e.sizes,ref:t}),A.preload?(0,i.jsx)(v,{isAppRouter:!r,imgAttributes:C}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},322867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return c},getImageProps:function(){return u}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(481258),a=e.r(550696),o=e.r(881988),l=i._(e.r(765774));function u(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=o.Image},805970,(e,t,r)=>{t.exports=e.r(322867)},426160,e=>{"use strict";var t=e.i(890022),r=e.i(987985),s=e.i(805970),n=e.i(230827),i=e.i(525761),a=e.i(122436);let o=(0,a.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);var l=e.i(954049),u=e.i(431231);let c=(0,a.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),d=(0,a.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var h=e.i(81795),f=e.i(235893);function p(){let{theme:e,setTheme:r}=(0,h.useTheme)(),[s,n]=u.useState(!1);return(u.useEffect(()=>{n(!0)},[]),s)?(0,t.jsxs)(f.Button,{variant:"ghost",size:"icon",onClick:()=>r("light"===e?"dark":"light"),"aria-label":"Toggle theme",children:[(0,t.jsx)(d,{className:"h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,t.jsx)(c,{className:"absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"})]}):(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",disabled:!0,"aria-label":"Toggle theme",children:(0,t.jsx)(d,{className:"h-5 w-5"})})}var m=e.i(20315),g=e.i(300329),x=e.i(40843);let y=(0,a.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);function v(e){return Array.isArray?Array.isArray(e):"[object Array]"===k(e)}let b=1/0;function j(e){return"string"==typeof e}function w(e){return"number"==typeof e}function C(e){return"object"==typeof e}function A(e){return null!=e}function E(e){return!e.trim().length}function k(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let S=Object.prototype.hasOwnProperty;class _{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let r=N(e);this._keys.push(r),this._keyMap[r.id]=r,t+=r.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function N(e){let t=null,r=null,s=null,n=1,i=null;if(j(e)||v(e))s=e,t=B(e),r=M(e);else{if(!S.call(e,"name"))throw Error("Missing name property in key");let a=e.name;if(s=a,S.call(e,"weight")&&(n=e.weight)<=0)throw Error(`Property 'weight' in key '${a}' must be a positive integer`);t=B(a),r=M(a),i=e.getFn}return{path:t,id:r,weight:n,src:s,getFn:i}}function B(e){return v(e)?e:e.split(".")}function M(e){return v(e)?e.join("."):e}var D={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,useExtendedSearch:!1,getFn:function(e,t){let r=[],s=!1,n=(e,t,i)=>{if(A(e))if(t[i]){var a,o;let l=e[t[i]];if(!A(l))return;if(i===t.length-1&&(j(l)||w(l)||!0===(a=l)||!1===a||C(o=a)&&null!==o&&"[object Boolean]"==k(a)))r.push(null==l?"":function(e){if("string"==typeof e)return e;let t=e+"";return"0"==t&&1/e==-b?"-0":t}(l));else if(v(l)){s=!0;for(let e=0,r=l.length;e<r;e+=1)n(l[e],t,i+1)}else t.length&&n(l,t,i+1)}else r.push(e)};return n(e,j(t)?t.split("."):t,0),s?r:r[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};let F=/[^ ]+/g;class P{constructor({getFn:e=D.getFn,fieldNormWeight:t=D.fieldNormWeight}={}){this.norm=function(e=1,t=3){let r=new Map,s=Math.pow(10,t);return{get(t){let n=t.match(F).length;if(r.has(n))return r.get(n);let i=parseFloat(Math.round(1/Math.pow(n,.5*e)*s)/s);return r.set(n,i),i},clear(){r.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,j(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();j(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,r=this.size();t<r;t+=1)this.records[t].i-=1}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!A(e)||E(e))return;let r={v:e,i:t,n:this.norm.get(e)};this.records.push(r)}_addObject(e,t){let r={i:t,$:{}};this.keys.forEach((t,s)=>{let n=t.getFn?t.getFn(e):this.getFn(e,t.path);if(A(n)){if(v(n)){let e=[],t=[{nestedArrIndex:-1,value:n}];for(;t.length;){let{nestedArrIndex:r,value:s}=t.pop();if(A(s))if(j(s)&&!E(s)){let t={v:s,i:r,n:this.norm.get(s)};e.push(t)}else v(s)&&s.forEach((e,r)=>{t.push({nestedArrIndex:r,value:e})})}r.$[s]=e}else if(j(n)&&!E(n)){let e={v:n,n:this.norm.get(n)};r.$[s]=e}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function O(e,t,{getFn:r=D.getFn,fieldNormWeight:s=D.fieldNormWeight}={}){let n=new P({getFn:r,fieldNormWeight:s});return n.setKeys(e.map(N)),n.setSources(t),n.create(),n}function I(e,{errors:t=0,currentLocation:r=0,expectedLocation:s=0,distance:n=D.distance,ignoreLocation:i=D.ignoreLocation}={}){let a=t/e.length;if(i)return a;let o=Math.abs(s-r);return n?a+o/n:o?1:a}let $=String.prototype.normalize?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):e=>e;class R{constructor(e,{location:t=D.location,threshold:r=D.threshold,distance:s=D.distance,includeMatches:n=D.includeMatches,findAllMatches:i=D.findAllMatches,minMatchCharLength:a=D.minMatchCharLength,isCaseSensitive:o=D.isCaseSensitive,ignoreDiacritics:l=D.ignoreDiacritics,ignoreLocation:u=D.ignoreLocation}={}){if(this.options={location:t,threshold:r,distance:s,includeMatches:n,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:o,ignoreDiacritics:l,ignoreLocation:u},e=o?e:e.toLowerCase(),e=l?$(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const c=(e,t)=>{this.chunks.push({pattern:e,alphabet:function(e){let t={};for(let r=0,s=e.length;r<s;r+=1){let n=e.charAt(r);t[n]=(t[n]||0)|1<<s-r-1}return t}(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0;const t=d%32,r=d-t;for(;e<r;)c(this.pattern.substr(e,32),e),e+=32;if(t){const e=d-32;c(this.pattern.substr(e),e)}}else c(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:r,includeMatches:s}=this.options;if(e=t?e:e.toLowerCase(),e=r?$(e):e,this.pattern===e){let t={isMatch:!0,score:0};return s&&(t.indices=[[0,e.length-1]]),t}let{location:n,distance:i,threshold:a,findAllMatches:o,minMatchCharLength:l,ignoreLocation:u}=this.options,c=[],d=0,h=!1;this.chunks.forEach(({pattern:t,alphabet:r,startIndex:f})=>{let{isMatch:p,score:m,indices:g}=function(e,t,r,{location:s=D.location,distance:n=D.distance,threshold:i=D.threshold,findAllMatches:a=D.findAllMatches,minMatchCharLength:o=D.minMatchCharLength,includeMatches:l=D.includeMatches,ignoreLocation:u=D.ignoreLocation}={}){let c;if(t.length>32)throw Error("Pattern length exceeds max of 32.");let d=t.length,h=e.length,f=Math.max(0,Math.min(s,h)),p=i,m=f,g=o>1||l,x=g?Array(h):[];for(;(c=e.indexOf(t,m))>-1;)if(p=Math.min(I(t,{currentLocation:c,expectedLocation:f,distance:n,ignoreLocation:u}),p),m=c+d,g){let e=0;for(;e<d;)x[c+e]=1,e+=1}m=-1;let y=[],v=1,b=d+h,j=1<<d-1;for(let s=0;s<d;s+=1){let i=0,o=b;for(;i<o;)I(t,{errors:s,currentLocation:f+o,expectedLocation:f,distance:n,ignoreLocation:u})<=p?i=o:b=o,o=Math.floor((b-i)/2+i);b=o;let l=Math.max(1,f-o+1),c=a?h:Math.min(f+o,h)+d,w=Array(c+2);w[c+1]=(1<<s)-1;for(let i=c;i>=l;i-=1){let a=i-1,o=r[e.charAt(a)];if(g&&(x[a]=+!!o),w[i]=(w[i+1]<<1|1)&o,s&&(w[i]|=(y[i+1]|y[i])<<1|1|y[i+1]),w[i]&j&&(v=I(t,{errors:s,currentLocation:a,expectedLocation:f,distance:n,ignoreLocation:u}))<=p){if(p=v,(m=a)<=f)break;l=Math.max(1,2*f-m)}}if(I(t,{errors:s+1,currentLocation:f,expectedLocation:f,distance:n,ignoreLocation:u})>p)break;y=w}let w={isMatch:m>=0,score:Math.max(.001,v)};if(g){let e=function(e=[],t=D.minMatchCharLength){let r=[],s=-1,n=-1,i=0;for(let a=e.length;i<a;i+=1){let a=e[i];a&&-1===s?s=i:a||-1===s||((n=i-1)-s+1>=t&&r.push([s,n]),s=-1)}return e[i-1]&&i-s>=t&&r.push([s,i-1]),r}(x,o);e.length?l&&(w.indices=e):w.isMatch=!1}return w}(e,t,r,{location:n+f,distance:i,threshold:a,findAllMatches:o,minMatchCharLength:l,includeMatches:s,ignoreLocation:u});p&&(h=!0),d+=m,p&&g&&(c=[...c,...g])});let f={isMatch:h,score:h?d/this.chunks.length:1};return h&&s&&(f.indices=c),f}}class z{constructor(e){this.pattern=e}static isMultiMatch(e){return L(e,this.multiRegex)}static isSingleMatch(e){return L(e,this.singleRegex)}search(){}}function L(e,t){let r=e.match(t);return r?r[1]:null}class T extends z{constructor(e,{location:t=D.location,threshold:r=D.threshold,distance:s=D.distance,includeMatches:n=D.includeMatches,findAllMatches:i=D.findAllMatches,minMatchCharLength:a=D.minMatchCharLength,isCaseSensitive:o=D.isCaseSensitive,ignoreDiacritics:l=D.ignoreDiacritics,ignoreLocation:u=D.ignoreLocation}={}){super(e),this._bitapSearch=new R(e,{location:t,threshold:r,distance:s,includeMatches:n,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:o,ignoreDiacritics:l,ignoreLocation:u})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class W extends z{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,r=0,s=[],n=this.pattern.length;for(;(t=e.indexOf(this.pattern,r))>-1;)r=t+n,s.push([t,r-1]);let i=!!s.length;return{isMatch:i,score:+!i,indices:s}}}let q=[class extends z{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){let t=e===this.pattern;return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},W,class extends z{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){let t=e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){let t=!e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){let t=!e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){let t=e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[e.length-this.pattern.length,e.length-1]}}},class extends z{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){let t=-1===e.indexOf(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},T],G=q.length,H=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,U=new Set([T.type,W.type]),V=[];function K(e,t){for(let r=0,s=V.length;r<s;r+=1){let s=V[r];if(s.condition(e,t))return new s(e,t)}return new R(e,t)}let J="$and",X="$path",Q=e=>!!(e[J]||e.$or),Y=e=>({[J]:Object.keys(e).map(t=>({[t]:e[t]}))});function Z(e,t,{auto:r=!0}={}){let s=e=>{let n=Object.keys(e),i=!!e[X];if(!i&&n.length>1&&!Q(e))return s(Y(e));if(!v(e)&&C(e)&&!Q(e)){let s=i?e[X]:n[0],a=i?e.$val:e[s];if(!j(a))throw Error(`Invalid value for key ${s}`);let o={keyId:M(s),pattern:a};return r&&(o.searcher=K(a,t)),o}let a={children:[],operator:n[0]};return n.forEach(t=>{let r=e[t];v(r)&&r.forEach(e=>{a.children.push(s(e))})}),a};return Q(e)||(e=Y(e)),s(e)}function ee(e,t){let r=e.matches;t.matches=[],A(r)&&r.forEach(e=>{if(!A(e.indices)||!e.indices.length)return;let{indices:r,value:s}=e,n={indices:r,value:s};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)})}function et(e,t){t.score=e.score}class er{constructor(e,t={},r){this.options={...D,...t},this.options.useExtendedSearch,this._keyStore=new _(this.options.keys),this.setCollection(e,r)}setCollection(e,t){if(this._docs=e,t&&!(t instanceof P))throw Error("Incorrect 'index' type");this._myIndex=t||O(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){A(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){let t=[];for(let r=0,s=this._docs.length;r<s;r+=1){let n=this._docs[r];e(n,r)&&(this.removeAt(r),r-=1,s-=1,t.push(n))}return t}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:t=-1}={}){let{includeMatches:r,includeScore:s,shouldSort:n,sortFn:i,ignoreFieldNorm:a}=this.options,o=j(e)?j(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return!function(e,{ignoreFieldNorm:t=D.ignoreFieldNorm}){e.forEach(e=>{let r=1;e.matches.forEach(({key:e,norm:s,score:n})=>{let i=e?e.weight:null;r*=Math.pow(0===n&&i?Number.EPSILON:n,(i||1)*(t?1:s))}),e.score=r})}(o,{ignoreFieldNorm:a}),n&&o.sort(i),w(t)&&t>-1&&(o=o.slice(0,t)),function(e,t,{includeMatches:r=D.includeMatches,includeScore:s=D.includeScore}={}){let n=[];return r&&n.push(ee),s&&n.push(et),e.map(e=>{let{idx:r}=e,s={item:t[r],refIndex:r};return n.length&&n.forEach(t=>{t(e,s)}),s})}(o,this._docs,{includeMatches:r,includeScore:s})}_searchStringList(e){let t=K(e,this.options),{records:r}=this._myIndex,s=[];return r.forEach(({v:e,i:r,n:n})=>{if(!A(e))return;let{isMatch:i,score:a,indices:o}=t.searchIn(e);i&&s.push({item:e,idx:r,matches:[{score:a,value:e,norm:n,indices:o}]})}),s}_searchLogical(e){let t=Z(e,this.options),r=(e,t,s)=>{if(!e.children){let{keyId:r,searcher:n}=e,i=this._findMatches({key:this._keyStore.get(r),value:this._myIndex.getValueForItemAtKeyId(t,r),searcher:n});return i&&i.length?[{idx:s,item:t,matches:i}]:[]}let n=[];for(let i=0,a=e.children.length;i<a;i+=1){let a=r(e.children[i],t,s);if(a.length)n.push(...a);else if(e.operator===J)return[]}return n},s=this._myIndex.records,n={},i=[];return s.forEach(({$:e,i:s})=>{if(A(e)){let a=r(t,e,s);a.length&&(n[s]||(n[s]={idx:s,item:e,matches:[]},i.push(n[s])),a.forEach(({matches:e})=>{n[s].matches.push(...e)}))}}),i}_searchObjectList(e){let t=K(e,this.options),{keys:r,records:s}=this._myIndex,n=[];return s.forEach(({$:e,i:s})=>{if(!A(e))return;let i=[];r.forEach((r,s)=>{i.push(...this._findMatches({key:r,value:e[s],searcher:t}))}),i.length&&n.push({idx:s,item:e,matches:i})}),n}_findMatches({key:e,value:t,searcher:r}){if(!A(t))return[];let s=[];if(v(t))t.forEach(({v:t,i:n,n:i})=>{if(!A(t))return;let{isMatch:a,score:o,indices:l}=r.searchIn(t);a&&s.push({score:o,key:e,value:t,idx:n,norm:i,indices:l})});else{let{v:n,n:i}=t,{isMatch:a,score:o,indices:l}=r.searchIn(n);a&&s.push({score:o,key:e,value:n,norm:i,indices:l})}return s}}er.version="7.1.0",er.createIndex=O,er.parseIndex=function(e,{getFn:t=D.getFn,fieldNormWeight:r=D.fieldNormWeight}={}){let{keys:s,records:n}=e,i=new P({getFn:t,fieldNormWeight:r});return i.setKeys(s),i.setIndexRecords(n),i},er.config=D,er.parseQuery=Z,function(...e){V.push(...e)}(class{constructor(e,{isCaseSensitive:t=D.isCaseSensitive,ignoreDiacritics:r=D.ignoreDiacritics,includeMatches:s=D.includeMatches,minMatchCharLength:n=D.minMatchCharLength,ignoreLocation:i=D.ignoreLocation,findAllMatches:a=D.findAllMatches,location:o=D.location,threshold:l=D.threshold,distance:u=D.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:r,includeMatches:s,minMatchCharLength:n,findAllMatches:a,ignoreLocation:i,location:o,threshold:l,distance:u},e=t?e:e.toLowerCase(),e=r?$(e):e,this.pattern=e,this.query=function(e,t={}){return e.split("|").map(e=>{let r=e.trim().split(H).filter(e=>e&&!!e.trim()),s=[];for(let e=0,n=r.length;e<n;e+=1){let n=r[e],i=!1,a=-1;for(;!i&&++a<G;){let e=q[a],r=e.isMultiMatch(n);r&&(s.push(new e(r,t)),i=!0)}if(!i)for(a=-1;++a<G;){let e=q[a],r=e.isSingleMatch(n);if(r){s.push(new e(r,t));break}}}return s})}(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:r,isCaseSensitive:s,ignoreDiacritics:n}=this.options;e=s?e:e.toLowerCase(),e=n?$(e):e;let i=0,a=[],o=0;for(let s=0,n=t.length;s<n;s+=1){let n=t[s];a.length=0,i=0;for(let t=0,s=n.length;t<s;t+=1){let s=n[t],{isMatch:l,indices:u,score:c}=s.search(e);if(l){if(i+=1,o+=c,r){let e=s.constructor.type;U.has(e)?a=[...a,...u]:a.push(u)}}else{o=0,i=0,a.length=0;break}}if(i){let e={isMatch:!0,score:o/i};return r&&(e.indices=a),e}}return{isMatch:!1,score:1}}});var es=e.i(694541),en=e.i(168497),ei=e.i(597705),ea=e.i(20648);function eo({specs:e}){let r=(0,n.useRouter)(),{getSpecUrl:s}=(0,ea.useProjectUrl)(),[i,a]=u.useState(!1),[o,l]=u.useState(""),[c,d]=u.useState([]);u.useEffect(()=>{let e=localStorage.getItem("leanspec-recent-searches");e&&d(JSON.parse(e))},[]),u.useEffect(()=>{let e=e=>{"k"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),a(e=>!e))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let h=u.useMemo(()=>new er(e,{keys:[{name:"title",weight:2},{name:"specNumber",weight:1.5},{name:"tags",weight:.5}],threshold:.4,includeScore:!0,minMatchCharLength:2}),[e]),f=u.useMemo(()=>o?h.search(o).map(e=>e.item):e.slice(0,8),[o,h,e]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:()=>a(!0),className:"inline-flex items-center gap-2 px-2 sm:px-3 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors border rounded-md hover:border-foreground/20",children:[(0,t.jsx)(g.Search,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Quick search..."}),(0,t.jsxs)("kbd",{className:"hidden md:inline-flex pointer-events-none h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100",children:[(0,t.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]}),(0,t.jsxs)(es.CommandDialog,{open:i,onOpenChange:a,children:[(0,t.jsx)(es.CommandInput,{placeholder:"Search specs by title, number, or tags...",value:o,onValueChange:l}),(0,t.jsxs)(es.CommandList,{children:[(0,t.jsx)(es.CommandEmpty,{children:"No specs found."}),!o&&c.length>0&&(0,t.jsx)(es.CommandGroup,{heading:"Recent Searches",children:c.map(e=>(0,t.jsxs)(es.CommandItem,{value:e,onSelect:()=>{l(e)},children:[(0,t.jsx)(x.Clock,{className:"mr-2 h-4 w-4"}),e]},e))}),(0,t.jsx)(es.CommandGroup,{heading:"Specs",children:f.map(e=>(0,t.jsxs)(es.CommandItem,{value:`${e.specNumber} ${e.title}`,onSelect:()=>{var t,n;let i;return t=e.id,void(d(i=[n=e.title,...c.filter(e=>e!==n)].slice(0,5)),localStorage.setItem("leanspec-recent-searches",JSON.stringify(i)),r.push(s(t)),a(!1),l(""))},children:[(0,t.jsx)(m.FileText,{className:"mr-2 h-4 w-4"}),(0,t.jsxs)("div",{className:"flex-1 flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"font-medium",children:["#",e.specNumber]}),(0,t.jsx)("span",{className:"truncate",children:e.title})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,t.jsx)(en.StatusBadge,{status:e.status}),(0,t.jsx)(ei.PriorityBadge,{priority:e.priority})]})]})]},e.id))}),o&&(0,t.jsx)(es.CommandGroup,{heading:"Filter by Tag",children:Array.from(new Set(e.flatMap(e=>e.tags))).filter(e=>e.toLowerCase().includes(o.toLowerCase())).slice(0,5).map(e=>(0,t.jsxs)(es.CommandItem,{value:e,onSelect:()=>{r.push(`/?tag=${encodeURIComponent(e)}`),a(!1)},children:[(0,t.jsx)(y,{className:"mr-2 h-4 w-4"}),"Filter by: ",(0,t.jsx)("span",{className:"ml-1 font-medium",children:e})]},e))})]})]})]})}var el=e.i(308402);function eu({items:e}){return(0,t.jsx)("nav",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:e.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[s>0&&(0,t.jsx)(i.ChevronRight,{className:"h-4 w-4"}),e.href?(0,t.jsx)(r.default,{href:e.href,className:"hover:text-foreground transition-colors",children:e.label}):(0,t.jsx)("span",{className:"text-foreground",children:e.label})]},s))})}function ec({specs:e}){let i=function(e){if("/"===e)return[{label:"Home"}];if("/stats"===e)return[{label:"Home",href:"/"},{label:"Stats"}];if("/specs"===e||e.startsWith("/specs?")){let t=new URLSearchParams(e.split("?")[1]||"").get("view");return[{label:"Home",href:"/"},{label:`Specs (${"board"===t?"Board View":"List View"})`}]}return e.startsWith("/specs/")?[{label:"Home",href:"/"},{label:"Specs",href:"/specs"},{label:e.split("/")[2]}]:"/board"===e?[{label:"Home",href:"/"},{label:"Board"}]:[{label:"Home",href:"/"}]}((0,n.usePathname)());return(0,t.jsx)("header",{className:"sticky top-0 z-50 w-full h-14 border-b border-border bg-background",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-full px-2 sm:px-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4 min-w-0 flex-1",children:[(0,t.jsxs)(f.Button,{variant:"ghost",size:"icon",onClick:()=>{window.toggleMainSidebar&&window.toggleMainSidebar()},className:"lg:hidden h-9 w-9 shrink-0",children:[(0,t.jsx)(o,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle menu"})]}),(0,t.jsxs)(r.default,{href:"/",className:"flex items-center space-x-2 shrink-0",children:[(0,t.jsx)(s.default,{src:"/logo-with-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 dark:hidden"}),(0,t.jsx)(s.default,{src:"/logo-dark-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 hidden dark:block"}),(0,t.jsx)("span",{className:"font-bold text-lg sm:text-xl hidden sm:inline",children:"LeanSpec"})]}),(0,t.jsx)("div",{className:"hidden md:block min-w-0",children:(0,t.jsx)(eu,{items:i})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 sm:gap-2 shrink-0",children:[(0,t.jsx)(eo,{specs:e}),(0,t.jsxs)(el.TooltipProvider,{children:[(0,t.jsxs)(el.Tooltip,{children:[(0,t.jsx)(el.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(p,{})})}),(0,t.jsx)(el.TooltipContent,{children:(0,t.jsx)("p",{children:"Toggle theme"})})]}),(0,t.jsxs)(el.Tooltip,{children:[(0,t.jsx)(el.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,t.jsx)("a",{href:"https://www.lean-spec.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",children:(0,t.jsx)(l.BookOpen,{className:"h-5 w-5"})})})}),(0,t.jsx)(el.TooltipContent,{children:(0,t.jsx)("p",{children:"Documentation"})})]}),(0,t.jsxs)(el.Tooltip,{children:[(0,t.jsx)(el.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,t.jsxs)("a",{href:"https://github.com/codervisor/lean-spec",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub repository",children:[(0,t.jsx)(s.default,{src:"/github-mark-white.svg",alt:"GitHub",width:20,height:20,className:"hidden dark:block"}),(0,t.jsx)(s.default,{src:"/github-mark.svg",alt:"GitHub",width:20,height:20,className:"dark:hidden"})]})})}),(0,t.jsx)(el.TooltipContent,{children:(0,t.jsx)("p",{children:"GitHub repository"})})]})]})]})]})})}e.s(["Navigation",()=>ec],426160)},742634,e=>{"use strict";var t=e.i(890022),r=e.i(987985),s=e.i(230827),n=e.i(497332),i=e.i(20315),a=e.i(122436);let o=(0,a.default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var l=e.i(954049);let u=(0,a.default)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);var c=e.i(158362),d=e.i(525761),h=e.i(644021),f=e.i(431231),p=e.i(686266);let m=(0,a.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var g=e.i(963781),x=e.i(828964),y=e.i(828666),v=e.i(787949),b=e.i(632137),j=e.i(235893),w=e.i(694541),C=e.i(341965),A=e.i(222850),E=e.i(20648),k=e.i(361877);function S({collapsed:e}){let r=(0,s.useRouter)(),n=(0,s.usePathname)(),{mode:i,currentProject:a,projects:o,isLoading:l}=(0,E.useProject)(),[u,c]=(0,f.useState)(!1),[d,h]=(0,f.useState)(!1),[S,_]=(0,f.useState)(!1);if(l)return(0,t.jsx)(A.Skeleton,{className:(0,b.cn)("w-full",e?"h-9 w-9":"h-10")});if("multi-project"!==i)return null;let N=[...o].sort((e,t)=>e.favorite===t.favorite?0:e.favorite?-1:1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.CreateProjectDialog,{open:d,onOpenChange:h}),(0,t.jsxs)(C.Popover,{open:u,onOpenChange:c,children:[(0,t.jsx)(C.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(j.Button,{variant:"outline",role:"combobox","aria-expanded":u,disabled:S,className:(0,b.cn)("w-full justify-between transition-opacity",e?"h-9 w-9 p-0 justify-center":"px-3",S&&"opacity-70"),children:e?S?(0,t.jsx)(v.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)("div",{className:"h-4 w-4 rounded-full border",style:{backgroundColor:a?.color||"hsl(var(--primary))"}}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 truncate",children:[S?(0,t.jsx)(v.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)("div",{className:"h-4 w-4 rounded-full border shrink-0",style:{backgroundColor:a?.color||"hsl(var(--primary))"}}),(0,t.jsx)("span",{className:"truncate",children:S?"Switching...":a?.name||"Select project..."})]}),(0,t.jsx)(m,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})})}),(0,t.jsx)(C.PopoverContent,{className:"w-[200px] p-0",align:"start",children:(0,t.jsxs)(w.Command,{children:[(0,t.jsx)(w.CommandInput,{placeholder:"Search projects..."}),(0,t.jsxs)(w.CommandList,{children:[(0,t.jsx)(w.CommandEmpty,{children:"No project found."}),(0,t.jsx)(w.CommandGroup,{heading:"Projects",children:N.map(e=>(0,t.jsx)(w.CommandItem,{onSelect:()=>(e=>{if(e===a?.id)return void c(!1);_(!0),c(!1);let t=n.match(/^\/projects\/[^/]+(\/.*)?$/),r=t?.[1]||"";r.match(/^\/specs\/[^/]+$/)&&(r="/specs"),window.location.assign(`/projects/${e}${r}`)})(e.id),className:"text-sm",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 w-full",children:[(0,t.jsx)(p.Check,{className:(0,b.cn)("mr-2 h-4 w-4",a?.id===e.id?"opacity-100":"opacity-0")}),(0,t.jsx)("div",{className:"h-3 w-3 rounded-full shrink-0",style:{backgroundColor:e.color||"hsl(var(--primary))"}}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name}),e.favorite&&(0,t.jsx)(x.Star,{className:"h-3 w-3 fill-yellow-500 text-yellow-500"})]})},e.id))}),(0,t.jsx)(w.CommandSeparator,{}),(0,t.jsxs)(w.CommandGroup,{children:[(0,t.jsxs)(w.CommandItem,{className:"cursor-pointer",onSelect:()=>{c(!1),h(!0)},children:[(0,t.jsx)(g.Plus,{className:"mr-2 h-4 w-4"}),"Create Project"]}),(0,t.jsxs)(w.CommandItem,{className:"cursor-pointer",onSelect:()=>{c(!1),r.push("/projects")},children:[(0,t.jsx)(y.Settings,{className:"mr-2 h-4 w-4"}),"Manage Projects"]})]})]})]})})]})]})}function _({href:e,icon:s,children:n,description:i,currentPath:a,isCollapsed:o}){let l="/"===e||/^\/projects\/[^/]+$/.test(e)?a===e:a.startsWith(e);return(0,t.jsxs)(r.default,{href:e,className:(0,b.cn)("flex items-center gap-3 rounded-lg px-3 py-2 transition-colors","hover:bg-accent hover:text-accent-foreground",l&&"bg-accent text-accent-foreground font-medium",o&&"justify-center px-2"),children:[(0,t.jsx)(s,{className:(0,b.cn)("h-5 w-5 shrink-0",l&&"text-primary")}),!o&&(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-sm",children:n}),i&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:i})]})]})}function N(){let e=(0,s.usePathname)(),{mode:r,currentProject:a}=(0,E.useProject)(),[p,m]=f.useState(()=>"true"===localStorage.getItem("main-sidebar-collapsed")),[g,x]=f.useState(!1),[y,v]=f.useState(!1);f.useEffect(()=>{v(!0)},[]),f.useEffect(()=>{document.documentElement.style.setProperty("--main-sidebar-width",p?"60px":"240px"),localStorage.setItem("main-sidebar-collapsed",String(p))},[p]),f.useEffect(()=>{x(!1)},[e]),f.useEffect(()=>(window.toggleMainSidebar=()=>x(e=>!e),()=>{window.toggleMainSidebar=void 0}),[]);let w=e=>"multi-project"===r&&a?"/"===e?`/projects/${a.id}`:`/projects/${a.id}${e}`:e;return"/projects"===e?null:(0,t.jsxs)(t.Fragment,{children:[g&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>x(!1)}),(0,t.jsx)("aside",{className:(0,b.cn)("border-r border-border bg-background transition-all duration-300 flex-shrink-0","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",y&&p?"lg:w-[60px]":"lg:w-[240px]",g&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:(0,t.jsxs)("div",{className:"flex flex-col h-full w-full",children:[(0,t.jsx)("div",{className:"lg:hidden flex justify-end p-2 border-b border-border",children:(0,t.jsxs)(j.Button,{variant:"ghost",size:"sm",onClick:()=>x(!1),className:"h-8 w-8 p-0",children:[(0,t.jsx)(h.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close menu"})]})}),y&&(0,t.jsxs)("nav",{className:"flex-1 px-2 py-4 space-y-1",children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(S,{collapsed:p&&!g})}),(0,t.jsx)(_,{href:w("/"),icon:n.Home,currentPath:e,description:!p||g?"Dashboard":void 0,isCollapsed:p&&!g,children:"Home"}),(0,t.jsx)(_,{href:w("/specs"),icon:i.FileText,currentPath:e,description:!p||g?"All Specifications":void 0,isCollapsed:p&&!g,children:"Specs"}),(0,t.jsx)(_,{href:w("/dependencies"),icon:u,currentPath:e,description:!p||g?"Dependency Graph":void 0,isCollapsed:p&&!g,children:"Dependencies"}),(0,t.jsx)(_,{href:w("/stats"),icon:o,currentPath:e,description:!p||g?"Analytics":void 0,isCollapsed:p&&!g,children:"Stats"}),(0,t.jsx)(_,{href:w("/context"),icon:l.BookOpen,currentPath:e,description:!p||g?"Project Context":void 0,isCollapsed:p&&!g,children:"Context"})]}),(0,t.jsx)("div",{className:"hidden lg:block p-2 border-t border-border",children:(0,t.jsx)(j.Button,{variant:"ghost",size:"sm",onClick:()=>m(!p),className:(0,b.cn)("w-full",y&&p&&"px-2"),children:y&&p?(0,t.jsx)(d.ChevronRight,{className:"h-4 w-4"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.ChevronLeft,{className:"h-4 w-4 mr-2"}),(0,t.jsx)("span",{className:"text-xs",children:"Collapse"})]})})})]})})]})}e.s(["MainSidebar",()=>N],742634)},305215,e=>{"use strict";var t=e.i(890022),r=e.i(81795);function s({children:e,...s}){return(0,t.jsx)(r.ThemeProvider,{...s,children:e})}e.s(["ThemeProvider",()=>s])},474916,e=>{"use strict";var t=e.i(178420),r=e.i(995403);e.s(["Toast",()=>t.Toast,"toast",()=>r.toast])},124636,e=>{"use strict";var t=e.i(959124),r=e.i(431231);function s(){return"undefined"!=typeof window}function n(){return"production"}function i(){return(s()?window.vam:n())||"production"}function a(){return"production"===i()}function o(){return"development"===i()}function l(e,t,r){var n,i;if(!s()){let e="[Vercel Web Analytics] Please import `track` from `@vercel/analytics/server` when using this function in a server environment";if(a())console.warn(e);else throw Error(e);return}if(!t){null==(n=window.va)||n.call(window,"event",{name:e,options:r});return}try{let s=function(e,t){if(!e)return;let r=e,s=[];for(let[n,i]of Object.entries(e))"object"==typeof i&&null!==i&&(t.strip?r=function(e,{[e]:t,...r}){return r}(n,r):s.push(n));if(s.length>0&&!t.strip)throw Error(`The following properties are not valid: ${s.join(", ")}. Only strings, numbers, booleans, and null are allowed.`);return r}(t,{strip:a()});null==(i=window.va)||i.call(window,"event",{name:e,data:s,options:r})}catch(e){e instanceof Error&&o()&&console.error(e)}}function u(e){return(0,r.useEffect)(()=>{var t;e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]),(0,r.useEffect)(()=>{!function(e={debug:!0}){var t;if(!s())return;!function(e="auto"){if("auto"===e){window.vam=n();return}window.vam=e}(e.mode),window.va||(window.va=function(...e){(window.vaq=window.vaq||[]).push(e)}),e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend));let r=e.scriptSrc?e.scriptSrc:o()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?`${e.basePath}/insights/script.js`:"/_vercel/insights/script.js";if(document.head.querySelector(`script[src*="${r}"]`))return;let i=document.createElement("script");i.src=r,i.defer=!0,i.dataset.sdkn="@vercel/analytics"+(e.framework?`/${e.framework}`:""),i.dataset.sdkv="1.5.0",e.disableAutoTrack&&(i.dataset.disableAutoTrack="1"),e.endpoint?i.dataset.endpoint=e.endpoint:e.basePath&&(i.dataset.endpoint=`${e.basePath}/insights`),e.dsn&&(i.dataset.dsn=e.dsn),i.onerror=()=>{let e=o()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${r}. ${e}`)},o()&&!1===e.debug&&(i.dataset.debug="false"),document.head.appendChild(i)}({framework:e.framework||"react",basePath:e.basePath??function(){if(void 0!==t.default&&void 0!==t.default.env)return t.default.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}(),...void 0!==e.route&&{disableAutoTrack:!0},...e})},[]),(0,r.useEffect)(()=>{e.route&&e.path&&function({route:e,path:t}){var r;null==(r=window.va)||r.call(window,"pageview",{route:e,path:t})}({route:e.route,path:e.path})},[e.route,e.path]),null}e.s(["Analytics",()=>u,"track",()=>l])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,585458,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",s="week",i="month",l="quarter",a="year",o="date",c="Invalid Date",u=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},f="en",m={};m[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var x="$isDayjsObject",p=function(e){return e instanceof w||!(!e||!e[x])},g=function e(t,r,n){var s;if(!t)return f;if("string"==typeof t){var i=t.toLowerCase();m[i]&&(s=i),r&&(m[i]=r,s=i);var l=t.split("-");if(!s&&l.length>1)return e(l[0])}else{var a=t.name;m[a]=t,s=a}return!n&&s&&(f=s),s||!n&&f},v=function(e,t){if(p(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new w(r)},S={s:h,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+h(Math.floor(r/60),2,"0")+":"+h(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),s=t.clone().add(n,i),l=r-s<0,a=t.clone().add(n+(l?-1:1),i);return+(-(n+(r-s)/(l?s-a:a-s))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return({M:i,y:a,w:s,d:"day",D:o,h:n,m:r,s:t,ms:e,Q:l})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};S.l=g,S.i=p,S.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var w=function(){function h(e){this.$L=g(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var f=h.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(u);if(n){var s=n[2]-1||0,i=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)):new Date(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)}}return new Date(t)}(e),this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return S},f.isValid=function(){return this.$d.toString()!==c},f.isSame=function(e,t){var r=v(e);return this.startOf(t)<=r&&r<=this.endOf(t)},f.isAfter=function(e,t){return v(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<v(e)},f.$g=function(e,t,r){return S.u(e)?this[t]:this.set(r,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,l){var c=this,u=!!S.u(l)||l,d=S.p(e),h=function(e,t){var r=S.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?r:r.endOf("day")},f=function(e,t){return S.w(c.toDate()[e].apply(c.toDate("s"),(u?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},m=this.$W,x=this.$M,p=this.$D,g="set"+(this.$u?"UTC":"");switch(d){case a:return u?h(1,0):h(31,11);case i:return u?h(1,x):h(0,x+1);case s:var v=this.$locale().weekStart||0,w=(m<v?m+7:m)-v;return h(u?p-w:p+(6-w),x);case"day":case o:return f(g+"Hours",0);case n:return f(g+"Minutes",1);case r:return f(g+"Seconds",2);case t:return f(g+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(s,l){var c,u=S.p(s),d="set"+(this.$u?"UTC":""),h=((c={}).day=d+"Date",c[o]=d+"Date",c[i]=d+"Month",c[a]=d+"FullYear",c[n]=d+"Hours",c[r]=d+"Minutes",c[t]=d+"Seconds",c[e]=d+"Milliseconds",c)[u],f="day"===u?this.$D+(l-this.$W):l;if(u===i||u===a){var m=this.clone().set(o,1);m.$d[h](f),m.init(),this.$d=m.set(o,Math.min(this.$D,m.daysInMonth())).$d}else h&&this.$d[h](f);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[S.p(e)]()},f.add=function(e,l){var o,c=this;e=Number(e);var u=S.p(l),d=function(t){var r=v(c);return S.w(r.date(r.date()+Math.round(t*e)),c)};if(u===i)return this.set(i,this.$M+e);if(u===a)return this.set(a,this.$y+e);if("day"===u)return d(1);if(u===s)return d(7);var h=((o={})[r]=6e4,o[n]=36e5,o[t]=1e3,o)[u]||1,f=this.$d.getTime()+e*h;return S.w(f,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||c;var n=e||"YYYY-MM-DDTHH:mm:ssZ",s=S.z(this),i=this.$H,l=this.$m,a=this.$M,o=r.weekdays,u=r.months,h=r.meridiem,f=function(e,r,s,i){return e&&(e[r]||e(t,n))||s[r].slice(0,i)},m=function(e){return S.s(i%12||12,e,"0")},x=h||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return S.s(t.$y,4,"0");case"M":return a+1;case"MM":return S.s(a+1,2,"0");case"MMM":return f(r.monthsShort,a,u,3);case"MMMM":return f(u,a);case"D":return t.$D;case"DD":return S.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return f(r.weekdaysMin,t.$W,o,2);case"ddd":return f(r.weekdaysShort,t.$W,o,3);case"dddd":return o[t.$W];case"H":return String(i);case"HH":return S.s(i,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return x(i,l,!0);case"A":return x(i,l,!1);case"m":return String(l);case"mm":return S.s(l,2,"0");case"s":return String(t.$s);case"ss":return S.s(t.$s,2,"0");case"SSS":return S.s(t.$ms,3,"0");case"Z":return s}return null}(e)||s.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(e,o,c){var u,d=this,h=S.p(o),f=v(e),m=(f.utcOffset()-this.utcOffset())*6e4,x=this-f,p=function(){return S.m(d,f)};switch(h){case a:u=p()/12;break;case i:u=p();break;case l:u=p()/3;break;case s:u=(x-m)/6048e5;break;case"day":u=(x-m)/864e5;break;case n:u=x/36e5;break;case r:u=x/6e4;break;case t:u=x/1e3;break;default:u=x}return c?u:S.a(u)},f.daysInMonth=function(){return this.endOf(i).$D},f.$locale=function(){return m[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=g(e,t,!0);return n&&(r.$L=n),r},f.clone=function(){return S.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},h}(),b=w.prototype;return v.prototype=b,[["$ms",e],["$s",t],["$m",r],["$H",n],["$W","day"],["$M",i],["$y",a],["$D",o]].forEach(function(e){b[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),v.extend=function(e,t){return e.$i||(e(t,w,v),e.$i=!0),v},v.locale=g,v.isDayjs=p,v.unix=function(e){return v(1e3*e)},v.en=m[f],v.Ls=m,v.p={},v}()},417612,293821,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(987985);let s="u">typeof window?r.useLayoutEffect:r.useEffect;function i(e){if(void 0!==e)switch(typeof e){case"number":return e;case"string":if(e.endsWith("px"))return parseFloat(e)}}let l=null;function a({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if("horizontal"===t&&r)switch(function(e=!1){if(null===l||e){let e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";let r=document.createElement("div"),n=r.style;return n.width="100px",n.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?l="positive-descending":(e.scrollLeft=1,l=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),l}return l}()){case"negative":return-n;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:r,scrollWidth:n}=e;return n-t-r}}return n}function o(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function c(e,t){if(e===t)return!0;if(!!e!=!!t||(o(void 0!==e),o(void 0!==t),Object.keys(e).length!==Object.keys(t).length))return!1;for(let r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function u({cachedBounds:e,itemCount:t,itemSize:r}){if(0===t)return 0;if("number"==typeof r)return t*r;{let r=e.get(0===e.size?0:e.size-1);return o(void 0!==r,"Unexpected bounds cache miss"),t*((r.scrollOffset+r.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:s}){let i=n-1,l=0,a=-1,o=0,c=-1,u=0;for(;u<i;){let r=e.get(u);if(r.scrollOffset+r.size>t)break;u++}for(o=Math.max(0,(l=u)-s);u<i;){let n=e.get(u);if(n.scrollOffset+n.size>=t+r)break;u++}return c=Math.min(n-1,(a=Math.min(i,u))+s),l<0&&(l=0,a=-1,o=0,c=-1),{startIndexVisible:l,stopIndexVisible:a,startIndexOverscan:o,stopIndexOverscan:c}}function h(e,t){let{ariaAttributes:r,style:n,...s}=e,{ariaAttributes:i,style:l,...a}=t;return c(r,i)&&c(n,l)&&c(s,a)}function f({children:e,className:n,defaultHeight:l=0,listRef:f,onResize:m,onRowsRendered:x,overscanCount:p=3,rowComponent:g,rowCount:v,rowHeight:S,rowProps:w,tagName:b="div",style:y,...j}){let $=(0,r.useMemo)(()=>w,Object.values(w)),C=(0,r.useMemo)(()=>(0,r.memo)(g,h),[g]),[N,M]=(0,r.useState)(null),I=null!=S&&"object"==typeof S&&"getAverageRowHeight"in S&&"function"==typeof S.getAverageRowHeight,{getCellBounds:O,getEstimatedSize:z,scrollToIndex:T,startIndexOverscan:k,startIndexVisible:D,stopIndexOverscan:A,stopIndexVisible:E}=function({containerElement:e,containerStyle:t,defaultContainerSize:n=0,direction:l,isRtl:h=!1,itemCount:f,itemProps:m,itemSize:x,onResize:p,overscanCount:g}){var v;let S,[w,b]=(0,r.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:y,startIndexOverscan:j,stopIndexVisible:$,stopIndexOverscan:C}={startIndexVisible:Math.min(f-1,w.startIndexVisible),startIndexOverscan:Math.min(f-1,w.startIndexOverscan),stopIndexVisible:Math.min(f-1,w.stopIndexVisible),stopIndexOverscan:Math.min(f-1,w.stopIndexOverscan)},{height:N=n,width:M=n}=function({box:e,defaultHeight:t,defaultWidth:n,disabled:l,element:a,mode:o,style:c}){let{styleHeight:u,styleWidth:d}=(0,r.useMemo)(()=>({styleHeight:i(c?.height),styleWidth:i(c?.width)}),[c?.height,c?.width]),[h,f]=(0,r.useState)({height:t,width:n}),m=l||"only-height"===o&&void 0!==u||"only-width"===o&&void 0!==d||void 0!==u&&void 0!==d;return s(()=>{if(null===a||m)return;let t=new ResizeObserver(e=>{for(let t of e){let{contentRect:e,target:r}=t;a===r&&f(t=>t.height===e.height&&t.width===e.width?t:{height:e.height,width:e.width})}});return t.observe(a,{box:e}),()=>{t?.unobserve(a)}},[e,m,a,u,d]),(0,r.useMemo)(()=>({height:u??h.height,width:d??h.width}),[h,u,d])}({defaultHeight:"vertical"===l?n:void 0,defaultWidth:"horizontal"===l?n:void 0,element:e,mode:"vertical"===l?"only-height":"only-width",style:t}),I=(0,r.useRef)({height:0,width:0}),O="vertical"===l?N:M,z=function({containerSize:e,itemSize:t}){let r;return"string"==typeof t?(o(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),o(void 0!==e,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100):r=t,r}({containerSize:O,itemSize:x});(0,r.useLayoutEffect)(()=>{if("function"==typeof p){let e=I.current;(e.height!==N||e.width!==M)&&(p({height:N,width:M},{...e}),e.height=N,e.width=M)}},[N,p,M]);let T=function({itemCount:e,itemProps:t,itemSize:n}){return(0,r.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:r}){let n=new Map;return{get(s){for(o(s<e,`Invalid index ${s}`);n.size-1<s;){let e,i=n.size;switch(typeof r){case"function":e=r(i,t);break;case"number":e=r}if(0===i)n.set(i,{size:e,scrollOffset:0});else{let t=n.get(i-1);o(void 0!==t,`Unexpected bounds cache miss for index ${s}`),n.set(i,{scrollOffset:t.scrollOffset+t.size,size:e})}}let i=n.get(s);return o(void 0!==i,`Unexpected bounds cache miss for index ${s}`),i},set(e,t){n.set(e,t)},get size(){return n.size}}})({itemCount:e,itemProps:t,itemSize:n}),[e,t,n])}({itemCount:f,itemProps:m,itemSize:z}),k=(0,r.useCallback)(e=>T.get(e),[T]),D=(0,r.useCallback)(()=>u({cachedBounds:T,itemCount:f,itemSize:z}),[T,f,z]),A=(0,r.useCallback)(t=>d({cachedBounds:T,containerScrollOffset:a({containerElement:e,direction:l,isRtl:h,scrollOffset:t}),containerSize:O,itemCount:f,overscanCount:g}),[T,e,O,l,h,f,g]);return s(()=>{b(A(("vertical"===l?e?.scrollTop:e?.scrollLeft)??0))},[e,l,A]),s(()=>{if(!e)return;let t=()=>{b(t=>{let{scrollLeft:r,scrollTop:n}=e,s=d({cachedBounds:T,containerScrollOffset:a({containerElement:e,direction:l,isRtl:h,scrollOffset:"vertical"===l?n:r}),containerSize:O,itemCount:f,overscanCount:g});return c(s,t)?t:s})};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[T,e,O,l,f,g]),{getCellBounds:k,getEstimatedSize:D,scrollToIndex:(v=({align:t="auto",containerScrollOffset:r,index:n})=>{let s=function({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:s,containerScrollOffset:i,containerSize:l}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});let a=u({cachedBounds:t,itemCount:n,itemSize:s}),o=t.get(r),c=Math.max(0,Math.min(a-l,o.scrollOffset)),d=Math.max(0,o.scrollOffset-l+o.size);switch("smart"===e&&(e=i>=d&&i<=c?"auto":"center"),e){case"start":return c;case"end":return d;case"center":return o.scrollOffset<=l/2?0:o.scrollOffset+o.size/2>=a-l/2?a-l:o.scrollOffset+o.size/2-l/2;default:return i>=d&&i<=c?i:i<d?d:c}}({align:t,cachedBounds:T,containerScrollOffset:r,containerSize:O,index:n,itemCount:f,itemSize:z});if(e){if(s=a({containerElement:e,direction:l,isRtl:h,scrollOffset:s}),"function"!=typeof e.scrollTo){let e=A(s);c(w,e)||b(e)}return s}},S=(0,r.useRef)(()=>{throw Error("Cannot call during render.")}),s(()=>{S.current=v},[v]),(0,r.useCallback)(e=>S.current?.(e),[S])),startIndexOverscan:j,startIndexVisible:y,stopIndexOverscan:C,stopIndexVisible:$}}({containerElement:N,containerStyle:y,defaultContainerSize:l,direction:"vertical",itemCount:v,itemProps:$,itemSize:(0,r.useMemo)(()=>I?e=>S.getRowHeight(e)??S.getAverageRowHeight():S,[I,S]),onResize:m,overscanCount:p});(0,r.useImperativeHandle)(f,()=>({get element(){return N},scrollToRow({align:e="auto",behavior:t="auto",index:r}){let n=T({align:e,containerScrollOffset:N?.scrollTop??0,index:r});"function"==typeof N?.scrollTo&&N.scrollTo({behavior:t,top:n})}}),[N,T]),s(()=>{if(!N)return;let e=Array.from(N.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let r=`${k+t}`;return e.setAttribute("data-react-window-index",r),!0});if(I)return S.observeRowElements(e)},[N,I,S,k,A]),(0,r.useEffect)(()=>{k>=0&&A>=0&&x&&x({startIndex:D,stopIndex:E},{startIndex:k,stopIndex:A})},[x,k,D,A,E]);let R=(0,r.useMemo)(()=>{let e=[];if(v>0)for(let t=k;t<=A;t++){let n=O(t);e.push((0,r.createElement)(C,{...$,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":v,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${n.scrollOffset}px)`,height:I?void 0:n.size,width:"100%"}}))}return e},[C,O,I,v,$,k,A]),L=(0,t.jsx)("div",{"aria-hidden":!0,style:{height:z(),width:"100%",zIndex:-1}});return(0,r.createElement)(b,{role:"list",...j,className:n,ref:M,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...y}},R,e,L)}r.useState,r.useRef,r.useState,r.useRef;var m=e.i(300329),x=e.i(158362),p=e.i(525761),g=e.i(644021);let v=(0,e.i(122436).default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var S=e.i(21079),w=e.i(235893),b=e.i(168497),y=e.i(308402),j=e.i(708737),$=e.i(632137),C=e.i(597705),N=e.i(145878);let M={specs:[],signature:null,scrollTop:0,activeSpecId:null},I=[],O=new Set,z=new Set,T=new Set;function k(){for(let e of O)e()}function D(e){return O.add(e),()=>{O.delete(e)}}function A(){return M}function E(){return(0,r.useSyncExternalStore)(D,A,()=>M)}function R(){let e=r.useCallback(e=>(z.add(e),()=>{z.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>A().specs,()=>I)}function L(){let e=r.useCallback(e=>(T.add(e),()=>{T.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>A().activeSpecId,()=>null)}function H(e){if(0===e.length)return;let t=e.map(e=>[e.id,e.specNumber??"",e.title??"",e.status??"",e.priority??"",e.updatedAt?new Date(e.updatedAt).getTime():0].join(":")).join("|");if(t!==M.signature)for(let r of(M={...M,specs:e,signature:t},k(),z))r()}function V(e){if(M.activeSpecId!==e)for(let t of(M={...M,activeSpecId:e},k(),T))t()}function B(e){1>Math.abs(e-M.scrollTop)||(M={...M,scrollTop:e})}function P(){return M.scrollTop}e.s(["getSidebarScrollTop",()=>P,"primeSpecsSidebar",()=>H,"setActiveSidebarSpec",()=>V,"updateSidebarScrollTop",()=>B,"useSpecsSidebarActiveSpec",()=>L,"useSpecsSidebarSpecs",()=>R,"useSpecsSidebarState",()=>E],293821);var _=e.i(20648);let W=r.useLayoutEffect;function Y({initialSpecs:e=[],currentSpecId:s,currentSubSpec:i,onSpecHover:l,className:a}){let[o,c]=r.useState(""),[u,d]=r.useState("all"),[h,M]=r.useState("all"),[I,O]=r.useState("all"),[z,T]=r.useState(!1),[k,D]=r.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[A,E]=r.useState(!1),[H,V]=r.useState(!1),Y=r.useRef(null),F=r.useRef(null),U=r.useRef(!1),q=r.useRef(null),J=r.useRef(0),Z=r.useRef(!1),K=r.useRef(!0),G=R(),Q=L(),X=r.useMemo(()=>G.length>0?G:e,[G,e]),ee=s||Q||"";r.useEffect(()=>{V(!0)},[]),r.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",k?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(k))},[k]),r.useEffect(()=>{E(!1)},[ee,i]);let et=r.useMemo(()=>{let e=X;if(o){let t=o.toLowerCase();e=e.filter(e=>e.title?.toLowerCase().includes(t)||e.specName.toLowerCase().includes(t)||e.specNumber?.toString().includes(t))}return"all"!==u&&(e=e.filter(e=>e.status===u)),"all"!==h&&(e=e.filter(e=>e.priority===h)),"all"!==I&&(e=e.filter(e=>e.tags?.includes(I))),console.debug(e),e},[X,o,u,h,I]),er=r.useMemo(()=>{let e=new Set;return X.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[X]),en="all"!==u||"all"!==h||"all"!==I,es=r.useMemo(()=>[...et].sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)),[et]);W(()=>{let e=null,t=null;J.current=P(),Z.current=J.current>0;let r=()=>{let n=q.current?.element;if(!n){e=window.requestAnimationFrame(r);return}U.current||(J.current>0&&(n.scrollTop=J.current),U.current=!0);let s=()=>{null===F.current&&(F.current=window.requestAnimationFrame(()=>{F.current=null,J.current=n.scrollTop,B(n.scrollTop)}))};n.addEventListener("scroll",s,{passive:!0}),t=()=>{n.removeEventListener("scroll",s)}};return r(),()=>{t&&t(),null!==e&&window.cancelAnimationFrame(e),null!==F.current&&(window.cancelAnimationFrame(F.current),F.current=null)}},[]),W(()=>{if(!K.current||(K.current=!1,Z.current||!ee))return;let e=null,t=()=>{if(Z.current)return;if(!U.current||!q.current){e=window.requestAnimationFrame(t);return}let r=es.findIndex(e=>e.id===ee);-1!==r&&(Z.current=!0,q.current.scrollToRow({index:r,align:"center"}))};return t(),()=>{null!==e&&window.cancelAnimationFrame(e)}},[es,ee]),r.useEffect(()=>(window.toggleSpecsSidebar=()=>E(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]);let{getSpecUrl:ei}=(0,_.useProjectUrl)(),el=r.useCallback(e=>{let{index:r,style:s}=e,a=es[r],o=a.id===ee,c=a.title||a.specName,u=ei(a.specNumber||a.id);return(0,t.jsx)("div",{style:s,className:"px-1",children:(0,t.jsx)("div",{className:"mb-0.5",children:(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(n.default,{ref:o&&!i?Y:null,href:u,onMouseEnter:()=>l?.(a.specNumber?.toString()||a.id),className:(0,$.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",o?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[a.specNumber&&(0,t.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",a.specNumber.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate text-xs leading-relaxed",children:c})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[a.status&&(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(b.StatusBadge,{status:a.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(y.TooltipContent,{side:"right",children:(0,b.getStatusLabel)(a.status)})]}),a.priority&&(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(C.PriorityBadge,{priority:a.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(y.TooltipContent,{side:"right",children:(0,C.getPriorityLabel)(a.priority)})]}),"number"==typeof a.subSpecsCount&&a.subSpecsCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",a.subSpecsCount," files"]}),a.updatedAt&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:(0,N.formatRelativeTime)(a.updatedAt)})]})]})}),(0,t.jsx)(y.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-semibold",children:c}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a.specName})]})})]})})})})},[es,ee,i,l,ei]),ea=r.useMemo(()=>window.innerHeight-56-180,[]),eo=r.useMemo(()=>r.memo(f),[]);return(0,t.jsxs)(y.TooltipProvider,{delayDuration:700,children:[A&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>E(!1)}),(0,t.jsxs)("div",{className:(0,$.cn)("relative flex-shrink-0",a),children:[(0,t.jsxs)("aside",{className:(0,$.cn)("border-r border-border bg-background flex flex-col overflow-hidden transition-all duration-300","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",H&&k?"lg:w-0 lg:border-r-0":"lg:w-[280px]",A&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:[(0,t.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(w.Button,{variant:z||en?"default":"ghost",size:"sm",onClick:()=>T(!z),className:"h-6 w-6 p-0",children:(0,t.jsx)(v,{className:"h-4 w-4"})})}),(0,t.jsx)(y.TooltipContent,{side:"bottom",children:z?"Hide filters":"Show filters"})]}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>E(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,t.jsx)(g.X,{className:"h-4 w-4"})}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>D(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,t.jsx)(x.ChevronLeft,{className:"h-4 w-4"})})]})]}),z&&(0,t.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),en&&(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>{d("all"),M("all"),O("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,t.jsxs)(j.Select,{value:u,onValueChange:d,children:[(0,t.jsx)(j.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(j.SelectValue,{placeholder:"Status"})}),(0,t.jsxs)(j.SelectContent,{children:[(0,t.jsx)(j.SelectItem,{value:"all",children:"All Status"}),(0,t.jsx)(j.SelectItem,{value:"planned",children:"Planned"}),(0,t.jsx)(j.SelectItem,{value:"in-progress",children:"In Progress"}),(0,t.jsx)(j.SelectItem,{value:"complete",children:"Complete"}),(0,t.jsx)(j.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,t.jsxs)(j.Select,{value:h,onValueChange:M,children:[(0,t.jsx)(j.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(j.SelectValue,{placeholder:"Priority"})}),(0,t.jsxs)(j.SelectContent,{children:[(0,t.jsx)(j.SelectItem,{value:"all",children:"All Priority"}),(0,t.jsx)(j.SelectItem,{value:"low",children:"Low"}),(0,t.jsx)(j.SelectItem,{value:"medium",children:"Medium"}),(0,t.jsx)(j.SelectItem,{value:"high",children:"High"}),(0,t.jsx)(j.SelectItem,{value:"critical",children:"Critical"})]})]}),er.length>0&&(0,t.jsxs)(j.Select,{value:I,onValueChange:O,children:[(0,t.jsx)(j.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(j.SelectValue,{placeholder:"Tag"})}),(0,t.jsxs)(j.SelectContent,{children:[(0,t.jsx)(j.SelectItem,{value:"all",children:"All Tags"}),er.map(e=>(0,t.jsx)(j.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(S.Input,{placeholder:"Search specs...",value:o,onChange:e=>c(e.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:0===es.length?(0,t.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,t.jsx)(eo,{listRef:q,defaultHeight:ea,rowCount:es.length,rowHeight:72,overscanCount:5,rowComponent:el,rowProps:{}})})]}),H&&k&&(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>D(!1),className:"hidden lg:items-center lg:justify-center lg:flex h-6 w-6 p-0 fixed z-50 top-20 -translate-y-1 -translate-x-1/2 left-[calc(var(--main-sidebar-width,240px))] bg-background border",children:(0,t.jsx)(p.ChevronRight,{className:"h-4 w-4"})})]})]})}e.s(["SpecsNavSidebar",()=>Y],417612)},653213,e=>{"use strict";var t=e.i(890022),r=e.i(417612),n=e.i(222850),s=e.i(293821);function i(){let e=(0,s.useSpecsSidebarState)(),i=e.specs,l=e.activeSpecId||"";return(0,t.jsxs)("div",{className:"flex min-h-[calc(100vh-3.5rem)] w-full min-w-0",children:[(0,t.jsx)(r.SpecsNavSidebar,{initialSpecs:i,currentSpecId:l}),(0,t.jsx)("div",{className:"flex-1 min-w-0 px-4 py-6 sm:px-8 sm:py-10",children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(n.Skeleton,{className:"h-7 w-56"}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,t.jsx)(n.Skeleton,{className:"h-6 w-24"}),(0,t.jsx)(n.Skeleton,{className:"h-6 w-24"}),(0,t.jsx)(n.Skeleton,{className:"h-6 w-20"})]}),(0,t.jsx)(n.Skeleton,{className:"h-4 w-64"})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(n.Skeleton,{className:"h-5 w-40"}),(0,t.jsx)(n.Skeleton,{className:"h-32 w-full"})]}),(0,t.jsx)("div",{className:"space-y-4",children:[...Array(6)].map((e,r)=>(0,t.jsx)(n.Skeleton,{className:"h-4 w-full"},r))})]})})]})}e.s(["SpecDetailLoadingShell",()=>i])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81795,t=>{"use strict";var e=t.i(431231),a=(t,e,a,o,r,n,s,i)=>{let l=document.documentElement,d=["light","dark"];function c(e){var a;(Array.isArray(t)?t:[t]).forEach(t=>{let a="class"===t,o=a&&n?r.map(t=>n[t]||t):r;a?(l.classList.remove(...o),l.classList.add(n&&n[e]?n[e]:e)):l.setAttribute(t,e)}),a=e,i&&d.includes(a)&&(l.style.colorScheme=a)}if(o)c(o);else try{let t=localStorage.getItem(e)||a,o=s&&"system"===t?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t;c(o)}catch(t){}},o=["light","dark"],r="(prefers-color-scheme: dark)",n="undefined"==typeof window,s=e.createContext(void 0),i={setTheme:t=>{},themes:[]},l=()=>{var t;return null!=(t=e.useContext(s))?t:i},d=t=>e.useContext(s)?e.createElement(e.Fragment,null,t.children):e.createElement(u,{...t}),c=["light","dark"],u=({forcedTheme:t,disableTransitionOnChange:a=!1,enableSystem:n=!0,enableColorScheme:i=!0,storageKey:l="theme",themes:d=c,defaultTheme:u=n?"system":"light",attribute:g="data-theme",value:b,children:y,nonce:v,scriptProps:w})=>{let[x,E]=e.useState(()=>m(l,u)),[k,T]=e.useState(()=>"system"===x?h():x),S=b?Object.values(b):d,N=e.useCallback(t=>{let e=t;if(!e)return;"system"===t&&n&&(e=h());let r=b?b[e]:e,s=a?p(v):null,l=document.documentElement,d=t=>{"class"===t?(l.classList.remove(...S),r&&l.classList.add(r)):t.startsWith("data-")&&(r?l.setAttribute(t,r):l.removeAttribute(t))};if(Array.isArray(g)?g.forEach(d):d(g),i){let t=o.includes(u)?u:null,a=o.includes(e)?e:t;l.style.colorScheme=a}null==s||s()},[v]),C=e.useCallback(t=>{let e="function"==typeof t?t(x):t;E(e);try{localStorage.setItem(l,e)}catch(t){}},[x]),M=e.useCallback(e=>{T(h(e)),"system"===x&&n&&!t&&N("system")},[x,t]);e.useEffect(()=>{let t=window.matchMedia(r);return t.addListener(M),M(t),()=>t.removeListener(M)},[M]),e.useEffect(()=>{let t=t=>{t.key===l&&(t.newValue?E(t.newValue):C(u))};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[C]),e.useEffect(()=>{N(null!=t?t:x)},[t,x]);let B=e.useMemo(()=>({theme:x,setTheme:C,forcedTheme:t,resolvedTheme:"system"===x?k:x,themes:n?[...d,"system"]:d,systemTheme:n?k:void 0}),[x,C,t,k,n,d]);return e.createElement(s.Provider,{value:B},e.createElement(f,{forcedTheme:t,storageKey:l,attribute:g,enableSystem:n,enableColorScheme:i,defaultTheme:u,value:b,themes:d,nonce:v,scriptProps:w}),y)},f=e.memo(({forcedTheme:t,storageKey:o,attribute:r,enableSystem:n,enableColorScheme:s,defaultTheme:i,value:l,themes:d,nonce:c,scriptProps:u})=>{let f=JSON.stringify([r,o,i,t,d,l,n,s]).slice(1,-1);return e.createElement("script",{...u,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?c:"",dangerouslySetInnerHTML:{__html:`(${a.toString()})(${f})`}})}),m=(t,e)=>{let a;if(!n){try{a=localStorage.getItem(t)||void 0}catch(t){}return a||e}},p=t=>{let e=document.createElement("style");return t&&e.setAttribute("nonce",t),e.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},h=t=>(t||(t=window.matchMedia(r)),t.matches?"dark":"light");t.s(["ThemeProvider",()=>d,"useTheme",()=>l])},178420,t=>{"use strict";var e=t.i(890022),a=t.i(995403),o=t.i(81795);function r(){let{theme:t}=(0,o.useTheme)();return(0,e.jsx)(a.Toaster,{theme:t,position:"bottom-right",richColors:!0,closeButton:!0,expand:!1,duration:4e3,toastOptions:{classNames:{toast:"group",title:"font-semibold",description:"text-sm opacity-90",actionButton:"bg-primary text-primary-foreground",cancelButton:"bg-muted text-muted-foreground"}}})}t.s(["Toast",()=>r])},826985,t=>{"use strict";var e=t.i(431231),a=t.i(122925),o=t.i(890022),r=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),n=e.forwardRef((t,e)=>(0,o.jsx)(a.Primitive.span,{...t,ref:e,style:{...r,...t.style}}));n.displayName="VisuallyHidden",t.s(["Root",()=>n,"VISUALLY_HIDDEN_STYLES",()=>r])},230827,(t,e,a)=>{e.exports=t.r(301698)},995403,t=>{"use strict";var e=t.i(431231),a=t.i(395635);let o=Array(12).fill(0),r=({visible:t,className:a})=>e.default.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":t},e.default.createElement("div",{className:"sonner-spinner"},o.map((t,a)=>e.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),n=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),s=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),i=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),l=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),d=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},e.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),c=1,u=new class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...o}=t,r="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:c++,n=this.toasts.find(t=>t.id===r),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),n?this.toasts=this.toasts.map(e=>e.id===r?(this.publish({...e,...t,id:r,title:a}),{...e,...t,id:r,dismissible:s,title:a}):e):this.addToast({title:a,...o,dismissible:s,id:r}),r},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,a)=>{let o,r;if(!a)return;void 0!==a.loading&&(r=this.create({...a,promise:t,type:"loading",message:a.loading,description:"function"!=typeof a.description?a.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=void 0!==r,i=n.then(async t=>{if(o=["resolve",t],e.default.isValidElement(t))s=!1,this.create({id:r,type:"default",message:t});else if(f(t)&&!t.ok){s=!1;let o="function"==typeof a.error?await a.error(`HTTP error! status: ${t.status}`):a.error,n="function"==typeof a.description?await a.description(`HTTP error! status: ${t.status}`):a.description,i="object"!=typeof o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let o="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"error",description:n,...i})}else if(void 0!==a.success){s=!1;let o="function"==typeof a.success?await a.success(t):a.success,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"success",description:n,...i})}}).catch(async t=>{if(o=["reject",t],void 0!==a.error){s=!1;let o="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof o||e.default.isValidElement(o)?{message:o}:o;this.create({id:r,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(r),r=void 0),null==a.finally||a.finally.call(a)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===o[0]?e(o[1]):t(o[1])).catch(e));return"string"!=typeof r&&"number"!=typeof r?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||c++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,m=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||c++;return u.addToast({title:t,...e,id:a}),a},{success:u.success,info:u.info,warning:u.warning,error:u.error,custom:u.custom,message:u.message,promise:u.promise,dismiss:u.dismiss,loading:u.loading},{getHistory:()=>u.toasts,getToasts:()=>u.getActiveToasts()});function p(t){return void 0!==t.label}function h(...t){return t.filter(Boolean).join(" ")}!function(t){if(!t||"undefined"==typeof document)return;let e=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",e.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let g=t=>{var a,o,c,u,f,m,g,b,y,v,w,x,E;let{invert:k,toast:T,unstyled:S,interacting:N,setHeights:C,visibleToasts:M,heights:B,index:j,toasts:z,expanded:A,removeToast:L,defaultRichColors:R,closeButton:I,style:P,cancelButtonStyle:Y,actionButtonStyle:D,className:$="",descriptionClassName:H="",duration:V,position:O,gap:U,expandByDefault:K,classNames:X,icons:F,closeButtonAriaLabel:W="Close toast"}=t,[_,q]=e.default.useState(null),[J,G]=e.default.useState(null),[Q,Z]=e.default.useState(!1),[tt,te]=e.default.useState(!1),[ta,to]=e.default.useState(!1),[tr,tn]=e.default.useState(!1),[ts,ti]=e.default.useState(!1),[tl,td]=e.default.useState(0),[tc,tu]=e.default.useState(0),tf=e.default.useRef(T.duration||V||4e3),tm=e.default.useRef(null),tp=e.default.useRef(null),th=0===j,tg=j+1<=M,tb=T.type,ty=!1!==T.dismissible,tv=T.className||"",tw=T.descriptionClassName||"",tx=e.default.useMemo(()=>B.findIndex(t=>t.toastId===T.id)||0,[B,T.id]),tE=e.default.useMemo(()=>{var t;return null!=(t=T.closeButton)?t:I},[T.closeButton,I]),tk=e.default.useMemo(()=>T.duration||V||4e3,[T.duration,V]),tT=e.default.useRef(0),tS=e.default.useRef(0),tN=e.default.useRef(0),tC=e.default.useRef(null),[tM,tB]=O.split("-"),tj=e.default.useMemo(()=>B.reduce((t,e,a)=>a>=tx?t:t+e.height,0),[B,tx]),tz=(()=>{let[t,a]=e.default.useState(document.hidden);return e.default.useEffect(()=>{let t=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t})(),tA=T.invert||k,tL="loading"===tb;tS.current=e.default.useMemo(()=>tx*U+tj,[tx,tj]),e.default.useEffect(()=>{tf.current=tk},[tk]),e.default.useEffect(()=>{Z(!0)},[]),e.default.useEffect(()=>{let t=tp.current;if(t){let e=t.getBoundingClientRect().height;return tu(e),C(t=>[{toastId:T.id,height:e,position:T.position},...t]),()=>C(t=>t.filter(t=>t.toastId!==T.id))}},[C,T.id]),e.default.useLayoutEffect(()=>{if(!Q)return;let t=tp.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,tu(a),C(t=>t.find(t=>t.toastId===T.id)?t.map(t=>t.toastId===T.id?{...t,height:a}:t):[{toastId:T.id,height:a,position:T.position},...t])},[Q,T.title,T.description,C,T.id,T.jsx,T.action,T.cancel]);let tR=e.default.useCallback(()=>{te(!0),td(tS.current),C(t=>t.filter(t=>t.toastId!==T.id)),setTimeout(()=>{L(T)},200)},[T,L,C,tS]);e.default.useEffect(()=>{let t;if((!T.promise||"loading"!==tb)&&T.duration!==1/0&&"loading"!==T.type){if(A||N||tz){if(tN.current<tT.current){let t=new Date().getTime()-tT.current;tf.current=tf.current-t}tN.current=new Date().getTime()}else tf.current!==1/0&&(tT.current=new Date().getTime(),t=setTimeout(()=>{null==T.onAutoClose||T.onAutoClose.call(T,T),tR()},tf.current));return()=>clearTimeout(t)}},[A,N,T,tb,tz,tR]),e.default.useEffect(()=>{T.delete&&(tR(),null==T.onDismiss||T.onDismiss.call(T,T))},[tR,T.delete]);let tI=T.icon||(null==F?void 0:F[tb])||(t=>{switch(t){case"success":return n;case"info":return i;case"warning":return s;case"error":return l;default:return null}})(tb);return e.default.createElement("li",{tabIndex:0,ref:tp,className:h($,tv,null==X?void 0:X.toast,null==T||null==(a=T.classNames)?void 0:a.toast,null==X?void 0:X.default,null==X?void 0:X[tb],null==T||null==(o=T.classNames)?void 0:o[tb]),"data-sonner-toast":"","data-rich-colors":null!=(v=T.richColors)?v:R,"data-styled":!(T.jsx||T.unstyled||S),"data-mounted":Q,"data-promise":!!T.promise,"data-swiped":ts,"data-removed":tt,"data-visible":tg,"data-y-position":tM,"data-x-position":tB,"data-index":j,"data-front":th,"data-swiping":ta,"data-dismissible":ty,"data-type":tb,"data-invert":tA,"data-swipe-out":tr,"data-swipe-direction":J,"data-expanded":!!(A||K&&Q),"data-testid":T.testId,style:{"--index":j,"--toasts-before":j,"--z-index":z.length-j,"--offset":`${tt?tl:tS.current}px`,"--initial-height":K?"auto":`${tc}px`,...P,...T.style},onDragEnd:()=>{to(!1),q(null),tC.current=null},onPointerDown:t=>{2===t.button||tL||!ty||(tm.current=new Date,td(tS.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(to(!0),tC.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,o,r;if(tr||!ty)return;tC.current=null;let n=Number((null==(t=tp.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),s=Number((null==(e=tp.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=tm.current)?void 0:a.getTime()),l="x"===_?n:s,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){td(tS.current),null==T.onDismiss||T.onDismiss.call(T,T),"x"===_?G(n>0?"right":"left"):G(s>0?"down":"up"),tR(),tn(!0);return}null==(o=tp.current)||o.style.setProperty("--swipe-amount-x","0px"),null==(r=tp.current)||r.style.setProperty("--swipe-amount-y","0px"),ti(!1),to(!1),q(null)},onPointerMove:e=>{var a,o,r,n;if(!tC.current||!ty||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tC.current.y,i=e.clientX-tC.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),o=[];return e&&o.push(e),a&&o.push(a),o}(O);!_&&(Math.abs(i)>1||Math.abs(s)>1)&&q(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0},c=t=>1/(1.5+Math.abs(t)/20);if("y"===_){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&s<0||l.includes("bottom")&&s>0)d.y=s;else{let t=s*c(s);d.y=Math.abs(t)<Math.abs(s)?t:s}}else if("x"===_&&(l.includes("left")||l.includes("right")))if(l.includes("left")&&i<0||l.includes("right")&&i>0)d.x=i;else{let t=i*c(i);d.x=Math.abs(t)<Math.abs(i)?t:i}(Math.abs(d.x)>0||Math.abs(d.y)>0)&&ti(!0),null==(o=tp.current)||o.style.setProperty("--swipe-amount-x",`${d.x}px`),null==(r=tp.current)||r.style.setProperty("--swipe-amount-y",`${d.y}px`)}},tE&&!T.jsx&&"loading"!==tb?e.default.createElement("button",{"aria-label":W,"data-disabled":tL,"data-close-button":!0,onClick:tL||!ty?()=>{}:()=>{tR(),null==T.onDismiss||T.onDismiss.call(T,T)},className:h(null==X?void 0:X.closeButton,null==T||null==(c=T.classNames)?void 0:c.closeButton)},null!=(w=null==F?void 0:F.close)?w:d):null,(tb||T.icon||T.promise)&&null!==T.icon&&((null==F?void 0:F[tb])!==null||T.icon)?e.default.createElement("div",{"data-icon":"",className:h(null==X?void 0:X.icon,null==T||null==(u=T.classNames)?void 0:u.icon)},T.promise||"loading"===T.type&&!T.icon?T.icon||((null==F?void 0:F.loading)?e.default.createElement("div",{className:h(null==X?void 0:X.loader,null==T||null==(E=T.classNames)?void 0:E.loader,"sonner-loader"),"data-visible":"loading"===tb},F.loading):e.default.createElement(r,{className:h(null==X?void 0:X.loader,null==T||null==(x=T.classNames)?void 0:x.loader),visible:"loading"===tb})):null,"loading"!==T.type?tI:null):null,e.default.createElement("div",{"data-content":"",className:h(null==X?void 0:X.content,null==T||null==(f=T.classNames)?void 0:f.content)},e.default.createElement("div",{"data-title":"",className:h(null==X?void 0:X.title,null==T||null==(m=T.classNames)?void 0:m.title)},T.jsx?T.jsx:"function"==typeof T.title?T.title():T.title),T.description?e.default.createElement("div",{"data-description":"",className:h(H,tw,null==X?void 0:X.description,null==T||null==(g=T.classNames)?void 0:g.description)},"function"==typeof T.description?T.description():T.description):null),e.default.isValidElement(T.cancel)?T.cancel:T.cancel&&p(T.cancel)?e.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:T.cancelButtonStyle||Y,onClick:t=>{!p(T.cancel)||ty&&(null==T.cancel.onClick||T.cancel.onClick.call(T.cancel,t),tR())},className:h(null==X?void 0:X.cancelButton,null==T||null==(b=T.classNames)?void 0:b.cancelButton)},T.cancel.label):null,e.default.isValidElement(T.action)?T.action:T.action&&p(T.action)?e.default.createElement("button",{"data-button":!0,"data-action":!0,style:T.actionButtonStyle||D,onClick:t=>{!p(T.action)||(null==T.action.onClick||T.action.onClick.call(T.action,t),t.defaultPrevented||tR())},className:h(null==X?void 0:X.actionButton,null==T||null==(y=T.classNames)?void 0:y.actionButton)},T.action.label):null)};function b(){if("undefined"==typeof window||"undefined"==typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let y=e.default.forwardRef(function(t,o){let{id:r,invert:n,position:s="bottom-right",hotkey:i=["altKey","KeyT"],expand:l,closeButton:d,className:c,offset:f,mobileOffset:m,theme:p="light",richColors:h,duration:y,style:v,visibleToasts:w=3,toastOptions:x,dir:E=b(),gap:k=14,icons:T,containerAriaLabel:S="Notifications"}=t,[N,C]=e.default.useState([]),M=e.default.useMemo(()=>r?N.filter(t=>t.toasterId===r):N.filter(t=>!t.toasterId),[N,r]),B=e.default.useMemo(()=>Array.from(new Set([s].concat(M.filter(t=>t.position).map(t=>t.position)))),[M,s]),[j,z]=e.default.useState([]),[A,L]=e.default.useState(!1),[R,I]=e.default.useState(!1),[P,Y]=e.default.useState("system"!==p?p:"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),D=e.default.useRef(null),$=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),H=e.default.useRef(null),V=e.default.useRef(!1),O=e.default.useCallback(t=>{C(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||u.dismiss(t.id),e.filter(({id:e})=>e!==t.id)})},[]);return e.default.useEffect(()=>u.subscribe(t=>{t.dismiss?requestAnimationFrame(()=>{C(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))}):setTimeout(()=>{a.default.flushSync(()=>{C(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[N]),e.default.useEffect(()=>{if("system"!==p)return void Y(p);if("system"===p&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Y("dark"):Y("light")),"undefined"==typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",({matches:t})=>{t?Y("dark"):Y("light")})}catch(e){t.addListener(({matches:t})=>{try{t?Y("dark"):Y("light")}catch(t){console.error(t)}})}},[p]),e.default.useEffect(()=>{N.length<=1&&L(!1)},[N]),e.default.useEffect(()=>{let t=t=>{var e,a;i.every(e=>t[e]||t.code===e)&&(L(!0),null==(a=D.current)||a.focus()),"Escape"===t.code&&(document.activeElement===D.current||(null==(e=D.current)?void 0:e.contains(document.activeElement)))&&L(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i]),e.default.useEffect(()=>{if(D.current)return()=>{H.current&&(H.current.focus({preventScroll:!0}),H.current=null,V.current=!1)}},[D.current]),e.default.createElement("section",{ref:o,"aria-label":`${S} ${$}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},B.map((a,o)=>{var r;let s,[i,u]=a.split("-");return M.length?e.default.createElement("ol",{key:a,dir:"auto"===E?b():E,tabIndex:-1,ref:D,className:c,"data-sonner-toaster":!0,"data-sonner-theme":P,"data-y-position":i,"data-x-position":u,style:{"--front-toast-height":`${(null==(r=j[0])?void 0:r.height)||0}px`,"--width":"356px","--gap":`${k}px`,...v,...(s={},[f,m].forEach((t,e)=>{let a=1===e,o=a?"--mobile-offset":"--offset",r=a?"16px":"24px";function n(t){["top","right","bottom","left"].forEach(e=>{s[`${o}-${e}`]="number"==typeof t?`${t}px`:t})}"number"==typeof t||"string"==typeof t?n(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?s[`${o}-${e}`]=r:s[`${o}-${e}`]="number"==typeof t[e]?`${t[e]}px`:t[e]}):n(r)}),s)},onBlur:t=>{V.current&&!t.currentTarget.contains(t.relatedTarget)&&(V.current=!1,H.current&&(H.current.focus({preventScroll:!0}),H.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(V.current||(V.current=!0,H.current=t.relatedTarget))},onMouseEnter:()=>L(!0),onMouseMove:()=>L(!0),onMouseLeave:()=>{R||L(!1)},onDragEnd:()=>L(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||I(!0)},onPointerUp:()=>I(!1)},M.filter(t=>!t.position&&0===o||t.position===a).map((o,r)=>{var s,i;return e.default.createElement(g,{key:o.id,icons:T,index:r,toast:o,defaultRichColors:h,duration:null!=(s=null==x?void 0:x.duration)?s:y,className:null==x?void 0:x.className,descriptionClassName:null==x?void 0:x.descriptionClassName,invert:n,visibleToasts:w,closeButton:null!=(i=null==x?void 0:x.closeButton)?i:d,interacting:R,position:a,style:null==x?void 0:x.style,unstyled:null==x?void 0:x.unstyled,classNames:null==x?void 0:x.classNames,cancelButtonStyle:null==x?void 0:x.cancelButtonStyle,actionButtonStyle:null==x?void 0:x.actionButtonStyle,closeButtonAriaLabel:null==x?void 0:x.closeButtonAriaLabel,removeToast:O,toasts:M.filter(t=>t.position==o.position),heights:j.filter(t=>t.position==o.position),setHeights:z,expandByDefault:l,gap:k,expanded:A,swipeDirections:t.swipeDirections})})):null}))});t.s(["Toaster",()=>y,"toast",()=>m])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,497332,e=>{"use strict";let t=(0,e.i(122436).default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);e.s(["Home",()=>t],497332)},963781,e=>{"use strict";let t=(0,e.i(122436).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],963781)},341965,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(291967),o=e.i(430406),a=e.i(79014),l=e.i(255235),i=e.i(254440),s=e.i(31007),u=e.i(315599),c=e.i(306839),d=e.i(214260),f=e.i(111052),p=e.i(122925),m=e.i(665489),h=e.i(393136),g=e.i(73772),v=e.i(97496),y="Popover",[b,x]=(0,a.createContextScope)(y,[c.createPopperScope]),w=(0,c.createPopperScope)(),[C,k]=b(y),E=e=>{let{__scopePopover:n,children:o,open:a,defaultOpen:l,onOpenChange:i,modal:s=!1}=e,d=w(n),f=r.useRef(null),[p,m]=r.useState(!1),[g,v]=(0,h.useControllableState)({prop:a,defaultProp:l??!1,onChange:i,caller:y});return(0,t.jsx)(c.Root,{...d,children:(0,t.jsx)(C,{scope:n,contentId:(0,u.useId)(),triggerRef:f,open:g,onOpenChange:v,onOpenToggle:r.useCallback(()=>v(e=>!e),[v]),hasCustomAnchor:p,onCustomAnchorAdd:r.useCallback(()=>m(!0),[]),onCustomAnchorRemove:r.useCallback(()=>m(!1),[]),modal:s,children:o})})};E.displayName=y;var j="PopoverAnchor";r.forwardRef((e,n)=>{let{__scopePopover:o,...a}=e,l=k(j,o),i=w(o),{onCustomAnchorAdd:s,onCustomAnchorRemove:u}=l;return r.useEffect(()=>(s(),()=>u()),[s,u]),(0,t.jsx)(c.Anchor,{...i,...a,ref:n})}).displayName=j;var P="PopoverTrigger",R=r.forwardRef((e,r)=>{let{__scopePopover:a,...l}=e,i=k(P,a),s=w(a),u=(0,o.useComposedRefs)(r,i.triggerRef),d=(0,t.jsx)(p.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":D(i.open),...l,ref:u,onClick:(0,n.composeEventHandlers)(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?d:(0,t.jsx)(c.Anchor,{asChild:!0,...s,children:d})});R.displayName=P;var S="PopoverPortal",[N,_]=b(S,{forceMount:void 0}),A=e=>{let{__scopePopover:r,forceMount:n,children:o,container:a}=e,l=k(S,r);return(0,t.jsx)(N,{scope:r,forceMount:n,children:(0,t.jsx)(f.Presence,{present:n||l.open,children:(0,t.jsx)(d.Portal,{asChild:!0,container:a,children:o})})})};A.displayName=S;var O="PopoverContent",T=r.forwardRef((e,r)=>{let n=_(O,e.__scopePopover),{forceMount:o=n.forceMount,...a}=e,l=k(O,e.__scopePopover);return(0,t.jsx)(f.Presence,{present:o||l.open,children:l.modal?(0,t.jsx)(M,{...a,ref:r}):(0,t.jsx)(L,{...a,ref:r})})});T.displayName=O;var I=(0,m.createSlot)("PopoverContent.RemoveScroll"),M=r.forwardRef((e,a)=>{let l=k(O,e.__scopePopover),i=r.useRef(null),s=(0,o.useComposedRefs)(a,i),u=r.useRef(!1);return r.useEffect(()=>{let e=i.current;if(e)return(0,g.hideOthers)(e)},[]),(0,t.jsx)(v.RemoveScroll,{as:I,allowPinchZoom:!0,children:(0,t.jsx)($,{...e,ref:s,trapFocus:l.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),u.current||l.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;u.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,n.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=r.forwardRef((e,n)=>{let o=k(O,e.__scopePopover),a=r.useRef(!1),l=r.useRef(!1);return(0,t.jsx)($,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(a.current||o.triggerRef.current?.focus(),t.preventDefault()),a.current=!1,l.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(l.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&l.current&&t.preventDefault()}})}),$=r.forwardRef((e,r)=>{let{__scopePopover:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:u,disableOutsidePointerEvents:d,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:m,onInteractOutside:h,...g}=e,v=k(O,n),y=w(n);return(0,i.useFocusGuards)(),(0,t.jsx)(s.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:u,children:(0,t.jsx)(l.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:d,onInteractOutside:h,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:m,onDismiss:()=>v.onOpenChange(!1),children:(0,t.jsx)(c.Content,{"data-state":D(v.open),role:"dialog",id:v.contentId,...y,...g,ref:r,style:{...g.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),F="PopoverClose";function D(e){return e?"open":"closed"}r.forwardRef((e,r)=>{let{__scopePopover:o,...a}=e,l=k(F,o);return(0,t.jsx)(p.Primitive.button,{type:"button",...a,ref:r,onClick:(0,n.composeEventHandlers)(e.onClick,()=>l.onOpenChange(!1))})}).displayName=F,r.forwardRef((e,r)=>{let{__scopePopover:n,...o}=e,a=w(n);return(0,t.jsx)(c.Arrow,{...a,...o,ref:r})}).displayName="PopoverArrow";var z=e.i(632137);let U=r.forwardRef(({className:e,align:r="center",sideOffset:n=4,...o},a)=>(0,t.jsx)(A,{children:(0,t.jsx)(T,{ref:a,align:r,sideOffset:n,className:(0,z.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...o})}));U.displayName=T.displayName,e.s(["Popover",()=>E,"PopoverContent",()=>U,"PopoverTrigger",()=>R],341965)},308402,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(291967),o=e.i(430406),a=e.i(79014),l=e.i(255235),i=e.i(315599),s=e.i(306839),u=e.i(214260),c=e.i(111052),d=e.i(122925),f=e.i(665489),p=e.i(393136),m=e.i(826985),[h,g]=(0,a.createContextScope)("Tooltip",[s.createPopperScope]),v=(0,s.createPopperScope)(),y="TooltipProvider",b="tooltip.open",[x,w]=h(y),C=e=>{let{__scopeTooltip:n,delayDuration:o=700,skipDelayDuration:a=300,disableHoverableContent:l=!1,children:i}=e,s=r.useRef(!0),u=r.useRef(!1),c=r.useRef(0);return r.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,t.jsx)(x,{scope:n,isOpenDelayedRef:s,delayDuration:o,onOpen:r.useCallback(()=>{window.clearTimeout(c.current),s.current=!1},[]),onClose:r.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>s.current=!0,a)},[a]),isPointerInTransitRef:u,onPointerInTransitChange:r.useCallback(e=>{u.current=e},[]),disableHoverableContent:l,children:i})};C.displayName=y;var k="Tooltip",[E,j]=h(k),P=e=>{let{__scopeTooltip:n,children:o,open:a,defaultOpen:l,onOpenChange:u,disableHoverableContent:c,delayDuration:d}=e,f=w(k,e.__scopeTooltip),m=v(n),[h,g]=r.useState(null),y=(0,i.useId)(),x=r.useRef(0),C=c??f.disableHoverableContent,j=d??f.delayDuration,P=r.useRef(!1),[R,S]=(0,p.useControllableState)({prop:a,defaultProp:l??!1,onChange:e=>{e?(f.onOpen(),document.dispatchEvent(new CustomEvent(b))):f.onClose(),u?.(e)},caller:k}),N=r.useMemo(()=>R?P.current?"delayed-open":"instant-open":"closed",[R]),_=r.useCallback(()=>{window.clearTimeout(x.current),x.current=0,P.current=!1,S(!0)},[S]),A=r.useCallback(()=>{window.clearTimeout(x.current),x.current=0,S(!1)},[S]),O=r.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{P.current=!0,S(!0),x.current=0},j)},[j,S]);return r.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),(0,t.jsx)(s.Root,{...m,children:(0,t.jsx)(E,{scope:n,contentId:y,open:R,stateAttribute:N,trigger:h,onTriggerChange:g,onTriggerEnter:r.useCallback(()=>{f.isOpenDelayedRef.current?O():_()},[f.isOpenDelayedRef,O,_]),onTriggerLeave:r.useCallback(()=>{C?A():(window.clearTimeout(x.current),x.current=0)},[A,C]),onOpen:_,onClose:A,disableHoverableContent:C,children:o})})};P.displayName=k;var R="TooltipTrigger",S=r.forwardRef((e,a)=>{let{__scopeTooltip:l,...i}=e,u=j(R,l),c=w(R,l),f=v(l),p=r.useRef(null),m=(0,o.useComposedRefs)(a,p,u.onTriggerChange),h=r.useRef(!1),g=r.useRef(!1),y=r.useCallback(()=>h.current=!1,[]);return r.useEffect(()=>()=>document.removeEventListener("pointerup",y),[y]),(0,t.jsx)(s.Anchor,{asChild:!0,...f,children:(0,t.jsx)(d.Primitive.button,{"aria-describedby":u.open?u.contentId:void 0,"data-state":u.stateAttribute,...i,ref:m,onPointerMove:(0,n.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(g.current||c.isPointerInTransitRef.current||(u.onTriggerEnter(),g.current=!0))}),onPointerLeave:(0,n.composeEventHandlers)(e.onPointerLeave,()=>{u.onTriggerLeave(),g.current=!1}),onPointerDown:(0,n.composeEventHandlers)(e.onPointerDown,()=>{u.open&&u.onClose(),h.current=!0,document.addEventListener("pointerup",y,{once:!0})}),onFocus:(0,n.composeEventHandlers)(e.onFocus,()=>{h.current||u.onOpen()}),onBlur:(0,n.composeEventHandlers)(e.onBlur,u.onClose),onClick:(0,n.composeEventHandlers)(e.onClick,u.onClose)})})});S.displayName=R;var N="TooltipPortal",[_,A]=h(N,{forceMount:void 0}),O=e=>{let{__scopeTooltip:r,forceMount:n,children:o,container:a}=e,l=j(N,r);return(0,t.jsx)(_,{scope:r,forceMount:n,children:(0,t.jsx)(c.Presence,{present:n||l.open,children:(0,t.jsx)(u.Portal,{asChild:!0,container:a,children:o})})})};O.displayName=N;var T="TooltipContent",I=r.forwardRef((e,r)=>{let n=A(T,e.__scopeTooltip),{forceMount:o=n.forceMount,side:a="top",...l}=e,i=j(T,e.__scopeTooltip);return(0,t.jsx)(c.Presence,{present:o||i.open,children:i.disableHoverableContent?(0,t.jsx)(D,{side:a,...l,ref:r}):(0,t.jsx)(M,{side:a,...l,ref:r})})}),M=r.forwardRef((e,n)=>{let a=j(T,e.__scopeTooltip),l=w(T,e.__scopeTooltip),i=r.useRef(null),s=(0,o.useComposedRefs)(n,i),[u,c]=r.useState(null),{trigger:d,onClose:f}=a,p=i.current,{onPointerInTransitChange:m}=l,h=r.useCallback(()=>{c(null),m(!1)},[m]),g=r.useCallback((e,t)=>{let r,n=e.currentTarget,o={x:e.clientX,y:e.clientY},a=function(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(r,n,o,a)){case a:return"left";case o:return"right";case r:return"top";case n:return"bottom";default:throw Error("unreachable")}}(o,n.getBoundingClientRect());c(((r=[...function(e,t,r=5){let n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return n}(o,a),...function(e){let{top:t,right:r,bottom:n,left:o}=e;return[{x:o,y:t},{x:r,y:t},{x:r,y:n},{x:o,y:n}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r<e.length;r++){let n=e[r];for(;t.length>=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(n.y-r.y)>=(e.y-r.y)*(n.x-r.x))t.pop();else break}t.push(n)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let n=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(n.y-t.y)>=(e.y-t.y)*(n.x-t.x))r.pop();else break}r.push(n)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(r))),m(!0)},[m]);return r.useEffect(()=>()=>h(),[h]),r.useEffect(()=>{if(d&&p){let e=e=>g(e,p),t=e=>g(e,d);return d.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{d.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[d,p,g,h]),r.useEffect(()=>{if(u){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},n=d?.contains(t)||p?.contains(t),o=!function(e,t){let{x:r,y:n}=e,o=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let l=t[e],i=t[a],s=l.x,u=l.y,c=i.x,d=i.y;u>n!=d>n&&r<(c-s)*(n-u)/(d-u)+s&&(o=!o)}return o}(r,u);n?h():o&&(h(),f())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[d,p,u,f,h]),(0,t.jsx)(D,{...e,ref:s})}),[L,$]=h(k,{isInside:!1}),F=(0,f.createSlottable)("TooltipContent"),D=r.forwardRef((e,n)=>{let{__scopeTooltip:o,children:a,"aria-label":i,onEscapeKeyDown:u,onPointerDownOutside:c,...d}=e,f=j(T,o),p=v(o),{onClose:h}=f;return r.useEffect(()=>(document.addEventListener(b,h),()=>document.removeEventListener(b,h)),[h]),r.useEffect(()=>{if(f.trigger){let e=e=>{let t=e.target;t?.contains(f.trigger)&&h()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[f.trigger,h]),(0,t.jsx)(l.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:u,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:h,children:(0,t.jsxs)(s.Content,{"data-state":f.stateAttribute,...p,...d,ref:n,style:{...d.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,t.jsx)(F,{children:a}),(0,t.jsx)(L,{scope:o,isInside:!0,children:(0,t.jsx)(m.Root,{id:f.contentId,role:"tooltip",children:i||a})})]})})});I.displayName=T;var z="TooltipArrow";r.forwardRef((e,r)=>{let{__scopeTooltip:n,...o}=e,a=v(n);return $(z,n).isInside?null:(0,t.jsx)(s.Arrow,{...a,...o,ref:r})}).displayName=z;var U=e.i(632137);let B=r.forwardRef(({className:e,sideOffset:r=4,...n},o)=>(0,t.jsx)(O,{children:(0,t.jsx)(I,{ref:o,sideOffset:r,className:(0,U.cn)("z-[100] overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));B.displayName=I.displayName,e.s(["Tooltip",()=>P,"TooltipContent",()=>B,"TooltipProvider",()=>C,"TooltipTrigger",()=>S],308402)},158362,e=>{"use strict";let t=(0,e.i(122436).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>t],158362)},122436,e=>{"use strict";var t=e.i(431231);let r=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},n=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var o={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:r=24,strokeWidth:a=2,absoluteStrokeWidth:l,className:i="",children:s,iconNode:u,...c},d)=>(0,t.createElement)("svg",{ref:d,...o,width:r,height:r,stroke:e,strokeWidth:l?24*Number(a)/Number(r):a,className:n("lucide",i),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(c)&&{"aria-hidden":"true"},...c},[...u.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(s)?s:[s]])),l=(e,o)=>{let l=(0,t.forwardRef)(({className:l,...i},s)=>(0,t.createElement)(a,{ref:s,iconNode:o,className:n(`lucide-${r(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,l),...i}));return l.displayName=r(e),l};e.s(["default",()=>l],122436)},40843,e=>{"use strict";let t=(0,e.i(122436).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock",()=>t],40843)},20315,e=>{"use strict";let t=(0,e.i(122436).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],20315)},196812,e=>{"use strict";let t=(0,e.i(122436).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],196812)},75364,e=>{"use strict";let t=(0,e.i(122436).default)("circle-play",[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["PlayCircle",()=>t],75364)},168497,490225,755541,374231,597705,e=>{"use strict";var t=e.i(890022),r=e.i(40843),n=e.i(75364),o=e.i(196812),a=e.i(122436);let l=(0,a.default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);e.s(["Archive",()=>l],490225);var i=e.i(323490),s=e.i(632137);let u={planned:{icon:r.Clock,label:"Planned",className:"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"},"in-progress":{icon:n.PlayCircle,label:"In Progress",className:"bg-orange-100 text-orange-800 dark:bg-orange-900/30 dark:text-orange-400"},complete:{icon:o.CheckCircle2,label:"Complete",className:"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400"},archived:{icon:l,label:"Archived",className:"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-400"}};function c({status:e,className:r,iconOnly:n=!1}){let o=u[e]||u.planned,a=o.icon;return(0,t.jsxs)(i.Badge,{className:(0,s.cn)("flex items-center w-fit",!n&&"gap-1.5",o.className,r),children:[(0,t.jsx)(a,{className:"h-3.5 w-3.5"}),!n&&o.label]})}function d(e){return(u[e]||u.planned).label}e.s(["StatusBadge",()=>c,"getStatusLabel",()=>d],168497);var f=e.i(94176),p=e.i(606751);let m=(0,a.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["Minus",()=>m],755541);let h=(0,a.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",()=>h],374231);let g={critical:{icon:f.AlertCircle,label:"Critical",className:"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400"},high:{icon:p.ArrowUp,label:"High",className:"bg-orange-100 text-orange-800 dark:bg-orange-900/30 dark:text-orange-400"},medium:{icon:m,label:"Medium",className:"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"},low:{icon:h,label:"Low",className:"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-400"}};function v({priority:e,className:r,iconOnly:n=!1}){let o=g[e]||g.medium,a=o.icon;return(0,t.jsxs)(i.Badge,{className:(0,s.cn)("flex items-center w-fit",!n&&"gap-1.5",o.className,r),children:[(0,t.jsx)(a,{className:"h-3.5 w-3.5"}),!n&&o.label]})}function y(e){return(g[e]||g.medium).label}e.s(["PriorityBadge",()=>v,"getPriorityLabel",()=>y],597705)},614433,430406,e=>{"use strict";var t=e.i(431231);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function n(...e){return t=>{let n=!1,o=e.map(e=>{let o=r(e,t);return n||"function"!=typeof o||(n=!0),o});if(n)return()=>{for(let t=0;t<o.length;t++){let n=o[t];"function"==typeof n?n():r(e[t],null)}}}}function o(...e){return t.useCallback(n(...e),e)}e.s(["composeRefs",()=>n,"useComposedRefs",()=>o],430406);var a=e.i(890022),l=Symbol.for("react.lazy"),i=t[" use ".trim().toString()];function s(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===l&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}function u(e){var r;let o,l=(r=e,(o=t.forwardRef((e,r)=>{let{children:o,...a}=e;if(s(o)&&"function"==typeof i&&(o=i(o._payload)),t.isValidElement(o)){var l;let e,i,s=(l=o,(i=(e=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.ref:(i=(e=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.props.ref:l.props.ref||l.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],a=t[n];/^on[A-Z]/.test(n)?o&&a?r[n]=(...e)=>{let t=a(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...a}:"className"===n&&(r[n]=[o,a].filter(Boolean).join(" "))}return{...e,...r}}(a,o.props);return o.type!==t.Fragment&&(u.ref=r?n(r,s):s),t.cloneElement(o,u)}return t.Children.count(o)>1?t.Children.only(null):null})).displayName=`${r}.SlotClone`,o),u=t.forwardRef((e,r)=>{let{children:n,...o}=e;s(n)&&"function"==typeof i&&(n=i(n._payload));let u=t.Children.toArray(n),c=u.find(f);if(c){let e=c.props.children,n=u.map(r=>r!==c?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,a.jsx)(l,{...o,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,n):null})}return(0,a.jsx)(l,{...o,ref:r,children:n})});return u.displayName=`${e}.Slot`,u}var c=u("Slot"),d=Symbol("radix.slottable");function f(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===d}e.s(["Slot",()=>c,"createSlot",()=>u],614433)},294237,e=>{"use strict";var t=e.i(7284);let r=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,n=t.clsx;e.s(["cva",0,(e,t)=>o=>{var a;if((null==t?void 0:t.variants)==null)return n(e,null==o?void 0:o.class,null==o?void 0:o.className);let{variants:l,defaultVariants:i}=t,s=Object.keys(l).map(e=>{let t=null==o?void 0:o[e],n=null==i?void 0:i[e];if(null===t)return null;let a=r(t)||r(n);return l[e][a]}),u=o&&Object.entries(o).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return n(e,s,null==t||null==(a=t.compoundVariants)?void 0:a.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...i,...u}[t]):({...i,...u})[t]===r})?[...e,r,n]:e},[]),null==o?void 0:o.class,null==o?void 0:o.className)}])},235893,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(614433),o=e.i(294237),a=e.i(632137);let l=(0,o.cva)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),i=r.forwardRef(({className:e,variant:r,size:o,asChild:i=!1,...s},u)=>{let c=i?n.Slot:"button";return(0,t.jsx)(c,{className:(0,a.cn)(l({variant:r,size:o,className:e})),ref:u,...s})});i.displayName="Button",e.s(["Button",()=>i])},323490,e=>{"use strict";var t=e.i(890022),r=e.i(294237),n=e.i(632137);let o=(0,r.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function a({className:e,variant:r,...a}){return(0,t.jsx)("div",{className:(0,n.cn)(o({variant:r}),e),...a})}e.s(["Badge",()=>a])},94176,e=>{"use strict";let t=(0,e.i(122436).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],94176)},606751,e=>{"use strict";let t=(0,e.i(122436).default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);e.s(["ArrowUp",()=>t],606751)},56863,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},965683,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function l(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,l(e));else t.set(r,l(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},700678,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(744066)._(e.r(965683)),l=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",i=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${o}${c}${i}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},266500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(431231);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(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)},789370,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return v},MiddlewareNotFoundError:function(){return w},MissingStaticPage:function(){return x},NormalizeError:function(){return y},PageNotFoundError:function(){return b},SP:function(){return h},ST:function(){return g},WEB_VITALS:function(){return a},execOnce:function(){return l},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return C}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>i.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function m(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let h="undefined"!=typeof performance,g=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class v extends Error{}class y extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class w extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function C(e){return JSON.stringify({message:e.message,stack:e.stack})}},608672,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(789370),o=e.r(772125);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},937465,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},987985,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return v},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(744066),l=e.r(890022),i=a._(e.r(431231)),s=e.r(700678),u=e.r(415698),c=e.r(266500),d=e.r(789370),f=e.r(912992);e.r(56863);let p=e.r(617945),m=e.r(608672),h=e.r(754772);function g(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function v(t){var r;let n,o,a,[s,v]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),b=(0,i.useRef)(null),{href:x,as:w,children:C,prefetch:k=null,passHref:E,replace:j,shallow:P,scroll:R,onClick:S,onMouseEnter:N,onTouchStart:_,legacyBehavior:A=!1,onNavigate:O,ref:T,unstable_dynamicOnHover:I,...M}=t;n=C,A&&("string"==typeof n||"number"==typeof n)&&(n=(0,l.jsx)("a",{children:n}));let L=i.default.useContext(u.AppRouterContext),$=!1!==k,F=!1!==k?null===(r=k)||"auto"===r?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:D,as:z}=i.default.useMemo(()=>{let e=g(x);return{href:e,as:w?g(w):e}},[x,w]);if(A){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(n)}let U=A?o&&"object"==typeof o&&o.ref:T,B=i.default.useCallback(e=>(null!==L&&(b.current=(0,p.mountLinkInstance)(e,D,L,F,$,v)),()=>{b.current&&((0,p.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,p.unmountPrefetchableInstance)(e)}),[$,D,L,F,v]),H={ref:(0,c.useMergedRef)(B,U),onClick(t){A||"function"!=typeof S||S(t),A&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!L||t.defaultPrevented||function(t,r,n,o,a,l,s){if("undefined"!=typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(986026);i.default.startTransition(()=>{d(n||r,a?"replace":"push",l??!0,o.current)})}}(t,D,z,b,j,R,O)},onMouseEnter(e){A||"function"!=typeof N||N(e),A&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),L&&$&&(0,p.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){A||"function"!=typeof _||_(e),A&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),L&&$&&(0,p.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,d.isAbsoluteUrl)(z)?H.href=z:A&&!E&&("a"!==o.type||"href"in o.props)||(H.href=(0,f.addBasePath)(z)),a=A?i.default.cloneElement(o,H):(0,l.jsx)("a",{...M,...H,children:n}),(0,l.jsx)(y.Provider,{value:s,children:a})}e.r(937465);let y=(0,i.createContext)(p.IDLE_LINK_STATUS),b=()=>(0,i.useContext)(y);("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)},20648,e=>{"use strict";var t=e.i(890022),r=e.i(431231);let n=(0,r.createContext)(null);function o(){let e=(0,r.useContext)(n);if(!e)throw Error("useProject must be used within ProjectProvider");return e}function a({children:e,initialProjectId:o}){let[a,l]=(0,r.useState)("single-project"),[i,s]=(0,r.useState)(null),[u,c]=(0,r.useState)([]),[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)([]),[h,g]=(0,r.useState)(!0),[v,y]=(0,r.useState)(null),b=(0,r.useCallback)(async()=>{try{g(!0),y(null);let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();if(l(t.mode||"single-project"),c(t.projects||[]),f(t.recentProjects||[]),m(t.favoriteProjects||[]),!i&&t.projects.length>0){let e=o?t.projects.find(e=>e.id===o):t.recentProjects?.[0]||t.projects[0];e&&s(e)}}catch(e){console.error("Error fetching projects:",e),y(e instanceof Error?e.message:"Failed to load projects")}finally{g(!1)}},[i,o]),x=(0,r.useCallback)(async e=>{try{let t=await fetch(`/api/projects/${e}`);if(!t.ok)throw Error("Failed to fetch project");let r=await t.json();s(r.project),await b()}catch(e){throw console.error("Error switching project:",e),y(e instanceof Error?e.message:"Failed to switch project"),e}},[b]),w=(0,r.useCallback)(async(e,t)=>{try{let r=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,...t})});if(!r.ok){let e=await r.json();throw Error(e.details||"Failed to add project")}let n=await r.json();return await b(),n.project}catch(e){throw console.error("Error adding project:",e),y(e instanceof Error?e.message:"Failed to add project"),e}},[b]),C=(0,r.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)throw Error("Failed to remove project");if(i?.id===e){let t=u.find(t=>t.id!==e);s(t||null)}await b()}catch(e){throw console.error("Error removing project:",e),y(e instanceof Error?e.message:"Failed to remove project"),e}},[i,u,b]),k=(0,r.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({favorite:!0})})).ok)throw Error("Failed to toggle favorite");await b()}catch(e){throw console.error("Error toggling favorite:",e),y(e instanceof Error?e.message:"Failed to toggle favorite"),e}},[b]),E=(0,r.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).ok)throw Error("Failed to update project");await b()}catch(e){throw console.error("Error updating project:",e),y(e instanceof Error?e.message:"Failed to update project"),e}},[b]);return(0,r.useEffect)(()=>{b()},[b]),(0,t.jsx)(n.Provider,{value:{mode:a,currentProject:i,projects:u,recentProjects:d,favoriteProjects:p,isLoading:h,error:v,switchProject:x,addProject:w,removeProject:C,toggleFavorite:k,updateProject:E,refreshProjects:b},children:e})}function l(){let{mode:e,currentProject:t}=o(),n=(0,r.useCallback)(r=>{if("multi-project"===e&&t){let e=r.startsWith("/")?r:`/${r}`;return`/projects/${t.id}${e}`}return r.startsWith("/")?r:`/${r}`},[e,t]),a=(0,r.useCallback)((e,t)=>{let r=n(`/specs/${e}`);return t?`${r}?subspec=${t}`:r},[n]);return{getUrl:n,getSpecUrl:a,isMultiProject:"multi-project"===e,projectId:t?.id}}e.s(["ProjectProvider",()=>a,"useProject",()=>o,"useProjectUrl",()=>l])},787949,e=>{"use strict";let t=(0,e.i(122436).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],787949)},694541,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=/[\\\/_+.#"@\[\(\{&]/,o=/[\\\/_+.#"@\[\(\{&]/g,a=/[\s-]/,l=/[\s-]/g;function i(e){return e.toLowerCase().replace(l," ")}var s=e.i(739065);e.i(395635);var u=e.i(614433),c=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{let o=(0,u.createSlot)(`Primitive.${n}`),a=r.forwardRef((e,r)=>{let{asChild:a,...l}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(a?o:n,{...l,ref:r})});return a.displayName=`Primitive.${n}`,{...e,[n]:a}},{}),d=e.i(315599),f=e.i(430406),p='[cmdk-group=""]',m='[cmdk-group-items=""]',h='[cmdk-item=""]',g=`${h}:not([aria-disabled="true"])`,v="cmdk-item-select",y="data-value",b=(e,t,r)=>{var s;return s=e,function e(t,r,i,s,u,c,d){if(c===r.length)return u===t.length?1:.99;var f=`${u},${c}`;if(void 0!==d[f])return d[f];for(var p,m,h,g,v=s.charAt(c),y=i.indexOf(v,u),b=0;y>=0;)(p=e(t,r,i,s,y+1,c+1,d))>b&&(y===u?p*=1:n.test(t.charAt(y-1))?(p*=.8,(h=t.slice(u,y-1).match(o))&&u>0&&(p*=Math.pow(.999,h.length))):a.test(t.charAt(y-1))?(p*=.9,(g=t.slice(u,y-1).match(l))&&u>0&&(p*=Math.pow(.999,g.length))):(p*=.17,u>0&&(p*=Math.pow(.999,y-u))),t.charAt(y)!==r.charAt(c)&&(p*=.9999)),(p<.1&&i.charAt(y-1)===s.charAt(c+1)||s.charAt(c+1)===s.charAt(c)&&i.charAt(y-1)!==s.charAt(c))&&.1*(m=e(t,r,i,s,y+1,c+2,d))>p&&(p=.1*m),p>b&&(b=p),y=i.indexOf(v,y+1);return d[f]=b,b}(s=r&&r.length>0?`${s+" "+r.join(" ")}`:s,t,i(s),i(t),0,0,{})},x=r.createContext(void 0),w=r.createContext(void 0),C=r.createContext(void 0),k=r.forwardRef((e,t)=>{let n=T(()=>{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}}}),o=T(()=>new Set),a=T(()=>new Map),l=T(()=>new Map),i=T(()=>new Set),s=A(e),{label:u,children:f,value:C,onValueChange:k,filter:E,shouldFilter:j,loop:P,disablePointerSelection:R=!1,vimBindings:S=!0,...N}=e,_=(0,d.useId)(),I=(0,d.useId)(),M=(0,d.useId)(),D=r.useRef(null),z=L();O(()=>{if(void 0!==C){let e=C.trim();n.current.value=e,U.emit()}},[C]),O(()=>{z(6,q)},[]);let U=r.useMemo(()=>({subscribe:e=>(i.current.add(e),()=>i.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var o,a,l,i;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)W(),V(),z(1,K);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(M);e?e.focus():null==(o=document.getElementById(_))||o.focus()}if(z(7,()=>{var e;n.current.selectedItemId=null==(e=G())?void 0:e.id,U.emit()}),r||z(5,q),(null==(a=s.current)?void 0:a.value)!==void 0){null==(i=(l=s.current).onValueChange)||i.call(l,null!=t?t:"");return}}U.emit()}},emit:()=>{i.current.forEach(e=>e())}}),[]),B=r.useMemo(()=>({value:(e,t,r)=>{var o;t!==(null==(o=l.current.get(e))?void 0:o.value)&&(l.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,H(t,r)),z(2,()=>{V(),U.emit()}))},item:(e,t)=>(o.current.add(e),t&&(a.current.has(t)?a.current.get(t).add(e):a.current.set(t,new Set([e]))),z(3,()=>{W(),V(),n.current.value||K(),U.emit()}),()=>{l.current.delete(e),o.current.delete(e),n.current.filtered.items.delete(e);let t=G();z(4,()=>{W(),(null==t?void 0:t.getAttribute("id"))===e&&K(),U.emit()})}),group:e=>(a.current.has(e)||a.current.set(e,new Set),()=>{l.current.delete(e),a.current.delete(e)}),filter:()=>s.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:_,inputId:M,labelId:I,listInnerRef:D}),[]);function H(e,t){var r,o;let a=null!=(o=null==(r=s.current)?void 0:r.filter)?o:b;return e?a(e,n.current.search,t):0}function V(){if(!n.current.search||!1===s.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(r=>{let n=a.current.get(r),o=0;n.forEach(t=>{o=Math.max(e.get(t),o)}),t.push([r,o])});let r=D.current;Z().sort((t,r)=>{var n,o;let a=t.getAttribute("id"),l=r.getAttribute("id");return(null!=(n=e.get(l))?n:0)-(null!=(o=e.get(a))?o:0)}).forEach(e=>{let t=e.closest(m);t?t.appendChild(e.parentElement===t?e:e.closest(`${m} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${m} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let r=null==(t=D.current)?void 0:t.querySelector(`${p}[${y}="${encodeURIComponent(e[0])}"]`);null==r||r.parentElement.appendChild(r)})}function K(){let e=Z().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(y);U.setState("value",t||void 0)}function W(){var e,t,r,i;if(!n.current.search||!1===s.current.shouldFilter){n.current.filtered.count=o.current.size;return}n.current.filtered.groups=new Set;let u=0;for(let a of o.current){let o=H(null!=(t=null==(e=l.current.get(a))?void 0:e.value)?t:"",null!=(i=null==(r=l.current.get(a))?void 0:r.keywords)?i:[]);n.current.filtered.items.set(a,o),o>0&&u++}for(let[e,t]of a.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=u}function q(){var e,t,r;let n=G();n&&((null==(e=n.parentElement)?void 0:e.firstChild)===n&&(null==(r=null==(t=n.closest(p))?void 0:t.querySelector('[cmdk-group-heading=""]'))||r.scrollIntoView({block:"nearest"})),n.scrollIntoView({block:"nearest"}))}function G(){var e;return null==(e=D.current)?void 0:e.querySelector(`${h}[aria-selected="true"]`)}function Z(){var e;return Array.from((null==(e=D.current)?void 0:e.querySelectorAll(g))||[])}function J(e){let t=Z()[e];t&&U.setState("value",t.getAttribute(y))}function X(e){var t;let r=G(),n=Z(),o=n.findIndex(e=>e===r),a=n[o+e];null!=(t=s.current)&&t.loop&&(a=o+e<0?n[n.length-1]:o+e===n.length?n[0]:n[o+e]),a&&U.setState("value",a.getAttribute(y))}function Q(e){let t=G(),r=null==t?void 0:t.closest(p),n;for(;r&&!n;)n=null==(r=e>0?function(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}(r,p):function(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}(r,p))?void 0:r.querySelector(g);n?U.setState("value",n.getAttribute(y)):X(e)}let Y=()=>J(Z().length-1),ee=e=>{e.preventDefault(),e.metaKey?Y():e.altKey?Q(1):X(1)},et=e=>{e.preventDefault(),e.metaKey?J(0):e.altKey?Q(-1):X(-1)};return r.createElement(c.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=N.onKeyDown)||t.call(N,e);let r=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||r))switch(e.key){case"n":case"j":S&&e.ctrlKey&&ee(e);break;case"ArrowDown":ee(e);break;case"p":case"k":S&&e.ctrlKey&&et(e);break;case"ArrowUp":et(e);break;case"Home":e.preventDefault(),J(0);break;case"End":e.preventDefault(),Y();break;case"Enter":{e.preventDefault();let t=G();if(t){let e=new Event(v);t.dispatchEvent(e)}}}}},r.createElement("label",{"cmdk-label":"",htmlFor:B.inputId,id:B.labelId,style:F},u),$(e,e=>r.createElement(w.Provider,{value:U},r.createElement(x.Provider,{value:B},e))))}),E=r.forwardRef((e,t)=>{var n,o;let a=(0,d.useId)(),l=r.useRef(null),i=r.useContext(C),s=r.useContext(x),u=A(e),p=null!=(o=null==(n=u.current)?void 0:n.forceMount)?o:null==i?void 0:i.forceMount;O(()=>{if(!p)return s.item(a,null==i?void 0:i.id)},[p]);let m=M(a,l,[e.value,e.children,l],e.keywords),h=r.useContext(w),g=I(e=>e.value&&e.value===m.current),y=I(e=>!!p||!1===s.filter()||!e.search||e.filtered.items.get(a)>0);function b(){var e,t;k(),null==(t=(e=u.current).onSelect)||t.call(e,m.current)}function k(){h.setState("value",m.current,!0)}if(r.useEffect(()=>{let t=l.current;if(!(!t||e.disabled))return t.addEventListener(v,b),()=>t.removeEventListener(v,b)},[y,e.onSelect,e.disabled]),!y)return null;let{disabled:E,value:j,onSelect:P,forceMount:R,keywords:S,...N}=e;return r.createElement(c.div,{ref:(0,f.composeRefs)(l,t),...N,id:a,"cmdk-item":"",role:"option","aria-disabled":!!E,"aria-selected":!!g,"data-disabled":!!E,"data-selected":!!g,onPointerMove:E||s.getDisablePointerSelection()?void 0:k,onClick:E?void 0:b},e.children)}),j=r.forwardRef((e,t)=>{let{heading:n,children:o,forceMount:a,...l}=e,i=(0,d.useId)(),s=r.useRef(null),u=r.useRef(null),p=(0,d.useId)(),m=r.useContext(x),h=I(e=>!!a||!1===m.filter()||!e.search||e.filtered.groups.has(i));O(()=>m.group(i),[]),M(i,s,[e.value,e.heading,u]);let g=r.useMemo(()=>({id:i,forceMount:a}),[a]);return r.createElement(c.div,{ref:(0,f.composeRefs)(s,t),...l,"cmdk-group":"",role:"presentation",hidden:!h||void 0},n&&r.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:p},n),$(e,e=>r.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?p:void 0},r.createElement(C.Provider,{value:g},e))))}),P=r.forwardRef((e,t)=>{let{alwaysRender:n,...o}=e,a=r.useRef(null),l=I(e=>!e.search);return n||l?r.createElement(c.div,{ref:(0,f.composeRefs)(a,t),...o,"cmdk-separator":"",role:"separator"}):null}),R=r.forwardRef((e,t)=>{let{onValueChange:n,...o}=e,a=null!=e.value,l=r.useContext(w),i=I(e=>e.search),s=I(e=>e.selectedItemId),u=r.useContext(x);return r.useEffect(()=>{null!=e.value&&l.setState("search",e.value)},[e.value]),r.createElement(c.input,{ref:t,...o,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":s,id:u.inputId,type:"text",value:a?e.value:i,onChange:e=>{a||l.setState("search",e.target.value),null==n||n(e.target.value)}})}),S=r.forwardRef((e,t)=>{let{children:n,label:o="Suggestions",...a}=e,l=r.useRef(null),i=r.useRef(null),s=I(e=>e.selectedItemId),u=r.useContext(x);return r.useEffect(()=>{if(i.current&&l.current){let e=i.current,t=l.current,r,n=new ResizeObserver(()=>{r=requestAnimationFrame(()=>{let r=e.offsetHeight;t.style.setProperty("--cmdk-list-height",r.toFixed(1)+"px")})});return n.observe(e),()=>{cancelAnimationFrame(r),n.unobserve(e)}}},[]),r.createElement(c.div,{ref:(0,f.composeRefs)(l,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":o,id:u.listId},$(e,e=>r.createElement("div",{ref:(0,f.composeRefs)(i,u.listInnerRef),"cmdk-list-sizer":""},e)))}),N=r.forwardRef((e,t)=>{let{open:n,onOpenChange:o,overlayClassName:a,contentClassName:l,container:i,...u}=e;return r.createElement(s.Root,{open:n,onOpenChange:o},r.createElement(s.Portal,{container:i},r.createElement(s.Overlay,{"cmdk-overlay":"",className:a}),r.createElement(s.Content,{"aria-label":e.label,"cmdk-dialog":"",className:l},r.createElement(k,{ref:t,...u}))))}),_=Object.assign(k,{List:S,Item:E,Input:R,Group:j,Separator:P,Dialog:N,Empty:r.forwardRef((e,t)=>I(e=>0===e.filtered.count)?r.createElement(c.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:r.forwardRef((e,t)=>{let{progress:n,children:o,label:a="Loading...",...l}=e;return r.createElement(c.div,{ref:t,...l,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},$(e,e=>r.createElement("div",{"aria-hidden":!0},e)))})});function A(e){let t=r.useRef(e);return O(()=>{t.current=e}),t}var O="undefined"==typeof window?r.useEffect:r.useLayoutEffect;function T(e){let t=r.useRef();return void 0===t.current&&(t.current=e()),t}function I(e){let t=r.useContext(w),n=()=>e(t.snapshot());return r.useSyncExternalStore(t.subscribe,n,n)}function M(e,t,n,o=[]){let a=r.useRef(),l=r.useContext(x);return O(()=>{var r;let i=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():a.current}})(),s=o.map(e=>e.trim());l.value(e,i,s),null==(r=t.current)||r.setAttribute(y,i),a.current=i}),a}var L=()=>{let[e,t]=r.useState(),n=T(()=>new Map);return O(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function $({asChild:e,children:t},n){let o;return e&&r.isValidElement(t)?r.cloneElement("function"==typeof(o=t.type)?o(t.props):"render"in o?o.render(t.props):t,{ref:t.ref},n(t.props.children)):n(t)}var F={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},D=e.i(300329),z=e.i(632137),U=e.i(439779);let B=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(_,{ref:n,className:(0,z.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...r}));B.displayName=_.displayName;let H=({children:e,...r})=>(0,t.jsx)(U.Dialog,{...r,children:(0,t.jsx)(U.DialogContent,{className:"overflow-hidden p-0 shadow-lg",children:(0,t.jsx)(B,{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})})}),V=r.forwardRef(({className:e,...r},n)=>(0,t.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,t.jsx)(D.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,t.jsx)(_.Input,{ref:n,className:(0,z.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...r})]}));V.displayName=_.Input.displayName;let K=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(_.List,{ref:n,className:(0,z.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...r}));K.displayName=_.List.displayName;let W=r.forwardRef((e,r)=>(0,t.jsx)(_.Empty,{ref:r,className:"py-6 text-center text-sm",...e}));W.displayName=_.Empty.displayName;let q=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(_.Group,{ref:n,className:(0,z.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...r}));q.displayName=_.Group.displayName;let G=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(_.Separator,{ref:n,className:(0,z.cn)("-mx-1 h-px bg-border",e),...r}));G.displayName=_.Separator.displayName;let Z=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(_.Item,{ref:n,className:(0,z.cn)("relative flex cursor-pointer 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}));Z.displayName=_.Item.displayName,e.s(["Command",()=>B,"CommandDialog",()=>H,"CommandEmpty",()=>W,"CommandGroup",()=>q,"CommandInput",()=>V,"CommandItem",()=>Z,"CommandList",()=>K,"CommandSeparator",()=>G],694541)}]);
|