@shepai/cli 1.170.0-pr513.cff27cb → 1.171.0-pr527.e2ee839

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 (588) hide show
  1. package/apis/json-schema/ActionDispositionEntry.yaml +14 -0
  2. package/apis/json-schema/DependencyFinding.yaml +28 -0
  3. package/apis/json-schema/DependencyRiskType.yaml +11 -0
  4. package/apis/json-schema/DependencyRules.yaml +38 -0
  5. package/apis/json-schema/EffectivePolicySnapshot.yaml +24 -0
  6. package/apis/json-schema/Feature.yaml +5 -17
  7. package/apis/json-schema/ReleaseIntegrityCheck.yaml +22 -0
  8. package/apis/json-schema/ReleaseIntegrityCheckType.yaml +9 -0
  9. package/apis/json-schema/ReleaseIntegrityResult.yaml +16 -0
  10. package/apis/json-schema/ReleaseRules.yaml +21 -0
  11. package/apis/json-schema/SdlcLifecycle.yaml +0 -1
  12. package/apis/json-schema/SecurityActionCategory.yaml +10 -0
  13. package/apis/json-schema/SecurityActionDisposition.yaml +8 -0
  14. package/apis/json-schema/SecurityConfig.yaml +17 -0
  15. package/apis/json-schema/SecurityEvent.yaml +36 -0
  16. package/apis/json-schema/SecurityMode.yaml +8 -0
  17. package/apis/json-schema/SecurityPolicy.yaml +24 -0
  18. package/apis/json-schema/SecuritySeverity.yaml +9 -0
  19. package/apis/json-schema/Settings.yaml +3 -0
  20. package/apis/json-schema/WorkflowConfig.yaml +5 -10
  21. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts +15 -1
  22. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -1
  23. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +4 -2
  24. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  25. package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.d.ts +76 -0
  26. package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.d.ts.map +1 -0
  27. package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.js +11 -0
  28. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +38 -0
  29. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +1 -1
  30. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.js +9 -0
  31. package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.d.ts +77 -0
  32. package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.d.ts.map +1 -0
  33. package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.js +13 -0
  34. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +14 -4
  35. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  36. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
  37. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +4 -2
  38. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
  39. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +4 -2
  40. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  41. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +2 -3
  42. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.d.ts.map +1 -1
  43. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +4 -2
  44. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  45. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +8 -18
  46. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -3
  47. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  48. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  49. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +0 -13
  50. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
  51. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +4 -2
  52. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  53. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +5 -5
  54. package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.d.ts +71 -0
  55. package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.d.ts.map +1 -0
  56. package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.js +215 -0
  57. package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.d.ts +24 -0
  58. package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.d.ts.map +1 -0
  59. package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.js +56 -0
  60. package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.d.ts +36 -0
  61. package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.d.ts.map +1 -0
  62. package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.js +76 -0
  63. package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.d.ts +14 -0
  64. package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.d.ts.map +1 -0
  65. package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.js +46 -0
  66. package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.d.ts +1 -0
  67. package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.d.ts.map +1 -1
  68. package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.js +59 -2
  69. package/dist/packages/core/src/domain/errors/security-violation.error.d.ts +15 -0
  70. package/dist/packages/core/src/domain/errors/security-violation.error.d.ts.map +1 -0
  71. package/dist/packages/core/src/domain/errors/security-violation.error.js +20 -0
  72. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  73. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +6 -3
  74. package/dist/packages/core/src/domain/generated/output.d.ts +263 -22
  75. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  76. package/dist/packages/core/src/domain/generated/output.js +43 -7
  77. package/dist/packages/core/src/domain/lifecycle-gates.d.ts +6 -21
  78. package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
  79. package/dist/packages/core/src/domain/lifecycle-gates.js +6 -25
  80. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  81. package/dist/packages/core/src/infrastructure/di/container.js +57 -5
  82. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -3
  83. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  84. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -10
  85. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.d.ts +44 -0
  86. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.d.ts.map +1 -0
  87. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.js +55 -0
  88. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -2
  89. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  90. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +16 -7
  91. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.d.ts +18 -0
  92. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.d.ts.map +1 -0
  93. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.js +31 -0
  94. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.d.ts +29 -0
  95. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.js +53 -0
  97. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  98. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +3 -5
  99. package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts +24 -0
  100. package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts.map +1 -0
  101. package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.js +96 -0
  102. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  103. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +15 -6
  104. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts +2 -0
  105. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
  106. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +12 -0
  107. package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.d.ts +22 -0
  108. package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.d.ts.map +1 -0
  109. package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.js +30 -0
  110. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +10 -20
  111. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  112. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +34 -68
  113. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  114. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +4 -2
  115. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  116. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +9 -3
  117. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +4 -2
  118. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  119. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +39 -19
  120. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
  121. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +0 -1
  122. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  123. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +19 -1
  124. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.d.ts +45 -0
  125. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.d.ts.map +1 -0
  126. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.js +70 -0
  127. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -5
  128. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  129. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +6 -13
  130. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +10 -1
  131. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
  132. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +101 -1
  133. package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.d.ts +53 -0
  134. package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.d.ts.map +1 -0
  135. package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.js +241 -0
  136. package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.d.ts +44 -0
  137. package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.d.ts.map +1 -0
  138. package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.js +194 -0
  139. package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.d.ts +28 -0
  140. package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.d.ts.map +1 -0
  141. package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.js +50 -0
  142. package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.d.ts +26 -0
  143. package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.d.ts.map +1 -0
  144. package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.js +147 -0
  145. package/dist/packages/core/src/infrastructure/services/security/security-policy.service.d.ts +44 -0
  146. package/dist/packages/core/src/infrastructure/services/security/security-policy.service.d.ts.map +1 -0
  147. package/dist/packages/core/src/infrastructure/services/security/security-policy.service.js +174 -0
  148. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +2 -1
  149. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  150. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +65 -7
  151. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  152. package/dist/src/presentation/cli/commands/feat/index.js +1 -5
  153. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  154. package/dist/src/presentation/cli/commands/feat/new.command.js +5 -18
  155. package/dist/src/presentation/cli/commands/security.command.d.ts +16 -0
  156. package/dist/src/presentation/cli/commands/security.command.d.ts.map +1 -0
  157. package/dist/src/presentation/cli/commands/security.command.js +118 -0
  158. package/dist/src/presentation/cli/commands/upgrade.command.d.ts.map +1 -1
  159. package/dist/src/presentation/cli/commands/upgrade.command.js +68 -3
  160. package/dist/src/presentation/cli/index.js +2 -0
  161. package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -3
  162. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  163. package/dist/src/presentation/web/app/actions/create-feature.js +3 -3
  164. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +1 -2
  165. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  166. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +1 -2
  167. package/dist/src/presentation/web/app/actions/security.d.ts +28 -0
  168. package/dist/src/presentation/web/app/actions/security.d.ts.map +1 -0
  169. package/dist/src/presentation/web/app/actions/security.js +59 -0
  170. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  171. package/dist/src/presentation/web/app/api/agent-events/route.js +0 -1
  172. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  173. package/dist/src/presentation/web/app/build-feature-node-data.js +2 -4
  174. package/dist/src/presentation/web/app/build-graph-nodes.d.ts +3 -1
  175. package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
  176. package/dist/src/presentation/web/app/build-graph-nodes.js +4 -4
  177. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
  178. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  179. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +0 -3
  180. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +1 -65
  182. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -3
  183. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  184. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +11 -15
  185. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -2
  187. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +1 -6
  188. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  189. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +4 -16
  190. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  191. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +0 -2
  192. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +4 -6
  193. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  194. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +0 -12
  195. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  196. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +3 -7
  197. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts +3 -1
  198. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts.map +1 -1
  199. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.js +3 -2
  200. package/dist/src/presentation/web/components/common/repository-node/security-panel.d.ts +6 -0
  201. package/dist/src/presentation/web/components/common/repository-node/security-panel.d.ts.map +1 -0
  202. package/dist/src/presentation/web/components/common/repository-node/security-panel.js +29 -0
  203. package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.d.ts +10 -0
  204. package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.d.ts.map +1 -0
  205. package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.js +53 -0
  206. package/dist/src/presentation/web/components/common/security-badge.d.ts +7 -0
  207. package/dist/src/presentation/web/components/common/security-badge.d.ts.map +1 -0
  208. package/dist/src/presentation/web/components/common/security-badge.js +30 -0
  209. package/dist/src/presentation/web/components/common/security-badge.stories.d.ts +12 -0
  210. package/dist/src/presentation/web/components/common/security-badge.stories.d.ts.map +1 -0
  211. package/dist/src/presentation/web/components/common/security-badge.stories.js +20 -0
  212. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  213. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +22 -9
  214. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.d.ts +6 -0
  215. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.d.ts.map +1 -0
  216. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.js +60 -0
  217. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.d.ts +14 -0
  218. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.d.ts.map +1 -0
  219. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.js +116 -0
  220. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +3 -3
  221. package/dist/translations/ar/cli.json +22 -24
  222. package/dist/translations/ar/web.json +45 -7
  223. package/dist/translations/de/cli.json +22 -24
  224. package/dist/translations/de/web.json +45 -7
  225. package/dist/translations/en/cli.json +22 -24
  226. package/dist/translations/en/web.json +45 -7
  227. package/dist/translations/es/cli.json +22 -24
  228. package/dist/translations/es/web.json +45 -7
  229. package/dist/translations/fr/cli.json +22 -24
  230. package/dist/translations/fr/web.json +45 -7
  231. package/dist/translations/he/cli.json +22 -24
  232. package/dist/translations/he/web.json +45 -7
  233. package/dist/translations/pt/cli.json +22 -24
  234. package/dist/translations/pt/web.json +45 -7
  235. package/dist/translations/ru/cli.json +22 -24
  236. package/dist/translations/ru/web.json +45 -7
  237. package/dist/tsconfig.build.tsbuildinfo +1 -1
  238. package/package.json +1 -1
  239. package/web/.next/BUILD_ID +1 -1
  240. package/web/.next/build-manifest.json +2 -2
  241. package/web/.next/fallback-build-manifest.json +2 -2
  242. package/web/.next/prerender-manifest.json +3 -3
  243. package/web/.next/required-server-files.js +2 -2
  244. package/web/.next/required-server-files.json +2 -2
  245. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  246. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -1
  247. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  248. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  249. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  250. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +2 -1
  251. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  252. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  254. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -1
  255. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  256. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  257. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +76 -121
  258. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  259. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  260. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  261. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +76 -121
  262. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  263. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  264. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  265. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  266. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +2 -1
  267. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  268. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  269. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  270. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -1
  271. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  272. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  273. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  274. package/web/.next/server/app/(dashboard)/chat/page.js +2 -1
  275. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  276. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  277. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  278. package/web/.next/server/app/(dashboard)/create/page.js +2 -1
  279. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  280. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  281. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +76 -121
  282. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  283. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  284. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  285. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +76 -121
  286. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  287. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  288. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  289. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  290. package/web/.next/server/app/(dashboard)/page.js +2 -1
  291. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  292. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  293. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  294. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +2 -1
  295. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  296. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  297. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  298. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -1
  299. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  300. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  301. package/web/.next/server/app/_global-error.html +2 -2
  302. package/web/.next/server/app/_global-error.rsc +1 -1
  303. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  304. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  305. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  306. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  307. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  308. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  309. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  310. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  312. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  313. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  314. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  315. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  316. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  317. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  318. package/web/.next/server/app/features/page.js.nft.json +1 -1
  319. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  320. package/web/.next/server/app/settings/page/server-reference-manifest.json +33 -18
  321. package/web/.next/server/app/settings/page.js +1 -1
  322. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  323. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  324. package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
  325. package/web/.next/server/app/skills/page.js +2 -1
  326. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  327. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  328. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  329. package/web/.next/server/app/tools/page.js +2 -1
  330. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  331. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  332. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  333. package/web/.next/server/app/version/page.js.nft.json +1 -1
  334. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  335. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  336. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  337. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  338. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  339. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  340. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  341. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  342. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  343. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  344. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +3 -0
  345. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +3 -0
  347. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +3 -0
  349. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  351. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  352. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  353. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ed9b909._.js +1 -1
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js +3 -0
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js.map +1 -0
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +4 -0
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js.map +1 -0
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js +3 -0
  363. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js.map +1 -0
  364. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  365. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  366. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js +1 -1
  367. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +1 -1
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  370. package/web/.next/server/chunks/ssr/[root-of-the-server]__9a9cb046._.js +3 -0
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__9a9cb046._.js.map +1 -0
  372. package/web/.next/server/chunks/ssr/[root-of-the-server]__a2d6c0ac._.js +4 -0
  373. package/web/.next/server/chunks/ssr/[root-of-the-server]__a2d6c0ac._.js.map +1 -0
  374. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js +3 -0
  375. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js.map +1 -0
  376. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js +3 -0
  377. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js.map +1 -0
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  379. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  380. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1262d08._.js +1 -1
  381. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  382. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  383. package/web/.next/server/chunks/ssr/_02580450._.js +3 -0
  384. package/web/.next/server/chunks/ssr/_02580450._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  386. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  387. package/web/.next/server/chunks/ssr/_1594e369._.js +9 -0
  388. package/web/.next/server/chunks/ssr/_1594e369._.js.map +1 -0
  389. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  390. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  391. package/web/.next/server/chunks/ssr/_21d37090._.js +3 -0
  392. package/web/.next/server/chunks/ssr/_21d37090._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
  394. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
  395. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  396. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  397. package/web/.next/server/chunks/ssr/_5119a3df._.js +1 -1
  398. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  400. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/{_0fd635d7._.js → _767748d2._.js} +2 -2
  402. package/web/.next/server/chunks/ssr/_767748d2._.js.map +1 -0
  403. package/web/.next/server/chunks/ssr/_df737cce._.js +1 -1
  404. package/web/.next/server/chunks/ssr/{_34d897da._.js → _ee42a212._.js} +2 -2
  405. package/web/.next/server/chunks/ssr/{_34d897da._.js.map → _ee42a212._.js.map} +1 -1
  406. package/web/.next/server/chunks/ssr/_f8c55130._.js +4 -0
  407. package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -0
  408. package/web/.next/server/chunks/ssr/_ff04802c._.js +3 -0
  409. package/web/.next/server/chunks/ssr/_ff04802c._.js.map +1 -0
  410. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  411. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  412. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  413. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js +3 -0
  415. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +1 -0
  416. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js +5 -0
  417. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js.map +1 -0
  418. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js +5 -0
  419. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js.map +1 -0
  420. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js +3 -0
  421. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +1 -0
  422. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +3 -0
  423. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +1 -0
  424. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +3 -0
  425. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -0
  426. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +3 -0
  427. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  429. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  430. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  431. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  432. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  433. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  434. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  435. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  436. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  437. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  438. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  439. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js +3 -0
  440. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +1 -0
  441. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js +3 -0
  442. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +1 -0
  443. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  444. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  445. package/web/.next/server/pages/500.html +2 -2
  446. package/web/.next/server/server-reference-manifest.js +1 -1
  447. package/web/.next/server/server-reference-manifest.json +226 -319
  448. package/web/.next/static/chunks/051873309d87fb45.css +1 -0
  449. package/web/.next/static/chunks/{52681a7f14138e48.js → 16fa4d3877c28fe2.js} +1 -1
  450. package/web/.next/static/chunks/23d80bb760e7dc4c.js +1 -0
  451. package/web/.next/static/chunks/30a0ba9015f94405.js +7 -0
  452. package/web/.next/static/chunks/{0f30a983f3467cd5.js → 39f6ad3f9005703a.js} +1 -1
  453. package/web/.next/static/chunks/3aba9d2242420cb5.js +1 -0
  454. package/web/.next/static/chunks/{d5bf9c963b5346e1.js → 7a6f56f37aaa17ea.js} +1 -1
  455. package/web/.next/static/chunks/{09a25231e5fc1ab8.js → 7e05e7e25220ee9a.js} +1 -1
  456. package/web/.next/static/chunks/{4219ddfde68a6d0b.js → 89dd90bf14488ec0.js} +1 -1
  457. package/web/.next/static/chunks/{e93ae5725b0babeb.js → 9374d251360e808b.js} +1 -1
  458. package/web/.next/static/chunks/{fc595d95626ac9bb.js → 9423dc2310202fda.js} +1 -1
  459. package/web/.next/static/chunks/a794cf7a1a5648dd.js +1 -0
  460. package/web/.next/static/chunks/{37f9543560c58ea6.js → a8edb9423086e83f.js} +1 -1
  461. package/web/.next/static/chunks/ae81796726a9bba3.js +1 -0
  462. package/web/.next/static/chunks/{9a78b4c5dcd28196.js → b9c62932ed987239.js} +2 -2
  463. package/web/.next/static/chunks/{478adf5d5156f002.js → d1c3e0ee8e788c87.js} +1 -1
  464. package/web/.next/static/chunks/e8c3c12f92e9a521.js +5 -0
  465. package/web/.next/static/chunks/f3d5e0ae13def35a.js +1 -0
  466. package/web/.next/static/chunks/{2a9af061f4fbe7f5.js → fb8dadb64c0ffc6b.js} +1 -1
  467. package/web/.next/static/chunks/fd232b88b5b50b2e.js +1 -0
  468. package/apis/json-schema/FeatureMode.yaml +0 -8
  469. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +0 -40
  470. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +0 -1
  471. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +0 -125
  472. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +0 -19
  473. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +0 -1
  474. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +0 -46
  475. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +0 -17
  476. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +0 -1
  477. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +0 -37
  478. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +0 -12
  479. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +0 -1
  480. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +0 -17
  481. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +0 -362
  482. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +0 -1
  483. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +0 -72
  484. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +0 -18
  485. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +0 -1
  486. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +0 -52
  487. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +0 -24
  488. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +0 -1
  489. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +0 -38
  490. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +0 -31
  491. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +0 -1
  492. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +0 -240
  493. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +0 -21
  494. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +0 -1
  495. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +0 -134
  496. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +0 -12
  497. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +0 -1
  498. package/dist/src/presentation/cli/commands/feat/feedback.command.js +0 -64
  499. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +0 -13
  500. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +0 -1
  501. package/dist/src/presentation/cli/commands/feat/promote.command.js +0 -41
  502. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +0 -9
  503. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +0 -1
  504. package/dist/src/presentation/web/app/actions/discard-exploration.js +0 -29
  505. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +0 -11
  506. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +0 -1
  507. package/dist/src/presentation/web/app/actions/promote-exploration.js +0 -21
  508. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +0 -12
  509. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +0 -1
  510. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +0 -40
  511. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +0 -8
  512. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +0 -1
  513. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +0 -33
  514. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +0 -10
  515. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +0 -1
  516. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +0 -33
  517. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +0 -11
  518. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +0 -1
  519. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +0 -34
  520. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +0 -16
  521. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +0 -1
  522. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +0 -70
  523. package/dist/src/presentation/web/components/ui/toggle-group.d.ts +0 -10
  524. package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +0 -1
  525. package/dist/src/presentation/web/components/ui/toggle-group.js +0 -22
  526. package/dist/src/presentation/web/components/ui/toggle.d.ts +0 -10
  527. package/dist/src/presentation/web/components/ui/toggle.d.ts.map +0 -1
  528. package/dist/src/presentation/web/components/ui/toggle.js +0 -26
  529. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js +0 -4
  530. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js.map +0 -1
  531. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +0 -4
  532. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +0 -1
  533. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js +0 -4
  534. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js.map +0 -1
  535. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js +0 -4
  536. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +0 -1
  537. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +0 -4
  538. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +0 -1
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js +0 -3
  540. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js.map +0 -1
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js +0 -4
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js.map +0 -1
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js +0 -4
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js.map +0 -1
  545. package/web/.next/server/chunks/ssr/_02e01240._.js +0 -4
  546. package/web/.next/server/chunks/ssr/_02e01240._.js.map +0 -1
  547. package/web/.next/server/chunks/ssr/_0fd635d7._.js.map +0 -1
  548. package/web/.next/server/chunks/ssr/_18886033._.js +0 -4
  549. package/web/.next/server/chunks/ssr/_18886033._.js.map +0 -1
  550. package/web/.next/server/chunks/ssr/_22e00a14._.js +0 -4
  551. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +0 -1
  552. package/web/.next/server/chunks/ssr/_30ddea9d._.js +0 -9
  553. package/web/.next/server/chunks/ssr/_30ddea9d._.js.map +0 -1
  554. package/web/.next/server/chunks/ssr/_43ba79e7._.js +0 -3
  555. package/web/.next/server/chunks/ssr/_43ba79e7._.js.map +0 -1
  556. package/web/.next/server/chunks/ssr/_6e79a2cc._.js +0 -3
  557. package/web/.next/server/chunks/ssr/_6e79a2cc._.js.map +0 -1
  558. package/web/.next/server/chunks/ssr/_a5a5901d._.js +0 -4
  559. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +0 -1
  560. package/web/.next/server/chunks/ssr/_ad09f271._.js +0 -4
  561. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +0 -1
  562. package/web/.next/server/chunks/ssr/_c3f595c6._.js +0 -4
  563. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +0 -1
  564. package/web/.next/server/chunks/ssr/_cac4abe6._.js +0 -3
  565. package/web/.next/server/chunks/ssr/_cac4abe6._.js.map +0 -1
  566. package/web/.next/server/chunks/ssr/_ea9e1556._.js +0 -4
  567. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +0 -1
  568. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +0 -6
  569. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +0 -1
  570. package/web/.next/server/chunks/ssr/_f33cd07e._.js +0 -6
  571. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +0 -1
  572. package/web/.next/server/chunks/ssr/_f8b45233._.js +0 -4
  573. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +0 -1
  574. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +0 -3
  575. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js.map +0 -1
  576. package/web/.next/static/chunks/0769c695d6b663c7.js +0 -1
  577. package/web/.next/static/chunks/2ceebcc839ee0d4b.js +0 -1
  578. package/web/.next/static/chunks/5743a9c1c63e5261.js +0 -5
  579. package/web/.next/static/chunks/5cf9745e2ef3837c.js +0 -1
  580. package/web/.next/static/chunks/5e20f692bbfcfb94.js +0 -7
  581. package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
  582. package/web/.next/static/chunks/c80e8e3d0cf5baa6.css +0 -1
  583. package/web/.next/static/chunks/d60cee2e7318f425.js +0 -1
  584. package/web/.next/static/chunks/da565c85277c2461.js +0 -1
  585. package/web/.next/static/chunks/fb89cf91c10b2e8b.js +0 -1
  586. /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → t6SUt71jyk_PYf152Imog}/_buildManifest.js +0 -0
  587. /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → t6SUt71jyk_PYf152Imog}/_clientMiddlewareManifest.json +0 -0
  588. /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → t6SUt71jyk_PYf152Imog}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/drawer-view.ts","../../../../../../../src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/app/%28dashboard%29/%40drawer/feature/%5BfeatureId%5D/%5Btab%5D/page.tsx"],"sourcesContent":["import type { FeatureNodeData } from '@/components/common/feature-node';\nimport type { RepositoryNodeData } from '@/components/common/repository-node';\nimport type { ParentFeatureOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\nimport type { WorkflowDefaults } from '@/app/actions/get-workflow-defaults';\n\n/** Tab key matching FeatureDrawerTabs */\nexport type FeatureTabKey =\n | 'overview'\n | 'activity'\n | 'log'\n | 'plan'\n | 'prd-review'\n | 'tech-decisions'\n | 'product-decisions'\n | 'merge-review'\n | 'prototype'\n | 'chat';\n\n/** All valid tab key values — used for URL param validation. */\nexport const VALID_TAB_KEYS: ReadonlySet<string> = new Set<FeatureTabKey>([\n 'overview',\n 'activity',\n 'log',\n 'plan',\n 'prd-review',\n 'tech-decisions',\n 'product-decisions',\n 'merge-review',\n 'prototype',\n 'chat',\n]);\n\n/** Type-guard: returns the value as FeatureTabKey if valid, otherwise undefined. */\nexport function parseTabKey(value: string | null | undefined): FeatureTabKey | undefined {\n if (value && VALID_TAB_KEYS.has(value)) return value as FeatureTabKey;\n return undefined;\n}\n\n/**\n * Discriminated union representing every possible drawer state in the control center.\n * Only one view can be active at a time.\n */\nexport type DrawerView =\n /** All feature views — tabs handle the lifecycle-specific content */\n | { type: 'feature'; node: FeatureNodeData; initialTab: FeatureTabKey }\n /** Feature creation form */\n | {\n type: 'feature-create';\n repositoryPath: string;\n initialParentId?: string;\n features: ParentFeatureOption[];\n workflowDefaults?: WorkflowDefaults;\n }\n /** Repository node actions */\n | { type: 'repository'; data: RepositoryNodeData };\n\n/** Derives the initial tab from node lifecycle + state. */\nexport function deriveInitialTab(node: FeatureNodeData): FeatureTabKey {\n if (node.lifecycle === 'exploring') return 'prototype';\n if (node.lifecycle === 'requirements' && node.state === 'action-required') return 'prd-review';\n if (node.lifecycle === 'implementation' && node.state === 'action-required')\n return 'tech-decisions';\n if (node.lifecycle === 'review' && (node.state === 'action-required' || node.state === 'error'))\n return 'merge-review';\n return 'overview';\n}\n\n/**\n * Derives the active DrawerView from control-center state.\n * Priority: feature-create > selected-node > repository\n */\nexport function computeDrawerView({\n selectedNode,\n isCreateDrawerOpen,\n pendingRepositoryPath,\n pendingParentFeatureId,\n selectedRepoNode,\n features,\n workflowDefaults,\n}: {\n selectedNode: FeatureNodeData | null;\n isCreateDrawerOpen: boolean;\n pendingRepositoryPath: string;\n pendingParentFeatureId: string | undefined;\n selectedRepoNode: RepositoryNodeData | null;\n features: ParentFeatureOption[];\n workflowDefaults: WorkflowDefaults | undefined;\n}): DrawerView | null {\n if (isCreateDrawerOpen) {\n return {\n type: 'feature-create',\n repositoryPath: pendingRepositoryPath,\n initialParentId: pendingParentFeatureId,\n features,\n workflowDefaults,\n };\n }\n\n if (selectedNode) {\n return { type: 'feature', node: selectedNode, initialTab: deriveInitialTab(selectedNode) };\n }\n\n if (selectedRepoNode) {\n return { type: 'repository', data: selectedRepoNode };\n }\n\n return null;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const FeatureDrawerClient = registerClientReference(\n function() { throw new Error(\"Attempted to call FeatureDrawerClient() from the server but FeatureDrawerClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx\",\n \"FeatureDrawerClient\",\n);\n","import { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport type { IRepositoryRepository } from '@shepai/core/application/ports/output/repositories/repository-repository.interface';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport { buildFeatureNodeData } from '@/app/build-feature-node-data';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport {\n computeDrawerView,\n parseTabKey,\n} from '@/components/common/control-center-drawer/drawer-view';\nimport { FeatureDrawerClient } from '@/components/common/control-center-drawer/feature-drawer-client';\n\n/** Skip static pre-rendering since we need runtime DI container. */\nexport const dynamic = 'force-dynamic';\n\ninterface FeatureDrawerTabPageProps {\n params: Promise<{ featureId: string; tab: string }>;\n}\n\nexport default async function FeatureDrawerTabPage({ params }: FeatureDrawerTabPageProps) {\n const { featureId, tab } = await params;\n const urlTab = parseTabKey(tab);\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const agentRunRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const repoRepo = resolve<IRepositoryRepository>('IRepositoryRepository');\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n\n const run = feature.agentRunId ? await agentRunRepo.findById(feature.agentRunId) : null;\n\n const getArtifact = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n const [repo, baseBranch, artifact, remoteUrl] = await Promise.all([\n repoRepo.findByPath(feature.repositoryPath).catch(() => null),\n gitPrService.getDefaultBranch(feature.repositoryPath).catch(() => 'main'),\n getArtifact.execute(featureId).catch(() => null),\n gitPrService.getRemoteUrl(feature.repositoryPath).catch(() => null),\n ]);\n\n const { workflow, interactiveAgent } = getSettings();\n const nodeData = buildFeatureNodeData(feature, run, {\n repositoryName: repo?.name,\n baseBranch,\n oneLiner: artifact?.oneLiner,\n remoteUrl: remoteUrl ?? undefined,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n ciWatchEnabled: workflow.ciWatchEnabled,\n });\n\n const view = computeDrawerView({\n selectedNode: nodeData,\n isCreateDrawerOpen: false,\n pendingRepositoryPath: '',\n pendingParentFeatureId: undefined,\n selectedRepoNode: null,\n features: [],\n workflowDefaults: undefined,\n });\n\n if (!view) return null;\n\n return (\n <FeatureDrawerClient\n view={view}\n urlTab={urlTab}\n interactiveAgentEnabled={interactiveAgent?.enabled ?? true}\n />\n );\n } catch {\n return null;\n }\n}\n"],"names":[],"mappings":"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","ignoreList":[1]}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/drawer-view.ts","../../../../../../../src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx/__nextjs-internal-proxy.mjs","../../../../../../../src/presentation/web/app/%28dashboard%29/%40drawer/feature/%5BfeatureId%5D/%5Btab%5D/page.tsx"],"sourcesContent":["import type { FeatureNodeData } from '@/components/common/feature-node';\nimport type { RepositoryNodeData } from '@/components/common/repository-node';\nimport type { ParentFeatureOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\nimport type { WorkflowDefaults } from '@/app/actions/get-workflow-defaults';\n\n/** Tab key matching FeatureDrawerTabs */\nexport type FeatureTabKey =\n | 'overview'\n | 'activity'\n | 'log'\n | 'plan'\n | 'prd-review'\n | 'tech-decisions'\n | 'product-decisions'\n | 'merge-review'\n | 'chat';\n\n/** All valid tab key values — used for URL param validation. */\nexport const VALID_TAB_KEYS: ReadonlySet<string> = new Set<FeatureTabKey>([\n 'overview',\n 'activity',\n 'log',\n 'plan',\n 'prd-review',\n 'tech-decisions',\n 'product-decisions',\n 'merge-review',\n 'chat',\n]);\n\n/** Type-guard: returns the value as FeatureTabKey if valid, otherwise undefined. */\nexport function parseTabKey(value: string | null | undefined): FeatureTabKey | undefined {\n if (value && VALID_TAB_KEYS.has(value)) return value as FeatureTabKey;\n return undefined;\n}\n\n/**\n * Discriminated union representing every possible drawer state in the control center.\n * Only one view can be active at a time.\n */\nexport type DrawerView =\n /** All feature views — tabs handle the lifecycle-specific content */\n | { type: 'feature'; node: FeatureNodeData; initialTab: FeatureTabKey }\n /** Feature creation form */\n | {\n type: 'feature-create';\n repositoryPath: string;\n initialParentId?: string;\n features: ParentFeatureOption[];\n workflowDefaults?: WorkflowDefaults;\n }\n /** Repository node actions */\n | { type: 'repository'; data: RepositoryNodeData };\n\n/** Derives the initial tab from node lifecycle + state. */\nexport function deriveInitialTab(node: FeatureNodeData): FeatureTabKey {\n if (node.lifecycle === 'requirements' && node.state === 'action-required') return 'prd-review';\n if (node.lifecycle === 'implementation' && node.state === 'action-required')\n return 'tech-decisions';\n if (node.lifecycle === 'review' && (node.state === 'action-required' || node.state === 'error'))\n return 'merge-review';\n return 'overview';\n}\n\n/**\n * Derives the active DrawerView from control-center state.\n * Priority: feature-create > selected-node > repository\n */\nexport function computeDrawerView({\n selectedNode,\n isCreateDrawerOpen,\n pendingRepositoryPath,\n pendingParentFeatureId,\n selectedRepoNode,\n features,\n workflowDefaults,\n}: {\n selectedNode: FeatureNodeData | null;\n isCreateDrawerOpen: boolean;\n pendingRepositoryPath: string;\n pendingParentFeatureId: string | undefined;\n selectedRepoNode: RepositoryNodeData | null;\n features: ParentFeatureOption[];\n workflowDefaults: WorkflowDefaults | undefined;\n}): DrawerView | null {\n if (isCreateDrawerOpen) {\n return {\n type: 'feature-create',\n repositoryPath: pendingRepositoryPath,\n initialParentId: pendingParentFeatureId,\n features,\n workflowDefaults,\n };\n }\n\n if (selectedNode) {\n return { type: 'feature', node: selectedNode, initialTab: deriveInitialTab(selectedNode) };\n }\n\n if (selectedRepoNode) {\n return { type: 'repository', data: selectedRepoNode };\n }\n\n return null;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const FeatureDrawerClient = registerClientReference(\n function() { throw new Error(\"Attempted to call FeatureDrawerClient() from the server but FeatureDrawerClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx\",\n \"FeatureDrawerClient\",\n);\n","import { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport type { IRepositoryRepository } from '@shepai/core/application/ports/output/repositories/repository-repository.interface';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport { buildFeatureNodeData } from '@/app/build-feature-node-data';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport {\n computeDrawerView,\n parseTabKey,\n} from '@/components/common/control-center-drawer/drawer-view';\nimport { FeatureDrawerClient } from '@/components/common/control-center-drawer/feature-drawer-client';\n\n/** Skip static pre-rendering since we need runtime DI container. */\nexport const dynamic = 'force-dynamic';\n\ninterface FeatureDrawerTabPageProps {\n params: Promise<{ featureId: string; tab: string }>;\n}\n\nexport default async function FeatureDrawerTabPage({ params }: FeatureDrawerTabPageProps) {\n const { featureId, tab } = await params;\n const urlTab = parseTabKey(tab);\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const agentRunRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const repoRepo = resolve<IRepositoryRepository>('IRepositoryRepository');\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n\n const run = feature.agentRunId ? await agentRunRepo.findById(feature.agentRunId) : null;\n\n const getArtifact = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n const [repo, baseBranch, artifact, remoteUrl] = await Promise.all([\n repoRepo.findByPath(feature.repositoryPath).catch(() => null),\n gitPrService.getDefaultBranch(feature.repositoryPath).catch(() => 'main'),\n getArtifact.execute(featureId).catch(() => null),\n gitPrService.getRemoteUrl(feature.repositoryPath).catch(() => null),\n ]);\n\n const { workflow, interactiveAgent } = getSettings();\n const nodeData = buildFeatureNodeData(feature, run, {\n repositoryName: repo?.name,\n baseBranch,\n oneLiner: artifact?.oneLiner,\n remoteUrl: remoteUrl ?? undefined,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n ciWatchEnabled: workflow.ciWatchEnabled,\n });\n\n const view = computeDrawerView({\n selectedNode: nodeData,\n isCreateDrawerOpen: false,\n pendingRepositoryPath: '',\n pendingParentFeatureId: undefined,\n selectedRepoNode: null,\n features: [],\n workflowDefaults: undefined,\n });\n\n if (!view) return null;\n\n return (\n <FeatureDrawerClient\n view={view}\n urlTab={urlTab}\n interactiveAgentEnabled={interactiveAgent?.enabled ?? true}\n />\n );\n } catch {\n return null;\n }\n}\n"],"names":[],"mappings":"qZAkBO,IAAM,EAAsC,IAAI,IAAmB,CACxE,WACA,WACA,MACA,OACA,aACA,iBACA,oBACA,eACA,OACD,EAGM,SAAS,EAAY,CAAgC,EAC1D,GAAI,GAAS,EAAe,GAAG,CAAC,GAAQ,OAAO,CAEjD,CAkCO,SAAS,EAAkB,cAChC,CAAY,oBACZ,CAAkB,uBAClB,CAAqB,wBACrB,CAAsB,CACtB,kBAAgB,UAChB,CAAQ,kBACR,CAAgB,CASjB,EACC,GAAI,EACF,MAAO,CACL,KAAM,MAFc,WAGpB,eAAgB,EAChB,gBAAiB,WACjB,mBACA,CACF,EAGF,GAAI,EACF,MAAO,CAAE,KAAM,AADC,UACU,KAAM,EAAc,WAxChD,AAAuB,CAwCqC,gBAxCxD,AAwCyE,EAxCpE,SAAS,EAAsC,mBAAmB,CAAlC,EAAK,KAAK,CAA+B,aAC3D,mBAAnB,EAAK,SAAS,EAAwC,mBACxD,CADyC,EAAK,KAAK,CAC5C,iBACc,WAAnB,CAA+B,CAA1B,SAAS,GAAiC,oBAAf,EAAK,KAAK,EAAyC,UAAf,EAAK,KAAK,AAAK,CAAO,CACrF,EAAP,aACK,UAmCoF,SAG3F,AAAI,EACK,CAAE,KAAM,UADK,GACS,KAAM,CAAiB,EAG/C,IACT,gHCtGO,IAAM,EAAsB,CAAA,EADnC,AACmC,EADnC,CAAA,CAAA,OACmC,uBAAuB,AAAvB,EAC/B,WAAa,MAAM,AAAI,MAAM,oPAAsP,EACnR,uHACA,kFAHG,IAAM,EAAsB,CAAA,EADnC,AACmC,EADnC,CAAA,CAAA,OACmC,uBAAA,AAAuB,EACtD,WAAa,MAAM,AAAI,MAAM,oPAAsP,EACnR,mGACA,0HCLJ,EAAA,EAAA,CAAA,CAAA,OAMA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAIA,EAAA,EAAA,CAAA,CAAA,OASe,eAAe,EAAqB,QAAE,CAAM,CAA6B,EACtF,GAAM,WAAE,CAAS,KAAE,CAAG,CAAE,CAAG,MAAM,EAC3B,EAAS,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,GAE3B,GAAI,CACF,IAAM,EAAc,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAC1C,EAAe,CAAA,EAAA,EAAA,OAAA,AAAO,EAAsB,uBAC5C,EAAW,CAAA,EAAA,EAAA,OAAA,AAAO,EAAwB,yBAC1C,EAAe,CAAA,EAAA,EAAA,OAAA,AAAO,EAAgB,iBAEtC,EAAU,MAAM,EAAY,QAAQ,CAAC,GAC3C,GAAI,CAAC,EAAS,OAAO,KAErB,IAAM,EAAM,EAAQ,UAAU,CAAG,MAAM,EAAa,QAAQ,CAAC,EAAQ,UAAU,EAAI,KAE7E,EAAc,CAAA,EAAA,EAAA,OAAA,AAAO,EAA4B,6BACjD,CAAC,EAAM,EAAY,EAAU,EAAU,CAAG,MAAM,QAAQ,GAAG,CAAC,CAChE,EAAS,UAAU,CAAC,EAAQ,cAAc,EAAE,KAAK,CAAC,IAAM,MACxD,EAAa,gBAAgB,CAAC,EAAQ,cAAc,EAAE,KAAK,CAAC,IAAM,QAClE,EAAY,OAAO,CAAC,GAAW,KAAK,CAAC,IAAM,MAC3C,EAAa,YAAY,CAAC,EAAQ,cAAc,EAAE,KAAK,CAAC,IAAM,MAC/D,EAEK,CAAE,UAAQ,kBAAE,CAAgB,CAAE,CAAG,CAAA,EAAA,EAAA,WAAA,AAAW,IAC5C,EAAW,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAS,EAAK,CAClD,eAAgB,GAAM,gBACtB,EACA,SAAU,GAAU,SACpB,UAAW,QAAa,EACxB,eAAgB,EAAS,cAAc,CACvC,eAAgB,EAAS,cAAc,CACvC,eAAgB,EAAS,cAAc,AACzC,GAEM,EAAO,CAAA,EAAA,EAAA,iBAAA,AAAiB,EAAC,CAC7B,aAAc,EACd,oBAAoB,EACpB,sBAAuB,GACvB,4BAAwB,EACxB,iBAAkB,KAClB,SAAU,EAAE,CACZ,sBAAkB,CACpB,GAEA,GAAI,CAAC,EAAM,OAAO,KAElB,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,mBAAmB,CAAA,CAClB,KAAM,EACN,OAAQ,EACR,wBAAyB,GAAkB,UAAW,GAG5D,CAAE,KAAM,CACN,OAAO,IACT,CACF,kCA9DuB","ignoreList":[1]}
@@ -0,0 +1,3 @@
1
+ module.exports=[55628,a=>{"use strict";var b=a.i(96960),c=a.i(2327),d=a.i(30594),e=a.i(29870),f=a.i(25674);let g=(0,f.createServerReference)("40a1d93188bdad75505c97b7862985e7a2ea3704ac",f.callServer,void 0,f.findSourceMapURL,"syncRepository");function h(a){let[f,h]=(0,b.useState)(!1),[i,j]=(0,b.useState)(!1),[k,l]=(0,b.useState)(!1),[m,n]=(0,b.useState)(!1),[o,p]=(0,b.useState)(null),[q,r]=(0,b.useState)(null),[s,t]=(0,b.useState)(null),[u,v]=(0,b.useState)(null),w=(0,b.useRef)(null),x=(0,b.useRef)(null),y=(0,b.useRef)(null),z=(0,b.useRef)(null);(0,b.useEffect)(()=>()=>{w.current&&clearTimeout(w.current),x.current&&clearTimeout(x.current),y.current&&clearTimeout(y.current),z.current&&clearTimeout(z.current)},[]);let A=(0,b.useCallback)(async(b,c,d,e,f)=>{if(a&&!f){e.current&&clearTimeout(e.current),c(!0),d(null);try{let a=await b();if(!a.success){let b=a.error??"An unexpected error occurred";d(b),e.current=setTimeout(()=>d(null),5e3)}}catch(a){d(a instanceof Error?a.message:"An unexpected error occurred"),e.current=setTimeout(()=>d(null),5e3)}finally{c(!1)}}},[a]);return{openInIde:(0,b.useCallback)(()=>A(()=>(0,c.openIde)({repositoryPath:a.repositoryPath}),h,p,w,f),[A,f,a]),openInShell:(0,b.useCallback)(()=>A(()=>(0,d.openShell)({repositoryPath:a.repositoryPath}),j,r,x,i),[A,i,a]),openFolder:(0,b.useCallback)(()=>A(()=>(0,e.openFolder)(a.repositoryPath),l,t,y,k),[A,k,a]),syncMain:(0,b.useCallback)(()=>A(()=>g(a.repositoryId??""),n,v,z,m),[A,m,a]),ideLoading:f,shellLoading:i,folderLoading:k,syncLoading:m,ideError:o,shellError:q,folderError:s,syncError:u}}a.s(["useRepositoryActions",()=>h],55628)},91498,a=>{"use strict";let b=(0,a.i(25700).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],91498)},71238,a=>{"use strict";let b=(0,a.i(25700).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],71238)},63698,a=>{"use strict";let b=(0,a.i(25700).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],63698)},78454,a=>{"use strict";a.i(24255),a.s([])},53170,a=>{"use strict";let b=(0,a.i(25700).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>b],53170)},33511,a=>{"use strict";let b=(0,a.i(25700).default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);a.s(["Archive",()=>b],33511)},50488,92548,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);a.s(["Code2",()=>c],50488);let d=(0,b.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);a.s(["GitCommitHorizontal",()=>d],92548)},2327,30594,29870,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("40d38598b0927c8cdafd69e2643d766980e78eeb90",b.callServer,void 0,b.findSourceMapURL,"openIde");a.s(["openIde",()=>c],2327);let d=(0,b.createServerReference)("405a16b52b44f3f874a08634a43fcfd7a346031287",b.callServer,void 0,b.findSourceMapURL,"openShell");a.s(["openShell",()=>d],30594);let e=(0,b.createServerReference)("40cc09757daf0d55a680bff9a5ea71337c77e22bad",b.callServer,void 0,b.findSourceMapURL,"openFolder");a.s(["openFolder",()=>e],29870)},10606,a=>{"use strict";var b=a.i(51969);a.s(["CheckIcon",()=>b.default])},4019,67075,a=>{"use strict";let b=(0,a.i(25700).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Circle",()=>b],4019);var c=a.i(2811);a.s(["CheckCircle2",()=>c.default],67075)},96853,39752,9359,42674,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);a.s(["default",()=>c],96853);let d=(0,b.default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);a.s(["Shield",()=>d],39752);let e=(0,b.default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);a.s(["ShieldAlert",()=>e],9359);let f=(0,b.default)("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]);a.s(["ShieldOff",()=>f],42674)},42527,a=>{"use strict";let b=(0,a.i(25700).default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["FolderPlus",()=>b],42527)},88100,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("408155ce6ec7dfe555561aa536bbab2a66818b4c2b",b.callServer,void 0,b.findSourceMapURL,"addRepository");a.s(["addRepository",()=>c])},38702,16223,a=>{"use strict";var b=a.i(10973),c=a.i(85536);function d({icon:a,title:d,description:e,action:f,className:g,...h}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",g),...h,children:[a?(0,b.jsx)("div",{className:"text-muted-foreground",children:a}):null,(0,b.jsx)("h3",{className:"text-lg font-semibold",children:d}),e?(0,b.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:e}):null,f?(0,b.jsx)("div",{className:"mt-2",children:f}):null]})}a.s(["EmptyState",()=>d],16223),a.s([],38702)}];
2
+
3
+ //# sourceMappingURL=_02580450._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/components/common/repository-node/use-repository-actions.ts","../../../../../../../src/presentation/web/app/actions/data%3A95a787%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-branch.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/archive.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-commit-horizontal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/code-xml.ts","../../../../../../../src/presentation/web/app/actions/data%3Ae3530a%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A5689d4%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A7b96e3%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/shield-off.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/shield.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/shield-alert.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/minus.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/folder-plus.ts","../../../../../../../src/presentation/web/app/actions/data%3A7f54e9%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx"],"sourcesContent":["'use client';\n\nimport { useState, useCallback, useRef, useEffect } from 'react';\nimport { openIde } from '@/app/actions/open-ide';\nimport { openShell } from '@/app/actions/open-shell';\nimport { openFolder } from '@/app/actions/open-folder';\nimport { syncRepository } from '@/app/actions/sync-repository';\n\nexport interface RepositoryActionsInput {\n repositoryId?: string;\n repositoryPath: string;\n}\n\nexport interface RepositoryActionsState {\n openInIde: () => Promise<void>;\n openInShell: () => Promise<void>;\n openFolder: () => Promise<void>;\n syncMain: () => Promise<void>;\n ideLoading: boolean;\n shellLoading: boolean;\n folderLoading: boolean;\n syncLoading: boolean;\n ideError: string | null;\n shellError: string | null;\n folderError: string | null;\n syncError: string | null;\n}\n\nconst ERROR_CLEAR_DELAY = 5000;\n\nexport function useRepositoryActions(input: RepositoryActionsInput | null): RepositoryActionsState {\n const [ideLoading, setIdeLoading] = useState(false);\n const [shellLoading, setShellLoading] = useState(false);\n const [folderLoading, setFolderLoading] = useState(false);\n const [syncLoading, setSyncLoading] = useState(false);\n const [ideError, setIdeError] = useState<string | null>(null);\n const [shellError, setShellError] = useState<string | null>(null);\n const [folderError, setFolderError] = useState<string | null>(null);\n const [syncError, setSyncError] = useState<string | null>(null);\n\n const ideTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const shellTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const folderTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const syncTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Clear timers on unmount\n useEffect(() => {\n const ideRef = ideTimerRef;\n const shellRef = shellTimerRef;\n const folderRef = folderTimerRef;\n const syncRef = syncTimerRef;\n return () => {\n if (ideRef.current) clearTimeout(ideRef.current);\n if (shellRef.current) clearTimeout(shellRef.current);\n if (folderRef.current) clearTimeout(folderRef.current);\n if (syncRef.current) clearTimeout(syncRef.current);\n };\n }, []);\n\n const performAction = useCallback(\n async (\n action: () => Promise<{ success: boolean; error?: string }>,\n setLoading: (v: boolean) => void,\n setError: (v: string | null) => void,\n timerRef: React.RefObject<ReturnType<typeof setTimeout> | null>,\n isLoading: boolean\n ) => {\n if (!input || isLoading) return;\n\n if (timerRef.current) clearTimeout(timerRef.current);\n\n setLoading(true);\n setError(null);\n\n try {\n const result = await action();\n\n if (!result.success) {\n const errorMessage = result.error ?? 'An unexpected error occurred';\n setError(errorMessage);\n timerRef.current = setTimeout(() => setError(null), ERROR_CLEAR_DELAY);\n }\n } catch (err: unknown) {\n const errorMessage = err instanceof Error ? err.message : 'An unexpected error occurred';\n setError(errorMessage);\n timerRef.current = setTimeout(() => setError(null), ERROR_CLEAR_DELAY);\n } finally {\n setLoading(false);\n }\n },\n [input]\n );\n\n const handleOpenIde = useCallback(\n () =>\n performAction(\n () => openIde({ repositoryPath: input!.repositoryPath }),\n setIdeLoading,\n setIdeError,\n ideTimerRef,\n ideLoading\n ),\n [performAction, ideLoading, input]\n );\n\n const handleOpenShell = useCallback(\n () =>\n performAction(\n () => openShell({ repositoryPath: input!.repositoryPath }),\n setShellLoading,\n setShellError,\n shellTimerRef,\n shellLoading\n ),\n [performAction, shellLoading, input]\n );\n\n const handleOpenFolder = useCallback(\n () =>\n performAction(\n () => openFolder(input!.repositoryPath),\n setFolderLoading,\n setFolderError,\n folderTimerRef,\n folderLoading\n ),\n [performAction, folderLoading, input]\n );\n\n const handleSyncMain = useCallback(\n () =>\n performAction(\n () => syncRepository(input!.repositoryId ?? ''),\n setSyncLoading,\n setSyncError,\n syncTimerRef,\n syncLoading\n ),\n [performAction, syncLoading, input]\n );\n\n return {\n openInIde: handleOpenIde,\n openInShell: handleOpenShell,\n openFolder: handleOpenFolder,\n syncMain: handleSyncMain,\n ideLoading,\n shellLoading,\n folderLoading,\n syncLoading,\n ideError,\n shellError,\n folderError,\n syncError,\n };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40a1d93188bdad75505c97b7862985e7a2ea3704ac\":\"syncRepository\"},\"src/presentation/web/app/actions/sync-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40a1d93188bdad75505c97b7862985e7a2ea3704ac\",callServer,void 0,findSourceMapURL,\"syncRepository\");export{$$RSC_SERVER_ACTION_0 as syncRepository};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n];\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('triangle-alert', __iconNode);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTloOCIgLz4KICA8cGF0aCBkPSJtNCAxNyA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '6', x2: '6', y1: '3', y2: '15', key: '17qcm7' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M18 9a9 9 0 0 1-9 9', key: 'n2h4wq' }],\n];\n\n/**\n * @component @name GitBranch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjYiIHkxPSIzIiB5Mj0iMTUiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTggOWE5IDkgMCAwIDEtOSA5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitBranch = createLucideIcon('git-branch', __iconNode);\n\nexport default GitBranch;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1', key: '1wp1u1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8', key: '1s80jp' }],\n ['path', { d: 'M10 12h4', key: 'a56b0p' }],\n];\n\n/**\n * @component @name Archive\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Archive = createLucideIcon('archive', __iconNode);\n\nexport default Archive;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n ['line', { x1: '3', x2: '9', y1: '12', y2: '12', key: '1dyftd' }],\n ['line', { x1: '15', x2: '21', y1: '12', y2: '12', key: 'oup4p8' }],\n];\n\n/**\n * @component @name GitCommitHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgogIDxsaW5lIHgxPSIzIiB4Mj0iOSIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iMjEiIHkxPSIxMiIgeTI9IjEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-commit-horizontal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitCommitHorizontal = createLucideIcon('git-commit-horizontal', __iconNode);\n\nexport default GitCommitHorizontal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4', key: '1inbqp' }],\n ['path', { d: 'm6 8-4 4 4 4', key: '15zrgr' }],\n ['path', { d: 'm14.5 4-5 16', key: 'e7oirm' }],\n];\n\n/**\n * @component @name CodeXml\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CodeXml = createLucideIcon('code-xml', __iconNode);\n\nexport default CodeXml;\n","/* __next_internal_action_entry_do_not_use__ [{\"40d38598b0927c8cdafd69e2643d766980e78eeb90\":\"openIde\"},\"src/presentation/web/app/actions/open-ide.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40d38598b0927c8cdafd69e2643d766980e78eeb90\",callServer,void 0,findSourceMapURL,\"openIde\");export{$$RSC_SERVER_ACTION_0 as openIde};","/* __next_internal_action_entry_do_not_use__ [{\"405a16b52b44f3f874a08634a43fcfd7a346031287\":\"openShell\"},\"src/presentation/web/app/actions/open-shell.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"405a16b52b44f3f874a08634a43fcfd7a346031287\",callServer,void 0,findSourceMapURL,\"openShell\");export{$$RSC_SERVER_ACTION_0 as openShell};","/* __next_internal_action_entry_do_not_use__ [{\"40cc09757daf0d55a680bff9a5ea71337c77e22bad\":\"openFolder\"},\"src/presentation/web/app/actions/open-folder.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40cc09757daf0d55a680bff9a5ea71337c77e22bad\",callServer,void 0,findSourceMapURL,\"openFolder\");export{$$RSC_SERVER_ACTION_0 as openFolder};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }]];\n\n/**\n * @component @name Circle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Circle = createLucideIcon('circle', __iconNode);\n\nexport default Circle;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n [\n 'path',\n {\n d: 'M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71',\n key: '1jlk70',\n },\n ],\n [\n 'path',\n {\n d: 'M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264',\n key: '18rp1v',\n },\n ],\n];\n\n/**\n * @component @name ShieldOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik01IDVhMSAxIDAgMCAwLTEgMXY3YzAgNSAzLjUgNy41IDcuNjcgOC45NGExIDEgMCAwIDAgLjY3LjAxYzIuMzUtLjgyIDQuNDgtMS45NyA1LjktMy43MSIgLz4KICA8cGF0aCBkPSJNOS4zMDkgMy42NTJBMTIuMjUyIDEyLjI1MiAwIDAgMCAxMS4yNCAyLjI4YTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY3YTkuNzg0IDkuNzg0IDAgMCAxLS4wOCAxLjI2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ShieldOff = createLucideIcon('shield-off', __iconNode);\n\nexport default ShieldOff;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n key: 'oel41y',\n },\n ],\n];\n\n/**\n * @component @name Shield\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Shield = createLucideIcon('shield', __iconNode);\n\nexport default Shield;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n key: 'oel41y',\n },\n ],\n ['path', { d: 'M12 8v4', key: '1got3b' }],\n ['path', { d: 'M12 16h.01', key: '1drbdi' }],\n];\n\n/**\n * @component @name ShieldAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTEyIDh2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ShieldAlert = createLucideIcon('shield-alert', __iconNode);\n\nexport default ShieldAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M5 12h14', key: '1ays0h' }]];\n\n/**\n * @component @name Minus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Minus = createLucideIcon('minus', __iconNode);\n\nexport default Minus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 10v6', key: '1bos4e' }],\n ['path', { d: 'M9 13h6', key: '1uhe8q' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n];\n\n/**\n * @component @name FolderPlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2NiIgLz4KICA8cGF0aCBkPSJNOSAxM2g2IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FolderPlus = createLucideIcon('folder-plus', __iconNode);\n\nexport default FolderPlus;\n","/* __next_internal_action_entry_do_not_use__ [{\"408155ce6ec7dfe555561aa536bbab2a66818b4c2b\":\"addRepository\"},\"src/presentation/web/app/actions/add-repository.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"408155ce6ec7dfe555561aa536bbab2a66818b4c2b\",callServer,void 0,findSourceMapURL,\"addRepository\");export{$$RSC_SERVER_ACTION_0 as addRepository};","import type { ReactNode, HTMLAttributes } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn('flex flex-col items-center gap-4 px-4 py-12 text-center', className)}\n {...props}\n >\n {icon ? <div className=\"text-muted-foreground\">{icon}</div> : null}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description ? <p className=\"text-muted-foreground max-w-md text-sm\">{description}</p> : null}\n {action ? <div className=\"mt-2\">{action}</div> : null}\n </div>\n );\n}\n"],"names":[],"mappings":"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","ignoreList":[2,3,4,6,7,8,9,13,14,15,16,17,18]}
@@ -1,3 +1,3 @@
1
- module.exports=[50490,5698,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>c],50490);let d=(0,b.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>d],5698)},5623,a=>{"use strict";var b=a.i(10973),c=a.i(88064),d=a.i(82697),e=a.i(85536),f=a.i(18948),g=a.i(19884);function h({label:a,onClick:h,loading:i,error:j,icon:k,iconOnly:l=!1,variant:m="outline",size:n="sm"}){let o=(0,g.useSoundAction)("click");return(0,b.jsxs)(f.Button,{variant:m,size:n,"aria-label":a,disabled:i,onClick:()=>{o.play(),h()},className:(0,e.cn)("gap-1.5",j&&"text-destructive hover:text-destructive",!j&&l&&"ghost"===m&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[i?(0,b.jsx)(c.Loader2,{className:"size-4 animate-spin"}):j?(0,b.jsx)(d.CircleAlert,{className:"size-4"}):(0,b.jsx)(k,{className:"size-4"}),l?null:a]})}a.s(["ActionButton",()=>h])},18662,a=>{"use strict";var b=a.i(96960),c=a.i(87139),d=a.i(25674);let e=(0,d.createServerReference)("404f6333969e7409941dd9d06aa603310c8d62c142",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("40e45171355f3fe154760d72c8247ef52a81c870cb",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("402778b18507885bcb7d1ffecc61d54df6328fde3d",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),h=(0,d.createServerReference)("403bca656cd4b5241601c8d735de471ec74ca5ae29",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus"),i=(0,c.createLogger)("[useDeployAction]");function j(a){let[c,d]=(0,b.useState)(!1),[j,k]=(0,b.useState)(!1),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(null),[p,q]=(0,b.useState)(null),r=(0,b.useRef)(null),s=(0,b.useRef)(!0),t=(0,b.useRef)(n);(0,b.useEffect)(()=>{t.current=n},[n]),(0,b.useEffect)(()=>(s.current=!0,()=>{s.current=!1}),[]),(0,b.useEffect)(()=>()=>{r.current&&clearInterval(r.current)},[]);let u=(0,b.useCallback)(()=>{r.current&&(i.debug("stopping polling"),clearInterval(r.current),r.current=null)},[]),v=(0,b.useCallback)(a=>{u(),i.debug(`starting polling for "${a}" every 3000ms`),r.current=setInterval(async()=>{let b;if(!s.current)return void u();try{b=await h(a)}catch(b){i.warn(`poll fetch failed for "${a}":`,b),s.current&&(o(null),q(null),u());return}s.current&&(b&&"Stopped"!==b.state?(b.state!==t.current&&i.info(`poll state changed: ${t.current} → ${b.state}, url=${b.url}`),o(b.state),q(b.url)):(i.info(`poll result: ${b?`state=${b.state}`:"null (deployment gone)"} — stopping poll`),o(null),q(null),u()))},3e3)},[u]),w=(0,b.useCallback)(async()=>{if(!a)return void i.warn("deploy() called but input is null — no-op");if(c)return void i.warn("deploy() called but already loading — no-op");i.info(`deploy() — targetType="${a.targetType}", targetId="${a.targetId}", repositoryPath="${a.repositoryPath}"`),d(!0),m(null);try{let b="feature"===a.targetType?await e(a.targetId):await f(a.repositoryPath);if(i.info("server action result:",b),!s.current)return void i.warn("component unmounted after deploy — discarding result");if(b.success)i.info(`deploy succeeded — initial state=${b.state}, starting polling`),o(b.state??null),q(null),v(a.targetId);else{let a=b.error??"An unexpected error occurred";i.warn(`deploy failed: ${a}`),m(a)}}catch(b){if(!s.current)return;let a=b instanceof Error?b.message:"An unexpected error occurred";i.error(`deploy threw exception: ${a}`,b),m(a)}finally{s.current&&d(!1)}},[a,c,v]),x=(0,b.useCallback)(async()=>{if(a&&!j){i.info(`stop() — targetId="${a.targetId}"`),k(!0);try{let b=await g(a.targetId);if(i.info("stop result:",b),!s.current)return;b.success&&(u(),o(null),q(null))}catch(a){i.warn("stop error (non-critical):",a)}finally{s.current&&k(!1)}}},[a,j,u]);return{deploy:w,stop:x,deployLoading:c,stopLoading:j,deployError:l,status:n,url:p}}a.s(["useDeployAction",()=>j],18662)},69029,85080,49235,2824,a=>{"use strict";let b;a.i(5623),a.s([],69029);var c=a.i(10973),d=a.i(96960),e=a.i(88064),f=a.i(71238),g=a.i(63698),h=a.i(46847),i=a.i(82934),j=a.i(45670),k=a.i(25674);let l=(0,k.createServerReference)("406f7e935dbb460a8a8b67c2b1fb4f2ee3e97f15d7",k.callServer,void 0,k.findSourceMapURL,"getDeploymentLogs");function m({open:a,onOpenChange:b,targetId:e}){let{logs:f,isConnected:g}=function(a){let[b,c]=(0,d.useState)([]),[e,f]=(0,d.useState)(!1),g=(0,d.useRef)(null),h=(0,d.useCallback)(()=>{g.current&&(g.current.close(),g.current=null),f(!1)},[]);return(0,d.useEffect)(()=>{if(!a){c([]),f(!1);return}l(a).then(a=>{a&&c(a)}).catch(()=>{});let b=new EventSource(`/api/deployment-logs?targetId=${a}`);return g.current=b,b.onopen=()=>{f(!0)},b.addEventListener("log",a=>{let b=JSON.parse(a.data);c(a=>[...a,b])}),b.onerror=()=>{f(!1)},()=>{b.close(),g.current=null}},[a,h]),{logs:b,isConnected:e}}(a?e:null);return(0,c.jsx)(n,{open:a,onOpenChange:b,logs:f,isConnected:g})}function n({open:a,onOpenChange:b,logs:e,isConnected:f}){let h=(0,d.useRef)(null),i=(0,d.useRef)(!0),k=(0,d.useCallback)(()=>{let a=h.current;a&&(i.current=a.scrollTop+a.clientHeight>=a.scrollHeight-50)},[]);return(0,d.useEffect)(()=>{i.current&&h.current&&(h.current.scrollTop=h.current.scrollHeight)},[e]),(0,c.jsx)(j.Dialog,{open:a,onOpenChange:b,children:(0,c.jsxs)(j.DialogContent,{className:"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg","aria-describedby":void 0,children:[(0,c.jsxs)(j.DialogHeader,{className:"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3",children:[(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)(g.Terminal,{className:"h-4 w-4 text-zinc-400"}),(0,c.jsx)(j.DialogTitle,{className:"text-sm font-medium text-zinc-100",children:"Server Logs"})]}),(0,c.jsxs)("div",{className:"flex items-center gap-2 pe-8",children:[(0,c.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${f?"bg-green-500":"bg-zinc-500"}`}),(0,c.jsx)("span",{className:"text-xs text-zinc-400",children:f?"Connected":"Disconnected"})]})]}),(0,c.jsxs)("div",{ref:h,onScroll:k,className:"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed",children:[0===e.length?(0,c.jsx)("p",{className:"text-zinc-500",children:"Waiting for log output..."}):e.map(a=>(0,c.jsx)(o,{entry:a},`${a.timestamp}-${a.stream}-${a.line}`)),!f&&e.length>0&&(0,c.jsx)("div",{className:"mt-2 border-t border-zinc-800 pt-2 text-zinc-500",children:"[Server stopped]"})]})]})})}function o({entry:a}){return(0,c.jsx)("div",{"data-stream":a.stream,className:"stderr"===a.stream?"text-red-400":"text-zinc-200",children:(0,c.jsx)("span",{className:"break-all whitespace-pre-wrap",children:a.line})})}let p="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-7 items-center justify-center rounded-[3px]";function q({status:a,url:b,targetId:j}){let[k,l]=(0,d.useState)(!1),n=j&&(a===h.DeploymentState.Booting||a===h.DeploymentState.Ready);switch(a){case h.DeploymentState.Booting:return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"flex items-center gap-1 pl-1",children:[(0,c.jsx)(e.Loader2,{className:"size-3 animate-spin text-blue-500"}),(0,c.jsx)("span",{className:"text-muted-foreground text-[11px]",children:"Starting..."}),n?(0,c.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,c.jsxs)(i.Tooltip,{children:[(0,c.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,c.jsx)("button",{type:"button","aria-label":"View server logs",className:p,onClick:a=>{a.stopPropagation(),l(!0)},children:(0,c.jsx)(g.Terminal,{className:"size-3.5"})})}),(0,c.jsx)(i.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),n?(0,c.jsx)(m,{open:k,onOpenChange:l,targetId:j}):null]});case h.DeploymentState.Ready:return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"flex translate-y-px items-center gap-1 pl-1",children:[(0,c.jsx)("span",{className:"inline-block size-1.5 rounded-full bg-green-500"}),b?(0,c.jsxs)("a",{href:b,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-0.5 text-[11px] text-green-600 hover:text-green-500 dark:text-green-400 dark:hover:text-green-300",onClick:a=>a.stopPropagation(),children:[b,(0,c.jsx)(f.ExternalLink,{className:"size-2.5 shrink-0"})]}):(0,c.jsx)("span",{className:"text-[11px] text-green-600 dark:text-green-400",children:"Ready"}),n?(0,c.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,c.jsxs)(i.Tooltip,{children:[(0,c.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,c.jsx)("button",{type:"button","aria-label":"View server logs",className:p,onClick:a=>{a.stopPropagation(),l(!0)},children:(0,c.jsx)(g.Terminal,{className:"size-3.5"})})}),(0,c.jsx)(i.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),n?(0,c.jsx)(m,{open:k,onOpenChange:l,targetId:j}):null]});default:return null}}a.s(["DeploymentStatusBadge",()=>q],85080),a.s([],49235);var r=a.i(10568),s=a.i(40093);let t=d.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),u=()=>{let a=d.default.useContext(t);if(!a)throw Error("useDrawerContext must be used within a Drawer.Root");return a};function v(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function w(){return x(/^iPhone/)||x(/^iPad/)||x(/^Mac/)&&navigator.maxTouchPoints>1}function x(a){}!function(a){if(!a||"u"<typeof document)return;let b=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",b.appendChild(c),c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let y=d.useEffect;"u">typeof document&&window.visualViewport;let z=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),A=0;function B(...a){return d.useCallback(function(...a){return b=>a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})}(...a),a)}let C=new WeakMap;function D(a,b,c=!1){if(!a||!(a instanceof HTMLElement))return;let d={};Object.entries(b).forEach(([b,c])=>{b.startsWith("--")?a.style.setProperty(b,c):(d[b]=a.style[b],a.style[b]=c)}),c||C.set(a,d)}let E=a=>{switch(a){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return a}};function F(a,b){if(!a)return null;let c=window.getComputedStyle(a),d=c.transform||c.webkitTransform||c.mozTransform,e=d.match(/^matrix3d\((.+)\)$/);return e?parseFloat(e[1].split(", ")[E(b)?13:12]):(e=d.match(/^matrix\((.+)\)$/))?parseFloat(e[1].split(", ")[E(b)?5:4]):null}function G(a,b){if(!a)return()=>{};let c=a.style.cssText;return Object.assign(a.style,b),()=>{a.style.cssText=c}}let H=[.32,.72,0,1],I="vaul-dragging";function J(a){let b=d.default.useRef(a);return d.default.useEffect(()=>{b.current=a}),d.default.useMemo(()=>(...a)=>null==b.current?void 0:b.current.call(b,...a),[])}function K({prop:a,defaultProp:b,onChange:c=()=>{}}){let[e,f]=function({defaultProp:a,onChange:b}){let c=d.default.useState(a),[e]=c,f=d.default.useRef(e),g=J(b);return d.default.useEffect(()=>{f.current!==e&&(g(e),f.current=e)},[e,f,g]),c}({defaultProp:b,onChange:c}),g=void 0!==a,h=g?a:e,i=J(c);return[h,d.default.useCallback(b=>{if(g){let c="function"==typeof b?b(a):b;c!==a&&i(c)}else f(b)},[g,a,f,i])]}let L=()=>()=>{},M=null;function N({open:a,onOpenChange:c,children:e,onDrag:f,onRelease:g,snapPoints:h,shouldScaleBackground:i=!1,setBackgroundColorOnScale:j=!0,closeThreshold:k=.25,scrollLockTimeout:l=100,dismissible:m=!0,handleOnly:n=!1,fadeFromIndex:o=h&&h.length-1,activeSnapPoint:p,setActiveSnapPoint:q,fixed:r,modal:u=!0,onClose:x,nested:B,noBodyStyles:G=!1,direction:J="bottom",defaultOpen:L=!1,disablePreventScroll:N=!0,snapToSequentialPoint:O=!1,preventScrollRestoration:P=!1,repositionInputs:Q=!0,onAnimationEnd:R,container:S,autoFocus:T=!1}){var U,V;let[W=!1,X]=K({defaultProp:L,prop:a,onChange:a=>{null==c||c(a),a||B||aA(),setTimeout(()=>{null==R||R(a)},500),a||(document.body.style.pointerEvents="auto")}}),[Y,Z]=d.default.useState(!1),[$,_]=d.default.useState(!1),[aa,ab]=d.default.useState(!1),ac=d.default.useRef(null),ad=d.default.useRef(null),ae=d.default.useRef(null),af=d.default.useRef(null),ag=d.default.useRef(null),ah=d.default.useRef(!1),ai=d.default.useRef(null),aj=d.default.useRef(0),ak=d.default.useRef(!1),al=d.default.useRef(!L),am=d.default.useRef(0),an=d.default.useRef(null),ao=d.default.useRef((null==(U=an.current)?void 0:U.getBoundingClientRect().height)||0),ap=d.default.useRef((null==(V=an.current)?void 0:V.getBoundingClientRect().width)||0),aq=d.default.useRef(0),ar=d.default.useCallback(a=>{h&&a===aw.length-1&&(ad.current=new Date)},[]),{activeSnapPoint:as,activeSnapPointIndex:at,setActiveSnapPoint:au,onRelease:av,snapPointsOffset:aw,onDrag:ax,shouldFade:ay,getPercentageDragged:az}=function({activeSnapPointProp:a,setActiveSnapPointProp:b,snapPoints:c,drawerRef:e,overlayRef:f,fadeFromIndex:g,onSnapPointChange:h,direction:i="bottom",container:j,snapToSequentialPoint:k}){let[l,m]=K({prop:a,defaultProp:null==c?void 0:c[0],onChange:b}),[n,o]=d.default.useState(void 0);d.default.useEffect(()=>{function a(){o({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);let p=d.default.useMemo(()=>l===(null==c?void 0:c[c.length-1])||null,[c,l]),q=d.default.useMemo(()=>{var a;return null!=(a=null==c?void 0:c.findIndex(a=>a===l))?a:null},[c,l]),r=c&&c.length>0&&(g||0===g)&&!Number.isNaN(g)&&c[g]===l||!c,s=d.default.useMemo(()=>{var a;let b=j?{width:j.getBoundingClientRect().width,height:j.getBoundingClientRect().height}:{width:0,height:0};return null!=(a=null==c?void 0:c.map(a=>{let c="string"==typeof a,d=0;if(c&&(d=parseInt(a,10)),E(i)){let e=c?d:n?a*b.height:0;return n?"bottom"===i?b.height-e:-b.height+e:e}let e=c?d:n?a*b.width:0;return n?"right"===i?b.width-e:-b.width+e:e}))?a:[]},[c,n,j]),t=d.default.useMemo(()=>null!==q?null==s?void 0:s[q]:null,[s,q]),u=d.default.useCallback(a=>{var b;let d=null!=(b=null==s?void 0:s.findIndex(b=>b===a))?b:null;h(d),D(e.current,{transition:`transform 0.5s cubic-bezier(${H.join(",")})`,transform:E(i)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`}),s&&d!==s.length-1&&void 0!==g&&d!==g&&d<g?D(f.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`,opacity:"0"}):D(f.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`,opacity:"1"}),m(null==c?void 0:c[Math.max(d,0)])},[e.current,c,s,g,f,m]);return d.default.useEffect(()=>{if(l||a){var b;let d=null!=(b=null==c?void 0:c.findIndex(b=>b===a||b===l))?b:-1;s&&-1!==d&&"number"==typeof s[d]&&u(s[d])}},[l,a,c,s,u]),{isLastSnapPoint:p,activeSnapPoint:l,shouldFade:r,getPercentageDragged:function(a,b){if(!c||"number"!=typeof q||!s||void 0===g)return null;let d=q===g-1;if(q>=g&&b)return 0;if(d&&!b)return 1;if(!r&&!d)return null;let e=d?q+1:q-1,f=a/Math.abs(d?s[e]-s[e-1]:s[e+1]-s[e]);return d?1-f:f},setActiveSnapPoint:m,activeSnapPointIndex:q,onRelease:function({draggedDistance:a,closeDrawer:b,velocity:d,dismissible:e}){if(void 0===g)return;let h="bottom"===i||"right"===i?(null!=t?t:0)-a:(null!=t?t:0)+a,j=q===g-1,l=0===q,m=a>0;if(j&&D(f.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`}),!k&&d>2&&!m)return void(e?b():u(s[0]));if(!k&&d>2&&m&&s&&c)return void u(s[c.length-1]);let n=null==s?void 0:s.reduce((a,b)=>"number"!=typeof a||"number"!=typeof b?a:Math.abs(b-h)<Math.abs(a-h)?b:a),o=E(i)?window.innerHeight:window.innerWidth;if(d>.4&&Math.abs(a)<.4*o){let a=m?1:-1;return a>0&&p&&c?void u(s[c.length-1]):void(l&&a<0&&e&&b(),null===q||u(s[q+a]))}u(n)},onDrag:function({draggedDistance:a}){if(null===t)return;let b="bottom"===i||"right"===i?t-a:t+a;("bottom"===i||"right"===i)&&b<s[s.length-1]||("top"===i||"left"===i)&&b>s[s.length-1]||D(e.current,{transform:E(i)?`translate3d(0, ${b}px, 0)`:`translate3d(${b}px, 0, 0)`})},snapPointsOffset:s}}({snapPoints:h,activeSnapPointProp:p,setActiveSnapPointProp:q,drawerRef:an,fadeFromIndex:o,overlayRef:ac,onSnapPointChange:ar,direction:J,container:S,snapToSequentialPoint:O});!function(a={}){let{isDisabled:c}=a;y(()=>{if(!c)return 1==++A&&w(),()=>{0==--A&&(null==b||b())}},[c])}({isDisabled:!W||$||!u||aa||!Y||!Q||!N});let{restorePositionSetting:aA}=function({isOpen:a,modal:b,nested:c,hasBeenOpened:e,preventScrollRestoration:f,noBodyStyles:g}){let[h,i]=d.default.useState(()=>""),j=d.default.useRef(0),k=d.default.useCallback(()=>{if(v()&&null===M&&a&&!g){M={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:a,innerHeight:b}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-j.current}px`,left:`${-a}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let a=b-window.innerHeight;a&&j.current>=b&&(document.body.style.top=`${-(j.current+a)}px`)}),300)}},[a]),l=d.default.useCallback(()=>{if(v()&&null!==M&&!g){let a=-parseInt(document.body.style.top,10),b=-parseInt(document.body.style.left,10);Object.assign(document.body.style,M),window.requestAnimationFrame(()=>{f&&h!==window.location.href?i(window.location.href):window.scrollTo(b,a)}),M=null}},[h]);return d.default.useEffect(()=>{function a(){j.current=window.scrollY}return a(),window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)}},[]),d.default.useEffect(()=>{if(b)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||l()}},[b,l]),d.default.useEffect(()=>{!c&&e&&(a?(window.matchMedia("(display-mode: standalone)").matches||k(),b||window.setTimeout(()=>{l()},500)):l())},[a,e,h,b,c,k,l]),{restorePositionSetting:l}}({isOpen:W,modal:u,nested:null!=B&&B,hasBeenOpened:Y,preventScrollRestoration:P,noBodyStyles:G});function aB(){return(window.innerWidth-26)/window.innerWidth}function aC(a,b){var c;let d=a,e=null==(c=window.getSelection())?void 0:c.toString(),f=an.current?F(an.current,J):null,g=new Date;if("SELECT"===d.tagName||d.hasAttribute("data-vaul-no-drag")||d.closest("[data-vaul-no-drag]"))return!1;if("right"===J||"left"===J)return!0;if(ad.current&&g.getTime()-ad.current.getTime()<500)return!1;if(null!==f&&("bottom"===J?f>0:f<0))return!0;if(e&&e.length>0)return!1;if(ag.current&&g.getTime()-ag.current.getTime()<l&&0===f||b)return ag.current=g,!1;for(;d;){if(d.scrollHeight>d.clientHeight){if(0!==d.scrollTop)return ag.current=new Date,!1;if("dialog"===d.getAttribute("role"))break}d=d.parentNode}return!0}function aD(a){$&&an.current&&(an.current.classList.remove(I),ah.current=!1,_(!1),af.current=new Date),null==x||x(),a||X(!1),setTimeout(()=>{h&&au(h[0])},500)}function aE(){if(!an.current)return;let a=document.querySelector("[data-vaul-drawer-wrapper]"),b=F(an.current,J);D(an.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${H.join(",")})`}),D(ac.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`,opacity:"1"}),i&&b&&b>0&&W&&D(a,{borderRadius:"8px",overflow:"hidden",...E(J)?{transform:`scale(${aB()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${aB()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${H.join(",")})`},!0)}return d.default.useEffect(()=>{window.requestAnimationFrame(()=>{al.current=!0})},[]),d.default.useEffect(()=>{var a;function b(){var a,b;if(an.current&&Q&&((a=document.activeElement)instanceof HTMLInputElement&&!z.has(a.type)||a instanceof HTMLTextAreaElement||a instanceof HTMLElement&&a.isContentEditable||ak.current)){let a=(null==(b=window.visualViewport)?void 0:b.height)||0,c=window.innerHeight,d=c-a,e=an.current.getBoundingClientRect().height||0;aq.current||(aq.current=e);let f=an.current.getBoundingClientRect().top;if(Math.abs(am.current-d)>60&&(ak.current=!ak.current),h&&h.length>0&&aw&&at&&(d+=aw[at]||0),am.current=d,e>a||ak.current){let b=an.current.getBoundingClientRect().height,g=b;b>a&&(g=a-(e>.8*c?f:26)),r?an.current.style.height=`${b-Math.max(d,0)}px`:an.current.style.height=`${Math.max(g,a-f)}px`}else navigator.userAgent,an.current.style.height=`${aq.current}px`;h&&h.length>0&&!ak.current?an.current.style.bottom="0px":an.current.style.bottom=`${Math.max(d,0)}px`}}return null==(a=window.visualViewport)||a.addEventListener("resize",b),()=>{var a;return null==(a=window.visualViewport)?void 0:a.removeEventListener("resize",b)}},[at,h,aw]),d.default.useEffect(()=>(W&&(D(document.documentElement,{scrollBehavior:"auto"}),ad.current=new Date),()=>{!function(a,b){if(!a||!(a instanceof HTMLElement))return;let c=C.get(a);c&&(a.style[b]=c[b])}(document.documentElement,"scrollBehavior")}),[W]),d.default.useEffect(()=>{u||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[u]),d.default.createElement(s.Root,{defaultOpen:L,onOpenChange:a=>{(m||a)&&(a?Z(!0):aD(!0),X(a))},open:W},d.default.createElement(t.Provider,{value:{activeSnapPoint:as,snapPoints:h,setActiveSnapPoint:au,drawerRef:an,overlayRef:ac,onOpenChange:c,onPress:function(a){var b,c;!m&&!h||(!an.current||an.current.contains(a.target))&&(ao.current=(null==(b=an.current)?void 0:b.getBoundingClientRect().height)||0,ap.current=(null==(c=an.current)?void 0:c.getBoundingClientRect().width)||0,_(!0),ae.current=new Date,w(),a.target.setPointerCapture(a.pointerId),aj.current=E(J)?a.pageY:a.pageX)},onRelease:function(a){var b,c;if(!$||!an.current)return;an.current.classList.remove(I),ah.current=!1,_(!1),af.current=new Date;let d=F(an.current,J);if(!a||!aC(a.target,!1)||!d||Number.isNaN(d)||null===ae.current)return;let e=af.current.getTime()-ae.current.getTime(),f=aj.current-(E(J)?a.pageY:a.pageX),i=Math.abs(f)/e;if(i>.05&&(ab(!0),setTimeout(()=>{ab(!1)},200)),h){av({draggedDistance:f*("bottom"===J||"right"===J?1:-1),closeDrawer:aD,velocity:i,dismissible:m}),null==g||g(a,!0);return}if("bottom"===J||"right"===J?f>0:f<0){aE(),null==g||g(a,!0);return}if(i>.4){aD(),null==g||g(a,!1);return}let j=Math.min(null!=(b=an.current.getBoundingClientRect().height)?b:0,window.innerHeight),l=Math.min(null!=(c=an.current.getBoundingClientRect().width)?c:0,window.innerWidth);if(Math.abs(d)>=("left"===J||"right"===J?l:j)*k){aD(),null==g||g(a,!1);return}null==g||g(a,!0),aE()},onDrag:function(a){if(an.current&&$){let b="bottom"===J||"right"===J?1:-1,c=(aj.current-(E(J)?a.pageY:a.pageX))*b,d=c>0,e=h&&!m&&!d;if(e&&0===at)return;let g=Math.abs(c),j=document.querySelector("[data-vaul-drawer-wrapper]"),k=g/("bottom"===J||"top"===J?ao.current:ap.current),l=az(g,d);if(null!==l&&(k=l),e&&k>=1||!ah.current&&!aC(a.target,d))return;if(an.current.classList.add(I),ah.current=!0,D(an.current,{transition:"none"}),D(ac.current,{transition:"none"}),h&&ax({draggedDistance:c}),d&&!h){let a=Math.min(-(8*(Math.log(c+1)-2)*1),0)*b;D(an.current,{transform:E(J)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`});return}let n=1-k;if((ay||o&&at===o-1)&&(null==f||f(a,k),D(ac.current,{opacity:`${n}`,transition:"none"},!0)),j&&ac.current&&i){let a=Math.min(aB()+k*(1-aB()),1),b=8-8*k,c=Math.max(0,14-14*k);D(j,{borderRadius:`${b}px`,transform:E(J)?`scale(${a}) translate3d(0, ${c}px, 0)`:`scale(${a}) translate3d(${c}px, 0, 0)`,transition:"none"},!0)}if(!h){let a=g*b;D(an.current,{transform:E(J)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})}}},dismissible:m,shouldAnimate:al,handleOnly:n,isOpen:W,isDragging:$,shouldFade:ay,closeDrawer:aD,onNestedDrag:function(a,b){if(b<0)return;let c=(window.innerWidth-16)/window.innerWidth,d=c+b*(1-c),e=-16+16*b;D(an.current,{transform:E(J)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(a){let b=a?(window.innerWidth-16)/window.innerWidth:1,c=a?-16:0;ai.current&&window.clearTimeout(ai.current),D(an.current,{transition:`transform 0.5s cubic-bezier(${H.join(",")})`,transform:E(J)?`scale(${b}) translate3d(0, ${c}px, 0)`:`scale(${b}) translate3d(${c}px, 0, 0)`}),!a&&an.current&&(ai.current=setTimeout(()=>{let a=F(an.current,J);D(an.current,{transition:"none",transform:E(J)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})},500))},onNestedRelease:function(a,b){let c=E(J)?window.innerHeight:window.innerWidth,d=b?(c-16)/c:1,e=b?-16:0;b&&D(an.current,{transition:`transform 0.5s cubic-bezier(${H.join(",")})`,transform:E(J)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`})},keyboardIsOpen:ak,modal:u,snapPointsOffset:aw,activeSnapPointIndex:at,direction:J,shouldScaleBackground:i,setBackgroundColorOnScale:j,noBodyStyles:G,container:S,autoFocus:T}},e))}let O=d.default.forwardRef(function({...a},b){let{overlayRef:c,snapPoints:e,onRelease:f,shouldFade:g,isOpen:h,modal:i,shouldAnimate:j}=u(),k=B(b,c),l=e&&e.length>0;if(!i)return null;let m=d.default.useCallback(a=>f(a),[f]);return d.default.createElement(s.Overlay,{onMouseUp:m,ref:k,"data-vaul-overlay":"","data-vaul-snap-points":h&&l?"true":"false","data-vaul-snap-points-overlay":h&&g?"true":"false","data-vaul-animate":(null==j?void 0:j.current)?"true":"false",...a})});O.displayName="Drawer.Overlay";let P=d.default.forwardRef(function({onPointerDownOutside:a,style:b,onOpenAutoFocus:c,...e},f){let{drawerRef:g,onPress:h,onRelease:i,onDrag:j,keyboardIsOpen:k,snapPointsOffset:l,activeSnapPointIndex:m,modal:n,isOpen:o,direction:p,snapPoints:q,container:r,handleOnly:t,shouldAnimate:v,autoFocus:w}=u(),[x,y]=d.default.useState(!1),z=B(f,g),A=d.default.useRef(null),C=d.default.useRef(null),D=d.default.useRef(!1),F=q&&q.length>0;function I(a){A.current=null,D.current=!1,i(a)}return!function(){let{direction:a,isOpen:b,shouldScaleBackground:c,setBackgroundColorOnScale:e,noBodyStyles:f}=u(),g=d.default.useRef(null),h=(0,d.useMemo)(()=>document.body.style.backgroundColor,[]);function i(){return(window.innerWidth-26)/window.innerWidth}d.default.useEffect(()=>{if(b&&c){g.current&&clearTimeout(g.current);let b=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!b)return;!function(...a){}(e&&!f?G(document.body,{background:"black"}):L,G(b,{transformOrigin:E(a)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${H.join(",")})`}));let c=G(b,{borderRadius:"8px",overflow:"hidden",...E(a)?{transform:`scale(${i()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${i()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{c(),g.current=window.setTimeout(()=>{h?document.body.style.background=h:document.body.style.removeProperty("background")},500)}}},[b,c,h])}(),d.default.useEffect(()=>{F&&window.requestAnimationFrame(()=>{y(!0)})},[]),d.default.createElement(s.Content,{"data-vaul-drawer-direction":p,"data-vaul-drawer":"","data-vaul-delayed-snap-points":x?"true":"false","data-vaul-snap-points":o&&F?"true":"false","data-vaul-custom-container":r?"true":"false","data-vaul-animate":(null==v?void 0:v.current)?"true":"false",...e,ref:z,style:l&&l.length>0?{"--snap-point-height":`${l[null!=m?m:0]}px`,...b}:b,onPointerDown:a=>{t||(null==e.onPointerDown||e.onPointerDown.call(e,a),A.current={x:a.pageX,y:a.pageY},h(a))},onOpenAutoFocus:a=>{null==c||c(a),w||a.preventDefault()},onPointerDownOutside:b=>{(null==a||a(b),!n||b.defaultPrevented)?b.preventDefault():k.current&&(k.current=!1)},onFocusOutside:a=>{if(!n)return void a.preventDefault()},onPointerMove:a=>{if(C.current=a,t||(null==e.onPointerMove||e.onPointerMove.call(e,a),!A.current))return;let b=a.pageY-A.current.y,c=a.pageX-A.current.x,d="touch"===a.pointerType?10:2;((a,b,c=0)=>{if(D.current)return!0;let d=Math.abs(a.y),e=Math.abs(a.x),f=e>d,g=["bottom","right"].includes(b)?1:-1;if("left"===b||"right"===b){if(!(a.x*g<0)&&e>=0&&e<=c)return f}else if(!(a.y*g<0)&&d>=0&&d<=c)return!f;return D.current=!0,!0})({x:c,y:b},p,d)?j(a):(Math.abs(c)>d||Math.abs(b)>d)&&(A.current=null)},onPointerUp:a=>{null==e.onPointerUp||e.onPointerUp.call(e,a),A.current=null,D.current=!1,i(a)},onPointerOut:a=>{null==e.onPointerOut||e.onPointerOut.call(e,a),I(C.current)},onContextMenu:a=>{null==e.onContextMenu||e.onContextMenu.call(e,a),C.current&&I(C.current)}})});P.displayName="Drawer.Content";let Q=d.default.forwardRef(function({preventCycle:a=!1,children:b,...c},e){let{closeDrawer:f,isDragging:g,snapPoints:h,activeSnapPoint:i,setActiveSnapPoint:j,dismissible:k,handleOnly:l,isOpen:m,onPress:n,onDrag:o}=u(),p=d.default.useRef(null),q=d.default.useRef(!1);function r(){p.current&&window.clearTimeout(p.current),q.current=!1}return d.default.createElement("div",{onClick:function(){q.current?r():window.setTimeout(()=>{!function(){if(g||a||q.current)return r();if(r(),!h||0===h.length){k||f();return}if(i===h[h.length-1]&&k)return f();let b=h.findIndex(a=>a===i);-1===b||j(h[b+1])}()},120)},onPointerCancel:r,onPointerDown:a=>{l&&n(a),p.current=window.setTimeout(()=>{q.current=!0},250)},onPointerMove:a=>{l&&o(a)},ref:e,"data-vaul-drawer-visible":m?"true":"false","data-vaul-handle":"","aria-hidden":"true",...c},d.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},b))});Q.displayName="Drawer.Handle";let R={Root:N,NestedRoot:function({onDrag:a,onOpenChange:b,open:c,...e}){let{onNestedDrag:f,onNestedOpenChange:g,onNestedRelease:h}=u();if(!f)throw Error("Drawer.NestedRoot must be placed in another drawer");return d.default.createElement(N,{nested:!0,open:c,onClose:()=>{g(!1)},onDrag:(b,c)=>{f(b,c),null==a||a(b,c)},onOpenChange:a=>{a&&g(a),null==b||b(a)},onRelease:h,...e})},Content:P,Overlay:O,Trigger:s.Trigger,Portal:function(a){let b=u(),{container:c=b.container,...e}=a;return d.default.createElement(s.Portal,{container:c,...e})},Handle:Q,Close:s.Close,Title:s.Title,Description:s.Description};var S=a.i(85536);function T({...a}){return(0,c.jsx)(R.Root,{"data-slot":"drawer",...a})}function U({...a}){return(0,c.jsx)(R.Portal,{"data-slot":"drawer-portal",...a})}function V({className:a,...b}){return(0,c.jsx)(R.Overlay,{"data-slot":"drawer-overlay",className:(0,S.cn)("fixed inset-0 z-50 bg-black/50",a),...b})}function W({className:a,children:b,direction:d="bottom",showCloseButton:e=!0,...f}){return(0,c.jsx)(U,{children:(0,c.jsxs)(R.Content,{"data-slot":"drawer-content",className:(0,S.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===d&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===d&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===d&&"inset-y-0 right-0 h-full w-3/4 border-l","left"===d&&"inset-y-0 left-0 h-full w-3/4 border-r",a),style:{"--initial-transform":"calc(100% + 8px)",userSelect:"text",...f.style??{}},...f,children:[b,e?(0,c.jsxs)(R.Close,{className:"ring-offset-background focus:ring-ring absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,c.jsx)(r.XIcon,{className:"size-4"}),(0,c.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function X({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-header",className:(0,S.cn)("flex flex-col gap-1.5 p-4",a),...b})}function Y({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-footer",className:(0,S.cn)("mt-auto flex flex-col gap-2 p-4",a),...b})}function Z({className:a,...b}){return(0,c.jsx)(R.Title,{"data-slot":"drawer-title",className:(0,S.cn)("text-foreground font-semibold",a),...b})}function $({className:a,...b}){return(0,c.jsx)(R.Description,{"data-slot":"drawer-description",className:(0,S.cn)("text-muted-foreground text-sm",a),...b})}a.s(["Drawer",()=>T,"DrawerContent",()=>W,"DrawerDescription",()=>$,"DrawerFooter",()=>Y,"DrawerHeader",()=>X,"DrawerOverlay",()=>V,"DrawerTitle",()=>Z],2824)},24255,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(10568),e=a.i(50490),f=a.i(5698),g=a.i(42261),h=a.i(85536);a.i(69029);var i=a.i(5623);a.i(49235);var j=a.i(85080),k=a.i(2824),l=a.i(13126),m=a.i(82934);a.i(90370);var n=a.i(24640),o=a.i(18662),p=a.i(21333);let q=(0,g.cva)("",{variants:{size:{sm:"w-96",md:"w-2xl",lg:"w-[772px]"}},defaultVariants:{size:"sm"}});function r({open:a,onClose:e,modal:f=!1,dismissOnOutsideClick:g=!1,title:i="Drawer",size:j,header:m,children:o,footer:r,className:t,"data-testid":u,deployTarget:v}){let{i18n:w}=(0,n.useTranslation)(),x=(0,p.useFeatureFlags)(),y=(0,c.useRef)(null),z="rtl"===w.dir()?"left":"right";return(0,c.useEffect)(()=>{if(!a||f)return;let b=a=>{let b=a.target;!document.body.contains(b)||y.current?.contains(b)||b.closest(g?'[role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]':'[data-no-drawer-close], [role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]')||e()};return document.addEventListener("click",b),()=>document.removeEventListener("click",b)},[a,f,e,g]),(0,b.jsxs)(k.Drawer,{direction:z,modal:f,handleOnly:!0,open:a,onOpenChange:a=>{a||e()},children:[f?(0,b.jsx)(k.DrawerOverlay,{}):null,(0,b.jsxs)(k.DrawerContent,{ref:y,direction:z,showCloseButton:!1,className:(0,h.cn)(q({size:j}),"bg-white/85 backdrop-blur-xl dark:bg-neutral-800/85",t),"data-testid":u,onInteractOutside:f?void 0:a=>a.preventDefault(),children:[(0,b.jsx)(k.DrawerTitle,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsx)(k.DrawerDescription,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsxs)("button",{type:"button","aria-label":"Close",onClick:e,className:"ring-offset-background focus:ring-ring absolute end-3 top-2 z-50 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden","data-testid":u?`${u}-close-button`:void 0,children:[(0,b.jsx)(d.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}),m?(0,b.jsx)(k.DrawerHeader,{className:"shrink-0",children:m}):null,m?(0,b.jsx)(l.Separator,{}):null,x.envDeploy&&v?(0,b.jsx)(s,{deployTarget:v}):null,(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:o}),r?(0,b.jsx)(k.DrawerFooter,{className:"shrink-0",children:r}):null]})]})}function s({deployTarget:a}){let c=(0,o.useDeployAction)(a),d="Booting"===c.status||"Ready"===c.status;return(0,b.jsxs)("div",{"data-testid":"base-drawer-deploy-bar",className:"flex items-center gap-2 px-4 pt-3 pb-3",children:[(0,b.jsx)(m.TooltipProvider,{children:(0,b.jsxs)(m.Tooltip,{children:[(0,b.jsx)(m.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{children:(0,b.jsx)(i.ActionButton,{label:d?"Stop Dev Server":"Start Dev Server",onClick:d?c.stop:c.deploy,loading:c.deployLoading||c.stopLoading,error:!!c.deployError,icon:d?f.Square:e.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,b.jsx)(m.TooltipContent,{children:d?"Stop Dev Server":"Start Dev Server"})]})}),d?(0,b.jsx)(j.DeploymentStatusBadge,{status:c.status,url:c.url,targetId:a.targetId}):null]})}a.s(["BaseDrawer",()=>r])}];
1
+ module.exports=[50490,5698,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>c],50490);let d=(0,b.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>d],5698)},5623,a=>{"use strict";var b=a.i(10973),c=a.i(88064),d=a.i(82697),e=a.i(85536),f=a.i(18948),g=a.i(19884);function h({label:a,onClick:h,loading:i,error:j,icon:k,iconOnly:l=!1,variant:m="outline",size:n="sm"}){let o=(0,g.useSoundAction)("click");return(0,b.jsxs)(f.Button,{variant:m,size:n,"aria-label":a,disabled:i,onClick:()=>{o.play(),h()},className:(0,e.cn)("gap-1.5",j&&"text-destructive hover:text-destructive",!j&&l&&"ghost"===m&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[i?(0,b.jsx)(c.Loader2,{className:"size-4 animate-spin"}):j?(0,b.jsx)(d.CircleAlert,{className:"size-4"}):(0,b.jsx)(k,{className:"size-4"}),l?null:a]})}a.s(["ActionButton",()=>h])},18662,a=>{"use strict";var b=a.i(96960),c=a.i(87139),d=a.i(25674);let e=(0,d.createServerReference)("40860c31d08f4dff1090d39ba9a1fb87ec5262c71f",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("4018b56fd00773e3379d5a2e04a16b52579d8d758d",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("4058ae514531bfc4ffc3b540a940699f22eede800d",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),h=(0,d.createServerReference)("40b348ff497559a4a6239e413e61bd59c225a86f01",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus"),i=(0,c.createLogger)("[useDeployAction]");function j(a){let[c,d]=(0,b.useState)(!1),[j,k]=(0,b.useState)(!1),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(null),[p,q]=(0,b.useState)(null),r=(0,b.useRef)(null),s=(0,b.useRef)(!0),t=(0,b.useRef)(n);(0,b.useEffect)(()=>{t.current=n},[n]),(0,b.useEffect)(()=>(s.current=!0,()=>{s.current=!1}),[]),(0,b.useEffect)(()=>()=>{r.current&&clearInterval(r.current)},[]);let u=(0,b.useCallback)(()=>{r.current&&(i.debug("stopping polling"),clearInterval(r.current),r.current=null)},[]),v=(0,b.useCallback)(a=>{u(),i.debug(`starting polling for "${a}" every 3000ms`),r.current=setInterval(async()=>{let b;if(!s.current)return void u();try{b=await h(a)}catch(b){i.warn(`poll fetch failed for "${a}":`,b),s.current&&(o(null),q(null),u());return}s.current&&(b&&"Stopped"!==b.state?(b.state!==t.current&&i.info(`poll state changed: ${t.current} → ${b.state}, url=${b.url}`),o(b.state),q(b.url)):(i.info(`poll result: ${b?`state=${b.state}`:"null (deployment gone)"} — stopping poll`),o(null),q(null),u()))},3e3)},[u]),w=(0,b.useCallback)(async()=>{if(!a)return void i.warn("deploy() called but input is null — no-op");if(c)return void i.warn("deploy() called but already loading — no-op");i.info(`deploy() — targetType="${a.targetType}", targetId="${a.targetId}", repositoryPath="${a.repositoryPath}"`),d(!0),m(null);try{let b="feature"===a.targetType?await e(a.targetId):await f(a.repositoryPath);if(i.info("server action result:",b),!s.current)return void i.warn("component unmounted after deploy — discarding result");if(b.success)i.info(`deploy succeeded — initial state=${b.state}, starting polling`),o(b.state??null),q(null),v(a.targetId);else{let a=b.error??"An unexpected error occurred";i.warn(`deploy failed: ${a}`),m(a)}}catch(b){if(!s.current)return;let a=b instanceof Error?b.message:"An unexpected error occurred";i.error(`deploy threw exception: ${a}`,b),m(a)}finally{s.current&&d(!1)}},[a,c,v]),x=(0,b.useCallback)(async()=>{if(a&&!j){i.info(`stop() — targetId="${a.targetId}"`),k(!0);try{let b=await g(a.targetId);if(i.info("stop result:",b),!s.current)return;b.success&&(u(),o(null),q(null))}catch(a){i.warn("stop error (non-critical):",a)}finally{s.current&&k(!1)}}},[a,j,u]);return{deploy:w,stop:x,deployLoading:c,stopLoading:j,deployError:l,status:n,url:p}}a.s(["useDeployAction",()=>j],18662)},69029,85080,49235,2824,a=>{"use strict";let b;a.i(5623),a.s([],69029);var c=a.i(10973),d=a.i(96960),e=a.i(88064),f=a.i(71238),g=a.i(63698),h=a.i(46847),i=a.i(82934),j=a.i(45670),k=a.i(25674);let l=(0,k.createServerReference)("40dce52ff1405c3189166dbd3fdf2d630ab97f55b2",k.callServer,void 0,k.findSourceMapURL,"getDeploymentLogs");function m({open:a,onOpenChange:b,targetId:e}){let{logs:f,isConnected:g}=function(a){let[b,c]=(0,d.useState)([]),[e,f]=(0,d.useState)(!1),g=(0,d.useRef)(null),h=(0,d.useCallback)(()=>{g.current&&(g.current.close(),g.current=null),f(!1)},[]);return(0,d.useEffect)(()=>{if(!a){c([]),f(!1);return}l(a).then(a=>{a&&c(a)}).catch(()=>{});let b=new EventSource(`/api/deployment-logs?targetId=${a}`);return g.current=b,b.onopen=()=>{f(!0)},b.addEventListener("log",a=>{let b=JSON.parse(a.data);c(a=>[...a,b])}),b.onerror=()=>{f(!1)},()=>{b.close(),g.current=null}},[a,h]),{logs:b,isConnected:e}}(a?e:null);return(0,c.jsx)(n,{open:a,onOpenChange:b,logs:f,isConnected:g})}function n({open:a,onOpenChange:b,logs:e,isConnected:f}){let h=(0,d.useRef)(null),i=(0,d.useRef)(!0),k=(0,d.useCallback)(()=>{let a=h.current;a&&(i.current=a.scrollTop+a.clientHeight>=a.scrollHeight-50)},[]);return(0,d.useEffect)(()=>{i.current&&h.current&&(h.current.scrollTop=h.current.scrollHeight)},[e]),(0,c.jsx)(j.Dialog,{open:a,onOpenChange:b,children:(0,c.jsxs)(j.DialogContent,{className:"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg","aria-describedby":void 0,children:[(0,c.jsxs)(j.DialogHeader,{className:"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3",children:[(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)(g.Terminal,{className:"h-4 w-4 text-zinc-400"}),(0,c.jsx)(j.DialogTitle,{className:"text-sm font-medium text-zinc-100",children:"Server Logs"})]}),(0,c.jsxs)("div",{className:"flex items-center gap-2 pe-8",children:[(0,c.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${f?"bg-green-500":"bg-zinc-500"}`}),(0,c.jsx)("span",{className:"text-xs text-zinc-400",children:f?"Connected":"Disconnected"})]})]}),(0,c.jsxs)("div",{ref:h,onScroll:k,className:"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed",children:[0===e.length?(0,c.jsx)("p",{className:"text-zinc-500",children:"Waiting for log output..."}):e.map(a=>(0,c.jsx)(o,{entry:a},`${a.timestamp}-${a.stream}-${a.line}`)),!f&&e.length>0&&(0,c.jsx)("div",{className:"mt-2 border-t border-zinc-800 pt-2 text-zinc-500",children:"[Server stopped]"})]})]})})}function o({entry:a}){return(0,c.jsx)("div",{"data-stream":a.stream,className:"stderr"===a.stream?"text-red-400":"text-zinc-200",children:(0,c.jsx)("span",{className:"break-all whitespace-pre-wrap",children:a.line})})}let p="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-7 items-center justify-center rounded-[3px]";function q({status:a,url:b,targetId:j}){let[k,l]=(0,d.useState)(!1),n=j&&(a===h.DeploymentState.Booting||a===h.DeploymentState.Ready);switch(a){case h.DeploymentState.Booting:return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"flex items-center gap-1 pl-1",children:[(0,c.jsx)(e.Loader2,{className:"size-3 animate-spin text-blue-500"}),(0,c.jsx)("span",{className:"text-muted-foreground text-[11px]",children:"Starting..."}),n?(0,c.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,c.jsxs)(i.Tooltip,{children:[(0,c.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,c.jsx)("button",{type:"button","aria-label":"View server logs",className:p,onClick:a=>{a.stopPropagation(),l(!0)},children:(0,c.jsx)(g.Terminal,{className:"size-3.5"})})}),(0,c.jsx)(i.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),n?(0,c.jsx)(m,{open:k,onOpenChange:l,targetId:j}):null]});case h.DeploymentState.Ready:return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("div",{className:"flex translate-y-px items-center gap-1 pl-1",children:[(0,c.jsx)("span",{className:"inline-block size-1.5 rounded-full bg-green-500"}),b?(0,c.jsxs)("a",{href:b,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-0.5 text-[11px] text-green-600 hover:text-green-500 dark:text-green-400 dark:hover:text-green-300",onClick:a=>a.stopPropagation(),children:[b,(0,c.jsx)(f.ExternalLink,{className:"size-2.5 shrink-0"})]}):(0,c.jsx)("span",{className:"text-[11px] text-green-600 dark:text-green-400",children:"Ready"}),n?(0,c.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,c.jsxs)(i.Tooltip,{children:[(0,c.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,c.jsx)("button",{type:"button","aria-label":"View server logs",className:p,onClick:a=>{a.stopPropagation(),l(!0)},children:(0,c.jsx)(g.Terminal,{className:"size-3.5"})})}),(0,c.jsx)(i.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),n?(0,c.jsx)(m,{open:k,onOpenChange:l,targetId:j}):null]});default:return null}}a.s(["DeploymentStatusBadge",()=>q],85080),a.s([],49235);var r=a.i(10568),s=a.i(40093);let t=d.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),u=()=>{let a=d.default.useContext(t);if(!a)throw Error("useDrawerContext must be used within a Drawer.Root");return a};function v(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function w(){return x(/^iPhone/)||x(/^iPad/)||x(/^Mac/)&&navigator.maxTouchPoints>1}function x(a){}!function(a){if(!a||"u"<typeof document)return;let b=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",b.appendChild(c),c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let y=d.useEffect;"u">typeof document&&window.visualViewport;let z=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),A=0;function B(...a){return d.useCallback(function(...a){return b=>a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})}(...a),a)}let C=new WeakMap;function D(a,b,c=!1){if(!a||!(a instanceof HTMLElement))return;let d={};Object.entries(b).forEach(([b,c])=>{b.startsWith("--")?a.style.setProperty(b,c):(d[b]=a.style[b],a.style[b]=c)}),c||C.set(a,d)}let E=a=>{switch(a){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return a}};function F(a,b){if(!a)return null;let c=window.getComputedStyle(a),d=c.transform||c.webkitTransform||c.mozTransform,e=d.match(/^matrix3d\((.+)\)$/);return e?parseFloat(e[1].split(", ")[E(b)?13:12]):(e=d.match(/^matrix\((.+)\)$/))?parseFloat(e[1].split(", ")[E(b)?5:4]):null}function G(a,b){if(!a)return()=>{};let c=a.style.cssText;return Object.assign(a.style,b),()=>{a.style.cssText=c}}let H=[.32,.72,0,1],I="vaul-dragging";function J(a){let b=d.default.useRef(a);return d.default.useEffect(()=>{b.current=a}),d.default.useMemo(()=>(...a)=>null==b.current?void 0:b.current.call(b,...a),[])}function K({prop:a,defaultProp:b,onChange:c=()=>{}}){let[e,f]=function({defaultProp:a,onChange:b}){let c=d.default.useState(a),[e]=c,f=d.default.useRef(e),g=J(b);return d.default.useEffect(()=>{f.current!==e&&(g(e),f.current=e)},[e,f,g]),c}({defaultProp:b,onChange:c}),g=void 0!==a,h=g?a:e,i=J(c);return[h,d.default.useCallback(b=>{if(g){let c="function"==typeof b?b(a):b;c!==a&&i(c)}else f(b)},[g,a,f,i])]}let L=()=>()=>{},M=null;function N({open:a,onOpenChange:c,children:e,onDrag:f,onRelease:g,snapPoints:h,shouldScaleBackground:i=!1,setBackgroundColorOnScale:j=!0,closeThreshold:k=.25,scrollLockTimeout:l=100,dismissible:m=!0,handleOnly:n=!1,fadeFromIndex:o=h&&h.length-1,activeSnapPoint:p,setActiveSnapPoint:q,fixed:r,modal:u=!0,onClose:x,nested:B,noBodyStyles:G=!1,direction:J="bottom",defaultOpen:L=!1,disablePreventScroll:N=!0,snapToSequentialPoint:O=!1,preventScrollRestoration:P=!1,repositionInputs:Q=!0,onAnimationEnd:R,container:S,autoFocus:T=!1}){var U,V;let[W=!1,X]=K({defaultProp:L,prop:a,onChange:a=>{null==c||c(a),a||B||aA(),setTimeout(()=>{null==R||R(a)},500),a||(document.body.style.pointerEvents="auto")}}),[Y,Z]=d.default.useState(!1),[$,_]=d.default.useState(!1),[aa,ab]=d.default.useState(!1),ac=d.default.useRef(null),ad=d.default.useRef(null),ae=d.default.useRef(null),af=d.default.useRef(null),ag=d.default.useRef(null),ah=d.default.useRef(!1),ai=d.default.useRef(null),aj=d.default.useRef(0),ak=d.default.useRef(!1),al=d.default.useRef(!L),am=d.default.useRef(0),an=d.default.useRef(null),ao=d.default.useRef((null==(U=an.current)?void 0:U.getBoundingClientRect().height)||0),ap=d.default.useRef((null==(V=an.current)?void 0:V.getBoundingClientRect().width)||0),aq=d.default.useRef(0),ar=d.default.useCallback(a=>{h&&a===aw.length-1&&(ad.current=new Date)},[]),{activeSnapPoint:as,activeSnapPointIndex:at,setActiveSnapPoint:au,onRelease:av,snapPointsOffset:aw,onDrag:ax,shouldFade:ay,getPercentageDragged:az}=function({activeSnapPointProp:a,setActiveSnapPointProp:b,snapPoints:c,drawerRef:e,overlayRef:f,fadeFromIndex:g,onSnapPointChange:h,direction:i="bottom",container:j,snapToSequentialPoint:k}){let[l,m]=K({prop:a,defaultProp:null==c?void 0:c[0],onChange:b}),[n,o]=d.default.useState(void 0);d.default.useEffect(()=>{function a(){o({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);let p=d.default.useMemo(()=>l===(null==c?void 0:c[c.length-1])||null,[c,l]),q=d.default.useMemo(()=>{var a;return null!=(a=null==c?void 0:c.findIndex(a=>a===l))?a:null},[c,l]),r=c&&c.length>0&&(g||0===g)&&!Number.isNaN(g)&&c[g]===l||!c,s=d.default.useMemo(()=>{var a;let b=j?{width:j.getBoundingClientRect().width,height:j.getBoundingClientRect().height}:{width:0,height:0};return null!=(a=null==c?void 0:c.map(a=>{let c="string"==typeof a,d=0;if(c&&(d=parseInt(a,10)),E(i)){let e=c?d:n?a*b.height:0;return n?"bottom"===i?b.height-e:-b.height+e:e}let e=c?d:n?a*b.width:0;return n?"right"===i?b.width-e:-b.width+e:e}))?a:[]},[c,n,j]),t=d.default.useMemo(()=>null!==q?null==s?void 0:s[q]:null,[s,q]),u=d.default.useCallback(a=>{var b;let d=null!=(b=null==s?void 0:s.findIndex(b=>b===a))?b:null;h(d),D(e.current,{transition:`transform 0.5s cubic-bezier(${H.join(",")})`,transform:E(i)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`}),s&&d!==s.length-1&&void 0!==g&&d!==g&&d<g?D(f.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`,opacity:"0"}):D(f.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`,opacity:"1"}),m(null==c?void 0:c[Math.max(d,0)])},[e.current,c,s,g,f,m]);return d.default.useEffect(()=>{if(l||a){var b;let d=null!=(b=null==c?void 0:c.findIndex(b=>b===a||b===l))?b:-1;s&&-1!==d&&"number"==typeof s[d]&&u(s[d])}},[l,a,c,s,u]),{isLastSnapPoint:p,activeSnapPoint:l,shouldFade:r,getPercentageDragged:function(a,b){if(!c||"number"!=typeof q||!s||void 0===g)return null;let d=q===g-1;if(q>=g&&b)return 0;if(d&&!b)return 1;if(!r&&!d)return null;let e=d?q+1:q-1,f=a/Math.abs(d?s[e]-s[e-1]:s[e+1]-s[e]);return d?1-f:f},setActiveSnapPoint:m,activeSnapPointIndex:q,onRelease:function({draggedDistance:a,closeDrawer:b,velocity:d,dismissible:e}){if(void 0===g)return;let h="bottom"===i||"right"===i?(null!=t?t:0)-a:(null!=t?t:0)+a,j=q===g-1,l=0===q,m=a>0;if(j&&D(f.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`}),!k&&d>2&&!m)return void(e?b():u(s[0]));if(!k&&d>2&&m&&s&&c)return void u(s[c.length-1]);let n=null==s?void 0:s.reduce((a,b)=>"number"!=typeof a||"number"!=typeof b?a:Math.abs(b-h)<Math.abs(a-h)?b:a),o=E(i)?window.innerHeight:window.innerWidth;if(d>.4&&Math.abs(a)<.4*o){let a=m?1:-1;return a>0&&p&&c?void u(s[c.length-1]):void(l&&a<0&&e&&b(),null===q||u(s[q+a]))}u(n)},onDrag:function({draggedDistance:a}){if(null===t)return;let b="bottom"===i||"right"===i?t-a:t+a;("bottom"===i||"right"===i)&&b<s[s.length-1]||("top"===i||"left"===i)&&b>s[s.length-1]||D(e.current,{transform:E(i)?`translate3d(0, ${b}px, 0)`:`translate3d(${b}px, 0, 0)`})},snapPointsOffset:s}}({snapPoints:h,activeSnapPointProp:p,setActiveSnapPointProp:q,drawerRef:an,fadeFromIndex:o,overlayRef:ac,onSnapPointChange:ar,direction:J,container:S,snapToSequentialPoint:O});!function(a={}){let{isDisabled:c}=a;y(()=>{if(!c)return 1==++A&&w(),()=>{0==--A&&(null==b||b())}},[c])}({isDisabled:!W||$||!u||aa||!Y||!Q||!N});let{restorePositionSetting:aA}=function({isOpen:a,modal:b,nested:c,hasBeenOpened:e,preventScrollRestoration:f,noBodyStyles:g}){let[h,i]=d.default.useState(()=>""),j=d.default.useRef(0),k=d.default.useCallback(()=>{if(v()&&null===M&&a&&!g){M={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:a,innerHeight:b}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-j.current}px`,left:`${-a}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let a=b-window.innerHeight;a&&j.current>=b&&(document.body.style.top=`${-(j.current+a)}px`)}),300)}},[a]),l=d.default.useCallback(()=>{if(v()&&null!==M&&!g){let a=-parseInt(document.body.style.top,10),b=-parseInt(document.body.style.left,10);Object.assign(document.body.style,M),window.requestAnimationFrame(()=>{f&&h!==window.location.href?i(window.location.href):window.scrollTo(b,a)}),M=null}},[h]);return d.default.useEffect(()=>{function a(){j.current=window.scrollY}return a(),window.addEventListener("scroll",a),()=>{window.removeEventListener("scroll",a)}},[]),d.default.useEffect(()=>{if(b)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||l()}},[b,l]),d.default.useEffect(()=>{!c&&e&&(a?(window.matchMedia("(display-mode: standalone)").matches||k(),b||window.setTimeout(()=>{l()},500)):l())},[a,e,h,b,c,k,l]),{restorePositionSetting:l}}({isOpen:W,modal:u,nested:null!=B&&B,hasBeenOpened:Y,preventScrollRestoration:P,noBodyStyles:G});function aB(){return(window.innerWidth-26)/window.innerWidth}function aC(a,b){var c;let d=a,e=null==(c=window.getSelection())?void 0:c.toString(),f=an.current?F(an.current,J):null,g=new Date;if("SELECT"===d.tagName||d.hasAttribute("data-vaul-no-drag")||d.closest("[data-vaul-no-drag]"))return!1;if("right"===J||"left"===J)return!0;if(ad.current&&g.getTime()-ad.current.getTime()<500)return!1;if(null!==f&&("bottom"===J?f>0:f<0))return!0;if(e&&e.length>0)return!1;if(ag.current&&g.getTime()-ag.current.getTime()<l&&0===f||b)return ag.current=g,!1;for(;d;){if(d.scrollHeight>d.clientHeight){if(0!==d.scrollTop)return ag.current=new Date,!1;if("dialog"===d.getAttribute("role"))break}d=d.parentNode}return!0}function aD(a){$&&an.current&&(an.current.classList.remove(I),ah.current=!1,_(!1),af.current=new Date),null==x||x(),a||X(!1),setTimeout(()=>{h&&au(h[0])},500)}function aE(){if(!an.current)return;let a=document.querySelector("[data-vaul-drawer-wrapper]"),b=F(an.current,J);D(an.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${H.join(",")})`}),D(ac.current,{transition:`opacity 0.5s cubic-bezier(${H.join(",")})`,opacity:"1"}),i&&b&&b>0&&W&&D(a,{borderRadius:"8px",overflow:"hidden",...E(J)?{transform:`scale(${aB()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${aB()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${H.join(",")})`},!0)}return d.default.useEffect(()=>{window.requestAnimationFrame(()=>{al.current=!0})},[]),d.default.useEffect(()=>{var a;function b(){var a,b;if(an.current&&Q&&((a=document.activeElement)instanceof HTMLInputElement&&!z.has(a.type)||a instanceof HTMLTextAreaElement||a instanceof HTMLElement&&a.isContentEditable||ak.current)){let a=(null==(b=window.visualViewport)?void 0:b.height)||0,c=window.innerHeight,d=c-a,e=an.current.getBoundingClientRect().height||0;aq.current||(aq.current=e);let f=an.current.getBoundingClientRect().top;if(Math.abs(am.current-d)>60&&(ak.current=!ak.current),h&&h.length>0&&aw&&at&&(d+=aw[at]||0),am.current=d,e>a||ak.current){let b=an.current.getBoundingClientRect().height,g=b;b>a&&(g=a-(e>.8*c?f:26)),r?an.current.style.height=`${b-Math.max(d,0)}px`:an.current.style.height=`${Math.max(g,a-f)}px`}else navigator.userAgent,an.current.style.height=`${aq.current}px`;h&&h.length>0&&!ak.current?an.current.style.bottom="0px":an.current.style.bottom=`${Math.max(d,0)}px`}}return null==(a=window.visualViewport)||a.addEventListener("resize",b),()=>{var a;return null==(a=window.visualViewport)?void 0:a.removeEventListener("resize",b)}},[at,h,aw]),d.default.useEffect(()=>(W&&(D(document.documentElement,{scrollBehavior:"auto"}),ad.current=new Date),()=>{!function(a,b){if(!a||!(a instanceof HTMLElement))return;let c=C.get(a);c&&(a.style[b]=c[b])}(document.documentElement,"scrollBehavior")}),[W]),d.default.useEffect(()=>{u||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[u]),d.default.createElement(s.Root,{defaultOpen:L,onOpenChange:a=>{(m||a)&&(a?Z(!0):aD(!0),X(a))},open:W},d.default.createElement(t.Provider,{value:{activeSnapPoint:as,snapPoints:h,setActiveSnapPoint:au,drawerRef:an,overlayRef:ac,onOpenChange:c,onPress:function(a){var b,c;!m&&!h||(!an.current||an.current.contains(a.target))&&(ao.current=(null==(b=an.current)?void 0:b.getBoundingClientRect().height)||0,ap.current=(null==(c=an.current)?void 0:c.getBoundingClientRect().width)||0,_(!0),ae.current=new Date,w(),a.target.setPointerCapture(a.pointerId),aj.current=E(J)?a.pageY:a.pageX)},onRelease:function(a){var b,c;if(!$||!an.current)return;an.current.classList.remove(I),ah.current=!1,_(!1),af.current=new Date;let d=F(an.current,J);if(!a||!aC(a.target,!1)||!d||Number.isNaN(d)||null===ae.current)return;let e=af.current.getTime()-ae.current.getTime(),f=aj.current-(E(J)?a.pageY:a.pageX),i=Math.abs(f)/e;if(i>.05&&(ab(!0),setTimeout(()=>{ab(!1)},200)),h){av({draggedDistance:f*("bottom"===J||"right"===J?1:-1),closeDrawer:aD,velocity:i,dismissible:m}),null==g||g(a,!0);return}if("bottom"===J||"right"===J?f>0:f<0){aE(),null==g||g(a,!0);return}if(i>.4){aD(),null==g||g(a,!1);return}let j=Math.min(null!=(b=an.current.getBoundingClientRect().height)?b:0,window.innerHeight),l=Math.min(null!=(c=an.current.getBoundingClientRect().width)?c:0,window.innerWidth);if(Math.abs(d)>=("left"===J||"right"===J?l:j)*k){aD(),null==g||g(a,!1);return}null==g||g(a,!0),aE()},onDrag:function(a){if(an.current&&$){let b="bottom"===J||"right"===J?1:-1,c=(aj.current-(E(J)?a.pageY:a.pageX))*b,d=c>0,e=h&&!m&&!d;if(e&&0===at)return;let g=Math.abs(c),j=document.querySelector("[data-vaul-drawer-wrapper]"),k=g/("bottom"===J||"top"===J?ao.current:ap.current),l=az(g,d);if(null!==l&&(k=l),e&&k>=1||!ah.current&&!aC(a.target,d))return;if(an.current.classList.add(I),ah.current=!0,D(an.current,{transition:"none"}),D(ac.current,{transition:"none"}),h&&ax({draggedDistance:c}),d&&!h){let a=Math.min(-(8*(Math.log(c+1)-2)*1),0)*b;D(an.current,{transform:E(J)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`});return}let n=1-k;if((ay||o&&at===o-1)&&(null==f||f(a,k),D(ac.current,{opacity:`${n}`,transition:"none"},!0)),j&&ac.current&&i){let a=Math.min(aB()+k*(1-aB()),1),b=8-8*k,c=Math.max(0,14-14*k);D(j,{borderRadius:`${b}px`,transform:E(J)?`scale(${a}) translate3d(0, ${c}px, 0)`:`scale(${a}) translate3d(${c}px, 0, 0)`,transition:"none"},!0)}if(!h){let a=g*b;D(an.current,{transform:E(J)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})}}},dismissible:m,shouldAnimate:al,handleOnly:n,isOpen:W,isDragging:$,shouldFade:ay,closeDrawer:aD,onNestedDrag:function(a,b){if(b<0)return;let c=(window.innerWidth-16)/window.innerWidth,d=c+b*(1-c),e=-16+16*b;D(an.current,{transform:E(J)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(a){let b=a?(window.innerWidth-16)/window.innerWidth:1,c=a?-16:0;ai.current&&window.clearTimeout(ai.current),D(an.current,{transition:`transform 0.5s cubic-bezier(${H.join(",")})`,transform:E(J)?`scale(${b}) translate3d(0, ${c}px, 0)`:`scale(${b}) translate3d(${c}px, 0, 0)`}),!a&&an.current&&(ai.current=setTimeout(()=>{let a=F(an.current,J);D(an.current,{transition:"none",transform:E(J)?`translate3d(0, ${a}px, 0)`:`translate3d(${a}px, 0, 0)`})},500))},onNestedRelease:function(a,b){let c=E(J)?window.innerHeight:window.innerWidth,d=b?(c-16)/c:1,e=b?-16:0;b&&D(an.current,{transition:`transform 0.5s cubic-bezier(${H.join(",")})`,transform:E(J)?`scale(${d}) translate3d(0, ${e}px, 0)`:`scale(${d}) translate3d(${e}px, 0, 0)`})},keyboardIsOpen:ak,modal:u,snapPointsOffset:aw,activeSnapPointIndex:at,direction:J,shouldScaleBackground:i,setBackgroundColorOnScale:j,noBodyStyles:G,container:S,autoFocus:T}},e))}let O=d.default.forwardRef(function({...a},b){let{overlayRef:c,snapPoints:e,onRelease:f,shouldFade:g,isOpen:h,modal:i,shouldAnimate:j}=u(),k=B(b,c),l=e&&e.length>0;if(!i)return null;let m=d.default.useCallback(a=>f(a),[f]);return d.default.createElement(s.Overlay,{onMouseUp:m,ref:k,"data-vaul-overlay":"","data-vaul-snap-points":h&&l?"true":"false","data-vaul-snap-points-overlay":h&&g?"true":"false","data-vaul-animate":(null==j?void 0:j.current)?"true":"false",...a})});O.displayName="Drawer.Overlay";let P=d.default.forwardRef(function({onPointerDownOutside:a,style:b,onOpenAutoFocus:c,...e},f){let{drawerRef:g,onPress:h,onRelease:i,onDrag:j,keyboardIsOpen:k,snapPointsOffset:l,activeSnapPointIndex:m,modal:n,isOpen:o,direction:p,snapPoints:q,container:r,handleOnly:t,shouldAnimate:v,autoFocus:w}=u(),[x,y]=d.default.useState(!1),z=B(f,g),A=d.default.useRef(null),C=d.default.useRef(null),D=d.default.useRef(!1),F=q&&q.length>0;function I(a){A.current=null,D.current=!1,i(a)}return!function(){let{direction:a,isOpen:b,shouldScaleBackground:c,setBackgroundColorOnScale:e,noBodyStyles:f}=u(),g=d.default.useRef(null),h=(0,d.useMemo)(()=>document.body.style.backgroundColor,[]);function i(){return(window.innerWidth-26)/window.innerWidth}d.default.useEffect(()=>{if(b&&c){g.current&&clearTimeout(g.current);let b=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!b)return;!function(...a){}(e&&!f?G(document.body,{background:"black"}):L,G(b,{transformOrigin:E(a)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${H.join(",")})`}));let c=G(b,{borderRadius:"8px",overflow:"hidden",...E(a)?{transform:`scale(${i()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${i()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{c(),g.current=window.setTimeout(()=>{h?document.body.style.background=h:document.body.style.removeProperty("background")},500)}}},[b,c,h])}(),d.default.useEffect(()=>{F&&window.requestAnimationFrame(()=>{y(!0)})},[]),d.default.createElement(s.Content,{"data-vaul-drawer-direction":p,"data-vaul-drawer":"","data-vaul-delayed-snap-points":x?"true":"false","data-vaul-snap-points":o&&F?"true":"false","data-vaul-custom-container":r?"true":"false","data-vaul-animate":(null==v?void 0:v.current)?"true":"false",...e,ref:z,style:l&&l.length>0?{"--snap-point-height":`${l[null!=m?m:0]}px`,...b}:b,onPointerDown:a=>{t||(null==e.onPointerDown||e.onPointerDown.call(e,a),A.current={x:a.pageX,y:a.pageY},h(a))},onOpenAutoFocus:a=>{null==c||c(a),w||a.preventDefault()},onPointerDownOutside:b=>{(null==a||a(b),!n||b.defaultPrevented)?b.preventDefault():k.current&&(k.current=!1)},onFocusOutside:a=>{if(!n)return void a.preventDefault()},onPointerMove:a=>{if(C.current=a,t||(null==e.onPointerMove||e.onPointerMove.call(e,a),!A.current))return;let b=a.pageY-A.current.y,c=a.pageX-A.current.x,d="touch"===a.pointerType?10:2;((a,b,c=0)=>{if(D.current)return!0;let d=Math.abs(a.y),e=Math.abs(a.x),f=e>d,g=["bottom","right"].includes(b)?1:-1;if("left"===b||"right"===b){if(!(a.x*g<0)&&e>=0&&e<=c)return f}else if(!(a.y*g<0)&&d>=0&&d<=c)return!f;return D.current=!0,!0})({x:c,y:b},p,d)?j(a):(Math.abs(c)>d||Math.abs(b)>d)&&(A.current=null)},onPointerUp:a=>{null==e.onPointerUp||e.onPointerUp.call(e,a),A.current=null,D.current=!1,i(a)},onPointerOut:a=>{null==e.onPointerOut||e.onPointerOut.call(e,a),I(C.current)},onContextMenu:a=>{null==e.onContextMenu||e.onContextMenu.call(e,a),C.current&&I(C.current)}})});P.displayName="Drawer.Content";let Q=d.default.forwardRef(function({preventCycle:a=!1,children:b,...c},e){let{closeDrawer:f,isDragging:g,snapPoints:h,activeSnapPoint:i,setActiveSnapPoint:j,dismissible:k,handleOnly:l,isOpen:m,onPress:n,onDrag:o}=u(),p=d.default.useRef(null),q=d.default.useRef(!1);function r(){p.current&&window.clearTimeout(p.current),q.current=!1}return d.default.createElement("div",{onClick:function(){q.current?r():window.setTimeout(()=>{!function(){if(g||a||q.current)return r();if(r(),!h||0===h.length){k||f();return}if(i===h[h.length-1]&&k)return f();let b=h.findIndex(a=>a===i);-1===b||j(h[b+1])}()},120)},onPointerCancel:r,onPointerDown:a=>{l&&n(a),p.current=window.setTimeout(()=>{q.current=!0},250)},onPointerMove:a=>{l&&o(a)},ref:e,"data-vaul-drawer-visible":m?"true":"false","data-vaul-handle":"","aria-hidden":"true",...c},d.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},b))});Q.displayName="Drawer.Handle";let R={Root:N,NestedRoot:function({onDrag:a,onOpenChange:b,open:c,...e}){let{onNestedDrag:f,onNestedOpenChange:g,onNestedRelease:h}=u();if(!f)throw Error("Drawer.NestedRoot must be placed in another drawer");return d.default.createElement(N,{nested:!0,open:c,onClose:()=>{g(!1)},onDrag:(b,c)=>{f(b,c),null==a||a(b,c)},onOpenChange:a=>{a&&g(a),null==b||b(a)},onRelease:h,...e})},Content:P,Overlay:O,Trigger:s.Trigger,Portal:function(a){let b=u(),{container:c=b.container,...e}=a;return d.default.createElement(s.Portal,{container:c,...e})},Handle:Q,Close:s.Close,Title:s.Title,Description:s.Description};var S=a.i(85536);function T({...a}){return(0,c.jsx)(R.Root,{"data-slot":"drawer",...a})}function U({...a}){return(0,c.jsx)(R.Portal,{"data-slot":"drawer-portal",...a})}function V({className:a,...b}){return(0,c.jsx)(R.Overlay,{"data-slot":"drawer-overlay",className:(0,S.cn)("fixed inset-0 z-50 bg-black/50",a),...b})}function W({className:a,children:b,direction:d="bottom",showCloseButton:e=!0,...f}){return(0,c.jsx)(U,{children:(0,c.jsxs)(R.Content,{"data-slot":"drawer-content",className:(0,S.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===d&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===d&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===d&&"inset-y-0 right-0 h-full w-3/4 border-l","left"===d&&"inset-y-0 left-0 h-full w-3/4 border-r",a),style:{"--initial-transform":"calc(100% + 8px)",userSelect:"text",...f.style??{}},...f,children:[b,e?(0,c.jsxs)(R.Close,{className:"ring-offset-background focus:ring-ring absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,c.jsx)(r.XIcon,{className:"size-4"}),(0,c.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function X({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-header",className:(0,S.cn)("flex flex-col gap-1.5 p-4",a),...b})}function Y({className:a,...b}){return(0,c.jsx)("div",{"data-slot":"drawer-footer",className:(0,S.cn)("mt-auto flex flex-col gap-2 p-4",a),...b})}function Z({className:a,...b}){return(0,c.jsx)(R.Title,{"data-slot":"drawer-title",className:(0,S.cn)("text-foreground font-semibold",a),...b})}function $({className:a,...b}){return(0,c.jsx)(R.Description,{"data-slot":"drawer-description",className:(0,S.cn)("text-muted-foreground text-sm",a),...b})}a.s(["Drawer",()=>T,"DrawerContent",()=>W,"DrawerDescription",()=>$,"DrawerFooter",()=>Y,"DrawerHeader",()=>X,"DrawerOverlay",()=>V,"DrawerTitle",()=>Z],2824)},24255,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(10568),e=a.i(50490),f=a.i(5698),g=a.i(42261),h=a.i(85536);a.i(69029);var i=a.i(5623);a.i(49235);var j=a.i(85080),k=a.i(2824),l=a.i(13126),m=a.i(82934);a.i(90370);var n=a.i(24640),o=a.i(18662),p=a.i(21333);let q=(0,g.cva)("",{variants:{size:{sm:"w-96",md:"w-2xl",lg:"w-[772px]"}},defaultVariants:{size:"sm"}});function r({open:a,onClose:e,modal:f=!1,dismissOnOutsideClick:g=!1,title:i="Drawer",size:j,header:m,children:o,footer:r,className:t,"data-testid":u,deployTarget:v}){let{i18n:w}=(0,n.useTranslation)(),x=(0,p.useFeatureFlags)(),y=(0,c.useRef)(null),z="rtl"===w.dir()?"left":"right";return(0,c.useEffect)(()=>{if(!a||f)return;let b=a=>{let b=a.target;!document.body.contains(b)||y.current?.contains(b)||b.closest(g?'[role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]':'[data-no-drawer-close], [role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]')||e()};return document.addEventListener("click",b),()=>document.removeEventListener("click",b)},[a,f,e,g]),(0,b.jsxs)(k.Drawer,{direction:z,modal:f,handleOnly:!0,open:a,onOpenChange:a=>{a||e()},children:[f?(0,b.jsx)(k.DrawerOverlay,{}):null,(0,b.jsxs)(k.DrawerContent,{ref:y,direction:z,showCloseButton:!1,className:(0,h.cn)(q({size:j}),"bg-white/85 backdrop-blur-xl dark:bg-neutral-800/85",t),"data-testid":u,onInteractOutside:f?void 0:a=>a.preventDefault(),children:[(0,b.jsx)(k.DrawerTitle,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsx)(k.DrawerDescription,{asChild:!0,children:(0,b.jsx)("span",{className:"sr-only",children:i})}),(0,b.jsxs)("button",{type:"button","aria-label":"Close",onClick:e,className:"ring-offset-background focus:ring-ring absolute end-3 top-2 z-50 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden","data-testid":u?`${u}-close-button`:void 0,children:[(0,b.jsx)(d.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}),m?(0,b.jsx)(k.DrawerHeader,{className:"shrink-0",children:m}):null,m?(0,b.jsx)(l.Separator,{}):null,x.envDeploy&&v?(0,b.jsx)(s,{deployTarget:v}):null,(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:o}),r?(0,b.jsx)(k.DrawerFooter,{className:"shrink-0",children:r}):null]})]})}function s({deployTarget:a}){let c=(0,o.useDeployAction)(a),d="Booting"===c.status||"Ready"===c.status;return(0,b.jsxs)("div",{"data-testid":"base-drawer-deploy-bar",className:"flex items-center gap-2 px-4 pt-3 pb-3",children:[(0,b.jsx)(m.TooltipProvider,{children:(0,b.jsxs)(m.Tooltip,{children:[(0,b.jsx)(m.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{children:(0,b.jsx)(i.ActionButton,{label:d?"Stop Dev Server":"Start Dev Server",onClick:d?c.stop:c.deploy,loading:c.deployLoading||c.stopLoading,error:!!c.deployError,icon:d?f.Square:e.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,b.jsx)(m.TooltipContent,{children:d?"Stop Dev Server":"Start Dev Server"})]})}),d?(0,b.jsx)(j.DeploymentStatusBadge,{status:c.status,url:c.url,targetId:a.targetId}):null]})}a.s(["BaseDrawer",()=>r])}];
2
2
 
3
3
  //# sourceMappingURL=_05c23ad9._.js.map