@shepai/cli 1.78.1 → 1.79.0-pr250.29eec94

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.
Files changed (301) hide show
  1. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
  2. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +14 -1
  3. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +17 -0
  4. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -0
  5. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +25 -0
  6. package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts +28 -0
  7. package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts.map +1 -0
  8. package/dist/src/presentation/web/app/actions/get-feature-plan.js +39 -0
  9. package/dist/src/presentation/web/app/api/feature-logs/route.d.ts +16 -0
  10. package/dist/src/presentation/web/app/api/feature-logs/route.d.ts.map +1 -0
  11. package/dist/src/presentation/web/app/api/feature-logs/route.js +184 -0
  12. package/dist/src/presentation/web/app/build-feature-node-data.d.ts +7 -1
  13. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  14. package/dist/src/presentation/web/app/build-feature-node-data.js +7 -1
  15. package/dist/src/presentation/web/app/build-graph-nodes.js +7 -3
  16. package/dist/src/presentation/web/app/settings/page.js +1 -1
  17. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +7 -19
  18. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  19. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +6 -6
  20. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  21. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +48 -85
  22. package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts +1 -1
  23. package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/common/feature-drawer/index.js +1 -1
  25. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts +8 -0
  26. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -0
  27. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +90 -0
  28. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts +20 -0
  29. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts.map +1 -0
  30. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.js +252 -0
  31. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +31 -0
  32. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -0
  33. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +123 -0
  34. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts +20 -0
  35. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts.map +1 -0
  36. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.js +315 -0
  37. package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts +3 -0
  38. package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts.map +1 -0
  39. package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.js +1 -0
  40. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts +7 -0
  41. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts.map +1 -0
  42. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.js +35 -0
  43. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts +18 -0
  44. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts.map +1 -0
  45. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.js +89 -0
  46. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts +6 -0
  47. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -0
  48. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +78 -0
  49. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +28 -0
  50. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -0
  51. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +157 -0
  52. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts +8 -0
  53. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts.map +1 -0
  54. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.js +23 -0
  55. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts +22 -0
  56. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts.map +1 -0
  57. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.js +262 -0
  58. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts +30 -0
  59. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts.map +1 -0
  60. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.js +100 -0
  61. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +12 -0
  62. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  63. package/dist/src/presentation/web/components/common/index.d.ts +3 -4
  64. package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
  65. package/dist/src/presentation/web/components/common/index.js +3 -4
  66. package/dist/src/presentation/web/components/common/merge-review/index.d.ts +1 -2
  67. package/dist/src/presentation/web/components/common/merge-review/index.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/common/merge-review/index.js +0 -1
  69. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts +0 -8
  70. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map +1 -1
  71. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +1 -33
  72. package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts +1 -2
  73. package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts.map +1 -1
  74. package/dist/src/presentation/web/components/common/prd-questionnaire/index.js +0 -1
  75. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +0 -10
  76. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
  77. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +1 -38
  78. package/dist/src/presentation/web/components/common/task-progress-view/index.d.ts +3 -0
  79. package/dist/src/presentation/web/components/common/task-progress-view/index.d.ts.map +1 -0
  80. package/dist/src/presentation/web/components/common/task-progress-view/index.js +1 -0
  81. package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.d.ts +6 -0
  82. package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.d.ts.map +1 -0
  83. package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.js +84 -0
  84. package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.stories.d.ts +16 -0
  85. package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.stories.d.ts.map +1 -0
  86. package/dist/src/presentation/web/components/common/task-progress-view/task-progress-view.stories.js +194 -0
  87. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts +1 -2
  88. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts.map +1 -1
  89. package/dist/src/presentation/web/components/common/tech-decisions-review/index.js +0 -1
  90. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts +0 -8
  91. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -1
  92. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +1 -29
  93. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +2 -2
  94. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +9 -9
  95. package/dist/src/presentation/web/hooks/use-feature-logs.d.ts +7 -0
  96. package/dist/src/presentation/web/hooks/use-feature-logs.d.ts.map +1 -0
  97. package/dist/src/presentation/web/hooks/use-feature-logs.js +52 -0
  98. package/dist/tsconfig.build.tsbuildinfo +1 -1
  99. package/package.json +1 -1
  100. package/web/.next/BUILD_ID +1 -1
  101. package/web/.next/app-path-routes-manifest.json +1 -0
  102. package/web/.next/build-manifest.json +2 -2
  103. package/web/.next/fallback-build-manifest.json +2 -2
  104. package/web/.next/prerender-manifest.json +3 -3
  105. package/web/.next/required-server-files.js +1 -1
  106. package/web/.next/required-server-files.json +1 -1
  107. package/web/.next/routes-manifest.json +6 -0
  108. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
  109. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  110. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +68 -38
  112. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  113. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  114. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  116. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  117. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  118. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
  119. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  120. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +68 -38
  122. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  123. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  124. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  126. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  127. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  129. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  130. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  131. package/web/.next/server/app/_global-error.html +2 -2
  132. package/web/.next/server/app/_global-error.rsc +1 -1
  133. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  134. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  135. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  136. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  137. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  138. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  139. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/api/feature-logs/route/app-paths-manifest.json +3 -0
  141. package/web/.next/server/app/api/feature-logs/route/build-manifest.json +11 -0
  142. package/web/.next/server/app/api/feature-logs/route/server-reference-manifest.json +4 -0
  143. package/web/.next/server/app/api/feature-logs/route.js +6 -0
  144. package/web/.next/server/app/api/feature-logs/route.js.map +5 -0
  145. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -0
  146. package/web/.next/server/app/api/feature-logs/route_client-reference-manifest.js +2 -0
  147. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  148. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  149. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  150. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  151. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  152. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  153. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  154. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  155. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  157. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  158. package/web/.next/server/app-paths-manifest.json +1 -0
  159. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js +3 -0
  160. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js.map +1 -0
  161. package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js +12 -0
  162. package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js.map +1 -0
  163. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  164. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  166. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  168. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  172. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +1 -1
  175. package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js.map +1 -1
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a337ca5c._.js → [root-of-the-server]__ae824a5b._.js} +2 -2
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__ae824a5b._.js.map +1 -0
  180. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js +1 -1
  181. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js.map +1 -1
  182. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
  183. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
  185. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  186. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/_1e3cf73b._.js +1 -1
  188. package/web/.next/server/chunks/ssr/_1e3cf73b._.js.map +1 -1
  189. package/web/.next/server/chunks/ssr/_34fbed18._.js +1 -1
  190. package/web/.next/server/chunks/ssr/_34fbed18._.js.map +1 -1
  191. package/web/.next/server/chunks/ssr/{_06db7efd._.js → _3e88ce9d._.js} +2 -2
  192. package/web/.next/server/chunks/ssr/{_06db7efd._.js.map → _3e88ce9d._.js.map} +1 -1
  193. package/web/.next/server/chunks/ssr/{_b0924a46._.js → _4cc78caa._.js} +2 -2
  194. package/web/.next/server/chunks/ssr/{_b0924a46._.js.map → _4cc78caa._.js.map} +1 -1
  195. package/web/.next/server/chunks/ssr/_5d4e7151._.js +3 -0
  196. package/web/.next/server/chunks/ssr/{_5c4ce700._.js.map → _5d4e7151._.js.map} +1 -1
  197. package/web/.next/server/chunks/ssr/_63868199._.js +1 -1
  198. package/web/.next/server/chunks/ssr/_63868199._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/{_4031d614._.js → _887258d0._.js} +2 -2
  200. package/web/.next/server/chunks/ssr/{_4031d614._.js.map → _887258d0._.js.map} +1 -1
  201. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  202. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/_a89e9440._.js +3 -0
  204. package/web/.next/server/chunks/ssr/{_a38f282a._.js.map → _a89e9440._.js.map} +1 -1
  205. package/web/.next/server/chunks/ssr/{_5dab501b._.js → _a9a31cc7._.js} +2 -2
  206. package/web/.next/server/chunks/ssr/{_5dab501b._.js.map → _a9a31cc7._.js.map} +1 -1
  207. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  208. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/node_modules__pnpm_d80c1060._.js +3 -0
  210. package/web/.next/server/chunks/ssr/node_modules__pnpm_d80c1060._.js.map +1 -0
  211. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js +3 -0
  212. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js.map +1 -0
  213. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  214. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  216. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  218. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  219. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +1 -1
  220. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js.map +1 -1
  221. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js +3 -0
  222. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js.map +1 -0
  223. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
  224. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
  225. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  226. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
  228. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
  229. package/web/.next/server/pages/500.html +2 -2
  230. package/web/.next/server/server-reference-manifest.js +1 -1
  231. package/web/.next/server/server-reference-manifest.json +108 -64
  232. package/web/.next/static/chunks/1eb59ef58bc289af.js +1 -0
  233. package/web/.next/static/chunks/{1f57d0c949dbb44d.js → 2a24ac257fc1c10b.js} +1 -1
  234. package/web/.next/static/chunks/{87152e918f80ea8b.js → 5e3f946c0459b2e6.js} +1 -1
  235. package/web/.next/static/chunks/{9d8c6c874071efb2.js → 709acc97b45864c5.js} +1 -1
  236. package/web/.next/static/chunks/{8fe834f8a3c36e2f.js → 7be2145c5da9915d.js} +2 -2
  237. package/web/.next/static/chunks/a1c2ecb710b44081.js +1 -0
  238. package/web/.next/static/chunks/a2e2da17a62d4a16.js +1 -0
  239. package/web/.next/static/chunks/{6f7ba7846dcc8b21.js → c094a6d1f4f166cd.js} +1 -1
  240. package/web/.next/static/chunks/c576233480a01594.js +1 -0
  241. package/web/.next/static/chunks/cc4ae5c962684c74.js +1 -0
  242. package/web/.next/static/chunks/f324257cd8c5fd55.css +2 -0
  243. package/web/.next/static/chunks/{78455afb0164395c.js → f34022767b8cb68c.js} +2 -2
  244. package/web/.next/static/chunks/{27c4a8493483e6f3.js → f9edf7cceb5ecfe1.js} +1 -1
  245. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts +0 -9
  246. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +0 -1
  247. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +0 -60
  248. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts +0 -47
  249. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +0 -1
  250. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +0 -307
  251. package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts +0 -3
  252. package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts.map +0 -1
  253. package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.js +0 -8
  254. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts +0 -3
  255. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts.map +0 -1
  256. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.js +0 -8
  257. package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts +0 -3
  258. package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts.map +0 -1
  259. package/dist/src/presentation/web/components/common/review-drawer-shell/index.js +0 -1
  260. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts +0 -26
  261. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts.map +0 -1
  262. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.js +0 -1
  263. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts +0 -3
  264. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts.map +0 -1
  265. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.js +0 -29
  266. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts +0 -14
  267. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts.map +0 -1
  268. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.js +0 -33
  269. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts +0 -3
  270. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts.map +0 -1
  271. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.js +0 -8
  272. package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts +0 -3
  273. package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts.map +0 -1
  274. package/dist/src/presentation/web/components/common/tech-review-tabs/index.js +0 -1
  275. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts +0 -21
  276. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts.map +0 -1
  277. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.js +0 -1
  278. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts +0 -3
  279. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts.map +0 -1
  280. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.js +0 -12
  281. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts +0 -16
  282. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts.map +0 -1
  283. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.js +0 -110
  284. package/web/.next/server/chunks/ssr/[root-of-the-server]__a337ca5c._.js.map +0 -1
  285. package/web/.next/server/chunks/ssr/_5c4ce700._.js +0 -3
  286. package/web/.next/server/chunks/ssr/_a38f282a._.js +0 -3
  287. package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js +0 -3
  288. package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js.map +0 -1
  289. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +0 -3
  290. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +0 -1
  291. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +0 -3
  292. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +0 -1
  293. package/web/.next/static/chunks/08c0a9667c05866c.css +0 -2
  294. package/web/.next/static/chunks/0fb8038f7ad4d2cf.js +0 -1
  295. package/web/.next/static/chunks/1211dcaac5963f92.js +0 -1
  296. package/web/.next/static/chunks/6a3e8ea6e1fd2113.js +0 -1
  297. package/web/.next/static/chunks/7336f9ec160c7bd8.js +0 -1
  298. package/web/.next/static/chunks/ba8b2aaa356a5487.js +0 -1
  299. /package/web/.next/static/{M0oz1_1InoSyr7OMLAKf7 → Q5dSnqKRfMPVDs276cx_I}/_buildManifest.js +0 -0
  300. /package/web/.next/static/{M0oz1_1InoSyr7OMLAKf7 → Q5dSnqKRfMPVDs276cx_I}/_clientMiddlewareManifest.json +0 -0
  301. /package/web/.next/static/{M0oz1_1InoSyr7OMLAKf7 → Q5dSnqKRfMPVDs276cx_I}/_ssgManifest.js +0 -0
@@ -3,18 +3,17 @@ 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 { FeatureDrawer, type FeatureDrawerProps } from './feature-drawer/index.js';
6
+ export { useFeatureActions, type FeatureActionsInput, type FeatureActionsState, } 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';
9
8
  export { FeatureNode, featureNodeStateConfig, type FeatureNodeState, type FeatureLifecyclePhase, type FeatureNodeData, type FeatureNodeType, type FeatureNodeStateConfig, } from './feature-node/index.js';
10
9
  export { FeatureStatusBadges, type FeatureStatusBadgesProps } from './feature-status-badges/index.js';
11
10
  export { FeatureStatusGroup, type FeatureStatusGroupProps } from './feature-status-group/index.js';
12
11
  export { LoadingSkeleton } from './loading-skeleton/index.js';
13
12
  export { RepositoryNode, type RepositoryNodeData, type RepositoryNodeType, } from './repository-node/index.js';
14
13
  export { PageHeader } from './page-header/index.js';
15
- export { PrdQuestionnaire, PrdQuestionnaireDrawer, type PrdQuestionnaireProps, type PrdQuestionnaireDrawerProps, type PrdQuestion, type PrdFinalAction, type PrdOption, type PrdQuestionnaireData, } from './prd-questionnaire/index.js';
14
+ export { PrdQuestionnaire, type PrdQuestionnaireProps, type PrdQuestion, type PrdFinalAction, type PrdOption, type PrdQuestionnaireData, } from './prd-questionnaire/index.js';
16
15
  export { ShepLogo, type ShepLogoProps } from './shep-logo/index.js';
17
- export { TechDecisionsReview, TechDecisionsDrawer, type TechDecisionsReviewProps, type TechDecisionsDrawerProps, type TechDecisionsReviewData, } from './tech-decisions-review/index.js';
16
+ export { TechDecisionsReview, type TechDecisionsReviewProps, type TechDecisionsReviewData, } from './tech-decisions-review/index.js';
18
17
  export { SidebarCollapseToggle, type SidebarCollapseToggleProps } from './sidebar-collapse-toggle/index.js';
19
18
  export { SidebarNavItem, type SidebarNavItemProps } from './sidebar-nav-item/index.js';
20
19
  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,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"}
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,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,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,KAAK,qBAAqB,EAC1B,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,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,18 +3,17 @@ 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 { FeatureDrawer } from './feature-drawer/index.js';
6
+ export { useFeatureActions, } 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';
9
8
  export { FeatureNode, featureNodeStateConfig, } from './feature-node/index.js';
10
9
  export { FeatureStatusBadges } from './feature-status-badges/index.js';
11
10
  export { FeatureStatusGroup } from './feature-status-group/index.js';
12
11
  export { LoadingSkeleton } from './loading-skeleton/index.js';
13
12
  export { RepositoryNode, } from './repository-node/index.js';
14
13
  export { PageHeader } from './page-header/index.js';
15
- export { PrdQuestionnaire, PrdQuestionnaireDrawer, } from './prd-questionnaire/index.js';
14
+ export { PrdQuestionnaire, } from './prd-questionnaire/index.js';
16
15
  export { ShepLogo } from './shep-logo/index.js';
17
- export { TechDecisionsReview, TechDecisionsDrawer, } from './tech-decisions-review/index.js';
16
+ export { TechDecisionsReview, } from './tech-decisions-review/index.js';
18
17
  export { SidebarCollapseToggle } from './sidebar-collapse-toggle/index.js';
19
18
  export { SidebarNavItem } from './sidebar-nav-item/index.js';
20
19
  export { SidebarSectionHeader } from './sidebar-section-header/index.js';
@@ -1,4 +1,3 @@
1
1
  export { MergeReview } from './merge-review.js';
2
- export { MergeReviewDrawer } from './merge-review-drawer.js';
3
- export type { MergeReviewProps, MergeReviewDrawerProps, MergeReviewData, } from './merge-review-config.js';
2
+ export type { MergeReviewProps, MergeReviewData } from './merge-review-config.js';
4
3
  //# 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,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
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,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,2 +1 @@
1
1
  export { MergeReview } from './merge-review.js';
2
- export { MergeReviewDrawer } from './merge-review-drawer.js';
@@ -1,6 +1,5 @@
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';
4
3
  declare const meta: Meta<typeof MergeReview>;
5
4
  export default meta;
6
5
  type Story = StoryObj<typeof MergeReview>;
@@ -22,11 +21,4 @@ export declare const NoPrWithDiff: Story;
22
21
  export declare const NoPrNoDiff: Story;
23
22
  /** With implementation phases shown. */
24
23
  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;
32
24
  //# sourceMappingURL=merge-review.stories.d.ts.map
@@ -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":"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
+ {"version":3,"file":"merge-review.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/merge-review.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsC7C,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"}
@@ -1,9 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
3
2
  import { fn } from '@storybook/test';
4
3
  import { PrStatus, CiStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
5
4
  import { MergeReview } from './merge-review.js';
6
- import { MergeReviewDrawer } from './merge-review-drawer.js';
7
5
  const fullPr = {
8
6
  url: 'https://github.com/shep-ai/cli/pull/42',
9
7
  number: 42,
@@ -132,33 +130,3 @@ export const WithPhases = {
132
130
  ...defaultActions,
133
131
  },
134
132
  };
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,4 +1,3 @@
1
1
  export { PrdQuestionnaire } from './prd-questionnaire.js';
2
- export { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
3
- export type { PrdQuestionnaireProps, PrdQuestionnaireDrawerProps, PrdOption, PrdQuestion, PrdFinalAction, PrdQuestionnaireData, } from './prd-questionnaire-config.js';
2
+ export type { PrdQuestionnaireProps, PrdOption, PrdQuestion, PrdFinalAction, PrdQuestionnaireData, } from './prd-questionnaire-config.js';
4
3
  //# 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,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"}
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,2 +1 @@
1
1
  export { PrdQuestionnaire } from './prd-questionnaire.js';
2
- export { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
@@ -1,6 +1,5 @@
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';
4
3
  declare const meta: Meta<typeof PrdQuestionnaire>;
5
4
  export default meta;
6
5
  type Story = StoryObj<typeof PrdQuestionnaire>;
@@ -14,15 +13,6 @@ export declare const AllAnswered: Story;
14
13
  export declare const Refining: Story;
15
14
  /** Single question — minimal stepper with one step. */
16
15
  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;
26
16
  /** All answered with reject button visible on last step. */
27
17
  export declare const WithRejectButton: Story;
28
18
  /** 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;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"}
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;AAiKvD,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;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}
@@ -1,8 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { fn } from '@storybook/test';
4
4
  import { PrdQuestionnaire } from './prd-questionnaire.js';
5
- import { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
6
5
  const mockQuestions = [
7
6
  {
8
7
  id: 'problem',
@@ -227,42 +226,6 @@ export const MinimalData = {
227
226
  },
228
227
  } })),
229
228
  };
230
- const drawerMeta = {
231
- component: PrdQuestionnaireDrawer,
232
- tags: ['autodocs'],
233
- parameters: {
234
- layout: 'fullscreen',
235
- },
236
- };
237
- function DrawerTemplate({ selections: initialSelections = {}, ...props }) {
238
- const [open, setOpen] = useState(true);
239
- const [selections, setSelections] = useState(initialSelections);
240
- 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(PrdQuestionnaireDrawer, { ...props, open: open, onClose: () => setOpen(false), selections: selections, onSelect: (qId, optId) => setSelections((prev) => ({ ...prev, [qId]: optId })), onApprove: fn().mockName('onApprove') })] }));
241
- }
242
- /** Drawer with stepper — navigate questions one at a time. */
243
- export const InDrawer = {
244
- ...drawerMeta,
245
- render: () => (_jsx(DrawerTemplate, { featureName: "User Authentication Flow", featureDescription: "Implement OAuth2 login with social providers and MFA support", featureId: "FEAT-042", lifecycleLabel: "Requirements", data: mockData })),
246
- };
247
- /** Drawer with partial selections showing progress dots. */
248
- export const InDrawerWithSelections = {
249
- ...drawerMeta,
250
- render: () => (_jsx(DrawerTemplate, { featureName: "User Authentication Flow", featureId: "FEAT-042", lifecycleLabel: "Requirements", data: mockData, selections: {
251
- problem: 'user_pain',
252
- priority: 'p1',
253
- success: 'adoption',
254
- } })),
255
- };
256
- /** Drawer with delete button visible. */
257
- export const WithDeleteButton = {
258
- ...drawerMeta,
259
- render: () => (_jsx(DrawerTemplate, { featureName: "User Authentication Flow", featureId: "FEAT-042", lifecycleLabel: "Requirements", data: mockData, onDelete: fn().mockName('onDelete') })),
260
- };
261
- /** Drawer with delete in progress (button disabled). */
262
- export const DeletingState = {
263
- ...drawerMeta,
264
- render: () => (_jsx(DrawerTemplate, { featureName: "User Authentication Flow", featureId: "FEAT-042", lifecycleLabel: "Requirements", data: mockData, onDelete: fn().mockName('onDelete'), isDeleting: true })),
265
- };
266
229
  /* ─── Reject Variants ─── */
267
230
  const allAnsweredSelections = {
268
231
  problem: 'user_pain',
@@ -0,0 +1,3 @@
1
+ export { TaskProgressView } from './task-progress-view.js';
2
+ export type { TaskProgressViewProps } from './task-progress-view.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/task-progress-view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ export { TaskProgressView } from './task-progress-view.js';
@@ -0,0 +1,6 @@
1
+ import type { PlanTaskData } from '../../../app/actions/get-feature-plan.js';
2
+ export interface TaskProgressViewProps {
3
+ tasks: PlanTaskData[];
4
+ }
5
+ export declare function TaskProgressView({ tasks }: TaskProgressViewProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=task-progress-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-progress-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/task-progress-view/task-progress-view.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,gCAAgC,CAAC;AAEnF,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AA8CD,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,qBAAqB,2CAmBhE"}
@@ -0,0 +1,84 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useCallback, useMemo } from 'react';
4
+ import { Loader2, Circle, Check, Eye, ChevronRight, CheckCircle2, CircleDashed, } from 'lucide-react';
5
+ import { cn } from '../../../lib/utils.js';
6
+ const taskStateConfig = {
7
+ Todo: {
8
+ icon: Circle,
9
+ colorClass: 'text-muted-foreground',
10
+ borderClass: 'border-border',
11
+ label: 'Todo',
12
+ },
13
+ 'Work in Progress': {
14
+ icon: Loader2,
15
+ colorClass: 'text-blue-600',
16
+ borderClass: 'border-blue-200',
17
+ spinning: true,
18
+ label: 'In Progress',
19
+ },
20
+ Done: {
21
+ icon: Check,
22
+ colorClass: 'text-emerald-600',
23
+ borderClass: 'border-emerald-200',
24
+ label: 'Done',
25
+ },
26
+ Review: {
27
+ icon: Eye,
28
+ colorClass: 'text-amber-600',
29
+ borderClass: 'border-amber-200',
30
+ label: 'Review',
31
+ },
32
+ };
33
+ const defaultTaskConfig = {
34
+ icon: Circle,
35
+ colorClass: 'text-muted-foreground',
36
+ borderClass: 'border-border',
37
+ label: 'Unknown',
38
+ };
39
+ export function TaskProgressView({ tasks }) {
40
+ if (tasks.length === 0) {
41
+ return (_jsx("div", { className: "flex flex-col items-center justify-center gap-2 py-4", children: _jsx("p", { className: "text-muted-foreground text-sm", children: "No tasks defined yet" }) }));
42
+ }
43
+ return (_jsxs("div", { "data-testid": "task-progress-view", className: "flex flex-col gap-3", children: [_jsx(ProgressSummary, { tasks: tasks }), _jsx("div", { "data-testid": "task-progress-list", className: "flex flex-col gap-2", children: tasks.map((task, index) => (_jsx(TaskCard, { task: task, index: index }, task.title || `task-${index}`))) })] }));
44
+ }
45
+ // ── Progress Summary ─────────────────────────────────────────────────
46
+ function ProgressSummary({ tasks }) {
47
+ const counts = useMemo(() => {
48
+ const done = tasks.filter((t) => t.state === 'Done').length;
49
+ const wip = tasks.filter((t) => t.state === 'Work in Progress').length;
50
+ const review = tasks.filter((t) => t.state === 'Review').length;
51
+ const todo = tasks.filter((t) => t.state !== 'Done' && t.state !== 'Work in Progress' && t.state !== 'Review').length;
52
+ const total = tasks.length;
53
+ const percent = total > 0 ? Math.round((done / total) * 100) : 0;
54
+ return { done, wip, review, todo, total, percent };
55
+ }, [tasks]);
56
+ return (_jsxs("div", { "data-testid": "task-progress-summary", className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Task Progress" }), _jsxs("span", { className: "text-muted-foreground text-xs", children: [counts.done, " of ", counts.total, " done"] })] }), _jsx("div", { className: "bg-muted h-2 w-full overflow-hidden rounded-full", children: _jsx("div", { "data-testid": "task-progress-bar", className: "h-full rounded-full bg-emerald-500 transition-all", style: { width: `${counts.percent}%` } }) }), _jsxs("div", { className: "flex flex-wrap gap-3", children: [counts.done > 0 ? (_jsx(StatChip, { icon: Check, label: "Done", count: counts.done, className: "text-emerald-600" })) : null, counts.wip > 0 ? (_jsx(StatChip, { icon: Loader2, label: "In Progress", count: counts.wip, className: "text-blue-600" })) : null, counts.review > 0 ? (_jsx(StatChip, { icon: Eye, label: "Review", count: counts.review, className: "text-amber-600" })) : null, counts.todo > 0 ? (_jsx(StatChip, { icon: Circle, label: "Todo", count: counts.todo, className: "text-muted-foreground" })) : null] })] }));
57
+ }
58
+ function StatChip({ icon: Icon, label, count, className, }) {
59
+ return (_jsxs("span", { className: cn('flex items-center gap-1 text-xs', className), children: [_jsx(Icon, { className: "h-3 w-3" }), count, " ", label] }));
60
+ }
61
+ // ── Task Card ────────────────────────────────────────────────────────
62
+ function TaskCard({ task, index }) {
63
+ const [expanded, setExpanded] = useState(false);
64
+ const config = taskStateConfig[task.state] ?? defaultTaskConfig;
65
+ const Icon = config.icon;
66
+ const hasDetails = task.actionItems.length > 0;
67
+ const handleToggle = useCallback(() => {
68
+ if (hasDetails) {
69
+ setExpanded((prev) => !prev);
70
+ }
71
+ }, [hasDetails]);
72
+ return (_jsxs("div", { "data-testid": `task-card-${index}`, className: cn('rounded-lg border', config.borderClass), children: [_jsxs("button", { type: "button", onClick: handleToggle, disabled: !hasDetails, className: cn('flex w-full items-start gap-2 px-3 py-2.5 text-left', hasDetails && 'hover:bg-muted/50 cursor-pointer transition-colors'), children: [_jsx(Icon, { className: cn('mt-0.5 h-4 w-4 shrink-0', config.colorClass, config.spinning && 'animate-spin') }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [_jsx("span", { className: cn('text-sm font-medium', config.colorClass), children: task.title }), task.description ? (_jsx("span", { className: "text-muted-foreground text-xs", children: task.description })) : null] }), hasDetails ? (_jsx(ChevronRight, { className: cn('text-muted-foreground mt-0.5 h-4 w-4 shrink-0 transition-transform', expanded && 'rotate-90') })) : null] }), expanded && hasDetails ? (_jsx("div", { className: "border-t px-3 py-2.5", children: _jsx("div", { className: "flex flex-col gap-2", children: task.actionItems.map((item, aiIndex) => (_jsx(ActionItemRow, { item: item }, item.name || `ai-${aiIndex}`))) }) })) : null] }));
73
+ }
74
+ // ── Action Item Row ──────────────────────────────────────────────────
75
+ function ActionItemRow({ item }) {
76
+ const totalCriteria = item.acceptanceCriteria.length;
77
+ const verifiedCriteria = item.acceptanceCriteria.filter((ac) => ac.verified).length;
78
+ const allVerified = totalCriteria > 0 && verifiedCriteria === totalCriteria;
79
+ return (_jsxs("div", { "data-testid": "action-item", className: "flex flex-col gap-1.5", children: [_jsxs("div", { className: "flex items-start gap-2", children: [allVerified ? (_jsx(CheckCircle2, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-emerald-600" })) : (_jsx(CircleDashed, { className: "text-muted-foreground mt-0.5 h-3.5 w-3.5 shrink-0" })), _jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [_jsx("span", { className: "text-xs font-medium", children: item.name }), item.description ? (_jsx("span", { className: "text-muted-foreground text-[11px]", children: item.description })) : null] }), totalCriteria > 0 ? (_jsxs("span", { className: "text-muted-foreground ml-auto shrink-0 text-[11px]", children: [verifiedCriteria, "/", totalCriteria] })) : null] }), totalCriteria > 0 ? (_jsx("div", { className: "ml-5.5 flex flex-col gap-1", children: item.acceptanceCriteria.map((ac, acIndex) => (_jsx(AcceptanceCriterionRow, { criterion: ac }, ac.description || `ac-${acIndex}`))) })) : null] }));
80
+ }
81
+ // ── Acceptance Criterion Row ─────────────────────────────────────────
82
+ function AcceptanceCriterionRow({ criterion, }) {
83
+ return (_jsxs("div", { "data-testid": "acceptance-criterion", className: "flex items-start gap-1.5", children: [criterion.verified ? (_jsx(Check, { className: "mt-0.5 h-3 w-3 shrink-0 text-emerald-600" })) : (_jsx(Circle, { className: "text-muted-foreground mt-0.5 h-3 w-3 shrink-0" })), _jsx("span", { className: cn('text-[11px]', criterion.verified ? 'text-muted-foreground line-through' : 'text-foreground'), children: criterion.description })] }));
84
+ }
@@ -0,0 +1,16 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { TaskProgressView } from './task-progress-view.js';
3
+ declare const meta: Meta<typeof TaskProgressView>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof TaskProgressView>;
6
+ /** Default — tasks in mixed states with action items and acceptance criteria. */
7
+ export declare const Default: Story;
8
+ /** All tasks completed. */
9
+ export declare const AllDone: Story;
10
+ /** All tasks in Todo state. */
11
+ export declare const AllTodo: Story;
12
+ /** Empty — no tasks defined. */
13
+ export declare const Empty: Story;
14
+ /** Single task with detailed action items. */
15
+ export declare const SingleTaskDetailed: Story;
16
+ //# sourceMappingURL=task-progress-view.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-progress-view.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/task-progress-view/task-progress-view.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAYvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AA+J/C,iFAAiF;AACjF,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,+BAA+B;AAC/B,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,EAAE,KAIhC,CAAC"}
@@ -0,0 +1,194 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TaskProgressView } from './task-progress-view.js';
3
+ const meta = {
4
+ title: 'Composed/TaskProgressView',
5
+ component: TaskProgressView,
6
+ tags: ['autodocs'],
7
+ parameters: { layout: 'padded' },
8
+ decorators: [
9
+ (Story) => (_jsx("div", { style: { width: '400px', border: '1px solid var(--color-border)', padding: '16px' }, children: _jsx(Story, {}) })),
10
+ ],
11
+ };
12
+ export default meta;
13
+ /* ---------------------------------------------------------------------------
14
+ * Data fixtures
15
+ * ------------------------------------------------------------------------- */
16
+ const mixedTasks = [
17
+ {
18
+ title: 'Set up OAuth provider configuration',
19
+ description: 'Configure Google and GitHub OAuth apps with client IDs and secrets',
20
+ state: 'Done',
21
+ actionItems: [
22
+ {
23
+ name: 'Create OAuth config module',
24
+ description: 'Define provider configuration schema and load from env',
25
+ acceptanceCriteria: [
26
+ { description: 'Config loads from environment variables', verified: true },
27
+ { description: 'Validation rejects missing client ID or secret', verified: true },
28
+ ],
29
+ },
30
+ {
31
+ name: 'Register OAuth apps',
32
+ description: 'Register apps with Google and GitHub developer consoles',
33
+ acceptanceCriteria: [
34
+ { description: 'Google OAuth app created with correct scopes', verified: true },
35
+ { description: 'GitHub OAuth app created with correct callback URL', verified: true },
36
+ ],
37
+ },
38
+ ],
39
+ },
40
+ {
41
+ title: 'Implement callback handler',
42
+ description: 'Handle OAuth callback with authorization code exchange',
43
+ state: 'Done',
44
+ actionItems: [
45
+ {
46
+ name: 'Build callback endpoint',
47
+ description: 'GET /auth/callback with code exchange logic',
48
+ acceptanceCriteria: [
49
+ { description: 'Exchanges authorization code for tokens', verified: true },
50
+ ],
51
+ },
52
+ ],
53
+ },
54
+ {
55
+ title: 'Add token refresh logic',
56
+ description: 'Implement silent token refresh using refresh tokens stored in httpOnly cookies',
57
+ state: 'Work in Progress',
58
+ actionItems: [
59
+ {
60
+ name: 'Implement refresh endpoint',
61
+ description: 'POST /auth/refresh to issue new access token',
62
+ acceptanceCriteria: [
63
+ { description: 'Returns new access token when refresh token is valid', verified: true },
64
+ { description: 'Returns 401 when refresh token is expired', verified: false },
65
+ ],
66
+ },
67
+ {
68
+ name: 'Add httpOnly cookie handling',
69
+ description: 'Store refresh tokens in secure httpOnly cookies',
70
+ acceptanceCriteria: [
71
+ { description: 'Cookies are set with Secure and HttpOnly flags', verified: false },
72
+ ],
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ title: 'Create user profile sync',
78
+ description: 'Sync user profile data from identity providers on login',
79
+ state: 'Todo',
80
+ actionItems: [
81
+ {
82
+ name: 'Fetch profile from provider',
83
+ description: 'Use access token to retrieve user profile from Google/GitHub',
84
+ acceptanceCriteria: [
85
+ { description: 'Retrieves name, email, and avatar from Google', verified: false },
86
+ { description: 'Retrieves name, email, and avatar from GitHub', verified: false },
87
+ ],
88
+ },
89
+ ],
90
+ },
91
+ {
92
+ title: 'Write integration tests',
93
+ description: 'Test the full OAuth flow with mocked providers',
94
+ state: 'Todo',
95
+ actionItems: [],
96
+ },
97
+ {
98
+ title: 'Update API documentation',
99
+ description: 'Document new authentication endpoints and flows',
100
+ state: 'Review',
101
+ actionItems: [
102
+ {
103
+ name: 'Document auth endpoints',
104
+ description: 'Add OpenAPI specs for all auth routes',
105
+ acceptanceCriteria: [
106
+ { description: 'All endpoints have OpenAPI documentation', verified: true },
107
+ { description: 'Examples included for each endpoint', verified: true },
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ ];
113
+ const allDoneTasks = [
114
+ {
115
+ title: 'Design sliding window algorithm',
116
+ description: 'Implement Redis-backed sliding window counter',
117
+ state: 'Done',
118
+ actionItems: [
119
+ {
120
+ name: 'Implement counter',
121
+ description: 'Redis ZADD-based sliding window',
122
+ acceptanceCriteria: [
123
+ { description: 'Counts requests in time window', verified: true },
124
+ { description: 'Cleans up expired entries', verified: true },
125
+ ],
126
+ },
127
+ ],
128
+ },
129
+ {
130
+ title: 'Add rate limit middleware',
131
+ description: 'Express middleware that checks rate limits per IP',
132
+ state: 'Done',
133
+ actionItems: [],
134
+ },
135
+ {
136
+ title: 'Configure limits per endpoint',
137
+ description: 'Set different rate limits for public vs authenticated endpoints',
138
+ state: 'Done',
139
+ actionItems: [],
140
+ },
141
+ ];
142
+ const allTodoTasks = [
143
+ {
144
+ title: 'Define notification types',
145
+ description: 'Enumerate all notification events and their payloads',
146
+ state: 'Todo',
147
+ actionItems: [],
148
+ },
149
+ {
150
+ title: 'Set up WebSocket server',
151
+ description: 'Configure Socket.io with Redis adapter',
152
+ state: 'Todo',
153
+ actionItems: [],
154
+ },
155
+ {
156
+ title: 'Implement notification store',
157
+ description: 'Persist notifications in database',
158
+ state: 'Todo',
159
+ actionItems: [],
160
+ },
161
+ ];
162
+ /* ---------------------------------------------------------------------------
163
+ * Stories
164
+ * ------------------------------------------------------------------------- */
165
+ /** Default — tasks in mixed states with action items and acceptance criteria. */
166
+ export const Default = {
167
+ args: {
168
+ tasks: mixedTasks,
169
+ },
170
+ };
171
+ /** All tasks completed. */
172
+ export const AllDone = {
173
+ args: {
174
+ tasks: allDoneTasks,
175
+ },
176
+ };
177
+ /** All tasks in Todo state. */
178
+ export const AllTodo = {
179
+ args: {
180
+ tasks: allTodoTasks,
181
+ },
182
+ };
183
+ /** Empty — no tasks defined. */
184
+ export const Empty = {
185
+ args: {
186
+ tasks: [],
187
+ },
188
+ };
189
+ /** Single task with detailed action items. */
190
+ export const SingleTaskDetailed = {
191
+ args: {
192
+ tasks: [mixedTasks[2]],
193
+ },
194
+ };
@@ -1,4 +1,3 @@
1
1
  export { TechDecisionsReview, TechDecisionsContent } from './tech-decisions-review.js';
2
- export { TechDecisionsDrawer } from './tech-decisions-drawer.js';
3
- export type { TechDecisionsReviewProps, TechDecisionsDrawerProps, TechDecisionsReviewData, TechDecision, } from './tech-decisions-review-config.js';
2
+ export type { TechDecisionsReviewProps, TechDecisionsReviewData, TechDecision, } from './tech-decisions-review-config.js';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/tech-decisions-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,GACb,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/tech-decisions-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,GACb,MAAM,gCAAgC,CAAC"}
@@ -1,2 +1 @@
1
1
  export { TechDecisionsReview, TechDecisionsContent } from './tech-decisions-review.js';
2
- export { TechDecisionsDrawer } from './tech-decisions-drawer.js';
@@ -1,6 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { TechDecisionsReview } from './tech-decisions-review.js';
3
- import { TechDecisionsDrawer } from './tech-decisions-drawer.js';
4
3
  declare const meta: Meta<typeof TechDecisionsReview>;
5
4
  export default meta;
6
5
  type Story = StoryObj<typeof TechDecisionsReview>;
@@ -12,13 +11,6 @@ export declare const Processing: Story;
12
11
  export declare const SingleDecision: Story;
13
12
  /** No technologies listed. */
14
13
  export declare const NoTechnologies: Story;
15
- type DrawerStory = StoryObj<typeof TechDecisionsDrawer>;
16
- /** Drawer with tech decisions list. */
17
- export declare const InDrawer: DrawerStory;
18
- /** Drawer with delete button visible. */
19
- export declare const WithDeleteButton: DrawerStory;
20
- /** Drawer with delete in progress (button disabled). */
21
- export declare const DeletingState: DrawerStory;
22
14
  /** With reject button visible next to approve. */
23
15
  export declare const WithRejectButton: Story;
24
16
  /** Rejecting state — reject button disabled while reject action is in flight. */