@shepai/cli 1.202.1-pr606.60460ac → 1.202.2

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 (372) hide show
  1. package/package.json +1 -1
  2. package/web/.next/BUILD_ID +1 -1
  3. package/web/.next/build-manifest.json +2 -2
  4. package/web/.next/fallback-build-manifest.json +2 -2
  5. package/web/.next/prerender-manifest.json +3 -3
  6. package/web/.next/required-server-files.js +2 -2
  7. package/web/.next/required-server-files.json +2 -2
  8. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +4 -4
  9. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +37 -37
  10. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  11. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  12. package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +4 -4
  13. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +35 -35
  14. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  15. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  16. package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +4 -4
  17. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +38 -38
  18. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  19. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +4 -4
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +47 -47
  22. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +4 -4
  25. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +47 -47
  26. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +4 -4
  29. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +36 -36
  30. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  31. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  32. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +4 -4
  33. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +36 -36
  34. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +4 -4
  37. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +35 -35
  38. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/control-center/page/react-loadable-manifest.json +4 -4
  41. package/web/.next/server/app/(dashboard)/control-center/page/server-reference-manifest.json +35 -35
  42. package/web/.next/server/app/(dashboard)/control-center/page.js.nft.json +1 -1
  43. package/web/.next/server/app/(dashboard)/control-center/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +4 -4
  45. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +38 -38
  46. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  47. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +4 -4
  49. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +47 -47
  50. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +4 -4
  53. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +47 -47
  54. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +4 -4
  57. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +36 -36
  58. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +4 -4
  61. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +36 -36
  62. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/_global-error.html +2 -2
  65. package/web/.next/server/app/_global-error.rsc +1 -1
  66. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  67. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  68. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  69. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  70. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  71. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +4 -4
  72. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +9 -9
  73. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/agent-questions/page/react-loadable-manifest.json +4 -4
  75. package/web/.next/server/app/agent-questions/page/server-reference-manifest.json +11 -11
  76. package/web/.next/server/app/agent-questions/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/agents/[agentType]/page/react-loadable-manifest.json +4 -4
  78. package/web/.next/server/app/agents/[agentType]/page/server-reference-manifest.json +13 -13
  79. package/web/.next/server/app/agents/[agentType]/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/agents/page/react-loadable-manifest.json +4 -4
  81. package/web/.next/server/app/agents/page/server-reference-manifest.json +10 -10
  82. package/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +4 -4
  84. package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +18 -18
  85. package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
  86. package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/application/[id]/supervisor/page/react-loadable-manifest.json +4 -4
  88. package/web/.next/server/app/application/[id]/supervisor/page/server-reference-manifest.json +10 -10
  89. package/web/.next/server/app/application/[id]/supervisor/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/applications/page/react-loadable-manifest.json +4 -4
  91. package/web/.next/server/app/applications/page/server-reference-manifest.json +20 -20
  92. package/web/.next/server/app/applications/page.js.nft.json +1 -1
  93. package/web/.next/server/app/applications/page_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/features/page/react-loadable-manifest.json +4 -4
  95. package/web/.next/server/app/features/page/server-reference-manifest.json +31 -31
  96. package/web/.next/server/app/features/page.js.nft.json +1 -1
  97. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/onboarding/page/react-loadable-manifest.json +4 -4
  99. package/web/.next/server/app/onboarding/page/server-reference-manifest.json +9 -9
  100. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/app/page/react-loadable-manifest.json +4 -4
  102. package/web/.next/server/app/page/server-reference-manifest.json +9 -9
  103. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/projects/[slug]/items/[itemId]/page/react-loadable-manifest.json +4 -4
  105. package/web/.next/server/app/projects/[slug]/items/[itemId]/page/server-reference-manifest.json +16 -16
  106. package/web/.next/server/app/projects/[slug]/items/[itemId]/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/projects/[slug]/page/react-loadable-manifest.json +4 -4
  108. package/web/.next/server/app/projects/[slug]/page/server-reference-manifest.json +28 -28
  109. package/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/projects/[slug]/pages/page/react-loadable-manifest.json +4 -4
  111. package/web/.next/server/app/projects/[slug]/pages/page/server-reference-manifest.json +12 -12
  112. package/web/.next/server/app/projects/[slug]/pages/page_client-reference-manifest.js +1 -1
  113. package/web/.next/server/app/projects/[slug]/settings/page/react-loadable-manifest.json +4 -4
  114. package/web/.next/server/app/projects/[slug]/settings/page/server-reference-manifest.json +18 -18
  115. package/web/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  116. package/web/.next/server/app/projects/page/react-loadable-manifest.json +4 -4
  117. package/web/.next/server/app/projects/page/server-reference-manifest.json +10 -10
  118. package/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  119. package/web/.next/server/app/settings/page/react-loadable-manifest.json +4 -4
  120. package/web/.next/server/app/settings/page/server-reference-manifest.json +15 -15
  121. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  122. package/web/.next/server/app/skills/page/react-loadable-manifest.json +4 -4
  123. package/web/.next/server/app/skills/page/server-reference-manifest.json +17 -17
  124. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/supervisor/feature/[featureId]/page/react-loadable-manifest.json +4 -4
  126. package/web/.next/server/app/supervisor/feature/[featureId]/page/server-reference-manifest.json +10 -10
  127. package/web/.next/server/app/supervisor/feature/[featureId]/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/supervisor/page/react-loadable-manifest.json +4 -4
  129. package/web/.next/server/app/supervisor/page/server-reference-manifest.json +10 -10
  130. package/web/.next/server/app/supervisor/page_client-reference-manifest.js +1 -1
  131. package/web/.next/server/app/supervisor/repo/[repositoryId]/page/react-loadable-manifest.json +4 -4
  132. package/web/.next/server/app/supervisor/repo/[repositoryId]/page/server-reference-manifest.json +10 -10
  133. package/web/.next/server/app/supervisor/repo/[repositoryId]/page_client-reference-manifest.js +1 -1
  134. package/web/.next/server/app/tools/page/react-loadable-manifest.json +4 -4
  135. package/web/.next/server/app/tools/page/server-reference-manifest.json +15 -15
  136. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  137. package/web/.next/server/app/version/page/react-loadable-manifest.json +4 -4
  138. package/web/.next/server/app/version/page/server-reference-manifest.json +9 -9
  139. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/chunks/[root-of-the-server]__10e976f3._.js +1 -1
  141. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agent-questions_page_actions_4b694f8d.js +1 -1
  142. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agent-questions_page_actions_4b694f8d.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agents_[agentType]_page_actions_103679a6.js +1 -1
  144. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agents_[agentType]_page_actions_103679a6.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_projects_[slug]_pages_page_actions_19d50f6c.js +1 -1
  146. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_projects_[slug]_pages_page_actions_19d50f6c.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js +1 -1
  148. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js +1 -1
  150. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  152. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js +1 -1
  154. package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__0af8610a._.js +3 -3
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__0af8610a._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b652a2f._.js +1 -1
  158. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b73253b._.js → [root-of-the-server]__2e388ba3._.js} +2 -2
  159. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b73253b._.js.map → [root-of-the-server]__2e388ba3._.js.map} +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__56cf47e7._.js +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__56cf47e7._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__648730d4._.js +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__68df6415._.js +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__68df6415._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bc6bf96._.js +1 -1
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bc6bf96._.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__9852cb08._.js +2 -2
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__9852cb08._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__a1167cec._.js +1 -1
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__a1167cec._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__a12d0ad7._.js +3 -0
  172. package/web/.next/server/chunks/ssr/{[root-of-the-server]__52ca7f88._.js.map → [root-of-the-server]__a12d0ad7._.js.map} +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba699bec._.js +1 -1
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba699bec._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0741ee1._.js +1 -1
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0fa59e6._.js +1 -1
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0fa59e6._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/[root-of-the-server]__ea26ff90._.js +3 -3
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__ff0095e3._.js +1 -1
  180. package/web/.next/server/chunks/ssr/_07036593._.js +1 -1
  181. package/web/.next/server/chunks/ssr/_07036593._.js.map +1 -1
  182. package/web/.next/server/chunks/ssr/_0d2a7595._.js +1 -1
  183. package/web/.next/server/chunks/ssr/_0d2a7595._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/_101de7c3._.js +1 -1
  185. package/web/.next/server/chunks/ssr/_101de7c3._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/{_db111d21._.js → _10f54ace._.js} +2 -2
  187. package/web/.next/server/chunks/ssr/{_db111d21._.js.map → _10f54ace._.js.map} +1 -1
  188. package/web/.next/server/chunks/ssr/_24fca3cf._.js +1 -1
  189. package/web/.next/server/chunks/ssr/_24fca3cf._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/{_6ff832ad._.js → _2759af76._.js} +2 -2
  191. package/web/.next/server/chunks/ssr/{_6ff832ad._.js.map → _2759af76._.js.map} +1 -1
  192. package/web/.next/server/chunks/ssr/_2bc48f3d._.js +1 -1
  193. package/web/.next/server/chunks/ssr/_2bc48f3d._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/{_fb539286._.js → _2bef1982._.js} +2 -2
  195. package/web/.next/server/chunks/ssr/{_fb539286._.js.map → _2bef1982._.js.map} +1 -1
  196. package/web/.next/server/chunks/ssr/_32f66845._.js +1 -1
  197. package/web/.next/server/chunks/ssr/_408848e6._.js +1 -1
  198. package/web/.next/server/chunks/ssr/_408848e6._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/_40e02782._.js +1 -1
  200. package/web/.next/server/chunks/ssr/_40e02782._.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/_486d45d6._.js +1 -1
  202. package/web/.next/server/chunks/ssr/_486d45d6._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/{_824d5772._.js → _498cba11._.js} +2 -2
  204. package/web/.next/server/chunks/ssr/{_824d5772._.js.map → _498cba11._.js.map} +1 -1
  205. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  206. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/_5cbb0e22._.js +1 -1
  208. package/web/.next/server/chunks/ssr/_5cbb0e22._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/{_5a3edc88._.js → _673be4f1._.js} +2 -2
  210. package/web/.next/server/chunks/ssr/{_5a3edc88._.js.map → _673be4f1._.js.map} +1 -1
  211. package/web/.next/server/chunks/ssr/_7ba67729._.js +1 -1
  212. package/web/.next/server/chunks/ssr/_7ba67729._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/_805ae1aa._.js +1 -1
  214. package/web/.next/server/chunks/ssr/_805ae1aa._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/_87cf18c3._.js +1 -1
  216. package/web/.next/server/chunks/ssr/_87cf18c3._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/_8a700ff4._.js +1 -1
  218. package/web/.next/server/chunks/ssr/_8a700ff4._.js.map +1 -1
  219. package/web/.next/server/chunks/ssr/_95b97274._.js +1 -1
  220. package/web/.next/server/chunks/ssr/_95b97274._.js.map +1 -1
  221. package/web/.next/server/chunks/ssr/{_fbcfaf3a._.js → _9d18d1b1._.js} +2 -2
  222. package/web/.next/server/chunks/ssr/{_fbcfaf3a._.js.map → _9d18d1b1._.js.map} +1 -1
  223. package/web/.next/server/chunks/ssr/{_70ff64a1._.js → _a93687e6._.js} +2 -2
  224. package/web/.next/server/chunks/ssr/{_70ff64a1._.js.map → _a93687e6._.js.map} +1 -1
  225. package/web/.next/server/chunks/ssr/_c2e196ee._.js +1 -1
  226. package/web/.next/server/chunks/ssr/_c2e196ee._.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/_ca3b7bf7._.js +1 -1
  228. package/web/.next/server/chunks/ssr/_ca3b7bf7._.js.map +1 -1
  229. package/web/.next/server/chunks/ssr/_d53224a9._.js +1 -1
  230. package/web/.next/server/chunks/ssr/_d53224a9._.js.map +1 -1
  231. package/web/.next/server/chunks/ssr/_d573dcc2._.js +1 -1
  232. package/web/.next/server/chunks/ssr/_e2671e14._.js +1 -1
  233. package/web/.next/server/chunks/ssr/_e2671e14._.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/_ecd45b17._.js +1 -1
  235. package/web/.next/server/chunks/ssr/_ecd45b17._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/{_f0d45e47._.js → _f46d2018._.js} +2 -2
  237. package/web/.next/server/chunks/ssr/{_f0d45e47._.js.map → _f46d2018._.js.map} +1 -1
  238. package/web/.next/server/chunks/ssr/_f602cc9f._.js +1 -1
  239. package/web/.next/server/chunks/ssr/_f602cc9f._.js.map +1 -1
  240. package/web/.next/server/chunks/ssr/{_20a56008._.js → _f71954a5._.js} +2 -2
  241. package/web/.next/server/chunks/ssr/{_20a56008._.js.map → _f71954a5._.js.map} +1 -1
  242. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  243. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  244. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  245. package/web/.next/server/chunks/ssr/src_presentation_web_0e291f0b._.js +1 -1
  246. package/web/.next/server/chunks/ssr/src_presentation_web_0e291f0b._.js.map +1 -1
  247. package/web/.next/server/chunks/ssr/{src_presentation_web_40673f0c._.js → src_presentation_web_16c83ab4._.js} +2 -2
  248. package/web/.next/server/chunks/ssr/{src_presentation_web_40673f0c._.js.map → src_presentation_web_16c83ab4._.js.map} +1 -1
  249. package/web/.next/server/chunks/ssr/src_presentation_web_1d8d177f._.js +1 -1
  250. package/web/.next/server/chunks/ssr/src_presentation_web_1d8d177f._.js.map +1 -1
  251. package/web/.next/server/chunks/ssr/src_presentation_web_450b58fc._.js +1 -1
  252. package/web/.next/server/chunks/ssr/src_presentation_web_450b58fc._.js.map +1 -1
  253. package/web/.next/server/chunks/ssr/src_presentation_web_47727150._.js +1 -1
  254. package/web/.next/server/chunks/ssr/src_presentation_web_47727150._.js.map +1 -1
  255. package/web/.next/server/chunks/ssr/src_presentation_web_64fcfc84._.js +1 -1
  256. package/web/.next/server/chunks/ssr/src_presentation_web_64fcfc84._.js.map +1 -1
  257. package/web/.next/server/chunks/ssr/src_presentation_web_74b7bdb2._.js +1 -1
  258. package/web/.next/server/chunks/ssr/src_presentation_web_74b7bdb2._.js.map +1 -1
  259. package/web/.next/server/chunks/ssr/src_presentation_web_82aeca34._.js +1 -1
  260. package/web/.next/server/chunks/ssr/src_presentation_web_82aeca34._.js.map +1 -1
  261. package/web/.next/server/chunks/ssr/src_presentation_web_8a564d47._.js +1 -1
  262. package/web/.next/server/chunks/ssr/src_presentation_web_8a564d47._.js.map +1 -1
  263. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +1 -1
  264. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +1 -1
  265. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_f4f3fad9.js +1 -1
  266. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_f4f3fad9.js.map +1 -1
  267. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_agents_page_actions_d4bd4711.js +1 -1
  268. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_agents_page_actions_d4bd4711.js.map +1 -1
  269. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_onboarding_page_actions_bb695e8d.js +1 -1
  270. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_onboarding_page_actions_bb695e8d.js.map +1 -1
  271. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_ac47e420.js +1 -1
  272. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_ac47e420.js.map +1 -1
  273. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_projects_page_actions_c91a23a8.js +1 -1
  274. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_projects_page_actions_c91a23a8.js.map +1 -1
  275. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_63c2d912.js +1 -1
  276. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_63c2d912.js.map +1 -1
  277. package/web/.next/server/chunks/ssr/src_presentation_web_a53a3da6._.js +1 -1
  278. package/web/.next/server/chunks/ssr/src_presentation_web_a53a3da6._.js.map +1 -1
  279. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_246617fe._.js +3 -3
  280. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js +1 -1
  281. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js.map +1 -1
  282. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +1 -1
  283. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js +1 -1
  284. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js.map +1 -1
  285. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +1 -1
  286. package/web/.next/server/chunks/ssr/src_presentation_web_b1b3c26c._.js +1 -1
  287. package/web/.next/server/chunks/ssr/src_presentation_web_b1b3c26c._.js.map +1 -1
  288. package/web/.next/server/chunks/ssr/src_presentation_web_b98a4353._.js +1 -1
  289. package/web/.next/server/chunks/ssr/src_presentation_web_b98a4353._.js.map +1 -1
  290. package/web/.next/server/chunks/ssr/src_presentation_web_c96ca051._.js +1 -1
  291. package/web/.next/server/chunks/ssr/src_presentation_web_c96ca051._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/{src_presentation_web_e812a69b._.js → src_presentation_web_cb0d2c28._.js} +2 -2
  293. package/web/.next/server/chunks/ssr/{src_presentation_web_e812a69b._.js.map → src_presentation_web_cb0d2c28._.js.map} +1 -1
  294. package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js +1 -1
  295. package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js.map +1 -1
  296. package/web/.next/server/chunks/ssr/src_presentation_web_components_agent-editor_agent-editor-tabs_tsx_d5a954b4._.js +1 -1
  297. package/web/.next/server/chunks/ssr/src_presentation_web_components_agent-editor_agent-editor-tabs_tsx_d5a954b4._.js.map +1 -1
  298. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  299. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  300. package/web/.next/server/chunks/ssr/src_presentation_web_d3858f16._.js +1 -1
  301. package/web/.next/server/chunks/ssr/src_presentation_web_d3858f16._.js.map +1 -1
  302. package/web/.next/server/chunks/ssr/src_presentation_web_d7f8130c._.js +1 -1
  303. package/web/.next/server/chunks/ssr/src_presentation_web_d7f8130c._.js.map +1 -1
  304. package/web/.next/server/chunks/ssr/src_presentation_web_dddd8ccd._.js +1 -1
  305. package/web/.next/server/chunks/ssr/src_presentation_web_dddd8ccd._.js.map +1 -1
  306. package/web/.next/server/chunks/ssr/src_presentation_web_e13d58b0._.js +1 -1
  307. package/web/.next/server/chunks/ssr/src_presentation_web_e13d58b0._.js.map +1 -1
  308. package/web/.next/server/chunks/ssr/src_presentation_web_ee94a9aa._.js +1 -1
  309. package/web/.next/server/chunks/ssr/src_presentation_web_ee94a9aa._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/src_presentation_web_f0fcfdff._.js +1 -1
  311. package/web/.next/server/chunks/ssr/src_presentation_web_f0fcfdff._.js.map +1 -1
  312. package/web/.next/server/chunks/ssr/src_presentation_web_f17e8516._.js +1 -1
  313. package/web/.next/server/chunks/ssr/src_presentation_web_f17e8516._.js.map +1 -1
  314. package/web/.next/server/chunks/ssr/src_presentation_web_f7180fec._.js +1 -1
  315. package/web/.next/server/chunks/ssr/src_presentation_web_f7180fec._.js.map +1 -1
  316. package/web/.next/server/pages/500.html +2 -2
  317. package/web/.next/server/server-reference-manifest.js +1 -1
  318. package/web/.next/server/server-reference-manifest.json +111 -111
  319. package/web/.next/static/chunks/{5faa828877b1e669.js → 03dda23205877d8b.js} +1 -1
  320. package/web/.next/static/chunks/{4bf4f333302e24a4.js → 054e3a5f5ff4db71.js} +1 -1
  321. package/web/.next/static/chunks/{a868014dbe1b4e42.js → 06e58041911c290b.js} +1 -1
  322. package/web/.next/static/chunks/{b5ff852fee23795d.js → 089ef5b749d79ebd.js} +1 -1
  323. package/web/.next/static/chunks/{1a093b13a9d6952e.js → 0d106010c498c198.js} +2 -2
  324. package/web/.next/static/chunks/193e5a0540757f5e.js +1 -0
  325. package/web/.next/static/chunks/{9abc3e68af98e636.js → 25111a2f2597f500.js} +1 -1
  326. package/web/.next/static/chunks/285e724d07901ef6.js +1 -0
  327. package/web/.next/static/chunks/{3c396f63ebefe875.js → 2b2bfc0465b18a7d.js} +1 -1
  328. package/web/.next/static/chunks/{6af99a08ccacdbce.js → 2b436562e69d2827.js} +1 -1
  329. package/web/.next/static/chunks/{8c96a835b3b0dc44.js → 2e3844d0ac487ac7.js} +1 -1
  330. package/web/.next/static/chunks/325859b8a9482427.js +1 -0
  331. package/web/.next/static/chunks/{2773e7b2587bc9cc.js → 44ab458ceb89d85d.js} +1 -1
  332. package/web/.next/static/chunks/4fdf36904f5421a6.js +1 -0
  333. package/web/.next/static/chunks/59004c65d552581c.js +1 -0
  334. package/web/.next/static/chunks/{0edcdc8a2dd06b7a.js → 5c4837e88a3431b8.js} +1 -1
  335. package/web/.next/static/chunks/{a131f868af7f1f7c.js → 74cdd562eb663f72.js} +1 -1
  336. package/web/.next/static/chunks/{0315591c972888a6.js → 7670d76d4ee743e6.js} +1 -1
  337. package/web/.next/static/chunks/{02d88da9fd656fcd.js → 83fc784ce05a701e.js} +1 -1
  338. package/web/.next/static/chunks/{460cedaa85c821e7.js → 8dd4fdd20b103a66.js} +1 -1
  339. package/web/.next/static/chunks/9336bdc7fc319282.js +1 -0
  340. package/web/.next/static/chunks/9d285565922b2de7.js +1 -0
  341. package/web/.next/static/chunks/{45eeca36eabbed23.js → 9f7f2a11937d87eb.js} +1 -1
  342. package/web/.next/static/chunks/{c3931fdbae836be6.js → a7c7bcfb6f7696a3.js} +1 -1
  343. package/web/.next/static/chunks/{9f7985e2a73929a2.js → a8f57d2a12849f32.js} +1 -1
  344. package/web/.next/static/chunks/{0e1c933065a1100a.js → abe98954ccdf29db.js} +1 -1
  345. package/web/.next/static/chunks/{4378715fa2b5e7de.js → b05808da85e8b34c.js} +1 -1
  346. package/web/.next/static/chunks/{b5dc7979d66caa38.js → b5f83e5e1dad23d5.js} +1 -1
  347. package/web/.next/static/chunks/{6d2074fa3453d333.js → b8293a56f257e5a2.js} +1 -1
  348. package/web/.next/static/chunks/{bc5b87e4068ba11d.js → c61c5e97c76dc733.js} +1 -1
  349. package/web/.next/static/chunks/c6b411bf31744ca7.js +1 -0
  350. package/web/.next/static/chunks/{bdaa907bf3d1d932.js → c732d6cc4c5e4343.js} +1 -1
  351. package/web/.next/static/chunks/{25a200f055ae5cba.js → d214d6a670f48d79.js} +1 -1
  352. package/web/.next/static/chunks/{6901861cb53ab483.js → d7b17a93a26e97c8.js} +1 -1
  353. package/web/.next/static/chunks/{a0325f77bbccc63d.js → d8f14fac959a6bd0.js} +1 -1
  354. package/web/.next/static/chunks/{24ea54516dc249c0.js → d98912f5b6cf4938.js} +1 -1
  355. package/web/.next/static/chunks/{21500b3fe3754296.js → df79667c16344317.js} +1 -1
  356. package/web/.next/static/chunks/{05e8df10619fb980.js → ec8f19328ad1ecd4.js} +1 -1
  357. package/web/.next/static/chunks/{e6e6ba783b2e4d14.js → f0157331838ac962.js} +1 -1
  358. package/web/.next/static/chunks/{c687ed21b9518d73.js → f757d865fae71faf.js} +1 -1
  359. package/web/.next/static/chunks/fb3cbb7f575a7128.js +1 -0
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__52ca7f88._.js +0 -3
  361. package/web/.next/static/chunks/03d7b81c2554d52f.js +0 -1
  362. package/web/.next/static/chunks/15acdaaea57bb459.js +0 -1
  363. package/web/.next/static/chunks/39fe1c1397d5483b.js +0 -1
  364. package/web/.next/static/chunks/495883829026f13f.js +0 -1
  365. package/web/.next/static/chunks/4b3a4f416a6eb1ac.js +0 -1
  366. package/web/.next/static/chunks/4b4160f36cf2a3d6.js +0 -1
  367. package/web/.next/static/chunks/7269537b2188650d.js +0 -1
  368. package/web/.next/static/chunks/b1534b2f3d814fef.js +0 -1
  369. package/web/.next/static/chunks/f6dc1ba364203bb2.js +0 -1
  370. /package/web/.next/static/{My4IQDygZ4BFTXkkKanja → 9zd-B2rWybTaAgE74IKiK}/_buildManifest.js +0 -0
  371. /package/web/.next/static/{My4IQDygZ4BFTXkkKanja → 9zd-B2rWybTaAgE74IKiK}/_clientMiddlewareManifest.json +0 -0
  372. /package/web/.next/static/{My4IQDygZ4BFTXkkKanja → 9zd-B2rWybTaAgE74IKiK}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/search.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../src/presentation/web/components/common/base-drawer/base-drawer.tsx","../../../../../../../src/presentation/web/components/common/action-button/action-button.tsx","../../../../../../../src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.tsx","../../../../../../../src/presentation/web/components/common/server-log-viewer/server-log-viewer.tsx","../../../../../../../src/presentation/web/app/actions/data%3Ad30714%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/hooks/use-deployment-logs.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/refresh-cw.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-branch.ts","../../../../../../../src/presentation/web/app/actions/data%3A9f7346%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/code-xml.ts","../../../../../../../src/presentation/web/app/actions/data%3A6e4b87%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A72159b%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/archive.ts"],"sourcesContent":["export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTloOCIgLz4KICA8cGF0aCBkPSJtNCAxNyA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","'use client';\n\nimport { useRef, useEffect } from 'react';\nimport { XIcon, Play, Square } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { ActionButton } from '@/components/common/action-button';\nimport { DeploymentStatusBadge } from '@/components/common/deployment-status-badge';\nimport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerOverlay,\n DrawerTitle,\n DrawerDescription,\n} from '@/components/ui/drawer';\nimport { Separator } from '@/components/ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { useTranslation } from 'react-i18next';\nimport { useDeployAction, type DeployActionInput } from '@/hooks/use-deploy-action';\nimport { useFeatureFlags } from '@/hooks/feature-flags-context';\n\nconst drawerVariants = cva('', {\n variants: {\n size: {\n sm: 'w-96',\n md: 'w-2xl',\n lg: 'w-[772px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n});\n\nexport interface BaseDrawerProps extends VariantProps<typeof drawerVariants> {\n open: boolean;\n onClose: () => void;\n modal?: boolean;\n /** When true, clicking anywhere outside the drawer closes it, ignoring `data-no-drawer-close` guards. */\n dismissOnOutsideClick?: boolean;\n title?: string;\n header?: React.ReactNode;\n children: React.ReactNode;\n footer?: React.ReactNode;\n className?: string;\n 'data-testid'?: string;\n deployTarget?: DeployActionInput;\n}\n\nexport function BaseDrawer({\n open,\n onClose,\n modal = false,\n dismissOnOutsideClick = false,\n title = 'Drawer',\n size,\n header,\n children,\n footer,\n className,\n 'data-testid': testId,\n deployTarget,\n}: BaseDrawerProps) {\n const { i18n } = useTranslation();\n const featureFlags = useFeatureFlags();\n const contentRef = useRef<HTMLDivElement>(null);\n const drawerDirection = i18n.dir() === 'rtl' ? 'left' : 'right';\n\n // Close when clicking outside the drawer panel (no overlay needed — canvas stays draggable).\n // Uses `click` (not `pointerdown`) so canvas drags don't trigger this.\n useEffect(() => {\n if (!open || modal) return;\n\n const handleClick = (e: MouseEvent) => {\n const target = e.target as Element;\n // If the clicked element was unmounted by React before the event reached\n // the document (e.g. a \"Next\" button removed on the last step), it is no\n // longer in the DOM tree — treat it as an internal click, not an outside one.\n if (!document.body.contains(target)) return;\n if (contentRef.current?.contains(target)) return;\n // Don't close when clicking inside Radix overlays.\n // When dismissOnOutsideClick is false (default), also respect data-no-drawer-close guards.\n const ignoreSelector = dismissOnOutsideClick\n ? '[role=\"alertdialog\"], [role=\"dialog\"], [role=\"menu\"], [role=\"listbox\"], [data-radix-popper-content-wrapper]'\n : '[data-no-drawer-close], [role=\"alertdialog\"], [role=\"dialog\"], [role=\"menu\"], [role=\"listbox\"], [data-radix-popper-content-wrapper]';\n if (target.closest(ignoreSelector)) return;\n onClose();\n };\n\n document.addEventListener('click', handleClick);\n return () => document.removeEventListener('click', handleClick);\n }, [open, modal, onClose, dismissOnOutsideClick]);\n\n return (\n <Drawer\n direction={drawerDirection}\n modal={modal}\n handleOnly\n open={open}\n onOpenChange={(isOpen) => {\n if (!isOpen) onClose();\n }}\n >\n {modal ? <DrawerOverlay /> : null}\n <DrawerContent\n ref={contentRef}\n direction={drawerDirection}\n showCloseButton={false}\n className={cn(\n drawerVariants({ size }),\n 'bg-white/85 backdrop-blur-xl dark:bg-neutral-800/85',\n className\n )}\n data-testid={testId}\n onInteractOutside={modal ? undefined : (e) => e.preventDefault()}\n >\n {/* Visually hidden title & description required by Radix Dialog for accessibility */}\n <DrawerTitle asChild>\n <span className=\"sr-only\">{title}</span>\n </DrawerTitle>\n <DrawerDescription asChild>\n <span className=\"sr-only\">{title}</span>\n </DrawerDescription>\n\n {/* Close button */}\n <button\n type=\"button\"\n aria-label=\"Close\"\n onClick={onClose}\n className=\"ring-offset-background focus:ring-ring absolute end-3 top-2 z-50 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden\"\n data-testid={testId ? `${testId}-close-button` : undefined}\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </button>\n\n {/* Header slot */}\n {header ? <DrawerHeader className=\"shrink-0\">{header}</DrawerHeader> : null}\n\n {/* Separator between header and content — matches review drawer style */}\n {header ? <Separator /> : null}\n\n {/* Dev server bar — rendered when deployTarget is provided and env deploy is enabled */}\n {featureFlags.envDeploy && deployTarget ? <DeployBar deployTarget={deployTarget} /> : null}\n\n {/* Scrollable content area. Consumers should add p-4 for consistent spacing. */}\n {/* Footer components like DrawerActionBar typically include border-t. */}\n <div className=\"flex min-h-0 flex-1 flex-col overflow-hidden\">{children}</div>\n\n {/* Footer slot */}\n {footer ? <DrawerFooter className=\"shrink-0\">{footer}</DrawerFooter> : null}\n </DrawerContent>\n </Drawer>\n );\n}\n\nfunction DeployBar({ deployTarget }: { deployTarget: DeployActionInput }) {\n const deployAction = useDeployAction(deployTarget);\n const isDeploymentActive = deployAction.status === 'Booting' || deployAction.status === 'Ready';\n\n return (\n <div data-testid=\"base-drawer-deploy-bar\" className=\"flex items-center gap-2 px-4 pt-3 pb-3\">\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span>\n <ActionButton\n label={isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server'}\n onClick={isDeploymentActive ? deployAction.stop : deployAction.deploy}\n loading={deployAction.deployLoading || deployAction.stopLoading}\n error={!!deployAction.deployError}\n icon={isDeploymentActive ? Square : Play}\n iconOnly\n variant=\"outline\"\n size=\"icon-sm\"\n />\n </span>\n </TooltipTrigger>\n <TooltipContent>\n {isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server'}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n {isDeploymentActive ? (\n <DeploymentStatusBadge\n status={deployAction.status}\n url={deployAction.url}\n targetId={deployTarget.targetId}\n />\n ) : null}\n </div>\n );\n}\n","'use client';\n\nimport type { LucideIcon } from 'lucide-react';\nimport { Loader2, CircleAlert } from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { useSoundAction } from '@/hooks/use-sound-action';\n\nexport interface ActionButtonProps {\n label: string;\n onClick: () => void;\n loading: boolean;\n error: boolean;\n icon: LucideIcon;\n /** When true, omits label text — label is still used as aria-label. */\n iconOnly?: boolean;\n /** Button variant. @default 'outline' */\n variant?: 'outline' | 'ghost' | 'default' | 'destructive' | 'secondary' | 'link';\n /** Button size. @default 'sm' */\n size?: 'default' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg';\n}\n\nexport function ActionButton({\n label,\n onClick,\n loading,\n error,\n icon: Icon,\n iconOnly = false,\n variant = 'outline',\n size = 'sm',\n}: ActionButtonProps) {\n const clickSound = useSoundAction('click');\n\n const handleClick = () => {\n clickSound.play();\n onClick();\n };\n\n return (\n <Button\n variant={variant}\n size={size}\n aria-label={label}\n disabled={loading}\n onClick={handleClick}\n className={cn(\n 'gap-1.5',\n error && 'text-destructive hover:text-destructive',\n !error &&\n iconOnly &&\n variant === 'ghost' &&\n 'text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500'\n )}\n >\n {loading ? (\n <Loader2 className=\"size-4 animate-spin\" />\n ) : error ? (\n <CircleAlert className=\"size-4\" />\n ) : (\n <Icon className=\"size-4\" />\n )}\n {iconOnly ? null : label}\n </Button>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport { Loader2, ExternalLink, Terminal } from 'lucide-react';\nimport { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { ServerLogViewer } from '@/components/common/server-log-viewer';\n\nexport interface DeploymentStatusBadgeProps {\n status: DeploymentState | null;\n url?: string | null;\n targetId?: string;\n}\n\nconst tbBtn =\n 'text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-7 items-center justify-center rounded-[3px]';\n\nexport function DeploymentStatusBadge({ status, url, targetId }: DeploymentStatusBadgeProps) {\n const [logViewerOpen, setLogViewerOpen] = useState(false);\n const showLogButton =\n targetId && (status === DeploymentState.Booting || status === DeploymentState.Ready);\n\n switch (status) {\n case DeploymentState.Booting:\n return (\n <>\n <div className=\"flex items-center gap-1 pl-1\">\n <Loader2 className=\"size-3 animate-spin text-blue-500\" />\n <span className=\"text-muted-foreground text-[11px]\">Starting...</span>\n {showLogButton ? (\n <TooltipProvider delayDuration={300}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label=\"View server logs\"\n className={tbBtn}\n onClick={(e) => {\n e.stopPropagation();\n setLogViewerOpen(true);\n }}\n >\n <Terminal className=\"size-3.5\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\" className=\"text-xs\">\n Server logs\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ) : null}\n </div>\n {showLogButton ? (\n <ServerLogViewer\n open={logViewerOpen}\n onOpenChange={setLogViewerOpen}\n targetId={targetId}\n />\n ) : null}\n </>\n );\n case DeploymentState.Ready:\n return (\n <>\n <div className=\"flex translate-y-px items-center gap-1 pl-1\">\n <span className=\"inline-block size-1.5 rounded-full bg-green-500\" />\n {url ? (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-0.5 text-[11px] text-green-600 hover:text-green-500 dark:text-green-400 dark:hover:text-green-300\"\n onClick={(e) => e.stopPropagation()}\n >\n {url}\n <ExternalLink className=\"size-2.5 shrink-0\" />\n </a>\n ) : (\n <span className=\"text-[11px] text-green-600 dark:text-green-400\">Ready</span>\n )}\n {showLogButton ? (\n <TooltipProvider delayDuration={300}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label=\"View server logs\"\n className={tbBtn}\n onClick={(e) => {\n e.stopPropagation();\n setLogViewerOpen(true);\n }}\n >\n <Terminal className=\"size-3.5\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\" className=\"text-xs\">\n Server logs\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ) : null}\n </div>\n {showLogButton ? (\n <ServerLogViewer\n open={logViewerOpen}\n onOpenChange={setLogViewerOpen}\n targetId={targetId}\n />\n ) : null}\n </>\n );\n default:\n return null;\n }\n}\n","'use client';\n\nimport { useRef, useEffect, useCallback } from 'react';\nimport { Terminal } from 'lucide-react';\nimport type { LogEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog';\nimport { useDeploymentLogs } from '@/hooks/use-deployment-logs';\n\nexport interface ServerLogViewerProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n targetId: string;\n}\n\nexport interface ServerLogViewerContentProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n logs: LogEntry[];\n isConnected: boolean;\n}\n\nconst AUTO_SCROLL_THRESHOLD = 50;\n\nexport function ServerLogViewer({ open, onOpenChange, targetId }: ServerLogViewerProps) {\n const { logs, isConnected } = useDeploymentLogs(open ? targetId : null);\n\n return (\n <ServerLogViewerContent\n open={open}\n onOpenChange={onOpenChange}\n logs={logs}\n isConnected={isConnected}\n />\n );\n}\n\nexport function ServerLogViewerContent({\n open,\n onOpenChange,\n logs,\n isConnected,\n}: ServerLogViewerContentProps) {\n const scrollRef = useRef<HTMLDivElement>(null);\n const isAtBottomRef = useRef(true);\n\n const handleScroll = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n isAtBottomRef.current =\n el.scrollTop + el.clientHeight >= el.scrollHeight - AUTO_SCROLL_THRESHOLD;\n }, []);\n\n useEffect(() => {\n if (isAtBottomRef.current && scrollRef.current) {\n scrollRef.current.scrollTop = scrollRef.current.scrollHeight;\n }\n }, [logs]);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className=\"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg\"\n aria-describedby={undefined}\n >\n <DialogHeader className=\"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <Terminal className=\"h-4 w-4 text-zinc-400\" />\n <DialogTitle className=\"text-sm font-medium text-zinc-100\">Server Logs</DialogTitle>\n </div>\n <div className=\"flex items-center gap-2 pe-8\">\n <span\n className={`inline-block h-2 w-2 rounded-full ${isConnected ? 'bg-green-500' : 'bg-zinc-500'}`}\n />\n <span className=\"text-xs text-zinc-400\">\n {isConnected ? 'Connected' : 'Disconnected'}\n </span>\n </div>\n </DialogHeader>\n\n <div\n ref={scrollRef}\n onScroll={handleScroll}\n className=\"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed\"\n >\n {logs.length === 0 ? (\n <p className=\"text-zinc-500\">Waiting for log output...</p>\n ) : (\n logs.map((entry) => (\n <LogLine key={`${entry.timestamp}-${entry.stream}-${entry.line}`} entry={entry} />\n ))\n )}\n {!isConnected && logs.length > 0 && (\n <div className=\"mt-2 border-t border-zinc-800 pt-2 text-zinc-500\">[Server stopped]</div>\n )}\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction LogLine({ entry }: { entry: LogEntry }) {\n return (\n <div\n data-stream={entry.stream}\n className={entry.stream === 'stderr' ? 'text-red-400' : 'text-zinc-200'}\n >\n <span className=\"break-all whitespace-pre-wrap\">{entry.line}</span>\n </div>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"405723722c9eb9b4888b52203cfb121401f0c61a80\":\"getDeploymentLogs\"},\"src/presentation/web/app/actions/get-deployment-logs.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"405723722c9eb9b4888b52203cfb121401f0c61a80\",callServer,void 0,findSourceMapURL,\"getDeploymentLogs\");export{$$RSC_SERVER_ACTION_0 as getDeploymentLogs};","'use client';\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport type { LogEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport { getDeploymentLogs } from '@/app/actions/get-deployment-logs';\n\nexport interface UseDeploymentLogsResult {\n logs: LogEntry[];\n isConnected: boolean;\n}\n\nexport function useDeploymentLogs(targetId: string | null | undefined): UseDeploymentLogsResult {\n const [logs, setLogs] = useState<LogEntry[]>([]);\n const [isConnected, setIsConnected] = useState(false);\n const eventSourceRef = useRef<EventSource | null>(null);\n\n const cleanup = useCallback(() => {\n if (eventSourceRef.current) {\n eventSourceRef.current.close();\n eventSourceRef.current = null;\n }\n setIsConnected(false);\n }, []);\n\n useEffect(() => {\n if (!targetId) {\n setLogs([]);\n setIsConnected(false);\n return;\n }\n\n // Fetch initial logs\n getDeploymentLogs(targetId)\n .then((initialLogs) => {\n if (initialLogs) {\n setLogs(initialLogs);\n }\n })\n .catch(() => {\n // Initial fetch failed — logs stay empty, SSE will still connect\n });\n\n // Connect EventSource for live updates\n const es = new EventSource(`/api/deployment-logs?targetId=${targetId}`);\n eventSourceRef.current = es;\n\n es.onopen = () => {\n setIsConnected(true);\n };\n\n es.addEventListener('log', (event: MessageEvent) => {\n const entry: LogEntry = JSON.parse(event.data);\n setLogs((prev) => [...prev, entry]);\n });\n\n es.onerror = () => {\n setIsConnected(false);\n };\n\n return () => {\n es.close();\n eventSourceRef.current = null;\n };\n }, [targetId, cleanup]);\n\n return { logs, isConnected };\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8', key: 'v9h5vc' }],\n ['path', { d: 'M21 3v5h-5', key: '1q7to0' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16', key: '3uifl3' }],\n ['path', { d: 'M8 16H3v5', key: '1cv678' }],\n];\n\n/**\n * @component @name RefreshCw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RefreshCw = createLucideIcon('refresh-cw', __iconNode);\n\nexport default RefreshCw;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '6', x2: '6', y1: '3', y2: '15', key: '17qcm7' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M18 9a9 9 0 0 1-9 9', key: 'n2h4wq' }],\n];\n\n/**\n * @component @name GitBranch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjYiIHkxPSIzIiB5Mj0iMTUiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTggOWE5IDkgMCAwIDEtOSA5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitBranch = createLucideIcon('git-branch', __iconNode);\n\nexport default GitBranch;\n","/* __next_internal_action_entry_do_not_use__ [{\"40e7ea921079c1a8fe79fc7cfb59743f718c5944f7\":\"openFolder\"},\"src/presentation/web/app/actions/open-folder.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40e7ea921079c1a8fe79fc7cfb59743f718c5944f7\",callServer,void 0,findSourceMapURL,\"openFolder\");export{$$RSC_SERVER_ACTION_0 as openFolder};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4', key: '1inbqp' }],\n ['path', { d: 'm6 8-4 4 4 4', key: '15zrgr' }],\n ['path', { d: 'm14.5 4-5 16', key: 'e7oirm' }],\n];\n\n/**\n * @component @name CodeXml\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CodeXml = createLucideIcon('code-xml', __iconNode);\n\nexport default CodeXml;\n","/* __next_internal_action_entry_do_not_use__ [{\"40ab7fa1f69e2aec8b94563e16d0019f3589ec2f2e\":\"openIde\"},\"src/presentation/web/app/actions/open-ide.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40ab7fa1f69e2aec8b94563e16d0019f3589ec2f2e\",callServer,void 0,findSourceMapURL,\"openIde\");export{$$RSC_SERVER_ACTION_0 as openIde};","/* __next_internal_action_entry_do_not_use__ [{\"40b95792d8bb0de2aa9914ff42b671ff42b87c24ba\":\"openShell\"},\"src/presentation/web/app/actions/open-shell.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40b95792d8bb0de2aa9914ff42b671ff42b87c24ba\",callServer,void 0,findSourceMapURL,\"openShell\");export{$$RSC_SERVER_ACTION_0 as openShell};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1', key: '1wp1u1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8', key: '1s80jp' }],\n ['path', { d: 'M10 12h4', key: 'a56b0p' }],\n];\n\n/**\n * @component @name Archive\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Archive = createLucideIcon('archive', __iconNode);\n\nexport default Archive;\n"],"names":[],"mappings":"wCAAA,EAAA,CAAA,CAAA,yCCmBA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAS,CAAT,AAAS,CAAT,AAAS,CAAT,AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBI,CAgBM,AAfxC,CAAC,AAeuC,CAfvC,AAeuC,CAfvC,AAeuC,CAAA,AAfvC,CAAA,AAeuC,CAAA,AAfvC,CAeuC,AAfvC,CAeuC,AAfvC,AAAQ,CAAA,AAe+B,AAf7B,CAeuC,CAfpC,AAeoC,CAfpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,AAApB,CAAoB,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACjD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAU,CAAE,CAAA,CAAA,CAAA,AAAI,IAAA,CAAA,AAAM,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAA,CAAA,AAAG,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC1D,wDCaA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAW,CAAA,CAAA,CAAX,AAAW,CAAX,AAAW,CAAA,AAAX,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBE,CAgBU,AAf5C,CAe4C,AAf3C,CAAA,AAe2C,CAf3C,AAe2C,CAf3C,AAe2C,CAf3C,AAe2C,CAf3C,AAe2C,CAAA,AAf3C,CAAA,AAAQ,AAemC,CAfnC,AAAE,AAeiC,CAAU,CAfxC,AAewC,CAfxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAiB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAChD,wGCJA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QCFA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAgBO,SAAS,EAAa,OAC3B,CAAK,SACL,CAAO,SACP,CAAO,CACP,OAAK,CACL,KAAM,CAAI,UACV,GAAW,CAAK,SAChB,EAAU,SAAS,CACnB,OAAO,IAAI,CACO,EAClB,IAAM,EAAa,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,SAOlC,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAAS,EACT,KAAM,EACN,aAAY,EACZ,SAAU,EACV,QAXgB,CAWP,IAVX,EAAW,IAAI,GACf,GACF,EASI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,UACA,GAAS,0CACT,CAAC,GACC,GACY,UAAZ,GACA,qGAGH,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAAC,UAAU,wBACjB,EACF,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,UAAU,WAEvB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAK,UAAU,WAEjB,EAAW,KAAO,IAGzB,mDC9DA,IAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QCAA,EAAA,EAAA,CAAA,CAAA,QCLiN,EAAA,EAAA,CAAA,CAAA,QAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,qBDuB/b,SAAS,EAAgB,MAAE,CAAI,cAAE,CAAY,UAAE,CAAQ,CAAwB,EACpF,GAAM,CAAE,MAAI,CAAE,aAAW,CAAE,CEbtB,AFayB,SEbhB,AAAkB,CAAmC,EACnE,GAAM,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAqB,EAAE,EACzC,CAAC,EAAa,EAAe,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GACzC,EAAiB,CAAA,EAAA,EAAA,MAAA,AAAM,EAAqB,MAE5C,EAAU,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,KACtB,EAAe,OAAO,EAAE,CAC1B,EAAe,OAAO,CAAC,KAAK,GAC5B,EAAe,OAAO,CAAG,MAE3B,GAAe,EACjB,EAAG,EAAE,EA2CL,MAzCA,CAAA,EAAA,EAAA,SAAS,AAAT,EAAU,KACR,GAAI,CAAC,EAAU,CACb,EAAQ,EAAE,EACV,GAAe,GACf,MACF,CAGA,EAAkB,GACf,IAAI,CAAC,AAAC,IACD,GACF,EAAQ,EAEZ,GACC,GAJkB,EAIb,CAAC,KAEP,GAGF,IAAM,EAAK,IAAI,YAAY,CAAC,8BAA8B,EAAE,EAAA,CAAU,EAgBtE,OAfA,EAAe,OAAO,CAAG,EAEzB,EAAG,MAAM,CAAG,KACV,GAAe,EACjB,EAEA,EAAG,gBAAgB,CAAC,MAAO,AAAC,IAC1B,IAAM,EAAkB,KAAK,KAAK,CAAC,EAAM,IAAI,EAC7C,EAAQ,AAAC,GAAS,IAAI,EAAM,EAAM,CACpC,GAEA,EAAG,OAAO,CAAG,KACX,GAAe,EACjB,EAEO,KACL,EAAG,KAAK,GACR,EAAe,OAAO,CAAG,IAC3B,CACF,EAAG,CAAC,EAAU,EAAQ,EAEf,MAAE,cAAM,CAAY,CAC7B,EF1CkD,EAAO,EAAW,MAElE,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,KAAM,EACN,aAAc,EACd,KAAM,EACN,YAAa,GAGnB,CAEO,SAAS,EAAuB,MACrC,CAAI,cACJ,CAAY,MACZ,CAAI,aACJ,CAAW,CACiB,EAC5B,IAAM,EAAY,CAAA,EAAA,EAAA,MAAA,AAAM,EAAiB,MACnC,EAAgB,CAAA,EAAA,EAAA,MAAA,AAAM,EAAC,IAEvB,EAAe,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,KAC/B,IAAM,EAAK,EAAU,OAAO,CACvB,IAAI,AACT,EAAc,OAAO,CACnB,EAAG,SAAS,CAAG,EAAG,YAAY,EAAI,EAAG,YAAY,CA5BzB,EA4B4B,CACxD,EAAG,EAAE,EAQL,MANA,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACJ,EAAc,OAAO,EAAI,EAAU,OAAO,EAAE,CAC9C,EAAU,OAAO,CAAC,SAAS,CAAG,EAAU,OAAO,CAAC,YAAA,AAAY,CAEhE,EAAG,CAAC,EAAK,EAGP,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,KAAM,EAAM,aAAc,WAChC,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,aAAa,CAAA,CACZ,UAAU,gJACV,mBAAkB,iBAElB,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,YAAY,CAAA,CAAC,UAAU,0FACtB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CAAC,UAAU,0BACpB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,UAAU,6CAAoC,mBAE7D,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,yCACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAC,kCAAkC,EAAE,EAAc,eAAiB,cAAA,CAAe,GAEhG,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,iCACb,EAAc,YAAc,uBAKnC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACC,IAAK,EACL,SAAU,EACV,UAAU,uEAET,AAAgB,MAAX,MAAM,CACV,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,yBAAgB,8BAE7B,EAAK,GAAG,CAAC,AAAC,GACR,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAiE,MAAO,GAA3D,CAAA,EAAG,EAAM,SAAS,CAAC,CAAC,EAAE,EAAM,MAAM,CAAC,CAAC,EAAE,EAAM,IAAI,CAAA,CAAE,GAGnE,CAAC,GAAe,EAAK,MAAM,CAAG,GAC7B,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,4DAAmD,4BAM9E,CAEA,SAAS,EAAQ,OAAE,CAAK,CAAuB,EAC7C,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,cAAa,EAAM,MAAM,CACzB,UAAW,AAAiB,aAAX,MAAM,CAAgB,eAAiB,yBAExD,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,yCAAiC,EAAM,IAAI,IAGjE,CD/FA,IAAM,EACJ,iIAEK,SAAS,EAAsB,QAAE,CAAM,KAAE,CAAG,UAAE,CAAQ,CAA8B,EACzF,GAAM,CAAC,EAAe,EAAiB,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GAC7C,EACJ,IAAa,IAAW,EAAA,EAAZ,aAA2B,CAAC,OAAO,EAAI,IAAW,EAAA,eAAe,CAAC,KAAA,AAAK,EAErF,OAAQ,GACN,KAAK,EAAA,eAAe,CAAC,OAAO,CAC1B,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,yCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAAC,UAAU,sCACnB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,6CAAoC,gBACnD,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,eAAe,CAAA,CAAC,cAAe,aAC9B,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,OAAO,CAAA,WACN,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,cAAc,CAAA,CAAC,OAAO,CAAA,CAAA,WACrB,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACC,KAAK,SACL,aAAW,mBACX,UAAW,EACX,QAAU,AAAD,IACP,EAAE,eAAe,GACjB,GAAiB,EACnB,WAEA,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CAAC,UAAU,iBAGxB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,cAAc,CAAA,CAAC,KAAK,SAAS,UAAU,mBAAU,qBAKpD,QAEL,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,KAAM,EACN,aAAc,EACd,SAAU,IAEV,OAGV,MAAK,EAAA,eAAe,CAAC,KAAK,CACxB,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,wDACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,oDACf,EACC,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CACC,KAAM,EACN,OAAO,SACP,IAAI,sBACJ,UAAU,iIACV,QAAU,AAAD,GAAO,EAAE,eAAe,aAEhC,EACD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,YAAY,CAAA,CAAC,UAAU,yBAG1B,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,0DAAiD,UAElE,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,eAAe,CAAA,CAAC,cAAe,aAC9B,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,OAAO,CAAA,WACN,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,cAAc,CAAA,CAAC,OAAO,CAAA,CAAA,WACrB,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACC,KAAK,SACL,aAAW,mBACX,UAAW,EACX,QAAS,AAAC,IACR,EAAE,eAAe,GACjB,EAAiB,GACnB,WAEA,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CAAC,UAAU,iBAGxB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,cAAc,CAAA,CAAC,KAAK,SAAS,UAAU,mBAAU,qBAKpD,QAEL,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,KAAM,EACN,aAAc,EACd,SAAU,IAEV,OAGV,SACE,OAAO,IACX,CACF,4DF3GA,IAAA,EAAA,EAAA,CAAA,CAAA,QASA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,CAAA,CAAA,QAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAiB,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,GAAI,CAC7B,SAAU,CACR,KAAM,CACJ,GAAI,OACJ,GAAI,QACJ,GAAI,WACN,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,GAiBO,SAAS,EAAW,MACzB,CAAI,SACJ,CAAO,OACP,GAAQ,CAAK,uBACb,GAAwB,CAAK,OAC7B,EAAQ,QAAQ,MAChB,CAAI,QACJ,CAAM,CACN,UAAQ,QACR,CAAM,WACN,CAAS,CACT,cAAe,CAAM,cACrB,CAAY,CACI,EAChB,GAAM,MAAE,CAAI,CAAE,CAAG,CAAA,EAAA,EAAA,cAAA,AAAc,IACzB,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,IAC9B,EAAa,CAAA,EAAA,EAAA,MAAA,AAAM,EAAiB,MACpC,EAAiC,QAAf,EAAK,GAAG,GAAe,OAAS,QA2BxD,MAvBA,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,GAAI,CAAC,GAAQ,EAAO,OAEpB,IAAM,EAAe,AAAD,IAClB,IAAM,EAAS,EAAE,MAAM,AAIvB,AAAI,EAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IACxB,EAAW,GADsB,IACf,EAAE,SAAS,IAM7B,EAAO,GAN+B,IAMxB,CAHK,AAGJ,EAFf,eAEgC,+FADhC,wIAEJ,GACF,EAGA,OADA,SAAS,gBAAgB,CAAC,QAAS,GAC5B,IAAM,SAAS,mBAAmB,CAAC,QAAS,EACrD,EAAG,CAAC,EAAM,EAAO,EAAS,EAAsB,EAG9C,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,MAAM,CAAA,CACL,UAAW,EACX,MAAO,EACP,UAAU,CAAA,CAAA,EACV,KAAM,EACN,aAAc,AAAC,IACT,AAAC,GAAQ,GACf,YAEC,EAAQ,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,aAAa,CAAA,CAAA,GAAM,KAC7B,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,aAAa,CAAA,CACZ,IAAK,EACL,UAAW,EACX,iBAAiB,EACjB,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,EAAe,CAAE,MAAK,GACtB,sDACA,GAEF,cAAa,EACb,kBAAmB,OAAQ,EAAY,AAAC,GAAM,EAAE,cAAc,aAG9D,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,OAAO,CAAA,CAAA,WAClB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,mBAAW,MAE7B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,iBAAiB,CAAA,CAAC,OAAO,CAAA,CAAA,WACxB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,mBAAW,MAI7B,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,aAAW,QACX,QAAS,EACT,UAAU,wLACV,cAAa,EAAS,CAAA,EAAG,EAAO,aAAa,CAAC,MAAG,YAEjD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,UAAU,WACjB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,mBAAU,aAI3B,EAAS,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,YAAY,CAAA,CAAC,UAAU,oBAAY,IAAyB,KAGtE,EAAS,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,SAAS,CAAA,CAAA,GAAM,KAGzB,EAAa,SAAS,EAAI,EAAe,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAU,aAAc,IAAmB,KAItF,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,wDAAgD,IAG9D,EAAS,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,YAAY,CAAA,CAAC,UAAU,oBAAY,IAAyB,UAI/E,CAEA,SAAS,EAAU,cAAE,CAAY,CAAuC,EACtE,IAAM,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,GAC/B,EAA6C,YAAxB,EAAa,MAAM,EAA0C,UAAxB,EAAa,MAAM,CAEnF,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,cAAY,yBAAyB,UAAU,mDAClD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,eAAe,CAAA,UACd,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,OAAO,CAAA,WACN,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,cAAc,CAAA,CAAC,OAAO,CAAA,CAAA,WACrB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,UACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,MAAO,EAAqB,kBAAoB,mBAChD,QAAS,EAAqB,EAAa,IAAI,CAAG,EAAa,MAAM,CACrE,QAAS,EAAa,aAAa,EAAI,EAAa,WAAW,CAC/D,MAAO,CAAC,CAAC,EAAa,WAAW,CACjC,KAAM,EAAqB,EAAA,MAAM,CAAG,EAAA,IAAI,CACxC,QAAQ,CAAA,CAAA,EACR,QAAQ,UACR,KAAK,gBAIX,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,cAAc,CAAA,UACZ,EAAqB,kBAAoB,0BAI/C,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,OAAQ,EAAa,MAAM,CAC3B,IAAK,EAAa,GAAG,CACrB,SAAU,EAAa,QAAQ,GAE/B,OAGV,sIM7KA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,AAAZ,CAAY,AAAZ,CAAY,AAAZ,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAlBC,CAClC,AAiB+C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAAQ,AAiBsC,CAjBtC,AAAE,AAiBoC,CAAU,CAAA,AAjB3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAsD,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACnF,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,AAAF,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAc,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC3C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAuD,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACpF,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAa,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC5C,2DCaA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAY,CAAA,CAAA,CAAA,CAAZ,AAAY,CAAA,AAAZ,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAlBC,CAClC,AAiB+C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAiB8C,CAAA,AAjB9C,CAAA,AAiB8C,CAjB9C,AAiB8C,CAjB9C,AAAQ,AAiBsC,CAjBtC,AAAE,AAiBoC,CAAU,AAjB9C,CAAA,AAiB8C,CAjB1C,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,AAAK,EAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAK,AAAL,CAAK,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC/D,CAAC,QAAA,CAAA,AAAU,CAAA,AAAE,EAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,AAAI,GAAA,CAAK,AAAL,CAAK,CAAG,CAAA,CAAA,CAAA,CAAA,AAAK,GAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACvD,CAAC,QAAA,CAAA,AAAU,CAAA,AAAE,EAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,AAAI,IAAA,CAAA,AAAM,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,AAAK,GAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACvD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,AAAvB,CAAuB,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACtD,kEEYA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAU,CAAA,CAAV,AAAU,CAAA,AAAV,CAAU,AAAV,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAjBG,CAClC,AAgB2C,CAhB1C,AAgB0C,CAhB1C,AAgB0C,CAhB1C,AAgB0C,CAhB1C,AAgB0C,CAhB1C,AAgB0C,CAhB1C,AAgB0C,CAhB1C,AAgB0C,CAhB1C,AAAQ,AAgBkC,CAhBlC,AAAE,AAgBgC,CAAU,CAAA,AAhBvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAkB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC/C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAgB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC7C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,AAAF,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAgB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC/C,8BDPkM,IAAA,EAAA,EAAA,CAAA,CAAA,QAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,sFIoBvb,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAU,CAAA,CAAV,AAAU,CAAV,AAAU,CAAV,AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAjBG,CAClC,AAgB0C,CAhBzC,AAgByC,CAhBzC,AAgByC,CAhBzC,AAgByC,CAhBzC,AAgByC,CAhBzC,AAgByC,CAhBzC,AAgByC,CAhBzC,AAgByC,CAhBzC,AAAQ,AAgBiC,CAhBjC,AAAE,AAgB+B,CAhB/B,AAgByC,CAhBzC,AAgByC,CAhBzC,CAAA,CAAA,CAAO,AAAP,CAAO,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,AAAG,CAAA,CAAA,CAAA,CAAA,AAAK,EAAG,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAK,AAAL,CAAK,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC7E,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,AAAR,CAAQ,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAA4C,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC3C,gCFP4L,IAAA,EAAA,EAAA,CAAA,CAAA,QAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,yCCA3I,IAAM,EAAmC,CAAA,EAAA,EAAA,kBAAb,GAAa,AAAqB,EAAC,MAAxB,uCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC","ignoreList":[1,2,9,10,12,15]}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/search.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../src/presentation/web/components/common/base-drawer/base-drawer.tsx","../../../../../../../src/presentation/web/components/common/action-button/action-button.tsx","../../../../../../../src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.tsx","../../../../../../../src/presentation/web/components/common/server-log-viewer/server-log-viewer.tsx","../../../../../../../src/presentation/web/app/actions/data%3A886f06%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/hooks/use-deployment-logs.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/refresh-cw.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-branch.ts","../../../../../../../src/presentation/web/app/actions/data%3Aa5f8e2%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/code-xml.ts","../../../../../../../src/presentation/web/app/actions/data%3A4affd5%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A47983e%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/archive.ts"],"sourcesContent":["export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTloOCIgLz4KICA8cGF0aCBkPSJtNCAxNyA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","'use client';\n\nimport { useRef, useEffect } from 'react';\nimport { XIcon, Play, Square } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { ActionButton } from '@/components/common/action-button';\nimport { DeploymentStatusBadge } from '@/components/common/deployment-status-badge';\nimport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerOverlay,\n DrawerTitle,\n DrawerDescription,\n} from '@/components/ui/drawer';\nimport { Separator } from '@/components/ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { useTranslation } from 'react-i18next';\nimport { useDeployAction, type DeployActionInput } from '@/hooks/use-deploy-action';\nimport { useFeatureFlags } from '@/hooks/feature-flags-context';\n\nconst drawerVariants = cva('', {\n variants: {\n size: {\n sm: 'w-96',\n md: 'w-2xl',\n lg: 'w-[772px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n});\n\nexport interface BaseDrawerProps extends VariantProps<typeof drawerVariants> {\n open: boolean;\n onClose: () => void;\n modal?: boolean;\n /** When true, clicking anywhere outside the drawer closes it, ignoring `data-no-drawer-close` guards. */\n dismissOnOutsideClick?: boolean;\n title?: string;\n header?: React.ReactNode;\n children: React.ReactNode;\n footer?: React.ReactNode;\n className?: string;\n 'data-testid'?: string;\n deployTarget?: DeployActionInput;\n}\n\nexport function BaseDrawer({\n open,\n onClose,\n modal = false,\n dismissOnOutsideClick = false,\n title = 'Drawer',\n size,\n header,\n children,\n footer,\n className,\n 'data-testid': testId,\n deployTarget,\n}: BaseDrawerProps) {\n const { i18n } = useTranslation();\n const featureFlags = useFeatureFlags();\n const contentRef = useRef<HTMLDivElement>(null);\n const drawerDirection = i18n.dir() === 'rtl' ? 'left' : 'right';\n\n // Close when clicking outside the drawer panel (no overlay needed — canvas stays draggable).\n // Uses `click` (not `pointerdown`) so canvas drags don't trigger this.\n useEffect(() => {\n if (!open || modal) return;\n\n const handleClick = (e: MouseEvent) => {\n const target = e.target as Element;\n // If the clicked element was unmounted by React before the event reached\n // the document (e.g. a \"Next\" button removed on the last step), it is no\n // longer in the DOM tree — treat it as an internal click, not an outside one.\n if (!document.body.contains(target)) return;\n if (contentRef.current?.contains(target)) return;\n // Don't close when clicking inside Radix overlays.\n // When dismissOnOutsideClick is false (default), also respect data-no-drawer-close guards.\n const ignoreSelector = dismissOnOutsideClick\n ? '[role=\"alertdialog\"], [role=\"dialog\"], [role=\"menu\"], [role=\"listbox\"], [data-radix-popper-content-wrapper]'\n : '[data-no-drawer-close], [role=\"alertdialog\"], [role=\"dialog\"], [role=\"menu\"], [role=\"listbox\"], [data-radix-popper-content-wrapper]';\n if (target.closest(ignoreSelector)) return;\n onClose();\n };\n\n document.addEventListener('click', handleClick);\n return () => document.removeEventListener('click', handleClick);\n }, [open, modal, onClose, dismissOnOutsideClick]);\n\n return (\n <Drawer\n direction={drawerDirection}\n modal={modal}\n handleOnly\n open={open}\n onOpenChange={(isOpen) => {\n if (!isOpen) onClose();\n }}\n >\n {modal ? <DrawerOverlay /> : null}\n <DrawerContent\n ref={contentRef}\n direction={drawerDirection}\n showCloseButton={false}\n className={cn(\n drawerVariants({ size }),\n 'bg-white/85 backdrop-blur-xl dark:bg-neutral-800/85',\n className\n )}\n data-testid={testId}\n onInteractOutside={modal ? undefined : (e) => e.preventDefault()}\n >\n {/* Visually hidden title & description required by Radix Dialog for accessibility */}\n <DrawerTitle asChild>\n <span className=\"sr-only\">{title}</span>\n </DrawerTitle>\n <DrawerDescription asChild>\n <span className=\"sr-only\">{title}</span>\n </DrawerDescription>\n\n {/* Close button */}\n <button\n type=\"button\"\n aria-label=\"Close\"\n onClick={onClose}\n className=\"ring-offset-background focus:ring-ring absolute end-3 top-2 z-50 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden\"\n data-testid={testId ? `${testId}-close-button` : undefined}\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </button>\n\n {/* Header slot */}\n {header ? <DrawerHeader className=\"shrink-0\">{header}</DrawerHeader> : null}\n\n {/* Separator between header and content — matches review drawer style */}\n {header ? <Separator /> : null}\n\n {/* Dev server bar — rendered when deployTarget is provided and env deploy is enabled */}\n {featureFlags.envDeploy && deployTarget ? <DeployBar deployTarget={deployTarget} /> : null}\n\n {/* Scrollable content area. Consumers should add p-4 for consistent spacing. */}\n {/* Footer components like DrawerActionBar typically include border-t. */}\n <div className=\"flex min-h-0 flex-1 flex-col overflow-hidden\">{children}</div>\n\n {/* Footer slot */}\n {footer ? <DrawerFooter className=\"shrink-0\">{footer}</DrawerFooter> : null}\n </DrawerContent>\n </Drawer>\n );\n}\n\nfunction DeployBar({ deployTarget }: { deployTarget: DeployActionInput }) {\n const deployAction = useDeployAction(deployTarget);\n const isDeploymentActive = deployAction.status === 'Booting' || deployAction.status === 'Ready';\n\n return (\n <div data-testid=\"base-drawer-deploy-bar\" className=\"flex items-center gap-2 px-4 pt-3 pb-3\">\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span>\n <ActionButton\n label={isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server'}\n onClick={isDeploymentActive ? deployAction.stop : deployAction.deploy}\n loading={deployAction.deployLoading || deployAction.stopLoading}\n error={!!deployAction.deployError}\n icon={isDeploymentActive ? Square : Play}\n iconOnly\n variant=\"outline\"\n size=\"icon-sm\"\n />\n </span>\n </TooltipTrigger>\n <TooltipContent>\n {isDeploymentActive ? 'Stop Dev Server' : 'Start Dev Server'}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n {isDeploymentActive ? (\n <DeploymentStatusBadge\n status={deployAction.status}\n url={deployAction.url}\n targetId={deployTarget.targetId}\n />\n ) : null}\n </div>\n );\n}\n","'use client';\n\nimport type { LucideIcon } from 'lucide-react';\nimport { Loader2, CircleAlert } from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { useSoundAction } from '@/hooks/use-sound-action';\n\nexport interface ActionButtonProps {\n label: string;\n onClick: () => void;\n loading: boolean;\n error: boolean;\n icon: LucideIcon;\n /** When true, omits label text — label is still used as aria-label. */\n iconOnly?: boolean;\n /** Button variant. @default 'outline' */\n variant?: 'outline' | 'ghost' | 'default' | 'destructive' | 'secondary' | 'link';\n /** Button size. @default 'sm' */\n size?: 'default' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg';\n}\n\nexport function ActionButton({\n label,\n onClick,\n loading,\n error,\n icon: Icon,\n iconOnly = false,\n variant = 'outline',\n size = 'sm',\n}: ActionButtonProps) {\n const clickSound = useSoundAction('click');\n\n const handleClick = () => {\n clickSound.play();\n onClick();\n };\n\n return (\n <Button\n variant={variant}\n size={size}\n aria-label={label}\n disabled={loading}\n onClick={handleClick}\n className={cn(\n 'gap-1.5',\n error && 'text-destructive hover:text-destructive',\n !error &&\n iconOnly &&\n variant === 'ghost' &&\n 'text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500'\n )}\n >\n {loading ? (\n <Loader2 className=\"size-4 animate-spin\" />\n ) : error ? (\n <CircleAlert className=\"size-4\" />\n ) : (\n <Icon className=\"size-4\" />\n )}\n {iconOnly ? null : label}\n </Button>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport { Loader2, ExternalLink, Terminal } from 'lucide-react';\nimport { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { ServerLogViewer } from '@/components/common/server-log-viewer';\n\nexport interface DeploymentStatusBadgeProps {\n status: DeploymentState | null;\n url?: string | null;\n targetId?: string;\n}\n\nconst tbBtn =\n 'text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-7 items-center justify-center rounded-[3px]';\n\nexport function DeploymentStatusBadge({ status, url, targetId }: DeploymentStatusBadgeProps) {\n const [logViewerOpen, setLogViewerOpen] = useState(false);\n const showLogButton =\n targetId && (status === DeploymentState.Booting || status === DeploymentState.Ready);\n\n switch (status) {\n case DeploymentState.Booting:\n return (\n <>\n <div className=\"flex items-center gap-1 pl-1\">\n <Loader2 className=\"size-3 animate-spin text-blue-500\" />\n <span className=\"text-muted-foreground text-[11px]\">Starting...</span>\n {showLogButton ? (\n <TooltipProvider delayDuration={300}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label=\"View server logs\"\n className={tbBtn}\n onClick={(e) => {\n e.stopPropagation();\n setLogViewerOpen(true);\n }}\n >\n <Terminal className=\"size-3.5\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\" className=\"text-xs\">\n Server logs\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ) : null}\n </div>\n {showLogButton ? (\n <ServerLogViewer\n open={logViewerOpen}\n onOpenChange={setLogViewerOpen}\n targetId={targetId}\n />\n ) : null}\n </>\n );\n case DeploymentState.Ready:\n return (\n <>\n <div className=\"flex translate-y-px items-center gap-1 pl-1\">\n <span className=\"inline-block size-1.5 rounded-full bg-green-500\" />\n {url ? (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-0.5 text-[11px] text-green-600 hover:text-green-500 dark:text-green-400 dark:hover:text-green-300\"\n onClick={(e) => e.stopPropagation()}\n >\n {url}\n <ExternalLink className=\"size-2.5 shrink-0\" />\n </a>\n ) : (\n <span className=\"text-[11px] text-green-600 dark:text-green-400\">Ready</span>\n )}\n {showLogButton ? (\n <TooltipProvider delayDuration={300}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label=\"View server logs\"\n className={tbBtn}\n onClick={(e) => {\n e.stopPropagation();\n setLogViewerOpen(true);\n }}\n >\n <Terminal className=\"size-3.5\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\" className=\"text-xs\">\n Server logs\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ) : null}\n </div>\n {showLogButton ? (\n <ServerLogViewer\n open={logViewerOpen}\n onOpenChange={setLogViewerOpen}\n targetId={targetId}\n />\n ) : null}\n </>\n );\n default:\n return null;\n }\n}\n","'use client';\n\nimport { useRef, useEffect, useCallback } from 'react';\nimport { Terminal } from 'lucide-react';\nimport type { LogEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog';\nimport { useDeploymentLogs } from '@/hooks/use-deployment-logs';\n\nexport interface ServerLogViewerProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n targetId: string;\n}\n\nexport interface ServerLogViewerContentProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n logs: LogEntry[];\n isConnected: boolean;\n}\n\nconst AUTO_SCROLL_THRESHOLD = 50;\n\nexport function ServerLogViewer({ open, onOpenChange, targetId }: ServerLogViewerProps) {\n const { logs, isConnected } = useDeploymentLogs(open ? targetId : null);\n\n return (\n <ServerLogViewerContent\n open={open}\n onOpenChange={onOpenChange}\n logs={logs}\n isConnected={isConnected}\n />\n );\n}\n\nexport function ServerLogViewerContent({\n open,\n onOpenChange,\n logs,\n isConnected,\n}: ServerLogViewerContentProps) {\n const scrollRef = useRef<HTMLDivElement>(null);\n const isAtBottomRef = useRef(true);\n\n const handleScroll = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n isAtBottomRef.current =\n el.scrollTop + el.clientHeight >= el.scrollHeight - AUTO_SCROLL_THRESHOLD;\n }, []);\n\n useEffect(() => {\n if (isAtBottomRef.current && scrollRef.current) {\n scrollRef.current.scrollTop = scrollRef.current.scrollHeight;\n }\n }, [logs]);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className=\"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg\"\n aria-describedby={undefined}\n >\n <DialogHeader className=\"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <Terminal className=\"h-4 w-4 text-zinc-400\" />\n <DialogTitle className=\"text-sm font-medium text-zinc-100\">Server Logs</DialogTitle>\n </div>\n <div className=\"flex items-center gap-2 pe-8\">\n <span\n className={`inline-block h-2 w-2 rounded-full ${isConnected ? 'bg-green-500' : 'bg-zinc-500'}`}\n />\n <span className=\"text-xs text-zinc-400\">\n {isConnected ? 'Connected' : 'Disconnected'}\n </span>\n </div>\n </DialogHeader>\n\n <div\n ref={scrollRef}\n onScroll={handleScroll}\n className=\"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed\"\n >\n {logs.length === 0 ? (\n <p className=\"text-zinc-500\">Waiting for log output...</p>\n ) : (\n logs.map((entry) => (\n <LogLine key={`${entry.timestamp}-${entry.stream}-${entry.line}`} entry={entry} />\n ))\n )}\n {!isConnected && logs.length > 0 && (\n <div className=\"mt-2 border-t border-zinc-800 pt-2 text-zinc-500\">[Server stopped]</div>\n )}\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction LogLine({ entry }: { entry: LogEntry }) {\n return (\n <div\n data-stream={entry.stream}\n className={entry.stream === 'stderr' ? 'text-red-400' : 'text-zinc-200'}\n >\n <span className=\"break-all whitespace-pre-wrap\">{entry.line}</span>\n </div>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40e827f64795e580b75e126ddfefa3a9a722da877c\":\"getDeploymentLogs\"},\"src/presentation/web/app/actions/get-deployment-logs.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40e827f64795e580b75e126ddfefa3a9a722da877c\",callServer,void 0,findSourceMapURL,\"getDeploymentLogs\");export{$$RSC_SERVER_ACTION_0 as getDeploymentLogs};","'use client';\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport type { LogEntry } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport { getDeploymentLogs } from '@/app/actions/get-deployment-logs';\n\nexport interface UseDeploymentLogsResult {\n logs: LogEntry[];\n isConnected: boolean;\n}\n\nexport function useDeploymentLogs(targetId: string | null | undefined): UseDeploymentLogsResult {\n const [logs, setLogs] = useState<LogEntry[]>([]);\n const [isConnected, setIsConnected] = useState(false);\n const eventSourceRef = useRef<EventSource | null>(null);\n\n const cleanup = useCallback(() => {\n if (eventSourceRef.current) {\n eventSourceRef.current.close();\n eventSourceRef.current = null;\n }\n setIsConnected(false);\n }, []);\n\n useEffect(() => {\n if (!targetId) {\n setLogs([]);\n setIsConnected(false);\n return;\n }\n\n // Fetch initial logs\n getDeploymentLogs(targetId)\n .then((initialLogs) => {\n if (initialLogs) {\n setLogs(initialLogs);\n }\n })\n .catch(() => {\n // Initial fetch failed — logs stay empty, SSE will still connect\n });\n\n // Connect EventSource for live updates\n const es = new EventSource(`/api/deployment-logs?targetId=${targetId}`);\n eventSourceRef.current = es;\n\n es.onopen = () => {\n setIsConnected(true);\n };\n\n es.addEventListener('log', (event: MessageEvent) => {\n const entry: LogEntry = JSON.parse(event.data);\n setLogs((prev) => [...prev, entry]);\n });\n\n es.onerror = () => {\n setIsConnected(false);\n };\n\n return () => {\n es.close();\n eventSourceRef.current = null;\n };\n }, [targetId, cleanup]);\n\n return { logs, isConnected };\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8', key: 'v9h5vc' }],\n ['path', { d: 'M21 3v5h-5', key: '1q7to0' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16', key: '3uifl3' }],\n ['path', { d: 'M8 16H3v5', key: '1cv678' }],\n];\n\n/**\n * @component @name RefreshCw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RefreshCw = createLucideIcon('refresh-cw', __iconNode);\n\nexport default RefreshCw;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '6', x2: '6', y1: '3', y2: '15', key: '17qcm7' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M18 9a9 9 0 0 1-9 9', key: 'n2h4wq' }],\n];\n\n/**\n * @component @name GitBranch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjYiIHkxPSIzIiB5Mj0iMTUiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTggOWE5IDkgMCAwIDEtOSA5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitBranch = createLucideIcon('git-branch', __iconNode);\n\nexport default GitBranch;\n","/* __next_internal_action_entry_do_not_use__ [{\"40024b9babaf0ccba2c9644e1719947f9662db82da\":\"openFolder\"},\"src/presentation/web/app/actions/open-folder.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40024b9babaf0ccba2c9644e1719947f9662db82da\",callServer,void 0,findSourceMapURL,\"openFolder\");export{$$RSC_SERVER_ACTION_0 as openFolder};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4', key: '1inbqp' }],\n ['path', { d: 'm6 8-4 4 4 4', key: '15zrgr' }],\n ['path', { d: 'm14.5 4-5 16', key: 'e7oirm' }],\n];\n\n/**\n * @component @name CodeXml\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CodeXml = createLucideIcon('code-xml', __iconNode);\n\nexport default CodeXml;\n","/* __next_internal_action_entry_do_not_use__ [{\"406f6bfbd22a176bf6d0bca648d1bd1ef29efb8c31\":\"openIde\"},\"src/presentation/web/app/actions/open-ide.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"406f6bfbd22a176bf6d0bca648d1bd1ef29efb8c31\",callServer,void 0,findSourceMapURL,\"openIde\");export{$$RSC_SERVER_ACTION_0 as openIde};","/* __next_internal_action_entry_do_not_use__ [{\"40cede021cd5c33e6bf9d5871c23ea5e73f6809b4b\":\"openShell\"},\"src/presentation/web/app/actions/open-shell.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40cede021cd5c33e6bf9d5871c23ea5e73f6809b4b\",callServer,void 0,findSourceMapURL,\"openShell\");export{$$RSC_SERVER_ACTION_0 as openShell};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1', key: '1wp1u1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8', key: '1s80jp' }],\n ['path', { d: 'M10 12h4', key: 'a56b0p' }],\n];\n\n/**\n * @component @name Archive\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Archive = createLucideIcon('archive', __iconNode);\n\nexport default Archive;\n"],"names":[],"mappings":"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","ignoreList":[1,2,9,10,12,15]}
@@ -1,3 +1,3 @@
1
- module.exports=[232791,a=>{"use strict";var b=a.i(85e4);a.s(["Paperclip",()=>b.default])},804019,a=>{"use strict";let b=(0,a.i(225700).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Circle",()=>b],804019)},193967,a=>{"use strict";let b=(0,a.i(225700).default)("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]);a.s(["SendHorizontal",()=>b],193967)},411117,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("006ff5a74754817b8a495d7ba26e66c354851f6c99",b.callServer,void 0,b.findSourceMapURL,"getDefaultAgentAndModel");a.s(["getDefaultAgentAndModel",()=>c])},409260,a=>{"use strict";var b=a.i(944592);let c=new Set(["txt","md","csv","json","yaml","yml","xml","html","css","js","ts","jsx","tsx","py","rb","go","rs","java","kt","c","cpp","h","hpp","cs","swift","sh","bash","zsh","fish","ps1","bat","cmd","sql","graphql","proto","toml","ini","cfg","conf","env","dockerfile","makefile","cmake","gradle","sbt","lock","sum","mod","png","jpg","jpeg","gif","svg","webp","bmp","ico","avif","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","zip","tar","gz","bz2","xz","7z","rar","log","diff","patch"]);function d(){let[a,d]=(0,b.useState)([]),[e,f]=(0,b.useState)(null),[g,h]=(0,b.useState)(!1),i=(0,b.useRef)(0),j=(0,b.useRef)(crypto.randomUUID()),k=(0,b.useCallback)(async a=>{for(let b of(f(null),a)){if(b.size>0xa00000)return void f(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>0?a.slice(b+1).toLowerCase():null}(b.name);if(a&&!c.has(a))return void f(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();d(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",j.current);let e=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!e.ok){let b=await e.json().catch(()=>({error:"Upload failed"}));d(b=>b.filter(b=>b.id!==a)),f(b.error??"Upload failed");return}let g=await e.json();d(b=>b.some(b=>b.id!==a&&b.path===g.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...g,id:a,loading:!1}:b))}catch{d(b=>b.filter(b=>b.id!==a)),f("Upload failed")}}},[]),l=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),i.current+=1,1===i.current&&h(!0)},[]),m=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),i.current-=1,0===i.current&&h(!1)},[]),n=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),o=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),i.current=0,h(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&k(b)},[k]),p=(0,b.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),k(c))},[k]),q=(0,b.useCallback)(a=>{d(b=>b.filter(b=>b.id!==a))},[]),r=(0,b.useCallback)((a,b)=>{d(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),s=(0,b.useCallback)(a=>{d(b=>b.some(b=>b.path===a.path)?b:[...b,{...a,loading:!1}])},[]),t=(0,b.useCallback)(()=>{d([]),f(null)},[]),u=a.filter(a=>!a.loading);return{attachments:a,completedAttachments:u,uploadError:e,isDragOver:g,handleFiles:k,handleDragEnter:l,handleDragLeave:m,handleDragOver:n,handleDrop:o,handlePaste:p,addAttachment:s,removeAttachment:q,updateNotes:r,clearAttachments:t}}a.s(["useAttachments",()=>d])},323784,a=>{"use strict";let b=(0,a.i(225700).default)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);a.s(["Github",()=>b],323784)},642642,a=>{"use strict";let b=(0,a.i(225700).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["default",()=>b])},85e4,245902,350596,a=>{"use strict";var b=a.i(225700);let c=(0,b.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["default",()=>c],85e4);let d=(0,b.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);a.s(["default",()=>d],245902),a.s(["FileIcon",()=>d],350596)},645670,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(371335),e=a.i(302807),f=a.i(385536);let g=d.Dialog.Root,h=d.Dialog.Trigger,i=d.Dialog.Portal,j=d.Dialog.Close,k=c.forwardRef(({className:a,onClick:c,...e},g)=>(0,b.jsx)(d.Dialog.Overlay,{ref:g,className:(0,f.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",a),onClick:a=>{a.stopPropagation(),c?.(a)},...e}));k.displayName=d.Dialog.Overlay.displayName;let l=c.forwardRef(({className:a,children:c,...g},h)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(k,{}),(0,b.jsxs)(d.Dialog.Content,{ref:h,className:(0,f.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",a),...g,children:[c,(0,b.jsxs)(d.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,b.jsx)(e.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=d.Dialog.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col space-y-1.5 text-center sm:text-start",a),...c});m.displayName="DialogHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="DialogFooter";let o=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Title,{ref:e,className:(0,f.cn)("text-lg leading-none font-semibold tracking-tight",a),...c}));o.displayName=d.Dialog.Title.displayName;let p=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Description,{ref:e,className:(0,f.cn)("text-muted-foreground text-sm",a),...c}));p.displayName=d.Dialog.Description.displayName,a.s(["Dialog",()=>g,"DialogClose",()=>j,"DialogContent",()=>l,"DialogDescription",()=>p,"DialogFooter",()=>n,"DialogHeader",()=>m,"DialogTitle",()=>o,"DialogTrigger",()=>h])},679620,a=>{"use strict";var b=a.i(556365),c=a.i(385536);function d({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}a.s(["Textarea",()=>d])},976096,a=>{"use strict";let b=(0,a.i(225700).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);a.s(["default",()=>b])},200307,273998,26633,730931,a=>{"use strict";var b=a.i(556365),c=a.i(302807),d=a.i(707052),d=d,e=a.i(976096);a.s(["DownloadIcon",()=>e.default],273998);var e=e,f=a.i(225700);let g=(0,f.default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]);var h=a.i(385536),i=a.i(645670),j=a.i(679620),k=a.i(182934),l=a.i(650049);a.s(["VisuallyHidden",0,l],26633);var l=l,m=a.i(350596),n=a.i(642642),n=n;let o=(0,f.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var p=a.i(840617),p=p;a.i(118948);let q=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),r=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function s(a){if(0===a)return"0 B";let b=Math.floor(Math.log(a)/Math.log(1024));return`${(a/Math.pow(1024,b)).toFixed(+(0!==b))} ${["B","KB","MB","GB"][b]}`}let t=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function u(a,b){let c=new URLSearchParams({path:a,mimeType:b});return`/api/attachments/preview?${c.toString()}`}function v({name:a,size:f,mimeType:v,path:w,onRemove:x,loading:y=!1,disabled:z=!1,notes:A,onNotesChange:B}){let C,D,E=(C=a.lastIndexOf("."))>=0?a.slice(C).toLowerCase():"",F=q.has(E)?o:".pdf"===E?n.default:r.has(E)?p.default:m.FileIcon,G=".pdf"===E?"bg-red-50 text-red-600":q.has(E)?"bg-blue-50 text-blue-600":r.has(E)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",H=(D=a.lastIndexOf("."))>=0&&t.has(a.slice(D).toLowerCase());if(y)return(0,b.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,b.jsx)(d.default,{className:"text-muted-foreground h-5 w-5 animate-spin"})});if(H){let d=(0,b.jsxs)("button",{type:"button",className:"relative block cursor-pointer rounded-md",children:[(0,b.jsx)("img",{src:u(w,v),alt:a,title:a,className:"h-12 w-12 rounded-md border object-cover transition-opacity hover:opacity-80"}),A?(0,b.jsx)("span",{className:"ring-background absolute -right-1 -bottom-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-white shadow-sm ring-2",children:(0,b.jsx)(g,{className:"h-2.5 w-2.5"})}):null]});return(0,b.jsx)(k.TooltipProvider,{delayDuration:200,children:(0,b.jsxs)(i.Dialog,{children:[(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsxs)("div",{className:"group relative",children:[(0,b.jsx)(k.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(i.DialogTrigger,{asChild:!0,children:d})}),!z&&(0,b.jsx)("button",{type:"button",onClick:x,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${a}`,children:(0,b.jsx)(c.X,{className:"h-3 w-3"})})]}),A?(0,b.jsx)(k.TooltipContent,{side:"top",sideOffset:10,className:"z-[80] max-w-[220px]",children:(0,b.jsx)("p",{className:"line-clamp-5 text-xs leading-snug whitespace-pre-wrap",children:A})}):null]}),(0,b.jsxs)(i.DialogContent,{className:"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90",children:[(0,b.jsx)(l.Root,{children:(0,b.jsxs)(i.DialogTitle,{children:["Preview: ",a]})}),(0,b.jsx)("div",{className:"relative bg-black/90",children:(0,b.jsx)("img",{src:u(w,v),alt:a,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,b.jsxs)("div",{className:"bg-background flex flex-col gap-2 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:s(f)})]}),(0,b.jsx)("a",{href:u(w,v),download:a,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${a}`,children:(0,b.jsx)(e.default,{className:"h-4 w-4"})})]}),B?(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)(j.Textarea,{placeholder:"Add notes about this image…",value:A??"",onChange:a=>B(a.target.value),rows:2,className:"resize-none text-sm","aria-label":"Image notes"}),A?.trim()?(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:"Auto-saved"}):null]}):A?(0,b.jsx)("p",{className:"text-muted-foreground text-sm whitespace-pre-wrap",children:A}):null]})]})]})})}return(0,b.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 ps-2 pe-3",children:[(0,b.jsx)("div",{className:(0,h.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",G),children:(0,b.jsx)(F,{className:"h-3 w-3"})}),(0,b.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:a}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:s(f)}),!z&&(0,b.jsx)("button",{type:"button",onClick:x,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${a}`,children:(0,b.jsx)(c.X,{className:"h-3 w-3"})})]})}a.s(["AttachmentChip",()=>v],730931),a.s([],200307)}];
1
+ module.exports=[232791,a=>{"use strict";var b=a.i(85e4);a.s(["Paperclip",()=>b.default])},804019,a=>{"use strict";let b=(0,a.i(225700).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Circle",()=>b],804019)},193967,a=>{"use strict";let b=(0,a.i(225700).default)("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]);a.s(["SendHorizontal",()=>b],193967)},644018,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("00c270c7a6f9c21fabe7b7271a4bf75d5cef02d22a",b.callServer,void 0,b.findSourceMapURL,"getDefaultAgentAndModel");a.s(["getDefaultAgentAndModel",()=>c])},409260,a=>{"use strict";var b=a.i(944592);let c=new Set(["txt","md","csv","json","yaml","yml","xml","html","css","js","ts","jsx","tsx","py","rb","go","rs","java","kt","c","cpp","h","hpp","cs","swift","sh","bash","zsh","fish","ps1","bat","cmd","sql","graphql","proto","toml","ini","cfg","conf","env","dockerfile","makefile","cmake","gradle","sbt","lock","sum","mod","png","jpg","jpeg","gif","svg","webp","bmp","ico","avif","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","zip","tar","gz","bz2","xz","7z","rar","log","diff","patch"]);function d(){let[a,d]=(0,b.useState)([]),[e,f]=(0,b.useState)(null),[g,h]=(0,b.useState)(!1),i=(0,b.useRef)(0),j=(0,b.useRef)(crypto.randomUUID()),k=(0,b.useCallback)(async a=>{for(let b of(f(null),a)){if(b.size>0xa00000)return void f(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>0?a.slice(b+1).toLowerCase():null}(b.name);if(a&&!c.has(a))return void f(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();d(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",j.current);let e=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!e.ok){let b=await e.json().catch(()=>({error:"Upload failed"}));d(b=>b.filter(b=>b.id!==a)),f(b.error??"Upload failed");return}let g=await e.json();d(b=>b.some(b=>b.id!==a&&b.path===g.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...g,id:a,loading:!1}:b))}catch{d(b=>b.filter(b=>b.id!==a)),f("Upload failed")}}},[]),l=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),i.current+=1,1===i.current&&h(!0)},[]),m=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),i.current-=1,0===i.current&&h(!1)},[]),n=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),o=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),i.current=0,h(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&k(b)},[k]),p=(0,b.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),k(c))},[k]),q=(0,b.useCallback)(a=>{d(b=>b.filter(b=>b.id!==a))},[]),r=(0,b.useCallback)((a,b)=>{d(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),s=(0,b.useCallback)(a=>{d(b=>b.some(b=>b.path===a.path)?b:[...b,{...a,loading:!1}])},[]),t=(0,b.useCallback)(()=>{d([]),f(null)},[]),u=a.filter(a=>!a.loading);return{attachments:a,completedAttachments:u,uploadError:e,isDragOver:g,handleFiles:k,handleDragEnter:l,handleDragLeave:m,handleDragOver:n,handleDrop:o,handlePaste:p,addAttachment:s,removeAttachment:q,updateNotes:r,clearAttachments:t}}a.s(["useAttachments",()=>d])},323784,a=>{"use strict";let b=(0,a.i(225700).default)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);a.s(["Github",()=>b],323784)},642642,a=>{"use strict";let b=(0,a.i(225700).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["default",()=>b])},85e4,245902,350596,a=>{"use strict";var b=a.i(225700);let c=(0,b.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["default",()=>c],85e4);let d=(0,b.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);a.s(["default",()=>d],245902),a.s(["FileIcon",()=>d],350596)},645670,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(371335),e=a.i(302807),f=a.i(385536);let g=d.Dialog.Root,h=d.Dialog.Trigger,i=d.Dialog.Portal,j=d.Dialog.Close,k=c.forwardRef(({className:a,onClick:c,...e},g)=>(0,b.jsx)(d.Dialog.Overlay,{ref:g,className:(0,f.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",a),onClick:a=>{a.stopPropagation(),c?.(a)},...e}));k.displayName=d.Dialog.Overlay.displayName;let l=c.forwardRef(({className:a,children:c,...g},h)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(k,{}),(0,b.jsxs)(d.Dialog.Content,{ref:h,className:(0,f.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",a),...g,children:[c,(0,b.jsxs)(d.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,b.jsx)(e.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=d.Dialog.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col space-y-1.5 text-center sm:text-start",a),...c});m.displayName="DialogHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,f.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="DialogFooter";let o=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Title,{ref:e,className:(0,f.cn)("text-lg leading-none font-semibold tracking-tight",a),...c}));o.displayName=d.Dialog.Title.displayName;let p=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)(d.Dialog.Description,{ref:e,className:(0,f.cn)("text-muted-foreground text-sm",a),...c}));p.displayName=d.Dialog.Description.displayName,a.s(["Dialog",()=>g,"DialogClose",()=>j,"DialogContent",()=>l,"DialogDescription",()=>p,"DialogFooter",()=>n,"DialogHeader",()=>m,"DialogTitle",()=>o,"DialogTrigger",()=>h])},679620,a=>{"use strict";var b=a.i(556365),c=a.i(385536);function d({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}a.s(["Textarea",()=>d])},976096,a=>{"use strict";let b=(0,a.i(225700).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);a.s(["default",()=>b])},200307,273998,26633,730931,a=>{"use strict";var b=a.i(556365),c=a.i(302807),d=a.i(707052),d=d,e=a.i(976096);a.s(["DownloadIcon",()=>e.default],273998);var e=e,f=a.i(225700);let g=(0,f.default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]);var h=a.i(385536),i=a.i(645670),j=a.i(679620),k=a.i(182934),l=a.i(650049);a.s(["VisuallyHidden",0,l],26633);var l=l,m=a.i(350596),n=a.i(642642),n=n;let o=(0,f.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var p=a.i(840617),p=p;a.i(118948);let q=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),r=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function s(a){if(0===a)return"0 B";let b=Math.floor(Math.log(a)/Math.log(1024));return`${(a/Math.pow(1024,b)).toFixed(+(0!==b))} ${["B","KB","MB","GB"][b]}`}let t=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function u(a,b){let c=new URLSearchParams({path:a,mimeType:b});return`/api/attachments/preview?${c.toString()}`}function v({name:a,size:f,mimeType:v,path:w,onRemove:x,loading:y=!1,disabled:z=!1,notes:A,onNotesChange:B}){let C,D,E=(C=a.lastIndexOf("."))>=0?a.slice(C).toLowerCase():"",F=q.has(E)?o:".pdf"===E?n.default:r.has(E)?p.default:m.FileIcon,G=".pdf"===E?"bg-red-50 text-red-600":q.has(E)?"bg-blue-50 text-blue-600":r.has(E)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",H=(D=a.lastIndexOf("."))>=0&&t.has(a.slice(D).toLowerCase());if(y)return(0,b.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,b.jsx)(d.default,{className:"text-muted-foreground h-5 w-5 animate-spin"})});if(H){let d=(0,b.jsxs)("button",{type:"button",className:"relative block cursor-pointer rounded-md",children:[(0,b.jsx)("img",{src:u(w,v),alt:a,title:a,className:"h-12 w-12 rounded-md border object-cover transition-opacity hover:opacity-80"}),A?(0,b.jsx)("span",{className:"ring-background absolute -right-1 -bottom-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-white shadow-sm ring-2",children:(0,b.jsx)(g,{className:"h-2.5 w-2.5"})}):null]});return(0,b.jsx)(k.TooltipProvider,{delayDuration:200,children:(0,b.jsxs)(i.Dialog,{children:[(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsxs)("div",{className:"group relative",children:[(0,b.jsx)(k.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(i.DialogTrigger,{asChild:!0,children:d})}),!z&&(0,b.jsx)("button",{type:"button",onClick:x,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${a}`,children:(0,b.jsx)(c.X,{className:"h-3 w-3"})})]}),A?(0,b.jsx)(k.TooltipContent,{side:"top",sideOffset:10,className:"z-[80] max-w-[220px]",children:(0,b.jsx)("p",{className:"line-clamp-5 text-xs leading-snug whitespace-pre-wrap",children:A})}):null]}),(0,b.jsxs)(i.DialogContent,{className:"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90",children:[(0,b.jsx)(l.Root,{children:(0,b.jsxs)(i.DialogTitle,{children:["Preview: ",a]})}),(0,b.jsx)("div",{className:"relative bg-black/90",children:(0,b.jsx)("img",{src:u(w,v),alt:a,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,b.jsxs)("div",{className:"bg-background flex flex-col gap-2 px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:s(f)})]}),(0,b.jsx)("a",{href:u(w,v),download:a,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${a}`,children:(0,b.jsx)(e.default,{className:"h-4 w-4"})})]}),B?(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)(j.Textarea,{placeholder:"Add notes about this image…",value:A??"",onChange:a=>B(a.target.value),rows:2,className:"resize-none text-sm","aria-label":"Image notes"}),A?.trim()?(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:"Auto-saved"}):null]}):A?(0,b.jsx)("p",{className:"text-muted-foreground text-sm whitespace-pre-wrap",children:A}):null]})]})]})})}return(0,b.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 ps-2 pe-3",children:[(0,b.jsx)("div",{className:(0,h.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",G),children:(0,b.jsx)(F,{className:"h-3 w-3"})}),(0,b.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:a}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:s(f)}),!z&&(0,b.jsx)("button",{type:"button",onClick:x,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${a}`,children:(0,b.jsx)(c.X,{className:"h-3 w-3"})})]})}a.s(["AttachmentChip",()=>v],730931),a.s([],200307)}];
2
2
 
3
- //# sourceMappingURL=_6ff832ad._.js.map
3
+ //# sourceMappingURL=_2759af76._.js.map