@shepai/cli 1.129.2-pr409.8d19a07 → 1.129.2-pr412.825307b

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 (321) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +5 -0
  2. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +1 -31
  3. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js +0 -2
  5. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  6. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
  7. package/dist/packages/core/src/domain/generated/output.d.ts +4 -0
  8. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  9. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/di/container.js +0 -5
  11. package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.d.ts +2 -2
  12. package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.js +13 -2
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -0
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts +3 -3
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +4 -4
  19. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  20. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -0
  21. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +0 -5
  22. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +0 -32
  24. package/dist/src/presentation/cli/commands/repo/index.d.ts +3 -4
  25. package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
  26. package/dist/src/presentation/cli/commands/repo/index.js +4 -7
  27. package/dist/src/presentation/web/app/api/directory/list/route.d.ts +3 -0
  28. package/dist/src/presentation/web/app/api/directory/list/route.d.ts.map +1 -0
  29. package/dist/src/presentation/web/app/api/directory/list/route.js +76 -0
  30. package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.d.ts.map +1 -1
  31. package/dist/src/presentation/web/components/common/add-repository-button/add-repository-button.js +23 -2
  32. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  33. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +50 -19
  34. package/dist/src/presentation/web/components/common/index.d.ts +1 -0
  35. package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
  36. package/dist/src/presentation/web/components/common/index.js +1 -0
  37. package/dist/src/presentation/web/components/common/react-file-manager-dialog/index.d.ts +3 -0
  38. package/dist/src/presentation/web/components/common/react-file-manager-dialog/index.d.ts.map +1 -0
  39. package/dist/src/presentation/web/components/common/react-file-manager-dialog/index.js +1 -0
  40. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog-config.d.ts +17 -0
  41. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog-config.d.ts.map +1 -0
  42. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog-config.js +1 -0
  43. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.d.ts +3 -0
  44. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.d.ts.map +1 -0
  45. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.js +106 -0
  46. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.stories.d.ts +9 -0
  47. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.stories.d.ts.map +1 -0
  48. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.stories.js +27 -0
  49. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +22 -1
  51. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  52. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
  53. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
  55. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +5 -0
  57. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  58. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
  59. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  60. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +21 -2
  61. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  62. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  63. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  64. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  65. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  66. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  67. package/dist/src/presentation/web/lib/feature-flags.js +5 -0
  68. package/dist/tsconfig.build.tsbuildinfo +1 -1
  69. package/package.json +2 -1
  70. package/web/.next/BUILD_ID +1 -1
  71. package/web/.next/app-path-routes-manifest.json +1 -0
  72. package/web/.next/build-manifest.json +6 -6
  73. package/web/.next/fallback-build-manifest.json +2 -2
  74. package/web/.next/prerender-manifest.json +3 -3
  75. package/web/.next/required-server-files.js +1 -1
  76. package/web/.next/required-server-files.json +1 -1
  77. package/web/.next/routes-manifest.json +6 -0
  78. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +4 -4
  79. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +8 -1
  80. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +24 -24
  81. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  82. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  83. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
  85. package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +8 -1
  86. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +24 -24
  87. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  88. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  91. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +8 -1
  92. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
  93. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  94. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +4 -4
  97. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +8 -1
  98. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +30 -30
  99. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  100. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
  103. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +8 -1
  104. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
  105. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  106. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  107. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
  109. package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +8 -1
  110. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +24 -24
  111. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  112. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  113. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  115. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +8 -1
  116. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +30 -30
  117. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  118. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  119. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
  121. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +8 -1
  122. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +30 -30
  123. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  124. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  125. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
  127. package/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +8 -1
  128. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +22 -22
  129. package/web/.next/server/app/(dashboard)/page.js +1 -1
  130. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  131. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
  133. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +8 -1
  134. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +22 -22
  135. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  136. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  137. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  139. package/web/.next/server/app/_global-error.html +2 -2
  140. package/web/.next/server/app/_global-error.rsc +1 -1
  141. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  142. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  143. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  144. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  145. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  146. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  147. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +8 -1
  148. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  149. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  150. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  151. package/web/.next/server/app/api/attachments/preview/route.js +1 -1
  152. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  153. package/web/.next/server/app/api/directory/list/route/app-paths-manifest.json +3 -0
  154. package/web/.next/server/app/api/directory/list/route/build-manifest.json +11 -0
  155. package/web/.next/server/app/api/directory/list/route/server-reference-manifest.json +4 -0
  156. package/web/.next/server/app/api/directory/list/route.js +7 -0
  157. package/web/.next/server/app/api/directory/list/route.js.map +5 -0
  158. package/web/.next/server/app/api/directory/list/route.js.nft.json +1 -0
  159. package/web/.next/server/app/api/directory/list/route_client-reference-manifest.js +2 -0
  160. package/web/.next/server/app/api/evidence/route.js +1 -1
  161. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  162. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  163. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  164. package/web/.next/server/app/api/graph-data/route.js +1 -1
  165. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  166. package/web/.next/server/app/settings/page/build-manifest.json +4 -4
  167. package/web/.next/server/app/settings/page/react-loadable-manifest.json +8 -1
  168. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  169. package/web/.next/server/app/settings/page.js +1 -1
  170. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  171. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  172. package/web/.next/server/app/skills/page/build-manifest.json +4 -4
  173. package/web/.next/server/app/skills/page/react-loadable-manifest.json +8 -1
  174. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  175. package/web/.next/server/app/skills/page.js +1 -1
  176. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  177. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  178. package/web/.next/server/app/tools/page/build-manifest.json +4 -4
  179. package/web/.next/server/app/tools/page/react-loadable-manifest.json +8 -1
  180. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  181. package/web/.next/server/app/tools/page.js +1 -1
  182. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  183. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  184. package/web/.next/server/app/version/page/build-manifest.json +4 -4
  185. package/web/.next/server/app/version/page/react-loadable-manifest.json +8 -1
  186. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  187. package/web/.next/server/app/version/page.js.nft.json +1 -1
  188. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  189. package/web/.next/server/app-paths-manifest.json +1 -0
  190. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_directory_list_route_actions_9e35153e.js +3 -0
  191. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_directory_list_route_actions_9e35153e.js.map +1 -0
  192. package/web/.next/server/chunks/{[root-of-the-server]__53013576._.js → [root-of-the-server]__25f23d5d._.js} +2 -2
  193. package/web/.next/server/chunks/{[root-of-the-server]__92078db6._.js → [root-of-the-server]__26565141._.js} +2 -2
  194. package/web/.next/server/chunks/{[root-of-the-server]__d8037e14._.js → [root-of-the-server]__2b1074db._.js} +2 -2
  195. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  196. package/web/.next/server/chunks/{[root-of-the-server]__dcd4f847._.js → [root-of-the-server]__c6e32a23._.js} +2 -2
  197. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -0
  198. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  199. package/web/.next/server/chunks/[root-of-the-server]__fc6fd958._.js +3 -0
  200. package/web/.next/server/chunks/[root-of-the-server]__fc6fd958._.js.map +1 -0
  201. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +1 -1
  202. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  204. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  205. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +1 -1
  206. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +1 -1
  208. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  210. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  211. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  212. package/web/.next/server/chunks/ssr/{[root-of-the-server]__60684242._.js → [root-of-the-server]__5142820f._.js} +3 -3
  213. package/web/.next/server/chunks/ssr/[root-of-the-server]__5142820f._.js.map +1 -0
  214. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a21eef5a._.js → [root-of-the-server]__57018345._.js} +2 -2
  215. package/web/.next/server/chunks/ssr/[root-of-the-server]__57018345._.js.map +1 -0
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__755cfe02._.js +1 -1
  219. package/web/.next/server/chunks/ssr/[root-of-the-server]__755cfe02._.js.map +1 -1
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js +3 -0
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__7894f27f._.js.map +1 -0
  222. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  223. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  224. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2f886f77._.js → [root-of-the-server]__9023aab9._.js} +3 -3
  225. package/web/.next/server/chunks/ssr/[root-of-the-server]__a628fb91._.js +1 -1
  226. package/web/.next/server/chunks/ssr/[root-of-the-server]__a628fb91._.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/[root-of-the-server]__bfba58e6._.js +1 -1
  228. package/web/.next/server/chunks/ssr/[root-of-the-server]__bfba58e6._.js.map +1 -1
  229. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3ab8422._.js +1 -1
  230. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3ab8422._.js.map +1 -1
  231. package/web/.next/server/chunks/ssr/[root-of-the-server]__f4a463ee._.js +2 -2
  232. package/web/.next/server/chunks/ssr/_0020fddd._.js +1 -1
  233. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/_02ec1aea._.js +1 -1
  235. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/{_55644af9._.js → _04b6ab54._.js} +2 -2
  237. package/web/.next/server/chunks/ssr/{_55644af9._.js.map → _04b6ab54._.js.map} +1 -1
  238. package/web/.next/server/chunks/ssr/_1b7dae9a._.js +3 -0
  239. package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +1 -0
  240. package/web/.next/server/chunks/ssr/_6c62ad89._.js +3 -0
  241. package/web/.next/server/chunks/ssr/{_6a5242a0._.js.map → _6c62ad89._.js.map} +1 -1
  242. package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
  243. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
  244. package/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
  245. package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
  246. package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
  247. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
  248. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  249. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  250. package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
  251. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +1 -1
  252. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  253. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  254. package/web/.next/server/chunks/ssr/{src_presentation_web_0cd3a74c._.js → src_presentation_web_6cf5ecf5._.js} +2 -2
  255. package/web/.next/server/chunks/ssr/{src_presentation_web_0cd3a74c._.js.map → src_presentation_web_6cf5ecf5._.js.map} +1 -1
  256. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +2 -2
  257. package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js.map +1 -1
  258. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +1 -1
  259. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +1 -1
  260. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  261. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  262. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  263. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +2 -2
  265. package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js.map +1 -1
  266. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  267. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  268. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  269. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  270. package/web/.next/server/middleware-build-manifest.js +4 -4
  271. package/web/.next/server/pages/500.html +2 -2
  272. package/web/.next/server/server-reference-manifest.js +1 -1
  273. package/web/.next/server/server-reference-manifest.json +38 -38
  274. package/web/.next/static/chunks/{d34a91958ca566fa.js → 0b7fe2ac4f078f54.js} +1 -1
  275. package/web/.next/static/chunks/{245f409ea7548b7f.js → 129113792dde387e.js} +1 -1
  276. package/web/.next/static/chunks/{1ab3b92cd374a624.js → 3222671ddff6d0c1.js} +1 -1
  277. package/web/.next/static/chunks/{1ce11c79ca2e7585.js → 37d5bcc620ebb713.js} +1 -1
  278. package/web/.next/static/chunks/40da592bc7810c4f.js +1 -0
  279. package/web/.next/static/chunks/{1add8a70b4b40ed8.js → 4b7eac13aab985be.js} +1 -1
  280. package/web/.next/static/chunks/4cec255f2754e5ec.js +1 -0
  281. package/web/.next/static/chunks/6503e44ff9a57cf6.js +1 -0
  282. package/web/.next/static/chunks/6d7b999c99d6d175.js +9 -0
  283. package/web/.next/static/chunks/{e04aa97306bb4fcc.js → 7c9cd3f6b516a4e3.js} +1 -1
  284. package/web/.next/static/chunks/83fc7ea32e18c9a5.js +1 -0
  285. package/web/.next/static/chunks/883013051b5e5e87.js +1 -0
  286. package/web/.next/static/chunks/{5aece62660a857db.js → 8952c5573425c4f7.js} +1 -1
  287. package/web/.next/static/chunks/{96813f0a8d002ad2.js → 967ccdd679394720.js} +1 -1
  288. package/web/.next/static/chunks/{8d9cc59c9c6bb985.js → b601fd6c1e8604a7.js} +1 -1
  289. package/web/.next/static/chunks/c7e793951b20a67f.js +1 -0
  290. package/web/.next/static/chunks/d0dd00e2ff16617e.css +1 -0
  291. package/web/.next/static/chunks/f277178783673200.js +2 -0
  292. package/web/.next/static/chunks/{turbopack-080e470ea902d0ba.js → turbopack-c2d183e05f30c7dc.js} +1 -1
  293. package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts +0 -28
  294. package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts.map +0 -1
  295. package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.js +0 -63
  296. package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts +0 -12
  297. package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts.map +0 -1
  298. package/dist/src/presentation/cli/commands/repo/init-remote.command.js +0 -60
  299. package/web/.next/server/chunks/[root-of-the-server]__dcd4f847._.js.map +0 -1
  300. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e842eba._.js +0 -3
  301. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e842eba._.js.map +0 -1
  302. package/web/.next/server/chunks/ssr/[root-of-the-server]__60684242._.js.map +0 -1
  303. package/web/.next/server/chunks/ssr/[root-of-the-server]__a21eef5a._.js.map +0 -1
  304. package/web/.next/server/chunks/ssr/_6a5242a0._.js +0 -3
  305. package/web/.next/server/chunks/ssr/_b4b8a636._.js +0 -3
  306. package/web/.next/server/chunks/ssr/_b4b8a636._.js.map +0 -1
  307. package/web/.next/static/chunks/1723a9aeba25ddfc.js +0 -1
  308. package/web/.next/static/chunks/2458356d72e6fa9c.js +0 -2
  309. package/web/.next/static/chunks/38d77ab6a534ec87.js +0 -1
  310. package/web/.next/static/chunks/712d4b9e22d0ff38.js +0 -1
  311. package/web/.next/static/chunks/84a181ff3270fd9f.js +0 -1
  312. package/web/.next/static/chunks/89aac43287d73b02.js +0 -1
  313. package/web/.next/static/chunks/da484d44874006a2.css +0 -1
  314. package/web/.next/static/chunks/f259386f4875e70c.js +0 -1
  315. /package/web/.next/server/chunks/{[root-of-the-server]__53013576._.js.map → [root-of-the-server]__25f23d5d._.js.map} +0 -0
  316. /package/web/.next/server/chunks/{[root-of-the-server]__92078db6._.js.map → [root-of-the-server]__26565141._.js.map} +0 -0
  317. /package/web/.next/server/chunks/{[root-of-the-server]__d8037e14._.js.map → [root-of-the-server]__2b1074db._.js.map} +0 -0
  318. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__2f886f77._.js.map → [root-of-the-server]__9023aab9._.js.map} +0 -0
  319. /package/web/.next/static/{yR1bDX4dtrRDAU5sWcjYr → AaWckT89P6HO54YcGwnR9}/_buildManifest.js +0 -0
  320. /package/web/.next/static/{yR1bDX4dtrRDAU5sWcjYr → AaWckT89P6HO54YcGwnR9}/_clientMiddlewareManifest.json +0 -0
  321. /package/web/.next/static/{yR1bDX4dtrRDAU5sWcjYr → AaWckT89P6HO54YcGwnR9}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/components/ui/label.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-label%402.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact%40_511ac9deb435ae46b2843bd1975598a6/node_modules/%40radix-ui/react-label/dist/index.mjs","../../../../../../../node_modules/.pnpm/sonner%402.0.7_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/sonner/dist/index.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Label as LabelPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst getAsset = (type)=>{\n switch(type){\n case 'success':\n return SuccessIcon;\n case 'info':\n return InfoIcon;\n case 'warning':\n return WarningIcon;\n case 'error':\n return ErrorIcon;\n default:\n return null;\n }\n};\nconst bars = Array(12).fill(0);\nconst Loader = ({ visible, className })=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: [\n 'sonner-loading-wrapper',\n className\n ].filter(Boolean).join(' '),\n \"data-visible\": visible\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-spinner\"\n }, bars.map((_, i)=>/*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-loading-bar\",\n key: `spinner-bar-${i}`\n }))));\n};\nconst SuccessIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n clipRule: \"evenodd\"\n}));\nconst WarningIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n clipRule: \"evenodd\"\n}));\nconst InfoIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n clipRule: \"evenodd\"\n}));\nconst ErrorIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n}));\nconst CloseIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"12\",\n height: \"12\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst useIsDocumentHidden = ()=>{\n const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);\n React.useEffect(()=>{\n const callback = ()=>{\n setIsDocumentHidden(document.hidden);\n };\n document.addEventListener('visibilitychange', callback);\n return ()=>window.removeEventListener('visibilitychange', callback);\n }, []);\n return isDocumentHidden;\n};\n\nlet toastsCounter = 1;\nclass Observer {\n constructor(){\n // We use arrow functions to maintain the correct `this` reference\n this.subscribe = (subscriber)=>{\n this.subscribers.push(subscriber);\n return ()=>{\n const index = this.subscribers.indexOf(subscriber);\n this.subscribers.splice(index, 1);\n };\n };\n this.publish = (data)=>{\n this.subscribers.forEach((subscriber)=>subscriber(data));\n };\n this.addToast = (data)=>{\n this.publish(data);\n this.toasts = [\n ...this.toasts,\n data\n ];\n };\n this.create = (data)=>{\n var _data_id;\n const { message, ...rest } = data;\n const id = typeof (data == null ? void 0 : data.id) === 'number' || ((_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast)=>{\n return toast.id === id;\n });\n const dismissible = data.dismissible === undefined ? true : data.dismissible;\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast)=>{\n if (toast.id === id) {\n this.publish({\n ...toast,\n ...data,\n id,\n title: message\n });\n return {\n ...toast,\n ...data,\n id,\n dismissible,\n title: message\n };\n }\n return toast;\n });\n } else {\n this.addToast({\n title: message,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n };\n this.dismiss = (id)=>{\n if (id) {\n this.dismissedToasts.add(id);\n requestAnimationFrame(()=>this.subscribers.forEach((subscriber)=>subscriber({\n id,\n dismiss: true\n })));\n } else {\n this.toasts.forEach((toast)=>{\n this.subscribers.forEach((subscriber)=>subscriber({\n id: toast.id,\n dismiss: true\n }));\n });\n }\n return id;\n };\n this.message = (message, data)=>{\n return this.create({\n ...data,\n message\n });\n };\n this.error = (message, data)=>{\n return this.create({\n ...data,\n message,\n type: 'error'\n });\n };\n this.success = (message, data)=>{\n return this.create({\n ...data,\n type: 'success',\n message\n });\n };\n this.info = (message, data)=>{\n return this.create({\n ...data,\n type: 'info',\n message\n });\n };\n this.warning = (message, data)=>{\n return this.create({\n ...data,\n type: 'warning',\n message\n });\n };\n this.loading = (message, data)=>{\n return this.create({\n ...data,\n type: 'loading',\n message\n });\n };\n this.promise = (promise, data)=>{\n if (!data) {\n // Nothing to show\n return;\n }\n let id = undefined;\n if (data.loading !== undefined) {\n id = this.create({\n ...data,\n promise,\n type: 'loading',\n message: data.loading,\n description: typeof data.description !== 'function' ? data.description : undefined\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== undefined;\n let result;\n const originalPromise = p.then(async (response)=>{\n result = [\n 'resolve',\n response\n ];\n const isReactElementResponse = React.isValidElement(response);\n if (isReactElementResponse) {\n shouldDismiss = false;\n this.create({\n id,\n type: 'default',\n message: response\n });\n } else if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === 'function' ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (response instanceof Error) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(response) : data.error;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (data.success !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.success === 'function' ? await data.success(response) : data.success;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'success',\n description,\n ...toastSettings\n });\n }\n }).catch(async (error)=>{\n result = [\n 'reject',\n error\n ];\n if (data.error !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(error) : data.error;\n const description = typeof data.description === 'function' ? await data.description(error) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n }\n }).finally(()=>{\n if (shouldDismiss) {\n // Toast is still in load state (and will be indefinitely — dismiss it)\n this.dismiss(id);\n id = undefined;\n }\n data.finally == null ? void 0 : data.finally.call(data);\n });\n const unwrap = ()=>new Promise((resolve, reject)=>originalPromise.then(()=>result[0] === 'reject' ? reject(result[1]) : resolve(result[1])).catch(reject));\n if (typeof id !== 'string' && typeof id !== 'number') {\n // cannot Object.assign on undefined\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n };\n this.custom = (jsx, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n this.create({\n jsx: jsx(id),\n id,\n ...data\n });\n return id;\n };\n this.getActiveToasts = ()=>{\n return this.toasts.filter((toast)=>!this.dismissedToasts.has(toast.id));\n };\n this.subscribers = [];\n this.toasts = [];\n this.dismissedToasts = new Set();\n }\n}\nconst ToastState = new Observer();\n// bind this to the toast function\nconst toastFunction = (message, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n ToastState.addToast({\n title: message,\n ...data,\n id\n });\n return id;\n};\nconst isHttpResponse = (data)=>{\n return data && typeof data === 'object' && 'ok' in data && typeof data.ok === 'boolean' && 'status' in data && typeof data.status === 'number';\n};\nconst basicToast = toastFunction;\nconst getHistory = ()=>ToastState.toasts;\nconst getToasts = ()=>ToastState.getActiveToasts();\n// We use `Object.assign` to maintain the correct types as we would lose them otherwise\nconst toast = Object.assign(basicToast, {\n success: ToastState.success,\n info: ToastState.info,\n warning: ToastState.warning,\n error: ToastState.error,\n custom: ToastState.custom,\n message: ToastState.message,\n promise: ToastState.promise,\n dismiss: ToastState.dismiss,\n loading: ToastState.loading\n}, {\n getHistory,\n getToasts\n});\n\n__insertCSS(\"[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\");\n\nfunction isAction(action) {\n return action.label !== undefined;\n}\n\n// Visible toasts amount\nconst VISIBLE_TOASTS_AMOUNT = 3;\n// Viewport padding\nconst VIEWPORT_OFFSET = '24px';\n// Mobile viewport padding\nconst MOBILE_VIEWPORT_OFFSET = '16px';\n// Default lifetime of a toasts (in ms)\nconst TOAST_LIFETIME = 4000;\n// Default toast width\nconst TOAST_WIDTH = 356;\n// Default gap between toasts\nconst GAP = 14;\n// Threshold to dismiss a toast\nconst SWIPE_THRESHOLD = 45;\n// Equal to exit animation duration\nconst TIME_BEFORE_UNMOUNT = 200;\nfunction cn(...classes) {\n return classes.filter(Boolean).join(' ');\n}\nfunction getDefaultSwipeDirections(position) {\n const [y, x] = position.split('-');\n const directions = [];\n if (y) {\n directions.push(y);\n }\n if (x) {\n directions.push(x);\n }\n return directions;\n}\nconst Toast = (props)=>{\n var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;\n const { invert: ToasterInvert, toast, unstyled, interacting, setHeights, visibleToasts, heights, index, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = '', descriptionClassName = '', duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = 'Close toast' } = props;\n const [swipeDirection, setSwipeDirection] = React.useState(null);\n const [swipeOutDirection, setSwipeOutDirection] = React.useState(null);\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swiping, setSwiping] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [isSwiped, setIsSwiped] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const [initialHeight, setInitialHeight] = React.useState(0);\n const remainingTime = React.useRef(toast.duration || durationFromToaster || TOAST_LIFETIME);\n const dragStartTime = React.useRef(null);\n const toastRef = React.useRef(null);\n const isFront = index === 0;\n const isVisible = index + 1 <= visibleToasts;\n const toastType = toast.type;\n const dismissible = toast.dismissible !== false;\n const toastClassname = toast.className || '';\n const toastDescriptionClassname = toast.descriptionClassName || '';\n // Height index is used to calculate the offset as it gets updated before the toast array, which means we can calculate the new layout faster.\n const heightIndex = React.useMemo(()=>heights.findIndex((height)=>height.toastId === toast.id) || 0, [\n heights,\n toast.id\n ]);\n const closeButton = React.useMemo(()=>{\n var _toast_closeButton;\n return (_toast_closeButton = toast.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;\n }, [\n toast.closeButton,\n closeButtonFromToaster\n ]);\n const duration = React.useMemo(()=>toast.duration || durationFromToaster || TOAST_LIFETIME, [\n toast.duration,\n durationFromToaster\n ]);\n const closeTimerStartTimeRef = React.useRef(0);\n const offset = React.useRef(0);\n const lastCloseTimerStartTimeRef = React.useRef(0);\n const pointerStartRef = React.useRef(null);\n const [y, x] = position.split('-');\n const toastsHeightBefore = React.useMemo(()=>{\n return heights.reduce((prev, curr, reducerIndex)=>{\n // Calculate offset up until current toast\n if (reducerIndex >= heightIndex) {\n return prev;\n }\n return prev + curr.height;\n }, 0);\n }, [\n heights,\n heightIndex\n ]);\n const isDocumentHidden = useIsDocumentHidden();\n const invert = toast.invert || ToasterInvert;\n const disabled = toastType === 'loading';\n offset.current = React.useMemo(()=>heightIndex * gap + toastsHeightBefore, [\n heightIndex,\n toastsHeightBefore\n ]);\n React.useEffect(()=>{\n remainingTime.current = duration;\n }, [\n duration\n ]);\n React.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n setMounted(true);\n }, []);\n React.useEffect(()=>{\n const toastNode = toastRef.current;\n if (toastNode) {\n const height = toastNode.getBoundingClientRect().height;\n // Add toast height to heights array after the toast is mounted\n setInitialHeight(height);\n setHeights((h)=>[\n {\n toastId: toast.id,\n height,\n position: toast.position\n },\n ...h\n ]);\n return ()=>setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n }\n }, [\n setHeights,\n toast.id\n ]);\n React.useLayoutEffect(()=>{\n // Keep height up to date with the content in case it updates\n if (!mounted) return;\n const toastNode = toastRef.current;\n const originalHeight = toastNode.style.height;\n toastNode.style.height = 'auto';\n const newHeight = toastNode.getBoundingClientRect().height;\n toastNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights)=>{\n const alreadyExists = heights.find((height)=>height.toastId === toast.id);\n if (!alreadyExists) {\n return [\n {\n toastId: toast.id,\n height: newHeight,\n position: toast.position\n },\n ...heights\n ];\n } else {\n return heights.map((height)=>height.toastId === toast.id ? {\n ...height,\n height: newHeight\n } : height);\n }\n });\n }, [\n mounted,\n toast.title,\n toast.description,\n setHeights,\n toast.id,\n toast.jsx,\n toast.action,\n toast.cancel\n ]);\n const deleteToast = React.useCallback(()=>{\n // Save the offset for the exit swipe animation\n setRemoved(true);\n setOffsetBeforeRemove(offset.current);\n setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n setTimeout(()=>{\n removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n toast,\n removeToast,\n setHeights,\n offset\n ]);\n React.useEffect(()=>{\n if (toast.promise && toastType === 'loading' || toast.duration === Infinity || toast.type === 'loading') return;\n let timeoutId;\n // Pause the timer on each hover\n const pauseTimer = ()=>{\n if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {\n // Get the elapsed time since the timer started\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n remainingTime.current = remainingTime.current - elapsedTime;\n }\n lastCloseTimerStartTimeRef.current = new Date().getTime();\n };\n const startTimer = ()=>{\n // setTimeout(, Infinity) behaves as if the delay is 0.\n // As a result, the toast would be closed immediately, giving the appearance that it was never rendered.\n // See: https://github.com/denysdovhan/wtfjs?tab=readme-ov-file#an-infinite-timeout\n if (remainingTime.current === Infinity) return;\n closeTimerStartTimeRef.current = new Date().getTime();\n // Let the toast know it has started\n timeoutId = setTimeout(()=>{\n toast.onAutoClose == null ? void 0 : toast.onAutoClose.call(toast, toast);\n deleteToast();\n }, remainingTime.current);\n };\n if (expanded || interacting || isDocumentHidden) {\n pauseTimer();\n } else {\n startTimer();\n }\n return ()=>clearTimeout(timeoutId);\n }, [\n expanded,\n interacting,\n toast,\n toastType,\n isDocumentHidden,\n deleteToast\n ]);\n React.useEffect(()=>{\n if (toast.delete) {\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n }\n }, [\n deleteToast,\n toast.delete\n ]);\n function getLoadingIcon() {\n var _toast_classNames;\n if (icons == null ? void 0 : icons.loading) {\n var _toast_classNames1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1.loader, 'sonner-loader'),\n \"data-visible\": toastType === 'loading'\n }, icons.loading);\n }\n return /*#__PURE__*/ React.createElement(Loader, {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.loader),\n visible: toastType === 'loading'\n });\n }\n const icon = toast.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);\n var _toast_richColors, _icons_close;\n return /*#__PURE__*/ React.createElement(\"li\", {\n tabIndex: 0,\n ref: toastRef,\n className: cn(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames.default, classNames == null ? void 0 : classNames[toastType], toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1[toastType]),\n \"data-sonner-toast\": \"\",\n \"data-rich-colors\": (_toast_richColors = toast.richColors) != null ? _toast_richColors : defaultRichColors,\n \"data-styled\": !Boolean(toast.jsx || toast.unstyled || unstyled),\n \"data-mounted\": mounted,\n \"data-promise\": Boolean(toast.promise),\n \"data-swiped\": isSwiped,\n \"data-removed\": removed,\n \"data-visible\": isVisible,\n \"data-y-position\": y,\n \"data-x-position\": x,\n \"data-index\": index,\n \"data-front\": isFront,\n \"data-swiping\": swiping,\n \"data-dismissible\": dismissible,\n \"data-type\": toastType,\n \"data-invert\": invert,\n \"data-swipe-out\": swipeOut,\n \"data-swipe-direction\": swipeOutDirection,\n \"data-expanded\": Boolean(expanded || expandByDefault && mounted),\n \"data-testid\": toast.testId,\n style: {\n '--index': index,\n '--toasts-before': index,\n '--z-index': toasts.length - index,\n '--offset': `${removed ? offsetBeforeRemove : offset.current}px`,\n '--initial-height': expandByDefault ? 'auto' : `${initialHeight}px`,\n ...style,\n ...toast.style\n },\n onDragEnd: ()=>{\n setSwiping(false);\n setSwipeDirection(null);\n pointerStartRef.current = null;\n },\n onPointerDown: (event)=>{\n if (event.button === 2) return; // Return early on right click\n if (disabled || !dismissible) return;\n dragStartTime.current = new Date();\n setOffsetBeforeRemove(offset.current);\n // Ensure we maintain correct pointer capture even when going outside of the toast (e.g. when swiping)\n event.target.setPointerCapture(event.pointerId);\n if (event.target.tagName === 'BUTTON') return;\n setSwiping(true);\n pointerStartRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n },\n onPointerUp: ()=>{\n var _toastRef_current, _toastRef_current1, _dragStartTime_current;\n if (swipeOut || !dismissible) return;\n pointerStartRef.current = null;\n const swipeAmountX = Number(((_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.getPropertyValue('--swipe-amount-x').replace('px', '')) || 0);\n const swipeAmountY = Number(((_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.getPropertyValue('--swipe-amount-y').replace('px', '')) || 0);\n const timeTaken = new Date().getTime() - ((_dragStartTime_current = dragStartTime.current) == null ? void 0 : _dragStartTime_current.getTime());\n const swipeAmount = swipeDirection === 'x' ? swipeAmountX : swipeAmountY;\n const velocity = Math.abs(swipeAmount) / timeTaken;\n if (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(offset.current);\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n if (swipeDirection === 'x') {\n setSwipeOutDirection(swipeAmountX > 0 ? 'right' : 'left');\n } else {\n setSwipeOutDirection(swipeAmountY > 0 ? 'down' : 'up');\n }\n deleteToast();\n setSwipeOut(true);\n return;\n } else {\n var _toastRef_current2, _toastRef_current3;\n (_toastRef_current2 = toastRef.current) == null ? void 0 : _toastRef_current2.style.setProperty('--swipe-amount-x', `0px`);\n (_toastRef_current3 = toastRef.current) == null ? void 0 : _toastRef_current3.style.setProperty('--swipe-amount-y', `0px`);\n }\n setIsSwiped(false);\n setSwiping(false);\n setSwipeDirection(null);\n },\n onPointerMove: (event)=>{\n var _window_getSelection, // Apply transform using both x and y values\n _toastRef_current, _toastRef_current1;\n if (!pointerStartRef.current || !dismissible) return;\n const isHighlighted = ((_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString().length) > 0;\n if (isHighlighted) return;\n const yDelta = event.clientY - pointerStartRef.current.y;\n const xDelta = event.clientX - pointerStartRef.current.x;\n var _props_swipeDirections;\n const swipeDirections = (_props_swipeDirections = props.swipeDirections) != null ? _props_swipeDirections : getDefaultSwipeDirections(position);\n // Determine swipe direction if not already locked\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? 'x' : 'y');\n }\n let swipeAmount = {\n x: 0,\n y: 0\n };\n const getDampening = (delta)=>{\n const factor = Math.abs(delta) / 20;\n return 1 / (1.5 + factor);\n };\n // Only apply swipe in the locked direction\n if (swipeDirection === 'y') {\n // Handle vertical swipes\n if (swipeDirections.includes('top') || swipeDirections.includes('bottom')) {\n if (swipeDirections.includes('top') && yDelta < 0 || swipeDirections.includes('bottom') && yDelta > 0) {\n swipeAmount.y = yDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = yDelta * getDampening(yDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;\n }\n }\n } else if (swipeDirection === 'x') {\n // Handle horizontal swipes\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n if (swipeDirections.includes('left') && xDelta < 0 || swipeDirections.includes('right') && xDelta > 0) {\n swipeAmount.x = xDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = xDelta * getDampening(xDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;\n }\n }\n }\n if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {\n setIsSwiped(true);\n }\n (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty('--swipe-amount-x', `${swipeAmount.x}px`);\n (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty('--swipe-amount-y', `${swipeAmount.y}px`);\n }\n }, closeButton && !toast.jsx && toastType !== 'loading' ? /*#__PURE__*/ React.createElement(\"button\", {\n \"aria-label\": closeButtonAriaLabel,\n \"data-disabled\": disabled,\n \"data-close-button\": true,\n onClick: disabled || !dismissible ? ()=>{} : ()=>{\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n },\n className: cn(classNames == null ? void 0 : classNames.closeButton, toast == null ? void 0 : (_toast_classNames2 = toast.classNames) == null ? void 0 : _toast_classNames2.closeButton)\n }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast.icon || toast.promise) && toast.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast.icon) ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-icon\": \"\",\n className: cn(classNames == null ? void 0 : classNames.icon, toast == null ? void 0 : (_toast_classNames3 = toast.classNames) == null ? void 0 : _toast_classNames3.icon)\n }, toast.promise || toast.type === 'loading' && !toast.icon ? toast.icon || getLoadingIcon() : null, toast.type !== 'loading' ? icon : null) : null, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-content\": \"\",\n className: cn(classNames == null ? void 0 : classNames.content, toast == null ? void 0 : (_toast_classNames4 = toast.classNames) == null ? void 0 : _toast_classNames4.content)\n }, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-title\": \"\",\n className: cn(classNames == null ? void 0 : classNames.title, toast == null ? void 0 : (_toast_classNames5 = toast.classNames) == null ? void 0 : _toast_classNames5.title)\n }, toast.jsx ? toast.jsx : typeof toast.title === 'function' ? toast.title() : toast.title), toast.description ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-description\": \"\",\n className: cn(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast == null ? void 0 : (_toast_classNames6 = toast.classNames) == null ? void 0 : _toast_classNames6.description)\n }, typeof toast.description === 'function' ? toast.description() : toast.description) : null), /*#__PURE__*/ React.isValidElement(toast.cancel) ? toast.cancel : toast.cancel && isAction(toast.cancel) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-cancel\": true,\n style: toast.cancelButtonStyle || cancelButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.cancel)) return;\n if (!dismissible) return;\n toast.cancel.onClick == null ? void 0 : toast.cancel.onClick.call(toast.cancel, event);\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.cancelButton, toast == null ? void 0 : (_toast_classNames7 = toast.classNames) == null ? void 0 : _toast_classNames7.cancelButton)\n }, toast.cancel.label) : null, /*#__PURE__*/ React.isValidElement(toast.action) ? toast.action : toast.action && isAction(toast.action) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-action\": true,\n style: toast.actionButtonStyle || actionButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.action)) return;\n toast.action.onClick == null ? void 0 : toast.action.onClick.call(toast.action, event);\n if (event.defaultPrevented) return;\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.actionButton, toast == null ? void 0 : (_toast_classNames8 = toast.classNames) == null ? void 0 : _toast_classNames8.actionButton)\n }, toast.action.label) : null);\n};\nfunction getDocumentDirection() {\n if (typeof window === 'undefined') return 'ltr';\n if (typeof document === 'undefined') return 'ltr'; // For Fresh purpose\n const dirAttribute = document.documentElement.getAttribute('dir');\n if (dirAttribute === 'auto' || !dirAttribute) {\n return window.getComputedStyle(document.documentElement).direction;\n }\n return dirAttribute;\n}\nfunction assignOffset(defaultOffset, mobileOffset) {\n const styles = {};\n [\n defaultOffset,\n mobileOffset\n ].forEach((offset, index)=>{\n const isMobile = index === 1;\n const prefix = isMobile ? '--mobile-offset' : '--offset';\n const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n function assignAll(offset) {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n styles[`${prefix}-${key}`] = typeof offset === 'number' ? `${offset}px` : offset;\n });\n }\n if (typeof offset === 'number' || typeof offset === 'string') {\n assignAll(offset);\n } else if (typeof offset === 'object') {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n if (offset[key] === undefined) {\n styles[`${prefix}-${key}`] = defaultValue;\n } else {\n styles[`${prefix}-${key}`] = typeof offset[key] === 'number' ? `${offset[key]}px` : offset[key];\n }\n });\n } else {\n assignAll(defaultValue);\n }\n });\n return styles;\n}\nfunction useSonner() {\n const [activeToasts, setActiveToasts] = React.useState([]);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>toasts.filter((t)=>t.id !== toast.id));\n });\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, []);\n return {\n toasts: activeToasts\n };\n}\nconst Toaster = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {\n const { id, invert, position = 'bottom-right', hotkey = [\n 'altKey',\n 'KeyT'\n ], expand, closeButton, className, offset, mobileOffset, theme = 'light', richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = 'Notifications' } = props;\n const [toasts, setToasts] = React.useState([]);\n const filteredToasts = React.useMemo(()=>{\n if (id) {\n return toasts.filter((toast)=>toast.toasterId === id);\n }\n return toasts.filter((toast)=>!toast.toasterId);\n }, [\n toasts,\n id\n ]);\n const possiblePositions = React.useMemo(()=>{\n return Array.from(new Set([\n position\n ].concat(filteredToasts.filter((toast)=>toast.position).map((toast)=>toast.position))));\n }, [\n filteredToasts,\n position\n ]);\n const [heights, setHeights] = React.useState([]);\n const [expanded, setExpanded] = React.useState(false);\n const [interacting, setInteracting] = React.useState(false);\n const [actualTheme, setActualTheme] = React.useState(theme !== 'system' ? theme : typeof window !== 'undefined' ? window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : 'light');\n const listRef = React.useRef(null);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const lastFocusedElementRef = React.useRef(null);\n const isFocusWithinRef = React.useRef(false);\n const removeToast = React.useCallback((toastToRemove)=>{\n setToasts((toasts)=>{\n var _toasts_find;\n if (!((_toasts_find = toasts.find((toast)=>toast.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts.filter(({ id })=>id !== toastToRemove.id);\n });\n }, []);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n // Prevent batching of other state updates\n requestAnimationFrame(()=>{\n setToasts((toasts)=>toasts.map((t)=>t.id === toast.id ? {\n ...t,\n delete: true\n } : t));\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n if (theme !== 'system') {\n setActualTheme(theme);\n return;\n }\n if (theme === 'system') {\n // check if current preference is dark\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n // it's currently dark\n setActualTheme('dark');\n } else {\n // it's not dark\n setActualTheme('light');\n }\n }\n if (typeof window === 'undefined') return;\n const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n try {\n // Chrome & Firefox\n darkMediaQuery.addEventListener('change', ({ matches })=>{\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n });\n } catch (error) {\n // Safari < 14\n darkMediaQuery.addListener(({ matches })=>{\n try {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n }, [\n theme\n ]);\n React.useEffect(()=>{\n // Ensure expanded is always false when no toasts are present / only one left\n if (toasts.length <= 1) {\n setExpanded(false);\n }\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n const handleKeyDown = (event)=>{\n var _listRef_current;\n const isHotkeyPressed = hotkey.every((key)=>event[key] || event.code === key);\n if (isHotkeyPressed) {\n var _listRef_current1;\n setExpanded(true);\n (_listRef_current1 = listRef.current) == null ? void 0 : _listRef_current1.focus();\n }\n if (event.code === 'Escape' && (document.activeElement === listRef.current || ((_listRef_current = listRef.current) == null ? void 0 : _listRef_current.contains(document.activeElement)))) {\n setExpanded(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown);\n }, [\n hotkey\n ]);\n React.useEffect(()=>{\n if (listRef.current) {\n return ()=>{\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n isFocusWithinRef.current = false;\n }\n };\n }\n }, [\n listRef.current\n ]);\n return(// Remove item from normal navigation flow, only available via hotkey\n /*#__PURE__*/ React.createElement(\"section\", {\n ref: ref,\n \"aria-label\": `${containerAriaLabel} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions text\",\n \"aria-atomic\": \"false\",\n suppressHydrationWarning: true\n }, possiblePositions.map((position, index)=>{\n var _heights_;\n const [y, x] = position.split('-');\n if (!filteredToasts.length) return null;\n return /*#__PURE__*/ React.createElement(\"ol\", {\n key: position,\n dir: dir === 'auto' ? getDocumentDirection() : dir,\n tabIndex: -1,\n ref: listRef,\n className: className,\n \"data-sonner-toaster\": true,\n \"data-sonner-theme\": actualTheme,\n \"data-y-position\": y,\n \"data-x-position\": x,\n style: {\n '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,\n '--width': `${TOAST_WIDTH}px`,\n '--gap': `${gap}px`,\n ...style,\n ...assignOffset(offset, mobileOffset)\n },\n onBlur: (event)=>{\n if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {\n isFocusWithinRef.current = false;\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n }\n }\n },\n onFocus: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n if (!isFocusWithinRef.current) {\n isFocusWithinRef.current = true;\n lastFocusedElementRef.current = event.relatedTarget;\n }\n },\n onMouseEnter: ()=>setExpanded(true),\n onMouseMove: ()=>setExpanded(true),\n onMouseLeave: ()=>{\n // Avoid setting expanded to false when interacting with a toast, e.g. swiping\n if (!interacting) {\n setExpanded(false);\n }\n },\n onDragEnd: ()=>setExpanded(false),\n onPointerDown: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n setInteracting(true);\n },\n onPointerUp: ()=>setInteracting(false)\n }, filteredToasts.filter((toast)=>!toast.position && index === 0 || toast.position === position).map((toast, index)=>{\n var _toastOptions_duration, _toastOptions_closeButton;\n return /*#__PURE__*/ React.createElement(Toast, {\n key: toast.id,\n icons: icons,\n index: index,\n toast: toast,\n defaultRichColors: richColors,\n duration: (_toastOptions_duration = toastOptions == null ? void 0 : toastOptions.duration) != null ? _toastOptions_duration : duration,\n className: toastOptions == null ? void 0 : toastOptions.className,\n descriptionClassName: toastOptions == null ? void 0 : toastOptions.descriptionClassName,\n invert: invert,\n visibleToasts: visibleToasts,\n closeButton: (_toastOptions_closeButton = toastOptions == null ? void 0 : toastOptions.closeButton) != null ? _toastOptions_closeButton : closeButton,\n interacting: interacting,\n position: position,\n style: toastOptions == null ? void 0 : toastOptions.style,\n unstyled: toastOptions == null ? void 0 : toastOptions.unstyled,\n classNames: toastOptions == null ? void 0 : toastOptions.classNames,\n cancelButtonStyle: toastOptions == null ? void 0 : toastOptions.cancelButtonStyle,\n actionButtonStyle: toastOptions == null ? void 0 : toastOptions.actionButtonStyle,\n closeButtonAriaLabel: toastOptions == null ? void 0 : toastOptions.closeButtonAriaLabel,\n removeToast: removeToast,\n toasts: filteredToasts.filter((t)=>t.position == toast.position),\n heights: heights.filter((h)=>h.position == toast.position),\n setHeights: setHeights,\n expandByDefault: expand,\n gap: gap,\n expanded: expanded,\n swipeDirections: props.swipeDirections\n });\n }));\n })));\n});\n\nexport { Toaster, toast, useSonner };\n"],"names":[],"mappings":"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","ignoreList":[1,2]}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95230,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["default",()=>t])},93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},16868,48306,80436,28267,86254,50032,42076,e=>{"use strict";var t=e.i(3645);let r=(0,t.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"}]]);e.s(["PaperclipIcon",()=>r],16868);var a=e.i(20314),s=e.i(31777);function o({className:e,...t}){return(0,a.jsx)("textarea",{"data-slot":"textarea",className:(0,s.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",e),...t})}e.s(["Textarea",()=>o],48306);var i=e.i(60253),n=e.i(15506),n=n,l=e.i(95230);e.s(["DownloadIcon",()=>l.default],80436);var l=l,d=e.i(2287),c=e.i(1693);e.s(["VisuallyHidden",0,c],28267);var c=c;let p=(0,t.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 u=e.i(16298),u=u;let h=(0,t.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 m=e.i(93752),m=m;e.i(35364);let x=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),f=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function g(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}let b=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function v(e,t){let r=new URLSearchParams({path:e,mimeType:t});return`/api/attachments/preview?${r.toString()}`}function j({name:e,size:t,mimeType:r,path:o,onRemove:j,loading:w=!1,disabled:y=!1}){let C,k,N=(C=e.lastIndexOf("."))>=0?e.slice(C).toLowerCase():"",P=x.has(N)?h:".pdf"===N?u.default:f.has(N)?m.default:p,T=".pdf"===N?"bg-red-50 text-red-600":x.has(N)?"bg-blue-50 text-blue-600":f.has(N)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",S=(k=e.lastIndexOf("."))>=0&&b.has(e.slice(k).toLowerCase());return w?(0,a.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,a.jsx)(n.default,{className:"text-muted-foreground h-5 w-5 animate-spin"})}):S?(0,a.jsxs)(d.Dialog,{children:[(0,a.jsxs)("div",{className:"group relative",children:[(0,a.jsx)(d.DialogTrigger,{asChild:!0,children:(0,a.jsx)("img",{src:v(o,r),alt:e,title:e,className:"h-12 w-12 cursor-pointer rounded-md border object-cover transition-opacity hover:opacity-80"})}),!y&&(0,a.jsx)("button",{type:"button",onClick:j,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 ${e}`,children:(0,a.jsx)(i.X,{className:"h-3 w-3"})})]}),(0,a.jsxs)(d.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,a.jsx)(c.Root,{children:(0,a.jsxs)(d.DialogTitle,{children:["Preview: ",e]})}),(0,a.jsx)("div",{className:"relative bg-black/90",children:(0,a.jsx)("img",{src:v(o,r),alt:e,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,a.jsxs)("div",{className:"bg-background flex items-center gap-3 px-4 py-3",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,a.jsx)("span",{className:"truncate text-sm font-medium",children:e}),(0,a.jsx)("span",{className:"text-muted-foreground text-xs",children:g(t)})]}),(0,a.jsx)("a",{href:v(o,r),download:e,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${e}`,children:(0,a.jsx)(l.default,{className:"h-4 w-4"})})]})]})]}):(0,a.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 pr-3 pl-2",children:[(0,a.jsx)("div",{className:(0,s.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",T),children:(0,a.jsx)(P,{className:"h-3 w-3"})}),(0,a.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:e}),(0,a.jsx)("span",{className:"text-muted-foreground text-xs",children:g(t)}),!y&&(0,a.jsx)("button",{type:"button",onClick:j,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 ${e}`,children:(0,a.jsx)(i.X,{className:"h-3 w-3"})})]})}async function w(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}e.s(["AttachmentChip",()=>j],86254),e.s([],50032),e.s(["pickFiles",()=>w],42076)},90382,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),o=e.i(22528),i=e.i(53532),n=e.i(41687),l=e.i(56720),d=e.i(13123),c=e.i(52740),p=e.i(39979),u=e.i(85995),h=e.i(87620),m=e.i(86874),x=e.i(36589),f=e.i(73772),g=e.i(13044),b="Popover",[v,j]=(0,o.createContextScope)(b,[c.createPopperScope]),w=(0,c.createPopperScope)(),[y,C]=v(b),k=e=>{let{__scopePopover:a,children:s,open:o,defaultOpen:i,onOpenChange:n,modal:l=!1}=e,p=w(a),u=r.useRef(null),[h,m]=r.useState(!1),[f,g]=(0,x.useControllableState)({prop:o,defaultProp:i??!1,onChange:n,caller:b});return(0,t.jsx)(c.Root,{...p,children:(0,t.jsx)(y,{scope:a,contentId:(0,d.useId)(),triggerRef:u,open:f,onOpenChange:g,onOpenToggle:r.useCallback(()=>g(e=>!e),[g]),hasCustomAnchor:h,onCustomAnchorAdd:r.useCallback(()=>m(!0),[]),onCustomAnchorRemove:r.useCallback(()=>m(!1),[]),modal:l,children:s})})};k.displayName=b;var N="PopoverAnchor",P=r.forwardRef((e,a)=>{let{__scopePopover:s,...o}=e,i=C(N,s),n=w(s),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=i;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(c.Anchor,{...n,...o,ref:a})});P.displayName=N;var T="PopoverTrigger",S=r.forwardRef((e,r)=>{let{__scopePopover:o,...i}=e,n=C(T,o),l=w(o),d=(0,s.useComposedRefs)(r,n.triggerRef),p=(0,t.jsx)(h.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":q(n.open),...i,ref:d,onClick:(0,a.composeEventHandlers)(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?p:(0,t.jsx)(c.Anchor,{asChild:!0,...l,children:p})});S.displayName=T;var R="PopoverPortal",[A,E]=v(R,{forceMount:void 0}),F=e=>{let{__scopePopover:r,forceMount:a,children:s,container:o}=e,i=C(R,r);return(0,t.jsx)(A,{scope:r,forceMount:a,children:(0,t.jsx)(u.Presence,{present:a||i.open,children:(0,t.jsx)(p.Portal,{asChild:!0,container:o,children:s})})})};F.displayName=R;var D="PopoverContent",O=r.forwardRef((e,r)=>{let a=E(D,e.__scopePopover),{forceMount:s=a.forceMount,...o}=e,i=C(D,e.__scopePopover);return(0,t.jsx)(u.Presence,{present:s||i.open,children:i.modal?(0,t.jsx)(z,{...o,ref:r}):(0,t.jsx)(L,{...o,ref:r})})});O.displayName=D;var I=(0,m.createSlot)("PopoverContent.RemoveScroll"),z=r.forwardRef((e,o)=>{let i=C(D,e.__scopePopover),n=r.useRef(null),l=(0,s.useComposedRefs)(o,n),d=r.useRef(!1);return r.useEffect(()=>{let e=n.current;if(e)return(0,f.hideOthers)(e)},[]),(0,t.jsx)(g.RemoveScroll,{as:I,allowPinchZoom:!0,children:(0,t.jsx)(M,{...e,ref:l,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,a.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),d.current||i.triggerRef.current?.focus()}),onPointerDownOutside:(0,a.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;d.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,a.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=r.forwardRef((e,a)=>{let s=C(D,e.__scopePopover),o=r.useRef(!1),i=r.useRef(!1);return(0,t.jsx)(M,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||s.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(i.current=!0));let r=t.target;s.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),M=r.forwardRef((e,r)=>{let{__scopePopover:a,trapFocus:s,onOpenAutoFocus:o,onCloseAutoFocus:d,disableOutsidePointerEvents:p,onEscapeKeyDown:u,onPointerDownOutside:h,onFocusOutside:m,onInteractOutside:x,...f}=e,g=C(D,a),b=w(a);return(0,n.useFocusGuards)(),(0,t.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:o,onUnmountAutoFocus:d,children:(0,t.jsx)(i.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:p,onInteractOutside:x,onEscapeKeyDown:u,onPointerDownOutside:h,onFocusOutside:m,onDismiss:()=>g.onOpenChange(!1),children:(0,t.jsx)(c.Content,{"data-state":q(g.open),role:"dialog",id:g.contentId,...b,...f,ref:r,style:{...f.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)"}})})})}),U="PopoverClose",B=r.forwardRef((e,r)=>{let{__scopePopover:s,...o}=e,i=C(U,s);return(0,t.jsx)(h.Primitive.button,{type:"button",...o,ref:r,onClick:(0,a.composeEventHandlers)(e.onClick,()=>i.onOpenChange(!1))})});B.displayName=U;var $=r.forwardRef((e,r)=>{let{__scopePopover:a,...s}=e,o=w(a);return(0,t.jsx)(c.Arrow,{...o,...s,ref:r})});function q(e){return e?"open":"closed"}$.displayName="PopoverArrow",e.s(["Anchor",()=>P,"Arrow",()=>$,"Close",()=>B,"Content",()=>O,"Popover",()=>k,"PopoverAnchor",()=>P,"PopoverArrow",()=>$,"PopoverClose",()=>B,"PopoverContent",()=>O,"PopoverPortal",()=>F,"PopoverTrigger",()=>S,"Portal",()=>F,"Root",()=>k,"Trigger",()=>S,"createPopoverScope",()=>j],89920);var H=e.i(89920),H=H,G=e.i(31777);let _=H.Root,K=H.Trigger;H.Anchor;let W=r.forwardRef(({className:e,align:r="center",sideOffset:a=4,...s},o)=>(0,t.jsx)(H.Portal,{children:(0,t.jsx)(H.Content,{ref:o,align:r,sideOffset:a,className:(0,G.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",e),...s})}));W.displayName=H.Content.displayName,e.s(["Popover",()=>_,"PopoverContent",()=>W,"PopoverTrigger",()=>K],90382)},83843,e=>{"use strict";let t=(0,e.i(3645).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);e.s(["ChevronsUpDown",()=>t],83843)},51911,41413,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),o=e.i(22528),i=e.i(36589),n=e.i(23405),l=e.i(77624),d=e.i(87620),c="Switch",[p,u]=(0,o.createContextScope)(c),[h,m]=p(c),x=r.forwardRef((e,o)=>{let{__scopeSwitch:n,name:l,checked:p,defaultChecked:u,required:m,disabled:x,value:f="on",onCheckedChange:g,form:j,...w}=e,[y,C]=r.useState(null),k=(0,s.useComposedRefs)(o,e=>C(e)),N=r.useRef(!1),P=!y||j||!!y.closest("form"),[T,S]=(0,i.useControllableState)({prop:p,defaultProp:u??!1,onChange:g,caller:c});return(0,t.jsxs)(h,{scope:n,checked:T,disabled:x,children:[(0,t.jsx)(d.Primitive.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":v(T),"data-disabled":x?"":void 0,disabled:x,value:f,...w,ref:k,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{S(e=>!e),P&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),P&&(0,t.jsx)(b,{control:y,bubbles:!N.current,name:l,value:f,checked:T,required:m,disabled:x,form:j,style:{transform:"translateX(-100%)"}})]})});x.displayName=c;var f="SwitchThumb",g=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,o=m(f,a);return(0,t.jsx)(d.Primitive.span,{"data-state":v(o.checked),"data-disabled":o.disabled?"":void 0,...s,ref:r})});g.displayName=f;var b=r.forwardRef(({__scopeSwitch:e,control:a,checked:o,bubbles:i=!0,...d},c)=>{let p=r.useRef(null),u=(0,s.useComposedRefs)(p,c),h=(0,n.usePrevious)(o),m=(0,l.useSize)(a);return r.useEffect(()=>{let e=p.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==o&&t){let r=new Event("click",{bubbles:i});t.call(e,o),e.dispatchEvent(r)}},[h,o,i]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o,...d,tabIndex:-1,ref:u,style:{...d.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function v(e){return e?"checked":"unchecked"}b.displayName="SwitchBubbleInput",e.s(["Root",()=>x,"Switch",()=>x,"SwitchThumb",()=>g,"Thumb",()=>g,"createSwitchScope",()=>u],95291);var j=e.i(95291),j=j,w=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,w.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",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,w.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")})})}e.s(["Switch",()=>y],51911);var C=e.i(23925),k=e.i(11345),N=e.i(76016),P=e.i(8668),T=e.i(3079),S=e.i(86782),R=e.i(29847),A=e.i(35364),E=e.i(90382);function F({initialAgentType:e,initialModel:a,onAgentModelChange:s,disabled:o,className:i,mode:n}){let[l,d]=r.useState(!1),[c,p]=r.useState([]),[u,h]=r.useState(!0),[m,x]=r.useState(e),[f,g]=r.useState(a),[b,v]=r.useState(null),[j,y]=r.useState(0),[F,D]=r.useState(null);r.useEffect(()=>{(0,P.getAllAgentModels)().then(p).finally(()=>h(!1))},[]),r.useEffect(()=>{if(!l){let e=setTimeout(()=>{y(0),D(null)},150);return()=>clearTimeout(e)}},[l]);let O=async(e,t)=>{if(d(!1),e!==m||t!==f){if("override"===n){x(e),g(t),s?.(e,t);return}x(e),g(t),s?.(e,t),v(null);try{let r=await (0,T.updateAgentAndModel)(e,t||null);r.ok||(x(m),g(f),s?.(m,f),v(r.error??"Failed to save"))}catch{x(m),g(f),s?.(m,f),v("Failed to save")}}},I=(0,S.getAgentTypeIcon)(m),z=c.find(e=>e.agentType===m)?.label??m,L=f?(0,R.getModelMeta)(f).displayName||f:null,M=F?c.find(e=>e.agentType===F):null;return(0,t.jsxs)("div",{className:(0,w.cn)("flex flex-col gap-1",i),children:[(0,t.jsxs)(E.Popover,{open:l,onOpenChange:d,children:[(0,t.jsx)(E.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(A.Button,{variant:"outline",role:"combobox","aria-expanded":l,disabled:(o??!1)||u,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,t.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,t.jsx)(I,{className:"h-4 w-4 shrink-0"}),u?"Loading…":(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:z}),L?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:L})]}):null]})]})})}),(0,t.jsx)(E.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,t.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===j?"-50%":"0%"})`,width:"200%"},children:[(0,t.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,t.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),c.map(e=>{let r=(0,S.getAgentTypeIcon)(e.agentType),a=m===e.agentType,s=e.models.length>0;return(0,t.jsxs)("button",{type:"button",className:(0,w.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",a&&"bg-accent/50"),onClick:()=>{s?(D(e.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>y(1))})):O(e.agentType,"")},children:[(0,t.jsx)(r,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"flex-1 text-left",children:e.label}),a&&!s?(0,t.jsx)(C.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,s?(0,t.jsx)(N.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},e.agentType)})]}),(0,t.jsx)("div",{className:"w-1/2 shrink-0",children:M?(0,t.jsxs)(t.Fragment,{children:[(0,t.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:()=>{y(0),setTimeout(()=>D(null),220)},children:[(0,t.jsx)(k.ChevronLeft,{className:"h-3.5 w-3.5"}),M.label]}),M.models.map(e=>{let r=m===M.agentType&&f===e.id;return(0,t.jsxs)("button",{type:"button",className:(0,w.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",r&&"bg-accent/50"),onClick:()=>O(M.agentType,e.id),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:e.displayName}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.description})]}),r?(0,t.jsx)(C.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},e.id)})]}):null})]})})]}),!!b&&(0,t.jsx)("p",{className:"text-destructive text-sm",children:b})]})}e.s(["AgentModelPicker",()=>F],41413)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),o=e.i(21023);let i=(0,o.createServerReference)("40d18ede02097a85fe00b8848fc60430937b8340fb",o.callServer,void 0,o.findSourceMapURL,"createFeature");var n=e.i(16868),l=e.i(83843),d=e.i(97667),c=e.i(53360),p=e.i(55016),u=e.i(91925),h=e.i(83428),m=e.i(31777),x=e.i(8361);e.i(1650);var f=e.i(11495),g=e.i(45811),b=e.i(35364),v=e.i(98127),j=e.i(48306),w=e.i(41957),y=e.i(81846),C=e.i(90382),k=e.i(51911),N=e.i(2828),P=e.i(30153);e.i(50032);var T=e.i(86254),S=e.i(41413),R=e.i(25235),A=e.i(78521),E=e.i(31593),F=e.i(42076);let D=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),O=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],I={allowPrd:!1,allowPlan:!1,allowMerge:!1};function z({open:e,onClose:a,onSubmit:s,repositoryPath:o,isSubmitting:i=!1,workflowDefaults:l,features:d,repositories:u,initialParentId:h,currentAgentType:v,currentModel:C,initialDescription:R}){let A=(0,x.useSoundAction)("create"),E=o&&(!u||0===u.length||u.some(e=>e.path===o))?o:"",z=l?.approvalGates??I,U=l?.push??!1,B=l?.openPr??!1,$=l?.ciWatchEnabled!==!1,q=l?.enableEvidence??!1,H=l?.commitEvidence??!1,[G,_]=(0,r.useState)(R??"");(0,r.useEffect)(()=>{R&&_(R)},[R]);let[K,W]=(0,r.useState)([]),[V,X]=(0,r.useState)({...z}),[Y,Z]=(0,r.useState)(U),[J,Q]=(0,r.useState)(B),[ee,et]=(0,r.useState)(l?.ciWatchEnabled!==!1),[er,ea]=(0,r.useState)(q),[es,eo]=(0,r.useState)(H),[ei,en]=(0,r.useState)(void 0),[el,ed]=(0,r.useState)(!1),[ec,ep]=(0,r.useState)(!1),[eu,eh]=(0,r.useState)(void 0),[em,ex]=(0,r.useState)(void 0),[ef,eg]=(0,r.useState)(E||void 0),[eb,ev]=(0,r.useState)(u??[]),[ej,ew]=(0,r.useState)(!1),[ey,eC]=(0,r.useState)(null),[ek,eN]=(0,r.useState)(!1),eP=(0,r.useRef)(crypto.randomUUID()),eT=(0,r.useRef)(0),eS=(0,r.useRef)(null);(0,r.useEffect)(()=>{l&&(X({...l.approvalGates}),Z(l.push),Q(l.openPr),et(!1!==l.ciWatchEnabled),ea(l.enableEvidence),eo(l.commitEvidence))},[l]),(0,r.useEffect)(()=>{ev(u??[])},[u]),(0,r.useEffect)(()=>{e&&h&&en(h)},[e,h]);let eR=(0,r.useCallback)(()=>{_(""),W([]),X({...z}),Z(U),Q(B),et($),ea(q),eo(H),en(void 0),eg(E||void 0),ev(u??[]),ed(!1),ep(!1),eh(void 0),ex(void 0),eC(null),eT.current=0,ew(!1)},[z,U,B,q,$,H,E,u]),eA=""!==G.trim()||K.length>0,{attemptClose:eE}=(0,P.useGuardedDrawerClose)({open:e,isDirty:eA,onClose:a,onReset:eR}),eF=(0,r.useCallback)(async e=>{for(let t of(eC(null),e)){if(t.size>0xa00000)return void eC(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!D.has(e))return void eC(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();W(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eP.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));W(t=>t.filter(t=>t.id!==e)),eC(t.error??"Upload failed");return}let s=await a.json();W(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{W(t=>t.filter(t=>t.id!==e)),eC("Upload failed")}}},[]),eD=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eT.current+=1,1===eT.current&&ew(!0)},[]),eO=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eT.current-=1,0===eT.current&&ew(!1)},[]),eI=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),ez=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eT.current=0,ew(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eF(t)},[eF]),eL=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eF(r))},[eF]),eM=(0,r.useCallback)(e=>{if(e.preventDefault(),!G.trim())return;let t=ef??E;t&&(A.play(),s({description:G.trim(),attachments:K.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:V.allowPrd??!1,allowPlan:V.allowPlan??!1,allowMerge:V.allowMerge??!1},push:Y||J,openPr:J,ciWatchEnabled:ee,enableEvidence:er,commitEvidence:es,fast:el,...ec?{pending:ec}:{},...eu?{agentType:eu}:{},...em?{model:em}:{},...ei?{parentId:ei}:{},sessionId:eP.current}),eR())},[G,K,V,ef,E,s,Y,J,er,ee,es,el,ec,eu,em,ei,A,eR]),eU=(0,r.useCallback)(async()=>{try{let e=await (0,F.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();W(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eP.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));W(t=>t.filter(t=>t.id!==e)),eC(t.error??"Upload failed");return}let a=await r.json();W(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{W(t=>t.filter(t=>t.id!==e)),eC("Upload failed")}}}catch{}},[]),eB=(0,r.useCallback)(e=>{W(t=>t.filter(t=>t.id!==e))},[]),e$=(0,r.useRef)(null),eq=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),e$.current?.requestSubmit())},[]),eH=(0,r.useCallback)(()=>{eN(!0)},[]),eG=(0,r.useCallback)(()=>{setTimeout(()=>{let e=eS.current?.contains(document.activeElement),t=eS.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eN(!1)},0)},[]),e_=d&&d.length>0,eK=!E&&!ef,eW=!E&&void 0!==u;return(0,t.jsx)(f.BaseDrawer,{open:e,onClose:eE,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(g.DrawerTitle,{children:"NEW FEATURE"})]}),i?(0,t.jsx)(g.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(y.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(b.Button,{variant:"outline",onClick:eE,disabled:i,children:"Cancel"}),(0,t.jsx)(b.Button,{type:"submit",form:"create-feature-form",disabled:!G.trim()||i||eK,children:i?"Creating...":"+ Create Feature"})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(N.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:e$,id:"create-feature-form",onSubmit:eM,onKeyDown:eq,className:"flex flex-col gap-4",children:[eW?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(w.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,t.jsx)(M,{repositories:eb,value:ef,onChange:eg,onAddRepository:e=>{ev(t=>[...t,e]),eg(e.path)},disabled:i})]}):E?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(w.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:u?.find(e=>e.path===E)?.name??E.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":"File drop zone","data-drag-over":ej?"true":"false",onDragEnter:eD,onDragLeave:eO,onDragOver:eI,onDrop:ez,className:(0,m.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",ej&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(w.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,t.jsxs)("div",{ref:eS,onFocus:eH,onBlur:eG,className:(0,m.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",ek&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(j.Textarea,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:G,onChange:e=>_(e.target.value),onPaste:eL,required:!0,disabled:i,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),K.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:K.map(e=>(0,t.jsx)(T.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>eB(e.id),disabled:i,loading:e.loading},e.id))}),ey?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:ey}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(S.AgentModelPicker,{initialAgentType:eu??v??"claude-code",initialModel:em??C??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{eh(e),ex(t)},disabled:i,className:"w-55"}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(k.Switch,{id:"pending-mode",checked:ec,onCheckedChange:ep,disabled:i}),(0,t.jsxs)(w.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(p.Clock,{className:"h-3.5 w-3.5"}),"Pending"]})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Create without starting — start manually later."})]}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(k.Switch,{id:"fast-mode",checked:el,onCheckedChange:ed,disabled:i}),(0,t.jsxs)(w.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(c.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:eU,disabled:i,"aria-label":"Attach files",className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(n.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Attach files"})]})]})]})]}),e_&&void 0!==h?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(w.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,t.jsx)(L,{features:d,value:ei,onChange:en,disabled:i})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:O.map(e=>(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(k.Switch,{id:`approve-${e.id}`,size:"sm",checked:V[e.id]??!1,onCheckedChange:t=>X(r=>({...r,[e.id]:t})),disabled:i||el&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(w.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:el&&("allowPrd"===e.id||"allowPlan"===e.id)?"Skipped in Fast Mode":e.description})]},e.id))}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=O.every(e=>V[e.id]),t={};for(let r of O)t[r.id]=!e;X(t)},disabled:i,className:(0,m.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",O.every(e=>V[e.id])&&"text-primary"),children:"All"})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"EVIDENCE"})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Collect and attach evidence after implementation."})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(k.Switch,{id:"enable-evidence",size:"sm",checked:er,onCheckedChange:e=>{ea(e),e||eo(!1)},disabled:i}),(0,t.jsx)(w.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:"Collect"})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Capture screenshots and artifacts after implementation."})]}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(k.Switch,{id:"commit-evidence",size:"sm",checked:es,onCheckedChange:eo,disabled:i||!er||!J}),(0,t.jsx)(w.Label,{htmlFor:"commit-evidence",className:(0,m.cn)("cursor-pointer text-xs font-medium",(!er||!J)&&"opacity-50"),children:"Add to PR"})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:J?er?"Include evidence in the pull request body.":"Requires evidence collection to be enabled":"Requires PR to be enabled"})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(k.Switch,{id:"push",size:"sm",checked:Y||J,onCheckedChange:e=>{Z(e),!e&&J&&Q(!1)},disabled:i}),(0,t.jsx)(w.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(k.Switch,{id:"open-pr",size:"sm",checked:J,onCheckedChange:e=>{Q(e),e||eo(!1)},disabled:i}),(0,t.jsx)(w.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]}),(0,t.jsxs)(N.Tooltip,{children:[(0,t.jsx)(N.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(k.Switch,{id:"ci-watch",size:"sm",checked:ee,onCheckedChange:et,disabled:i}),(0,t.jsx)(w.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:"Watch"})]})}),(0,t.jsx)(N.TooltipContent,{side:"bottom",children:"Watch CI and auto-fix after push."})]})]})]})]})]})})})})}function L({features:e,value:a,onChange:s,disabled:o}){let[i,n]=(0,r.useState)(!1),[c,p]=(0,r.useState)(""),u=(0,r.useRef)(null),h=e.find(e=>e.id===a),x=c.trim()?e.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())||e.id.toLowerCase().includes(c.toLowerCase())):e,f=(0,r.useCallback)(e=>{s(e),n(!1),p("")},[s]);return(0,r.useEffect)(()=>{i?setTimeout(()=>u.current?.focus(),0):p("")},[i]),(0,t.jsxs)(C.Popover,{open:i,onOpenChange:n,children:[(0,t.jsx)(C.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":i,"aria-label":"Parent Feature",disabled:o,"data-testid":"parent-feature-combobox",className:(0,m.cn)("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",!h&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:h?`${h.name} (${h.id.slice(0,8)})`:"Select parent feature..."}),(0,t.jsx)(l.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(C.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(v.Input,{ref:u,placeholder:"Search features...",value:c,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>f(void 0),className:(0,m.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(d.CheckIcon,{className:(0,m.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===x.length&&c?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):x.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>f(e.id),className:(0,m.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,m.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function M({repositories:e,value:a,onChange:s,onAddRepository:o,disabled:i}){let[n,c]=(0,r.useState)(!1),[p,x]=(0,r.useState)(""),[f,g]=(0,r.useState)(!1),[b,j]=(0,r.useState)(null),w=(0,r.useRef)(null),y=e.find(e=>e.path===a),k=p.trim()?e.filter(e=>e.name.toLowerCase().includes(p.toLowerCase())||e.path.toLowerCase().includes(p.toLowerCase())):e,N=(0,r.useCallback)(e=>{s(e),c(!1),x("")},[s]),P=(0,r.useCallback)(async()=>{if(!f){g(!0),j(null);try{let e=await (0,A.pickFolder)();if(!e)return void g(!1);let t=await (0,E.addRepository)({path:e});if(t.error){j(t.error),g(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};o?.(e),s(e.path),c(!1),x("")}}catch(e){j(e instanceof Error?e.message:"Failed to add repository")}finally{g(!1)}}},[f,o,s]);return(0,r.useEffect)(()=>{n?setTimeout(()=>w.current?.focus(),0):x("")},[n]),(0,t.jsxs)(C.Popover,{open:n,onOpenChange:c,children:[(0,t.jsx)(C.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":n,"aria-label":"Repository",disabled:i,"data-testid":"repository-combobox",className:(0,m.cn)("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",!y&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:y?y.name:"Select repository..."}),(0,t.jsx)(l.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(C.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(v.Input,{ref:w,placeholder:"Search repositories...",value:p,onChange:e=>x(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===k.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):k.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>N(e.path),className:(0,m.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,m.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(R.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:P,disabled:f,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[f?(0,t.jsx)(h.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(u.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),b?(0,t.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:b}):null]})})]})}function U({repositoryPath:e,initialParentId:o,initialDescription:n,features:l,repositories:d,workflowDefaults:c,currentAgentType:p,currentModel:u}){let h=(0,a.useRouter)(),[m,x]=(0,r.useState)(!1),f=(0,a.usePathname)().startsWith("/create"),g=!m&&f;(0,r.useEffect)(()=>{!f&&m&&x(!1)},[f,m]);let b=(0,r.useCallback)(()=>{h.push("/")},[h]),v=(0,r.useCallback)(e=>{x(!0),h.push("/"),i(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),x(!1)})},[h]);return(0,t.jsx)(z,{open:g,onClose:b,onSubmit:v,repositoryPath:e,features:l,repositories:d,workflowDefaults:c,initialParentId:o,initialDescription:n,isSubmitting:m,currentAgentType:p,currentModel:u})}e.s(["CreateDrawerClient",()=>U],15203)}]);