@shepai/cli 1.72.9-pr220.e1bfec0 → 1.72.9-pr220.f17b60a
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/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +2 -4
- package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-feature-node-data.js +2 -26
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-graph-nodes.js +2 -26
- 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 +0 -2
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +2 -0
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +11 -11
- 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 +17 -27
- package/dist/src/presentation/web/components/common/control-center-drawer/index.d.ts +0 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/index.js +0 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts +25 -0
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +45 -2
- package/dist/src/presentation/web/components/common/index.d.ts +1 -2
- package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/index.js +1 -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 +3 -4
- 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 +46 -58
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -13
- package/dist/src/presentation/web/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/alert-dialog.js +2 -2
- package/dist/src/presentation/web/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/dialog.js +2 -2
- package/dist/src/presentation/web/hooks/use-agent-events.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-agent-events.js +6 -3
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts +2 -1
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +50 -23
- package/dist/src/presentation/web/hooks/use-notifications.d.ts +1 -5
- package/dist/src/presentation/web/hooks/use-notifications.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-notifications.js +1 -26
- package/dist/src/presentation/web/hooks/use-notifications.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-notifications.stories.js +28 -38
- 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/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +15 -15
- 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 +18 -18
- 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 +13 -13
- 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 +15 -15
- 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 +18 -18
- 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 +13 -13
- 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 +13 -13
- 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.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page.js.nft.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_816618e2.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_816618e2.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js.map +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]__6cbc1149._.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]__94a6d275._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.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/_0e9d6bf7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_250a63ae._.js +1 -1
- package/web/.next/server/chunks/ssr/_250a63ae._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_63688261._.js → _8e87c87b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_63688261._.js.map → _8e87c87b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
- package/web/.next/server/chunks/ssr/_9f940437._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.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_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.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/chunks/ssr/src_presentation_web_d5b0cb86._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_d5b0cb86._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.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 +21 -21
- 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/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +15 -15
- 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 +18 -18
- 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 +13 -13
- 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 +15 -15
- 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 +18 -18
- 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 +13 -13
- 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 +13 -13
- 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.js.nft.json +1 -1
- 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 +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.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_816618e2.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_ba2e050f.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.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]__6cbc1149._.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]__94a6d275._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.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/_0e9d6bf7._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_250a63ae._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_63688261._.js → _8e87c87b._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_2b91e4ec._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5bcc1537._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_5955c012.js +1 -1
- 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_e599bb8c._.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/chunks/ssr/src_presentation_web_d5b0cb86._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_e626b63c._.js +2 -2
- 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 +21 -21
- package/web/.next/standalone/src/presentation/web/app/build-feature-node-data.ts +3 -30
- package/web/.next/standalone/src/presentation/web/app/build-graph-nodes.ts +3 -30
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx +0 -2
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/drawer-view.ts +12 -13
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx +21 -37
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/index.ts +0 -1
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/derive-feature-state.ts +63 -2
- package/web/.next/standalone/src/presentation/web/components/common/index.ts +1 -7
- package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +12 -21
- package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +65 -70
- package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +1 -18
- package/web/.next/standalone/src/presentation/web/components/ui/alert-dialog.tsx +2 -5
- package/web/.next/standalone/src/presentation/web/components/ui/dialog.tsx +2 -5
- package/web/.next/standalone/src/presentation/web/hooks/use-agent-events.ts +7 -3
- package/web/.next/standalone/src/presentation/web/hooks/use-graph-state.ts +104 -71
- package/web/.next/standalone/src/presentation/web/hooks/use-notifications.stories.tsx +2 -30
- package/web/.next/standalone/src/presentation/web/hooks/use-notifications.ts +2 -36
- package/web/.next/static/chunks/0ffccd7be73305c8.css +2 -0
- package/web/.next/static/chunks/3f205fd6adbfd20a.js +7 -0
- package/web/.next/static/chunks/76827713cb2b7333.js +1 -0
- package/web/.next/static/chunks/{c575ab63c138645b.js → 792aac476adb5875.js} +1 -1
- package/web/.next/static/chunks/7c8adcfd920a8f74.js +1 -0
- package/web/.next/static/chunks/{cdc92cdf81005c84.js → 83463b63971f5723.js} +1 -1
- package/web/.next/static/chunks/{63a80e9d4c4b0253.js → 98ca891a5c156aa5.js} +3 -3
- package/web/.next/static/chunks/{638824249d103905.js → 9b1770f05f1d95e5.js} +1 -1
- package/web/.next/static/chunks/a7f52757dff0cea0.js +1 -0
- package/web/.next/static/chunks/b6becf0de992842a.js +1 -0
- package/web/.next/static/chunks/{f32c98a709949c5b.js → cb41849bcfaa304e.js} +1 -1
- package/web/.next/static/chunks/d5e95c4482029a39.js +1 -0
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.d.ts +0 -12
- package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.js +0 -337
- package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.d.ts +0 -33
- package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.js +0 -214
- package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts +0 -2
- package/dist/src/presentation/web/components/common/notification-permission-banner/index.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/index.js +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts +0 -2
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.js +0 -33
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts +0 -6
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.js +0 -24
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.tsx +0 -293
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/control-center-drawer.tsx +0 -745
- package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/index.ts +0 -1
- package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.stories.tsx +0 -52
- package/web/.next/standalone/src/presentation/web/components/common/notification-permission-banner/notification-permission-banner.tsx +0 -55
- package/web/.next/static/chunks/0a883e2efecfd563.js +0 -1
- package/web/.next/static/chunks/0c54314c8c9c9739.js +0 -7
- package/web/.next/static/chunks/596ca28d78baae25.js +0 -1
- package/web/.next/static/chunks/71c9ecdceac1939f.css +0 -2
- package/web/.next/static/chunks/a040b058d79f4ade.js +0 -1
- package/web/.next/static/chunks/e05eb1cc84ee254a.js +0 -1
- package/web/.next/static/chunks/ef8f8940eac6c542.js +0 -1
- /package/web/.next/static/{uMxPSDPwZCludF5408rWJ → eg0FTlsA4z_7CXbFfMgAr}/_buildManifest.js +0 -0
- /package/web/.next/static/{uMxPSDPwZCludF5408rWJ → eg0FTlsA4z_7CXbFfMgAr}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{uMxPSDPwZCludF5408rWJ → eg0FTlsA4z_7CXbFfMgAr}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},24042,64970,e=>{"use strict";var t=e.i(3645);let n=(0,t.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",()=>n],24042);let r=(0,t.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",()=>r],64970)},81803,72714,e=>{"use strict";var t=e.i(20314),n=e.i(83428),r=e.i(51251),a=e.i(31777),o=e.i(35364),l=e.i(8361);function i({label:e,onClick:i,loading:s,error:u,icon:d,iconOnly:c=!1,variant:f="outline",size:p="sm"}){let m=(0,l.useSoundAction)("click");return(0,t.jsxs)(o.Button,{variant:f,size:p,"aria-label":e,disabled:s,onClick:()=>{m.play(),i()},className:(0,a.cn)("gap-1.5",u&&"text-destructive hover:text-destructive",!u&&c&&"ghost"===f&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[s?(0,t.jsx)(n.Loader2,{className:"size-4 animate-spin"}):u?(0,t.jsx)(r.CircleAlert,{className:"size-4"}):(0,t.jsx)(d,{className:"size-4"}),c?null:e]})}e.s(["ActionButton",()=>i],72714),e.s([],81803)},2287,e=>{"use strict";var t=e.i(20314),n=e.i(79054),r=e.i(90033),a=e.i(90537),a=a,o=e.i(31777);let l=r.Dialog.Root;r.Dialog.Trigger;let i=r.Dialog.Portal,s=r.Dialog.Close,u=n.forwardRef(({className:e,onClick:n,...a},l)=>(0,t.jsx)(r.Dialog.Overlay,{ref:l,className:(0,o.cn)("fixed inset-0 z-50 bg-black/80",e),onClick:e=>{e.stopPropagation(),n?.(e)},...a}));u.displayName=r.Dialog.Overlay.displayName;let d=n.forwardRef(({className:e,children:n,...l},s)=>(0,t.jsxs)(i,{children:[(0,t.jsx)(u,{}),(0,t.jsxs)(r.Dialog.Content,{ref:s,className:(0,o.cn)("bg-background 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 sm:rounded-lg",e),...l,children:[n,(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)(a.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));d.displayName=r.Dialog.Content.displayName;let c=({className:e,...n})=>(0,t.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...n});c.displayName="DialogHeader";let f=({className:e,...n})=>(0,t.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...n});f.displayName="DialogFooter";let p=n.forwardRef(({className:e,...n},a)=>(0,t.jsx)(r.Dialog.Title,{ref:a,className:(0,o.cn)("text-lg leading-none font-semibold tracking-tight",e),...n}));p.displayName=r.Dialog.Title.displayName;let m=n.forwardRef(({className:e,...n},a)=>(0,t.jsx)(r.Dialog.Description,{ref:a,className:(0,o.cn)("text-muted-foreground text-sm",e),...n}));m.displayName=r.Dialog.Description.displayName,e.s(["Dialog",()=>l,"DialogClose",()=>s,"DialogContent",()=>d,"DialogDescription",()=>m,"DialogFooter",()=>f,"DialogHeader",()=>c,"DialogTitle",()=>p],2287)},99348,17466,e=>{"use strict";var t=e.i(20314),n=e.i(79054),r=e.i(83428),a=e.i(30702),o=e.i(38573),l=e.i(17406),i=e.i(81846),s=e.i(2287),u=e.i(21023);let d=(0,u.createServerReference)("40c450b1381160b2bc8b67e6cd94ac9a7b1943db94",u.callServer,void 0,u.findSourceMapURL,"getDeploymentLogs");function c({open:e,onOpenChange:r,targetId:a}){let{logs:o,isConnected:l}=function(e){let[t,r]=(0,n.useState)([]),[a,o]=(0,n.useState)(!1),l=(0,n.useRef)(null),i=(0,n.useCallback)(()=>{l.current&&(l.current.close(),l.current=null),o(!1)},[]);return(0,n.useEffect)(()=>{if(!e){r([]),o(!1);return}d(e).then(e=>{e&&r(e)}).catch(()=>{});let t=new EventSource(`/api/deployment-logs?targetId=${e}`);return l.current=t,t.onopen=()=>{o(!0)},t.addEventListener("log",e=>{let t=JSON.parse(e.data);r(e=>[...e,t])}),t.onerror=()=>{o(!1)},()=>{t.close(),l.current=null}},[e,i]),{logs:t,isConnected:a}}(e?a:null);return(0,t.jsx)(f,{open:e,onOpenChange:r,logs:o,isConnected:l})}function f({open:e,onOpenChange:r,logs:a,isConnected:l}){let i=(0,n.useRef)(null),u=(0,n.useRef)(!0),d=(0,n.useCallback)(()=>{let e=i.current;e&&(u.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);return(0,n.useEffect)(()=>{u.current&&i.current&&(i.current.scrollTop=i.current.scrollHeight)},[a]),(0,t.jsx)(s.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(s.DialogContent,{className:"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg","aria-describedby":void 0,children:[(0,t.jsxs)(s.DialogHeader,{className:"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.Terminal,{className:"h-4 w-4 text-zinc-400"}),(0,t.jsx)(s.DialogTitle,{className:"text-sm font-medium text-zinc-100",children:"Server Logs"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 pr-8",children:[(0,t.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${l?"bg-green-500":"bg-zinc-500"}`}),(0,t.jsx)("span",{className:"text-xs text-zinc-400",children:l?"Connected":"Disconnected"})]})]}),(0,t.jsxs)("div",{ref:i,onScroll:d,className:"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed",children:[0===a.length?(0,t.jsx)("p",{className:"text-zinc-500",children:"Waiting for log output..."}):a.map(e=>(0,t.jsx)(p,{entry:e},`${e.timestamp}-${e.stream}-${e.line}`)),!l&&a.length>0&&(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-800 pt-2 text-zinc-500",children:"[Server stopped]"})]})]})})}function p({entry:e}){return(0,t.jsx)("div",{"data-stream":e.stream,className:"stderr"===e.stream?"text-red-400":"text-zinc-200",children:(0,t.jsx)("span",{className:"break-all whitespace-pre-wrap",children:e.line})})}function m({status:e,url:s,targetId:u}){let[d,f]=(0,n.useState)(!1),p=u&&(e===l.DeploymentState.Booting||e===l.DeploymentState.Ready);switch(e){case l.DeploymentState.Booting:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.Badge,{className:"border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50",children:[(0,t.jsx)(r.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),"Starting...",p?(0,t.jsx)("button",{type:"button","aria-label":"View server logs",className:"ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-blue-100",onClick:e=>{e.stopPropagation(),f(!0)},children:(0,t.jsx)(o.Terminal,{className:"h-3 w-3"})}):null]}),p?(0,t.jsx)(c,{open:d,onOpenChange:f,targetId:u}):null]});case l.DeploymentState.Ready:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.Badge,{className:"border-transparent bg-green-50 text-green-700 hover:bg-green-50",children:[(0,t.jsx)("span",{className:"mr-1 inline-block h-2 w-2 rounded-full bg-green-500"}),s?(0,t.jsxs)("a",{href:s,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 hover:underline",onClick:e=>e.stopPropagation(),children:[s,(0,t.jsx)(a.ExternalLink,{className:"h-3 w-3"})]}):"Ready",p?(0,t.jsx)("button",{type:"button","aria-label":"View server logs",className:"ml-1.5 inline-flex items-center rounded-sm p-0.5 hover:bg-green-100",onClick:e=>{e.stopPropagation(),f(!0)},children:(0,t.jsx)(o.Terminal,{className:"h-3 w-3"})}):null]}),p?(0,t.jsx)(c,{open:d,onOpenChange:f,targetId:u}):null]});default:return null}}e.s(["DeploymentStatusBadge",()=>m],17466),e.s([],99348)},45811,e=>{"use strict";let t;var n=e.i(20314),r=e.i(48249),a=e.i(567),o=e.i(79054);let l=o.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),i=()=>{let e=o.default.useContext(l);if(!e)throw Error("useDrawerContext must be used within a Drawer.Root");return e};function s(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function u(){return d(/^iPhone/)||d(/^iPad/)||d(/^Mac/)&&navigator.maxTouchPoints>1}function d(e){return"u">typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let c="u">typeof window?o.useLayoutEffect:o.useEffect;function f(...e){return(...t)=>{for(let n of e)"function"==typeof n&&n(...t)}}let p="u">typeof document&&window.visualViewport;function m(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}function g(e){for(m(e)&&(e=e.parentElement);e&&!m(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}let h=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),v=0;function w(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function y(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let t=g(e);if(t!==document.documentElement&&t!==document.body&&t!==e){let n=t.getBoundingClientRect().top,r=e.getBoundingClientRect().top;e.getBoundingClientRect().bottom>t.getBoundingClientRect().bottom+24&&(t.scrollTop+=r-n)}e=t.parentElement}}function x(e){return e instanceof HTMLInputElement&&!h.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function b(...e){return o.useCallback(function(...e){return t=>e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}(...e),e)}let D=new WeakMap;function j(e,t,n=!1){if(!e||!(e instanceof HTMLElement))return;let r={};Object.entries(t).forEach(([t,n])=>{t.startsWith("--")?e.style.setProperty(t,n):(r[t]=e.style[t],e.style[t]=n)}),n||D.set(e,r)}let C=e=>{switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}};function R(e,t){if(!e)return null;let n=window.getComputedStyle(e),r=n.transform||n.webkitTransform||n.mozTransform,a=r.match(/^matrix3d\((.+)\)$/);return a?parseFloat(a[1].split(", ")[C(t)?13:12]):(a=r.match(/^matrix\((.+)\)$/))?parseFloat(a[1].split(", ")[C(t)?5:4]):null}function T(e,t){if(!e)return()=>{};let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}let N=[.32,.72,0,1],E="vaul-dragging";function S(e){let t=o.default.useRef(e);return o.default.useEffect(()=>{t.current=e}),o.default.useMemo(()=>(...e)=>null==t.current?void 0:t.current.call(t,...e),[])}function k({prop:e,defaultProp:t,onChange:n=()=>{}}){let[r,a]=function({defaultProp:e,onChange:t}){let n=o.default.useState(e),[r]=n,a=o.default.useRef(r),l=S(t);return o.default.useEffect(()=>{a.current!==r&&(l(r),a.current=r)},[r,a,l]),n}({defaultProp:t,onChange:n}),l=void 0!==e,i=l?e:r,s=S(n);return[i,o.default.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&s(n)}else a(t)},[l,e,a,s])]}let $=()=>()=>{},P=null;function M({open:e,onOpenChange:n,children:r,onDrag:i,onRelease:d,snapPoints:m,shouldScaleBackground:h=!1,setBackgroundColorOnScale:b=!0,closeThreshold:T=.25,scrollLockTimeout:S=100,dismissible:$=!0,handleOnly:M=!1,fadeFromIndex:O=m&&m.length-1,activeSnapPoint:z,setActiveSnapPoint:B,fixed:L,modal:F=!0,onClose:I,nested:A,noBodyStyles:H=!1,direction:W="bottom",defaultOpen:q=!1,disablePreventScroll:U=!0,snapToSequentialPoint:Y=!1,preventScrollRestoration:X=!1,repositionInputs:V=!0,onAnimationEnd:_,container:K,autoFocus:G=!1}){var J,Q;let[Z=!1,ee]=k({defaultProp:q,prop:e,onChange:e=>{null==n||n(e),e||A||e$(),setTimeout(()=>{null==_||_(e)},500),e&&!F&&"u">typeof window&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),e||(document.body.style.pointerEvents="auto")}}),[et,en]=o.default.useState(!1),[er,ea]=o.default.useState(!1),[eo,el]=o.default.useState(!1),ei=o.default.useRef(null),es=o.default.useRef(null),eu=o.default.useRef(null),ed=o.default.useRef(null),ec=o.default.useRef(null),ef=o.default.useRef(!1),ep=o.default.useRef(null),em=o.default.useRef(0),eg=o.default.useRef(!1),eh=o.default.useRef(!q),ev=o.default.useRef(0),ew=o.default.useRef(null),ey=o.default.useRef((null==(J=ew.current)?void 0:J.getBoundingClientRect().height)||0),ex=o.default.useRef((null==(Q=ew.current)?void 0:Q.getBoundingClientRect().width)||0),eb=o.default.useRef(0),eD=o.default.useCallback(e=>{m&&e===eN.length-1&&(es.current=new Date)},[]),{activeSnapPoint:ej,activeSnapPointIndex:eC,setActiveSnapPoint:eR,onRelease:eT,snapPointsOffset:eN,onDrag:eE,shouldFade:eS,getPercentageDragged:ek}=function({activeSnapPointProp:e,setActiveSnapPointProp:t,snapPoints:n,drawerRef:r,overlayRef:a,fadeFromIndex:l,onSnapPointChange:i,direction:s="bottom",container:u,snapToSequentialPoint:d}){let[c,f]=k({prop:e,defaultProp:null==n?void 0:n[0],onChange:t}),[p,m]=o.default.useState("u">typeof window?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);o.default.useEffect(()=>{function e(){m({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let g=o.default.useMemo(()=>c===(null==n?void 0:n[n.length-1])||null,[n,c]),h=o.default.useMemo(()=>{var e;return null!=(e=null==n?void 0:n.findIndex(e=>e===c))?e:null},[n,c]),v=n&&n.length>0&&(l||0===l)&&!Number.isNaN(l)&&n[l]===c||!n,w=o.default.useMemo(()=>{var e;let t=u?{width:u.getBoundingClientRect().width,height:u.getBoundingClientRect().height}:"u">typeof window?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};return null!=(e=null==n?void 0:n.map(e=>{let n="string"==typeof e,r=0;if(n&&(r=parseInt(e,10)),C(s)){let a=n?r:p?e*t.height:0;return p?"bottom"===s?t.height-a:-t.height+a:a}let a=n?r:p?e*t.width:0;return p?"right"===s?t.width-a:-t.width+a:a}))?e:[]},[n,p,u]),y=o.default.useMemo(()=>null!==h?null==w?void 0:w[h]:null,[w,h]),x=o.default.useCallback(e=>{var t;let o=null!=(t=null==w?void 0:w.findIndex(t=>t===e))?t:null;i(o),j(r.current,{transition:`transform 0.5s cubic-bezier(${N.join(",")})`,transform:C(s)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`}),w&&o!==w.length-1&&void 0!==l&&o!==l&&o<l?j(a.current,{transition:`opacity 0.5s cubic-bezier(${N.join(",")})`,opacity:"0"}):j(a.current,{transition:`opacity 0.5s cubic-bezier(${N.join(",")})`,opacity:"1"}),f(null==n?void 0:n[Math.max(o,0)])},[r.current,n,w,l,a,f]);return o.default.useEffect(()=>{if(c||e){var t;let r=null!=(t=null==n?void 0:n.findIndex(t=>t===e||t===c))?t:-1;w&&-1!==r&&"number"==typeof w[r]&&x(w[r])}},[c,e,n,w,x]),{isLastSnapPoint:g,activeSnapPoint:c,shouldFade:v,getPercentageDragged:function(e,t){if(!n||"number"!=typeof h||!w||void 0===l)return null;let r=h===l-1;if(h>=l&&t)return 0;if(r&&!t)return 1;if(!v&&!r)return null;let a=r?h+1:h-1,o=e/Math.abs(r?w[a]-w[a-1]:w[a+1]-w[a]);return r?1-o:o},setActiveSnapPoint:f,activeSnapPointIndex:h,onRelease:function({draggedDistance:e,closeDrawer:t,velocity:r,dismissible:o}){if(void 0===l)return;let i="bottom"===s||"right"===s?(null!=y?y:0)-e:(null!=y?y:0)+e,u=h===l-1,c=0===h,f=e>0;if(u&&j(a.current,{transition:`opacity 0.5s cubic-bezier(${N.join(",")})`}),!d&&r>2&&!f)return void(o?t():x(w[0]));if(!d&&r>2&&f&&w&&n)return void x(w[n.length-1]);let p=null==w?void 0:w.reduce((e,t)=>"number"!=typeof e||"number"!=typeof t?e:Math.abs(t-i)<Math.abs(e-i)?t:e),m=C(s)?window.innerHeight:window.innerWidth;if(r>.4&&Math.abs(e)<.4*m){let e=f?1:-1;return e>0&&g&&n?void x(w[n.length-1]):void(c&&e<0&&o&&t(),null===h||x(w[h+e]))}x(p)},onDrag:function({draggedDistance:e}){if(null===y)return;let t="bottom"===s||"right"===s?y-e:y+e;("bottom"===s||"right"===s)&&t<w[w.length-1]||("top"===s||"left"===s)&&t>w[w.length-1]||j(r.current,{transform:C(s)?`translate3d(0, ${t}px, 0)`:`translate3d(${t}px, 0, 0)`})},snapPointsOffset:w}}({snapPoints:m,activeSnapPointProp:z,setActiveSnapPointProp:B,drawerRef:ew,fadeFromIndex:O,overlayRef:ei,onSnapPointChange:eD,direction:W,container:K,snapToSequentialPoint:Y});!function(e={}){let{isDisabled:n}=e;c(()=>{if(!n){var e,r,a;let n,o,l,i,s,d,c;return 1==++v&&u()&&(l=0,i=window.pageXOffset,s=window.pageYOffset,d=f((e=document.documentElement,r="paddingRight",a=`${window.innerWidth-document.documentElement.clientWidth}px`,n=e.style[r],e.style[r]=a,()=>{e.style[r]=n})),window.scrollTo(0,0),c=f(w(document,"touchstart",e=>{((o=g(e.target))!==document.documentElement||o!==document.body)&&(l=e.changedTouches[0].pageY)},{passive:!1,capture:!0}),w(document,"touchmove",e=>{if(!o||o===document.documentElement||o===document.body)return void e.preventDefault();let t=e.changedTouches[0].pageY,n=o.scrollTop,r=o.scrollHeight-o.clientHeight;0!==r&&((n<=0&&t>l||n>=r&&t<l)&&e.preventDefault(),l=t)},{passive:!1,capture:!0}),w(document,"touchend",e=>{let t=e.target;x(t)&&t!==document.activeElement&&(e.preventDefault(),t.style.transform="translateY(-2000px)",t.focus(),requestAnimationFrame(()=>{t.style.transform=""}))},{passive:!1,capture:!0}),w(document,"focus",e=>{let t=e.target;x(t)&&(t.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{t.style.transform="",p&&(p.height<window.innerHeight?requestAnimationFrame(()=>{y(t)}):p.addEventListener("resize",()=>y(t),{once:!0}))}))},!0),w(window,"scroll",()=>{window.scrollTo(0,0)})),t=()=>{d(),c(),window.scrollTo(i,s)}),()=>{0==--v&&(null==t||t())}}},[n])}({isDisabled:!Z||er||!F||eo||!et||!V||!U});let{restorePositionSetting:e$}=function({isOpen:e,modal:t,nested:n,hasBeenOpened:r,preventScrollRestoration:a,noBodyStyles:l}){let[i,u]=o.default.useState(()=>"u">typeof window?window.location.href:""),d=o.default.useRef(0),c=o.default.useCallback(()=>{if(s()&&null===P&&e&&!l){P={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:e,innerHeight:t}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-d.current}px`,left:`${-e}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let e=t-window.innerHeight;e&&d.current>=t&&(document.body.style.top=`${-(d.current+e)}px`)}),300)}},[e]),f=o.default.useCallback(()=>{if(s()&&null!==P&&!l){let e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);Object.assign(document.body.style,P),window.requestAnimationFrame(()=>{a&&i!==window.location.href?u(window.location.href):window.scrollTo(t,e)}),P=null}},[i]);return o.default.useEffect(()=>{function e(){d.current=window.scrollY}return e(),window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[]),o.default.useEffect(()=>{if(t)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||f()}},[t,f]),o.default.useEffect(()=>{!n&&r&&(e?(window.matchMedia("(display-mode: standalone)").matches||c(),t||window.setTimeout(()=>{f()},500)):f())},[e,r,i,t,n,c,f]),{restorePositionSetting:f}}({isOpen:Z,modal:F,nested:null!=A&&A,hasBeenOpened:et,preventScrollRestoration:X,noBodyStyles:H});function eP(){return(window.innerWidth-26)/window.innerWidth}function eM(e,t){var n;let r=e,a=null==(n=window.getSelection())?void 0:n.toString(),o=ew.current?R(ew.current,W):null,l=new Date;if("SELECT"===r.tagName||r.hasAttribute("data-vaul-no-drag")||r.closest("[data-vaul-no-drag]"))return!1;if("right"===W||"left"===W)return!0;if(es.current&&l.getTime()-es.current.getTime()<500)return!1;if(null!==o&&("bottom"===W?o>0:o<0))return!0;if(a&&a.length>0)return!1;if(ec.current&&l.getTime()-ec.current.getTime()<S&&0===o||t)return ec.current=l,!1;for(;r;){if(r.scrollHeight>r.clientHeight){if(0!==r.scrollTop)return ec.current=new Date,!1;if("dialog"===r.getAttribute("role"))break}r=r.parentNode}return!0}function eO(e){er&&ew.current&&(ew.current.classList.remove(E),ef.current=!1,ea(!1),ed.current=new Date),null==I||I(),e||ee(!1),setTimeout(()=>{m&&eR(m[0])},500)}function ez(){if(!ew.current)return;let e=document.querySelector("[data-vaul-drawer-wrapper]"),t=R(ew.current,W);j(ew.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${N.join(",")})`}),j(ei.current,{transition:`opacity 0.5s cubic-bezier(${N.join(",")})`,opacity:"1"}),h&&t&&t>0&&Z&&j(e,{borderRadius:"8px",overflow:"hidden",...C(W)?{transform:`scale(${eP()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${eP()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${N.join(",")})`},!0)}return o.default.useEffect(()=>{window.requestAnimationFrame(()=>{eh.current=!0})},[]),o.default.useEffect(()=>{var e;function t(){if(ew.current&&V&&(x(document.activeElement)||eg.current)){var e;let t=(null==(e=window.visualViewport)?void 0:e.height)||0,n=window.innerHeight,r=n-t,a=ew.current.getBoundingClientRect().height||0;eb.current||(eb.current=a);let o=ew.current.getBoundingClientRect().top;if(Math.abs(ev.current-r)>60&&(eg.current=!eg.current),m&&m.length>0&&eN&&eC&&(r+=eN[eC]||0),ev.current=r,a>t||eg.current){let e=ew.current.getBoundingClientRect().height,l=e;e>t&&(l=t-(a>.8*n?o:26)),L?ew.current.style.height=`${e-Math.max(r,0)}px`:ew.current.style.height=`${Math.max(l,t-o)}px`}else{let e;e=navigator.userAgent,"u">typeof window&&(/Firefox/.test(e)&&/Mobile/.test(e)||/FxiOS/.test(e))||(ew.current.style.height=`${eb.current}px`)}m&&m.length>0&&!eg.current?ew.current.style.bottom="0px":ew.current.style.bottom=`${Math.max(r,0)}px`}}return null==(e=window.visualViewport)||e.addEventListener("resize",t),()=>{var e;return null==(e=window.visualViewport)?void 0:e.removeEventListener("resize",t)}},[eC,m,eN]),o.default.useEffect(()=>(Z&&(j(document.documentElement,{scrollBehavior:"auto"}),es.current=new Date),()=>{!function(e,t){if(!e||!(e instanceof HTMLElement))return;let n=D.get(e);n&&(e.style[t]=n[t])}(document.documentElement,"scrollBehavior")}),[Z]),o.default.useEffect(()=>{F||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[F]),o.default.createElement(a.Root,{defaultOpen:q,onOpenChange:e=>{($||e)&&(e?en(!0):eO(!0),ee(e))},open:Z},o.default.createElement(l.Provider,{value:{activeSnapPoint:ej,snapPoints:m,setActiveSnapPoint:eR,drawerRef:ew,overlayRef:ei,onOpenChange:n,onPress:function(e){var t,n;!$&&!m||(!ew.current||ew.current.contains(e.target))&&(ey.current=(null==(t=ew.current)?void 0:t.getBoundingClientRect().height)||0,ex.current=(null==(n=ew.current)?void 0:n.getBoundingClientRect().width)||0,ea(!0),eu.current=new Date,u()&&window.addEventListener("touchend",()=>ef.current=!1,{once:!0}),e.target.setPointerCapture(e.pointerId),em.current=C(W)?e.pageY:e.pageX)},onRelease:function(e){var t,n;if(!er||!ew.current)return;ew.current.classList.remove(E),ef.current=!1,ea(!1),ed.current=new Date;let r=R(ew.current,W);if(!e||!eM(e.target,!1)||!r||Number.isNaN(r)||null===eu.current)return;let a=ed.current.getTime()-eu.current.getTime(),o=em.current-(C(W)?e.pageY:e.pageX),l=Math.abs(o)/a;if(l>.05&&(el(!0),setTimeout(()=>{el(!1)},200)),m){eT({draggedDistance:o*("bottom"===W||"right"===W?1:-1),closeDrawer:eO,velocity:l,dismissible:$}),null==d||d(e,!0);return}if("bottom"===W||"right"===W?o>0:o<0){ez(),null==d||d(e,!0);return}if(l>.4){eO(),null==d||d(e,!1);return}let i=Math.min(null!=(t=ew.current.getBoundingClientRect().height)?t:0,window.innerHeight),s=Math.min(null!=(n=ew.current.getBoundingClientRect().width)?n:0,window.innerWidth);if(Math.abs(r)>=("left"===W||"right"===W?s:i)*T){eO(),null==d||d(e,!1);return}null==d||d(e,!0),ez()},onDrag:function(e){if(ew.current&&er){let t="bottom"===W||"right"===W?1:-1,n=(em.current-(C(W)?e.pageY:e.pageX))*t,r=n>0,a=m&&!$&&!r;if(a&&0===eC)return;let o=Math.abs(n),l=document.querySelector("[data-vaul-drawer-wrapper]"),s=o/("bottom"===W||"top"===W?ey.current:ex.current),u=ek(o,r);if(null!==u&&(s=u),a&&s>=1||!ef.current&&!eM(e.target,r))return;if(ew.current.classList.add(E),ef.current=!0,j(ew.current,{transition:"none"}),j(ei.current,{transition:"none"}),m&&eE({draggedDistance:n}),r&&!m){let e=Math.min(-(8*(Math.log(n+1)-2)*1),0)*t;j(ew.current,{transform:C(W)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`});return}let d=1-s;if((eS||O&&eC===O-1)&&(null==i||i(e,s),j(ei.current,{opacity:`${d}`,transition:"none"},!0)),l&&ei.current&&h){let e=Math.min(eP()+s*(1-eP()),1),t=8-8*s,n=Math.max(0,14-14*s);j(l,{borderRadius:`${t}px`,transform:C(W)?`scale(${e}) translate3d(0, ${n}px, 0)`:`scale(${e}) translate3d(${n}px, 0, 0)`,transition:"none"},!0)}if(!m){let e=o*t;j(ew.current,{transform:C(W)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})}}},dismissible:$,shouldAnimate:eh,handleOnly:M,isOpen:Z,isDragging:er,shouldFade:eS,closeDrawer:eO,onNestedDrag:function(e,t){if(t<0)return;let n=(window.innerWidth-16)/window.innerWidth,r=n+t*(1-n),a=-16+16*t;j(ew.current,{transform:C(W)?`scale(${r}) translate3d(0, ${a}px, 0)`:`scale(${r}) translate3d(${a}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(e){let t=e?(window.innerWidth-16)/window.innerWidth:1,n=e?-16:0;ep.current&&window.clearTimeout(ep.current),j(ew.current,{transition:`transform 0.5s cubic-bezier(${N.join(",")})`,transform:C(W)?`scale(${t}) translate3d(0, ${n}px, 0)`:`scale(${t}) translate3d(${n}px, 0, 0)`}),!e&&ew.current&&(ep.current=setTimeout(()=>{let e=R(ew.current,W);j(ew.current,{transition:"none",transform:C(W)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})},500))},onNestedRelease:function(e,t){let n=C(W)?window.innerHeight:window.innerWidth,r=t?(n-16)/n:1,a=t?-16:0;t&&j(ew.current,{transition:`transform 0.5s cubic-bezier(${N.join(",")})`,transform:C(W)?`scale(${r}) translate3d(0, ${a}px, 0)`:`scale(${r}) translate3d(${a}px, 0, 0)`})},keyboardIsOpen:eg,modal:F,snapPointsOffset:eN,activeSnapPointIndex:eC,direction:W,shouldScaleBackground:h,setBackgroundColorOnScale:b,noBodyStyles:H,container:K,autoFocus:G}},r))}let O=o.default.forwardRef(function({...e},t){let{overlayRef:n,snapPoints:r,onRelease:l,shouldFade:s,isOpen:u,modal:d,shouldAnimate:c}=i(),f=b(t,n),p=r&&r.length>0;if(!d)return null;let m=o.default.useCallback(e=>l(e),[l]);return o.default.createElement(a.Overlay,{onMouseUp:m,ref:f,"data-vaul-overlay":"","data-vaul-snap-points":u&&p?"true":"false","data-vaul-snap-points-overlay":u&&s?"true":"false","data-vaul-animate":(null==c?void 0:c.current)?"true":"false",...e})});O.displayName="Drawer.Overlay";let z=o.default.forwardRef(function({onPointerDownOutside:e,style:t,onOpenAutoFocus:n,...r},l){let{drawerRef:s,onPress:u,onRelease:d,onDrag:c,keyboardIsOpen:f,snapPointsOffset:p,activeSnapPointIndex:m,modal:g,isOpen:h,direction:v,snapPoints:w,container:y,handleOnly:x,shouldAnimate:D,autoFocus:j}=i(),[R,E]=o.default.useState(!1),S=b(l,s),k=o.default.useRef(null),P=o.default.useRef(null),M=o.default.useRef(!1),O=w&&w.length>0;function z(e){k.current=null,M.current=!1,d(e)}return!function(){let{direction:e,isOpen:t,shouldScaleBackground:n,setBackgroundColorOnScale:r,noBodyStyles:a}=i(),l=o.default.useRef(null),s=(0,o.useMemo)(()=>document.body.style.backgroundColor,[]);function u(){return(window.innerWidth-26)/window.innerWidth}o.default.useEffect(()=>{if(t&&n){l.current&&clearTimeout(l.current);let t=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!t)return;!function(...e){}(r&&!a?T(document.body,{background:"black"}):$,T(t,{transformOrigin:C(e)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${N.join(",")})`}));let n=T(t,{borderRadius:"8px",overflow:"hidden",...C(e)?{transform:`scale(${u()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${u()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{n(),l.current=window.setTimeout(()=>{s?document.body.style.background=s:document.body.style.removeProperty("background")},500)}}},[t,n,s])}(),o.default.useEffect(()=>{O&&window.requestAnimationFrame(()=>{E(!0)})},[]),o.default.createElement(a.Content,{"data-vaul-drawer-direction":v,"data-vaul-drawer":"","data-vaul-delayed-snap-points":R?"true":"false","data-vaul-snap-points":h&&O?"true":"false","data-vaul-custom-container":y?"true":"false","data-vaul-animate":(null==D?void 0:D.current)?"true":"false",...r,ref:S,style:p&&p.length>0?{"--snap-point-height":`${p[null!=m?m:0]}px`,...t}:t,onPointerDown:e=>{x||(null==r.onPointerDown||r.onPointerDown.call(r,e),k.current={x:e.pageX,y:e.pageY},u(e))},onOpenAutoFocus:e=>{null==n||n(e),j||e.preventDefault()},onPointerDownOutside:t=>{(null==e||e(t),!g||t.defaultPrevented)?t.preventDefault():f.current&&(f.current=!1)},onFocusOutside:e=>{if(!g)return void e.preventDefault()},onPointerMove:e=>{if(P.current=e,x||(null==r.onPointerMove||r.onPointerMove.call(r,e),!k.current))return;let t=e.pageY-k.current.y,n=e.pageX-k.current.x,a="touch"===e.pointerType?10:2;((e,t,n=0)=>{if(M.current)return!0;let r=Math.abs(e.y),a=Math.abs(e.x),o=a>r,l=["bottom","right"].includes(t)?1:-1;if("left"===t||"right"===t){if(!(e.x*l<0)&&a>=0&&a<=n)return o}else if(!(e.y*l<0)&&r>=0&&r<=n)return!o;return M.current=!0,!0})({x:n,y:t},v,a)?c(e):(Math.abs(n)>a||Math.abs(t)>a)&&(k.current=null)},onPointerUp:e=>{null==r.onPointerUp||r.onPointerUp.call(r,e),k.current=null,M.current=!1,d(e)},onPointerOut:e=>{null==r.onPointerOut||r.onPointerOut.call(r,e),z(P.current)},onContextMenu:e=>{null==r.onContextMenu||r.onContextMenu.call(r,e),P.current&&z(P.current)}})});z.displayName="Drawer.Content";let B=o.default.forwardRef(function({preventCycle:e=!1,children:t,...n},r){let{closeDrawer:a,isDragging:l,snapPoints:s,activeSnapPoint:u,setActiveSnapPoint:d,dismissible:c,handleOnly:f,isOpen:p,onPress:m,onDrag:g}=i(),h=o.default.useRef(null),v=o.default.useRef(!1);function w(){h.current&&window.clearTimeout(h.current),v.current=!1}return o.default.createElement("div",{onClick:function(){v.current?w():window.setTimeout(()=>{!function(){if(l||e||v.current)return w();if(w(),!s||0===s.length){c||a();return}if(u===s[s.length-1]&&c)return a();let t=s.findIndex(e=>e===u);-1===t||d(s[t+1])}()},120)},onPointerCancel:w,onPointerDown:e=>{f&&m(e),h.current=window.setTimeout(()=>{v.current=!0},250)},onPointerMove:e=>{f&&g(e)},ref:r,"data-vaul-drawer-visible":p?"true":"false","data-vaul-handle":"","aria-hidden":"true",...n},o.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},t))});B.displayName="Drawer.Handle";let L={Root:M,NestedRoot:function({onDrag:e,onOpenChange:t,open:n,...r}){let{onNestedDrag:a,onNestedOpenChange:l,onNestedRelease:s}=i();if(!a)throw Error("Drawer.NestedRoot must be placed in another drawer");return o.default.createElement(M,{nested:!0,open:n,onClose:()=>{l(!1)},onDrag:(t,n)=>{a(t,n),null==e||e(t,n)},onOpenChange:e=>{e&&l(e),null==t||t(e)},onRelease:s,...r})},Content:z,Overlay:O,Trigger:a.Trigger,Portal:function(e){let t=i(),{container:n=t.container,...r}=e;return o.default.createElement(a.Portal,{container:n,...r})},Handle:B,Close:a.Close,Title:a.Title,Description:a.Description};var F=e.i(31777);function I({...e}){return(0,n.jsx)(L.Root,{"data-slot":"drawer",...e})}function A({...e}){return(0,n.jsx)(L.Portal,{"data-slot":"drawer-portal",...e})}function H({className:e,...t}){return(0,n.jsx)(L.Overlay,{"data-slot":"drawer-overlay",className:(0,F.cn)("fixed inset-0 z-50 bg-black/50",e),...t})}function W({className:e,children:t,direction:a="bottom",showCloseButton:o=!0,...l}){return(0,n.jsx)(A,{children:(0,n.jsxs)(L.Content,{"data-slot":"drawer-content",className:(0,F.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===a&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===a&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===a&&"inset-y-0 right-0 h-full w-3/4 border-l","left"===a&&"inset-y-0 left-0 h-full w-3/4 border-r",e),style:{"--initial-transform":"right"===a?"calc(100% + 8px)":"left"===a||"top"===a?"calc(-100% - 8px)":"calc(100% + 8px)",userSelect:"text",...l.style??{}},...l,children:[t,o?(0,n.jsxs)(L.Close,{className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,n.jsx)(r.XIcon,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function q({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-header",className:(0,F.cn)("flex flex-col gap-1.5 p-4",e),...t})}function U({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-footer",className:(0,F.cn)("mt-auto flex flex-col gap-2 p-4",e),...t})}function Y({className:e,...t}){return(0,n.jsx)(L.Title,{"data-slot":"drawer-title",className:(0,F.cn)("text-foreground font-semibold",e),...t})}function X({className:e,...t}){return(0,n.jsx)(L.Description,{"data-slot":"drawer-description",className:(0,F.cn)("text-muted-foreground text-sm",e),...t})}e.s(["Drawer",()=>I,"DrawerContent",()=>W,"DrawerDescription",()=>X,"DrawerFooter",()=>U,"DrawerHeader",()=>q,"DrawerOverlay",()=>H,"DrawerTitle",()=>Y],45811)},8537,e=>{"use strict";var t=e.i(44172),n=e.i(79054),r=e.i(21023);let a=(0,r.createServerReference)("409c9131804bd03f057a10383a6c980fc5e7cd01e9",r.callServer,void 0,r.findSourceMapURL,"deployFeature"),o=(0,r.createServerReference)("4036cea98d2ae998aa7c835dd98848382ae00a268c",r.callServer,void 0,r.findSourceMapURL,"deployRepository"),l=(0,r.createServerReference)("4018411cec4111444380d22a9a993ac24a1a7306f9",r.callServer,void 0,r.findSourceMapURL,"stopDeployment"),i=(0,r.createServerReference)("40ce1aa9f506d00fb002cd290a9469ebd63e24af42",r.callServer,void 0,r.findSourceMapURL,"getDeploymentStatus"),s="[useDeployAction]",u=!!t.default.env.NEXT_PUBLIC_DEBUG,d=()=>void 0,c={info:u?(...e)=>console.info(s,...e):d,debug:u?(...e)=>console.debug(s,...e):d,warn:(...e)=>console.warn(s,...e),error:(...e)=>console.error(s,...e)};function f(e){let[t,r]=(0,n.useState)(!1),[s,u]=(0,n.useState)(!1),[d,f]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),[g,h]=(0,n.useState)(null),v=(0,n.useRef)(null),w=(0,n.useRef)(null),y=(0,n.useRef)(!0);(0,n.useEffect)(()=>(y.current=!0,()=>{y.current=!1}),[]),(0,n.useEffect)(()=>()=>{v.current&&clearTimeout(v.current),w.current&&clearInterval(w.current)},[]);let x=(0,n.useCallback)(()=>{w.current&&(c.debug("stopping polling"),clearInterval(w.current),w.current=null)},[]),b=(0,n.useCallback)(e=>{x(),c.debug(`starting polling for "${e}" every 3000ms`),w.current=setInterval(async()=>{if(!y.current)return void x();let t=await i(e);y.current&&(t&&"Stopped"!==t.state?(t.state!==p&&c.info(`poll state changed: ${p} → ${t.state}, url=${t.url}`),m(t.state),h(t.url)):(c.info(`poll result: ${t?`state=${t.state}`:"null (deployment gone)"} — stopping poll`),m(null),h(null),x()))},3e3)},[x,p]),D=(0,n.useCallback)(async()=>{if(!e)return void c.warn("deploy() called but input is null — no-op");if(t)return void c.warn("deploy() called but already loading — no-op");c.info(`deploy() — targetType="${e.targetType}", targetId="${e.targetId}", repositoryPath="${e.repositoryPath}"`),v.current&&clearTimeout(v.current),r(!0),f(null);try{let t="feature"===e.targetType?await a(e.targetId):await o(e.repositoryPath);if(c.info("server action result:",t),!y.current)return void c.warn("component unmounted after deploy — discarding result");if(t.success)c.info(`deploy succeeded — initial state=${t.state}, starting polling`),m(t.state??null),h(null),b(e.targetId);else{let e=t.error??"An unexpected error occurred";c.error(`deploy failed: ${e}`),f(e),v.current=setTimeout(()=>f(null),5e3)}}catch(t){if(!y.current)return;let e=t instanceof Error?t.message:"An unexpected error occurred";c.error(`deploy threw exception: ${e}`,t),f(e),v.current=setTimeout(()=>f(null),5e3)}finally{y.current&&r(!1)}},[e,t,b]),j=(0,n.useCallback)(async()=>{if(e&&!s){c.info(`stop() — targetId="${e.targetId}"`),u(!0);try{let t=await l(e.targetId);if(c.info("stop result:",t),!y.current)return;t.success&&(x(),m(null),h(null))}catch(e){c.warn("stop error (non-critical):",e)}finally{y.current&&u(!1)}}},[e,s,x]);return{deploy:D,stop:j,deployLoading:t,stopLoading:s,deployError:d,status:p,url:g}}e.s(["useDeployAction",()=>f],8537)},11495,e=>{"use strict";var t=e.i(20314),n=e.i(79054),r=e.i(48249),a=e.i(24042),o=e.i(64970),l=e.i(94237),i=e.i(31777);e.i(81803);var s=e.i(72714);e.i(99348);var u=e.i(17466),d=e.i(45811),c=e.i(25235),f=e.i(2828),p=e.i(8537),m=e.i(63629);let g=(0,l.cva)("",{variants:{size:{sm:"w-96",md:"w-xl"}},defaultVariants:{size:"sm"}});function h({open:e,onClose:a,modal:o=!1,dismissOnOutsideClick:l=!1,title:s="Drawer",size:u,header:f,children:p,footer:h,className:w,"data-testid":y,deployTarget:x}){let b=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!e||o)return;let t=e=>{let t=e.target;!document.body.contains(t)||b.current?.contains(t)||t.closest(l?'[role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]':'[data-no-drawer-close], [role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]')||a()};return document.addEventListener("click",t),()=>document.removeEventListener("click",t)},[e,o,a,l]),(0,t.jsxs)(d.Drawer,{direction:"right",modal:o,handleOnly:!0,open:e,onOpenChange:e=>{e||a()},children:[o?(0,t.jsx)(d.DrawerOverlay,{}):null,(0,t.jsxs)(d.DrawerContent,{ref:b,direction:"right",showCloseButton:!1,className:(0,i.cn)(g({size:u}),w),"data-testid":y,onInteractOutside:o?void 0:e=>e.preventDefault(),children:[(0,t.jsx)(d.DrawerTitle,{asChild:!0,children:(0,t.jsx)("span",{className:"sr-only",children:s})}),(0,t.jsx)(d.DrawerDescription,{asChild:!0,children:(0,t.jsx)("span",{className:"sr-only",children:s})}),(0,t.jsxs)("button",{type:"button","aria-label":"Close",onClick:a,className:"ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden","data-testid":y?`${y}-close-button`:void 0,children:[(0,t.jsx)(r.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}),f?(0,t.jsx)(d.DrawerHeader,{className:"shrink-0",children:f}):null,f?(0,t.jsx)(c.Separator,{}):null,m.featureFlags.envDeploy&&x?(0,t.jsx)(v,{deployTarget:x}):null,(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:p}),h?(0,t.jsx)(d.DrawerFooter,{className:"shrink-0",children:h}):null]})]})}function v({deployTarget:e}){let n=(0,p.useDeployAction)(e),r="Booting"===n.status||"Ready"===n.status;return(0,t.jsxs)("div",{"data-testid":"base-drawer-deploy-bar",className:"flex items-center gap-2 px-4 pb-3",children:[(0,t.jsx)(f.TooltipProvider,{children:(0,t.jsxs)(f.Tooltip,{children:[(0,t.jsx)(f.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(s.ActionButton,{label:r?"Stop Dev Server":"Start Dev Server",onClick:r?n.stop:n.deploy,loading:n.deployLoading||n.stopLoading,error:!!n.deployError,icon:r?o.Square:a.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,t.jsx)(f.TooltipContent,{children:r?"Stop Dev Server":"Start Dev Server"})]})}),r?(0,t.jsx)(u.DeploymentStatusBadge,{status:n.status,url:n.url,targetId:e.targetId}):null]})}e.s(["BaseDrawer",()=>h])}]);
|
package/web/.next/trace
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":204,"timestamp":66920708,"id":4,"parentId":1,"tags":{},"startTime":1772810752551,"traceId":"8bd24b86ffd014f3"},{"name":"load-custom-routes","duration":311,"timestamp":66921046,"id":5,"parentId":1,"tags":{},"startTime":1772810752551,"traceId":"8bd24b86ffd014f3"},{"name":"create-dist-dir","duration":231,"timestamp":66921382,"id":6,"parentId":1,"tags":{},"startTime":1772810752551,"traceId":"8bd24b86ffd014f3"},{"name":"clean","duration":202,"timestamp":66922047,"id":7,"parentId":1,"tags":{},"startTime":1772810752552,"traceId":"8bd24b86ffd014f3"},{"name":"create-pages-mapping","duration":256,"timestamp":66977896,"id":8,"parentId":1,"tags":{},"startTime":1772810752608,"traceId":"8bd24b86ffd014f3"},{"name":"collect-app-files","duration":2472,"timestamp":66978195,"id":9,"parentId":1,"tags":{},"startTime":1772810752608,"traceId":"8bd24b86ffd014f3"},{"name":"create-app-mapping","duration":1050,"timestamp":66980689,"id":10,"parentId":1,"tags":{},"startTime":1772810752611,"traceId":"8bd24b86ffd014f3"},{"name":"create-app-layouts","duration":142,"timestamp":66981762,"id":11,"parentId":1,"tags":{},"startTime":1772810752612,"traceId":"8bd24b86ffd014f3"},{"name":"collect-default-files","duration":1080,"timestamp":66984372,"id":13,"parentId":1,"tags":{},"startTime":1772810752614,"traceId":"8bd24b86ffd014f3"},{"name":"create-default-mapping","duration":136,"timestamp":66985470,"id":14,"parentId":1,"tags":{},"startTime":1772810752615,"traceId":"8bd24b86ffd014f3"},{"name":"generate-route-types","duration":17956,"timestamp":66983769,"id":12,"parentId":1,"tags":{},"startTime":1772810752614,"traceId":"8bd24b86ffd014f3"},{"name":"public-dir-conflict-check","duration":96,"timestamp":67001765,"id":15,"parentId":1,"tags":{},"startTime":1772810752632,"traceId":"8bd24b86ffd014f3"},{"name":"generate-routes-manifest","duration":2458,"timestamp":67001930,"id":16,"parentId":1,"tags":{},"startTime":1772810752632,"traceId":"8bd24b86ffd014f3"},{"name":"run-turbopack","duration":9308629,"timestamp":67016434,"id":18,"parentId":1,"tags":{},"startTime":1772810752646,"traceId":"8bd24b86ffd014f3"},{"name":"run-typescript","duration":7752854,"timestamp":76335828,"id":20,"parentId":1,"tags":{},"startTime":1772810761966,"traceId":"8bd24b86ffd014f3"},{"name":"generate-required-server-files","duration":2049,"timestamp":84089313,"id":22,"parentId":1,"tags":{},"startTime":1772810769719,"traceId":"8bd24b86ffd014f3"},{"name":"check-static-error-page","duration":5425,"timestamp":84169195,"id":24,"parentId":23,"tags":{},"startTime":1772810769799,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":269415,"timestamp":84178513,"id":42,"parentId":25,"tags":{},"startTime":1772810769808,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":276508,"timestamp":84171491,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1772810769801,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":288609,"timestamp":84178777,"id":43,"parentId":26,"tags":{},"startTime":1772810769809,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":294675,"timestamp":84172797,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":311710,"timestamp":84184560,"id":45,"parentId":35,"tags":{},"startTime":1772810769814,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":322624,"timestamp":84173709,"id":35,"parentId":23,"tags":{"page":"/api/tools/[id]/install"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":322553,"timestamp":84184904,"id":47,"parentId":38,"tags":{},"startTime":1772810769815,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":333223,"timestamp":84174274,"id":38,"parentId":23,"tags":{"page":"/api/tools"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":319356,"timestamp":84191978,"id":48,"parentId":31,"tags":{},"startTime":1772810769822,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":338032,"timestamp":84173340,"id":31,"parentId":23,"tags":{"page":"/api/agent-events/health"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":321687,"timestamp":84193666,"id":49,"parentId":32,"tags":{},"startTime":1772810769824,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":341960,"timestamp":84173415,"id":32,"parentId":23,"tags":{"page":"/api/agent-events"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":324112,"timestamp":84194357,"id":50,"parentId":33,"tags":{},"startTime":1772810769824,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":344990,"timestamp":84173499,"id":33,"parentId":23,"tags":{"page":"/api/deployment-logs"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":329232,"timestamp":84194844,"id":51,"parentId":36,"tags":{},"startTime":1772810769825,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":350326,"timestamp":84173785,"id":36,"parentId":23,"tags":{"page":"/api/tools/[id]/install/stream"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":353599,"timestamp":84184748,"id":46,"parentId":37,"tags":{},"startTime":1772810769815,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":364498,"timestamp":84173882,"id":37,"parentId":23,"tags":{"page":"/api/tools/[id]/launch"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":339274,"timestamp":84201405,"id":52,"parentId":39,"tags":{},"startTime":1772810769831,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":366322,"timestamp":84174372,"id":39,"parentId":23,"tags":{"page":"/skills"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":343610,"timestamp":84201543,"id":54,"parentId":40,"tags":{},"startTime":1772810769831,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":370705,"timestamp":84174468,"id":40,"parentId":23,"tags":{"page":"/tools"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":362287,"timestamp":84184310,"id":44,"parentId":34,"tags":{},"startTime":1772810769814,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":373025,"timestamp":84173600,"id":34,"parentId":23,"tags":{"page":"/api/dialog/pick-files"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":363946,"timestamp":84202714,"id":55,"parentId":27,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":393700,"timestamp":84172998,"id":27,"parentId":23,"tags":{"page":"/create"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":367386,"timestamp":84201431,"id":53,"parentId":41,"tags":{},"startTime":1772810769831,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":394303,"timestamp":84174544,"id":41,"parentId":23,"tags":{"page":"/version"},"startTime":1772810769804,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":370786,"timestamp":84203057,"id":57,"parentId":29,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":400678,"timestamp":84173188,"id":29,"parentId":23,"tags":{"page":"/repository/[repositoryId]"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":382446,"timestamp":84203180,"id":58,"parentId":30,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":412370,"timestamp":84173267,"id":30,"parentId":23,"tags":{"page":"/"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"is-page-static","duration":390459,"timestamp":84202835,"id":56,"parentId":28,"tags":{},"startTime":1772810769833,"traceId":"8bd24b86ffd014f3"},{"name":"check-page","duration":420216,"timestamp":84173106,"id":28,"parentId":23,"tags":{"page":"/feature/[featureId]"},"startTime":1772810769803,"traceId":"8bd24b86ffd014f3"},{"name":"static-check","duration":425008,"timestamp":84168406,"id":23,"parentId":1,"tags":{},"startTime":1772810769798,"traceId":"8bd24b86ffd014f3"},{"name":"write-routes-manifest","duration":248,"timestamp":84595655,"id":60,"parentId":1,"tags":{},"startTime":1772810770226,"traceId":"8bd24b86ffd014f3"},{"name":"load-dotenv","duration":30,"timestamp":84603191,"id":63,"parentId":62,"tags":{},"startTime":1772810770233,"traceId":"8bd24b86ffd014f3"},{"name":"run-export-path-map","duration":277,"timestamp":84605145,"id":64,"parentId":62,"tags":{},"startTime":1772810770235,"traceId":"8bd24b86ffd014f3"},{"name":"next-export","duration":81546,"timestamp":84602307,"id":62,"parentId":1,"tags":{},"startTime":1772810770232,"traceId":"8bd24b86ffd014f3"},{"name":"move-exported-app-global-error-","duration":405,"timestamp":84684842,"id":65,"parentId":61,"tags":{},"startTime":1772810770315,"traceId":"8bd24b86ffd014f3"},{"name":"static-generation","duration":88358,"timestamp":84598631,"id":61,"parentId":1,"tags":{},"startTime":1772810770228,"traceId":"8bd24b86ffd014f3"},{"name":"write-routes-manifest","duration":244,"timestamp":84687145,"id":66,"parentId":1,"tags":{},"startTime":1772810770317,"traceId":"8bd24b86ffd014f3"},{"name":"write-standalone-directory","duration":319125,"timestamp":84692908,"id":68,"parentId":1,"tags":{},"startTime":1772810770323,"traceId":"8bd24b86ffd014f3"},{"name":"output-standalone","duration":319294,"timestamp":84692770,"id":67,"parentId":1,"tags":{},"startTime":1772810770323,"traceId":"8bd24b86ffd014f3"},{"name":"print-tree-view","duration":2258,"timestamp":85012170,"id":69,"parentId":1,"tags":{},"startTime":1772810770642,"traceId":"8bd24b86ffd014f3"},{"name":"telemetry-flush","duration":55,"timestamp":85014438,"id":70,"parentId":1,"tags":{},"startTime":1772810770644,"traceId":"8bd24b86ffd014f3"},{"name":"next-build","duration":18307367,"timestamp":66707138,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772810752337,"traceId":"8bd24b86ffd014f3"}]
|
|
1
|
+
[{"name":"generate-buildid","duration":194,"timestamp":83596539,"id":4,"parentId":1,"tags":{},"startTime":1772839539146,"traceId":"fca9938ed75c942f"},{"name":"load-custom-routes","duration":324,"timestamp":83596827,"id":5,"parentId":1,"tags":{},"startTime":1772839539146,"traceId":"fca9938ed75c942f"},{"name":"create-dist-dir","duration":214,"timestamp":83597176,"id":6,"parentId":1,"tags":{},"startTime":1772839539146,"traceId":"fca9938ed75c942f"},{"name":"clean","duration":215,"timestamp":83597803,"id":7,"parentId":1,"tags":{},"startTime":1772839539147,"traceId":"fca9938ed75c942f"},{"name":"create-pages-mapping","duration":197,"timestamp":83649635,"id":8,"parentId":1,"tags":{},"startTime":1772839539199,"traceId":"fca9938ed75c942f"},{"name":"collect-app-files","duration":3256,"timestamp":83649865,"id":9,"parentId":1,"tags":{},"startTime":1772839539199,"traceId":"fca9938ed75c942f"},{"name":"create-app-mapping","duration":983,"timestamp":83653144,"id":10,"parentId":1,"tags":{},"startTime":1772839539202,"traceId":"fca9938ed75c942f"},{"name":"create-app-layouts","duration":131,"timestamp":83654152,"id":11,"parentId":1,"tags":{},"startTime":1772839539203,"traceId":"fca9938ed75c942f"},{"name":"collect-default-files","duration":8222,"timestamp":83656550,"id":13,"parentId":1,"tags":{},"startTime":1772839539206,"traceId":"fca9938ed75c942f"},{"name":"create-default-mapping","duration":133,"timestamp":83664788,"id":14,"parentId":1,"tags":{},"startTime":1772839539214,"traceId":"fca9938ed75c942f"},{"name":"generate-route-types","duration":20717,"timestamp":83655962,"id":12,"parentId":1,"tags":{},"startTime":1772839539205,"traceId":"fca9938ed75c942f"},{"name":"public-dir-conflict-check","duration":75,"timestamp":83676712,"id":15,"parentId":1,"tags":{},"startTime":1772839539226,"traceId":"fca9938ed75c942f"},{"name":"generate-routes-manifest","duration":2366,"timestamp":83676842,"id":16,"parentId":1,"tags":{},"startTime":1772839539226,"traceId":"fca9938ed75c942f"},{"name":"run-turbopack","duration":8887216,"timestamp":83682623,"id":18,"parentId":1,"tags":{},"startTime":1772839539232,"traceId":"fca9938ed75c942f"},{"name":"run-typescript","duration":7478748,"timestamp":92582054,"id":20,"parentId":1,"tags":{},"startTime":1772839548131,"traceId":"fca9938ed75c942f"},{"name":"generate-required-server-files","duration":1212,"timestamp":100061295,"id":22,"parentId":1,"tags":{},"startTime":1772839555610,"traceId":"fca9938ed75c942f"},{"name":"check-static-error-page","duration":4501,"timestamp":100128415,"id":24,"parentId":23,"tags":{},"startTime":1772839555677,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":281944,"timestamp":100137647,"id":43,"parentId":26,"tags":{},"startTime":1772839555687,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":288498,"timestamp":100131210,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1772839555680,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":315069,"timestamp":100142473,"id":44,"parentId":34,"tags":{},"startTime":1772839555692,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":325613,"timestamp":100131988,"id":34,"parentId":23,"tags":{"page":"/api/dialog/pick-files"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":320535,"timestamp":100143944,"id":46,"parentId":37,"tags":{},"startTime":1772839555693,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":332254,"timestamp":100132262,"id":37,"parentId":23,"tags":{"page":"/api/tools/[id]/launch"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":325633,"timestamp":100144158,"id":47,"parentId":38,"tags":{},"startTime":1772839555693,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":337219,"timestamp":100132603,"id":38,"parentId":23,"tags":{"page":"/api/tools"},"startTime":1772839555682,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":322481,"timestamp":100149717,"id":48,"parentId":31,"tags":{},"startTime":1772839555699,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":340490,"timestamp":100131740,"id":31,"parentId":23,"tags":{"page":"/api/agent-events/health"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":322629,"timestamp":100152500,"id":49,"parentId":32,"tags":{},"startTime":1772839555702,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":343342,"timestamp":100131818,"id":32,"parentId":23,"tags":{"page":"/api/agent-events"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":324158,"timestamp":100153275,"id":50,"parentId":33,"tags":{},"startTime":1772839555702,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":345562,"timestamp":100131892,"id":33,"parentId":23,"tags":{"page":"/api/deployment-logs"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":326512,"timestamp":100153806,"id":51,"parentId":36,"tags":{},"startTime":1772839555703,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":348163,"timestamp":100132181,"id":36,"parentId":23,"tags":{"page":"/api/tools/[id]/install/stream"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":358084,"timestamp":100137432,"id":42,"parentId":25,"tags":{},"startTime":1772839555686,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":365708,"timestamp":100129831,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1772839555679,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":342795,"timestamp":100157555,"id":53,"parentId":41,"tags":{},"startTime":1772839555707,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":367530,"timestamp":100132839,"id":41,"parentId":23,"tags":{"page":"/version"},"startTime":1772839555682,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":358545,"timestamp":100157530,"id":52,"parentId":39,"tags":{},"startTime":1772839555707,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":383419,"timestamp":100132694,"id":39,"parentId":23,"tags":{"page":"/skills"},"startTime":1772839555682,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":373549,"timestamp":100142704,"id":45,"parentId":35,"tags":{},"startTime":1772839555692,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":384176,"timestamp":100132104,"id":35,"parentId":23,"tags":{"page":"/api/tools/[id]/install"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":360582,"timestamp":100157688,"id":54,"parentId":40,"tags":{},"startTime":1772839555707,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":385522,"timestamp":100132771,"id":40,"parentId":23,"tags":{"page":"/tools"},"startTime":1772839555682,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":371330,"timestamp":100160327,"id":55,"parentId":27,"tags":{},"startTime":1772839555709,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":400275,"timestamp":100131404,"id":27,"parentId":23,"tags":{"page":"/create"},"startTime":1772839555680,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":376705,"timestamp":100160525,"id":57,"parentId":29,"tags":{},"startTime":1772839555710,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":405667,"timestamp":100131586,"id":29,"parentId":23,"tags":{"page":"/repository/[repositoryId]"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":376673,"timestamp":100160620,"id":58,"parentId":30,"tags":{},"startTime":1772839555710,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":405644,"timestamp":100131666,"id":30,"parentId":23,"tags":{"page":"/"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"is-page-static","duration":395999,"timestamp":100160429,"id":56,"parentId":28,"tags":{},"startTime":1772839555709,"traceId":"fca9938ed75c942f"},{"name":"check-page","duration":424955,"timestamp":100131494,"id":28,"parentId":23,"tags":{"page":"/feature/[featureId]"},"startTime":1772839555681,"traceId":"fca9938ed75c942f"},{"name":"static-check","duration":428907,"timestamp":100127569,"id":23,"parentId":1,"tags":{},"startTime":1772839555677,"traceId":"fca9938ed75c942f"},{"name":"write-routes-manifest","duration":248,"timestamp":100557248,"id":60,"parentId":1,"tags":{},"startTime":1772839556106,"traceId":"fca9938ed75c942f"},{"name":"load-dotenv","duration":31,"timestamp":100565104,"id":63,"parentId":62,"tags":{},"startTime":1772839556114,"traceId":"fca9938ed75c942f"},{"name":"run-export-path-map","duration":296,"timestamp":100567107,"id":64,"parentId":62,"tags":{},"startTime":1772839556116,"traceId":"fca9938ed75c942f"},{"name":"next-export","duration":71527,"timestamp":100564218,"id":62,"parentId":1,"tags":{},"startTime":1772839556113,"traceId":"fca9938ed75c942f"},{"name":"move-exported-app-global-error-","duration":428,"timestamp":100637255,"id":65,"parentId":61,"tags":{},"startTime":1772839556186,"traceId":"fca9938ed75c942f"},{"name":"static-generation","duration":78728,"timestamp":100560380,"id":61,"parentId":1,"tags":{},"startTime":1772839556109,"traceId":"fca9938ed75c942f"},{"name":"write-routes-manifest","duration":255,"timestamp":100639295,"id":66,"parentId":1,"tags":{},"startTime":1772839556188,"traceId":"fca9938ed75c942f"},{"name":"write-standalone-directory","duration":291676,"timestamp":100643969,"id":68,"parentId":1,"tags":{},"startTime":1772839556193,"traceId":"fca9938ed75c942f"},{"name":"output-standalone","duration":291846,"timestamp":100643819,"id":67,"parentId":1,"tags":{},"startTime":1772839556193,"traceId":"fca9938ed75c942f"},{"name":"print-tree-view","duration":2170,"timestamp":100935788,"id":69,"parentId":1,"tags":{},"startTime":1772839556485,"traceId":"fca9938ed75c942f"},{"name":"telemetry-flush","duration":72,"timestamp":100937967,"id":70,"parentId":1,"tags":{},"startTime":1772839556487,"traceId":"fca9938ed75c942f"},{"name":"next-build","duration":17554632,"timestamp":83383420,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772839538932,"traceId":"fca9938ed75c942f"}]
|
package/web/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":8887216,"timestamp":83682623,"id":18,"parentId":1,"tags":{},"startTime":1772839539232,"traceId":"fca9938ed75c942f"},{"name":"run-typescript","duration":7478748,"timestamp":92582054,"id":20,"parentId":1,"tags":{},"startTime":1772839548131,"traceId":"fca9938ed75c942f"},{"name":"static-check","duration":428907,"timestamp":100127569,"id":23,"parentId":1,"tags":{},"startTime":1772839555677,"traceId":"fca9938ed75c942f"},{"name":"static-generation","duration":78728,"timestamp":100560380,"id":61,"parentId":1,"tags":{},"startTime":1772839556109,"traceId":"fca9938ed75c942f"},{"name":"output-standalone","duration":291846,"timestamp":100643819,"id":67,"parentId":1,"tags":{},"startTime":1772839556193,"traceId":"fca9938ed75c942f"},{"name":"telemetry-flush","duration":72,"timestamp":100937967,"id":70,"parentId":1,"tags":{},"startTime":1772839556487,"traceId":"fca9938ed75c942f"},{"name":"next-build","duration":17554632,"timestamp":83383420,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772839538932,"traceId":"fca9938ed75c942f"}]
|
package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { FeatureCreatePayload } from '../../common/feature-create-drawer/index.js';
|
|
2
|
-
import type { DrawerView } from './drawer-view.js';
|
|
3
|
-
export interface ControlCenterDrawerProps {
|
|
4
|
-
view: DrawerView | null;
|
|
5
|
-
onClose: () => void;
|
|
6
|
-
onDelete?: (featureId: string) => void;
|
|
7
|
-
isDeleting?: boolean;
|
|
8
|
-
onCreateSubmit: (data: FeatureCreatePayload) => void;
|
|
9
|
-
isSubmitting?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function ControlCenterDrawer({ view, onClose, onDelete, isDeleting, onCreateSubmit, isSubmitting, }: ControlCenterDrawerProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
//# sourceMappingURL=control-center-drawer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-center-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/control-center-drawer.tsx"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,GACb,EAAE,wBAAwB,2CA0jB1B"}
|
package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.js
DELETED
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
4
|
-
import { toast } from 'sonner';
|
|
5
|
-
import { Loader2, Trash2, ExternalLink, GitCommitHorizontal, Code2, Terminal, FolderOpen, Play, Square, } from 'lucide-react';
|
|
6
|
-
import { PrStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
7
|
-
import { approveFeature } from '../../../app/actions/approve-feature.js';
|
|
8
|
-
import { rejectFeature } from '../../../app/actions/reject-feature.js';
|
|
9
|
-
import { getFeatureArtifact } from '../../../app/actions/get-feature-artifact.js';
|
|
10
|
-
import { getResearchArtifact } from '../../../app/actions/get-research-artifact.js';
|
|
11
|
-
import { getMergeReviewData } from '../../../app/actions/get-merge-review-data.js';
|
|
12
|
-
import { cn } from '../../../lib/utils.js';
|
|
13
|
-
import { featureFlags } from '../../../lib/feature-flags.js';
|
|
14
|
-
import { useSoundAction } from '../../../hooks/use-sound-action.js';
|
|
15
|
-
import { useDeployAction } from '../../../hooks/use-deploy-action.js';
|
|
16
|
-
import { BaseDrawer } from '../../common/base-drawer/index.js';
|
|
17
|
-
import { DeploymentStatusBadge } from '../../common/deployment-status-badge/index.js';
|
|
18
|
-
import { DrawerTitle, DrawerDescription } from '../../ui/drawer.js';
|
|
19
|
-
import { Button } from '../../ui/button.js';
|
|
20
|
-
import { Badge } from '../../ui/badge.js';
|
|
21
|
-
import { Separator } from '../../ui/separator.js';
|
|
22
|
-
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../ui/tooltip.js';
|
|
23
|
-
import { CometSpinner } from '../../ui/comet-spinner.js';
|
|
24
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from '../../ui/alert-dialog.js';
|
|
25
|
-
import { CiStatusBadge } from '../../common/ci-status-badge/index.js';
|
|
26
|
-
import { ActionButton } from '../../common/action-button/index.js';
|
|
27
|
-
import { OpenActionMenu } from '../../common/open-action-menu/index.js';
|
|
28
|
-
import { FeatureCreateDrawer } from '../../common/feature-create-drawer/index.js';
|
|
29
|
-
import { PrdQuestionnaire } from '../../common/prd-questionnaire/index.js';
|
|
30
|
-
import { TechReviewTabs } from '../../common/tech-review-tabs/index.js';
|
|
31
|
-
import { MergeReview } from '../../common/merge-review/index.js';
|
|
32
|
-
import { featureNodeStateConfig, lifecycleDisplayLabels } from '../../common/feature-node/index.js';
|
|
33
|
-
import { useFeatureActions } from '../../common/feature-drawer/use-feature-actions.js';
|
|
34
|
-
import { useRepositoryActions } from '../../common/repository-node/use-repository-actions.js';
|
|
35
|
-
export function ControlCenterDrawer({ view, onClose, onDelete, isDeleting, onCreateSubmit, isSubmitting, }) {
|
|
36
|
-
// ── PRD questionnaire state ─────────────────────────────────────────────
|
|
37
|
-
const [prdData, setPrdData] = useState(null);
|
|
38
|
-
const [prdSelections, setPrdSelections] = useState({});
|
|
39
|
-
const [isLoadingPrd, setIsLoadingPrd] = useState(false);
|
|
40
|
-
// ── Tech decisions state ────────────────────────────────────────────────
|
|
41
|
-
const [techData, setTechData] = useState(null);
|
|
42
|
-
const [isLoadingTech, setIsLoadingTech] = useState(false);
|
|
43
|
-
// ── Product decisions state (for tech review Product tab) ─────────────
|
|
44
|
-
const [techProductData, setTechProductData] = useState(undefined);
|
|
45
|
-
const [isLoadingTechProduct, setIsLoadingTechProduct] = useState(false);
|
|
46
|
-
// ── Merge review state ──────────────────────────────────────────────────
|
|
47
|
-
const [mergeData, setMergeData] = useState(null);
|
|
48
|
-
const [isLoadingMerge, setIsLoadingMerge] = useState(false);
|
|
49
|
-
// ── Shared reject state ─────────────────────────────────────────────────
|
|
50
|
-
const [isRejecting, setIsRejecting] = useState(false);
|
|
51
|
-
const rejectSound = useSoundAction('reject');
|
|
52
|
-
// ── Data fetching ───────────────────────────────────────────────────────
|
|
53
|
-
const prdFeatureId = view?.type === 'prd-review' ? view.node.featureId : null;
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
setPrdSelections({});
|
|
56
|
-
setPrdData(null);
|
|
57
|
-
if (!prdFeatureId)
|
|
58
|
-
return;
|
|
59
|
-
let cancelled = false;
|
|
60
|
-
setIsLoadingPrd(true);
|
|
61
|
-
getFeatureArtifact(prdFeatureId)
|
|
62
|
-
.then((result) => {
|
|
63
|
-
if (cancelled)
|
|
64
|
-
return;
|
|
65
|
-
if (result.error) {
|
|
66
|
-
toast.error(result.error);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (result.questionnaire) {
|
|
70
|
-
setPrdData(result.questionnaire);
|
|
71
|
-
const defaults = {};
|
|
72
|
-
for (const q of result.questionnaire.questions) {
|
|
73
|
-
const recommended = q.options.find((o) => o.recommended);
|
|
74
|
-
if (recommended)
|
|
75
|
-
defaults[q.id] = recommended.id;
|
|
76
|
-
}
|
|
77
|
-
setPrdSelections(defaults);
|
|
78
|
-
}
|
|
79
|
-
})
|
|
80
|
-
.catch(() => {
|
|
81
|
-
if (!cancelled)
|
|
82
|
-
toast.error('Failed to load questionnaire');
|
|
83
|
-
})
|
|
84
|
-
.finally(() => {
|
|
85
|
-
if (!cancelled)
|
|
86
|
-
setIsLoadingPrd(false);
|
|
87
|
-
});
|
|
88
|
-
return () => {
|
|
89
|
-
cancelled = true;
|
|
90
|
-
};
|
|
91
|
-
}, [prdFeatureId]);
|
|
92
|
-
const techFeatureId = view?.type === 'tech-review' ? view.node.featureId : null;
|
|
93
|
-
useEffect(() => {
|
|
94
|
-
setTechData(null);
|
|
95
|
-
if (!techFeatureId)
|
|
96
|
-
return;
|
|
97
|
-
let cancelled = false;
|
|
98
|
-
setIsLoadingTech(true);
|
|
99
|
-
getResearchArtifact(techFeatureId)
|
|
100
|
-
.then((result) => {
|
|
101
|
-
if (cancelled)
|
|
102
|
-
return;
|
|
103
|
-
if (result.error) {
|
|
104
|
-
toast.error(result.error);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
if (result.techDecisions)
|
|
108
|
-
setTechData(result.techDecisions);
|
|
109
|
-
})
|
|
110
|
-
.catch(() => {
|
|
111
|
-
if (!cancelled)
|
|
112
|
-
toast.error('Failed to load tech decisions');
|
|
113
|
-
})
|
|
114
|
-
.finally(() => {
|
|
115
|
-
if (!cancelled)
|
|
116
|
-
setIsLoadingTech(false);
|
|
117
|
-
});
|
|
118
|
-
return () => {
|
|
119
|
-
cancelled = true;
|
|
120
|
-
};
|
|
121
|
-
}, [techFeatureId]);
|
|
122
|
-
// Fetch product decisions for the Product tab in tech review
|
|
123
|
-
useEffect(() => {
|
|
124
|
-
setTechProductData(undefined);
|
|
125
|
-
if (!techFeatureId)
|
|
126
|
-
return;
|
|
127
|
-
let cancelled = false;
|
|
128
|
-
setIsLoadingTechProduct(true);
|
|
129
|
-
getFeatureArtifact(techFeatureId)
|
|
130
|
-
.then((result) => {
|
|
131
|
-
if (cancelled)
|
|
132
|
-
return;
|
|
133
|
-
if (result.productDecisions) {
|
|
134
|
-
setTechProductData(result.productDecisions);
|
|
135
|
-
}
|
|
136
|
-
// Silent failure — product tab shows "not available"
|
|
137
|
-
})
|
|
138
|
-
.catch(() => {
|
|
139
|
-
// Silent failure — the product tab is supplementary
|
|
140
|
-
})
|
|
141
|
-
.finally(() => {
|
|
142
|
-
if (!cancelled)
|
|
143
|
-
setIsLoadingTechProduct(false);
|
|
144
|
-
});
|
|
145
|
-
return () => {
|
|
146
|
-
cancelled = true;
|
|
147
|
-
};
|
|
148
|
-
}, [techFeatureId]);
|
|
149
|
-
const mergeFeatureId = view?.type === 'merge-review' ? view.node.featureId : null;
|
|
150
|
-
useEffect(() => {
|
|
151
|
-
setMergeData(null);
|
|
152
|
-
if (!mergeFeatureId)
|
|
153
|
-
return;
|
|
154
|
-
let cancelled = false;
|
|
155
|
-
setIsLoadingMerge(true);
|
|
156
|
-
getMergeReviewData(mergeFeatureId)
|
|
157
|
-
.then((result) => {
|
|
158
|
-
if (cancelled)
|
|
159
|
-
return;
|
|
160
|
-
if ('error' in result) {
|
|
161
|
-
toast.error(result.error);
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
setMergeData(result);
|
|
165
|
-
})
|
|
166
|
-
.catch(() => {
|
|
167
|
-
if (!cancelled)
|
|
168
|
-
toast.error('Failed to load merge review data');
|
|
169
|
-
})
|
|
170
|
-
.finally(() => {
|
|
171
|
-
if (!cancelled)
|
|
172
|
-
setIsLoadingMerge(false);
|
|
173
|
-
});
|
|
174
|
-
return () => {
|
|
175
|
-
cancelled = true;
|
|
176
|
-
};
|
|
177
|
-
}, [mergeFeatureId]);
|
|
178
|
-
// ── Approve / reject handlers ───────────────────────────────────────────
|
|
179
|
-
const reviewNode = view?.type === 'prd-review' || view?.type === 'tech-review' || view?.type === 'merge-review'
|
|
180
|
-
? view.node
|
|
181
|
-
: null;
|
|
182
|
-
const handleReject = useCallback(async (feedback, label, onDone) => {
|
|
183
|
-
if (!reviewNode?.featureId)
|
|
184
|
-
return;
|
|
185
|
-
setIsRejecting(true);
|
|
186
|
-
try {
|
|
187
|
-
const result = await rejectFeature(reviewNode.featureId, feedback);
|
|
188
|
-
if (!result.rejected) {
|
|
189
|
-
toast.error(result.error ?? `Failed to reject ${label.toLowerCase()}`);
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
rejectSound.play();
|
|
193
|
-
toast.success(`${label} rejected — agent re-iterating (iteration ${result.iteration})`);
|
|
194
|
-
if (result.iterationWarning) {
|
|
195
|
-
toast.warning(`Iteration ${result.iteration} — consider approving or adjusting feedback to avoid excessive iterations`);
|
|
196
|
-
}
|
|
197
|
-
onClose();
|
|
198
|
-
onDone?.();
|
|
199
|
-
}
|
|
200
|
-
finally {
|
|
201
|
-
setIsRejecting(false);
|
|
202
|
-
}
|
|
203
|
-
}, [reviewNode, onClose, rejectSound]);
|
|
204
|
-
const handlePrdReject = useCallback((feedback) => handleReject(feedback, 'Requirements', () => setPrdSelections({})), [handleReject]);
|
|
205
|
-
const handleTechReject = useCallback((feedback) => handleReject(feedback, 'Plan'), [handleReject]);
|
|
206
|
-
const handleMergeReject = useCallback((feedback) => handleReject(feedback, 'Merge'), [handleReject]);
|
|
207
|
-
const handleSimpleApprove = useCallback(async (label) => {
|
|
208
|
-
if (!reviewNode?.featureId)
|
|
209
|
-
return;
|
|
210
|
-
const result = await approveFeature(reviewNode.featureId);
|
|
211
|
-
if (!result.approved) {
|
|
212
|
-
toast.error(result.error ?? `Failed to approve ${label.toLowerCase()}`);
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
toast.success(`${label} approved — agent resuming`);
|
|
216
|
-
onClose();
|
|
217
|
-
}, [reviewNode, onClose]);
|
|
218
|
-
const handlePrdApprove = useCallback(async (_actionId) => {
|
|
219
|
-
if (view?.type !== 'prd-review')
|
|
220
|
-
return;
|
|
221
|
-
let payload;
|
|
222
|
-
if (prdData) {
|
|
223
|
-
const changedSelections = [];
|
|
224
|
-
for (const [questionId, optionId] of Object.entries(prdSelections)) {
|
|
225
|
-
const question = prdData.questions.find((q) => q.id === questionId);
|
|
226
|
-
const option = question?.options.find((o) => o.id === optionId);
|
|
227
|
-
if (question && option) {
|
|
228
|
-
changedSelections.push({ questionId: question.question, selectedOption: option.label });
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
payload = { approved: true, changedSelections };
|
|
232
|
-
}
|
|
233
|
-
const result = await approveFeature(view.node.featureId, payload);
|
|
234
|
-
if (!result.approved) {
|
|
235
|
-
toast.error(result.error ?? 'Failed to approve requirements');
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
toast.success('Requirements approved — agent resuming');
|
|
239
|
-
setPrdSelections({});
|
|
240
|
-
onClose();
|
|
241
|
-
}, [view, prdData, prdSelections, onClose]);
|
|
242
|
-
const handleTechApprove = useCallback(() => handleSimpleApprove('Plan'), [handleSimpleApprove]);
|
|
243
|
-
const handleMergeApprove = useCallback(() => handleSimpleApprove('Merge'), [handleSimpleApprove]);
|
|
244
|
-
// ── Derived view data ───────────────────────────────────────────────────
|
|
245
|
-
const isCreateView = view?.type === 'feature-create';
|
|
246
|
-
const createView = isCreateView ? view : null;
|
|
247
|
-
const featureNode = view?.type === 'feature' ||
|
|
248
|
-
view?.type === 'prd-review' ||
|
|
249
|
-
view?.type === 'tech-review' ||
|
|
250
|
-
view?.type === 'merge-review'
|
|
251
|
-
? view.node
|
|
252
|
-
: null;
|
|
253
|
-
const repoData = view?.type === 'repository' ? view.data : null;
|
|
254
|
-
// ── Hooks (always called unconditionally per Rules of Hooks) ────────────
|
|
255
|
-
const featureActionsInput = featureNode?.repositoryPath && featureNode?.branch
|
|
256
|
-
? {
|
|
257
|
-
repositoryPath: featureNode.repositoryPath,
|
|
258
|
-
branch: featureNode.branch,
|
|
259
|
-
specPath: featureNode.specPath,
|
|
260
|
-
}
|
|
261
|
-
: null;
|
|
262
|
-
const featureActions = useFeatureActions(featureActionsInput);
|
|
263
|
-
const repoActions = useRepositoryActions(repoData?.repositoryPath ? { repositoryPath: repoData.repositoryPath } : null);
|
|
264
|
-
// ── Deploy targets ──────────────────────────────────────────────────────
|
|
265
|
-
// Feature deploy is rendered inline in the header; repo deploy uses BaseDrawer's bar.
|
|
266
|
-
const featureDeployTarget = featureNode?.repositoryPath && featureNode.branch
|
|
267
|
-
? {
|
|
268
|
-
targetId: featureNode.featureId,
|
|
269
|
-
targetType: 'feature',
|
|
270
|
-
repositoryPath: featureNode.repositoryPath,
|
|
271
|
-
branch: featureNode.branch,
|
|
272
|
-
}
|
|
273
|
-
: null;
|
|
274
|
-
const repoDeployTarget = repoData?.repositoryPath
|
|
275
|
-
? {
|
|
276
|
-
targetId: repoData.repositoryPath,
|
|
277
|
-
targetType: 'repository',
|
|
278
|
-
repositoryPath: repoData.repositoryPath,
|
|
279
|
-
}
|
|
280
|
-
: undefined;
|
|
281
|
-
const deployAction = useDeployAction(featureDeployTarget);
|
|
282
|
-
const isFeatureDeployActive = deployAction.status === 'Booting' || deployAction.status === 'Ready';
|
|
283
|
-
// ── Header ──────────────────────────────────────────────────────────────
|
|
284
|
-
let header = undefined;
|
|
285
|
-
if (featureNode) {
|
|
286
|
-
header = (_jsxs(_Fragment, { children: [_jsxs("div", { "data-testid": "feature-drawer-header", children: [_jsx(DrawerTitle, { children: featureNode.name }), featureNode.description ? (_jsx(DrawerDescription, { children: featureNode.description })) : featureNode.featureId ? (_jsx(DrawerDescription, { className: "sr-only", children: featureNode.featureId })) : null] }), featureActionsInput ? (_jsxs("div", { className: "flex items-center gap-2 pt-2", children: [_jsx(OpenActionMenu, { actions: featureActions, repositoryPath: featureActionsInput.repositoryPath, showSpecs: !!featureActionsInput.specPath }), featureFlags.envDeploy && featureDeployTarget ? (_jsxs(_Fragment, { children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { children: _jsx(ActionButton, { label: isFeatureDeployActive ? 'Stop Dev Server' : 'Start Dev Server', onClick: isFeatureDeployActive ? deployAction.stop : deployAction.deploy, loading: deployAction.deployLoading || deployAction.stopLoading, error: !!deployAction.deployError, icon: isFeatureDeployActive ? Square : Play, iconOnly: true, variant: "outline", size: "icon-sm" }) }) }), _jsx(TooltipContent, { children: isFeatureDeployActive ? 'Stop Dev Server' : 'Start Dev Server' })] }) }), isFeatureDeployActive ? (_jsx(DeploymentStatusBadge, { status: deployAction.status, url: deployAction.url, targetId: featureDeployTarget?.targetId })) : null] })) : null, onDelete && featureNode.featureId ? (_jsxs(AlertDialog, { children: [_jsx(AlertDialogTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Delete feature", disabled: isDeleting, className: "text-muted-foreground hover:text-destructive ml-auto", "data-testid": "feature-drawer-delete", children: isDeleting ? (_jsx(Loader2, { className: "size-4 animate-spin" })) : (_jsx(Trash2, { className: "size-4" })) }) }), _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: "Delete feature?" }), _jsxs(AlertDialogDescription, { children: ["This will permanently delete ", _jsx("strong", { children: featureNode.name }), " (", featureNode.featureId, "). This action cannot be undone.", featureNode.state === 'running' ? (_jsx(_Fragment, { children: " This feature has a running agent that will be stopped." })) : null] })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { disabled: isDeleting, children: "Cancel" }), _jsx(AlertDialogAction, { variant: "destructive", disabled: isDeleting, onClick: () => onDelete(featureNode.featureId), children: isDeleting ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), "Deleting\u2026"] })) : ('Delete') })] })] })] })) : null] })) : null] }));
|
|
287
|
-
}
|
|
288
|
-
else if (repoData) {
|
|
289
|
-
header = (_jsxs("div", { "data-testid": "repository-drawer-header", children: [_jsx(DrawerTitle, { children: repoData.name }), repoData.repositoryPath ? (_jsx(DrawerDescription, { className: "truncate font-mono text-xs", children: repoData.repositoryPath })) : null] }));
|
|
290
|
-
}
|
|
291
|
-
// ── Body ────────────────────────────────────────────────────────────────
|
|
292
|
-
let body = null;
|
|
293
|
-
if (view?.type === 'feature' && featureNode) {
|
|
294
|
-
body = (_jsxs("div", { className: "flex-1 overflow-y-auto", children: [_jsxs("div", { "data-testid": "feature-drawer-status", className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "text-muted-foreground text-xs font-semibold tracking-wider", children: lifecycleDisplayLabels[featureNode.lifecycle] }), _jsx(FeatureStateBadge, { data: featureNode }), featureNode.progress > 0 ? (_jsxs("div", { "data-testid": "feature-drawer-progress", className: "flex flex-col gap-1", children: [_jsxs("div", { className: "text-muted-foreground flex items-center justify-between text-xs", children: [_jsx("span", { children: "Progress" }), _jsxs("span", { children: [featureNode.progress, "%"] })] }), _jsx("div", { className: "bg-muted h-2 w-full overflow-hidden rounded-full", children: _jsx("div", { className: cn('h-full rounded-full transition-all', featureNodeStateConfig[featureNode.state].progressClass), style: { width: `${featureNode.progress}%` } }) })] })) : null] }), featureNode.pr ? (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsx(FeaturePrInfo, { pr: featureNode.pr })] })) : null, _jsx(FeatureDetails, { data: featureNode })] }));
|
|
295
|
-
}
|
|
296
|
-
else if (view?.type === 'prd-review') {
|
|
297
|
-
body = prdData ? (_jsx(PrdQuestionnaire, { data: prdData, selections: prdSelections, onSelect: (qId, oId) => setPrdSelections((prev) => ({ ...prev, [qId]: oId })), onApprove: handlePrdApprove, onReject: handlePrdReject, isProcessing: isLoadingPrd, isRejecting: isRejecting })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
|
|
298
|
-
}
|
|
299
|
-
else if (view?.type === 'tech-review') {
|
|
300
|
-
body = techData ? (_jsx(TechReviewTabs, { techData: techData, productData: isLoadingTechProduct ? null : techProductData, onApprove: handleTechApprove, onReject: handleTechReject, isProcessing: isLoadingTech, isRejecting: isRejecting })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
|
|
301
|
-
}
|
|
302
|
-
else if (view?.type === 'merge-review') {
|
|
303
|
-
body = mergeData ? (_jsx(MergeReview, { data: mergeData, onApprove: handleMergeApprove, onReject: handleMergeReject, isProcessing: isLoadingMerge, isRejecting: isRejecting })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }));
|
|
304
|
-
}
|
|
305
|
-
else if (view?.type === 'repository' && repoData?.repositoryPath) {
|
|
306
|
-
body = (_jsxs("div", { className: "flex-1 overflow-y-auto", children: [_jsx(Separator, {}), _jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "text-muted-foreground text-xs font-semibold tracking-wider", children: "OPEN WITH" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(ActionButton, { label: "Open in IDE", onClick: repoActions.openInIde, loading: repoActions.ideLoading, error: !!repoActions.ideError, icon: Code2, variant: "outline", size: "sm" }), _jsx(ActionButton, { label: "Open in Shell", onClick: repoActions.openInShell, loading: repoActions.shellLoading, error: !!repoActions.shellError, icon: Terminal, variant: "outline", size: "sm" }), _jsx(ActionButton, { label: "Open Folder", onClick: repoActions.openFolder, loading: repoActions.folderLoading, error: !!repoActions.folderError, icon: FolderOpen, variant: "outline", size: "sm" })] })] })] }));
|
|
307
|
-
}
|
|
308
|
-
// ── Render ──────────────────────────────────────────────────────────────
|
|
309
|
-
return (_jsxs(_Fragment, { children: [_jsx(BaseDrawer, { open: view !== null && !isCreateView, onClose: onClose, size: "md", modal: false, header: header, deployTarget: repoDeployTarget, "data-testid": view?.type === 'feature'
|
|
310
|
-
? 'feature-drawer'
|
|
311
|
-
: view?.type === 'repository'
|
|
312
|
-
? 'repository-drawer'
|
|
313
|
-
: 'review-drawer', children: body }), _jsx(FeatureCreateDrawer, { open: isCreateView, onClose: onClose, onSubmit: onCreateSubmit, repositoryPath: createView?.repositoryPath ?? '', features: createView?.features ?? [], workflowDefaults: createView?.workflowDefaults, initialParentId: createView?.initialParentId, isSubmitting: isSubmitting })] }));
|
|
314
|
-
}
|
|
315
|
-
// ── Private sub-components ────────────────────────────────────────────────────
|
|
316
|
-
function FeatureStateBadge({ data }) {
|
|
317
|
-
const config = featureNodeStateConfig[data.state];
|
|
318
|
-
const Icon = config.icon;
|
|
319
|
-
return (_jsxs("div", { className: cn('flex items-center gap-2 rounded-full px-3 py-1.5 text-sm font-medium', config.badgeBgClass, config.badgeClass), children: [data.state === 'running' ? (_jsx(CometSpinner, { size: "sm", className: "shrink-0" })) : (_jsx(Icon, { className: "h-4 w-4 shrink-0" })), _jsx("span", { children: config.label })] }));
|
|
320
|
-
}
|
|
321
|
-
const prStatusStyles = {
|
|
322
|
-
[PrStatus.Open]: 'border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50',
|
|
323
|
-
[PrStatus.Merged]: 'border-transparent bg-purple-50 text-purple-700 hover:bg-purple-50',
|
|
324
|
-
[PrStatus.Closed]: 'border-transparent bg-red-50 text-red-700 hover:bg-red-50',
|
|
325
|
-
};
|
|
326
|
-
function FeaturePrInfo({ pr }) {
|
|
327
|
-
return (_jsx("div", { "data-testid": "feature-drawer-pr", className: "border-border mx-4 rounded-lg border", children: _jsxs("div", { className: "space-y-3 px-4 py-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("a", { href: pr.url, target: "_blank", rel: "noopener noreferrer", className: "text-primary flex items-center gap-1.5 text-sm font-semibold underline underline-offset-2", children: ["PR #", pr.number, _jsx(ExternalLink, { className: "h-3.5 w-3.5" })] }), _jsx(Badge, { className: prStatusStyles[pr.status], children: pr.status })] }), pr.ciStatus ? (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "CI Status" }), _jsx(CiStatusBadge, { status: pr.ciStatus })] })) : null, pr.commitHash ? (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Commit" }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(GitCommitHorizontal, { className: "text-muted-foreground h-3.5 w-3.5" }), _jsx("code", { className: "bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]", children: pr.commitHash.slice(0, 7) })] })] })) : null] }) }));
|
|
328
|
-
}
|
|
329
|
-
function FeatureDetails({ data }) {
|
|
330
|
-
const hasAnyDetail = data.agentType ?? data.runtime ?? data.blockedBy ?? data.errorMessage;
|
|
331
|
-
if (!hasAnyDetail)
|
|
332
|
-
return null;
|
|
333
|
-
return (_jsxs(_Fragment, { children: [_jsx(Separator, {}), _jsxs("div", { "data-testid": "feature-drawer-details", className: "flex flex-col gap-3 p-4", children: [data.agentType ? _jsx(DetailRow, { label: "Agent", value: data.agentType }) : null, data.runtime ? _jsx(DetailRow, { label: "Runtime", value: data.runtime }) : null, data.blockedBy ? _jsx(DetailRow, { label: "Blocked by", value: data.blockedBy }) : null, data.errorMessage ? _jsx(DetailRow, { label: "Error", value: data.errorMessage }) : null] })] }));
|
|
334
|
-
}
|
|
335
|
-
function DetailRow({ label, value }) {
|
|
336
|
-
return (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: label }), _jsx("span", { className: "text-sm", children: value })] }));
|
|
337
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { ControlCenterDrawer } from './control-center-drawer.js';
|
|
3
|
-
declare const meta: Meta<typeof ControlCenterDrawer>;
|
|
4
|
-
export default meta;
|
|
5
|
-
type Story = StoryObj<typeof ControlCenterDrawer>;
|
|
6
|
-
/** Feature info view — running state with progress. Default story. */
|
|
7
|
-
export declare const Default: Story;
|
|
8
|
-
/** Feature info view — completed (maintain lifecycle, done state, merged PR). */
|
|
9
|
-
export declare const FeatureDone: Story;
|
|
10
|
-
/** Feature info view — error state. */
|
|
11
|
-
export declare const FeatureError: Story;
|
|
12
|
-
/**
|
|
13
|
-
* PRD review view — loads questionnaire data via server action.
|
|
14
|
-
* Shows spinner in Storybook (no real API available).
|
|
15
|
-
*/
|
|
16
|
-
export declare const PrdReview: Story;
|
|
17
|
-
/**
|
|
18
|
-
* Tech decisions review view — loads research artifact via server action.
|
|
19
|
-
* Shows spinner in Storybook.
|
|
20
|
-
*/
|
|
21
|
-
export declare const TechReview: Story;
|
|
22
|
-
/**
|
|
23
|
-
* Merge review view — loads merge review data via server action.
|
|
24
|
-
* Shows spinner in Storybook.
|
|
25
|
-
*/
|
|
26
|
-
export declare const MergeReview: Story;
|
|
27
|
-
/** Feature create form. */
|
|
28
|
-
export declare const FeatureCreate: Story;
|
|
29
|
-
/** Repository actions view. */
|
|
30
|
-
export declare const Repository: Story;
|
|
31
|
-
/** Interactive — click any view type to open that drawer panel. */
|
|
32
|
-
export declare const AllViews: Story;
|
|
33
|
-
//# sourceMappingURL=control-center-drawer.stories.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-center-drawer.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,mBAAmB,CAc1C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAC;AA+JlD,sEAAsE;AACtE,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,uCAAuC;AACvC,eAAO,MAAM,YAAY,EAAE,KAE1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,aAAa,EAAE,KAE3B,CAAC;AAEF,+BAA+B;AAC/B,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AA0DF,mEAAmE;AACnE,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC"}
|