@shepai/cli 1.78.1-pr241.ee88d2d → 1.78.1-pr246.ca9db57
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/apis/json-schema/Attachment.yaml +31 -0
- package/apis/json-schema/Feature.yaml +5 -0
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +35 -3
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +7 -1
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.d.ts +33 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +3 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +11 -0
- package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts +28 -0
- package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/attachment-storage.service.js +125 -0
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +21 -1
- package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -14
- package/dist/src/presentation/web/app/actions/compose-user-input.d.ts +7 -0
- package/dist/src/presentation/web/app/actions/compose-user-input.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/compose-user-input.js +7 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts +1 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/create-feature.js +3 -9
- package/dist/src/presentation/web/app/api/attachments/upload/route.d.ts +3 -0
- package/dist/src/presentation/web/app/api/attachments/upload/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/attachments/upload/route.js +101 -0
- package/dist/src/presentation/web/app/build-feature-node-data.d.ts +1 -7
- 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 +1 -7
- package/dist/src/presentation/web/app/build-graph-nodes.js +3 -7
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.d.ts +16 -0
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.js +53 -0
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.js +55 -0
- package/dist/src/presentation/web/components/common/attachment-card/index.d.ts +3 -0
- package/dist/src/presentation/web/components/common/attachment-card/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/attachment-card/index.js +1 -0
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +19 -7
- 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 +6 -6
- 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 +85 -48
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +11 -2
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +194 -59
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +6 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +18 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts +9 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +60 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts +47 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +307 -0
- package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer/index.js +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +0 -12
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/index.d.ts +4 -3
- package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/index.js +4 -3
- package/dist/src/presentation/web/components/common/merge-review/index.d.ts +2 -1
- package/dist/src/presentation/web/components/common/merge-review/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/merge-review/index.js +1 -0
- package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts +3 -0
- package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.js +8 -0
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts +8 -0
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +33 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts +2 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/index.js +1 -0
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts +3 -0
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.js +8 -0
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +38 -1
- package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts +3 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/index.js +1 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts +26 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.js +1 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts +3 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.js +29 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts +14 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.js +33 -0
- package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts +2 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/index.js +1 -0
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts +3 -0
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.js +8 -0
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts +8 -0
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +29 -1
- package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts +3 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/index.js +1 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts +21 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.js +1 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts +3 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.js +12 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.js +110 -0
- package/dist/src/presentation/web/next.config.d.ts.map +1 -1
- package/dist/src/presentation/web/next.config.js +6 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -0
- package/web/.next/required-server-files.json +3 -0
- package/web/.next/routes-manifest.json +6 -6
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
- 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 +38 -68
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
- 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 +14 -14
- 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 +18 -18
- 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 +38 -68
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
- 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 +14 -14
- 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 +14 -14
- 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/api/attachments/upload/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/attachments/upload/route.js +7 -0
- package/web/.next/server/app/api/attachments/upload/route.js.nft.json +1 -0
- package/web/.next/server/app/api/attachments/upload/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/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/app-paths-manifest.json +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_attachments_upload_route_actions_48fe4a8f.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__b2f9a412._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__b2f9a412._.js.map +1 -0
- 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_da7eef33.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__ae824a5b._.js → [root-of-the-server]__a337ca5c._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a337ca5c._.js.map +1 -0
- 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/[root-of-the-server]__b3a4cef4._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_3e88ce9d._.js → _06db7efd._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_3e88ce9d._.js.map → _06db7efd._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1e3cf73b._.js +1 -1
- package/web/.next/server/chunks/ssr/_1e3cf73b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_34fbed18._.js +1 -1
- package/web/.next/server/chunks/ssr/_34fbed18._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_887258d0._.js → _4031d614._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_887258d0._.js.map → _4031d614._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_5c4ce700._.js +3 -0
- package/web/.next/server/chunks/ssr/{_5d4e7151._.js.map → _5c4ce700._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_63868199._.js +1 -1
- package/web/.next/server/chunks/ssr/_63868199._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_4b251edf._.js → _c66a5a32._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_4b251edf._.js.map → _c66a5a32._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_80b5b4bc._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_80b5b4bc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_82416b8f._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_82416b8f._.js.map +1 -0
- 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_e4510d10._.js +2 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.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 +64 -108
- package/web/.next/static/chunks/{2a24ac257fc1c10b.js → 1f57d0c949dbb44d.js} +1 -1
- package/web/.next/static/chunks/27a7dd213b6da211.js +1 -0
- package/web/.next/static/chunks/{a2a8c7488178523b.js → 294840464b615929.js} +2 -2
- package/web/.next/static/chunks/2a0156732d824304.js +1 -0
- package/web/.next/static/chunks/55cfb5d3bc98f2e9.js +1 -0
- package/web/.next/static/chunks/6a3e8ea6e1fd2113.js +1 -0
- package/web/.next/static/chunks/{40b4ba55a08cc340.js → 6beed3db056fe481.js} +1 -1
- package/web/.next/static/chunks/{1ed35030fddfaf83.js → 76ddfd21093dc7e7.js} +1 -1
- package/web/.next/static/chunks/b0c8d477fe52559a.js +1 -0
- package/web/.next/static/chunks/{1943a885d38cec14.js → ca4247da9701312c.js} +2 -2
- package/web/.next/static/chunks/e933e992fdc663fb.js +1 -0
- package/web/.next/static/chunks/f6f770ab32a69286.css +2 -0
- package/web/.next/static/chunks/{bdf60cf8dc75a90f.js → f7ed5cfe0c81a863.js} +1 -1
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +0 -17
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +0 -25
- package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts +0 -18
- package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/get-feature-plan.js +0 -31
- package/dist/src/presentation/web/app/api/feature-logs/route.d.ts +0 -16
- package/dist/src/presentation/web/app/api/feature-logs/route.d.ts.map +0 -1
- package/dist/src/presentation/web/app/api/feature-logs/route.js +0 -184
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts +0 -8
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +0 -90
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts +0 -20
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.js +0 -252
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +0 -31
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +0 -123
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts +0 -20
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.js +0 -315
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts +0 -3
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.js +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts +0 -7
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.js +0 -35
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts +0 -18
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.js +0 -89
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts +0 -6
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +0 -78
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +0 -28
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +0 -157
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts +0 -8
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.js +0 -40
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts +0 -22
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.js +0 -188
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts +0 -30
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.js +0 -100
- package/dist/src/presentation/web/hooks/use-feature-logs.d.ts +0 -7
- package/dist/src/presentation/web/hooks/use-feature-logs.d.ts.map +0 -1
- package/dist/src/presentation/web/hooks/use-feature-logs.js +0 -52
- package/web/.next/server/app/api/feature-logs/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/api/feature-logs/route.js +0 -6
- package/web/.next/server/app/api/feature-logs/route.js.nft.json +0 -1
- package/web/.next/server/app/api/feature-logs/route_client-reference-manifest.js +0 -2
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js +0 -12
- package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ae824a5b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_08bf9375._.js +0 -3
- package/web/.next/server/chunks/ssr/_08bf9375._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5d4e7151._.js +0 -3
- package/web/.next/server/chunks/ssr/_e7eb01d5._.js +0 -3
- package/web/.next/server/chunks/ssr/_e7eb01d5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_d80c1060._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_d80c1060._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js.map +0 -1
- package/web/.next/static/chunks/1ac497a4b2a7a143.js +0 -1
- package/web/.next/static/chunks/201456645dc32523.js +0 -1
- package/web/.next/static/chunks/46de72d1231c72e6.js +0 -1
- package/web/.next/static/chunks/54f920b6a940da52.js +0 -1
- package/web/.next/static/chunks/96bab6d3820504f3.css +0 -2
- package/web/.next/static/chunks/a1c2ecb710b44081.js +0 -1
- package/web/.next/static/chunks/b590b965ec136ece.js +0 -1
- /package/web/.next/server/app/api/{feature-logs → attachments/upload}/route/build-manifest.json +0 -0
- /package/web/.next/server/app/api/{feature-logs → attachments/upload}/route/server-reference-manifest.json +0 -0
- /package/web/.next/server/app/api/{feature-logs → attachments/upload}/route.js.map +0 -0
- /package/web/.next/server/chunks/{744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js.map → 744ca_web__next-internal_server_app_api_attachments_upload_route_actions_48fe4a8f.js.map} +0 -0
- /package/web/.next/static/{nOcqEXIvW4HbIOdPWtEmW → 2GTN_fvpyiJGx65yUAuBB}/_buildManifest.js +0 -0
- /package/web/.next/static/{nOcqEXIvW4HbIOdPWtEmW → 2GTN_fvpyiJGx65yUAuBB}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{nOcqEXIvW4HbIOdPWtEmW → 2GTN_fvpyiJGx65yUAuBB}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { PrStatus, CiStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
4
|
+
import { FeatureDrawer } from './feature-drawer.js';
|
|
5
|
+
import { Button } from '../../ui/button.js';
|
|
6
|
+
const meta = {
|
|
7
|
+
title: 'Drawers/Feature/FeatureDrawer',
|
|
8
|
+
component: FeatureDrawer,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
parameters: {
|
|
11
|
+
layout: 'fullscreen',
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
export default meta;
|
|
15
|
+
/* ---------------------------------------------------------------------------
|
|
16
|
+
* Data fixtures
|
|
17
|
+
* ------------------------------------------------------------------------- */
|
|
18
|
+
const baseData = {
|
|
19
|
+
name: 'Auth Module',
|
|
20
|
+
featureId: '#f1',
|
|
21
|
+
lifecycle: 'implementation',
|
|
22
|
+
state: 'running',
|
|
23
|
+
progress: 45,
|
|
24
|
+
repositoryPath: '/home/user/my-repo',
|
|
25
|
+
branch: 'feat/auth-module',
|
|
26
|
+
};
|
|
27
|
+
const runningData = {
|
|
28
|
+
name: 'Auth Module',
|
|
29
|
+
description: 'Implement OAuth2 authentication flow',
|
|
30
|
+
featureId: '#f1',
|
|
31
|
+
lifecycle: 'implementation',
|
|
32
|
+
state: 'running',
|
|
33
|
+
progress: 45,
|
|
34
|
+
agentType: 'claude-code',
|
|
35
|
+
repositoryPath: '/home/user/my-repo',
|
|
36
|
+
branch: 'feat/auth-module',
|
|
37
|
+
};
|
|
38
|
+
const actionRequiredData = {
|
|
39
|
+
name: 'API Rate Limiting',
|
|
40
|
+
description: 'Implement sliding window rate limiting for public endpoints',
|
|
41
|
+
featureId: '#bi1',
|
|
42
|
+
lifecycle: 'requirements',
|
|
43
|
+
state: 'action-required',
|
|
44
|
+
progress: 22,
|
|
45
|
+
repositoryPath: '/home/user/my-repo',
|
|
46
|
+
branch: 'feat/api-rate-limiting',
|
|
47
|
+
};
|
|
48
|
+
const doneData = {
|
|
49
|
+
name: 'Payment Gateway',
|
|
50
|
+
description: 'Stripe integration for subscriptions',
|
|
51
|
+
featureId: '#f3',
|
|
52
|
+
lifecycle: 'deploy',
|
|
53
|
+
state: 'done',
|
|
54
|
+
progress: 100,
|
|
55
|
+
runtime: '1h 42m',
|
|
56
|
+
repositoryPath: '/home/user/my-repo',
|
|
57
|
+
branch: 'feat/payment-gateway',
|
|
58
|
+
};
|
|
59
|
+
const blockedData = {
|
|
60
|
+
name: 'Search Index',
|
|
61
|
+
description: 'Elasticsearch full-text search setup',
|
|
62
|
+
featureId: '#f4',
|
|
63
|
+
lifecycle: 'implementation',
|
|
64
|
+
state: 'blocked',
|
|
65
|
+
progress: 20,
|
|
66
|
+
blockedBy: 'Auth Module',
|
|
67
|
+
repositoryPath: '/home/user/my-repo',
|
|
68
|
+
branch: 'feat/search-index',
|
|
69
|
+
};
|
|
70
|
+
const errorData = {
|
|
71
|
+
name: 'Email Service',
|
|
72
|
+
description: 'Transactional email with SendGrid',
|
|
73
|
+
featureId: '#f5',
|
|
74
|
+
lifecycle: 'review',
|
|
75
|
+
state: 'error',
|
|
76
|
+
progress: 30,
|
|
77
|
+
errorMessage: 'Build failed: type mismatch',
|
|
78
|
+
repositoryPath: '/home/user/my-repo',
|
|
79
|
+
branch: 'feat/email-service',
|
|
80
|
+
};
|
|
81
|
+
const reviewInProgressData = {
|
|
82
|
+
name: 'Auth Module',
|
|
83
|
+
description: 'Implement OAuth2 authentication flow',
|
|
84
|
+
featureId: '#f6',
|
|
85
|
+
lifecycle: 'review',
|
|
86
|
+
state: 'running',
|
|
87
|
+
progress: 0,
|
|
88
|
+
agentType: 'claude-code',
|
|
89
|
+
repositoryPath: '/home/user/my-repo',
|
|
90
|
+
branch: 'feat/auth-module',
|
|
91
|
+
pr: {
|
|
92
|
+
url: 'https://github.com/org/repo/pull/17',
|
|
93
|
+
number: 17,
|
|
94
|
+
status: PrStatus.Open,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
/* ---------------------------------------------------------------------------
|
|
98
|
+
* Trigger wrapper — starts closed, click to open
|
|
99
|
+
* ------------------------------------------------------------------------- */
|
|
100
|
+
function DrawerTrigger({ data, label }) {
|
|
101
|
+
const [selected, setSelected] = useState(null);
|
|
102
|
+
return (_jsxs("div", { className: "flex h-screen items-start p-4", children: [_jsx(Button, { variant: "outline", onClick: () => setSelected(data), children: label }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
|
|
103
|
+
}
|
|
104
|
+
/* ---------------------------------------------------------------------------
|
|
105
|
+
* Per-state stories
|
|
106
|
+
* ------------------------------------------------------------------------- */
|
|
107
|
+
/** Feature drawer rendered inside a full-page context — starts open. Primary story. */
|
|
108
|
+
export const Default = {
|
|
109
|
+
render: () => _jsx(FeatureDrawerShellTemplate, { data: runningData }),
|
|
110
|
+
};
|
|
111
|
+
export const Running = {
|
|
112
|
+
render: () => _jsx(DrawerTrigger, { data: runningData, label: "Open Running" }),
|
|
113
|
+
};
|
|
114
|
+
export const ActionRequired = {
|
|
115
|
+
render: () => _jsx(DrawerTrigger, { data: actionRequiredData, label: "Open Action Required" }),
|
|
116
|
+
};
|
|
117
|
+
export const Done = {
|
|
118
|
+
render: () => _jsx(DrawerTrigger, { data: doneData, label: "Open Done" }),
|
|
119
|
+
};
|
|
120
|
+
export const Blocked = {
|
|
121
|
+
render: () => _jsx(DrawerTrigger, { data: blockedData, label: "Open Blocked" }),
|
|
122
|
+
};
|
|
123
|
+
/** Review lifecycle + running state — matches the look/feel of review pending-action drawers. */
|
|
124
|
+
export const ReviewInProgress = {
|
|
125
|
+
render: () => _jsx(DrawerTrigger, { data: reviewInProgressData, label: "Open Review In Progress" }),
|
|
126
|
+
};
|
|
127
|
+
export const Error = {
|
|
128
|
+
render: () => _jsx(DrawerTrigger, { data: errorData, label: "Open Error" }),
|
|
129
|
+
};
|
|
130
|
+
/* ---------------------------------------------------------------------------
|
|
131
|
+
* Edge-case stories
|
|
132
|
+
* ------------------------------------------------------------------------- */
|
|
133
|
+
/** Minimal data — only required fields, no optional details section. */
|
|
134
|
+
export const MinimalData = {
|
|
135
|
+
render: () => _jsx(DrawerTrigger, { data: { ...baseData, progress: 0 }, label: "Open Minimal" }),
|
|
136
|
+
};
|
|
137
|
+
/** All optional fields populated — description, agent, runtime, blockedBy, error. */
|
|
138
|
+
export const AllFields = {
|
|
139
|
+
render: () => (_jsx(DrawerTrigger, { data: {
|
|
140
|
+
name: 'Enterprise Authentication Module',
|
|
141
|
+
description: 'Implement a comprehensive OAuth2 authentication flow with support for multiple identity providers including Google, GitHub, and custom SAML-based enterprise SSO.',
|
|
142
|
+
featureId: '#f99',
|
|
143
|
+
lifecycle: 'implementation',
|
|
144
|
+
state: 'running',
|
|
145
|
+
progress: 68,
|
|
146
|
+
agentType: 'cursor',
|
|
147
|
+
runtime: '3h 15m',
|
|
148
|
+
blockedBy: 'Database Migration',
|
|
149
|
+
errorMessage: 'Token refresh failed: invalid_grant',
|
|
150
|
+
repositoryPath: '/home/user/enterprise-app',
|
|
151
|
+
branch: 'feat/enterprise-auth',
|
|
152
|
+
}, label: "Open All Fields" })),
|
|
153
|
+
};
|
|
154
|
+
/* ---------------------------------------------------------------------------
|
|
155
|
+
* Matrix stories — interactive state/lifecycle switcher
|
|
156
|
+
* ------------------------------------------------------------------------- */
|
|
157
|
+
const creatingData = {
|
|
158
|
+
name: 'User Onboarding',
|
|
159
|
+
description: 'Implement guided onboarding wizard',
|
|
160
|
+
featureId: '',
|
|
161
|
+
lifecycle: 'requirements',
|
|
162
|
+
state: 'creating',
|
|
163
|
+
progress: 0,
|
|
164
|
+
repositoryPath: '/home/user/my-repo',
|
|
165
|
+
branch: '',
|
|
166
|
+
};
|
|
167
|
+
const stateFixtures = {
|
|
168
|
+
creating: creatingData,
|
|
169
|
+
running: runningData,
|
|
170
|
+
'action-required': actionRequiredData,
|
|
171
|
+
done: doneData,
|
|
172
|
+
blocked: blockedData,
|
|
173
|
+
error: errorData,
|
|
174
|
+
};
|
|
175
|
+
const allLifecycles = [
|
|
176
|
+
'requirements',
|
|
177
|
+
'research',
|
|
178
|
+
'implementation',
|
|
179
|
+
'review',
|
|
180
|
+
'deploy',
|
|
181
|
+
'maintain',
|
|
182
|
+
];
|
|
183
|
+
function AllStatesRender() {
|
|
184
|
+
const [state, setState] = useState('running');
|
|
185
|
+
const [selected, setSelected] = useState(null);
|
|
186
|
+
const _data = stateFixtures[state];
|
|
187
|
+
return (_jsxs("div", { className: "flex h-screen", children: [_jsxs("div", { className: "flex flex-col gap-2 p-4", children: [_jsx("span", { className: "text-muted-foreground mb-2 text-xs font-semibold tracking-wider uppercase", children: "Select state" }), Object.keys(stateFixtures).map((s) => (_jsx("button", { type: "button", onClick: () => {
|
|
188
|
+
setState(s);
|
|
189
|
+
setSelected(stateFixtures[s]);
|
|
190
|
+
}, className: `rounded-md px-3 py-1.5 text-left text-sm ${s === state ? 'bg-primary text-primary-foreground' : 'bg-muted hover:bg-muted/80'}`, children: s }, s)))] }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
|
|
191
|
+
}
|
|
192
|
+
/** Cycle through all 5 states at a glance via buttons. */
|
|
193
|
+
export const AllStates = {
|
|
194
|
+
render: () => _jsx(AllStatesRender, {}),
|
|
195
|
+
};
|
|
196
|
+
function AllLifecyclesRender() {
|
|
197
|
+
const [lifecycle, setLifecycle] = useState('requirements');
|
|
198
|
+
const [selected, setSelected] = useState(null);
|
|
199
|
+
return (_jsxs("div", { className: "flex h-screen", children: [_jsxs("div", { className: "flex flex-col gap-2 p-4", children: [_jsx("span", { className: "text-muted-foreground mb-2 text-xs font-semibold tracking-wider uppercase", children: "Select phase" }), allLifecycles.map((phase) => (_jsx("button", { type: "button", onClick: () => {
|
|
200
|
+
setLifecycle(phase);
|
|
201
|
+
setSelected({
|
|
202
|
+
name: 'Feature Name',
|
|
203
|
+
description: `Currently in ${phase} phase`,
|
|
204
|
+
featureId: '#f1',
|
|
205
|
+
lifecycle: phase,
|
|
206
|
+
state: 'running',
|
|
207
|
+
progress: 50,
|
|
208
|
+
agentType: 'claude-code',
|
|
209
|
+
repositoryPath: '/home/user/my-repo',
|
|
210
|
+
branch: 'feat/feature-name',
|
|
211
|
+
});
|
|
212
|
+
}, className: `rounded-md px-3 py-1.5 text-left text-sm ${phase === lifecycle
|
|
213
|
+
? 'bg-primary text-primary-foreground'
|
|
214
|
+
: 'bg-muted hover:bg-muted/80'}`, children: phase }, phase)))] }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
|
|
215
|
+
}
|
|
216
|
+
/** Cycle through all 6 lifecycle phases via buttons. */
|
|
217
|
+
export const AllLifecycles = {
|
|
218
|
+
render: () => _jsx(AllLifecyclesRender, {}),
|
|
219
|
+
};
|
|
220
|
+
/* ---------------------------------------------------------------------------
|
|
221
|
+
* Action button stories
|
|
222
|
+
* ------------------------------------------------------------------------- */
|
|
223
|
+
/** No repositoryPath — action buttons are hidden. */
|
|
224
|
+
export const NoRepositoryPath = {
|
|
225
|
+
render: () => (_jsx(DrawerTrigger, { data: { ...baseData, repositoryPath: '', branch: '' }, label: "Open Without Repo Path" })),
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* Action buttons visible — click "Open in IDE" or "Open in Shell" to see
|
|
229
|
+
* loading spinner (while API call is in flight) followed by error state
|
|
230
|
+
* (API routes are not available in Storybook).
|
|
231
|
+
*/
|
|
232
|
+
export const WithActionButtons = {
|
|
233
|
+
render: () => _jsx(DrawerTrigger, { data: runningData, label: "Open With Actions" }),
|
|
234
|
+
};
|
|
235
|
+
/* ---------------------------------------------------------------------------
|
|
236
|
+
* Delete stories
|
|
237
|
+
* ------------------------------------------------------------------------- */
|
|
238
|
+
function noop() {
|
|
239
|
+
// intentional no-op for stories
|
|
240
|
+
}
|
|
241
|
+
function DrawerTriggerWithDelete({ data, label, isDeleting = false, }) {
|
|
242
|
+
const [selected, setSelected] = useState(null);
|
|
243
|
+
return (_jsxs("div", { className: "flex h-screen items-start p-4", children: [_jsx(Button, { variant: "outline", onClick: () => setSelected(data), children: label }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null), onDelete: noop, isDeleting: isDeleting })] }));
|
|
244
|
+
}
|
|
245
|
+
/** FeatureDrawer with a delete icon button in the header. */
|
|
246
|
+
export const WithDeleteButton = {
|
|
247
|
+
render: () => _jsx(DrawerTriggerWithDelete, { data: doneData, label: "Open With Delete" }),
|
|
248
|
+
};
|
|
249
|
+
/** FeatureDrawer showing the delete button in loading/disabled state. */
|
|
250
|
+
export const DeletingState = {
|
|
251
|
+
render: () => _jsx(DrawerTriggerWithDelete, { data: doneData, label: "Open Deleting State", isDeleting: true }),
|
|
252
|
+
};
|
|
253
|
+
/** FeatureDrawer with a running agent showing the running-agent warning in the AlertDialog. */
|
|
254
|
+
export const DeleteRunningAgent = {
|
|
255
|
+
render: () => _jsx(DrawerTriggerWithDelete, { data: runningData, label: "Open Running Agent Delete" }),
|
|
256
|
+
};
|
|
257
|
+
/* ---------------------------------------------------------------------------
|
|
258
|
+
* PR info stories
|
|
259
|
+
* ------------------------------------------------------------------------- */
|
|
260
|
+
const doneWithPrData = {
|
|
261
|
+
...doneData,
|
|
262
|
+
pr: {
|
|
263
|
+
url: 'https://github.com/org/repo/pull/42',
|
|
264
|
+
number: 42,
|
|
265
|
+
status: PrStatus.Merged,
|
|
266
|
+
ciStatus: CiStatus.Success,
|
|
267
|
+
commitHash: 'abc1234567890def',
|
|
268
|
+
},
|
|
269
|
+
};
|
|
270
|
+
const doneWithPartialPrData = {
|
|
271
|
+
...doneData,
|
|
272
|
+
pr: {
|
|
273
|
+
url: 'https://github.com/org/repo/pull/99',
|
|
274
|
+
number: 99,
|
|
275
|
+
status: PrStatus.Merged,
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
/** Done feature with full PR card — number, status, CI, commit hash. */
|
|
279
|
+
export const DoneWithPr = {
|
|
280
|
+
render: () => _jsx(DrawerTrigger, { data: doneWithPrData, label: "Open Done + PR" }),
|
|
281
|
+
};
|
|
282
|
+
/** Done feature with partial PR data — no CI status, no commit hash. */
|
|
283
|
+
export const DoneWithPartialPr = {
|
|
284
|
+
render: () => _jsx(DrawerTrigger, { data: doneWithPartialPrData, label: "Open Done + Partial PR" }),
|
|
285
|
+
};
|
|
286
|
+
/** PR with Open status — blue badge. */
|
|
287
|
+
export const PrStatusOpen = {
|
|
288
|
+
render: () => (_jsx(DrawerTrigger, { data: {
|
|
289
|
+
...doneWithPrData,
|
|
290
|
+
pr: { ...doneWithPrData.pr, status: PrStatus.Open, ciStatus: CiStatus.Pending },
|
|
291
|
+
}, label: "Open PR Status: Open" })),
|
|
292
|
+
};
|
|
293
|
+
/** PR with Merged status — purple badge. */
|
|
294
|
+
export const PrStatusMerged = {
|
|
295
|
+
render: () => _jsx(DrawerTrigger, { data: doneWithPrData, label: "Open PR Status: Merged" }),
|
|
296
|
+
};
|
|
297
|
+
/* ---------------------------------------------------------------------------
|
|
298
|
+
* In-drawer story — full page context, starts open
|
|
299
|
+
* ------------------------------------------------------------------------- */
|
|
300
|
+
function FeatureDrawerShellTemplate({ data }) {
|
|
301
|
+
const [selected, setSelected] = useState(data);
|
|
302
|
+
return (_jsxs("div", { style: { height: '100vh', background: '#f8fafc', padding: '2rem' }, children: [_jsx("button", { type: "button", onClick: () => setSelected(data), style: { padding: '8px 16px', border: '1px solid #ccc', borderRadius: '6px' }, children: "Open Drawer" }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
|
|
303
|
+
}
|
|
304
|
+
/** Feature drawer rendered inside a full-page context — starts open. */
|
|
305
|
+
export const InDrawer = {
|
|
306
|
+
render: () => _jsx(FeatureDrawerShellTemplate, { data: runningData }),
|
|
307
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { FeatureDrawer, type FeatureDrawerProps } from './feature-drawer.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { FeatureDrawer } from './feature-drawer.js';
|
package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts
CHANGED
|
@@ -34,18 +34,6 @@ export interface FeatureNodeData {
|
|
|
34
34
|
agentType?: AgentTypeValue;
|
|
35
35
|
/** LLM model identifier used for this feature's agent run. */
|
|
36
36
|
modelId?: string;
|
|
37
|
-
/** Feature summary / user query */
|
|
38
|
-
summary?: string;
|
|
39
|
-
/** Epoch ms or ISO string when the feature was created */
|
|
40
|
-
createdAt?: string | number;
|
|
41
|
-
/** Repository display name (e.g. "my-repo") */
|
|
42
|
-
repositoryName?: string;
|
|
43
|
-
/** Base branch the feature was branched from (e.g. "main") */
|
|
44
|
-
baseBranch?: string;
|
|
45
|
-
/** AI-generated one-line description of the feature (from spec artifact) */
|
|
46
|
-
oneLiner?: string;
|
|
47
|
-
/** Original user query that initiated this feature */
|
|
48
|
-
userQuery?: string;
|
|
49
37
|
/** PR metadata for features with an associated pull request */
|
|
50
38
|
pr?: {
|
|
51
39
|
url: string;
|
package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOxE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOvE,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB
|
|
1
|
+
{"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOxE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOvE,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,EAAE,CAAC,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,QAAQ,CAAC;QACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CA6DnF,CAAC"}
|
|
@@ -3,17 +3,18 @@ export { AddRepositoryButton } from './add-repository-button/index.js';
|
|
|
3
3
|
export { ElapsedTime, formatElapsed } from './elapsed-time/index.js';
|
|
4
4
|
export { EmptyState, type EmptyStateProps } from './empty-state/index.js';
|
|
5
5
|
export { FeatureCreateDrawer, type FeatureCreateDrawerProps, type FeatureCreatePayload, } from './feature-create-drawer/index.js';
|
|
6
|
-
export {
|
|
6
|
+
export { FeatureDrawer, type FeatureDrawerProps } from './feature-drawer/index.js';
|
|
7
7
|
export { FeatureListItem, type FeatureListItemProps } from './feature-list-item/index.js';
|
|
8
|
+
export { useFeatureActions, type FeatureActionsInput, type FeatureActionsState, } from './feature-drawer/use-feature-actions.js';
|
|
8
9
|
export { FeatureNode, featureNodeStateConfig, type FeatureNodeState, type FeatureLifecyclePhase, type FeatureNodeData, type FeatureNodeType, type FeatureNodeStateConfig, } from './feature-node/index.js';
|
|
9
10
|
export { FeatureStatusBadges, type FeatureStatusBadgesProps } from './feature-status-badges/index.js';
|
|
10
11
|
export { FeatureStatusGroup, type FeatureStatusGroupProps } from './feature-status-group/index.js';
|
|
11
12
|
export { LoadingSkeleton } from './loading-skeleton/index.js';
|
|
12
13
|
export { RepositoryNode, type RepositoryNodeData, type RepositoryNodeType, } from './repository-node/index.js';
|
|
13
14
|
export { PageHeader } from './page-header/index.js';
|
|
14
|
-
export { PrdQuestionnaire, type PrdQuestionnaireProps, type PrdQuestion, type PrdFinalAction, type PrdOption, type PrdQuestionnaireData, } from './prd-questionnaire/index.js';
|
|
15
|
+
export { PrdQuestionnaire, PrdQuestionnaireDrawer, type PrdQuestionnaireProps, type PrdQuestionnaireDrawerProps, type PrdQuestion, type PrdFinalAction, type PrdOption, type PrdQuestionnaireData, } from './prd-questionnaire/index.js';
|
|
15
16
|
export { ShepLogo, type ShepLogoProps } from './shep-logo/index.js';
|
|
16
|
-
export { TechDecisionsReview, type TechDecisionsReviewProps, type TechDecisionsReviewData, } from './tech-decisions-review/index.js';
|
|
17
|
+
export { TechDecisionsReview, TechDecisionsDrawer, type TechDecisionsReviewProps, type TechDecisionsDrawerProps, type TechDecisionsReviewData, } from './tech-decisions-review/index.js';
|
|
17
18
|
export { SidebarCollapseToggle, type SidebarCollapseToggleProps } from './sidebar-collapse-toggle/index.js';
|
|
18
19
|
export { SidebarNavItem, type SidebarNavItemProps } from './sidebar-nav-item/index.js';
|
|
19
20
|
export { SidebarSectionHeader, type SidebarSectionHeaderProps } from './sidebar-section-header/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -3,17 +3,18 @@ export { AddRepositoryButton } from './add-repository-button/index.js';
|
|
|
3
3
|
export { ElapsedTime, formatElapsed } from './elapsed-time/index.js';
|
|
4
4
|
export { EmptyState } from './empty-state/index.js';
|
|
5
5
|
export { FeatureCreateDrawer, } from './feature-create-drawer/index.js';
|
|
6
|
-
export {
|
|
6
|
+
export { FeatureDrawer } from './feature-drawer/index.js';
|
|
7
7
|
export { FeatureListItem } from './feature-list-item/index.js';
|
|
8
|
+
export { useFeatureActions, } from './feature-drawer/use-feature-actions.js';
|
|
8
9
|
export { FeatureNode, featureNodeStateConfig, } from './feature-node/index.js';
|
|
9
10
|
export { FeatureStatusBadges } from './feature-status-badges/index.js';
|
|
10
11
|
export { FeatureStatusGroup } from './feature-status-group/index.js';
|
|
11
12
|
export { LoadingSkeleton } from './loading-skeleton/index.js';
|
|
12
13
|
export { RepositoryNode, } from './repository-node/index.js';
|
|
13
14
|
export { PageHeader } from './page-header/index.js';
|
|
14
|
-
export { PrdQuestionnaire, } from './prd-questionnaire/index.js';
|
|
15
|
+
export { PrdQuestionnaire, PrdQuestionnaireDrawer, } from './prd-questionnaire/index.js';
|
|
15
16
|
export { ShepLogo } from './shep-logo/index.js';
|
|
16
|
-
export { TechDecisionsReview, } from './tech-decisions-review/index.js';
|
|
17
|
+
export { TechDecisionsReview, TechDecisionsDrawer, } from './tech-decisions-review/index.js';
|
|
17
18
|
export { SidebarCollapseToggle } from './sidebar-collapse-toggle/index.js';
|
|
18
19
|
export { SidebarNavItem } from './sidebar-nav-item/index.js';
|
|
19
20
|
export { SidebarSectionHeader } from './sidebar-section-header/index.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { MergeReview } from './merge-review.js';
|
|
2
|
-
export
|
|
2
|
+
export { MergeReviewDrawer } from './merge-review-drawer.js';
|
|
3
|
+
export type { MergeReviewProps, MergeReviewDrawerProps, MergeReviewData, } from './merge-review-config.js';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { MergeReviewDrawerProps } from './merge-review-config.js';
|
|
2
|
+
export declare function MergeReviewDrawer({ open, onClose, featureName, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...reviewProps }: MergeReviewDrawerProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=merge-review-drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-review-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/merge-review-drawer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,GAAG,WAAW,EACf,EAAE,sBAAsB,2CAsBxB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Loader2 } from 'lucide-react';
|
|
4
|
+
import { ReviewDrawerShell } from '../../common/review-drawer-shell/index.js';
|
|
5
|
+
import { MergeReview } from './merge-review.js';
|
|
6
|
+
export function MergeReviewDrawer({ open, onClose, featureName, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...reviewProps }) {
|
|
7
|
+
return (_jsx(ReviewDrawerShell, { open: open, onClose: onClose, featureName: featureName, featureId: featureId, repositoryPath: repositoryPath, branch: branch, specPath: specPath, onDelete: onDelete, isDeleting: isDeleting, children: data ? (_jsx(MergeReview, { data: data, ...reviewProps })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) }));
|
|
8
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import { MergeReview } from './merge-review.js';
|
|
3
|
+
import { MergeReviewDrawer } from './merge-review-drawer.js';
|
|
3
4
|
declare const meta: Meta<typeof MergeReview>;
|
|
4
5
|
export default meta;
|
|
5
6
|
type Story = StoryObj<typeof MergeReview>;
|
|
@@ -21,4 +22,11 @@ export declare const NoPrWithDiff: Story;
|
|
|
21
22
|
export declare const NoPrNoDiff: Story;
|
|
22
23
|
/** With implementation phases shown. */
|
|
23
24
|
export declare const WithPhases: Story;
|
|
25
|
+
type DrawerStory = StoryObj<typeof MergeReviewDrawer>;
|
|
26
|
+
/** Merge review drawer with full data. */
|
|
27
|
+
export declare const InDrawer: DrawerStory;
|
|
28
|
+
/** Drawer with delete button visible. */
|
|
29
|
+
export declare const WithDeleteButton: DrawerStory;
|
|
30
|
+
/** Drawer without PR — direct merge with diff summary and branch info. */
|
|
31
|
+
export declare const InDrawerNoPr: DrawerStory;
|
|
24
32
|
//# sourceMappingURL=merge-review.stories.d.ts.map
|
package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-review.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/merge-review.stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge-review.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/merge-review.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAsC1D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C,kDAAkD;AAClD,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,YAAY,EAAE,KAS1B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAIF,KAAK,WAAW,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AA6BtD,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,WAYtB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,WAa9B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,YAAY,EAAE,WAiB1B,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { fn } from '@storybook/test';
|
|
3
4
|
import { PrStatus, CiStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
4
5
|
import { MergeReview } from './merge-review.js';
|
|
6
|
+
import { MergeReviewDrawer } from './merge-review-drawer.js';
|
|
5
7
|
const fullPr = {
|
|
6
8
|
url: 'https://github.com/shep-ai/cli/pull/42',
|
|
7
9
|
number: 42,
|
|
@@ -130,3 +132,33 @@ export const WithPhases = {
|
|
|
130
132
|
...defaultActions,
|
|
131
133
|
},
|
|
132
134
|
};
|
|
135
|
+
const drawerMeta = {
|
|
136
|
+
component: MergeReviewDrawer,
|
|
137
|
+
tags: ['autodocs'],
|
|
138
|
+
parameters: {
|
|
139
|
+
layout: 'fullscreen',
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
function DrawerTemplate(props) {
|
|
143
|
+
const [open, setOpen] = useState(true);
|
|
144
|
+
return (_jsxs("div", { style: { height: '100vh', background: '#f8fafc', padding: '2rem' }, children: [_jsx("button", { type: "button", onClick: () => setOpen(true), style: { padding: '8px 16px', border: '1px solid #ccc', borderRadius: '6px' }, children: "Open Drawer" }), _jsx(MergeReviewDrawer, { ...props, open: open, onClose: () => setOpen(false) })] }));
|
|
145
|
+
}
|
|
146
|
+
/** Merge review drawer with full data. */
|
|
147
|
+
export const InDrawer = {
|
|
148
|
+
...drawerMeta,
|
|
149
|
+
render: () => (_jsx(DrawerTemplate, { featureName: "Add User Authentication", featureId: "FEAT-042", repositoryPath: "/home/user/projects/my-app", branch: "feat/add-auth", data: fullData, ...defaultActions })),
|
|
150
|
+
};
|
|
151
|
+
/** Drawer with delete button visible. */
|
|
152
|
+
export const WithDeleteButton = {
|
|
153
|
+
...drawerMeta,
|
|
154
|
+
render: () => (_jsx(DrawerTemplate, { featureName: "Add User Authentication", featureId: "FEAT-042", repositoryPath: "/home/user/projects/my-app", branch: "feat/add-auth", data: fullData, ...defaultActions, onDelete: fn().mockName('onDelete') })),
|
|
155
|
+
};
|
|
156
|
+
/** Drawer without PR — direct merge with diff summary and branch info. */
|
|
157
|
+
export const InDrawerNoPr = {
|
|
158
|
+
...drawerMeta,
|
|
159
|
+
render: () => (_jsx(DrawerTemplate, { featureName: "Fix Login Bug", featureId: "FEAT-099", repositoryPath: "/home/user/projects/my-app", branch: "feat/fix-login", data: {
|
|
160
|
+
branch: { source: 'feat/fix-login', target: 'main' },
|
|
161
|
+
phases: samplePhases,
|
|
162
|
+
diffSummary: fullData.diffSummary,
|
|
163
|
+
}, ...defaultActions, onDelete: fn().mockName('onDelete') })),
|
|
164
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { PrdQuestionnaire } from './prd-questionnaire.js';
|
|
2
|
-
export
|
|
2
|
+
export { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
|
|
3
|
+
export type { PrdQuestionnaireProps, PrdQuestionnaireDrawerProps, PrdOption, PrdQuestion, PrdFinalAction, PrdQuestionnaireData, } from './prd-questionnaire-config.js';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EACV,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,EACT,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
|
package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PrdQuestionnaireDrawerProps } from './prd-questionnaire-config.js';
|
|
2
|
+
export declare function PrdQuestionnaireDrawer({ open, onClose, featureName, featureDescription, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...questionnaireProps }: PrdQuestionnaireDrawerProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=prd-questionnaire-drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prd-questionnaire-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAE9E,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,GAAG,kBAAkB,EACtB,EAAE,2BAA2B,2CAuB7B"}
|
package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Loader2 } from 'lucide-react';
|
|
4
|
+
import { ReviewDrawerShell } from '../../common/review-drawer-shell/index.js';
|
|
5
|
+
import { PrdQuestionnaire } from './prd-questionnaire.js';
|
|
6
|
+
export function PrdQuestionnaireDrawer({ open, onClose, featureName, featureDescription, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...questionnaireProps }) {
|
|
7
|
+
return (_jsx(ReviewDrawerShell, { open: open, onClose: onClose, featureName: featureName, featureDescription: featureDescription, featureId: featureId, repositoryPath: repositoryPath, branch: branch, specPath: specPath, onDelete: onDelete, isDeleting: isDeleting, children: data ? (_jsx(PrdQuestionnaire, { data: data, ...questionnaireProps })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) }));
|
|
8
|
+
}
|
package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import { PrdQuestionnaire } from './prd-questionnaire.js';
|
|
3
|
+
import { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
|
|
3
4
|
declare const meta: Meta<typeof PrdQuestionnaire>;
|
|
4
5
|
export default meta;
|
|
5
6
|
type Story = StoryObj<typeof PrdQuestionnaire>;
|
|
@@ -13,6 +14,15 @@ export declare const AllAnswered: Story;
|
|
|
13
14
|
export declare const Refining: Story;
|
|
14
15
|
/** Single question — minimal stepper with one step. */
|
|
15
16
|
export declare const MinimalData: Story;
|
|
17
|
+
type DrawerStory = StoryObj<typeof PrdQuestionnaireDrawer>;
|
|
18
|
+
/** Drawer with stepper — navigate questions one at a time. */
|
|
19
|
+
export declare const InDrawer: DrawerStory;
|
|
20
|
+
/** Drawer with partial selections showing progress dots. */
|
|
21
|
+
export declare const InDrawerWithSelections: DrawerStory;
|
|
22
|
+
/** Drawer with delete button visible. */
|
|
23
|
+
export declare const WithDeleteButton: DrawerStory;
|
|
24
|
+
/** Drawer with delete in progress (button disabled). */
|
|
25
|
+
export declare const DeletingState: DrawerStory;
|
|
16
26
|
/** All answered with reject button visible on last step. */
|
|
17
27
|
export declare const WithRejectButton: Story;
|
|
18
28
|
/** Rejecting state — reject button disabled with spinner while reject action is in flight. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAiKpE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAkBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAU/C,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KA8BzB,CAAC;AAIF,KAAK,WAAW,GAAG,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAyC3D,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,EAAE,WAWtB,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,WAepC,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,WAW9B,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,WAY3B,CAAC;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}
|