@shepai/cli 1.127.3-pr401.eb52cb4 → 1.127.3

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 (385) hide show
  1. package/apis/json-schema/EnvironmentConfig.yaml +0 -3
  2. package/apis/json-schema/FeatureFlags.yaml +0 -5
  3. package/apis/json-schema/Repository.yaml +0 -3
  4. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts +0 -4
  5. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/ports/output/services/index.d.ts +0 -2
  7. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/ports/output/services/index.js +0 -1
  9. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  10. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +0 -2
  11. package/dist/packages/core/src/domain/generated/output.d.ts +0 -12
  12. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  14. package/dist/packages/core/src/infrastructure/di/container.js +0 -12
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts +0 -1
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts.map +1 -1
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.js +0 -2
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +0 -1
  19. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  20. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +0 -2
  21. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts +0 -3
  22. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.js +2 -38
  24. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  25. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +2 -3
  26. package/dist/src/presentation/cli/commands/repo/index.d.ts +0 -1
  27. package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
  28. package/dist/src/presentation/cli/commands/repo/index.js +1 -4
  29. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.d.ts.map +1 -1
  30. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -14
  31. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts +0 -2
  32. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  33. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +1 -1
  34. package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.d.ts +3 -4
  35. package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.d.ts.map +1 -1
  36. package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.js +5 -22
  37. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  38. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +3 -20
  39. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts.map +1 -1
  40. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.js +2 -19
  41. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts +0 -5
  42. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  43. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +9 -38
  44. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  45. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +1 -9
  46. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  47. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +0 -3
  48. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +0 -5
  50. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  51. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +0 -1
  52. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  53. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +27 -56
  54. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  55. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -7
  56. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  57. package/dist/src/presentation/web/hooks/feature-flags-context.js +0 -1
  58. package/dist/src/presentation/web/lib/feature-flags.d.ts +0 -2
  59. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  60. package/dist/src/presentation/web/lib/feature-flags.js +0 -5
  61. package/dist/tsconfig.build.tsbuildinfo +1 -1
  62. package/package.json +1 -1
  63. package/web/.next/BUILD_ID +1 -1
  64. package/web/.next/build-manifest.json +2 -2
  65. package/web/.next/fallback-build-manifest.json +2 -2
  66. package/web/.next/prerender-manifest.json +3 -3
  67. package/web/.next/required-server-files.js +3 -3
  68. package/web/.next/required-server-files.json +3 -3
  69. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +44 -74
  70. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +4 -4
  71. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +44 -74
  74. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +4 -4
  75. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +56 -86
  78. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +4 -4
  79. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  80. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +56 -86
  82. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +4 -4
  83. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  84. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +40 -70
  86. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +4 -4
  87. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  88. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +44 -74
  90. package/web/.next/server/app/(dashboard)/create/page.js +4 -4
  91. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  92. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +56 -86
  94. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +4 -4
  95. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  96. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  97. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +56 -86
  98. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +4 -4
  99. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  100. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +40 -70
  102. package/web/.next/server/app/(dashboard)/page.js +4 -4
  103. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  104. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +40 -70
  106. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +4 -4
  107. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  108. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  109. package/web/.next/server/app/_global-error.html +2 -2
  110. package/web/.next/server/app/_global-error.rsc +1 -1
  111. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  112. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  113. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  114. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  115. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  116. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +2 -32
  117. package/web/.next/server/app/_not-found/page.js +1 -1
  118. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  119. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  121. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  122. package/web/.next/server/app/api/graph-data/route.js +1 -1
  123. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  124. package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -42
  125. package/web/.next/server/app/settings/page.js +2 -2
  126. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  127. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/skills/page/server-reference-manifest.json +12 -42
  129. package/web/.next/server/app/skills/page.js +1 -2
  130. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  131. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/tools/page/server-reference-manifest.json +12 -42
  133. package/web/.next/server/app/tools/page.js +1 -2
  134. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  135. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/version/page/server-reference-manifest.json +2 -32
  137. package/web/.next/server/app/version/page.js +2 -2
  138. package/web/.next/server/app/version/page.js.nft.json +1 -1
  139. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  141. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  142. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  143. package/web/.next/server/chunks/{[root-of-the-server]__693510ee._.js → [root-of-the-server]__dcd4f847._.js} +2 -2
  144. package/web/.next/server/chunks/[root-of-the-server]__dcd4f847._.js.map +1 -0
  145. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_fbb88113.js +3 -0
  146. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_fbb88113.js.map +1 -0
  147. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  148. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_fdfbf5cc.js +3 -0
  150. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_fdfbf5cc.js.map +1 -0
  151. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_d8fa0b5f.js +3 -0
  152. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_d8fa0b5f.js.map +1 -0
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js +3 -0
  154. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js.map +1 -0
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +3 -0
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js.map +1 -0
  157. package/web/.next/server/chunks/ssr/{[root-of-the-server]__755cfe02._.js → [root-of-the-server]__1aa034e9._.js} +2 -2
  158. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c3ab8422._.js.map → [root-of-the-server]__1aa034e9._.js.map} +1 -1
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__34323a67._.js +3 -0
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__34323a67._.js.map +1 -0
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__357de47c._.js +4 -0
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__357de47c._.js.map +1 -0
  165. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c3ab8422._.js → [root-of-the-server]__430169b6._.js} +2 -2
  166. package/web/.next/server/chunks/ssr/{[root-of-the-server]__755cfe02._.js.map → [root-of-the-server]__430169b6._.js.map} +1 -1
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__67fe07fe._.js +4 -0
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__67fe07fe._.js.map +1 -0
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__68c2d48e._.js +3 -0
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__68c2d48e._.js.map +1 -0
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +4 -0
  172. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -0
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a628fb91._.js → [root-of-the-server]__6cc70784._.js} +2 -2
  176. package/web/.next/server/chunks/ssr/{[root-of-the-server]__bfba58e6._.js.map → [root-of-the-server]__6cc70784._.js.map} +1 -1
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +4 -0
  178. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -0
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +4 -0
  180. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js.map +1 -0
  181. package/web/.next/server/chunks/ssr/[root-of-the-server]__a50a7e39._.js +4 -0
  182. package/web/.next/server/chunks/ssr/[root-of-the-server]__a50a7e39._.js.map +1 -0
  183. package/web/.next/server/chunks/ssr/{[root-of-the-server]__bfba58e6._.js → [root-of-the-server]__e44ae5ca._.js} +2 -2
  184. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a628fb91._.js.map → [root-of-the-server]__e44ae5ca._.js.map} +1 -1
  185. package/web/.next/server/chunks/ssr/_1bb79fe8._.js +3 -0
  186. package/web/.next/server/chunks/ssr/_1bb79fe8._.js.map +1 -0
  187. package/web/.next/server/chunks/ssr/{_02ec1aea._.js → _2f6f48b8._.js} +2 -2
  188. package/web/.next/server/chunks/ssr/{_02ec1aea._.js.map → _2f6f48b8._.js.map} +1 -1
  189. package/web/.next/server/chunks/ssr/{_d4c49d8a._.js → _4207f708._.js} +2 -2
  190. package/web/.next/server/chunks/ssr/_4207f708._.js.map +1 -0
  191. package/web/.next/server/chunks/ssr/_583a83fb._.js +3 -0
  192. package/web/.next/server/chunks/ssr/_583a83fb._.js.map +1 -0
  193. package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
  194. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/{_0020fddd._.js → _918887c5._.js} +2 -2
  196. package/web/.next/server/chunks/ssr/_918887c5._.js.map +1 -0
  197. package/web/.next/server/chunks/ssr/_9f56cf8f._.js +3 -0
  198. package/web/.next/server/chunks/ssr/_9f56cf8f._.js.map +1 -0
  199. package/web/.next/server/chunks/ssr/_a187fd7e._.js +3 -0
  200. package/web/.next/server/chunks/ssr/_a187fd7e._.js.map +1 -0
  201. package/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
  202. package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/_a5aa6371._.js +9 -0
  204. package/web/.next/server/chunks/ssr/_a5aa6371._.js.map +1 -0
  205. package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
  206. package/web/.next/server/chunks/ssr/_b730ac57._.js +3 -0
  207. package/web/.next/server/chunks/ssr/_b730ac57._.js.map +1 -0
  208. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
  210. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/_fae9e550._.js +3 -0
  212. package/web/.next/server/chunks/ssr/_fae9e550._.js.map +1 -0
  213. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  214. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  216. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +3 -0
  218. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  219. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js +3 -0
  220. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js.map +1 -0
  221. package/web/.next/server/chunks/ssr/{src_presentation_web_f5b454cd._.js → src_presentation_web_0f98f202._.js} +2 -2
  222. package/web/.next/server/chunks/ssr/{src_presentation_web_f5b454cd._.js.map → src_presentation_web_0f98f202._.js.map} +1 -1
  223. package/web/.next/server/chunks/ssr/src_presentation_web_9db47db7._.js +5 -0
  224. package/web/.next/server/chunks/ssr/{src_presentation_web_8e7fe0d1._.js.map → src_presentation_web_9db47db7._.js.map} +1 -1
  225. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f66cd328.js +3 -0
  226. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f66cd328.js.map +1 -0
  227. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +3 -0
  228. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -0
  229. package/web/.next/server/chunks/ssr/src_presentation_web_components_bdcfba35._.js +3 -0
  230. package/web/.next/server/chunks/ssr/src_presentation_web_components_bdcfba35._.js.map +1 -0
  231. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  232. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  233. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  234. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  235. package/web/.next/server/chunks/ssr/src_presentation_web_ede4a227._.js +5 -0
  236. package/web/.next/server/chunks/ssr/{src_presentation_web_b9023017._.js.map → src_presentation_web_ede4a227._.js.map} +1 -1
  237. package/web/.next/server/pages/500.html +2 -2
  238. package/web/.next/server/server-reference-manifest.js +1 -1
  239. package/web/.next/server/server-reference-manifest.json +294 -520
  240. package/web/.next/static/chunks/01ba448cf76c6014.js +1 -0
  241. package/web/.next/static/chunks/05e9c71e5e4cf531.js +1 -0
  242. package/web/.next/static/chunks/33d2f67ad4814aba.css +1 -0
  243. package/web/.next/static/chunks/{dc350d99389c1a4a.js → 41c7cee55ef51fc8.js} +1 -1
  244. package/web/.next/static/chunks/534e18ee1fbd8452.js +1 -0
  245. package/web/.next/static/chunks/{aa241b7236671e43.js → 62a58d2f3cd5f35f.js} +2 -2
  246. package/web/.next/static/chunks/8080c842b0358904.js +1 -0
  247. package/web/.next/static/chunks/9b2a23851096f1aa.js +1 -0
  248. package/web/.next/static/chunks/a67c9c6125c1aa32.js +1 -0
  249. package/web/.next/static/chunks/a8ba3f3e2b0f87aa.js +1 -0
  250. package/web/.next/static/chunks/abc3f71a05ccbdfe.js +1 -0
  251. package/web/.next/static/chunks/c1f3db103c2b226f.js +1 -0
  252. package/web/.next/static/chunks/cca0f5112a9260d8.js +1 -0
  253. package/web/.next/static/chunks/cd45aed9c46e1bf5.js +11 -0
  254. package/web/.next/static/chunks/d04de4be30ab78ca.js +3 -0
  255. package/web/.next/static/chunks/d47658be0870a4b9.js +1 -0
  256. package/web/.next/static/chunks/d8e86e8e5bb7cc0a.js +1 -0
  257. package/web/.next/static/chunks/eb9841ec4d80af01.js +1 -0
  258. package/web/.next/static/chunks/f9667ee1e5b445b7.js +1 -0
  259. package/web/.next/static/chunks/{c33839a8d27c34ce.js → fa373c6f8139a712.js} +2 -2
  260. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +0 -118
  261. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +0 -1
  262. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.js +0 -58
  263. package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.d.ts +0 -31
  264. package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.d.ts.map +0 -1
  265. package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.js +0 -86
  266. package/dist/packages/core/src/application/use-cases/repositories/list-github-repositories.use-case.d.ts +0 -13
  267. package/dist/packages/core/src/application/use-cases/repositories/list-github-repositories.use-case.d.ts.map +0 -1
  268. package/dist/packages/core/src/application/use-cases/repositories/list-github-repositories.use-case.js +0 -35
  269. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/040-add-repository-remote-url.d.ts +0 -12
  270. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/040-add-repository-remote-url.d.ts.map +0 -1
  271. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/040-add-repository-remote-url.js +0 -29
  272. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/041-add-feature-flag-github-import.d.ts +0 -11
  273. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/041-add-feature-flag-github-import.d.ts.map +0 -1
  274. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/041-add-feature-flag-github-import.js +0 -17
  275. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +0 -18
  276. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +0 -1
  277. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +0 -171
  278. package/dist/src/presentation/cli/commands/repo/add.command.d.ts +0 -13
  279. package/dist/src/presentation/cli/commands/repo/add.command.d.ts.map +0 -1
  280. package/dist/src/presentation/cli/commands/repo/add.command.js +0 -82
  281. package/dist/src/presentation/tui/wizards/github-import.wizard.d.ts +0 -33
  282. package/dist/src/presentation/tui/wizards/github-import.wizard.d.ts.map +0 -1
  283. package/dist/src/presentation/tui/wizards/github-import.wizard.js +0 -121
  284. package/dist/src/presentation/web/app/actions/import-github-repository.d.ts +0 -11
  285. package/dist/src/presentation/web/app/actions/import-github-repository.d.ts.map +0 -1
  286. package/dist/src/presentation/web/app/actions/import-github-repository.js +0 -27
  287. package/dist/src/presentation/web/app/actions/list-github-repositories.d.ts +0 -11
  288. package/dist/src/presentation/web/app/actions/list-github-repositories.d.ts.map +0 -1
  289. package/dist/src/presentation/web/app/actions/list-github-repositories.js +0 -17
  290. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.d.ts +0 -8
  291. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.d.ts.map +0 -1
  292. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.js +0 -33
  293. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.stories.d.ts +0 -10
  294. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.stories.d.ts.map +0 -1
  295. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.stories.js +0 -26
  296. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.d.ts +0 -15
  297. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.d.ts.map +0 -1
  298. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.js +0 -52
  299. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.d.ts +0 -10
  300. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.d.ts.map +0 -1
  301. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.js +0 -78
  302. package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.d.ts +0 -7
  303. package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.d.ts.map +0 -1
  304. package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.js +0 -46
  305. package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.stories.d.ts +0 -10
  306. package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.stories.d.ts.map +0 -1
  307. package/dist/src/presentation/web/components/common/github-import-dialog/github-url-input.stories.js +0 -29
  308. package/dist/src/presentation/web/components/common/github-import-dialog/index.d.ts +0 -4
  309. package/dist/src/presentation/web/components/common/github-import-dialog/index.d.ts.map +0 -1
  310. package/dist/src/presentation/web/components/common/github-import-dialog/index.js +0 -3
  311. package/web/.next/server/chunks/[root-of-the-server]__693510ee._.js.map +0 -1
  312. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +0 -3
  313. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +0 -1
  314. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
  315. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
  316. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +0 -3
  317. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +0 -1
  318. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +0 -3
  319. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +0 -1
  320. package/web/.next/server/chunks/ssr/[root-of-the-server]__166bcbbe._.js +0 -4
  321. package/web/.next/server/chunks/ssr/[root-of-the-server]__166bcbbe._.js.map +0 -1
  322. package/web/.next/server/chunks/ssr/[root-of-the-server]__338c67a2._.js +0 -4
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__338c67a2._.js.map +0 -1
  324. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +0 -3
  325. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js.map +0 -1
  326. package/web/.next/server/chunks/ssr/[root-of-the-server]__364a7d51._.js +0 -4
  327. package/web/.next/server/chunks/ssr/[root-of-the-server]__364a7d51._.js.map +0 -1
  328. package/web/.next/server/chunks/ssr/[root-of-the-server]__86692e81._.js +0 -4
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__86692e81._.js.map +0 -1
  330. package/web/.next/server/chunks/ssr/[root-of-the-server]__9a576834._.js +0 -3
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__9a576834._.js.map +0 -1
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__d61bd462._.js +0 -3
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__d61bd462._.js.map +0 -1
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__f08be88a._.js +0 -3
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__f08be88a._.js.map +0 -1
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__f4a463ee._.js +0 -4
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__f4a463ee._.js.map +0 -1
  338. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
  339. package/web/.next/server/chunks/ssr/_67104d9e._.js +0 -3
  340. package/web/.next/server/chunks/ssr/_67104d9e._.js.map +0 -1
  341. package/web/.next/server/chunks/ssr/_78e22029._.js +0 -3
  342. package/web/.next/server/chunks/ssr/_78e22029._.js.map +0 -1
  343. package/web/.next/server/chunks/ssr/_a7a52b70._.js +0 -9
  344. package/web/.next/server/chunks/ssr/_a7a52b70._.js.map +0 -1
  345. package/web/.next/server/chunks/ssr/_b4b8a636._.js +0 -3
  346. package/web/.next/server/chunks/ssr/_b4b8a636._.js.map +0 -1
  347. package/web/.next/server/chunks/ssr/_d4c49d8a._.js.map +0 -1
  348. package/web/.next/server/chunks/ssr/_d8575088._.js +0 -3
  349. package/web/.next/server/chunks/ssr/_d8575088._.js.map +0 -1
  350. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
  351. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
  352. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js +0 -3
  353. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js.map +0 -1
  354. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +0 -5
  355. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +0 -3
  356. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +0 -1
  357. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +0 -3
  358. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +0 -1
  359. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +0 -3
  360. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +0 -1
  361. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +0 -3
  362. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js.map +0 -1
  363. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +0 -5
  364. package/web/.next/server/chunks/ssr/src_presentation_web_components_a5e6c910._.js +0 -3
  365. package/web/.next/server/chunks/ssr/src_presentation_web_components_a5e6c910._.js.map +0 -1
  366. package/web/.next/static/chunks/179823f453f854ae.js +0 -1
  367. package/web/.next/static/chunks/19b580c6b5690953.js +0 -1
  368. package/web/.next/static/chunks/1dd878b6feb55d2e.js +0 -1
  369. package/web/.next/static/chunks/284ee94768ff2fcf.css +0 -1
  370. package/web/.next/static/chunks/314b8314f77d6921.js +0 -1
  371. package/web/.next/static/chunks/31aa863b59d1dc79.js +0 -1
  372. package/web/.next/static/chunks/370b319bd39f846c.js +0 -1
  373. package/web/.next/static/chunks/3e1e0f9bde3530d2.js +0 -1
  374. package/web/.next/static/chunks/5e552eb781b82c56.js +0 -1
  375. package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
  376. package/web/.next/static/chunks/664120018846590e.js +0 -1
  377. package/web/.next/static/chunks/66d0ac0ea569e330.js +0 -1
  378. package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
  379. package/web/.next/static/chunks/71e105c697b932e8.js +0 -1
  380. package/web/.next/static/chunks/a8055dd33cc3235b.js +0 -1
  381. package/web/.next/static/chunks/f259386f4875e70c.js +0 -1
  382. package/web/.next/static/chunks/fad3ba104b4a90e4.js +0 -13
  383. /package/web/.next/static/{qOZ4XNmNZzNHwEPy-2A7p → hWrKuop_3FR0syZrFWLvn}/_buildManifest.js +0 -0
  384. /package/web/.next/static/{qOZ4XNmNZzNHwEPy-2A7p → hWrKuop_3FR0syZrFWLvn}/_clientMiddlewareManifest.json +0 -0
  385. /package/web/.next/static/{qOZ4XNmNZzNHwEPy-2A7p → hWrKuop_3FR0syZrFWLvn}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/search.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-popover%401.1.15_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Brea_6845413866e39bfed03c608b19c71ed1/node_modules/%40radix-ui/react-popover/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/popover.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevrons-up-down.ts","../../../../../../../src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.tsx","../../../../../../../src/presentation/web/app/actions/data%3A1477f2%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A663282%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.tsx","../../../../../../../src/presentation/web/components/ui/command.tsx"],"sourcesContent":["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","\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Popover as PopoverPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n];\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxNSA1IDUgNS01IiAvPgogIDxwYXRoIGQ9Im03IDkgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up-down\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 ChevronsUpDown = createLucideIcon('chevrons-up-down', __iconNode);\n\nexport default ChevronsUpDown;\n","'use client';\n\nimport { useState, useCallback, useEffect } from 'react';\nimport { useRouter, usePathname } from 'next/navigation';\nimport { toast } from 'sonner';\nimport { adoptBranch } from '@/app/actions/adopt-branch';\nimport { listBranches } from '@/app/actions/list-branches';\nimport { AdoptBranchDrawer } from './adopt-branch-drawer';\nimport type { RepositoryOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\n\nexport interface AdoptDrawerClientProps {\n repositoryPath: string;\n repositories: RepositoryOption[];\n}\n\nexport function AdoptDrawerClient({ repositoryPath, repositories }: AdoptDrawerClientProps) {\n const router = useRouter();\n const pathname = usePathname();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [error, setError] = useState<string>();\n const [branches, setBranches] = useState<string[]>([]);\n const [branchesLoading, setBranchesLoading] = useState(false);\n const [selectedRepoPath, setSelectedRepoPath] = useState(repositoryPath);\n\n const isOnAdoptRoute = pathname.startsWith('/adopt');\n const isOpen = !isSubmitting && isOnAdoptRoute;\n\n // Reset isSubmitting once the route has actually changed away from /adopt\n useEffect(() => {\n if (!isOnAdoptRoute && isSubmitting) {\n setIsSubmitting(false);\n }\n }, [isOnAdoptRoute, isSubmitting]);\n\n // Clear error when drawer reopens and reset selected repo to default\n useEffect(() => {\n if (isOnAdoptRoute) {\n setError(undefined);\n setSelectedRepoPath(repositoryPath);\n }\n }, [isOnAdoptRoute, repositoryPath]);\n\n // Fetch branches when drawer opens AND a repository is selected\n useEffect(() => {\n if (isOnAdoptRoute && selectedRepoPath) {\n setBranchesLoading(true);\n setBranches([]);\n listBranches(selectedRepoPath)\n .then(setBranches)\n .catch(() => setBranches([]))\n .finally(() => setBranchesLoading(false));\n } else {\n setBranches([]);\n }\n }, [isOnAdoptRoute, selectedRepoPath]);\n\n const onClose = useCallback(() => {\n router.push('/');\n }, [router]);\n\n const handleRepositoryChange = useCallback((path: string) => {\n setSelectedRepoPath(path);\n }, []);\n\n const onSubmit = useCallback(\n (branchName: string, repoPath: string) => {\n setError(undefined);\n setIsSubmitting(true);\n router.push('/');\n\n adoptBranch({ branchName, repositoryPath: repoPath })\n .then((result) => {\n if (result.error) {\n toast.error(result.error);\n return;\n }\n window.dispatchEvent(\n new CustomEvent('shep:feature-created', {\n detail: {\n featureId: result.feature!.id,\n name: result.feature!.name,\n description: result.feature!.description,\n repositoryPath: result.feature!.repositoryPath,\n },\n })\n );\n toast.success(`Branch adopted as \"${result.feature!.name}\"`);\n })\n .catch(() => {\n toast.error('Failed to adopt branch');\n setIsSubmitting(false);\n });\n },\n [router]\n );\n\n return (\n <AdoptBranchDrawer\n open={isOpen}\n onClose={onClose}\n onSubmit={onSubmit}\n isSubmitting={isSubmitting}\n error={error}\n repositories={repositories}\n selectedRepositoryPath={selectedRepoPath}\n onRepositoryChange={handleRepositoryChange}\n branches={branches}\n branchesLoading={branchesLoading}\n />\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"408c477b9dcb60fabb0197f67d3e6934c0a3b283a4\":\"adoptBranch\"},\"src/presentation/web/app/actions/adopt-branch.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"408c477b9dcb60fabb0197f67d3e6934c0a3b283a4\",callServer,void 0,findSourceMapURL,\"adoptBranch\");export{$$RSC_SERVER_ACTION_0 as adoptBranch};","/* __next_internal_action_entry_do_not_use__ [{\"40895f52820f579feac498ea74d7dad5401cb5502b\":\"listBranches\"},\"src/presentation/web/app/actions/list-branches.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40895f52820f579feac498ea74d7dad5401cb5502b\",callServer,void 0,findSourceMapURL,\"listBranches\");export{$$RSC_SERVER_ACTION_0 as listBranches};","'use client';\n\nimport { useState, useCallback, useEffect, useRef } from 'react';\nimport { Check, CheckIcon, ChevronsUpDown, GitBranch, Loader2 } from 'lucide-react';\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { cn } from '@/lib/utils';\nimport type { RepositoryOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\n\nexport interface AdoptBranchDrawerProps {\n open: boolean;\n onClose: () => void;\n onSubmit: (branchName: string, repositoryPath: string) => void;\n isSubmitting?: boolean;\n error?: string;\n /** Available repositories for the repository selector */\n repositories?: RepositoryOption[];\n /** Currently selected repository path */\n selectedRepositoryPath?: string;\n /** Callback when user selects a different repository */\n onRepositoryChange?: (repositoryPath: string) => void;\n /** Available branch names for the combobox dropdown */\n branches?: string[];\n /** Whether branches are still loading */\n branchesLoading?: boolean;\n}\n\nexport function AdoptBranchDrawer({\n open,\n onClose,\n onSubmit,\n isSubmitting = false,\n error,\n repositories = [],\n selectedRepositoryPath,\n onRepositoryChange,\n branches = [],\n branchesLoading = false,\n}: AdoptBranchDrawerProps) {\n const [branchName, setBranchName] = useState('');\n const [comboboxOpen, setComboboxOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n const [repoOpen, setRepoOpen] = useState(false);\n const [repoQuery, setRepoQuery] = useState('');\n const repoInputRef = useRef<HTMLInputElement>(null);\n\n const selectedRepo = repositories.find((r) => r.path === selectedRepositoryPath);\n const hasRepo = !!selectedRepositoryPath;\n\n // Reset state when drawer closes\n useEffect(() => {\n if (!open) {\n setBranchName('');\n setInputValue('');\n setComboboxOpen(false);\n setRepoOpen(false);\n setRepoQuery('');\n }\n }, [open]);\n\n // Reset branch selection when repository changes\n useEffect(() => {\n setBranchName('');\n setInputValue('');\n }, [selectedRepositoryPath]);\n\n const handleSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n const trimmed = branchName.trim();\n if (!trimmed || !selectedRepositoryPath || isSubmitting) return;\n onSubmit(trimmed, selectedRepositoryPath);\n },\n [branchName, selectedRepositoryPath, isSubmitting, onSubmit]\n );\n\n const handleClose = useCallback(() => {\n setBranchName('');\n setInputValue('');\n onClose();\n }, [onClose]);\n\n const handleSelect = useCallback((branch: string) => {\n setBranchName(branch);\n setInputValue(branch);\n setComboboxOpen(false);\n }, []);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n if (!comboboxOpen) setComboboxOpen(true);\n },\n [comboboxOpen]\n );\n\n const handleInputKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n const trimmed = inputValue.trim();\n if (trimmed) {\n setBranchName(trimmed);\n setComboboxOpen(false);\n }\n }\n if (e.key === 'Escape') {\n setComboboxOpen(false);\n setInputValue(branchName);\n }\n },\n [inputValue, branchName]\n );\n\n const handleRepoSelect = useCallback(\n (path: string) => {\n onRepositoryChange?.(path);\n setRepoOpen(false);\n setRepoQuery('');\n },\n [onRepositoryChange]\n );\n\n const filteredBranches = branches.filter((b) =>\n b.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n const filteredRepos = repoQuery.trim()\n ? repositories.filter(\n (r) =>\n r.name.toLowerCase().includes(repoQuery.toLowerCase()) ||\n r.path.toLowerCase().includes(repoQuery.toLowerCase())\n )\n : repositories;\n\n useEffect(() => {\n if (repoOpen) {\n setTimeout(() => repoInputRef.current?.focus(), 0);\n } else {\n setRepoQuery('');\n }\n }, [repoOpen]);\n\n const isDisabled = !branchName.trim() || !selectedRepositoryPath || isSubmitting;\n\n const header = (\n <div>\n <DrawerTitle className=\"flex items-center gap-2\">\n <GitBranch className=\"h-4 w-4\" />\n Adopt Branch\n </DrawerTitle>\n <DrawerDescription className=\"text-muted-foreground text-sm\">\n Import an existing git branch into Shep&apos;s feature tracking\n </DrawerDescription>\n </div>\n );\n\n return (\n <BaseDrawer\n open={open}\n onClose={handleClose}\n size=\"sm\"\n modal={false}\n header={header}\n data-testid=\"adopt-branch-drawer\"\n >\n <form onSubmit={handleSubmit} className=\"flex flex-1 flex-col\">\n <div className=\"flex-1 overflow-y-auto p-4\">\n <div className=\"flex flex-col gap-4\">\n {/* Repository selector */}\n <div className=\"flex flex-col gap-2\">\n <Label>Repository</Label>\n <Popover open={repoOpen} onOpenChange={setRepoOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n role=\"combobox\"\n aria-expanded={repoOpen}\n aria-label=\"Repository\"\n disabled={isSubmitting}\n data-testid=\"adopt-repo-combobox\"\n className={cn(\n 'border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n !selectedRepo && 'text-muted-foreground'\n )}\n >\n <span className=\"truncate\">\n {selectedRepo ? selectedRepo.name : 'Select repository...'}\n </span>\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-80 p-0\"\n align=\"start\"\n data-testid=\"adopt-repo-combobox-content\"\n >\n <div className=\"flex flex-col\">\n <div className=\"border-b p-2\">\n <Input\n ref={repoInputRef}\n placeholder=\"Search repositories...\"\n value={repoQuery}\n onChange={(e) => setRepoQuery(e.target.value)}\n className=\"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0\"\n data-testid=\"adopt-repo-search\"\n />\n </div>\n <div\n className=\"max-h-48 overflow-y-auto py-1\"\n role=\"listbox\"\n aria-label=\"Repositories\"\n >\n {filteredRepos.length === 0 ? (\n <p className=\"text-muted-foreground px-3 py-2 text-sm\">\n No repositories found.\n </p>\n ) : (\n filteredRepos.map((r) => (\n <button\n key={r.id}\n type=\"button\"\n role=\"option\"\n aria-selected={selectedRepositoryPath === r.path}\n onClick={() => handleRepoSelect(r.path)}\n className={cn(\n 'hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm',\n selectedRepositoryPath === r.path && 'bg-accent/50'\n )}\n data-testid={`adopt-repo-option-${r.id}`}\n >\n <CheckIcon\n className={cn(\n 'h-4 w-4 shrink-0',\n selectedRepositoryPath !== r.path && 'invisible'\n )}\n />\n <span className=\"flex flex-col items-start truncate\">\n <span className=\"truncate\">{r.name}</span>\n <span className=\"text-muted-foreground truncate text-xs\">\n {r.path}\n </span>\n </span>\n </button>\n ))\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n <p className=\"text-muted-foreground text-xs\">\n Select the repository that contains the branch you want to adopt.\n </p>\n </div>\n\n {/* Branch selector */}\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"branch-name\">Branch name</Label>\n <Popover open={comboboxOpen} onOpenChange={setComboboxOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={comboboxOpen}\n disabled={isSubmitting || !hasRepo}\n className=\"w-full justify-between font-normal\"\n data-testid=\"adopt-branch-input\"\n >\n <span className=\"truncate\">\n {!hasRepo\n ? 'Select a repository first...'\n : branchesLoading\n ? 'Loading branches...'\n : branchName || 'Select a branch...'}\n </span>\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n align=\"start\"\n >\n <Command>\n <CommandInput\n ref={inputRef}\n placeholder=\"Search branches...\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n data-testid=\"adopt-branch-search\"\n />\n <CommandList>\n {!branchesLoading && filteredBranches.length === 0 && (\n <CommandEmpty>\n {branches.length === 0\n ? 'No branches found.'\n : inputValue\n ? 'No match — press Enter to use this value.'\n : 'No branches available.'}\n </CommandEmpty>\n )}\n {branchesLoading ? (\n <CommandEmpty>\n <Loader2 className=\"mx-auto h-4 w-4 animate-spin\" />\n </CommandEmpty>\n ) : null}\n {filteredBranches.length > 0 && (\n <CommandGroup>\n {filteredBranches.map((branch) => (\n <CommandItem\n key={branch}\n selected={branch === branchName}\n onClick={() => handleSelect(branch)}\n >\n <Check\n className={cn(\n 'mr-2 h-4 w-4',\n branch === branchName ? 'opacity-100' : 'opacity-0'\n )}\n />\n <GitBranch className=\"mr-2 h-3 w-3 opacity-50\" />\n {branch}\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n <p className=\"text-muted-foreground text-xs\">\n {hasRepo\n ? 'Select a branch from the dropdown or type to search. Local and remote branches are shown.'\n : 'Please select a repository above to see available branches.'}\n </p>\n </div>\n\n {error ? (\n <p className=\"text-destructive text-sm\" data-testid=\"adopt-branch-error\">\n {error}\n </p>\n ) : null}\n </div>\n </div>\n\n <div className=\"border-t p-4\">\n <div className=\"flex gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handleClose}\n disabled={isSubmitting}\n className=\"flex-1\"\n >\n Cancel\n </Button>\n <Button\n type=\"submit\"\n disabled={isDisabled}\n className=\"flex-1\"\n data-testid=\"adopt-branch-submit\"\n >\n {isSubmitting ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n Adopting...\n </>\n ) : (\n 'Adopt Branch'\n )}\n </Button>\n </div>\n </div>\n </form>\n </BaseDrawer>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport { Search } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/**\n * Command — minimal combobox primitives for model/item selection.\n *\n * Intentionally avoids the `cmdk` dependency and builds on native React +\n * Tailwind instead. Filtering logic lives in the consumer component.\n */\n\nconst Command = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className\n )}\n {...props}\n />\n )\n);\nCommand.displayName = 'Command';\n\nconst CommandInput = React.forwardRef<\n HTMLInputElement,\n React.InputHTMLAttributes<HTMLInputElement>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <input\n ref={ref}\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = 'CommandInput';\n\nconst CommandList = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('max-h-[300px] overflow-x-hidden overflow-y-auto', className)}\n {...props}\n />\n )\n);\nCommandList.displayName = 'CommandList';\n\nconst CommandEmpty = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-muted-foreground py-6 text-center text-sm', className)}\n {...props}\n />\n )\n);\nCommandEmpty.displayName = 'CommandEmpty';\n\nconst CommandGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-foreground overflow-hidden p-1', className)} {...props} />\n )\n);\nCommandGroup.displayName = 'CommandGroup';\n\ninterface CommandItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n selected?: boolean;\n}\n\nconst CommandItem = React.forwardRef<HTMLButtonElement, CommandItemProps>(\n ({ className, selected, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n data-selected={selected}\n className={cn(\n 'relative flex w-full cursor-default items-center rounded-sm px-2 py-1.5 text-sm transition-colors outline-none select-none',\n 'hover:bg-accent hover:text-accent-foreground',\n 'data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground',\n 'disabled:pointer-events-none disabled:opacity-50',\n className\n )}\n {...props}\n />\n )\n);\nCommandItem.displayName = 'CommandItem';\n\nconst CommandSeparator = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('bg-border -mx-1 h-px', className)} {...props} />\n )\n);\nCommandSeparator.displayName = 'CommandSeparator';\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n};\n"],"names":[],"mappings":"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","ignoreList":[0,1,3]}
@@ -1,4 +1,4 @@
1
- module.exports=[33244,a=>{"use strict";let b="__shepSettings";function c(){let a=globalThis[b];if(null!=a)return a;let c=process[b];return null!=c?c:null}function d(a){globalThis[b]=a,process[b]=a}function e(a){if(null!==c())throw Error("Settings already initialized. Cannot re-initialize.");d(a)}function f(){let a=c();if(null===a)throw Error("Settings not initialized. Call initializeSettings() during CLI bootstrap.");return a}function g(){return null!==c()}function h(a){if(null===c())throw Error("Settings not initialized. Cannot update before initialization.");d(a)}function i(){d(null)}a.s(["getSettings",()=>f,"hasSettings",()=>g,"initializeSettings",()=>e,"resetSettings",()=>i,"updateSettings",()=>h])},40848,a=>{"use strict";var b=a.i(33244);function c(a){return"true"===a||"1"===a}function d(){try{if((0,b.hasSettings)()){let a=(0,b.getSettings)().featureFlags;if(a)return{skills:a.skills,envDeploy:a.envDeploy,debug:a.debug,githubImport:a.githubImport,adoptBranch:a.adoptBranch}}}catch{}return{skills:c(process.env.NEXT_PUBLIC_FLAG_SKILLS),envDeploy:void 0===process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY||c(process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY),debug:!1,githubImport:!1,adoptBranch:!1}}a.s(["featureFlags",0,{get skills(){return d().skills},get envDeploy(){return d().envDeploy},get debug(){return d().debug},get githubImport(){return d().githubImport},get adoptBranch(){return d().adoptBranch}},"getFeatureFlags",()=>d])},2080,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>","AppShell")},34168,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx","AppShell")},24028,a=>{"use strict";a.i(2080);var b=a.i(34168);a.n(b)},1834,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>","Toaster")},11900,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/ui/sonner.tsx","Toaster")},87291,a=>{"use strict";a.i(1834);var b=a.i(11900);a.n(b)},54856,a=>{"use strict";a.s(["FeatureFlagsProvider",()=>c,"useFeatureFlags",()=>d]);var b=a.i(28478);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call FeatureFlagsProvider() from the server but FeatureFlagsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>","FeatureFlagsProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useFeatureFlags() from the server but useFeatureFlags is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>","useFeatureFlags")},59259,a=>{"use strict";a.s(["FeatureFlagsProvider",()=>c,"useFeatureFlags",()=>d]);var b=a.i(28478);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call FeatureFlagsProvider() from the server but FeatureFlagsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx","FeatureFlagsProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useFeatureFlags() from the server but useFeatureFlags is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx","useFeatureFlags")},74701,a=>{"use strict";a.i(54856);var b=a.i(59259);a.n(b)},72884,a=>{"use strict";var b=a.i(92807),c=a.i(24028),d=a.i(87291),e=a.i(40848),f=a.i(74701);function g({children:a}){return(0,b.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,b.jsx)("head",{children:(0,b.jsx)("script",{dangerouslySetInnerHTML:{__html:`
1
+ module.exports=[33244,a=>{"use strict";let b="__shepSettings";function c(){let a=globalThis[b];if(null!=a)return a;let c=process[b];return null!=c?c:null}function d(a){globalThis[b]=a,process[b]=a}function e(a){if(null!==c())throw Error("Settings already initialized. Cannot re-initialize.");d(a)}function f(){let a=c();if(null===a)throw Error("Settings not initialized. Call initializeSettings() during CLI bootstrap.");return a}function g(){return null!==c()}function h(a){if(null===c())throw Error("Settings not initialized. Cannot update before initialization.");d(a)}function i(){d(null)}a.s(["getSettings",()=>f,"hasSettings",()=>g,"initializeSettings",()=>e,"resetSettings",()=>i,"updateSettings",()=>h])},40848,a=>{"use strict";var b=a.i(33244);function c(a){return"true"===a||"1"===a}function d(){try{if((0,b.hasSettings)()){let a=(0,b.getSettings)().featureFlags;if(a)return{skills:a.skills,envDeploy:a.envDeploy,debug:a.debug,adoptBranch:a.adoptBranch}}}catch{}return{skills:c(process.env.NEXT_PUBLIC_FLAG_SKILLS),envDeploy:void 0===process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY||c(process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY),debug:!1,adoptBranch:!1}}a.s(["featureFlags",0,{get skills(){return d().skills},get envDeploy(){return d().envDeploy},get debug(){return d().debug},get adoptBranch(){return d().adoptBranch}},"getFeatureFlags",()=>d])},2080,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>","AppShell")},34168,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx","AppShell")},24028,a=>{"use strict";a.i(2080);var b=a.i(34168);a.n(b)},1834,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>","Toaster")},11900,a=>{"use strict";a.s(["Toaster",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/components/ui/sonner.tsx","Toaster")},87291,a=>{"use strict";a.i(1834);var b=a.i(11900);a.n(b)},54856,a=>{"use strict";a.s(["FeatureFlagsProvider",()=>c,"useFeatureFlags",()=>d]);var b=a.i(28478);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call FeatureFlagsProvider() from the server but FeatureFlagsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>","FeatureFlagsProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useFeatureFlags() from the server but useFeatureFlags is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>","useFeatureFlags")},59259,a=>{"use strict";a.s(["FeatureFlagsProvider",()=>c,"useFeatureFlags",()=>d]);var b=a.i(28478);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call FeatureFlagsProvider() from the server but FeatureFlagsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx","FeatureFlagsProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useFeatureFlags() from the server but useFeatureFlags is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/hooks/feature-flags-context.tsx","useFeatureFlags")},74701,a=>{"use strict";a.i(54856);var b=a.i(59259);a.n(b)},72884,a=>{"use strict";var b=a.i(92807),c=a.i(24028),d=a.i(87291),e=a.i(40848),f=a.i(74701);function g({children:a}){return(0,b.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,b.jsx)("head",{children:(0,b.jsx)("script",{dangerouslySetInnerHTML:{__html:`
2
2
  (function() {
3
3
  try {
4
4
  const theme = localStorage.getItem('shep-theme');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/core/src/infrastructure/services/settings.service.ts","../../../../../../../src/presentation/web/lib/feature-flags.ts","../../../../../../../src/presentation/web/components/layouts/app-shell/app-shell.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/components/ui/sonner.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/hooks/feature-flags-context.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/components/layouts/app-shell/index.ts","../../../../../../../src/presentation/web/app/layout.tsx"],"sourcesContent":["/**\n * Settings Service\n *\n * Provides global access to application settings within the CLI.\n * Uses globalThis/process storage so the singleton survives Turbopack\n * module re-evaluations in Next.js API routes.\n *\n * Usage:\n * ```typescript\n * import { getSettings } from './infrastructure/services/settings.service.js';\n *\n * const settings = getSettings();\n * console.log(settings.models.default); // 'claude-sonnet-4-6'\n * ```\n */\n\nimport type { Settings } from '../../domain/generated/output.js';\n\n/** The globalThis / process key for the settings singleton. */\nconst SHEP_SETTINGS_KEY = '__shepSettings';\n\n/** Read the settings instance from globalThis, falling back to process. */\nfunction readSettings(): Settings | null {\n const fromGlobal = (globalThis as Record<string, unknown>)[SHEP_SETTINGS_KEY];\n if (fromGlobal != null) return fromGlobal as Settings;\n\n const fromProcess = (process as unknown as Record<string, unknown>)[SHEP_SETTINGS_KEY];\n if (fromProcess != null) return fromProcess as Settings;\n\n return null;\n}\n\n/** Write the settings instance to both globalThis and process. */\nfunction writeSettings(value: Settings | null): void {\n (globalThis as Record<string, unknown>)[SHEP_SETTINGS_KEY] = value;\n (process as unknown as Record<string, unknown>)[SHEP_SETTINGS_KEY] = value;\n}\n\n/**\n * Initialize the settings service with loaded settings.\n * Must be called once during CLI bootstrap.\n *\n * @param settings - The initialized settings\n * @throws Error if settings are already initialized\n */\nexport function initializeSettings(settings: Settings): void {\n if (readSettings() !== null) {\n throw new Error('Settings already initialized. Cannot re-initialize.');\n }\n\n writeSettings(settings);\n}\n\n/**\n * Get the current application settings.\n *\n * @returns Current settings instance\n * @throws Error if settings haven't been initialized yet\n *\n * @example\n * ```typescript\n * const settings = getSettings();\n * console.log(settings.system.logLevel); // 'info'\n * ```\n */\nexport function getSettings(): Settings {\n const instance = readSettings();\n if (instance === null) {\n throw new Error('Settings not initialized. Call initializeSettings() during CLI bootstrap.');\n }\n\n return instance;\n}\n\n/**\n * Check if settings have been initialized.\n *\n * @returns True if settings are initialized, false otherwise\n */\nexport function hasSettings(): boolean {\n return readSettings() !== null;\n}\n\n/**\n * Update the settings singleton with new values.\n * Used after a successful database write to refresh the in-memory\n * singleton so the rest of the application sees the updated values\n * without a full page reload.\n *\n * @param settings - The updated settings to store\n * @throws Error if settings haven't been initialized yet\n */\nexport function updateSettings(settings: Settings): void {\n if (readSettings() === null) {\n throw new Error('Settings not initialized. Cannot update before initialization.');\n }\n\n writeSettings(settings);\n}\n\n/**\n * Reset settings instance (for testing purposes only).\n * DO NOT use in production code.\n *\n * @internal\n */\nexport function resetSettings(): void {\n writeSettings(null);\n}\n","/**\n * Feature flags for the web UI.\n *\n * DB-primary resolution: reads from Settings.featureFlags when available,\n * falls back to NEXT_PUBLIC_ environment variables.\n * The debug flag is DB-only (no env var fallback).\n */\n\nimport { hasSettings, getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nfunction isEnabled(envVar: string | undefined): boolean {\n return envVar === 'true' || envVar === '1';\n}\n\nexport interface FeatureFlagsState {\n skills: boolean;\n envDeploy: boolean;\n debug: boolean;\n githubImport: boolean;\n adoptBranch: boolean;\n}\n\nexport function getFeatureFlags(): FeatureFlagsState {\n try {\n if (hasSettings()) {\n const flags = getSettings().featureFlags;\n if (flags) {\n return {\n skills: flags.skills,\n envDeploy: flags.envDeploy,\n debug: flags.debug,\n githubImport: flags.githubImport,\n adoptBranch: flags.adoptBranch,\n };\n }\n }\n } catch {\n // Settings not initialized (e.g., during build/SSG or client-side hydration)\n }\n\n return {\n skills: isEnabled(process.env.NEXT_PUBLIC_FLAG_SKILLS),\n envDeploy:\n process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY !== undefined\n ? isEnabled(process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY)\n : true,\n debug: false,\n githubImport: false,\n adoptBranch: false,\n };\n}\n\n/**\n * @deprecated Use getFeatureFlags() instead for DB-primary resolution.\n * Kept for backward compatibility during migration.\n */\nexport const featureFlags = {\n get skills() {\n return getFeatureFlags().skills;\n },\n get envDeploy() {\n return getFeatureFlags().envDeploy;\n },\n get debug() {\n return getFeatureFlags().debug;\n },\n get githubImport() {\n return getFeatureFlags().githubImport;\n },\n get adoptBranch() {\n return getFeatureFlags().adoptBranch;\n },\n} as const;\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AppShell = registerClientReference(\n function() { throw new Error(\"Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx\",\n \"AppShell\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const Toaster = registerClientReference(\n function() { throw new Error(\"Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/components/ui/sonner.tsx\",\n \"Toaster\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const FeatureFlagsProvider = registerClientReference(\n function() { throw new Error(\"Attempted to call FeatureFlagsProvider() from the server but FeatureFlagsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/hooks/feature-flags-context.tsx\",\n \"FeatureFlagsProvider\",\n);\nexport const useFeatureFlags = registerClientReference(\n function() { throw new Error(\"Attempted to call useFeatureFlags() from the server but useFeatureFlags is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/hooks/feature-flags-context.tsx\",\n \"useFeatureFlags\",\n);\n","export { AppShell } from './app-shell';\n","import type { Metadata } from 'next';\nimport '@xyflow/react/dist/base.css';\nimport './globals.css';\nimport { AppShell } from '@/components/layouts/app-shell';\nimport { Toaster } from '@/components/ui/sonner';\nimport { getFeatureFlags } from '@/lib/feature-flags';\nimport { FeatureFlagsProvider } from '@/hooks/feature-flags-context';\n\n/** Force dynamic rendering for all pages since they depend on client-side context. */\nexport const dynamic = 'force-dynamic';\n\nexport const metadata: Metadata = {\n title: 'Shep AI',\n description:\n 'Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy',\n icons: [\n {\n rel: 'icon',\n url: '/favicon-light.svg',\n type: 'image/svg+xml',\n media: '(prefers-color-scheme: light)',\n },\n {\n rel: 'icon',\n url: '/favicon-dark.svg',\n type: 'image/svg+xml',\n media: '(prefers-color-scheme: dark)',\n },\n ],\n};\n\nexport default function RootLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n <html lang=\"en\" suppressHydrationWarning>\n <head>\n <script\n dangerouslySetInnerHTML={{\n __html: `\n (function() {\n try {\n const theme = localStorage.getItem('shep-theme');\n const systemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n if (theme === 'dark' || (theme === 'system' && systemDark) || (!theme && systemDark)) {\n document.documentElement.classList.add('dark');\n }\n } catch (e) {}\n })();\n `,\n }}\n />\n </head>\n <body className=\"min-h-screen antialiased\">\n <FeatureFlagsProvider flags={getFeatureFlags()}>\n <AppShell>{children}</AppShell>\n </FeatureFlagsProvider>\n <Toaster position=\"bottom-center\" />\n </body>\n </html>\n );\n}\n"],"names":[],"mappings":"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","ignoreList":[2,3,4]}
1
+ {"version":3,"sources":["../../../../../../../packages/core/src/infrastructure/services/settings.service.ts","../../../../../../../src/presentation/web/lib/feature-flags.ts","../../../../../../../src/presentation/web/components/layouts/app-shell/app-shell.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/components/ui/sonner.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/hooks/feature-flags-context.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/components/layouts/app-shell/index.ts","../../../../../../../src/presentation/web/app/layout.tsx"],"sourcesContent":["/**\n * Settings Service\n *\n * Provides global access to application settings within the CLI.\n * Uses globalThis/process storage so the singleton survives Turbopack\n * module re-evaluations in Next.js API routes.\n *\n * Usage:\n * ```typescript\n * import { getSettings } from './infrastructure/services/settings.service.js';\n *\n * const settings = getSettings();\n * console.log(settings.models.default); // 'claude-sonnet-4-6'\n * ```\n */\n\nimport type { Settings } from '../../domain/generated/output.js';\n\n/** The globalThis / process key for the settings singleton. */\nconst SHEP_SETTINGS_KEY = '__shepSettings';\n\n/** Read the settings instance from globalThis, falling back to process. */\nfunction readSettings(): Settings | null {\n const fromGlobal = (globalThis as Record<string, unknown>)[SHEP_SETTINGS_KEY];\n if (fromGlobal != null) return fromGlobal as Settings;\n\n const fromProcess = (process as unknown as Record<string, unknown>)[SHEP_SETTINGS_KEY];\n if (fromProcess != null) return fromProcess as Settings;\n\n return null;\n}\n\n/** Write the settings instance to both globalThis and process. */\nfunction writeSettings(value: Settings | null): void {\n (globalThis as Record<string, unknown>)[SHEP_SETTINGS_KEY] = value;\n (process as unknown as Record<string, unknown>)[SHEP_SETTINGS_KEY] = value;\n}\n\n/**\n * Initialize the settings service with loaded settings.\n * Must be called once during CLI bootstrap.\n *\n * @param settings - The initialized settings\n * @throws Error if settings are already initialized\n */\nexport function initializeSettings(settings: Settings): void {\n if (readSettings() !== null) {\n throw new Error('Settings already initialized. Cannot re-initialize.');\n }\n\n writeSettings(settings);\n}\n\n/**\n * Get the current application settings.\n *\n * @returns Current settings instance\n * @throws Error if settings haven't been initialized yet\n *\n * @example\n * ```typescript\n * const settings = getSettings();\n * console.log(settings.system.logLevel); // 'info'\n * ```\n */\nexport function getSettings(): Settings {\n const instance = readSettings();\n if (instance === null) {\n throw new Error('Settings not initialized. Call initializeSettings() during CLI bootstrap.');\n }\n\n return instance;\n}\n\n/**\n * Check if settings have been initialized.\n *\n * @returns True if settings are initialized, false otherwise\n */\nexport function hasSettings(): boolean {\n return readSettings() !== null;\n}\n\n/**\n * Update the settings singleton with new values.\n * Used after a successful database write to refresh the in-memory\n * singleton so the rest of the application sees the updated values\n * without a full page reload.\n *\n * @param settings - The updated settings to store\n * @throws Error if settings haven't been initialized yet\n */\nexport function updateSettings(settings: Settings): void {\n if (readSettings() === null) {\n throw new Error('Settings not initialized. Cannot update before initialization.');\n }\n\n writeSettings(settings);\n}\n\n/**\n * Reset settings instance (for testing purposes only).\n * DO NOT use in production code.\n *\n * @internal\n */\nexport function resetSettings(): void {\n writeSettings(null);\n}\n","/**\n * Feature flags for the web UI.\n *\n * DB-primary resolution: reads from Settings.featureFlags when available,\n * falls back to NEXT_PUBLIC_ environment variables.\n * The debug flag is DB-only (no env var fallback).\n */\n\nimport { hasSettings, getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nfunction isEnabled(envVar: string | undefined): boolean {\n return envVar === 'true' || envVar === '1';\n}\n\nexport interface FeatureFlagsState {\n skills: boolean;\n envDeploy: boolean;\n debug: boolean;\n adoptBranch: boolean;\n}\n\nexport function getFeatureFlags(): FeatureFlagsState {\n try {\n if (hasSettings()) {\n const flags = getSettings().featureFlags;\n if (flags) {\n return {\n skills: flags.skills,\n envDeploy: flags.envDeploy,\n debug: flags.debug,\n adoptBranch: flags.adoptBranch,\n };\n }\n }\n } catch {\n // Settings not initialized (e.g., during build/SSG or client-side hydration)\n }\n\n return {\n skills: isEnabled(process.env.NEXT_PUBLIC_FLAG_SKILLS),\n envDeploy:\n process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY !== undefined\n ? isEnabled(process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY)\n : true,\n debug: false,\n adoptBranch: false,\n };\n}\n\n/**\n * @deprecated Use getFeatureFlags() instead for DB-primary resolution.\n * Kept for backward compatibility during migration.\n */\nexport const featureFlags = {\n get skills() {\n return getFeatureFlags().skills;\n },\n get envDeploy() {\n return getFeatureFlags().envDeploy;\n },\n get debug() {\n return getFeatureFlags().debug;\n },\n get adoptBranch() {\n return getFeatureFlags().adoptBranch;\n },\n} as const;\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AppShell = registerClientReference(\n function() { throw new Error(\"Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx\",\n \"AppShell\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const Toaster = registerClientReference(\n function() { throw new Error(\"Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/components/ui/sonner.tsx\",\n \"Toaster\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const FeatureFlagsProvider = registerClientReference(\n function() { throw new Error(\"Attempted to call FeatureFlagsProvider() from the server but FeatureFlagsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/hooks/feature-flags-context.tsx\",\n \"FeatureFlagsProvider\",\n);\nexport const useFeatureFlags = registerClientReference(\n function() { throw new Error(\"Attempted to call useFeatureFlags() from the server but useFeatureFlags is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/hooks/feature-flags-context.tsx\",\n \"useFeatureFlags\",\n);\n","export { AppShell } from './app-shell';\n","import type { Metadata } from 'next';\nimport '@xyflow/react/dist/base.css';\nimport './globals.css';\nimport { AppShell } from '@/components/layouts/app-shell';\nimport { Toaster } from '@/components/ui/sonner';\nimport { getFeatureFlags } from '@/lib/feature-flags';\nimport { FeatureFlagsProvider } from '@/hooks/feature-flags-context';\n\n/** Force dynamic rendering for all pages since they depend on client-side context. */\nexport const dynamic = 'force-dynamic';\n\nexport const metadata: Metadata = {\n title: 'Shep AI',\n description:\n 'Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy',\n icons: [\n {\n rel: 'icon',\n url: '/favicon-light.svg',\n type: 'image/svg+xml',\n media: '(prefers-color-scheme: light)',\n },\n {\n rel: 'icon',\n url: '/favicon-dark.svg',\n type: 'image/svg+xml',\n media: '(prefers-color-scheme: dark)',\n },\n ],\n};\n\nexport default function RootLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n <html lang=\"en\" suppressHydrationWarning>\n <head>\n <script\n dangerouslySetInnerHTML={{\n __html: `\n (function() {\n try {\n const theme = localStorage.getItem('shep-theme');\n const systemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n if (theme === 'dark' || (theme === 'system' && systemDark) || (!theme && systemDark)) {\n document.documentElement.classList.add('dark');\n }\n } catch (e) {}\n })();\n `,\n }}\n />\n </head>\n <body className=\"min-h-screen antialiased\">\n <FeatureFlagsProvider flags={getFeatureFlags()}>\n <AppShell>{children}</AppShell>\n </FeatureFlagsProvider>\n <Toaster position=\"bottom-center\" />\n </body>\n </html>\n );\n}\n"],"names":[],"mappings":"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","ignoreList":[2,3,4]}
@@ -0,0 +1,9 @@
1
+ module.exports=[58508,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},2065,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(96960);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},61712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},27478,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},46168,a=>{"use strict";let b=(0,a.i(25700).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock",()=>b],46168)},3703,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(7420),e=a.i(6175),f=a.i(40093),g=a.i(59653),h=a.i(90986),i="AlertDialog",[j,k]=(0,d.createContextScope)(i,[f.createDialogScope]),l=(0,f.createDialogScope)(),m=a=>{let{__scopeAlertDialog:c,...d}=a,e=l(c);return(0,b.jsx)(f.Root,{...e,...d,modal:!0})};m.displayName=i;var n=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Trigger,{...g,...e,ref:c})});n.displayName="AlertDialogTrigger";var o=a=>{let{__scopeAlertDialog:c,...d}=a,e=l(c);return(0,b.jsx)(f.Portal,{...e,...d})};o.displayName="AlertDialogPortal";var p=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Overlay,{...g,...e,ref:c})});p.displayName="AlertDialogOverlay";var q="AlertDialogContent",[r,s]=j(q),t=(0,h.createSlottable)("AlertDialogContent"),u=c.forwardRef((a,d)=>{let{__scopeAlertDialog:h,children:i,...j}=a,k=l(h),m=c.useRef(null),n=(0,e.useComposedRefs)(d,m),o=c.useRef(null);return(0,b.jsx)(f.WarningProvider,{contentName:q,titleName:v,docsSlug:"alert-dialog",children:(0,b.jsx)(r,{scope:h,cancelRef:o,children:(0,b.jsxs)(f.Content,{role:"alertdialog",...k,...j,ref:n,onOpenAutoFocus:(0,g.composeEventHandlers)(j.onOpenAutoFocus,a=>{a.preventDefault(),o.current?.focus({preventScroll:!0})}),onPointerDownOutside:a=>a.preventDefault(),onInteractOutside:a=>a.preventDefault(),children:[(0,b.jsx)(t,{children:i}),(0,b.jsx)(C,{contentRef:m})]})})})});u.displayName=q;var v="AlertDialogTitle",w=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Title,{...g,...e,ref:c})});w.displayName=v;var x="AlertDialogDescription",y=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Description,{...g,...e,ref:c})});y.displayName=x;var z=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Close,{...g,...e,ref:c})});z.displayName="AlertDialogAction";var A="AlertDialogCancel",B=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...g}=a,{cancelRef:h}=s(A,d),i=l(d),j=(0,e.useComposedRefs)(c,h);return(0,b.jsx)(f.Close,{...i,...g,ref:j})});B.displayName=A;var C=({contentRef:a})=>{let b=`\`${q}\` requires a description for the component to be accessible for screen reader users.
2
+
3
+ You can add a description to the \`${q}\` by passing a \`${x}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
+
5
+ Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${q}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
+
7
+ For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return c.useEffect(()=>{document.getElementById(a.current?.getAttribute("aria-describedby"))||console.warn(b)},[b,a]),null};a.s(["Action",()=>z,"AlertDialog",()=>m,"AlertDialogAction",()=>z,"AlertDialogCancel",()=>B,"AlertDialogContent",()=>u,"AlertDialogDescription",()=>y,"AlertDialogOverlay",()=>p,"AlertDialogPortal",()=>o,"AlertDialogTitle",()=>w,"AlertDialogTrigger",()=>n,"Cancel",()=>B,"Content",()=>u,"Description",()=>y,"Overlay",()=>p,"Portal",()=>o,"Root",()=>m,"Title",()=>w,"Trigger",()=>n,"createAlertDialogScope",()=>k],41802);var D=a.i(41802),D=D,E=a.i(85536),F=a.i(18948);function G({...a}){return(0,b.jsx)(D.Root,{"data-slot":"alert-dialog",...a})}function H({...a}){return(0,b.jsx)(D.Portal,{"data-slot":"alert-dialog-portal",...a})}function I({className:a,onClick:c,...d}){return(0,b.jsx)(D.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/50",a),onClick:a=>{a.stopPropagation(),c?.(a)},...d})}function J({className:a,size:c="default",...d}){return(0,b.jsxs)(H,{children:[(0,b.jsx)(I,{}),(0,b.jsx)(D.Content,{"data-slot":"alert-dialog-content","data-size":c,className:(0,E.cn)("bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",a),...d})]})}function K({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,E.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",a),...c})}function L({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,E.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",a),...c})}function M({className:a,...c}){return(0,b.jsx)(D.Title,{"data-slot":"alert-dialog-title",className:(0,E.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",a),...c})}function N({className:a,...c}){return(0,b.jsx)(D.Description,{"data-slot":"alert-dialog-description",className:(0,E.cn)("text-muted-foreground text-sm",a),...c})}function O({className:a,variant:c="default",size:d="default",...e}){return(0,b.jsx)(F.Button,{variant:c,size:d,asChild:!0,children:(0,b.jsx)(D.Action,{"data-slot":"alert-dialog-action",className:(0,E.cn)(a),...e})})}function P({className:a,variant:c="outline",size:d="default",...e}){return(0,b.jsx)(F.Button,{variant:c,size:d,asChild:!0,children:(0,b.jsx)(D.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,E.cn)(a),...e})})}a.s(["AlertDialog",()=>G,"AlertDialogAction",()=>O,"AlertDialogCancel",()=>P,"AlertDialogContent",()=>J,"AlertDialogDescription",()=>N,"AlertDialogFooter",()=>L,"AlertDialogHeader",()=>K,"AlertDialogTitle",()=>M],3703)},96213,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(3703);let e=(0,c.createContext)(null);function f({children:a}){let f=(0,c.useRef)(null),g=(0,c.useRef)(null),[h,i]=(0,c.useState)(!1),j=(0,c.useCallback)(a=>{f.current=a},[]),k=(0,c.useCallback)(a=>{if(f.current?.isDirty){g.current=a,i(!0);return}a()},[]),l=(0,c.useCallback)(()=>{i(!1),f.current?.onReset(),f.current=null,g.current?.(),g.current=null},[]),m=(0,c.useCallback)(()=>{i(!1),g.current=null},[]),n=(0,c.useCallback)(()=>f.current?.isDirty??!1,[]);return(0,b.jsxs)(e,{value:{setGuard:j,guardedNavigate:k,getIsDirty:n},children:[a,(0,b.jsx)(d.AlertDialog,{open:h,children:(0,b.jsxs)(d.AlertDialogContent,{children:[(0,b.jsxs)(d.AlertDialogHeader,{children:[(0,b.jsx)(d.AlertDialogTitle,{children:"Discard unsaved changes?"}),(0,b.jsx)(d.AlertDialogDescription,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),(0,b.jsxs)(d.AlertDialogFooter,{children:[(0,b.jsx)(d.AlertDialogAction,{variant:"destructive",onClick:l,children:"Discard"}),(0,b.jsx)(d.AlertDialogCancel,{onClick:m,children:"Keep editing"})]})]})})]})}function g(){let a=(0,c.useContext)(e);if(!a)throw Error("useDrawerCloseGuard must be used within DrawerCloseGuardProvider");return a}function h({open:a,isDirty:b,onClose:d,onReset:e}){let{setGuard:f,guardedNavigate:h}=g();return(0,c.useEffect)(()=>(a?f({isDirty:b,onReset:e}):f(null),()=>f(null)),[a,b,e,f]),{attemptClose:(0,c.useCallback)(()=>{h(()=>{e(),d()})},[h,d,e])}}a.s(["DrawerCloseGuardProvider",()=>f,"useDrawerCloseGuard",()=>g,"useGuardedDrawerClose",()=>h])}];
8
+
9
+ //# sourceMappingURL=_a5aa6371._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/segment.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/use-merged-ref.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/deployment-id.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/clock.ts","../../../../../../../src/presentation/web/components/ui/alert-dialog.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-alert-dialog%401.1.15_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40type_56f594cfdf18ff10dafbf7587c6528db/node_modules/%40radix-ui/react-alert-dialog/dist/index.mjs","../../../../../../../src/presentation/web/hooks/drawer-close-guard.tsx"],"sourcesContent":["import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","// This could also be a variable instead of a function, but some unit tests want to change the ID at\n// runtime. Even though that would never happen in a real deployment.\nexport function getDeploymentId(): string | undefined {\n return process.env.NEXT_DEPLOYMENT_ID\n}\n\nexport function getDeploymentIdQueryOrEmptyString(): string {\n let deploymentId = getDeploymentId()\n if (deploymentId) {\n return `?dpl=${deploymentId}`\n }\n return ''\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 6v6l4 2', key: 'mmk7yg' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock\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 Clock = createLucideIcon('clock', __iconNode);\n\nexport default Clock;\n","'use client';\n\nimport * as React from 'react';\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\n\nfunction AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\nfunction AlertDialogOverlay({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn('fixed inset-0 z-50 bg-black/50', className)}\n onClick={(e) => {\n // Prevent overlay clicks from propagating to document-level handlers\n // (e.g. BaseDrawer outside-click) — only the dialog should dismiss.\n e.stopPropagation();\n onClick?.(e);\n }}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {\n size?: 'default' | 'sm';\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n 'bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg',\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n 'text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Action\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = 'outline',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Cancel\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n useRef,\n type ReactNode,\n} from 'react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\n\n/* ---------------------------------------------------------------------------\n * Context\n * ------------------------------------------------------------------------- */\n\ninterface DrawerCloseGuardContextValue {\n /** Register a drawer's dirty state and reset callback. Pass `null` to unregister. */\n setGuard: (guard: { isDirty: boolean; onReset: () => void } | null) => void;\n /** Navigate only if no dirty drawer is registered; otherwise show confirmation. */\n guardedNavigate: (navigate: () => void) => void;\n /** Returns true when any drawer has unsaved changes. Safe to call from effects/intervals. */\n getIsDirty: () => boolean;\n}\n\nconst DrawerCloseGuardContext = createContext<DrawerCloseGuardContextValue | null>(null);\n\n/* ---------------------------------------------------------------------------\n * Provider — renders the shared confirmation dialog\n * ------------------------------------------------------------------------- */\n\nexport function DrawerCloseGuardProvider({ children }: { children: ReactNode }) {\n // Use a ref so guard updates (on every keystroke) don't re-render the provider tree.\n const guardRef = useRef<{ isDirty: boolean; onReset: () => void } | null>(null);\n const pendingNavigateRef = useRef<(() => void) | null>(null);\n const [showConfirmation, setShowConfirmation] = useState(false);\n\n const setGuard = useCallback((guard: { isDirty: boolean; onReset: () => void } | null) => {\n guardRef.current = guard;\n }, []);\n\n const guardedNavigate = useCallback((navigate: () => void) => {\n if (guardRef.current?.isDirty) {\n pendingNavigateRef.current = navigate;\n setShowConfirmation(true);\n return;\n }\n navigate();\n }, []);\n\n const confirmDiscard = useCallback(() => {\n setShowConfirmation(false);\n guardRef.current?.onReset();\n guardRef.current = null;\n pendingNavigateRef.current?.();\n pendingNavigateRef.current = null;\n }, []);\n\n const cancelDiscard = useCallback(() => {\n setShowConfirmation(false);\n pendingNavigateRef.current = null;\n }, []);\n\n const getIsDirty = useCallback(() => guardRef.current?.isDirty ?? false, []);\n\n return (\n <DrawerCloseGuardContext value={{ setGuard, guardedNavigate, getIsDirty }}>\n {children}\n\n <AlertDialog open={showConfirmation}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Discard unsaved changes?</AlertDialogTitle>\n <AlertDialogDescription>\n You have unsaved changes. Are you sure you want to discard them?\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogAction variant=\"destructive\" onClick={confirmDiscard}>\n Discard\n </AlertDialogAction>\n <AlertDialogCancel onClick={cancelDiscard}>Keep editing</AlertDialogCancel>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </DrawerCloseGuardContext>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * Hook — access the guard from any child component\n * ------------------------------------------------------------------------- */\n\nexport function useDrawerCloseGuard() {\n const ctx = useContext(DrawerCloseGuardContext);\n if (!ctx) throw new Error('useDrawerCloseGuard must be used within DrawerCloseGuardProvider');\n return ctx;\n}\n\n/* ---------------------------------------------------------------------------\n * Convenience hook for drawer components\n *\n * Registers dirty state + reset callback with the guard, and returns an\n * `attemptClose` function that goes through the guard before closing.\n * ------------------------------------------------------------------------- */\n\nexport function useGuardedDrawerClose({\n open,\n isDirty,\n onClose,\n onReset,\n}: {\n open: boolean;\n isDirty: boolean;\n onClose: () => void;\n onReset: () => void;\n}) {\n const { setGuard, guardedNavigate } = useDrawerCloseGuard();\n\n // Keep the guard in sync with dirty state. Because setGuard writes to a ref,\n // this doesn't trigger re-renders in the provider.\n useEffect(() => {\n if (open) {\n setGuard({ isDirty, onReset });\n } else {\n setGuard(null);\n }\n return () => setGuard(null);\n }, [open, isDirty, onReset, setGuard]);\n\n const attemptClose = useCallback(() => {\n guardedNavigate(() => {\n onReset();\n onClose();\n });\n }, [guardedNavigate, onClose, onReset]);\n\n return { attemptClose };\n}\n"],"names":["DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","Object","values","segmentValue","push","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getDeploymentId","getDeploymentIdQueryOrEmptyString","NEXT_DEPLOYMENT_ID","deploymentId"],"mappings":"qGAuFaA,mBAAmB,CAAA,kBAAnBA,GACAC,qBAAqB,CAAA,kBAArBA,GAFAC,gBAAgB,CAAA,kBAAhBA,GAvEGC,4BAA4B,CAAA,kBAA5BA,GAgBAC,4BAA4B,CAAA,kBAA5BA,GA7BAC,eAAe,CAAA,kBAAfA,GAiDAC,4BAA4B,CAAA,kBAA5BA,AAAT,SAASA,EACdkB,CAAuB,CACvBH,CAAwB,CACxBI,GAAQ,CAAI,CACZC,EAAwB,EAAE,MAEtBC,EACJ,GAAIF,EAEFE,EAAOH,CAAI,CAAC,CAFH,CAEK,CAACH,EAAiB,KAC3B,CAEL,IAAMO,EAAiBJ,CAAI,CAAC,EAAE,CAC9BG,EAAOC,EAAeC,QAAQ,EAAIC,OAAOC,MAAM,CAACH,EAAe,CAAC,EAAE,AACpE,CAEA,GAAI,CAACD,EAAM,OAAOD,EAGlB,IAAIM,EAAe3B,EAFHsB,CAAI,CAAC,EAAE,QAIvB,AAAI,CAACK,CAF8BvB,EAEduB,EAAanB,UAAU,CAACX,GACpCwB,GAGTA,EAAYO,IAAI,CAACD,GAEV1B,EACLqB,CAP8D,CAQ9DN,GACA,EACAK,GAEJ,GA9EgBnB,cAAc,CAAA,kBAAdA,GAKAC,sBAAsB,CAAA,kBAAtBA,uEATT,SAASH,EAAgBI,CAAgB,EAC9C,OAAOC,MAAMC,OAAO,CAACF,GAAWA,CAAO,CAAC,EAAE,CAAGA,CAC/C,CAEO,SAASF,EAAeE,CAAe,EAE5C,MAAsB,MAAfA,CAAO,CAAC,EAAE,EAAYA,EAAQG,QAAQ,CAAC,IAChD,CAEO,SAASJ,EAAuBC,CAAe,EACpD,OAAOA,EAAQI,UAAU,CAAC,MAAoB,cAAZJ,CACpC,CAEO,SAASN,EACdM,CAAgB,CAChBK,CAA2D,EAI3D,GAFsBL,CAElBM,CAF0BC,QAAQ,CAACd,GAEpB,CACjB,IAAMe,EAAmBC,KAAKC,SAAS,CAACL,GACxC,MAA4B,OAArBG,EACHf,EAAmB,IAAMe,EACzBf,CACN,CAEA,OAAOO,CACT,CAEO,SAASL,EACdgB,CAAyB,CACzBC,CAAwB,EAExB,GAAI,CAACD,GAAgC,GAAG,CAAvBA,EAASE,MAAM,CAC9B,OAAO,KAIT,IAAMC,EACiB,aAArBF,EACID,CAAQ,CAAC,EAAE,CACXA,CAAQ,CAACA,EAASE,MAAM,CAAG,EAAE,CAInC,OAAOC,IAAevB,EAAsB,KAAOuB,CACrD,CAsCO,IAAMrB,EAAmB,WACnBF,EAAsB,cACtBC,EAAwB,oHC/ErBiC,eAAAA,qCAAAA,aAT8B,CAAA,CAAA,IAAA,GASvC,SAASA,EACdC,CAAmB,CACnBC,CAAmB,EAEnB,IAAMC,EAAWC,CAAAA,EAAAA,EAAAA,MAAAA,AAAM,EAAsB,MACvCC,EAAWD,CAAAA,EAAAA,EAAAA,MAAAA,AAAM,EAAsB,MAS7C,MAAOE,CAAAA,EAAAA,EAAAA,WAAAA,AAAW,EAChB,AAACC,IACC,GAAgB,OAAZA,EAAkB,CACpB,IAAMC,EAAaL,EAASI,OAAO,CAC/BC,IACFL,EAASI,MADK,CACE,CAAG,KACnBC,KAEF,IAAMC,EAAaJ,EAASE,OAAO,CAC/BE,IACFJ,EAASE,MADK,CACE,CAAG,KACnBE,IAEJ,MACMR,CADC,GAEHE,EADQ,AACCI,OAAO,CAAGG,EAAST,EAAMM,EAAAA,EAEhCL,IACFG,EADQ,AACCE,OAAO,CAAGG,EAASR,EAAMK,EAAAA,CAGxC,EACA,CAACN,EAAMC,EAAK,CAEhB,CAEA,SAASQ,EACPT,CAAgC,CAChCM,CAAiB,EAEjB,GAAoB,YAAhB,OAAON,EAST,OADAA,EAAKM,OAAO,CAAGA,EACR,KACLN,EAAKM,OAAO,CAAG,IACjB,CAX8B,EAC9B,IAAMI,EAAUV,EAAKM,SACrB,AAAuB,YAAnB,AAA+B,OAAxBI,EACFA,EAEA,IAAMV,EAAK,KAEtB,CAMF,MANS,yTCjDAW,WAAAA,qCAAAA,KAXT,IAAIA,EAAW,AAACC,IAAe,wFCEfW,eAAe,CAAA,kBAAfA,GAIAC,iCAAiC,CAAA,kBAAjCA,uEAJT,SAASD,IACd,MAAqC,CAA9BV,AAA8B,CACvC,CAEO,MAHUC,GAAG,AAGJU,CAHKC,GAQnB,MAAO,EACT,OATuC,mBCgBvC,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAA,AAAQ,CAAR,AAAQ,CAAA,AAAR,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBK,CAgBI,AAftC,CAAC,AAeqC,CAAA,AAfrC,CAeqC,AAfrC,CAAA,AAeqC,CAAA,AAfrC,CAAA,AAeqC,CAfrC,AAeqC,CAfrC,AAAQ,AAe6B,CAf7B,AAAE,AAe2B,CAAU,CAflC,AAekC,CAflC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAe,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC5C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,AAAV,CAAY,CAAA,CAAA,CAAA,AAAI,IAAA,CAAA,AAAM,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAA,CAAA,AAAG,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,AAAK,QAAA,CAAU,CAAA,CAC3D,qEEHA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEI,EAAY,cACZ,CAAC,EAA0B,EAAuB,CAAG,CAAA,EAAA,EAAA,kBAAA,AAAkB,EAAC,EAAW,CACrF,EAAA,iBAAiB,CAClB,EACG,EAAiB,CAAA,EAAA,EAAA,iBAAiB,AAAjB,IACjB,EAAc,AAAC,IACjB,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAkB,CAAG,EAC9C,EAAc,EAAe,GACnC,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,EAA2B,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAgB,CAAE,OAAO,CAAK,EACtG,EACA,EAAY,WAAW,CAAG,EAE1B,IAAI,EAAqB,EAAA,UAAgB,CACvC,CAAC,EAAO,KACN,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAc,CAAG,EAC1C,EAAc,EAAe,GACnC,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,KAA8B,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAY,CAAE,IAAK,CAAa,EAC3G,EAEF,GAAmB,WAAW,CARX,EAQc,mBAEjC,IAAI,EAAoB,AAAC,IACvB,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAa,CAAG,EACzC,EAAc,EAAe,GACnC,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,IAA6B,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAW,AAAC,EACtF,CACA,GAAkB,WAAW,CANX,EAMc,kBAEhC,IAAI,EAAqB,EAAA,UAAgB,CACvC,CAAC,EAAO,KACN,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAc,CAAG,EAC1C,EAAc,EAAe,GACnC,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,KAA8B,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAY,CAAE,IAAK,CAAa,EAC3G,GAEF,EAAmB,WAAW,CARX,EAQc,mBACjC,IAAI,EAAe,qBACf,CAAC,EAA4B,EAA6B,CAAG,EAAyB,GACtF,EAAY,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,sBAC5B,EAAqB,EAAA,UAAgB,CACvC,CAAC,EAAO,KACN,GAAM,oBAAE,CAAkB,UAAE,CAAQ,CAAE,GAAG,EAAc,CAAG,EACpD,EAAc,EAAe,GAC7B,EAAa,EAAA,MAAY,CAAC,MAC1B,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,GAC7C,EAAY,EAAA,MAAY,CAAC,MAC/B,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EACxB,EAAA,EADkB,aACa,CAC/B,CACE,YAAa,EACb,UAAW,EACX,SAAU,eACV,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAA4B,CAAE,CAArC,KAA4C,YAAoB,EAAW,SAA0B,CAAhB,AAAgB,EAAA,EAAA,IAAA,AAAI,EAC9H,EAAA,CADuH,MAChG,CACvB,CACE,KAAM,cACN,GAAG,CAAW,CACd,GAAG,CAAY,CACf,IAAK,EACL,gBAAiB,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAa,eAAe,CAAE,AAAC,IACnE,EAAM,cAAc,GACpB,EAAU,OAAO,EAAE,MAAM,CAAE,cAAe,EAAK,EACjD,GACA,qBAAsB,AAAC,GAAU,EAAM,cAAc,GACrD,kBAAmB,AAAC,GAAU,EAAM,cAAc,GAClD,SAAU,CACQ,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAW,UAAE,CAAS,GAC1B,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,EAAoB,YAAE,CAAW,GACtD,AACH,EACA,EACJ,EAEJ,GAEF,EAAmB,WAAW,CAAG,EACjC,IAAI,EAAa,mBACb,EAAmB,EAAA,UAAgB,CACrC,CAAC,EAAO,KACN,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAY,CAAG,EACxC,EAAc,EAAe,GACnC,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,GAA4B,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAU,CAAE,IAAK,CAAa,EACvG,GAEF,EAAiB,WAAW,CAAG,EAC/B,IAAI,EAAmB,yBACnB,EAAyB,EAAA,UAAgB,CAAC,CAAC,EAAO,KACpD,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAkB,CAAG,EAC9C,EAAc,EAAe,GACnC,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,SAAkC,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAgB,CAAE,IAAK,CAAa,EACnH,GACA,EAAuB,WAAW,CAAG,EAErC,IAAI,EAAoB,EAAA,UAAgB,CACtC,CAAC,EAAO,KACN,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAa,CAAG,EACzC,EAAc,EAAe,GACnC,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,GAA4B,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAW,CAAE,IAAK,CAAa,EACxG,EAEF,GAAkB,WAAW,CARX,EAQc,kBAChC,IAAI,EAAc,oBACd,EAAoB,EAAA,UAAgB,CACtC,CAAC,EAAO,KACN,GAAM,oBAAE,CAAkB,CAAE,GAAG,EAAa,CAAG,EACzC,WAAE,CAAS,CAAE,CAAG,EAA6B,EAAa,GAC1D,EAAc,EAAe,GAC7B,EAAM,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,GAC1C,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,GAA4B,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAW,KAAE,CAAI,EAC1F,GAEF,EAAkB,WAAW,CAAG,EAChC,IAAI,EAAqB,CAAC,YAAE,CAAU,CAAE,IACtC,IAAM,EAAU,CAAC,EAAE,EAAE,EAAa;;mCAED,EAAE,EAAa,kBAAkB,EAAE,EAAiB;;0JAEmE,EAAE,EAAa;;sFAEnF,CAAC,CAOrF,OANA,EAAA,SAAe,CAAC,KACS,AAGnB,CAAC,QAH2B,cAAc,CAC5C,EAAW,OAAO,EAAE,aAAa,sBAEd,QAAQ,IAAI,CAAC,EACpC,EAAG,CAAC,EAAS,EAAW,EACjB,IACT,oBAMa,0PACA,gBAFE,oBAII,gBALJ,eADD,aAFF,cAOC,gBANE,8DDvIf,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,SAAS,EAAY,CAAE,GAAG,EAA+D,EACvF,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,IAAI,CAAA,CAAC,YAAU,eAAgB,GAAG,CAAK,EACtE,CAQA,SAAS,EAAkB,CAAE,GAAG,EAAiE,EAC/F,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,MAAM,CAAA,CAAC,YAAU,sBAAuB,GAAG,CAAK,EAC/E,CAEA,SAAS,EAAmB,WAC1B,CAAS,SACT,CAAO,CACP,GAAG,EACuD,EAC1D,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,OAAO,CAAA,CAC3B,YAAU,uBACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,iCAAkC,GAChD,QAAS,AAAC,IAGR,EAAE,eAAe,GACjB,IAAU,EACZ,EACC,GAAG,CAAK,EAGf,CAEA,SAAS,EAAmB,WAC1B,CAAS,MACT,EAAO,SAAS,CAChB,GAAG,EAGJ,EACC,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,WACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,GACD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,OAAO,CAAA,CAC3B,YAAU,uBACV,YAAW,EACX,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,mPACA,GAED,GAAG,CAAK,KAIjB,CAEA,SAAS,EAAkB,WAAE,CAAS,CAAE,GAAG,EAAoC,EAC7E,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,YAAU,sBACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,qZACA,GAED,GAAG,CAAK,EAGf,CAEA,SAAS,EAAkB,WAAE,CAAS,CAAE,GAAG,EAAoC,EAC7E,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,YAAU,sBACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,8JACA,GAED,GAAG,CAAK,EAGf,CAEA,SAAS,EAAiB,WACxB,CAAS,CACT,GAAG,EACqD,EACxD,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,KAAK,CAAA,CACzB,YAAU,qBACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,oJACA,GAED,GAAG,CAAK,EAGf,CAEA,SAAS,EAAuB,WAC9B,CAAS,CACT,GAAG,EAC2D,EAC9D,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,WAAW,CAAA,CAC/B,YAAU,2BACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,gCAAiC,GAC9C,GAAG,CAAK,EAGf,CAeA,SAAS,EAAkB,WACzB,CAAS,SACT,EAAU,SAAS,MACnB,EAAO,SAAS,CAChB,GAAG,EAE0D,EAC7D,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,QAAS,EAAS,KAAM,EAAM,OAAO,CAAA,CAAA,WAC3C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,MAAM,CAAA,CAC1B,YAAU,sBACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,GACb,GAAG,CAAK,IAIjB,CAEA,SAAS,EAAkB,WACzB,CAAS,SACT,EAAU,SAAS,MACnB,EAAO,SAAS,CAChB,GAAG,EAE0D,EAC7D,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,QAAS,EAAS,KAAM,EAAM,OAAO,CAAA,CAAA,WAC3C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAqB,MAAM,CAAA,CAC1B,YAAU,sBACV,UAAW,CAAA,EAAA,EAAA,EAAE,AAAF,EAAG,GACb,GAAG,CAAK,IAIjB,qQErKA,EAAA,EAAA,CAAA,CAAA,OASA,EAAA,EAAA,CAAA,CAAA,MAwBA,IAAM,EAA0B,CAAA,EAAA,EAAA,aAAA,AAAa,EAAsC,MAM5E,SAAS,EAAyB,UAAE,CAAQ,CAA2B,EAE5E,IAAM,EAAW,CAAA,EAAA,EAAA,MAAA,AAAM,EAAmD,MACpE,EAAqB,CAAA,EAAA,EAAA,MAAA,AAAM,EAAsB,MACjD,CAAC,EAAkB,EAAoB,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GAEnD,EAAW,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,AAAC,IAC5B,EAAS,OAAO,CAAG,CACrB,EAAG,EAAE,EAEC,EAAkB,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,AAAC,IACnC,GAAI,EAAS,OAAO,EAAE,QAAS,CAC7B,EAAmB,OAAO,CAAG,EAC7B,GAAoB,GACpB,MACF,CACA,GACF,EAAG,EAAE,EAEC,EAAiB,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,KACjC,GAAoB,GACpB,EAAS,OAAO,EAAE,UAClB,EAAS,OAAO,CAAG,KACnB,EAAmB,OAAO,KAC1B,EAAmB,OAAO,CAAG,IAC/B,EAAG,EAAE,EAEC,EAAgB,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,KAChC,GAAoB,GACpB,EAAmB,OAAO,CAAG,IAC/B,EAAG,EAAE,EAEC,EAAa,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,IAAM,EAAS,OAAO,EAAE,UAAW,EAAO,EAAE,EAE3E,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,CAAwB,MAAO,UAAE,EAAU,6BAAiB,CAAW,YACrE,EAED,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,KAAM,WACjB,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,kBAAkB,CAAA,WACjB,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,iBAAiB,CAAA,WAChB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,gBAAgB,CAAA,UAAC,6BAClB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,sBAAsB,CAAA,UAAC,wEAI1B,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,iBAAiB,CAAA,WAChB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,iBAAiB,CAAA,CAAC,QAAQ,cAAc,QAAS,WAAgB,YAGlE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,iBAAiB,CAAA,CAAC,QAAS,WAAe,2BAMvD,CAMO,SAAS,IACd,IAAM,EAAM,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACvB,GAAI,CAAC,EAAK,MAAM,AAAI,MAAM,oEAC1B,OAAO,CACT,CASO,SAAS,EAAsB,MACpC,CAAI,CACJ,SAAO,SACP,CAAO,SACP,CAAO,CAMR,EACC,GAAM,UAAE,CAAQ,iBAAE,CAAe,CAAE,CAAG,IAoBtC,MAhBA,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACJ,EACF,EAAS,EADD,OACG,UAAS,CAAQ,GAE5B,EAAS,MAEJ,IAAM,EAAS,OACrB,CAAC,EAAM,EAAS,EAAS,EAAS,EAS9B,CAAE,aAPY,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,KAC/B,EAAgB,KACd,IACA,GACF,EACF,EAAG,CAAC,EAAiB,EAAS,EAAQ,CAEhB,CACxB","ignoreList":[0,1,2,3,4,6]}
@@ -1,3 +1,3 @@
1
- module.exports=[76096,a=>{"use strict";let b=(0,a.i(25700).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])},40617,a=>{"use strict";let b=(0,a.i(25700).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["default",()=>b])},45242,79620,73998,26633,30931,307,39116,a=>{"use strict";var b=a.i(25700);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(["PaperclipIcon",()=>c],45242);var d=a.i(10973),e=a.i(85536);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.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),...b})}a.s(["Textarea",()=>f],79620);var g=a.i(2807),h=a.i(7052),h=h,i=a.i(76096);a.s(["DownloadIcon",()=>i.default],73998);var i=i,j=a.i(45670),k=a.i(50049);a.s(["VisuallyHidden",0,k],26633);var k=k;let l=(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"}]]);var m=a.i(42642),m=m;let n=(0,b.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 o=a.i(40617),o=o;a.i(18948);let p=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),q=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function r(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 s=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function t(a,b){let c=new URLSearchParams({path:a,mimeType:b});return`/api/attachments/preview?${c.toString()}`}function u({name:a,size:b,mimeType:c,path:f,onRemove:u,loading:v=!1,disabled:w=!1}){let x,y,z=(x=a.lastIndexOf("."))>=0?a.slice(x).toLowerCase():"",A=p.has(z)?n:".pdf"===z?m.default:q.has(z)?o.default:l,B=".pdf"===z?"bg-red-50 text-red-600":p.has(z)?"bg-blue-50 text-blue-600":q.has(z)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",C=(y=a.lastIndexOf("."))>=0&&s.has(a.slice(y).toLowerCase());return v?(0,d.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,d.jsx)(h.default,{className:"text-muted-foreground h-5 w-5 animate-spin"})}):C?(0,d.jsxs)(j.Dialog,{children:[(0,d.jsxs)("div",{className:"group relative",children:[(0,d.jsx)(j.DialogTrigger,{asChild:!0,children:(0,d.jsx)("img",{src:t(f,c),alt:a,title:a,className:"h-12 w-12 cursor-pointer rounded-md border object-cover transition-opacity hover:opacity-80"})}),!w&&(0,d.jsx)("button",{type:"button",onClick:u,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,d.jsx)(g.X,{className:"h-3 w-3"})})]}),(0,d.jsxs)(j.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,d.jsx)(k.Root,{children:(0,d.jsxs)(j.DialogTitle,{children:["Preview: ",a]})}),(0,d.jsx)("div",{className:"relative bg-black/90",children:(0,d.jsx)("img",{src:t(f,c),alt:a,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,d.jsxs)("div",{className:"bg-background flex items-center gap-3 px-4 py-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)("span",{className:"truncate text-sm font-medium",children:a}),(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:r(b)})]}),(0,d.jsx)("a",{href:t(f,c),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,d.jsx)(i.default,{className:"h-4 w-4"})})]})]})]}):(0,d.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 pr-3 pl-2",children:[(0,d.jsx)("div",{className:(0,e.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",B),children:(0,d.jsx)(A,{className:"h-3 w-3"})}),(0,d.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:a}),(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:r(b)}),!w&&(0,d.jsx)("button",{type:"button",onClick:u,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,d.jsx)(g.X,{className:"h-3 w-3"})})]})}async function v(){let a=await fetch("/api/dialog/pick-files",{method:"POST"});if(!a.ok)throw Error("Failed to open file dialog");let b=await a.json();return b.cancelled?null:b.files}a.s(["AttachmentChip",()=>u],30931),a.s([],307),a.s(["pickFiles",()=>v],39116)},80646,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(6175),f=a.i(7420),g=a.i(58761),h=a.i(51473),i=a.i(59675),j=a.i(5472),k=a.i(75988),l=a.i(80930),m=a.i(14272),n=a.i(66873),o=a.i(90986),p=a.i(17329),q=a.i(16164),r=a.i(45291),s="Popover",[t,u]=(0,f.createContextScope)(s,[k.createPopperScope]),v=(0,k.createPopperScope)(),[w,x]=t(s),y=a=>{let{__scopePopover:d,children:e,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,l=v(d),m=c.useRef(null),[n,o]=c.useState(!1),[q,r]=(0,p.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:s});return(0,b.jsx)(k.Root,{...l,children:(0,b.jsx)(w,{scope:d,contentId:(0,j.useId)(),triggerRef:m,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),hasCustomAnchor:n,onCustomAnchorAdd:c.useCallback(()=>o(!0),[]),onCustomAnchorRemove:c.useCallback(()=>o(!1),[]),modal:i,children:e})})};y.displayName=s;var z="PopoverAnchor",A=c.forwardRef((a,d)=>{let{__scopePopover:e,...f}=a,g=x(z,e),h=v(e),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return c.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(k.Anchor,{...h,...f,ref:d})});A.displayName=z;var B="PopoverTrigger",C=c.forwardRef((a,c)=>{let{__scopePopover:f,...g}=a,h=x(B,f),i=v(f),j=(0,e.useComposedRefs)(c,h.triggerRef),l=(0,b.jsx)(n.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.contentId,"data-state":Q(h.open),...g,ref:j,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)});return h.hasCustomAnchor?l:(0,b.jsx)(k.Anchor,{asChild:!0,...i,children:l})});C.displayName=B;var D="PopoverPortal",[E,F]=t(D,{forceMount:void 0}),G=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=x(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(m.Presence,{present:d||g.open,children:(0,b.jsx)(l.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="PopoverContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=x(H,a.__scopePopover);return(0,b.jsx)(m.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(K,{...f,ref:c}):(0,b.jsx)(L,{...f,ref:c})})});I.displayName=H;var J=(0,o.createSlot)("PopoverContent.RemoveScroll"),K=c.forwardRef((a,f)=>{let g=x(H,a.__scopePopover),h=c.useRef(null),i=(0,e.useComposedRefs)(f,h),j=c.useRef(!1);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.hideOthers)(a)},[]),(0,b.jsx)(r.RemoveScroll,{as:J,allowPinchZoom:!0,children:(0,b.jsx)(M,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=c.forwardRef((a,d)=>{let e=x(H,a.__scopePopover),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(M,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),M=c.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:j,disableOutsidePointerEvents:l,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onInteractOutside:p,...q}=a,r=x(H,d),s=v(d);return(0,h.useFocusGuards)(),(0,b.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:j,children:(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:p,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onDismiss:()=>r.onOpenChange(!1),children:(0,b.jsx)(k.Content,{"data-state":Q(r.open),role:"dialog",id:r.contentId,...s,...q,ref:c,style:{...q.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N="PopoverClose",O=c.forwardRef((a,c)=>{let{__scopePopover:e,...f}=a,g=x(N,e);return(0,b.jsx)(n.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});O.displayName=N;var P=c.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=v(d);return(0,b.jsx)(k.Arrow,{...f,...e,ref:c})});function Q(a){return a?"open":"closed"}P.displayName="PopoverArrow",a.s(["Anchor",()=>A,"Arrow",()=>P,"Close",()=>O,"Content",()=>I,"Popover",()=>y,"PopoverAnchor",()=>A,"PopoverArrow",()=>P,"PopoverClose",()=>O,"PopoverContent",()=>I,"PopoverPortal",()=>G,"PopoverTrigger",()=>C,"Portal",()=>G,"Root",()=>y,"Trigger",()=>C,"createPopoverScope",()=>u],61452);var R=a.i(61452),R=R,S=a.i(85536);let T=R.Root,U=R.Trigger;R.Anchor;let V=c.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(R.Portal,{children:(0,b.jsx)(R.Content,{ref:f,align:c,sideOffset:d,className:(0,S.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",a),...e})}));V.displayName=R.Content.displayName,a.s(["Popover",()=>T,"PopoverContent",()=>V,"PopoverTrigger",()=>U],80646)},14177,a=>{"use strict";let b=(0,a.i(25700).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);a.s(["ChevronsUpDown",()=>b],14177)},96867,61781,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(6175),f=a.i(7420),g=a.i(17329),h=a.i(64005),i=a.i(74432),j=a.i(66873),k="Switch",[l,m]=(0,f.createContextScope)(k),[n,o]=l(k),p=c.forwardRef((a,f)=>{let{__scopeSwitch:h,name:i,checked:l,defaultChecked:m,required:o,disabled:p,value:q="on",onCheckedChange:r,form:u,...v}=a,[w,x]=c.useState(null),y=(0,e.useComposedRefs)(f,a=>x(a)),z=c.useRef(!1),A=!w||u||!!w.closest("form"),[B,C]=(0,g.useControllableState)({prop:l,defaultProp:m??!1,onChange:r,caller:k});return(0,b.jsxs)(n,{scope:h,checked:B,disabled:p,children:[(0,b.jsx)(j.Primitive.button,{type:"button",role:"switch","aria-checked":B,"aria-required":o,"data-state":t(B),"data-disabled":p?"":void 0,disabled:p,value:q,...v,ref:y,onClick:(0,d.composeEventHandlers)(a.onClick,a=>{C(a=>!a),A&&(z.current=a.isPropagationStopped(),z.current||a.stopPropagation())})}),A&&(0,b.jsx)(s,{control:w,bubbles:!z.current,name:i,value:q,checked:B,required:o,disabled:p,form:u,style:{transform:"translateX(-100%)"}})]})});p.displayName=k;var q="SwitchThumb",r=c.forwardRef((a,c)=>{let{__scopeSwitch:d,...e}=a,f=o(q,d);return(0,b.jsx)(j.Primitive.span,{"data-state":t(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:c})});r.displayName=q;var s=c.forwardRef(({__scopeSwitch:a,control:d,checked:f,bubbles:g=!0,...j},k)=>{let l=c.useRef(null),m=(0,e.useComposedRefs)(l,k),n=(0,h.usePrevious)(f),o=(0,i.useSize)(d);return c.useEffect(()=>{let a=l.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(n!==f&&b){let c=new Event("click",{bubbles:g});b.call(a,f),a.dispatchEvent(c)}},[n,f,g]),(0,b.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:f,...j,tabIndex:-1,ref:m,style:{...j.style,...o,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function t(a){return a?"checked":"unchecked"}s.displayName="SwitchBubbleInput",a.s(["Root",()=>p,"Switch",()=>p,"SwitchThumb",()=>r,"Thumb",()=>r,"createSwitchScope",()=>m],91918);var u=a.i(91918),u=u,v=a.i(85536);function w({className:a,size:c="default",...d}){return(0,b.jsx)(u.Root,{"data-slot":"switch","data-size":c,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",a),...d,children:(0,b.jsx)(u.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}a.s(["Switch",()=>w],96867);var x=a.i(72016),y=a.i(94132),z=a.i(3410),A=a.i(87882),B=a.i(94406),C=a.i(17606),D=a.i(83852),E=a.i(18948),F=a.i(80646);function G({initialAgentType:a,initialModel:d,onAgentModelChange:e,disabled:f,className:g,mode:h}){let[i,j]=c.useState(!1),[k,l]=c.useState([]),[m,n]=c.useState(!0),[o,p]=c.useState(a),[q,r]=c.useState(d),[s,t]=c.useState(null),[u,w]=c.useState(0),[G,H]=c.useState(null);c.useEffect(()=>{(0,A.getAllAgentModels)().then(l).finally(()=>n(!1))},[]),c.useEffect(()=>{if(!i){let a=setTimeout(()=>{w(0),H(null)},150);return()=>clearTimeout(a)}},[i]);let I=async(a,b)=>{if(j(!1),a!==o||b!==q){if("override"===h){p(a),r(b),e?.(a,b);return}p(a),r(b),e?.(a,b),t(null);try{let c=await (0,B.updateAgentAndModel)(a,b||null);c.ok||(p(o),r(q),e?.(o,q),t(c.error??"Failed to save"))}catch{p(o),r(q),e?.(o,q),t("Failed to save")}}},J=(0,C.getAgentTypeIcon)(o),K=k.find(a=>a.agentType===o)?.label??o,L=q?(0,D.getModelMeta)(q).displayName||q:null,M=G?k.find(a=>a.agentType===G):null;return(0,b.jsxs)("div",{className:(0,v.cn)("flex flex-col gap-1",g),children:[(0,b.jsxs)(F.Popover,{open:i,onOpenChange:j,children:[(0,b.jsx)(F.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(E.Button,{variant:"outline",role:"combobox","aria-expanded":i,disabled:(f??!1)||m,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,b.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(J,{className:"h-4 w-4 shrink-0"}),m?"Loading…":(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:K}),L?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:L})]}):null]})]})})}),(0,b.jsx)(F.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,b.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===u?"-50%":"0%"})`,width:"200%"},children:[(0,b.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,b.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),k.map(a=>{let c=(0,C.getAgentTypeIcon)(a.agentType),d=o===a.agentType,e=a.models.length>0;return(0,b.jsxs)("button",{type:"button",className:(0,v.cn)("flex w-full cursor-pointer items-center gap-2.5 px-3 py-2 text-xs transition-colors","hover:bg-accent hover:text-accent-foreground",d&&"bg-accent/50"),onClick:()=>{e?(H(a.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>w(1))})):I(a.agentType,"")},children:[(0,b.jsx)(c,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"flex-1 text-left",children:a.label}),d&&!e?(0,b.jsx)(x.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,e?(0,b.jsx)(z.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},a.agentType)})]}),(0,b.jsx)("div",{className:"w-1/2 shrink-0",children:M?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{w(0),setTimeout(()=>H(null),220)},children:[(0,b.jsx)(y.ChevronLeft,{className:"h-3.5 w-3.5"}),M.label]}),M.models.map(a=>{let c=o===M.agentType&&q===a.id;return(0,b.jsxs)("button",{type:"button",className:(0,v.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors","hover:bg-accent hover:text-accent-foreground",c&&"bg-accent/50"),onClick:()=>I(M.agentType,a.id),children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description})]}),c?(0,b.jsx)(x.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},a.id)})]}):null})]})})]}),!!s&&(0,b.jsx)("p",{className:"text-destructive text-sm",children:s})]})}a.s(["AgentModelPicker",()=>G],61781)}];
1
+ module.exports=[76096,a=>{"use strict";let b=(0,a.i(25700).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])},40617,a=>{"use strict";let b=(0,a.i(25700).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["default",()=>b])},45242,79620,73998,26633,30931,307,39116,a=>{"use strict";var b=a.i(25700);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(["PaperclipIcon",()=>c],45242);var d=a.i(10973),e=a.i(85536);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.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),...b})}a.s(["Textarea",()=>f],79620);var g=a.i(2807),h=a.i(7052),h=h,i=a.i(76096);a.s(["DownloadIcon",()=>i.default],73998);var i=i,j=a.i(45670),k=a.i(50049);a.s(["VisuallyHidden",0,k],26633);var k=k;let l=(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"}]]);var m=a.i(42642),m=m;let n=(0,b.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 o=a.i(40617),o=o;a.i(18948);let p=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),q=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function r(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 s=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function t(a,b){let c=new URLSearchParams({path:a,mimeType:b});return`/api/attachments/preview?${c.toString()}`}function u({name:a,size:b,mimeType:c,path:f,onRemove:u,loading:v=!1,disabled:w=!1}){let x,y,z=(x=a.lastIndexOf("."))>=0?a.slice(x).toLowerCase():"",A=p.has(z)?n:".pdf"===z?m.default:q.has(z)?o.default:l,B=".pdf"===z?"bg-red-50 text-red-600":p.has(z)?"bg-blue-50 text-blue-600":q.has(z)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",C=(y=a.lastIndexOf("."))>=0&&s.has(a.slice(y).toLowerCase());return v?(0,d.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,d.jsx)(h.default,{className:"text-muted-foreground h-5 w-5 animate-spin"})}):C?(0,d.jsxs)(j.Dialog,{children:[(0,d.jsxs)("div",{className:"group relative",children:[(0,d.jsx)(j.DialogTrigger,{asChild:!0,children:(0,d.jsx)("img",{src:t(f,c),alt:a,title:a,className:"h-12 w-12 cursor-pointer rounded-md border object-cover transition-opacity hover:opacity-80"})}),!w&&(0,d.jsx)("button",{type:"button",onClick:u,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,d.jsx)(g.X,{className:"h-3 w-3"})})]}),(0,d.jsxs)(j.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,d.jsx)(k.Root,{children:(0,d.jsxs)(j.DialogTitle,{children:["Preview: ",a]})}),(0,d.jsx)("div",{className:"relative bg-black/90",children:(0,d.jsx)("img",{src:t(f,c),alt:a,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,d.jsxs)("div",{className:"bg-background flex items-center gap-3 px-4 py-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)("span",{className:"truncate text-sm font-medium",children:a}),(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:r(b)})]}),(0,d.jsx)("a",{href:t(f,c),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,d.jsx)(i.default,{className:"h-4 w-4"})})]})]})]}):(0,d.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 pr-3 pl-2",children:[(0,d.jsx)("div",{className:(0,e.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",B),children:(0,d.jsx)(A,{className:"h-3 w-3"})}),(0,d.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:a}),(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:r(b)}),!w&&(0,d.jsx)("button",{type:"button",onClick:u,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,d.jsx)(g.X,{className:"h-3 w-3"})})]})}async function v(){let a=await fetch("/api/dialog/pick-files",{method:"POST"});if(!a.ok)throw Error("Failed to open file dialog");let b=await a.json();return b.cancelled?null:b.files}a.s(["AttachmentChip",()=>u],30931),a.s([],307),a.s(["pickFiles",()=>v],39116)},80646,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(6175),f=a.i(7420),g=a.i(58761),h=a.i(51473),i=a.i(59675),j=a.i(5472),k=a.i(75988),l=a.i(80930),m=a.i(14272),n=a.i(66873),o=a.i(90986),p=a.i(17329),q=a.i(16164),r=a.i(45291),s="Popover",[t,u]=(0,f.createContextScope)(s,[k.createPopperScope]),v=(0,k.createPopperScope)(),[w,x]=t(s),y=a=>{let{__scopePopover:d,children:e,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,l=v(d),m=c.useRef(null),[n,o]=c.useState(!1),[q,r]=(0,p.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:s});return(0,b.jsx)(k.Root,{...l,children:(0,b.jsx)(w,{scope:d,contentId:(0,j.useId)(),triggerRef:m,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),hasCustomAnchor:n,onCustomAnchorAdd:c.useCallback(()=>o(!0),[]),onCustomAnchorRemove:c.useCallback(()=>o(!1),[]),modal:i,children:e})})};y.displayName=s;var z="PopoverAnchor",A=c.forwardRef((a,d)=>{let{__scopePopover:e,...f}=a,g=x(z,e),h=v(e),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return c.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(k.Anchor,{...h,...f,ref:d})});A.displayName=z;var B="PopoverTrigger",C=c.forwardRef((a,c)=>{let{__scopePopover:f,...g}=a,h=x(B,f),i=v(f),j=(0,e.useComposedRefs)(c,h.triggerRef),l=(0,b.jsx)(n.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.contentId,"data-state":Q(h.open),...g,ref:j,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)});return h.hasCustomAnchor?l:(0,b.jsx)(k.Anchor,{asChild:!0,...i,children:l})});C.displayName=B;var D="PopoverPortal",[E,F]=t(D,{forceMount:void 0}),G=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=x(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(m.Presence,{present:d||g.open,children:(0,b.jsx)(l.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="PopoverContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=x(H,a.__scopePopover);return(0,b.jsx)(m.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(K,{...f,ref:c}):(0,b.jsx)(L,{...f,ref:c})})});I.displayName=H;var J=(0,o.createSlot)("PopoverContent.RemoveScroll"),K=c.forwardRef((a,f)=>{let g=x(H,a.__scopePopover),h=c.useRef(null),i=(0,e.useComposedRefs)(f,h),j=c.useRef(!1);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.hideOthers)(a)},[]),(0,b.jsx)(r.RemoveScroll,{as:J,allowPinchZoom:!0,children:(0,b.jsx)(M,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=c.forwardRef((a,d)=>{let e=x(H,a.__scopePopover),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(M,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),M=c.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:j,disableOutsidePointerEvents:l,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onInteractOutside:p,...q}=a,r=x(H,d),s=v(d);return(0,h.useFocusGuards)(),(0,b.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:j,children:(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:p,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onDismiss:()=>r.onOpenChange(!1),children:(0,b.jsx)(k.Content,{"data-state":Q(r.open),role:"dialog",id:r.contentId,...s,...q,ref:c,style:{...q.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N="PopoverClose",O=c.forwardRef((a,c)=>{let{__scopePopover:e,...f}=a,g=x(N,e);return(0,b.jsx)(n.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});O.displayName=N;var P=c.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=v(d);return(0,b.jsx)(k.Arrow,{...f,...e,ref:c})});function Q(a){return a?"open":"closed"}P.displayName="PopoverArrow",a.s(["Anchor",()=>A,"Arrow",()=>P,"Close",()=>O,"Content",()=>I,"Popover",()=>y,"PopoverAnchor",()=>A,"PopoverArrow",()=>P,"PopoverClose",()=>O,"PopoverContent",()=>I,"PopoverPortal",()=>G,"PopoverTrigger",()=>C,"Portal",()=>G,"Root",()=>y,"Trigger",()=>C,"createPopoverScope",()=>u],61452);var R=a.i(61452),R=R,S=a.i(85536);let T=R.Root,U=R.Trigger;R.Anchor;let V=c.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(R.Portal,{children:(0,b.jsx)(R.Content,{ref:f,align:c,sideOffset:d,className:(0,S.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",a),...e})}));V.displayName=R.Content.displayName,a.s(["Popover",()=>T,"PopoverContent",()=>V,"PopoverTrigger",()=>U],80646)},14177,a=>{"use strict";let b=(0,a.i(25700).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);a.s(["ChevronsUpDown",()=>b],14177)},96867,61781,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(6175),f=a.i(7420),g=a.i(17329),h=a.i(64005),i=a.i(74432),j=a.i(66873),k="Switch",[l,m]=(0,f.createContextScope)(k),[n,o]=l(k),p=c.forwardRef((a,f)=>{let{__scopeSwitch:h,name:i,checked:l,defaultChecked:m,required:o,disabled:p,value:q="on",onCheckedChange:r,form:u,...v}=a,[w,x]=c.useState(null),y=(0,e.useComposedRefs)(f,a=>x(a)),z=c.useRef(!1),A=!w||u||!!w.closest("form"),[B,C]=(0,g.useControllableState)({prop:l,defaultProp:m??!1,onChange:r,caller:k});return(0,b.jsxs)(n,{scope:h,checked:B,disabled:p,children:[(0,b.jsx)(j.Primitive.button,{type:"button",role:"switch","aria-checked":B,"aria-required":o,"data-state":t(B),"data-disabled":p?"":void 0,disabled:p,value:q,...v,ref:y,onClick:(0,d.composeEventHandlers)(a.onClick,a=>{C(a=>!a),A&&(z.current=a.isPropagationStopped(),z.current||a.stopPropagation())})}),A&&(0,b.jsx)(s,{control:w,bubbles:!z.current,name:i,value:q,checked:B,required:o,disabled:p,form:u,style:{transform:"translateX(-100%)"}})]})});p.displayName=k;var q="SwitchThumb",r=c.forwardRef((a,c)=>{let{__scopeSwitch:d,...e}=a,f=o(q,d);return(0,b.jsx)(j.Primitive.span,{"data-state":t(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:c})});r.displayName=q;var s=c.forwardRef(({__scopeSwitch:a,control:d,checked:f,bubbles:g=!0,...j},k)=>{let l=c.useRef(null),m=(0,e.useComposedRefs)(l,k),n=(0,h.usePrevious)(f),o=(0,i.useSize)(d);return c.useEffect(()=>{let a=l.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(n!==f&&b){let c=new Event("click",{bubbles:g});b.call(a,f),a.dispatchEvent(c)}},[n,f,g]),(0,b.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:f,...j,tabIndex:-1,ref:m,style:{...j.style,...o,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function t(a){return a?"checked":"unchecked"}s.displayName="SwitchBubbleInput",a.s(["Root",()=>p,"Switch",()=>p,"SwitchThumb",()=>r,"Thumb",()=>r,"createSwitchScope",()=>m],91918);var u=a.i(91918),u=u,v=a.i(85536);function w({className:a,size:c="default",...d}){return(0,b.jsx)(u.Root,{"data-slot":"switch","data-size":c,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",a),...d,children:(0,b.jsx)(u.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}a.s(["Switch",()=>w],96867);var x=a.i(72016),y=a.i(94132),z=a.i(3410),A=a.i(33008),B=a.i(48746),C=a.i(17606),D=a.i(83852),E=a.i(18948),F=a.i(80646);function G({initialAgentType:a,initialModel:d,onAgentModelChange:e,disabled:f,className:g,mode:h}){let[i,j]=c.useState(!1),[k,l]=c.useState([]),[m,n]=c.useState(!0),[o,p]=c.useState(a),[q,r]=c.useState(d),[s,t]=c.useState(null),[u,w]=c.useState(0),[G,H]=c.useState(null);c.useEffect(()=>{(0,A.getAllAgentModels)().then(l).finally(()=>n(!1))},[]),c.useEffect(()=>{if(!i){let a=setTimeout(()=>{w(0),H(null)},150);return()=>clearTimeout(a)}},[i]);let I=async(a,b)=>{if(j(!1),a!==o||b!==q){if("override"===h){p(a),r(b),e?.(a,b);return}p(a),r(b),e?.(a,b),t(null);try{let c=await (0,B.updateAgentAndModel)(a,b||null);c.ok||(p(o),r(q),e?.(o,q),t(c.error??"Failed to save"))}catch{p(o),r(q),e?.(o,q),t("Failed to save")}}},J=(0,C.getAgentTypeIcon)(o),K=k.find(a=>a.agentType===o)?.label??o,L=q?(0,D.getModelMeta)(q).displayName||q:null,M=G?k.find(a=>a.agentType===G):null;return(0,b.jsxs)("div",{className:(0,v.cn)("flex flex-col gap-1",g),children:[(0,b.jsxs)(F.Popover,{open:i,onOpenChange:j,children:[(0,b.jsx)(F.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(E.Button,{variant:"outline",role:"combobox","aria-expanded":i,disabled:(f??!1)||m,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,b.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(J,{className:"h-4 w-4 shrink-0"}),m?"Loading…":(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:K}),L?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:L})]}):null]})]})})}),(0,b.jsx)(F.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,b.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===u?"-50%":"0%"})`,width:"200%"},children:[(0,b.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,b.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),k.map(a=>{let c=(0,C.getAgentTypeIcon)(a.agentType),d=o===a.agentType,e=a.models.length>0;return(0,b.jsxs)("button",{type:"button",className:(0,v.cn)("flex w-full cursor-pointer items-center gap-2.5 px-3 py-2 text-xs transition-colors","hover:bg-accent hover:text-accent-foreground",d&&"bg-accent/50"),onClick:()=>{e?(H(a.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>w(1))})):I(a.agentType,"")},children:[(0,b.jsx)(c,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"flex-1 text-left",children:a.label}),d&&!e?(0,b.jsx)(x.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,e?(0,b.jsx)(z.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},a.agentType)})]}),(0,b.jsx)("div",{className:"w-1/2 shrink-0",children:M?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{w(0),setTimeout(()=>H(null),220)},children:[(0,b.jsx)(y.ChevronLeft,{className:"h-3.5 w-3.5"}),M.label]}),M.models.map(a=>{let c=o===M.agentType&&q===a.id;return(0,b.jsxs)("button",{type:"button",className:(0,v.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors","hover:bg-accent hover:text-accent-foreground",c&&"bg-accent/50"),onClick:()=>I(M.agentType,a.id),children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description})]}),c?(0,b.jsx)(x.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},a.id)})]}):null})]})})]}),!!s&&(0,b.jsx)("p",{className:"text-destructive text-sm",children:s})]})}a.s(["AgentModelPicker",()=>G],61781)}];
2
2
 
3
3
  //# sourceMappingURL=_a9f57758._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[7421,44447,a=>{"use strict";let b=(0,a.i(25700).default)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);a.s(["Timer",()=>b],7421);var c=a.i(40617);a.s(["Code",()=>c.default],44447)},40617,a=>{"use strict";let b=(0,a.i(25700).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["default",()=>b])},96853,71716,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);a.s(["default",()=>c],96853);let d=(0,b.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",()=>d],71716)},63496,a=>{"use strict";var b=a.i(96960),c=a.i(7420),d=a.i(6175),e=a.i(90986),f=a.i(10973);function g(a){let g=a+"CollectionProvider",[h,i]=(0,c.createContextScope)(g),[j,k]=h(g,{collectionRef:{current:null},itemMap:new Map}),l=a=>{let{scope:c,children:d}=a,e=b.default.useRef(null),g=b.default.useRef(new Map).current;return(0,f.jsx)(j,{scope:c,itemMap:g,collectionRef:e,children:d})};l.displayName=g;let m=a+"CollectionSlot",n=(0,e.createSlot)(m),o=b.default.forwardRef((a,b)=>{let{scope:c,children:e}=a,g=k(m,c),h=(0,d.useComposedRefs)(b,g.collectionRef);return(0,f.jsx)(n,{ref:h,children:e})});o.displayName=m;let p=a+"CollectionItemSlot",q="data-radix-collection-item",r=(0,e.createSlot)(p),s=b.default.forwardRef((a,c)=>{let{scope:e,children:g,...h}=a,i=b.default.useRef(null),j=(0,d.useComposedRefs)(c,i),l=k(p,e);return b.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...h}),()=>void l.itemMap.delete(i))),(0,f.jsx)(r,{...{[q]:""},ref:j,children:g})});return s.displayName=p,[{Provider:l,Slot:o,ItemSlot:s},function(c){let d=k(a+"CollectionConsumer",c);return b.default.useCallback(()=>{let a=d.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${q}]`));return Array.from(d.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[d.collectionRef,d.itemMap])},i]}var h=new WeakMap;function i(a,b){var c,d;let e,f,g;if("at"in Array.prototype)return Array.prototype.at.call(a,b);let h=(c=a,d=b,e=c.length,(g=(f=j(d))>=0?f:e+f)<0||g>=e?-1:g);return -1===h?void 0:a[h]}function j(a){return a!=a||0===a?0:Math.trunc(a)}(class a extends Map{#a;constructor(a){super(a),this.#a=[...super.keys()],h.set(this,!0)}set(a,b){return h.get(this)&&(this.has(a)?this.#a[this.#a.indexOf(a)]=a:this.#a.push(a)),super.set(a,b),this}insert(a,b,c){let d,e=this.has(b),f=this.#a.length,g=j(a),h=g>=0?g:f+g,i=h<0||h>=f?-1:h;if(i===this.size||e&&i===this.size-1||-1===i)return this.set(b,c),this;let k=this.size+ +!e;g<0&&h++;let l=[...this.#a],m=!1;for(let a=h;a<k;a++)if(h===a){let f=l[a];l[a]===b&&(f=l[a+1]),e&&this.delete(b),d=this.get(f),this.set(b,c)}else{m||l[a-1]!==b||(m=!0);let c=l[m?a:a-1],e=d;d=this.get(c),this.delete(c),this.set(c,e)}return this}with(b,c,d){let e=new a(this);return e.insert(b,c,d),e}before(a){let b=this.#a.indexOf(a)-1;if(!(b<0))return this.entryAt(b)}setBefore(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d,b,c)}after(a){let b=this.#a.indexOf(a);if(-1!==(b=-1===b||b===this.size-1?-1:b+1))return this.entryAt(b)}setAfter(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d+1,b,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#a=[],super.clear()}delete(a){let b=super.delete(a);return b&&this.#a.splice(this.#a.indexOf(a),1),b}deleteAt(a){let b=this.keyAt(a);return void 0!==b&&this.delete(b)}at(a){let b=i(this.#a,a);if(void 0!==b)return this.get(b)}entryAt(a){let b=i(this.#a,a);if(void 0!==b)return[b,this.get(b)]}indexOf(a){return this.#a.indexOf(a)}keyAt(a){return i(this.#a,a)}from(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.at(d)}keyFrom(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.keyAt(d)}find(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return d;c++}}findIndex(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return c;c++}return -1}filter(b,c){let d=[],e=0;for(let a of this)Reflect.apply(b,c,[a,e,this])&&d.push(a),e++;return new a(d)}map(b,c){let d=[],e=0;for(let a of this)d.push([a[0],Reflect.apply(b,c,[a,e,this])]),e++;return new a(d)}reduce(...a){let[b,c]=a,d=0,e=c??this.at(0);for(let c of this)e=0===d&&1===a.length?c:Reflect.apply(b,this,[e,c,d,this]),d++;return e}reduceRight(...a){let[b,c]=a,d=c??this.at(-1);for(let c=this.size-1;c>=0;c--){let e=this.at(c);d=c===this.size-1&&1===a.length?e:Reflect.apply(b,this,[d,e,c,this])}return d}toSorted(b){return new a([...this.entries()].sort(b))}toReversed(){let b=new a;for(let a=this.size-1;a>=0;a--){let c=this.keyAt(a),d=this.get(c);b.set(c,d)}return b}toSpliced(...b){let c=[...this.entries()];return c.splice(...b),new a(c)}slice(b,c){let d=new a,e=this.size-1;if(void 0===b)return d;b<0&&(b+=this.size),void 0!==c&&c>0&&(e=c-1);for(let a=b;a<=e;a++){let b=this.keyAt(a),c=this.get(b);d.set(b,c)}return d}every(a,b){let c=0;for(let d of this){if(!Reflect.apply(a,b,[d,c,this]))return!1;c++}return!0}some(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return!0;c++}return!1}}),a.s(["createCollection",()=>g])},63698,a=>{"use strict";let b=(0,a.i(25700).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],63698)},71238,a=>{"use strict";let b=(0,a.i(25700).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],71238)},72016,51969,a=>{"use strict";let b=(0,a.i(25700).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["default",()=>b],51969),a.s(["Check",()=>b],72016)},584,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(66873),e=c.forwardRef((a,c)=>(0,b.jsx)(d.Primitive.label,{...a,ref:c,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));e.displayName="Label",a.s(["Label",()=>e,"Root",()=>e],59967);var f=a.i(59967),f=f,g=a.i(42261),h=a.i(85536);let i=(0,g.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),j=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(f.Root,{ref:d,className:(0,h.cn)(i(),a),...c}));j.displayName=f.Root.displayName,a.s(["Label",()=>j],584)},64005,a=>{"use strict";var b=a.i(96960);function c(a){let c=b.useRef({value:a,previous:a});return b.useMemo(()=>(c.current.value!==a&&(c.current.previous=c.current.value,c.current.value=a),c.current.previous),[a])}a.s(["usePrevious",()=>c])},94132,a=>{"use strict";let b=(0,a.i(25700).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",()=>b],94132)},3410,a=>{"use strict";let b=(0,a.i(25700).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],3410)},87926,a=>{"use strict";let b=(0,a.i(25700).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);a.s(["Rocket",()=>b],87926)}];
2
+
3
+ //# sourceMappingURL=_b730ac57._.js.map