@shepai/cli 1.66.4 → 1.68.0

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 (283) hide show
  1. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
  2. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +21 -1
  3. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.stories.d.ts +15 -1
  4. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.stories.d.ts.map +1 -1
  5. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.stories.js +16 -2
  6. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.d.ts +12 -0
  7. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.d.ts.map +1 -0
  8. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.js +284 -0
  9. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.d.ts +33 -0
  10. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.d.ts.map +1 -0
  11. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.js +210 -0
  12. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +56 -0
  13. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -0
  14. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +32 -0
  15. package/dist/src/presentation/web/components/common/control-center-drawer/index.d.ts +3 -0
  16. package/dist/src/presentation/web/components/common/control-center-drawer/index.d.ts.map +1 -0
  17. package/dist/src/presentation/web/components/common/control-center-drawer/index.js +2 -0
  18. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar-config.d.ts +0 -4
  19. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar-config.d.ts.map +1 -1
  20. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.d.ts +1 -1
  21. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.d.ts.map +1 -1
  22. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +18 -12
  23. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.d.ts +4 -6
  24. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.d.ts.map +1 -1
  25. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.js +5 -13
  26. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +2 -13
  28. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +2 -10
  29. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  30. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +21 -1
  31. package/dist/src/presentation/web/components/common/feature-create-drawer/index.d.ts +1 -1
  32. package/dist/src/presentation/web/components/common/feature-create-drawer/index.d.ts.map +1 -1
  33. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +1 -1
  34. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +14 -20
  35. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts +7 -1
  36. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +1 -1
  37. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +37 -2
  38. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -0
  39. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  40. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  41. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +9 -2
  42. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -0
  43. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  44. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +13 -1
  45. package/dist/src/presentation/web/components/common/index.d.ts +1 -0
  46. package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
  47. package/dist/src/presentation/web/components/common/index.js +1 -0
  48. package/dist/src/presentation/web/components/common/merge-review/merge-review.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/common/merge-review/merge-review.js +2 -2
  50. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map +1 -1
  51. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +1 -2
  52. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.js +1 -1
  53. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +1 -2
  55. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.js +5 -1
  57. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts +2 -0
  58. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  59. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +13 -2
  60. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts.map +1 -1
  61. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.js +5 -2
  62. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.js +1 -1
  63. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.d.ts.map +1 -1
  64. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.js +1 -1
  65. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -1
  66. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +1 -2
  67. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +20 -215
  69. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  70. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +2 -1
  71. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -1
  72. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  73. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +4 -2
  74. package/dist/tsconfig.build.tsbuildinfo +1 -1
  75. package/package.json +2 -2
  76. package/web/.next/BUILD_ID +1 -1
  77. package/web/.next/build-manifest.json +5 -5
  78. package/web/.next/cache/.previewinfo +1 -1
  79. package/web/.next/cache/.rscinfo +1 -1
  80. package/web/.next/cache/.tsbuildinfo +1 -1
  81. package/web/.next/cache/config.json +3 -3
  82. package/web/.next/fallback-build-manifest.json +2 -2
  83. package/web/.next/prerender-manifest.json +3 -3
  84. package/web/.next/required-server-files.js +1 -1
  85. package/web/.next/required-server-files.json +1 -1
  86. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  87. package/web/.next/server/app/_global-error.html +2 -2
  88. package/web/.next/server/app/_global-error.rsc +1 -1
  89. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  90. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  91. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  92. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  93. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  94. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  95. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  96. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  97. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/page/build-manifest.json +3 -3
  99. package/web/.next/server/app/page/server-reference-manifest.json +88 -88
  100. package/web/.next/server/app/page.js +1 -1
  101. package/web/.next/server/app/page.js.nft.json +1 -1
  102. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  103. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  104. package/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
  105. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  106. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  108. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  109. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  110. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  112. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  113. package/web/.next/server/app/version/page.js.nft.json +1 -1
  114. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/chunks/ssr/403f9_next_dist_a53cb908._.js +3 -0
  116. package/web/.next/server/chunks/ssr/403f9_next_dist_a53cb908._.js.map +1 -0
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  120. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f5830fa9._.js → [root-of-the-server]__2ffb27f1._.js} +2 -2
  121. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f5830fa9._.js.map → [root-of-the-server]__2ffb27f1._.js.map} +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__7f4180a1._.js +3 -0
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__7f4180a1._.js.map +1 -0
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +4 -4
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +9 -0
  133. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f648005b._.js.map → [root-of-the-server]__e41b5eec._.js.map} +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__eaf6100f._.js +3 -0
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__eaf6100f._.js.map +1 -0
  136. package/web/.next/server/chunks/ssr/_23c92688._.js +6 -0
  137. package/web/.next/server/chunks/ssr/_23c92688._.js.map +1 -0
  138. package/web/.next/server/chunks/ssr/_28993370._.js +1 -1
  139. package/web/.next/server/chunks/ssr/_28993370._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/_49bf495c._.js +3 -0
  141. package/web/.next/server/chunks/ssr/_49bf495c._.js.map +1 -0
  142. package/web/.next/server/chunks/ssr/_690ea95f._.js +3 -0
  143. package/web/.next/server/chunks/ssr/{_2900ed94._.js.map → _690ea95f._.js.map} +1 -1
  144. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_c52cace8._.js → server/chunks/ssr/_725584e5._.js} +2 -2
  145. package/web/.next/server/chunks/ssr/_725584e5._.js.map +1 -0
  146. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  147. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  148. package/web/.next/server/middleware-build-manifest.js +3 -3
  149. package/web/.next/server/pages/500.html +2 -2
  150. package/web/.next/server/server-reference-manifest.js +1 -1
  151. package/web/.next/server/server-reference-manifest.json +115 -115
  152. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  153. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +5 -5
  154. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  155. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  156. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  157. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  158. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  159. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  160. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  161. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  162. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  163. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  164. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  165. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  166. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  167. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  168. package/web/.next/standalone/src/presentation/web/.next/server/app/page/build-manifest.json +3 -3
  169. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +88 -88
  170. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js +1 -1
  171. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +1 -1
  172. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  173. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +3 -3
  174. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
  175. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  176. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  177. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/build-manifest.json +3 -3
  178. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  179. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  180. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  181. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +3 -3
  182. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  183. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  184. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  185. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_a53cb908._.js +3 -0
  186. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  187. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  188. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__f5830fa9._.js → [root-of-the-server]__2ffb27f1._.js} +2 -2
  189. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
  190. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  191. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__7f4180a1._.js +3 -0
  192. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  193. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +4 -4
  194. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +9 -0
  195. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__eaf6100f._.js +3 -0
  196. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_23c92688._.js +6 -0
  197. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_28993370._.js +1 -1
  198. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_49bf495c._.js +3 -0
  199. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_690ea95f._.js +3 -0
  200. package/web/.next/{server/chunks/ssr/_c52cace8._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_725584e5._.js} +2 -2
  201. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  202. package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +3 -3
  203. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  204. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  205. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +115 -115
  206. package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.stories.tsx +16 -2
  207. package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.tsx +35 -6
  208. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/control-center-drawer.stories.tsx +285 -0
  209. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/control-center-drawer.tsx +650 -0
  210. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/drawer-view.ts +82 -0
  211. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/index.ts +2 -0
  212. package/web/.next/standalone/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar-config.ts +0 -4
  213. package/web/.next/standalone/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.tsx +5 -14
  214. package/web/.next/standalone/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.tsx +58 -51
  215. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.tsx +42 -1
  216. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +2 -16
  217. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/index.ts +1 -0
  218. package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.tsx +55 -2
  219. package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/feature-drawer.tsx +97 -106
  220. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node-state-config.ts +1 -0
  221. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.stories.tsx +14 -1
  222. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx +61 -1
  223. package/web/.next/standalone/src/presentation/web/components/common/index.ts +6 -0
  224. package/web/.next/standalone/src/presentation/web/components/common/merge-review/merge-review.stories.tsx +1 -2
  225. package/web/.next/standalone/src/presentation/web/components/common/merge-review/merge-review.tsx +1 -2
  226. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx +1 -2
  227. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.tsx +1 -1
  228. package/web/.next/standalone/src/presentation/web/components/common/repository-node/repository-drawer.stories.tsx +28 -2
  229. package/web/.next/standalone/src/presentation/web/components/common/repository-node/repository-drawer.tsx +7 -2
  230. package/web/.next/standalone/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.tsx +1 -1
  231. package/web/.next/standalone/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.tsx +7 -6
  232. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.tsx +1 -2
  233. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.tsx +1 -2
  234. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +31 -348
  235. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +2 -1
  236. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +9 -1
  237. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  238. package/web/.next/static/chunks/0751efba75563e6a.js +1 -0
  239. package/web/.next/static/chunks/33b4e5444019ab64.js +1 -0
  240. package/web/.next/static/chunks/{35f41ba0a6d626d7.js → 491ae2bbae40857c.js} +1 -1
  241. package/web/.next/static/chunks/49feba0d1a871e2b.js +10 -0
  242. package/web/.next/static/chunks/4b6cc9f65260f2bd.js +2 -0
  243. package/web/.next/static/chunks/{e0073669b6bc24df.js → 7f6db87dc1fe9c3b.js} +1 -1
  244. package/web/.next/static/chunks/a186bbb822ccb655.css +2 -0
  245. package/web/.next/static/chunks/a5c59952485e875e.js +1 -0
  246. package/web/.next/static/chunks/{8c60d1bd87239066.js → a9626385607910b3.js} +1 -1
  247. package/web/.next/static/chunks/c1c15470a7b058c8.js +1 -0
  248. package/web/.next/static/chunks/caa2e7e1618e2179.js +1 -0
  249. package/web/.next/static/chunks/fb703cf73aba2eb8.js +1 -0
  250. package/web/.next/static/chunks/{turbopack-b6b5b4f015327a9a.js → turbopack-958ac34b879d0dce.js} +1 -1
  251. package/web/.next/trace +1 -1
  252. package/web/.next/trace-build +1 -1
  253. package/web/.next/server/chunks/ssr/403f9_next_dist_623b646a._.js +0 -3
  254. package/web/.next/server/chunks/ssr/403f9_next_dist_623b646a._.js.map +0 -1
  255. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb51fac._.js +0 -3
  256. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb51fac._.js.map +0 -1
  257. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1f0f2a8._.js +0 -3
  258. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1f0f2a8._.js.map +0 -1
  259. package/web/.next/server/chunks/ssr/[root-of-the-server]__f648005b._.js +0 -9
  260. package/web/.next/server/chunks/ssr/_2900ed94._.js +0 -3
  261. package/web/.next/server/chunks/ssr/_6978d868._.js +0 -3
  262. package/web/.next/server/chunks/ssr/_6978d868._.js.map +0 -1
  263. package/web/.next/server/chunks/ssr/_85965278._.js +0 -6
  264. package/web/.next/server/chunks/ssr/_85965278._.js.map +0 -1
  265. package/web/.next/server/chunks/ssr/_c52cace8._.js.map +0 -1
  266. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_623b646a._.js +0 -3
  267. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6bb51fac._.js +0 -3
  268. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c1f0f2a8._.js +0 -3
  269. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f648005b._.js +0 -9
  270. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_2900ed94._.js +0 -3
  271. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6978d868._.js +0 -3
  272. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_85965278._.js +0 -6
  273. package/web/.next/static/chunks/41a2adc09edfffaf.js +0 -1
  274. package/web/.next/static/chunks/5054c72b1c8f5912.js +0 -1
  275. package/web/.next/static/chunks/5f6d9f4647fc3093.js +0 -10
  276. package/web/.next/static/chunks/96f49affaceab206.css +0 -2
  277. package/web/.next/static/chunks/a6d1d774260fc927.js +0 -2
  278. package/web/.next/static/chunks/c0fdd832fc4ee8eb.js +0 -1
  279. package/web/.next/static/chunks/de70ba984363673f.js +0 -1
  280. package/web/.next/static/chunks/f5fb2f182ae9b015.js +0 -1
  281. /package/web/.next/static/{XGbKxw26cOCJQ-711YxBw → ntu60tngTU2e9MZgpdlz0}/_buildManifest.js +0 -0
  282. /package/web/.next/static/{XGbKxw26cOCJQ-711YxBw → ntu60tngTU2e9MZgpdlz0}/_clientMiddlewareManifest.json +0 -0
  283. /package/web/.next/static/{XGbKxw26cOCJQ-711YxBw → ntu60tngTU2e9MZgpdlz0}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "node": {
3
- "0033966bab3dd318d1473010e33718ced9c1720eff": {
3
+ "005c21cc7a74734851077ea4c06ba4ace20b1dc8e1": {
4
4
  "workers": {
5
5
  "app/_not-found/page": {
6
6
  "moduleId": 66973,
@@ -9,7 +9,7 @@
9
9
  "filename": "src/presentation/web/app/actions/pick-folder.ts"
10
10
  },
11
11
  "app/page": {
12
- "moduleId": 98380,
12
+ "moduleId": 80894,
13
13
  "async": false,
14
14
  "exportedName": "pickFolder",
15
15
  "filename": "src/presentation/web/app/actions/pick-folder.ts"
@@ -43,100 +43,10 @@
43
43
  "filename": "src/presentation/web/app/actions/pick-folder.ts",
44
44
  "exportedName": "pickFolder"
45
45
  },
46
- "604309650cb5d9084d601681f1db61d6cdc3a69a59": {
46
+ "401212dc604a59aad891c75abc967036bacf6a5a02": {
47
47
  "workers": {
48
48
  "app/page": {
49
- "moduleId": 98380,
50
- "async": false,
51
- "exportedName": "approveFeature",
52
- "filename": "src/presentation/web/app/actions/approve-feature.ts"
53
- }
54
- },
55
- "layer": {
56
- "app/page": "action-browser"
57
- },
58
- "filename": "src/presentation/web/app/actions/approve-feature.ts",
59
- "exportedName": "approveFeature"
60
- },
61
- "608a0c66bebce66cba1b63cce75dcc717ee623a88d": {
62
- "workers": {
63
- "app/page": {
64
- "moduleId": 98380,
65
- "async": false,
66
- "exportedName": "rejectFeature",
67
- "filename": "src/presentation/web/app/actions/reject-feature.ts"
68
- }
69
- },
70
- "layer": {
71
- "app/page": "action-browser"
72
- },
73
- "filename": "src/presentation/web/app/actions/reject-feature.ts",
74
- "exportedName": "rejectFeature"
75
- },
76
- "40613f4bb60a7ab0853c02f682669f823298a886dd": {
77
- "workers": {
78
- "app/page": {
79
- "moduleId": 98380,
80
- "async": false,
81
- "exportedName": "getFeatureArtifact",
82
- "filename": "src/presentation/web/app/actions/get-feature-artifact.ts"
83
- }
84
- },
85
- "layer": {
86
- "app/page": "action-browser"
87
- },
88
- "filename": "src/presentation/web/app/actions/get-feature-artifact.ts",
89
- "exportedName": "getFeatureArtifact"
90
- },
91
- "403de6a44bbeb219b3dabb21f85be0dd2e9b6b79bf": {
92
- "workers": {
93
- "app/page": {
94
- "moduleId": 98380,
95
- "async": false,
96
- "exportedName": "getResearchArtifact",
97
- "filename": "src/presentation/web/app/actions/get-research-artifact.ts"
98
- }
99
- },
100
- "layer": {
101
- "app/page": "action-browser"
102
- },
103
- "filename": "src/presentation/web/app/actions/get-research-artifact.ts",
104
- "exportedName": "getResearchArtifact"
105
- },
106
- "0064b0e5b93622c4b7fc7371e2a30d2798e74d0a10": {
107
- "workers": {
108
- "app/page": {
109
- "moduleId": 98380,
110
- "async": false,
111
- "exportedName": "getWorkflowDefaults",
112
- "filename": "src/presentation/web/app/actions/get-workflow-defaults.ts"
113
- }
114
- },
115
- "layer": {
116
- "app/page": "action-browser"
117
- },
118
- "filename": "src/presentation/web/app/actions/get-workflow-defaults.ts",
119
- "exportedName": "getWorkflowDefaults"
120
- },
121
- "40a384d59893df8dc466a183a0069d38b607209277": {
122
- "workers": {
123
- "app/page": {
124
- "moduleId": 98380,
125
- "async": false,
126
- "exportedName": "getMergeReviewData",
127
- "filename": "src/presentation/web/app/actions/get-merge-review-data.ts"
128
- }
129
- },
130
- "layer": {
131
- "app/page": "action-browser"
132
- },
133
- "filename": "src/presentation/web/app/actions/get-merge-review-data.ts",
134
- "exportedName": "getMergeReviewData"
135
- },
136
- "40187dc6811b866511ec46d1429401e27f8c803655": {
137
- "workers": {
138
- "app/page": {
139
- "moduleId": 98380,
49
+ "moduleId": 80894,
140
50
  "async": false,
141
51
  "exportedName": "deployFeature",
142
52
  "filename": "src/presentation/web/app/actions/deploy-feature.ts"
@@ -155,10 +65,10 @@
155
65
  "filename": "src/presentation/web/app/actions/deploy-feature.ts",
156
66
  "exportedName": "deployFeature"
157
67
  },
158
- "4039a18dbcd070b9fce0018980a9c9cf7cf9e4ac38": {
68
+ "40de76e904aa3ed5b680e5db8bd6dddcff54138418": {
159
69
  "workers": {
160
70
  "app/page": {
161
- "moduleId": 98380,
71
+ "moduleId": 80894,
162
72
  "async": false,
163
73
  "exportedName": "deployRepository",
164
74
  "filename": "src/presentation/web/app/actions/deploy-repository.ts"
@@ -177,10 +87,10 @@
177
87
  "filename": "src/presentation/web/app/actions/deploy-repository.ts",
178
88
  "exportedName": "deployRepository"
179
89
  },
180
- "4042d30bb33e2ba273716b358052ff8f39404e0913": {
90
+ "408ba1e9ad295a8649817efa1177797eb10e7c466a": {
181
91
  "workers": {
182
92
  "app/page": {
183
- "moduleId": 98380,
93
+ "moduleId": 80894,
184
94
  "async": false,
185
95
  "exportedName": "stopDeployment",
186
96
  "filename": "src/presentation/web/app/actions/stop-deployment.ts"
@@ -199,10 +109,10 @@
199
109
  "filename": "src/presentation/web/app/actions/stop-deployment.ts",
200
110
  "exportedName": "stopDeployment"
201
111
  },
202
- "40af7d6fdef53d3fe0e343eb456ec82879000281f5": {
112
+ "409ee2d84b3be35455d811d819639e79d895666045": {
203
113
  "workers": {
204
114
  "app/page": {
205
- "moduleId": 98380,
115
+ "moduleId": 80894,
206
116
  "async": false,
207
117
  "exportedName": "getDeploymentStatus",
208
118
  "filename": "src/presentation/web/app/actions/get-deployment-status.ts"
@@ -221,10 +131,10 @@
221
131
  "filename": "src/presentation/web/app/actions/get-deployment-status.ts",
222
132
  "exportedName": "getDeploymentStatus"
223
133
  },
224
- "40dbf6d58f33f5687ac44bdf51ecc73cfc073b86ee": {
134
+ "40b3300da9ad22bffc1b28ca08f8fd9bc46c6f8ca8": {
225
135
  "workers": {
226
136
  "app/page": {
227
- "moduleId": 98380,
137
+ "moduleId": 80894,
228
138
  "async": false,
229
139
  "exportedName": "openIde",
230
140
  "filename": "src/presentation/web/app/actions/open-ide.ts"
@@ -236,10 +146,10 @@
236
146
  "filename": "src/presentation/web/app/actions/open-ide.ts",
237
147
  "exportedName": "openIde"
238
148
  },
239
- "4003087fc8ff7091bda59425244d519caac1790e2b": {
149
+ "40378fa4f29642cee02dc6954028513ec4081bb91f": {
240
150
  "workers": {
241
151
  "app/page": {
242
- "moduleId": 98380,
152
+ "moduleId": 80894,
243
153
  "async": false,
244
154
  "exportedName": "openShell",
245
155
  "filename": "src/presentation/web/app/actions/open-shell.ts"
@@ -251,10 +161,10 @@
251
161
  "filename": "src/presentation/web/app/actions/open-shell.ts",
252
162
  "exportedName": "openShell"
253
163
  },
254
- "407cffea6a640e4fee62e23efe745733b9794af7e0": {
164
+ "400ae8cb98352c9997c2e8c0d3cb300870af5e2de1": {
255
165
  "workers": {
256
166
  "app/page": {
257
- "moduleId": 98380,
167
+ "moduleId": 80894,
258
168
  "async": false,
259
169
  "exportedName": "openFolder",
260
170
  "filename": "src/presentation/web/app/actions/open-folder.ts"
@@ -266,10 +176,100 @@
266
176
  "filename": "src/presentation/web/app/actions/open-folder.ts",
267
177
  "exportedName": "openFolder"
268
178
  },
269
- "4091897f55b06afa918ef3cbd2d3bc955c180a3beb": {
179
+ "609f57122f6c4b6dd0eaf403efb620bcd584c2d064": {
180
+ "workers": {
181
+ "app/page": {
182
+ "moduleId": 80894,
183
+ "async": false,
184
+ "exportedName": "approveFeature",
185
+ "filename": "src/presentation/web/app/actions/approve-feature.ts"
186
+ }
187
+ },
188
+ "layer": {
189
+ "app/page": "action-browser"
190
+ },
191
+ "filename": "src/presentation/web/app/actions/approve-feature.ts",
192
+ "exportedName": "approveFeature"
193
+ },
194
+ "6006cf21f5779a08146ff52bc5027e79e44b7db388": {
195
+ "workers": {
196
+ "app/page": {
197
+ "moduleId": 80894,
198
+ "async": false,
199
+ "exportedName": "rejectFeature",
200
+ "filename": "src/presentation/web/app/actions/reject-feature.ts"
201
+ }
202
+ },
203
+ "layer": {
204
+ "app/page": "action-browser"
205
+ },
206
+ "filename": "src/presentation/web/app/actions/reject-feature.ts",
207
+ "exportedName": "rejectFeature"
208
+ },
209
+ "4031c4354a5a5b67387659ed5741130b2c592d5540": {
210
+ "workers": {
211
+ "app/page": {
212
+ "moduleId": 80894,
213
+ "async": false,
214
+ "exportedName": "getFeatureArtifact",
215
+ "filename": "src/presentation/web/app/actions/get-feature-artifact.ts"
216
+ }
217
+ },
218
+ "layer": {
219
+ "app/page": "action-browser"
220
+ },
221
+ "filename": "src/presentation/web/app/actions/get-feature-artifact.ts",
222
+ "exportedName": "getFeatureArtifact"
223
+ },
224
+ "40708b597b28c2fddbe808f4b6b4d0df4c9a2a8329": {
225
+ "workers": {
226
+ "app/page": {
227
+ "moduleId": 80894,
228
+ "async": false,
229
+ "exportedName": "getResearchArtifact",
230
+ "filename": "src/presentation/web/app/actions/get-research-artifact.ts"
231
+ }
232
+ },
233
+ "layer": {
234
+ "app/page": "action-browser"
235
+ },
236
+ "filename": "src/presentation/web/app/actions/get-research-artifact.ts",
237
+ "exportedName": "getResearchArtifact"
238
+ },
239
+ "402ebc155e440e9de63de2ec16961cd989415b7a74": {
240
+ "workers": {
241
+ "app/page": {
242
+ "moduleId": 80894,
243
+ "async": false,
244
+ "exportedName": "getMergeReviewData",
245
+ "filename": "src/presentation/web/app/actions/get-merge-review-data.ts"
246
+ }
247
+ },
248
+ "layer": {
249
+ "app/page": "action-browser"
250
+ },
251
+ "filename": "src/presentation/web/app/actions/get-merge-review-data.ts",
252
+ "exportedName": "getMergeReviewData"
253
+ },
254
+ "00bd6bcbeb18b90c6acf7e01e7baf6c67b8a13daac": {
255
+ "workers": {
256
+ "app/page": {
257
+ "moduleId": 80894,
258
+ "async": false,
259
+ "exportedName": "getWorkflowDefaults",
260
+ "filename": "src/presentation/web/app/actions/get-workflow-defaults.ts"
261
+ }
262
+ },
263
+ "layer": {
264
+ "app/page": "action-browser"
265
+ },
266
+ "filename": "src/presentation/web/app/actions/get-workflow-defaults.ts",
267
+ "exportedName": "getWorkflowDefaults"
268
+ },
269
+ "40bc1fe17be13055de30e039f468fc08296a4a91cc": {
270
270
  "workers": {
271
271
  "app/page": {
272
- "moduleId": 98380,
272
+ "moduleId": 80894,
273
273
  "async": false,
274
274
  "exportedName": "createFeature",
275
275
  "filename": "src/presentation/web/app/actions/create-feature.ts"
@@ -281,10 +281,10 @@
281
281
  "filename": "src/presentation/web/app/actions/create-feature.ts",
282
282
  "exportedName": "createFeature"
283
283
  },
284
- "40604025ce6b0aa9a956aa0674adb65558405f460f": {
284
+ "40f6704a13155dc8f2854c88d37c75ccd3452c9d61": {
285
285
  "workers": {
286
286
  "app/page": {
287
- "moduleId": 98380,
287
+ "moduleId": 80894,
288
288
  "async": false,
289
289
  "exportedName": "deleteFeature",
290
290
  "filename": "src/presentation/web/app/actions/delete-feature.ts"
@@ -296,10 +296,10 @@
296
296
  "filename": "src/presentation/web/app/actions/delete-feature.ts",
297
297
  "exportedName": "deleteFeature"
298
298
  },
299
- "40c1945b26ccf6bfd60b9eff124f49417f0180d4d8": {
299
+ "4047771466633d9f80ee40689683f1213b5183b7af": {
300
300
  "workers": {
301
301
  "app/page": {
302
- "moduleId": 98380,
302
+ "moduleId": 80894,
303
303
  "async": false,
304
304
  "exportedName": "addRepository",
305
305
  "filename": "src/presentation/web/app/actions/add-repository.ts"
@@ -311,10 +311,10 @@
311
311
  "filename": "src/presentation/web/app/actions/add-repository.ts",
312
312
  "exportedName": "addRepository"
313
313
  },
314
- "4079d22084626c446ac25742a8e86647a75780fb27": {
314
+ "407e7bd053692aae2c08bd4d2707d830ff2246f1b1": {
315
315
  "workers": {
316
316
  "app/page": {
317
- "moduleId": 98380,
317
+ "moduleId": 80894,
318
318
  "async": false,
319
319
  "exportedName": "deleteRepository",
320
320
  "filename": "src/presentation/web/app/actions/delete-repository.ts"
@@ -328,5 +328,5 @@
328
328
  }
329
329
  },
330
330
  "edge": {},
331
- "encryptionKey": "JWX1OJtGeS+s6qBxJSUTfcgbmS7f3+oUniimMc2/jAI="
331
+ "encryptionKey": "zcwS9bl8PiCUDFCAC1FddX7MPq3g6FDLfuNWRuHOIzk="
332
332
  }
@@ -5,7 +5,7 @@ import { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';
5
5
  import { Button } from '@/components/ui/button';
6
6
 
7
7
  const meta: Meta<typeof BaseDrawer> = {
8
- title: 'Common/BaseDrawer',
8
+ title: 'Drawers/Base/BaseDrawer',
9
9
  component: BaseDrawer,
10
10
  tags: ['autodocs'],
11
11
  parameters: {
@@ -207,7 +207,21 @@ export const WithDevServerBar: Story = {
207
207
  ),
208
208
  };
209
209
 
210
- /** Drawer with content that exceeds viewport to demonstrate scroll behavior. */
210
+ /**
211
+ * Drawer with content that exceeds viewport to demonstrate scroll behavior.
212
+ *
213
+ * **Fixed Header/Footer Layout:**
214
+ * - The header (DrawerTitle + DrawerDescription) remains fixed at the top while scrolling
215
+ * - A Separator is automatically rendered below the header — no need to add one manually
216
+ * - The footer (if present, e.g., DrawerActionBar) remains fixed at the bottom while scrolling
217
+ * - Only the content area (children) scrolls when drawer content exceeds available height
218
+ *
219
+ * **Spacing Conventions:**
220
+ * - Content consumers should add `p-4` padding for consistent spacing (as shown in this example)
221
+ * - Footer components like DrawerActionBar should use `border-t` for visual separation
222
+ *
223
+ * Try scrolling the content below to see the fixed header behavior.
224
+ */
211
225
  export const ScrollableContent: Story = {
212
226
  render: () => (
213
227
  <DrawerTrigger
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { useRef, useEffect } from 'react';
3
4
  import { XIcon, Play, Square } from 'lucide-react';
4
5
  import { cva, type VariantProps } from 'class-variance-authority';
5
6
  import { cn } from '@/lib/utils';
@@ -12,6 +13,7 @@ import {
12
13
  DrawerFooter,
13
14
  DrawerOverlay,
14
15
  } from '@/components/ui/drawer';
16
+ import { Separator } from '@/components/ui/separator';
15
17
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
16
18
  import { useDeployAction, type DeployActionInput } from '@/hooks/use-deploy-action';
17
19
  import { featureFlags } from '@/lib/feature-flags';
@@ -52,6 +54,30 @@ export function BaseDrawer({
52
54
  'data-testid': testId,
53
55
  deployTarget,
54
56
  }: BaseDrawerProps) {
57
+ const contentRef = useRef<HTMLDivElement>(null);
58
+
59
+ // Close when clicking outside the drawer panel (no overlay needed — canvas stays draggable).
60
+ // Uses `click` (not `pointerdown`) so canvas drags don't trigger this.
61
+ useEffect(() => {
62
+ if (!open || modal) return;
63
+
64
+ const handleClick = (e: MouseEvent) => {
65
+ const target = e.target as Element;
66
+ if (contentRef.current?.contains(target)) return;
67
+ // Don't close when clicking inside the canvas or other Radix overlays
68
+ if (
69
+ target.closest(
70
+ '[data-no-drawer-close], [role="alertdialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]'
71
+ )
72
+ )
73
+ return;
74
+ onClose();
75
+ };
76
+
77
+ document.addEventListener('click', handleClick);
78
+ return () => document.removeEventListener('click', handleClick);
79
+ }, [open, modal, onClose]);
80
+
55
81
  return (
56
82
  <Drawer
57
83
  direction="right"
@@ -64,6 +90,7 @@ export function BaseDrawer({
64
90
  >
65
91
  {modal ? <DrawerOverlay /> : null}
66
92
  <DrawerContent
93
+ ref={contentRef}
67
94
  direction="right"
68
95
  showCloseButton={false}
69
96
  className={cn(drawerVariants({ size }), className)}
@@ -82,18 +109,20 @@ export function BaseDrawer({
82
109
  </button>
83
110
 
84
111
  {/* Header slot */}
85
- {header ? <DrawerHeader>{header}</DrawerHeader> : null}
112
+ {header ? <DrawerHeader className="shrink-0">{header}</DrawerHeader> : null}
113
+
114
+ {/* Separator between header and content — matches review drawer style */}
115
+ {header ? <Separator /> : null}
86
116
 
87
117
  {/* Dev server bar — rendered when deployTarget is provided and env deploy is enabled */}
88
118
  {featureFlags.envDeploy && deployTarget ? <DeployBar deployTarget={deployTarget} /> : null}
89
119
 
90
- {/* Scrollable content area */}
91
- <div className="flex-1 overflow-y-auto">
92
- <div className="flex flex-col">{children}</div>
93
- </div>
120
+ {/* Scrollable content area. Consumers should add p-4 for consistent spacing. */}
121
+ {/* Footer components like DrawerActionBar typically include border-t. */}
122
+ <div className="flex min-h-0 flex-1 flex-col">{children}</div>
94
123
 
95
124
  {/* Footer slot */}
96
- {footer ? <DrawerFooter>{footer}</DrawerFooter> : null}
125
+ {footer ? <DrawerFooter className="shrink-0">{footer}</DrawerFooter> : null}
97
126
  </DrawerContent>
98
127
  </Drawer>
99
128
  );