@shepai/cli 1.72.6 → 1.72.7
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/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts +4 -0
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +20 -12
- package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts +8 -3
- package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js +17 -4
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +1 -1
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +2 -6
- package/dist/src/presentation/web/app/build-graph-nodes.js +11 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts +3 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +8 -4
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +12 -3
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +6 -2
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +7 -2
- package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +6 -2
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +14 -2
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +3 -5
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +131 -196
- package/dist/src/presentation/web/components/ui/alert-dialog.d.ts +1 -1
- package/dist/src/presentation/web/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/alert-dialog.js +7 -2
- package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/dialog.js +6 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts +2 -0
- package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/layout-with-dagre.js +86 -4
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +17 -17
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +17 -17
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +2 -2
- package/web/.next/server/chunks/ssr/_00e6c698._.js +1 -1
- package/web/.next/server/chunks/ssr/_00e6c698._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
- package/web/.next/server/chunks/ssr/_07c2a32a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_34a58db8._.js +1 -1
- package/web/.next/server/chunks/ssr/_34a58db8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_37259405._.js +1 -1
- package/web/.next/server/chunks/ssr/_37259405._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_85d0351b._.js → _63bfa7dd._.js} +2 -2
- package/web/.next/server/chunks/ssr/_63bfa7dd._.js.map +1 -0
- package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_e50484ec._.js → server/chunks/ssr/_7215bb0f._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_e50484ec._.js.map → _7215bb0f._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_cb5b3951._.js +1 -1
- package/web/.next/server/chunks/ssr/_cb5b3951._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_fc3a6895._.js +1 -1
- package/web/.next/server/chunks/ssr/_fc3a6895._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +20 -20
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +17 -17
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +17 -17
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +12 -12
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_00e6c698._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_07c2a32a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_34a58db8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_37259405._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_85d0351b._.js → _63bfa7dd._.js} +2 -2
- package/web/.next/{server/chunks/ssr/_e50484ec._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_7215bb0f._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_cb5b3951._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_fc3a6895._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +20 -20
- package/web/.next/standalone/src/presentation/web/app/(dashboard)/get-graph-data.ts +2 -6
- package/web/.next/standalone/src/presentation/web/app/build-graph-nodes.ts +14 -1
- package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.tsx +10 -8
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx +13 -3
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +6 -2
- package/web/.next/standalone/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.tsx +2 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +8 -5
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx +30 -24
- package/web/.next/standalone/src/presentation/web/components/common/repository-node/repository-node.tsx +33 -25
- package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +25 -3
- package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +184 -230
- package/web/.next/standalone/src/presentation/web/components/ui/alert-dialog.tsx +7 -0
- package/web/.next/standalone/src/presentation/web/components/ui/dialog.tsx +7 -1
- package/web/.next/standalone/src/presentation/web/lib/layout-with-dagre.ts +93 -4
- package/web/.next/standalone/src/presentation/web/server.js +1 -1
- package/web/.next/static/chunks/0c54314c8c9c9739.js +7 -0
- package/web/.next/static/chunks/{5f5c607ffae8b918.js → 304c8593d0a6525d.js} +1 -1
- package/web/.next/static/chunks/4558d1663c6f4d2c.js +1 -0
- package/web/.next/static/chunks/{32957ff277daec59.js → 4df07e765b233622.js} +1 -1
- package/web/.next/static/chunks/{fc07834e422b1caa.js → 585ae19c520e8b72.js} +1 -1
- package/web/.next/static/chunks/{ecb2130572a7fbe7.js → 6e14d8bd5c005e6e.js} +1 -1
- package/web/.next/static/chunks/{412a3ac70c529c5b.js → 8a1eb93510e54db0.js} +1 -1
- package/web/.next/static/chunks/{550bf3cb8220cbf0.js → b143c7d78a6888e9.js} +1 -1
- package/web/.next/static/chunks/{8b36e07129a1471f.js → b45344579a43cbb8.js} +1 -1
- package/web/.next/static/chunks/dec13bccb136ef7c.css +2 -0
- package/web/.next/static/chunks/e4522f7d3134eefe.js +1 -0
- package/web/.next/static/chunks/{d4ecce2ac7795bd9.js → fe83a799663fd3cc.js} +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/server/chunks/ssr/_85d0351b._.js.map +0 -1
- package/web/.next/static/chunks/06b6b02bab76aee7.js +0 -1
- package/web/.next/static/chunks/06dfd668334ffb4e.js +0 -7
- package/web/.next/static/chunks/224ed5f5dbd33154.css +0 -2
- package/web/.next/static/chunks/e44849eb58a3335f.js +0 -1
- /package/web/.next/static/{7K6dTYQIJ7__PLUYLLfZV → 9bO_bJBssG0NRxEG03iM5}/_buildManifest.js +0 -0
- /package/web/.next/static/{7K6dTYQIJ7__PLUYLLfZV → 9bO_bJBssG0NRxEG03iM5}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{7K6dTYQIJ7__PLUYLLfZV → 9bO_bJBssG0NRxEG03iM5}/_ssgManifest.js +0 -0
|
@@ -14,6 +14,13 @@ export interface LayoutOptions {
|
|
|
14
14
|
nodesep?: number;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/** Canonical layout defaults for the control-center canvas. */
|
|
18
|
+
export const CANVAS_LAYOUT_DEFAULTS: LayoutOptions = {
|
|
19
|
+
direction: 'LR',
|
|
20
|
+
ranksep: 200,
|
|
21
|
+
nodesep: 15,
|
|
22
|
+
};
|
|
23
|
+
|
|
17
24
|
/** Known node-type dimensions for the canvas node types */
|
|
18
25
|
const NODE_DIMENSIONS: Record<string, { width: number; height: number }> = {
|
|
19
26
|
featureNode: { width: 288, height: 140 },
|
|
@@ -99,17 +106,99 @@ export function layoutWithDagre<N extends Node>(
|
|
|
99
106
|
dagre.layout(g);
|
|
100
107
|
|
|
101
108
|
const { targetPosition, sourcePosition } = getHandlePositions(direction);
|
|
102
|
-
const
|
|
109
|
+
const isHorizontal = direction === 'LR' || direction === 'RL';
|
|
103
110
|
|
|
104
|
-
//
|
|
111
|
+
// Collect dagre center positions keyed by node id
|
|
112
|
+
const centerMap = new Map<string, { cx: number; cy: number; w: number; h: number }>();
|
|
105
113
|
for (const node of graphNodes) {
|
|
106
|
-
const
|
|
114
|
+
const dagreNode = g.node(node.id);
|
|
107
115
|
const size = getNodeSize(node, nodeSize);
|
|
116
|
+
centerMap.set(node.id, { cx: dagreNode.x, cy: dagreNode.y, w: size.width, h: size.height });
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Post-process: center each group of children around their parent's
|
|
120
|
+
// secondary-axis center so the edge fans out symmetrically.
|
|
121
|
+
// Build parent→children map from the edges.
|
|
122
|
+
const childrenOf = new Map<string, string[]>();
|
|
123
|
+
for (const edge of edges) {
|
|
124
|
+
if (!centerMap.has(edge.source) || !centerMap.has(edge.target)) continue;
|
|
125
|
+
if (!childrenOf.has(edge.source)) childrenOf.set(edge.source, []);
|
|
126
|
+
childrenOf.get(edge.source)!.push(edge.target);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
for (const [parentId, childIds] of childrenOf) {
|
|
130
|
+
if (childIds.length <= 1) continue;
|
|
131
|
+
|
|
132
|
+
const parent = centerMap.get(parentId)!;
|
|
133
|
+
const parentCenter = isHorizontal ? parent.cy : parent.cx;
|
|
134
|
+
|
|
135
|
+
// Sort children by their current secondary-axis position
|
|
136
|
+
const sorted = childIds
|
|
137
|
+
.filter((id) => centerMap.has(id))
|
|
138
|
+
.sort((a, b) => {
|
|
139
|
+
const pa = centerMap.get(a)!;
|
|
140
|
+
const pb = centerMap.get(b)!;
|
|
141
|
+
return isHorizontal ? pa.cy - pb.cy : pa.cx - pb.cx;
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
// Compute the current center of the children group
|
|
145
|
+
const first = centerMap.get(sorted[0])!;
|
|
146
|
+
const last = centerMap.get(sorted[sorted.length - 1])!;
|
|
147
|
+
const groupCenter = isHorizontal ? (first.cy + last.cy) / 2 : (first.cx + last.cx) / 2;
|
|
148
|
+
|
|
149
|
+
// Shift all children so the group center aligns with the parent center
|
|
150
|
+
const shift = parentCenter - groupCenter;
|
|
151
|
+
if (Math.abs(shift) > 1) {
|
|
152
|
+
for (const childId of sorted) {
|
|
153
|
+
const c = centerMap.get(childId)!;
|
|
154
|
+
if (isHorizontal) {
|
|
155
|
+
c.cy += shift;
|
|
156
|
+
} else {
|
|
157
|
+
c.cx += shift;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Enforce input-order within each sibling group so that the caller's
|
|
164
|
+
// sort (e.g. by createdAt) is respected on the secondary axis.
|
|
165
|
+
const inputIndex = new Map<string, number>();
|
|
166
|
+
for (let i = 0; i < graphNodes.length; i++) {
|
|
167
|
+
inputIndex.set(graphNodes[i].id, i);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
for (const [, childIds] of childrenOf) {
|
|
171
|
+
const valid = childIds.filter((id) => centerMap.has(id));
|
|
172
|
+
if (valid.length <= 1) continue;
|
|
173
|
+
|
|
174
|
+
// Collect current secondary-axis positions, sorted ascending
|
|
175
|
+
const positions = valid
|
|
176
|
+
.map((id) => (isHorizontal ? centerMap.get(id)!.cy : centerMap.get(id)!.cx))
|
|
177
|
+
.sort((a, b) => a - b);
|
|
178
|
+
|
|
179
|
+
// Sort children by input index (preserves caller's ordering, e.g. createdAt)
|
|
180
|
+
const byInput = [...valid].sort((a, b) => (inputIndex.get(a) ?? 0) - (inputIndex.get(b) ?? 0));
|
|
181
|
+
|
|
182
|
+
// Assign sorted positions in input order
|
|
183
|
+
for (let i = 0; i < byInput.length; i++) {
|
|
184
|
+
const c = centerMap.get(byInput[i])!;
|
|
185
|
+
if (isHorizontal) {
|
|
186
|
+
c.cy = positions[i];
|
|
187
|
+
} else {
|
|
188
|
+
c.cx = positions[i];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Build result array converting center-coords to React Flow top-left
|
|
194
|
+
const result: N[] = [];
|
|
195
|
+
for (const node of graphNodes) {
|
|
196
|
+
const c = centerMap.get(node.id)!;
|
|
108
197
|
result.push({
|
|
109
198
|
...node,
|
|
110
199
|
targetPosition,
|
|
111
200
|
sourcePosition,
|
|
112
|
-
position: { x:
|
|
201
|
+
position: { x: c.cx - c.w / 2, y: c.cy - c.h / 2 },
|
|
113
202
|
} as N);
|
|
114
203
|
}
|
|
115
204
|
|
|
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
15
15
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
16
16
|
|
|
17
17
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
18
|
-
const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.72.
|
|
18
|
+
const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.72.6","NEXT_PUBLIC_SHEP_PACKAGE_NAME":"@shepai/cli","NEXT_PUBLIC_SHEP_DESCRIPTION":"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":true,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"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":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/cli/cli","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/cli/cli"},"serverExternalPackages":["tsyringe","reflect-metadata","better-sqlite3","node:os","node:child_process","node:fs"],"distDirRoot":".next"}
|
|
19
19
|
|
|
20
20
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
21
21
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,91891,t=>{"use strict";let e=(0,t.i(3645).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);t.s(["default",()=>e])},30153,71326,t=>{"use strict";var e=t.i(20314),a=t.i(79054),r=t.i(22528),o=t.i(5978),n=t.i(567),s=t.i(91967),i=t.i(86874),l="AlertDialog",[d,u]=(0,r.createContextScope)(l,[n.createDialogScope]),c=(0,n.createDialogScope)(),f=t=>{let{__scopeAlertDialog:a,...r}=t,o=c(a);return(0,e.jsx)(n.Root,{...o,...r,modal:!0})};f.displayName=l;var m=a.forwardRef((t,a)=>{let{__scopeAlertDialog:r,...o}=t,s=c(r);return(0,e.jsx)(n.Trigger,{...s,...o,ref:a})});m.displayName="AlertDialogTrigger";var p=t=>{let{__scopeAlertDialog:a,...r}=t,o=c(a);return(0,e.jsx)(n.Portal,{...o,...r})};p.displayName="AlertDialogPortal";var g=a.forwardRef((t,a)=>{let{__scopeAlertDialog:r,...o}=t,s=c(r);return(0,e.jsx)(n.Overlay,{...s,...o,ref:a})});g.displayName="AlertDialogOverlay";var h="AlertDialogContent",[v,b]=d(h),y=(0,i.createSlottable)("AlertDialogContent"),x=a.forwardRef((t,r)=>{let{__scopeAlertDialog:i,children:l,...d}=t,u=c(i),f=a.useRef(null),m=(0,o.useComposedRefs)(r,f),p=a.useRef(null);return(0,e.jsx)(n.WarningProvider,{contentName:h,titleName:w,docsSlug:"alert-dialog",children:(0,e.jsx)(v,{scope:i,cancelRef:p,children:(0,e.jsxs)(n.Content,{role:"alertdialog",...u,...d,ref:m,onOpenAutoFocus:(0,s.composeEventHandlers)(d.onOpenAutoFocus,t=>{t.preventDefault(),p.current?.focus({preventScroll:!0})}),onPointerDownOutside:t=>t.preventDefault(),onInteractOutside:t=>t.preventDefault(),children:[(0,e.jsx)(y,{children:l}),(0,e.jsx)(A,{contentRef:f})]})})})});x.displayName=h;var w="AlertDialogTitle",E=a.forwardRef((t,a)=>{let{__scopeAlertDialog:r,...o}=t,s=c(r);return(0,e.jsx)(n.Title,{...s,...o,ref:a})});E.displayName=w;var k="AlertDialogDescription",D=a.forwardRef((t,a)=>{let{__scopeAlertDialog:r,...o}=t,s=c(r);return(0,e.jsx)(n.Description,{...s,...o,ref:a})});D.displayName=k;var C=a.forwardRef((t,a)=>{let{__scopeAlertDialog:r,...o}=t,s=c(r);return(0,e.jsx)(n.Close,{...s,...o,ref:a})});C.displayName="AlertDialogAction";var j="AlertDialogCancel",N=a.forwardRef((t,a)=>{let{__scopeAlertDialog:r,...s}=t,{cancelRef:i}=b(j,r),l=c(r),d=(0,o.useComposedRefs)(a,i);return(0,e.jsx)(n.Close,{...l,...s,ref:d})});N.displayName=j;var A=({contentRef:t})=>{let e=`\`${h}\` requires a description for the component to be accessible for screen reader users.
|
|
2
|
+
|
|
3
|
+
You can add a description to the \`${h}\` by passing a \`${k}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
4
|
+
|
|
5
|
+
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${h}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
6
|
+
|
|
7
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return a.useEffect(()=>{document.getElementById(t.current?.getAttribute("aria-describedby"))||console.warn(e)},[e,t]),null};t.s(["Action",()=>C,"AlertDialog",()=>f,"AlertDialogAction",()=>C,"AlertDialogCancel",()=>N,"AlertDialogContent",()=>x,"AlertDialogDescription",()=>D,"AlertDialogOverlay",()=>g,"AlertDialogPortal",()=>p,"AlertDialogTitle",()=>E,"AlertDialogTrigger",()=>m,"Cancel",()=>N,"Content",()=>x,"Description",()=>D,"Overlay",()=>g,"Portal",()=>p,"Root",()=>f,"Title",()=>E,"Trigger",()=>m,"createAlertDialogScope",()=>u],28883);var T=t.i(28883),T=T,S=t.i(31777),z=t.i(35364);function R({...t}){return(0,e.jsx)(T.Root,{"data-slot":"alert-dialog",...t})}function M({...t}){return(0,e.jsx)(T.Trigger,{"data-slot":"alert-dialog-trigger",...t})}function B({...t}){return(0,e.jsx)(T.Portal,{"data-slot":"alert-dialog-portal",...t})}function P({className:t,onClick:a,...r}){return(0,e.jsx)(T.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,S.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),onClick:t=>{t.stopPropagation(),a?.(t)},...r})}function Y({className:t,size:a="default",...r}){return(0,e.jsxs)(B,{children:[(0,e.jsx)(P,{}),(0,e.jsx)(T.Content,{"data-slot":"alert-dialog-content","data-size":a,className:(0,S.cn)("bg-background 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 group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",t),...r})]})}function $({className:t,...a}){return(0,e.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,S.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",t),...a})}function I({className:t,...a}){return(0,e.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,S.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",t),...a})}function L({className:t,...a}){return(0,e.jsx)(T.Title,{"data-slot":"alert-dialog-title",className:(0,S.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",t),...a})}function O({className:t,...a}){return(0,e.jsx)(T.Description,{"data-slot":"alert-dialog-description",className:(0,S.cn)("text-muted-foreground text-sm",t),...a})}function H({className:t,variant:a="default",size:r="default",...o}){return(0,e.jsx)(z.Button,{variant:a,size:r,asChild:!0,children:(0,e.jsx)(T.Action,{"data-slot":"alert-dialog-action",className:(0,S.cn)(t),...o})})}function V({className:t,variant:a="outline",size:r="default",...o}){return(0,e.jsx)(z.Button,{variant:a,size:r,asChild:!0,children:(0,e.jsx)(T.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,S.cn)(t),...o})})}t.s(["AlertDialog",()=>R,"AlertDialogAction",()=>H,"AlertDialogCancel",()=>V,"AlertDialogContent",()=>Y,"AlertDialogDescription",()=>O,"AlertDialogFooter",()=>I,"AlertDialogHeader",()=>$,"AlertDialogTitle",()=>L,"AlertDialogTrigger",()=>M],71326);let F=(0,a.createContext)(null);function U({children:t}){let r=(0,a.useRef)(null),o=(0,a.useRef)(null),[n,s]=(0,a.useState)(!1),i=(0,a.useCallback)(t=>{r.current=t},[]),l=(0,a.useCallback)(t=>{if(r.current?.isDirty){o.current=t,s(!0);return}t()},[]),d=(0,a.useCallback)(()=>{s(!1),r.current?.onReset(),r.current=null,o.current?.(),o.current=null},[]),u=(0,a.useCallback)(()=>{s(!1),o.current=null},[]),c=(0,a.useCallback)(()=>r.current?.isDirty??!1,[]);return(0,e.jsxs)(F,{value:{setGuard:i,guardedNavigate:l,getIsDirty:c},children:[t,(0,e.jsx)(R,{open:n,children:(0,e.jsxs)(Y,{children:[(0,e.jsxs)($,{children:[(0,e.jsx)(L,{children:"Discard unsaved changes?"}),(0,e.jsx)(O,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),(0,e.jsxs)(I,{children:[(0,e.jsx)(H,{variant:"destructive",onClick:d,children:"Discard"}),(0,e.jsx)(V,{onClick:u,children:"Keep editing"})]})]})})]})}function X(){let t=(0,a.useContext)(F);if(!t)throw Error("useDrawerCloseGuard must be used within DrawerCloseGuardProvider");return t}function K({open:t,isDirty:e,onClose:r,onReset:o}){let{setGuard:n,guardedNavigate:s}=X();return(0,a.useEffect)(()=>(t?n({isDirty:e,onReset:o}):n(null),()=>n(null)),[t,e,o,n]),{attemptClose:(0,a.useCallback)(()=>{s(()=>{o(),r()})},[s,r,o])}}t.s(["DrawerCloseGuardProvider",()=>U,"useDrawerCloseGuard",()=>X,"useGuardedDrawerClose",()=>K],30153)},60112,t=>{"use strict";var e=t.i(79054),a=t.i(26036);let r=Array(12).fill(0),o=({visible:t,className:a})=>e.default.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":t},e.default.createElement("div",{className:"sonner-spinner"},r.map((t,a)=>e.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),n=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),s=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),i=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),l=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),d=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},e.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),u=1,c=new class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...r}=t,o="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:u++,n=this.toasts.find(t=>t.id===o),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),n?this.toasts=this.toasts.map(e=>e.id===o?(this.publish({...e,...t,id:o,title:a}),{...e,...t,id:o,dismissible:s,title:a}):e):this.addToast({title:a,...r,dismissible:s,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,a)=>{let r,o;if(!a)return;void 0!==a.loading&&(o=this.create({...a,promise:t,type:"loading",message:a.loading,description:"function"!=typeof a.description?a.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=void 0!==o,i=n.then(async t=>{if(r=["resolve",t],e.default.isValidElement(t))s=!1,this.create({id:o,type:"default",message:t});else if(f(t)&&!t.ok){s=!1;let r="function"==typeof a.error?await a.error(`HTTP error! status: ${t.status}`):a.error,n="function"==typeof a.description?await a.description(`HTTP error! status: ${t.status}`):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(void 0!==a.success){s=!1;let r="function"==typeof a.success?await a.success(t):a.success,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"success",description:n,...i})}}).catch(async t=>{if(r=["reject",t],void 0!==a.error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(o),o=void 0),null==a.finally||a.finally.call(a)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===r[0]?e(r[1]):t(r[1])).catch(e));return"string"!=typeof o&&"number"!=typeof o?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||u++;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)||u++;return c.addToast({title:t,...e,id:a}),a},{success:c.success,info:c.info,warning:c.warning,error:c.error,custom:c.custom,message:c.message,promise:c.promise,dismiss:c.dismiss,loading:c.loading},{getHistory:()=>c.toasts,getToasts:()=>c.getActiveToasts()});function p(t){return void 0!==t.label}function g(...t){return t.filter(Boolean).join(" ")}!function(t){if(!t||"u"<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 h=t=>{var a,r,u,c,f,m,h,v,b,y,x,w,E;let{invert:k,toast:D,unstyled:C,interacting:j,setHeights:N,visibleToasts:A,heights:T,index:S,toasts:z,expanded:R,removeToast:M,defaultRichColors:B,closeButton:P,style:Y,cancelButtonStyle:$,actionButtonStyle:I,className:L="",descriptionClassName:O="",duration:H,position:V,gap:F,expandByDefault:U,classNames:X,icons:K,closeButtonAriaLabel:G="Close toast"}=t,[_,q]=e.default.useState(null),[W,J]=e.default.useState(null),[Q,Z]=e.default.useState(!1),[tt,te]=e.default.useState(!1),[ta,tr]=e.default.useState(!1),[to,tn]=e.default.useState(!1),[ts,ti]=e.default.useState(!1),[tl,td]=e.default.useState(0),[tu,tc]=e.default.useState(0),tf=e.default.useRef(D.duration||H||4e3),tm=e.default.useRef(null),tp=e.default.useRef(null),tg=0===S,th=S+1<=A,tv=D.type,tb=!1!==D.dismissible,ty=D.className||"",tx=D.descriptionClassName||"",tw=e.default.useMemo(()=>T.findIndex(t=>t.toastId===D.id)||0,[T,D.id]),tE=e.default.useMemo(()=>{var t;return null!=(t=D.closeButton)?t:P},[D.closeButton,P]),tk=e.default.useMemo(()=>D.duration||H||4e3,[D.duration,H]),tD=e.default.useRef(0),tC=e.default.useRef(0),tj=e.default.useRef(0),tN=e.default.useRef(null),[tA,tT]=V.split("-"),tS=e.default.useMemo(()=>T.reduce((t,e,a)=>a>=tw?t:t+e.height,0),[T,tw]),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})(),tR=D.invert||k,tM="loading"===tv;tC.current=e.default.useMemo(()=>tw*F+tS,[tw,tS]),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 tc(e),N(t=>[{toastId:D.id,height:e,position:D.position},...t]),()=>N(t=>t.filter(t=>t.toastId!==D.id))}},[N,D.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,tc(a),N(t=>t.find(t=>t.toastId===D.id)?t.map(t=>t.toastId===D.id?{...t,height:a}:t):[{toastId:D.id,height:a,position:D.position},...t])},[Q,D.title,D.description,N,D.id,D.jsx,D.action,D.cancel]);let tB=e.default.useCallback(()=>{te(!0),td(tC.current),N(t=>t.filter(t=>t.toastId!==D.id)),setTimeout(()=>{M(D)},200)},[D,M,N,tC]);e.default.useEffect(()=>{let t;if((!D.promise||"loading"!==tv)&&D.duration!==1/0&&"loading"!==D.type){if(R||j||tz){if(tj.current<tD.current){let t=new Date().getTime()-tD.current;tf.current=tf.current-t}tj.current=new Date().getTime()}else tf.current!==1/0&&(tD.current=new Date().getTime(),t=setTimeout(()=>{null==D.onAutoClose||D.onAutoClose.call(D,D),tB()},tf.current));return()=>clearTimeout(t)}},[R,j,D,tv,tz,tB]),e.default.useEffect(()=>{D.delete&&(tB(),null==D.onDismiss||D.onDismiss.call(D,D))},[tB,D.delete]);let tP=D.icon||(null==K?void 0:K[tv])||(t=>{switch(t){case"success":return n;case"info":return i;case"warning":return s;case"error":return l;default:return null}})(tv);return e.default.createElement("li",{tabIndex:0,ref:tp,className:g(L,ty,null==X?void 0:X.toast,null==D||null==(a=D.classNames)?void 0:a.toast,null==X?void 0:X.default,null==X?void 0:X[tv],null==D||null==(r=D.classNames)?void 0:r[tv]),"data-sonner-toast":"","data-rich-colors":null!=(y=D.richColors)?y:B,"data-styled":!(D.jsx||D.unstyled||C),"data-mounted":Q,"data-promise":!!D.promise,"data-swiped":ts,"data-removed":tt,"data-visible":th,"data-y-position":tA,"data-x-position":tT,"data-index":S,"data-front":tg,"data-swiping":ta,"data-dismissible":tb,"data-type":tv,"data-invert":tR,"data-swipe-out":to,"data-swipe-direction":W,"data-expanded":!!(R||U&&Q),"data-testid":D.testId,style:{"--index":S,"--toasts-before":S,"--z-index":z.length-S,"--offset":`${tt?tl:tC.current}px`,"--initial-height":U?"auto":`${tu}px`,...Y,...D.style},onDragEnd:()=>{tr(!1),q(null),tN.current=null},onPointerDown:t=>{2===t.button||tM||!tb||(tm.current=new Date,td(tC.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(tr(!0),tN.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,r,o;if(to||!tb)return;tN.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(tC.current),null==D.onDismiss||D.onDismiss.call(D,D),"x"===_?J(n>0?"right":"left"):J(s>0?"down":"up"),tB(),tn(!0);return}null==(r=tp.current)||r.style.setProperty("--swipe-amount-x","0px"),null==(o=tp.current)||o.style.setProperty("--swipe-amount-y","0px"),ti(!1),tr(!1),q(null)},onPointerMove:e=>{var a,r,o,n;if(!tN.current||!tb||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tN.current.y,i=e.clientX-tN.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),r=[];return e&&r.push(e),a&&r.push(a),r}(V);!_&&(Math.abs(i)>1||Math.abs(s)>1)&&q(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0},u=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*u(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*u(i);d.x=Math.abs(t)<Math.abs(i)?t:i}(Math.abs(d.x)>0||Math.abs(d.y)>0)&&ti(!0),null==(r=tp.current)||r.style.setProperty("--swipe-amount-x",`${d.x}px`),null==(o=tp.current)||o.style.setProperty("--swipe-amount-y",`${d.y}px`)}},tE&&!D.jsx&&"loading"!==tv?e.default.createElement("button",{"aria-label":G,"data-disabled":tM,"data-close-button":!0,onClick:tM||!tb?()=>{}:()=>{tB(),null==D.onDismiss||D.onDismiss.call(D,D)},className:g(null==X?void 0:X.closeButton,null==D||null==(u=D.classNames)?void 0:u.closeButton)},null!=(x=null==K?void 0:K.close)?x:d):null,(tv||D.icon||D.promise)&&null!==D.icon&&((null==K?void 0:K[tv])!==null||D.icon)?e.default.createElement("div",{"data-icon":"",className:g(null==X?void 0:X.icon,null==D||null==(c=D.classNames)?void 0:c.icon)},D.promise||"loading"===D.type&&!D.icon?D.icon||((null==K?void 0:K.loading)?e.default.createElement("div",{className:g(null==X?void 0:X.loader,null==D||null==(E=D.classNames)?void 0:E.loader,"sonner-loader"),"data-visible":"loading"===tv},K.loading):e.default.createElement(o,{className:g(null==X?void 0:X.loader,null==D||null==(w=D.classNames)?void 0:w.loader),visible:"loading"===tv})):null,"loading"!==D.type?tP:null):null,e.default.createElement("div",{"data-content":"",className:g(null==X?void 0:X.content,null==D||null==(f=D.classNames)?void 0:f.content)},e.default.createElement("div",{"data-title":"",className:g(null==X?void 0:X.title,null==D||null==(m=D.classNames)?void 0:m.title)},D.jsx?D.jsx:"function"==typeof D.title?D.title():D.title),D.description?e.default.createElement("div",{"data-description":"",className:g(O,tx,null==X?void 0:X.description,null==D||null==(h=D.classNames)?void 0:h.description)},"function"==typeof D.description?D.description():D.description):null),e.default.isValidElement(D.cancel)?D.cancel:D.cancel&&p(D.cancel)?e.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:D.cancelButtonStyle||$,onClick:t=>{!p(D.cancel)||tb&&(null==D.cancel.onClick||D.cancel.onClick.call(D.cancel,t),tB())},className:g(null==X?void 0:X.cancelButton,null==D||null==(v=D.classNames)?void 0:v.cancelButton)},D.cancel.label):null,e.default.isValidElement(D.action)?D.action:D.action&&p(D.action)?e.default.createElement("button",{"data-button":!0,"data-action":!0,style:D.actionButtonStyle||I,onClick:t=>{!p(D.action)||(null==D.action.onClick||D.action.onClick.call(D.action,t),t.defaultPrevented||tB())},className:g(null==X?void 0:X.actionButton,null==D||null==(b=D.classNames)?void 0:b.actionButton)},D.action.label):null)};function v(){if("u"<typeof window||"u"<typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let b=e.default.forwardRef(function(t,r){let{id:o,invert:n,position:s="bottom-right",hotkey:i=["altKey","KeyT"],expand:l,closeButton:d,className:u,offset:f,mobileOffset:m,theme:p="light",richColors:g,duration:b,style:y,visibleToasts:x=3,toastOptions:w,dir:E=v(),gap:k=14,icons:D,containerAriaLabel:C="Notifications"}=t,[j,N]=e.default.useState([]),A=e.default.useMemo(()=>o?j.filter(t=>t.toasterId===o):j.filter(t=>!t.toasterId),[j,o]),T=e.default.useMemo(()=>Array.from(new Set([s].concat(A.filter(t=>t.position).map(t=>t.position)))),[A,s]),[S,z]=e.default.useState([]),[R,M]=e.default.useState(!1),[B,P]=e.default.useState(!1),[Y,$]=e.default.useState("system"!==p?p:"u">typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),I=e.default.useRef(null),L=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),O=e.default.useRef(null),H=e.default.useRef(!1),V=e.default.useCallback(t=>{N(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||c.dismiss(t.id),e.filter(({id:e})=>e!==t.id)})},[]);return e.default.useEffect(()=>c.subscribe(t=>{t.dismiss?requestAnimationFrame(()=>{N(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))}):setTimeout(()=>{a.default.flushSync(()=>{N(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]})})})}),[j]),e.default.useEffect(()=>{if("system"!==p)return void $(p);if("system"===p&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?$("dark"):$("light")),"u"<typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",({matches:t})=>{t?$("dark"):$("light")})}catch(e){t.addListener(({matches:t})=>{try{t?$("dark"):$("light")}catch(t){console.error(t)}})}},[p]),e.default.useEffect(()=>{j.length<=1&&M(!1)},[j]),e.default.useEffect(()=>{let t=t=>{var e,a;i.every(e=>t[e]||t.code===e)&&(M(!0),null==(a=I.current)||a.focus()),"Escape"===t.code&&(document.activeElement===I.current||(null==(e=I.current)?void 0:e.contains(document.activeElement)))&&M(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i]),e.default.useEffect(()=>{if(I.current)return()=>{O.current&&(O.current.focus({preventScroll:!0}),O.current=null,H.current=!1)}},[I.current]),e.default.createElement("section",{ref:r,"aria-label":`${C} ${L}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},T.map((a,r)=>{var o;let s,[i,c]=a.split("-");return A.length?e.default.createElement("ol",{key:a,dir:"auto"===E?v():E,tabIndex:-1,ref:I,className:u,"data-sonner-toaster":!0,"data-sonner-theme":Y,"data-y-position":i,"data-x-position":c,style:{"--front-toast-height":`${(null==(o=S[0])?void 0:o.height)||0}px`,"--width":"356px","--gap":`${k}px`,...y,...(s={},[f,m].forEach((t,e)=>{let a=1===e,r=a?"--mobile-offset":"--offset",o=a?"16px":"24px";function n(t){["top","right","bottom","left"].forEach(e=>{s[`${r}-${e}`]="number"==typeof t?`${t}px`:t})}"number"==typeof t||"string"==typeof t?n(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?s[`${r}-${e}`]=o:s[`${r}-${e}`]="number"==typeof t[e]?`${t[e]}px`:t[e]}):n(o)}),s)},onBlur:t=>{H.current&&!t.currentTarget.contains(t.relatedTarget)&&(H.current=!1,O.current&&(O.current.focus({preventScroll:!0}),O.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(H.current||(H.current=!0,O.current=t.relatedTarget))},onMouseEnter:()=>M(!0),onMouseMove:()=>M(!0),onMouseLeave:()=>{B||M(!1)},onDragEnd:()=>M(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||P(!0)},onPointerUp:()=>P(!1)},A.filter(t=>!t.position&&0===r||t.position===a).map((r,o)=>{var s,i;return e.default.createElement(h,{key:r.id,icons:D,index:o,toast:r,defaultRichColors:g,duration:null!=(s=null==w?void 0:w.duration)?s:b,className:null==w?void 0:w.className,descriptionClassName:null==w?void 0:w.descriptionClassName,invert:n,visibleToasts:x,closeButton:null!=(i=null==w?void 0:w.closeButton)?i:d,interacting:B,position:a,style:null==w?void 0:w.style,unstyled:null==w?void 0:w.unstyled,classNames:null==w?void 0:w.classNames,cancelButtonStyle:null==w?void 0:w.cancelButtonStyle,actionButtonStyle:null==w?void 0:w.actionButtonStyle,closeButtonAriaLabel:null==w?void 0:w.closeButtonAriaLabel,removeToast:V,toasts:A.filter(t=>t.position==r.position),heights:S.filter(t=>t.position==r.position),setHeights:z,expandByDefault:l,gap:k,expanded:R,swipeDirections:t.swipeDirections})})):null}))});t.s(["Toaster",()=>b,"toast",()=>m])}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68304,87342,51080,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(91967),i=e.i(22528),r=e.i(5978),l=e.i(86874);function n(e){let a=e+"CollectionProvider",[n,o]=(0,i.createContextScope)(a),[d,c]=n(a,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:a,children:i}=e,r=s.default.useRef(null),l=s.default.useRef(new Map).current;return(0,t.jsx)(d,{scope:a,itemMap:l,collectionRef:r,children:i})};u.displayName=a;let f=e+"CollectionSlot",m=(0,l.createSlot)(f),h=s.default.forwardRef((e,s)=>{let{scope:a,children:i}=e,l=c(f,a),n=(0,r.useComposedRefs)(s,l.collectionRef);return(0,t.jsx)(m,{ref:n,children:i})});h.displayName=f;let p=e+"CollectionItemSlot",x="data-radix-collection-item",g=(0,l.createSlot)(p),y=s.default.forwardRef((e,a)=>{let{scope:i,children:l,...n}=e,o=s.default.useRef(null),d=(0,r.useComposedRefs)(a,o),u=c(p,i);return s.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...n}),()=>void u.itemMap.delete(o))),(0,t.jsx)(g,{...{[x]:""},ref:d,children:l})});return y.displayName=p,[{Provider:u,Slot:h,ItemSlot:y},function(t){let a=c(e+"CollectionConsumer",t);return s.default.useCallback(()=>{let e=a.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${x}]`));return Array.from(a.itemMap.values()).sort((e,s)=>t.indexOf(e.ref.current)-t.indexOf(s.ref.current))},[a.collectionRef,a.itemMap])},o]}var o=new WeakMap;function d(e,t){var s,a;let i,r,l;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let n=(s=e,a=t,i=s.length,(l=(r=c(a))>=0?r:i+r)<0||l>=i?-1:l);return -1===n?void 0:e[n]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],o.set(this,!0)}set(e,t){return o.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,s){let a,i=this.has(t),r=this.#e.length,l=c(e),n=l>=0?l:r+l,o=n<0||n>=r?-1:n;if(o===this.size||i&&o===this.size-1||-1===o)return this.set(t,s),this;let d=this.size+ +!i;l<0&&n++;let u=[...this.#e],f=!1;for(let e=n;e<d;e++)if(n===e){let r=u[e];u[e]===t&&(r=u[e+1]),i&&this.delete(t),a=this.get(r),this.set(t,s)}else{f||u[e-1]!==t||(f=!0);let s=u[f?e:e-1],i=a;a=this.get(s),this.delete(s),this.set(s,i)}return this}with(t,s,a){let i=new e(this);return i.insert(t,s,a),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a,t,s)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a+1,t,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=d(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=d(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return d(this.#e,e)}from(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.at(a)}keyFrom(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.keyAt(a)}find(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return a;s++}}findIndex(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return s;s++}return -1}filter(t,s){let a=[],i=0;for(let e of this)Reflect.apply(t,s,[e,i,this])&&a.push(e),i++;return new e(a)}map(t,s){let a=[],i=0;for(let e of this)a.push([e[0],Reflect.apply(t,s,[e,i,this])]),i++;return new e(a)}reduce(...e){let[t,s]=e,a=0,i=s??this.at(0);for(let s of this)i=0===a&&1===e.length?s:Reflect.apply(t,this,[i,s,a,this]),a++;return i}reduceRight(...e){let[t,s]=e,a=s??this.at(-1);for(let s=this.size-1;s>=0;s--){let i=this.at(s);a=s===this.size-1&&1===e.length?i:Reflect.apply(t,this,[a,i,s,this])}return a}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let s=this.keyAt(e),a=this.get(s);t.set(s,a)}return t}toSpliced(...t){let s=[...this.entries()];return s.splice(...t),new e(s)}slice(t,s){let a=new e,i=this.size-1;if(void 0===t)return a;t<0&&(t+=this.size),void 0!==s&&s>0&&(i=s-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),s=this.get(t);a.set(t,s)}return a}every(e,t){let s=0;for(let a of this){if(!Reflect.apply(e,t,[a,s,this]))return!1;s++}return!0}some(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return!0;s++}return!1}}),e.s(["createCollection",()=>n],87342);var u=e.i(13123),f=e.i(87620),m=e.i(29297),h=e.i(36589),p=e.i(66033),x="rovingFocusGroup.onEntryFocus",g={bubbles:!1,cancelable:!0},y="RovingFocusGroup",[v,b,j]=n(y),[w,k]=(0,i.createContextScope)(y,[j]),[N,C]=w(y),T=s.forwardRef((e,s)=>(0,t.jsx)(v.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(v.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(R,{...e,ref:s})})}));T.displayName=y;var R=s.forwardRef((e,i)=>{let{__scopeRovingFocusGroup:l,orientation:n,loop:o=!1,dir:d,currentTabStopId:c,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:v,onEntryFocus:j,preventScrollOnEntryFocus:w=!1,...k}=e,C=s.useRef(null),T=(0,r.useComposedRefs)(i,C),R=(0,p.useDirection)(d),[D,A]=(0,h.useControllableState)({prop:c,defaultProp:u??null,onChange:v,caller:y}),[I,S]=s.useState(!1),z=(0,m.useCallbackRef)(j),E=b(l),F=s.useRef(!1),[L,P]=s.useState(0);return s.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(x,z),()=>e.removeEventListener(x,z)},[z]),(0,t.jsx)(N,{scope:l,orientation:n,dir:R,loop:o,currentTabStopId:D,onItemFocus:s.useCallback(e=>A(e),[A]),onItemShiftTab:s.useCallback(()=>S(!0),[]),onFocusableItemAdd:s.useCallback(()=>P(e=>e+1),[]),onFocusableItemRemove:s.useCallback(()=>P(e=>e-1),[]),children:(0,t.jsx)(f.Primitive.div,{tabIndex:I||0===L?-1:0,"data-orientation":n,...k,ref:T,style:{outline:"none",...e.style},onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,()=>{F.current=!0}),onFocus:(0,a.composeEventHandlers)(e.onFocus,e=>{let t=!F.current;if(e.target===e.currentTarget&&t&&!I){let t=new CustomEvent(x,g);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=E().filter(e=>e.focusable);M([e.find(e=>e.active),e.find(e=>e.id===D),...e].filter(Boolean).map(e=>e.ref.current),w)}}F.current=!1}),onBlur:(0,a.composeEventHandlers)(e.onBlur,()=>S(!1))})})}),D="RovingFocusGroupItem",A=s.forwardRef((e,i)=>{let{__scopeRovingFocusGroup:r,focusable:l=!0,active:n=!1,tabStopId:o,children:d,...c}=e,m=(0,u.useId)(),h=o||m,p=C(D,r),x=p.currentTabStopId===h,g=b(r),{onFocusableItemAdd:y,onFocusableItemRemove:j,currentTabStopId:w}=p;return s.useEffect(()=>{if(l)return y(),()=>j()},[l,y,j]),(0,t.jsx)(v.ItemSlot,{scope:r,id:h,focusable:l,active:n,children:(0,t.jsx)(f.Primitive.span,{tabIndex:x?0:-1,"data-orientation":p.orientation,...c,ref:i,onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,e=>{l?p.onItemFocus(h):e.preventDefault()}),onFocus:(0,a.composeEventHandlers)(e.onFocus,()=>p.onItemFocus(h)),onKeyDown:(0,a.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,s){var a;let i=(a=e.key,"rtl"!==s?a:"ArrowLeft"===a?"ArrowRight":"ArrowRight"===a?"ArrowLeft":a);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(i))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(i)))return I[i]}(e,p.orientation,p.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=g().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)i.reverse();else if("prev"===t||"next"===t){var s,a;"prev"===t&&i.reverse();let r=i.indexOf(e.currentTarget);i=p.loop?(s=i,a=r+1,s.map((e,t)=>s[(a+t)%s.length])):i.slice(r+1)}setTimeout(()=>M(i))}}),children:"function"==typeof d?d({isCurrentTabStop:x,hasTabStop:null!=w}):d})})});A.displayName=D;var I={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function M(e,t=!1){let s=document.activeElement;for(let a of e)if(a===s||(a.focus({preventScroll:t}),document.activeElement!==s))return}e.s(["Item",()=>A,"Root",()=>T,"createRovingFocusGroupScope",()=>k],51080);var S=e.i(85995),z="Tabs",[E,F]=(0,i.createContextScope)(z,[k]),L=k(),[P,O]=E(z),H=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:i,onValueChange:r,defaultValue:l,orientation:n="horizontal",dir:o,activationMode:d="automatic",...c}=e,m=(0,p.useDirection)(o),[x,g]=(0,h.useControllableState)({prop:i,onChange:r,defaultProp:l??"",caller:z});return(0,t.jsx)(P,{scope:a,baseId:(0,u.useId)(),value:x,onValueChange:g,orientation:n,dir:m,activationMode:d,children:(0,t.jsx)(f.Primitive.div,{dir:m,"data-orientation":n,...c,ref:s})})});H.displayName=z;var q="TabsList",V=s.forwardRef((e,s)=>{let{__scopeTabs:a,loop:i=!0,...r}=e,l=O(q,a),n=L(a);return(0,t.jsx)(T,{asChild:!0,...n,orientation:l.orientation,dir:l.dir,loop:i,children:(0,t.jsx)(f.Primitive.div,{role:"tablist","aria-orientation":l.orientation,...r,ref:s})})});V.displayName=q;var B="TabsTrigger",K=s.forwardRef((e,s)=>{let{__scopeTabs:i,value:r,disabled:l=!1,...n}=e,o=O(B,i),d=L(i),c=G(o.baseId,r),u=_(o.baseId,r),m=r===o.value;return(0,t.jsx)(A,{asChild:!0,...d,focusable:!l,active:m,children:(0,t.jsx)(f.Primitive.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":u,"data-state":m?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:c,...n,ref:s,onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,e=>{l||0!==e.button||!1!==e.ctrlKey?e.preventDefault():o.onValueChange(r)}),onKeyDown:(0,a.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&o.onValueChange(r)}),onFocus:(0,a.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==o.activationMode;m||l||!e||o.onValueChange(r)})})})});K.displayName=B;var $="TabsContent",U=s.forwardRef((e,a)=>{let{__scopeTabs:i,value:r,forceMount:l,children:n,...o}=e,d=O($,i),c=G(d.baseId,r),u=_(d.baseId,r),m=r===d.value,h=s.useRef(m);return s.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(S.Presence,{present:l||m,children:({present:s})=>(0,t.jsx)(f.Primitive.div,{"data-state":m?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":c,hidden:!s,id:u,tabIndex:0,...o,ref:a,style:{...e.style,animationDuration:h.current?"0s":void 0},children:s&&n})})});function G(e,t){return`${e}-trigger-${t}`}function _(e,t){return`${e}-content-${t}`}U.displayName=$,e.s(["Content",()=>U,"List",()=>V,"Root",()=>H,"Tabs",()=>H,"TabsContent",()=>U,"TabsList",()=>V,"TabsTrigger",()=>K,"Trigger",()=>K,"createTabsScope",()=>F],43133);var W=e.i(43133),W=W,X=e.i(31777);let J=W.Root,Q=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(W.List,{ref:a,className:(0,X.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...s}));Q.displayName=W.List.displayName;let Y=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(W.Trigger,{ref:a,className:(0,X.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...s}));Y.displayName=W.Trigger.displayName;let Z=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(W.Content,{ref:a,className:(0,X.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...s}));Z.displayName=W.Content.displayName,e.s(["Tabs",()=>J,"TabsContent",()=>Z,"TabsList",()=>Q,"TabsTrigger",()=>Y],68304)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},2287,60253,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(90033),i=e.i(90537);e.s(["X",()=>i.default],60253);var i=i,r=e.i(31777);let l=a.Dialog.Root;a.Dialog.Trigger;let n=a.Dialog.Portal;a.Dialog.Close;let o=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Dialog.Overlay,{ref:i,className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",e),...s}));o.displayName=a.Dialog.Overlay.displayName;let d=s.forwardRef(({className:e,children:s,...l},d)=>(0,t.jsxs)(n,{children:[(0,t.jsx)(o,{}),(0,t.jsxs)(a.Dialog.Content,{ref:d,className:(0,r.cn)("bg-background 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...l,children:[s,(0,t.jsxs)(a.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(i.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));d.displayName=a.Dialog.Content.displayName;let c=({className:e,...s})=>(0,t.jsx)("div",{className:(0,r.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...s});c.displayName="DialogHeader";let u=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Dialog.Title,{ref:i,className:(0,r.cn)("text-lg leading-none font-semibold tracking-tight",e),...s}));u.displayName=a.Dialog.Title.displayName;let f=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Dialog.Description,{ref:i,className:(0,r.cn)("text-muted-foreground text-sm",e),...s}));f.displayName=a.Dialog.Description.displayName,e.s(["Dialog",()=>l,"DialogContent",()=>d,"DialogDescription",()=>f,"DialogHeader",()=>c,"DialogTitle",()=>u],2287)},1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t])},30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t])},54277,e=>{"use strict";var t=e.i(30090);e.s(["CircleX",()=>t.default])},23925,e=>{"use strict";var t=e.i(1012);e.s(["Check",()=>t.default])},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},44412,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(81975),i=e.i(68304),r=e.i(31777),l=e.i(30702),n=e.i(83428),o=e.i(3645);let d=(0,o.default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),c=(0,o.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),u=(0,o.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var f=e.i(38573),m=e.i(49228),h=e.i(54277),p=e.i(23925);let x=(0,o.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var g=e.i(35364),y=e.i(33548),v=e.i(2287);function b({tool:e,open:a,onOpenChange:i,className:n}){let[o,d]=(0,s.useState)(!1);return(0,t.jsx)(v.Dialog,{open:a,onOpenChange:i,children:(0,t.jsxs)(v.DialogContent,{"data-testid":"install-instructions",className:(0,r.cn)("sm:max-w-2xl",n),children:[(0,t.jsxs)(v.DialogHeader,{children:[(0,t.jsxs)(v.DialogTitle,{"data-testid":"install-instructions-title",children:["Install ",e.name]}),(0,t.jsx)(v.DialogDescription,{"data-testid":"install-instructions-description",children:e.summary})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[e.installCommand&&e.autoInstall?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Installation command"}),(0,t.jsxs)("div",{className:"bg-muted relative rounded-md",children:[(0,t.jsx)("pre",{"data-testid":"install-instructions-command",className:"overflow-x-auto px-3 py-2.5 pr-20 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(g.Button,{variant:"ghost",size:"sm",className:"absolute top-1.5 right-1.5 h-7 cursor-pointer px-2",onClick:function(){e.installCommand&&navigator.clipboard.writeText(e.installCommand).then(()=>{d(!0),setTimeout(()=>d(!1),2e3)})},"aria-label":o?"Copied!":"Copy install command","data-testid":"install-instructions-copy-button",children:[o?(0,t.jsx)(p.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(y.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1 text-[10px]",children:o?"Copied!":"Copy"})]})]})]}):e.installCommand?(0,t.jsx)("p",{"data-testid":"install-instructions-command",className:"text-muted-foreground text-sm",children:e.installCommand}):(0,t.jsx)("p",{"data-testid":"install-instructions-no-command",className:"text-muted-foreground text-sm",children:"Please refer to the documentation for installation instructions."}),e.documentationUrl?(0,t.jsx)(g.Button,{variant:"outline",size:"sm",className:"w-fit cursor-pointer",asChild:!0,children:(0,t.jsxs)("a",{"data-testid":"install-instructions-doc-link",href:e.documentationUrl,target:"_blank",rel:"noopener noreferrer",children:["View documentation",(0,t.jsx)(l.ExternalLink,{className:"ml-1.5 h-3.5 w-3.5"})]})}):null]})]})})}let j={ide:{label:"IDE",icon:u},"cli-agent":{label:"CLI Agent",icon:f.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:f.Terminal}};function w({tool:e,onRefresh:a,className:i}){let[o,f]=(0,s.useState)(!1),[m,y]=(0,s.useTransition)(),v="available"===e.status.status,w="error"===e.status.status,k=v&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",className:(0,r.cn)("bg-card group flex h-30 w-full flex-col rounded-lg border p-3 shadow-sm transition-shadow hover:shadow-md",i),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:20,height:20,className:"shrink-0 dark:invert"}):(0,t.jsx)(x,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"truncate text-sm font-bold",children:e.name})]}),(0,t.jsx)("div",{"data-testid":"tool-card-tags",className:"flex shrink-0 items-center gap-1",children:e.tags.map(e=>{let s=j[e]??{label:e,icon:u},a=s.icon;return(0,t.jsxs)("span",{className:"bg-muted text-muted-foreground inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[10px] font-medium",children:[(0,t.jsx)(a,{className:"h-2.5 w-2.5"}),s.label]},e)})})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground mt-1 truncate text-xs",children:e.summary}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[w&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate text-[10px] text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(h.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):v?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(p.Check,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsx)("span",{className:"text-muted-foreground text-[10px]",children:"Not installed"}),e.required?(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] italic",children:"Required"}):null]}),v&&k?(0,t.jsxs)(g.Button,{size:"sm",variant:"ghost",onClick:function(){y(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:m,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"hover:bg-primary hover:text-primary-foreground h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(n.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(d,{className:"mr-1 h-3 w-3"}),"Launch"]}):v||w||!e.autoInstall?v||w?null:(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>f(!0),"aria-label":`View install instructions for ${e.name}`,"data-testid":"tool-card-manual-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[(0,t.jsx)(l.ExternalLink,{className:"mr-1 h-3 w-3"}),"Install"]}):(0,t.jsxs)(g.Button,{size:"sm",onClick:function(){y(async()=>{(await fetch(`/api/tools/${e.id}/install`,{method:"POST"})).ok&&a&&await a()})},disabled:m,"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(n.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(c,{className:"mr-1 h-3 w-3"}),m?"Installing…":"Install"]})]})]}),(0,t.jsx)(b,{tool:e,open:o,onOpenChange:f})]})}let k={all:()=>!0,ide:e=>e.tags.includes("ide"),"cli-agent":e=>e.tags.includes("cli-agent"),vcs:e=>e.tags.includes("vcs"),terminal:e=>e.tags.includes("terminal")};function N({tools:e,className:l}){let[n,o]=(0,s.useState)(e),[d,c]=(0,s.useState)("all");async function u(){try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}}let f=n.filter(k[d]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,r.cn)("space-y-4",l),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.Wrench,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:[n.filter(e=>"available"===e.status.status).length,"/",n.length," installed"]})]}),(0,t.jsxs)(i.Tabs,{value:d,onValueChange:e=>c(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(i.TabsList,{className:"h-7",children:[(0,t.jsx)(i.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(i.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(i.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(i.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(i.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(i.TabsContent,{value:d,className:"mt-3",children:0===f.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-12 text-center",children:[(0,t.jsx)(a.Wrench,{className:"mb-2 h-6 w-6 opacity-20"}),(0,t.jsx)("p",{className:"text-xs",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:f.map(e=>(0,t.jsx)(w,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>N],44412)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68304,87342,51080,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(91967),i=e.i(22528),r=e.i(5978),l=e.i(86874);function n(e){let a=e+"CollectionProvider",[n,o]=(0,i.createContextScope)(a),[d,c]=n(a,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:a,children:i}=e,r=s.default.useRef(null),l=s.default.useRef(new Map).current;return(0,t.jsx)(d,{scope:a,itemMap:l,collectionRef:r,children:i})};u.displayName=a;let f=e+"CollectionSlot",m=(0,l.createSlot)(f),h=s.default.forwardRef((e,s)=>{let{scope:a,children:i}=e,l=c(f,a),n=(0,r.useComposedRefs)(s,l.collectionRef);return(0,t.jsx)(m,{ref:n,children:i})});h.displayName=f;let p=e+"CollectionItemSlot",x="data-radix-collection-item",g=(0,l.createSlot)(p),y=s.default.forwardRef((e,a)=>{let{scope:i,children:l,...n}=e,o=s.default.useRef(null),d=(0,r.useComposedRefs)(a,o),u=c(p,i);return s.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...n}),()=>void u.itemMap.delete(o))),(0,t.jsx)(g,{...{[x]:""},ref:d,children:l})});return y.displayName=p,[{Provider:u,Slot:h,ItemSlot:y},function(t){let a=c(e+"CollectionConsumer",t);return s.default.useCallback(()=>{let e=a.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${x}]`));return Array.from(a.itemMap.values()).sort((e,s)=>t.indexOf(e.ref.current)-t.indexOf(s.ref.current))},[a.collectionRef,a.itemMap])},o]}var o=new WeakMap;function d(e,t){var s,a;let i,r,l;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let n=(s=e,a=t,i=s.length,(l=(r=c(a))>=0?r:i+r)<0||l>=i?-1:l);return -1===n?void 0:e[n]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],o.set(this,!0)}set(e,t){return o.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,s){let a,i=this.has(t),r=this.#e.length,l=c(e),n=l>=0?l:r+l,o=n<0||n>=r?-1:n;if(o===this.size||i&&o===this.size-1||-1===o)return this.set(t,s),this;let d=this.size+ +!i;l<0&&n++;let u=[...this.#e],f=!1;for(let e=n;e<d;e++)if(n===e){let r=u[e];u[e]===t&&(r=u[e+1]),i&&this.delete(t),a=this.get(r),this.set(t,s)}else{f||u[e-1]!==t||(f=!0);let s=u[f?e:e-1],i=a;a=this.get(s),this.delete(s),this.set(s,i)}return this}with(t,s,a){let i=new e(this);return i.insert(t,s,a),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a,t,s)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a+1,t,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=d(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=d(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return d(this.#e,e)}from(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.at(a)}keyFrom(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.keyAt(a)}find(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return a;s++}}findIndex(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return s;s++}return -1}filter(t,s){let a=[],i=0;for(let e of this)Reflect.apply(t,s,[e,i,this])&&a.push(e),i++;return new e(a)}map(t,s){let a=[],i=0;for(let e of this)a.push([e[0],Reflect.apply(t,s,[e,i,this])]),i++;return new e(a)}reduce(...e){let[t,s]=e,a=0,i=s??this.at(0);for(let s of this)i=0===a&&1===e.length?s:Reflect.apply(t,this,[i,s,a,this]),a++;return i}reduceRight(...e){let[t,s]=e,a=s??this.at(-1);for(let s=this.size-1;s>=0;s--){let i=this.at(s);a=s===this.size-1&&1===e.length?i:Reflect.apply(t,this,[a,i,s,this])}return a}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let s=this.keyAt(e),a=this.get(s);t.set(s,a)}return t}toSpliced(...t){let s=[...this.entries()];return s.splice(...t),new e(s)}slice(t,s){let a=new e,i=this.size-1;if(void 0===t)return a;t<0&&(t+=this.size),void 0!==s&&s>0&&(i=s-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),s=this.get(t);a.set(t,s)}return a}every(e,t){let s=0;for(let a of this){if(!Reflect.apply(e,t,[a,s,this]))return!1;s++}return!0}some(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return!0;s++}return!1}}),e.s(["createCollection",()=>n],87342);var u=e.i(13123),f=e.i(87620),m=e.i(29297),h=e.i(36589),p=e.i(66033),x="rovingFocusGroup.onEntryFocus",g={bubbles:!1,cancelable:!0},y="RovingFocusGroup",[v,b,j]=n(y),[w,k]=(0,i.createContextScope)(y,[j]),[N,C]=w(y),T=s.forwardRef((e,s)=>(0,t.jsx)(v.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(v.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(R,{...e,ref:s})})}));T.displayName=y;var R=s.forwardRef((e,i)=>{let{__scopeRovingFocusGroup:l,orientation:n,loop:o=!1,dir:d,currentTabStopId:c,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:v,onEntryFocus:j,preventScrollOnEntryFocus:w=!1,...k}=e,C=s.useRef(null),T=(0,r.useComposedRefs)(i,C),R=(0,p.useDirection)(d),[D,A]=(0,h.useControllableState)({prop:c,defaultProp:u??null,onChange:v,caller:y}),[I,S]=s.useState(!1),z=(0,m.useCallbackRef)(j),E=b(l),F=s.useRef(!1),[P,L]=s.useState(0);return s.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(x,z),()=>e.removeEventListener(x,z)},[z]),(0,t.jsx)(N,{scope:l,orientation:n,dir:R,loop:o,currentTabStopId:D,onItemFocus:s.useCallback(e=>A(e),[A]),onItemShiftTab:s.useCallback(()=>S(!0),[]),onFocusableItemAdd:s.useCallback(()=>L(e=>e+1),[]),onFocusableItemRemove:s.useCallback(()=>L(e=>e-1),[]),children:(0,t.jsx)(f.Primitive.div,{tabIndex:I||0===P?-1:0,"data-orientation":n,...k,ref:T,style:{outline:"none",...e.style},onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,()=>{F.current=!0}),onFocus:(0,a.composeEventHandlers)(e.onFocus,e=>{let t=!F.current;if(e.target===e.currentTarget&&t&&!I){let t=new CustomEvent(x,g);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=E().filter(e=>e.focusable);M([e.find(e=>e.active),e.find(e=>e.id===D),...e].filter(Boolean).map(e=>e.ref.current),w)}}F.current=!1}),onBlur:(0,a.composeEventHandlers)(e.onBlur,()=>S(!1))})})}),D="RovingFocusGroupItem",A=s.forwardRef((e,i)=>{let{__scopeRovingFocusGroup:r,focusable:l=!0,active:n=!1,tabStopId:o,children:d,...c}=e,m=(0,u.useId)(),h=o||m,p=C(D,r),x=p.currentTabStopId===h,g=b(r),{onFocusableItemAdd:y,onFocusableItemRemove:j,currentTabStopId:w}=p;return s.useEffect(()=>{if(l)return y(),()=>j()},[l,y,j]),(0,t.jsx)(v.ItemSlot,{scope:r,id:h,focusable:l,active:n,children:(0,t.jsx)(f.Primitive.span,{tabIndex:x?0:-1,"data-orientation":p.orientation,...c,ref:i,onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,e=>{l?p.onItemFocus(h):e.preventDefault()}),onFocus:(0,a.composeEventHandlers)(e.onFocus,()=>p.onItemFocus(h)),onKeyDown:(0,a.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,s){var a;let i=(a=e.key,"rtl"!==s?a:"ArrowLeft"===a?"ArrowRight":"ArrowRight"===a?"ArrowLeft":a);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(i))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(i)))return I[i]}(e,p.orientation,p.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=g().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)i.reverse();else if("prev"===t||"next"===t){var s,a;"prev"===t&&i.reverse();let r=i.indexOf(e.currentTarget);i=p.loop?(s=i,a=r+1,s.map((e,t)=>s[(a+t)%s.length])):i.slice(r+1)}setTimeout(()=>M(i))}}),children:"function"==typeof d?d({isCurrentTabStop:x,hasTabStop:null!=w}):d})})});A.displayName=D;var I={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function M(e,t=!1){let s=document.activeElement;for(let a of e)if(a===s||(a.focus({preventScroll:t}),document.activeElement!==s))return}e.s(["Item",()=>A,"Root",()=>T,"createRovingFocusGroupScope",()=>k],51080);var S=e.i(85995),z="Tabs",[E,F]=(0,i.createContextScope)(z,[k]),P=k(),[L,O]=E(z),H=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:i,onValueChange:r,defaultValue:l,orientation:n="horizontal",dir:o,activationMode:d="automatic",...c}=e,m=(0,p.useDirection)(o),[x,g]=(0,h.useControllableState)({prop:i,onChange:r,defaultProp:l??"",caller:z});return(0,t.jsx)(L,{scope:a,baseId:(0,u.useId)(),value:x,onValueChange:g,orientation:n,dir:m,activationMode:d,children:(0,t.jsx)(f.Primitive.div,{dir:m,"data-orientation":n,...c,ref:s})})});H.displayName=z;var q="TabsList",V=s.forwardRef((e,s)=>{let{__scopeTabs:a,loop:i=!0,...r}=e,l=O(q,a),n=P(a);return(0,t.jsx)(T,{asChild:!0,...n,orientation:l.orientation,dir:l.dir,loop:i,children:(0,t.jsx)(f.Primitive.div,{role:"tablist","aria-orientation":l.orientation,...r,ref:s})})});V.displayName=q;var B="TabsTrigger",K=s.forwardRef((e,s)=>{let{__scopeTabs:i,value:r,disabled:l=!1,...n}=e,o=O(B,i),d=P(i),c=G(o.baseId,r),u=_(o.baseId,r),m=r===o.value;return(0,t.jsx)(A,{asChild:!0,...d,focusable:!l,active:m,children:(0,t.jsx)(f.Primitive.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":u,"data-state":m?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:c,...n,ref:s,onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,e=>{l||0!==e.button||!1!==e.ctrlKey?e.preventDefault():o.onValueChange(r)}),onKeyDown:(0,a.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&o.onValueChange(r)}),onFocus:(0,a.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==o.activationMode;m||l||!e||o.onValueChange(r)})})})});K.displayName=B;var $="TabsContent",U=s.forwardRef((e,a)=>{let{__scopeTabs:i,value:r,forceMount:l,children:n,...o}=e,d=O($,i),c=G(d.baseId,r),u=_(d.baseId,r),m=r===d.value,h=s.useRef(m);return s.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(S.Presence,{present:l||m,children:({present:s})=>(0,t.jsx)(f.Primitive.div,{"data-state":m?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":c,hidden:!s,id:u,tabIndex:0,...o,ref:a,style:{...e.style,animationDuration:h.current?"0s":void 0},children:s&&n})})});function G(e,t){return`${e}-trigger-${t}`}function _(e,t){return`${e}-content-${t}`}U.displayName=$,e.s(["Content",()=>U,"List",()=>V,"Root",()=>H,"Tabs",()=>H,"TabsContent",()=>U,"TabsList",()=>V,"TabsTrigger",()=>K,"Trigger",()=>K,"createTabsScope",()=>F],43133);var W=e.i(43133),W=W,X=e.i(31777);let J=W.Root,Q=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(W.List,{ref:a,className:(0,X.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...s}));Q.displayName=W.List.displayName;let Y=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(W.Trigger,{ref:a,className:(0,X.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...s}));Y.displayName=W.Trigger.displayName;let Z=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(W.Content,{ref:a,className:(0,X.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...s}));Z.displayName=W.Content.displayName,e.s(["Tabs",()=>J,"TabsContent",()=>Z,"TabsList",()=>Q,"TabsTrigger",()=>Y],68304)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},2287,60253,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(90033),i=e.i(90537);e.s(["X",()=>i.default],60253);var i=i,r=e.i(31777);let l=a.Dialog.Root;a.Dialog.Trigger;let n=a.Dialog.Portal,o=a.Dialog.Close,d=s.forwardRef(({className:e,onClick:s,...i},l)=>(0,t.jsx)(a.Dialog.Overlay,{ref:l,className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",e),onClick:e=>{e.stopPropagation(),s?.(e)},...i}));d.displayName=a.Dialog.Overlay.displayName;let c=s.forwardRef(({className:e,children:s,...l},o)=>(0,t.jsxs)(n,{children:[(0,t.jsx)(d,{}),(0,t.jsxs)(a.Dialog.Content,{ref:o,className:(0,r.cn)("bg-background 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...l,children:[s,(0,t.jsxs)(a.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(i.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));c.displayName=a.Dialog.Content.displayName;let u=({className:e,...s})=>(0,t.jsx)("div",{className:(0,r.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...s});u.displayName="DialogHeader";let f=({className:e,...s})=>(0,t.jsx)("div",{className:(0,r.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...s});f.displayName="DialogFooter";let m=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Dialog.Title,{ref:i,className:(0,r.cn)("text-lg leading-none font-semibold tracking-tight",e),...s}));m.displayName=a.Dialog.Title.displayName;let h=s.forwardRef(({className:e,...s},i)=>(0,t.jsx)(a.Dialog.Description,{ref:i,className:(0,r.cn)("text-muted-foreground text-sm",e),...s}));h.displayName=a.Dialog.Description.displayName,e.s(["Dialog",()=>l,"DialogClose",()=>o,"DialogContent",()=>c,"DialogDescription",()=>h,"DialogFooter",()=>f,"DialogHeader",()=>u,"DialogTitle",()=>m],2287)},1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t])},30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t])},54277,e=>{"use strict";var t=e.i(30090);e.s(["CircleX",()=>t.default])},23925,e=>{"use strict";var t=e.i(1012);e.s(["Check",()=>t.default])},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},44412,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(81975),i=e.i(68304),r=e.i(31777),l=e.i(30702),n=e.i(83428),o=e.i(3645);let d=(0,o.default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),c=(0,o.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),u=(0,o.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var f=e.i(38573),m=e.i(49228),h=e.i(54277),p=e.i(23925);let x=(0,o.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var g=e.i(35364),y=e.i(33548),v=e.i(2287);function b({tool:e,open:a,onOpenChange:i,className:n}){let[o,d]=(0,s.useState)(!1);return(0,t.jsx)(v.Dialog,{open:a,onOpenChange:i,children:(0,t.jsxs)(v.DialogContent,{"data-testid":"install-instructions",className:(0,r.cn)("sm:max-w-2xl",n),children:[(0,t.jsxs)(v.DialogHeader,{children:[(0,t.jsxs)(v.DialogTitle,{"data-testid":"install-instructions-title",children:["Install ",e.name]}),(0,t.jsx)(v.DialogDescription,{"data-testid":"install-instructions-description",children:e.summary})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[e.installCommand&&e.autoInstall?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Installation command"}),(0,t.jsxs)("div",{className:"bg-muted relative rounded-md",children:[(0,t.jsx)("pre",{"data-testid":"install-instructions-command",className:"overflow-x-auto px-3 py-2.5 pr-20 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(g.Button,{variant:"ghost",size:"sm",className:"absolute top-1.5 right-1.5 h-7 cursor-pointer px-2",onClick:function(){e.installCommand&&navigator.clipboard.writeText(e.installCommand).then(()=>{d(!0),setTimeout(()=>d(!1),2e3)})},"aria-label":o?"Copied!":"Copy install command","data-testid":"install-instructions-copy-button",children:[o?(0,t.jsx)(p.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(y.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1 text-[10px]",children:o?"Copied!":"Copy"})]})]})]}):e.installCommand?(0,t.jsx)("p",{"data-testid":"install-instructions-command",className:"text-muted-foreground text-sm",children:e.installCommand}):(0,t.jsx)("p",{"data-testid":"install-instructions-no-command",className:"text-muted-foreground text-sm",children:"Please refer to the documentation for installation instructions."}),e.documentationUrl?(0,t.jsx)(g.Button,{variant:"outline",size:"sm",className:"w-fit cursor-pointer",asChild:!0,children:(0,t.jsxs)("a",{"data-testid":"install-instructions-doc-link",href:e.documentationUrl,target:"_blank",rel:"noopener noreferrer",children:["View documentation",(0,t.jsx)(l.ExternalLink,{className:"ml-1.5 h-3.5 w-3.5"})]})}):null]})]})})}let j={ide:{label:"IDE",icon:u},"cli-agent":{label:"CLI Agent",icon:f.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:f.Terminal}};function w({tool:e,onRefresh:a,className:i}){let[o,f]=(0,s.useState)(!1),[m,y]=(0,s.useTransition)(),v="available"===e.status.status,w="error"===e.status.status,k=v&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",className:(0,r.cn)("bg-card group flex h-30 w-full flex-col rounded-lg border p-3 shadow-sm transition-shadow hover:shadow-md",i),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:20,height:20,className:"shrink-0 dark:invert"}):(0,t.jsx)(x,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"truncate text-sm font-bold",children:e.name})]}),(0,t.jsx)("div",{"data-testid":"tool-card-tags",className:"flex shrink-0 items-center gap-1",children:e.tags.map(e=>{let s=j[e]??{label:e,icon:u},a=s.icon;return(0,t.jsxs)("span",{className:"bg-muted text-muted-foreground inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[10px] font-medium",children:[(0,t.jsx)(a,{className:"h-2.5 w-2.5"}),s.label]},e)})})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground mt-1 truncate text-xs",children:e.summary}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[w&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate text-[10px] text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(h.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):v?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(p.Check,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsx)("span",{className:"text-muted-foreground text-[10px]",children:"Not installed"}),e.required?(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] italic",children:"Required"}):null]}),v&&k?(0,t.jsxs)(g.Button,{size:"sm",variant:"ghost",onClick:function(){y(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:m,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"hover:bg-primary hover:text-primary-foreground h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(n.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(d,{className:"mr-1 h-3 w-3"}),"Launch"]}):v||w||!e.autoInstall?v||w?null:(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>f(!0),"aria-label":`View install instructions for ${e.name}`,"data-testid":"tool-card-manual-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[(0,t.jsx)(l.ExternalLink,{className:"mr-1 h-3 w-3"}),"Install"]}):(0,t.jsxs)(g.Button,{size:"sm",onClick:function(){y(async()=>{(await fetch(`/api/tools/${e.id}/install`,{method:"POST"})).ok&&a&&await a()})},disabled:m,"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(n.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(c,{className:"mr-1 h-3 w-3"}),m?"Installing…":"Install"]})]})]}),(0,t.jsx)(b,{tool:e,open:o,onOpenChange:f})]})}let k={all:()=>!0,ide:e=>e.tags.includes("ide"),"cli-agent":e=>e.tags.includes("cli-agent"),vcs:e=>e.tags.includes("vcs"),terminal:e=>e.tags.includes("terminal")};function N({tools:e,className:l}){let[n,o]=(0,s.useState)(e),[d,c]=(0,s.useState)("all");async function u(){try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}}let f=n.filter(k[d]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,r.cn)("space-y-4",l),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.Wrench,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:[n.filter(e=>"available"===e.status.status).length,"/",n.length," installed"]})]}),(0,t.jsxs)(i.Tabs,{value:d,onValueChange:e=>c(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(i.TabsList,{className:"h-7",children:[(0,t.jsx)(i.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(i.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(i.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(i.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(i.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(i.TabsContent,{value:d,className:"mt-3",children:0===f.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-12 text-center",children:[(0,t.jsx)(a.Wrench,{className:"mb-2 h-6 w-6 opacity-20"}),(0,t.jsx)("p",{className:"text-xs",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:f.map(e=>(0,t.jsx)(w,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>N],44412)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t])},54277,e=>{"use strict";var t=e.i(30090);e.s(["CircleX",()=>t.default])},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},23925,e=>{"use strict";var t=e.i(1012);e.s(["Check",()=>t.default])},1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t])},16298,e=>{"use strict";let t=(0,e.i(3645).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(["default",()=>t])},69512,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["default",()=>t])},54793,7729,e=>{"use strict";var t=e.i(20314),a=e.i(31777);function r({icon:e,title:r,description:l,action:s,className:o,...i}){return(0,t.jsxs)("div",{className:(0,a.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",o),...i,children:[e?(0,t.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:r}),l?(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:l}):null,s?(0,t.jsx)("div",{className:"mt-2",children:s}):null]})}e.s(["EmptyState",()=>r],7729),e.s([],54793)},81846,e=>{"use strict";var t=e.i(20314),a=e.i(94237),r=e.i(31777);let l=(0,a.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{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 s({className:e,variant:a,...s}){return(0,t.jsx)("div",{className:(0,r.cn)(l({variant:a}),e),...s})}e.s(["Badge",()=>s])},2287,60253,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(90033),l=e.i(90537);e.s(["X",()=>l.default],60253);var l=l,s=e.i(31777);let o=r.Dialog.Root;r.Dialog.Trigger;let i=r.Dialog.Portal,n=r.Dialog.Close,d=a.forwardRef(({className:e,onClick:a,...l},o)=>(0,t.jsx)(r.Dialog.Overlay,{ref:o,className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",e),onClick:e=>{e.stopPropagation(),a?.(e)},...l}));d.displayName=r.Dialog.Overlay.displayName;let c=a.forwardRef(({className:e,children:a,...o},n)=>(0,t.jsxs)(i,{children:[(0,t.jsx)(d,{}),(0,t.jsxs)(r.Dialog.Content,{ref:n,className:(0,s.cn)("bg-background 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...o,children:[a,(0,t.jsxs)(r.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(l.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));c.displayName=r.Dialog.Content.displayName;let u=({className:e,...a})=>(0,t.jsx)("div",{className:(0,s.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...a});u.displayName="DialogHeader";let f=({className:e,...a})=>(0,t.jsx)("div",{className:(0,s.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...a});f.displayName="DialogFooter";let p=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(r.Dialog.Title,{ref:l,className:(0,s.cn)("text-lg leading-none font-semibold tracking-tight",e),...a}));p.displayName=r.Dialog.Title.displayName;let m=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(r.Dialog.Description,{ref:l,className:(0,s.cn)("text-muted-foreground text-sm",e),...a}));m.displayName=r.Dialog.Description.displayName,e.s(["Dialog",()=>o,"DialogClose",()=>n,"DialogContent",()=>c,"DialogDescription",()=>m,"DialogFooter",()=>f,"DialogHeader",()=>u,"DialogTitle",()=>p],2287)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},19933,e=>{"use strict";let t=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],19933)},8986,27431,78036,92,e=>{"use strict";let t=(0,e.i(3645).default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);e.s(["Code2",()=>t],8986);var a=e.i(21023);let r=(0,a.createServerReference)("40ba682dbe274bdf04e51dfd27c2a4eeff1d95c817",a.callServer,void 0,a.findSourceMapURL,"openIde");e.s(["openIde",()=>r],27431);let l=(0,a.createServerReference)("4005a4e90f82bf960ea223d961b7ceb4ee7273fbfe",a.callServer,void 0,a.findSourceMapURL,"openShell");e.s(["openShell",()=>l],78036);let s=(0,a.createServerReference)("402b6975b9af5a5c21a021ab1a56dc0712ff55d2c4",a.callServer,void 0,a.findSourceMapURL,"openFolder");e.s(["openFolder",()=>s],92)},76852,e=>{"use strict";var t=e.i(79054),a=e.i(27431),r=e.i(78036),l=e.i(92);function s(e){let[s,o]=(0,t.useState)(!1),[i,n]=(0,t.useState)(!1),[d,c]=(0,t.useState)(!1),[u,f]=(0,t.useState)(null),[p,m]=(0,t.useState)(null),[g,y]=(0,t.useState)(null),h=(0,t.useRef)(null),x=(0,t.useRef)(null),v=(0,t.useRef)(null);(0,t.useEffect)(()=>{let e=h.current,t=x.current,a=v.current;return()=>{e&&clearTimeout(e),t&&clearTimeout(t),a&&clearTimeout(a)}},[]);let b=(0,t.useCallback)(async(t,a,r,l,s)=>{if(e&&!s){l.current&&clearTimeout(l.current),a(!0),r(null);try{let a=await t({repositoryPath:e.repositoryPath});if(!a.success){let e=a.error??"An unexpected error occurred";r(e),l.current=setTimeout(()=>r(null),5e3)}}catch(e){r(e instanceof Error?e.message:"An unexpected error occurred"),l.current=setTimeout(()=>r(null),5e3)}finally{a(!1)}}},[e]),k=(0,t.useCallback)(async(t,a,r,l,s)=>{if(e&&!s){l.current&&clearTimeout(l.current),a(!0),r(null);try{let a=await t(e.repositoryPath);if(!a.success){let e=a.error??"An unexpected error occurred";r(e),l.current=setTimeout(()=>r(null),5e3)}}catch(e){r(e instanceof Error?e.message:"An unexpected error occurred"),l.current=setTimeout(()=>r(null),5e3)}finally{a(!1)}}},[e]);return{openInIde:(0,t.useCallback)(()=>b(a.openIde,o,f,h,s),[b,s]),openInShell:(0,t.useCallback)(()=>b(r.openShell,n,m,x,i),[b,i]),openFolder:(0,t.useCallback)(()=>k(l.openFolder,c,y,v,d),[k,d]),ideLoading:s,shellLoading:i,folderLoading:d,ideError:u,shellError:p,folderError:g}}e.s(["useRepositoryActions",()=>s])}]);
|