@shepai/cli 1.118.0 → 1.119.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/apis/json-schema/PhaseTiming.yaml +22 -1
  2. package/apis/json-schema/WorkflowConfig.yaml +10 -0
  3. package/dist/packages/core/src/application/ports/output/agents/agent-session-repository.interface.d.ts +2 -0
  4. package/dist/packages/core/src/application/ports/output/agents/agent-session-repository.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts +3 -3
  6. package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +2 -1
  8. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  9. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  10. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
  11. package/dist/packages/core/src/domain/generated/output.d.ts +37 -1
  12. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -0
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/037-add-ci-watch-enabled.d.ts +11 -0
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/037-add-ci-watch-enabled.d.ts.map +1 -0
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/037-add-ci-watch-enabled.js +15 -0
  19. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/038-add-phase-execution-metadata.d.ts +11 -0
  20. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/038-add-phase-execution-metadata.d.ts.map +1 -0
  21. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/038-add-phase-execution-metadata.js +27 -0
  22. package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts +1 -1
  23. package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts.map +1 -1
  24. package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.js +32 -0
  25. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.d.ts.map +1 -1
  26. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.js +8 -1
  27. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.d.ts.map +1 -1
  28. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.js +3 -2
  29. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  30. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +29 -7
  31. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  32. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +19 -8
  33. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts +5 -10
  34. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
  35. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +5 -73
  36. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.d.ts +17 -3
  37. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.d.ts.map +1 -1
  38. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/phase-timing-context.js +11 -3
  39. package/dist/packages/core/src/infrastructure/services/agents/sessions/claude-code-session.repository.d.ts +7 -0
  40. package/dist/packages/core/src/infrastructure/services/agents/sessions/claude-code-session.repository.d.ts.map +1 -1
  41. package/dist/packages/core/src/infrastructure/services/agents/sessions/claude-code-session.repository.js +35 -11
  42. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -1
  43. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  44. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +12 -3
  45. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts +1 -0
  46. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.d.ts.map +1 -1
  47. package/dist/src/presentation/web/app/(dashboard)/@drawer/create/page.js +2 -2
  48. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.d.ts.map +1 -1
  49. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -0
  50. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
  51. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -0
  52. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  53. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +1 -0
  54. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +2 -0
  55. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -1
  56. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +2 -0
  57. package/dist/src/presentation/web/app/actions/get-merge-review-data.d.ts.map +1 -1
  58. package/dist/src/presentation/web/app/actions/get-merge-review-data.js +49 -13
  59. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +1 -0
  60. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  61. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +1 -0
  62. package/dist/src/presentation/web/app/api/sessions/route.d.ts +24 -0
  63. package/dist/src/presentation/web/app/api/sessions/route.d.ts.map +1 -0
  64. package/dist/src/presentation/web/app/api/sessions/route.js +230 -0
  65. package/dist/src/presentation/web/app/build-feature-node-data.d.ts +2 -0
  66. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  67. package/dist/src/presentation/web/app/build-feature-node-data.js +1 -0
  68. package/dist/src/presentation/web/app/build-graph-nodes.d.ts +2 -0
  69. package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
  70. package/dist/src/presentation/web/app/build-graph-nodes.js +11 -0
  71. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts +2 -1
  72. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.d.ts.map +1 -1
  73. package/dist/src/presentation/web/components/common/control-center-drawer/create-drawer-client.js +2 -2
  74. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +4 -1
  75. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  76. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +16 -3
  77. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  78. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -0
  79. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -1
  80. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +36 -10
  81. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  82. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +7 -2
  83. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +2 -1
  84. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +4 -0
  85. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  86. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  87. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -1
  88. package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.d.ts +21 -0
  89. package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.d.ts.map +1 -0
  90. package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.js +138 -0
  91. package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.stories.d.ts +9 -0
  92. package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.stories.d.ts.map +1 -0
  93. package/dist/src/presentation/web/components/common/feature-node/feature-sessions-dropdown.stories.js +77 -0
  94. package/dist/src/presentation/web/components/common/merge-review/merge-review-config.d.ts +3 -3
  95. package/dist/src/presentation/web/components/common/merge-review/merge-review-config.d.ts.map +1 -1
  96. package/dist/src/presentation/web/components/common/merge-review/merge-review.d.ts +1 -1
  97. package/dist/src/presentation/web/components/common/merge-review/merge-review.d.ts.map +1 -1
  98. package/dist/src/presentation/web/components/common/merge-review/merge-review.js +14 -20
  99. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts +6 -0
  100. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map +1 -1
  101. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +74 -0
  102. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  103. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +35 -2
  104. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  105. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +16 -1
  106. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
  107. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +6 -1
  108. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
  109. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +3 -0
  110. package/dist/tsconfig.build.tsbuildinfo +1 -1
  111. package/package.json +1 -1
  112. package/web/.next/BUILD_ID +1 -1
  113. package/web/.next/app-path-routes-manifest.json +1 -0
  114. package/web/.next/build-manifest.json +2 -2
  115. package/web/.next/fallback-build-manifest.json +2 -2
  116. package/web/.next/prerender-manifest.json +3 -3
  117. package/web/.next/required-server-files.js +2 -2
  118. package/web/.next/required-server-files.json +2 -2
  119. package/web/.next/routes-manifest.json +6 -0
  120. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +21 -21
  121. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
  122. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  123. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  124. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  125. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -3
  126. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  127. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +27 -27
  129. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -3
  130. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  131. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  133. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
  134. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  135. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +21 -21
  137. package/web/.next/server/app/(dashboard)/create/page.js +2 -2
  138. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  139. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  141. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -3
  142. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  143. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  144. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +27 -27
  145. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -3
  146. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  147. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  148. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +19 -19
  149. package/web/.next/server/app/(dashboard)/page.js +2 -2
  150. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  151. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  152. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  153. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
  154. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  155. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/_global-error.html +2 -2
  157. package/web/.next/server/app/_global-error.rsc +1 -1
  158. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  159. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  160. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  161. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  162. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  163. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  164. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  165. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  166. package/web/.next/server/app/api/attachments/preview/route.js +1 -1
  167. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  168. package/web/.next/server/app/api/evidence/route.js +1 -1
  169. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  170. package/web/.next/server/app/api/graph-data/route.js +1 -1
  171. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  172. package/web/.next/server/app/api/sessions/route/app-paths-manifest.json +3 -0
  173. package/web/.next/server/app/api/sessions/route/build-manifest.json +11 -0
  174. package/web/.next/server/app/api/sessions/route/server-reference-manifest.json +4 -0
  175. package/web/.next/server/app/api/sessions/route.js +7 -0
  176. package/web/.next/server/app/api/sessions/route.js.map +5 -0
  177. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -0
  178. package/web/.next/server/app/api/sessions/route_client-reference-manifest.js +2 -0
  179. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  180. package/web/.next/server/app/settings/page.js +1 -1
  181. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  182. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  183. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  184. package/web/.next/server/app/skills/page.js +1 -1
  185. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  186. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  187. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  188. package/web/.next/server/app/tools/page.js +1 -1
  189. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  190. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  191. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  192. package/web/.next/server/app/version/page.js +1 -1
  193. package/web/.next/server/app/version/page.js.nft.json +1 -1
  194. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  195. package/web/.next/server/app-paths-manifest.json +1 -0
  196. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  197. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  198. package/web/.next/server/chunks/[root-of-the-server]__0fe7788d._.js +3 -0
  199. package/web/.next/server/chunks/[root-of-the-server]__0fe7788d._.js.map +1 -0
  200. package/web/.next/server/chunks/[root-of-the-server]__42b7ab55._.js +3 -0
  201. package/web/.next/server/chunks/[root-of-the-server]__42b7ab55._.js.map +1 -0
  202. package/web/.next/server/chunks/{[root-of-the-server]__7d63f9a4._.js → [root-of-the-server]__53013576._.js} +2 -2
  203. package/web/.next/server/chunks/{[root-of-the-server]__a1c7c02a._.js → [root-of-the-server]__92078db6._.js} +2 -2
  204. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  205. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  206. package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_sessions_route_actions_c041a889.js +3 -0
  207. package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_sessions_route_actions_c041a889.js.map +1 -0
  208. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  209. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  210. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js +1 -1
  211. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js.map +1 -1
  212. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js +1 -1
  213. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js.map +1 -1
  214. package/web/.next/server/chunks/ssr/{[root-of-the-server]__07a39ff2._.js → [root-of-the-server]__06fef644._.js} +2 -2
  215. package/web/.next/server/chunks/ssr/{[root-of-the-server]__07a39ff2._.js.map → [root-of-the-server]__06fef644._.js.map} +1 -1
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js +3 -0
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js.map +1 -0
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +3 -0
  219. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +1 -0
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  222. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  223. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  224. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  225. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  226. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  227. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  228. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js +3 -0
  229. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js.map +1 -0
  230. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +4 -0
  231. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2ff2daf6._.js.map → [root-of-the-server]__8c553503._.js.map} +1 -1
  232. package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js +3 -0
  233. package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js.map +1 -0
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__9f155c0e._.js +3 -0
  235. package/web/.next/server/chunks/ssr/[root-of-the-server]__9f155c0e._.js.map +1 -0
  236. package/web/.next/server/chunks/ssr/[root-of-the-server]__a022445f._.js +4 -0
  237. package/web/.next/server/chunks/ssr/[root-of-the-server]__a022445f._.js.map +1 -0
  238. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +4 -0
  239. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js.map +1 -0
  240. package/web/.next/server/chunks/ssr/[root-of-the-server]__b724df9e._.js +3 -0
  241. package/web/.next/server/chunks/ssr/[root-of-the-server]__b724df9e._.js.map +1 -0
  242. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  243. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  244. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +1 -1
  245. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js.map +1 -1
  246. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js +3 -0
  247. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js.map +1 -0
  248. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  249. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  250. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
  251. package/web/.next/server/chunks/ssr/_1bb79fe8._.js +3 -0
  252. package/web/.next/server/chunks/ssr/_1bb79fe8._.js.map +1 -0
  253. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  254. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  255. package/web/.next/server/chunks/ssr/_59ae996e._.js +3 -0
  256. package/web/.next/server/chunks/ssr/_59ae996e._.js.map +1 -0
  257. package/web/.next/server/chunks/ssr/_75f4ccb3._.js +3 -0
  258. package/web/.next/server/chunks/ssr/_75f4ccb3._.js.map +1 -0
  259. package/web/.next/server/chunks/ssr/_ab069e13._.js +3 -0
  260. package/web/.next/server/chunks/ssr/_ab069e13._.js.map +1 -0
  261. package/web/.next/server/chunks/ssr/{_5f868392._.js → _aeb74a70._.js} +2 -2
  262. package/web/.next/server/chunks/ssr/_aeb74a70._.js.map +1 -0
  263. package/web/.next/server/chunks/ssr/_bed4bbb9._.js +3 -0
  264. package/web/.next/server/chunks/ssr/_bed4bbb9._.js.map +1 -0
  265. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  266. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  267. package/web/.next/server/chunks/ssr/_f605354c._.js +9 -0
  268. package/web/.next/server/chunks/ssr/_f605354c._.js.map +1 -0
  269. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  270. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  271. package/web/.next/server/chunks/ssr/node_modules__pnpm_b59e4b16._.js +3 -0
  272. package/web/.next/server/chunks/ssr/node_modules__pnpm_b59e4b16._.js.map +1 -0
  273. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js +2 -2
  274. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js.map +1 -1
  275. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js +1 -1
  276. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js.map +1 -1
  277. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  278. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  279. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  280. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  281. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  282. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  283. package/web/.next/server/chunks/ssr/src_presentation_web_components_bdcfba35._.js +3 -0
  284. package/web/.next/server/chunks/ssr/src_presentation_web_components_bdcfba35._.js.map +1 -0
  285. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  286. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  287. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  288. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  289. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js +2 -2
  290. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js.map +1 -1
  291. package/web/.next/server/pages/500.html +2 -2
  292. package/web/.next/server/server-reference-manifest.js +1 -1
  293. package/web/.next/server/server-reference-manifest.json +33 -33
  294. package/web/.next/static/chunks/1c5310cfde612b81.js +1 -0
  295. package/web/.next/static/chunks/{da24af4a494de11a.js → 2b35632c1b784fae.js} +1 -1
  296. package/web/.next/static/chunks/{dc81cb5172953533.js → 30097f88cdf8fad8.js} +1 -1
  297. package/web/.next/static/chunks/3678617c34576e18.js +2 -0
  298. package/web/.next/static/chunks/4562ee849ea13c3a.js +1 -0
  299. package/web/.next/static/chunks/{169d4ce4e5fa10d2.js → 69c6d3ba1606e98d.js} +1 -1
  300. package/web/.next/static/chunks/{bf46b5bf0d9d43b3.js → 7c57a9143e66868c.js} +2 -2
  301. package/web/.next/static/chunks/845d8e58a91014e6.js +1 -0
  302. package/web/.next/static/chunks/{7ce5aacd9b492e8c.js → c1a6934d2281c088.js} +1 -1
  303. package/web/.next/static/chunks/c4477c532d2081e8.js +1 -0
  304. package/web/.next/static/chunks/cca0f5112a9260d8.js +1 -0
  305. package/web/.next/static/chunks/d2739454715e5ef2.css +1 -0
  306. package/web/.next/static/chunks/ed113fb744f2e4d8.js +11 -0
  307. package/web/.next/static/chunks/{9285299c4fb0f020.js → f3c4a7bb76c69b01.js} +1 -1
  308. package/web/.next/server/chunks/[root-of-the-server]__7d5492a0._.js +0 -3
  309. package/web/.next/server/chunks/[root-of-the-server]__7d5492a0._.js.map +0 -1
  310. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js +0 -3
  311. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js.map +0 -1
  312. package/web/.next/server/chunks/ssr/[root-of-the-server]__2ff2daf6._.js +0 -4
  313. package/web/.next/server/chunks/ssr/[root-of-the-server]__3155add4._.js +0 -3
  314. package/web/.next/server/chunks/ssr/[root-of-the-server]__3155add4._.js.map +0 -1
  315. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js +0 -3
  316. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js.map +0 -1
  317. package/web/.next/server/chunks/ssr/[root-of-the-server]__7b707feb._.js +0 -4
  318. package/web/.next/server/chunks/ssr/[root-of-the-server]__7b707feb._.js.map +0 -1
  319. package/web/.next/server/chunks/ssr/[root-of-the-server]__8763fd7a._.js +0 -4
  320. package/web/.next/server/chunks/ssr/[root-of-the-server]__8763fd7a._.js.map +0 -1
  321. package/web/.next/server/chunks/ssr/[root-of-the-server]__9c56d724._.js +0 -3
  322. package/web/.next/server/chunks/ssr/[root-of-the-server]__9c56d724._.js.map +0 -1
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__cfc116d5._.js +0 -3
  324. package/web/.next/server/chunks/ssr/[root-of-the-server]__cfc116d5._.js.map +0 -1
  325. package/web/.next/server/chunks/ssr/[root-of-the-server]__d3841d9e._.js +0 -3
  326. package/web/.next/server/chunks/ssr/[root-of-the-server]__d3841d9e._.js.map +0 -1
  327. package/web/.next/server/chunks/ssr/[root-of-the-server]__db9afe04._.js +0 -3
  328. package/web/.next/server/chunks/ssr/[root-of-the-server]__db9afe04._.js.map +0 -1
  329. package/web/.next/server/chunks/ssr/_250a63ae._.js +0 -3
  330. package/web/.next/server/chunks/ssr/_250a63ae._.js.map +0 -1
  331. package/web/.next/server/chunks/ssr/_273d4632._.js +0 -3
  332. package/web/.next/server/chunks/ssr/_273d4632._.js.map +0 -1
  333. package/web/.next/server/chunks/ssr/_5f868392._.js.map +0 -1
  334. package/web/.next/server/chunks/ssr/_922aa39f._.js +0 -3
  335. package/web/.next/server/chunks/ssr/_922aa39f._.js.map +0 -1
  336. package/web/.next/server/chunks/ssr/_a68d7e1c._.js +0 -9
  337. package/web/.next/server/chunks/ssr/_a68d7e1c._.js.map +0 -1
  338. package/web/.next/server/chunks/ssr/_c6ec0fa4._.js +0 -3
  339. package/web/.next/server/chunks/ssr/_c6ec0fa4._.js.map +0 -1
  340. package/web/.next/server/chunks/ssr/_ca5a8b32._.js +0 -3
  341. package/web/.next/server/chunks/ssr/_ca5a8b32._.js.map +0 -1
  342. package/web/.next/server/chunks/ssr/_f5316e67._.js +0 -3
  343. package/web/.next/server/chunks/ssr/_f5316e67._.js.map +0 -1
  344. package/web/.next/server/chunks/ssr/src_presentation_web_components_a5e6c910._.js +0 -3
  345. package/web/.next/server/chunks/ssr/src_presentation_web_components_a5e6c910._.js.map +0 -1
  346. package/web/.next/static/chunks/15a2249cbec45bee.js +0 -11
  347. package/web/.next/static/chunks/3a806cf059241bc9.js +0 -1
  348. package/web/.next/static/chunks/3fb7682246dbaf45.js +0 -1
  349. package/web/.next/static/chunks/55c131b6fc504375.js +0 -1
  350. package/web/.next/static/chunks/59e6b9b540f05bf1.js +0 -1
  351. package/web/.next/static/chunks/62a8173911f8f130.css +0 -1
  352. package/web/.next/static/chunks/b1f3c0e8e9872ef8.js +0 -1
  353. package/web/.next/static/chunks/f7577de2f653acfc.js +0 -2
  354. /package/web/.next/server/chunks/{[root-of-the-server]__7d63f9a4._.js.map → [root-of-the-server]__53013576._.js.map} +0 -0
  355. /package/web/.next/server/chunks/{[root-of-the-server]__a1c7c02a._.js.map → [root-of-the-server]__92078db6._.js.map} +0 -0
  356. /package/web/.next/static/{akrvSvVQ4BzHsJ1sA0rS7 → qmHUdyRBvaVksgjcL6w-m}/_buildManifest.js +0 -0
  357. /package/web/.next/static/{akrvSvVQ4BzHsJ1sA0rS7 → qmHUdyRBvaVksgjcL6w-m}/_clientMiddlewareManifest.json +0 -0
  358. /package/web/.next/static/{akrvSvVQ4BzHsJ1sA0rS7 → qmHUdyRBvaVksgjcL6w-m}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/copy.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/file-text.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/zap.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/clock.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-use-previous%401.1.1_%40types%2Breact%4019.2.10_react%4019.2.4/node_modules/%40radix-ui/react-use-previous/src/use-previous.tsx","../../../../../../../src/presentation/web/components/ui/label.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-label%402.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact%40_511ac9deb435ae46b2843bd1975598a6/node_modules/%40radix-ui/react-label/dist/index.mjs","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-right.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-left.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/terminal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../src/presentation/web/components/ui/badge.tsx","../../../../../../../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/folder-open.ts","../../../../../../../src/presentation/web/app/actions/data%3A05a1a2%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A297033%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A32f565%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/code-xml.ts","../../../../../../../src/presentation/web/app/actions/data%3Ab53a96%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx","../../../../../../../src/presentation/web/app/actions/data%3A9ede7e%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A0d973b%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/bot.ts","../../../../../../../src/presentation/web/components/common/repository-node/use-repository-actions.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2', key: '17jyea' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2', key: 'zix9uf' }],\n];\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\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 Copy = createLucideIcon('copy', __iconNode);\n\nexport default Copy;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n key: '1oefj6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5', key: 'wfsgrz' }],\n ['path', { d: 'M10 9H8', key: 'b1mrlr' }],\n ['path', { d: 'M16 13H8', key: 't4e002' }],\n ['path', { d: 'M16 17H8', key: 'z1uh3a' }],\n];\n\n/**\n * @component @name FileText\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-text\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 FileText = createLucideIcon('file-text', __iconNode);\n\nexport default FileText;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z',\n key: '1xq2db',\n },\n ],\n];\n\n/**\n * @component @name Zap\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zap\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 Zap = createLucideIcon('zap', __iconNode);\n\nexport default Zap;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 6v6l4 2', key: 'mmk7yg' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('clock', __iconNode);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\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 Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","import * as React from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n","'use client';\n\nimport * as React from 'react';\nimport { Label as LabelPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }]];\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\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 ChevronRight = createLucideIcon('chevron-right', __iconNode);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]];\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\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 ChevronLeft = createLucideIcon('chevron-left', __iconNode);\n\nexport default ChevronLeft;\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 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","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 * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2',\n key: 'usdka0',\n },\n ],\n];\n\n/**\n * @component @name FolderOpen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-open\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 FolderOpen = createLucideIcon('folder-open', __iconNode);\n\nexport default FolderOpen;\n","/* __next_internal_action_entry_do_not_use__ [{\"40ae50dc1461187027822b6dae11b287e808beeb36\":\"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(\"40ae50dc1461187027822b6dae11b287e808beeb36\",callServer,void 0,findSourceMapURL,\"openIde\");export{$$RSC_SERVER_ACTION_0 as openIde};","/* __next_internal_action_entry_do_not_use__ [{\"40542f5f67627d80cb2a62e5e22f9ffbc9df8cf179\":\"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(\"40542f5f67627d80cb2a62e5e22f9ffbc9df8cf179\",callServer,void 0,findSourceMapURL,\"openShell\");export{$$RSC_SERVER_ACTION_0 as openShell};","/* __next_internal_action_entry_do_not_use__ [{\"402d61ebdde1555da334d5709adaa6b2403a81d964\":\"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(\"402d61ebdde1555da334d5709adaa6b2403a81d964\",callServer,void 0,findSourceMapURL,\"openFolder\");export{$$RSC_SERVER_ACTION_0 as openFolder};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4', key: '1inbqp' }],\n ['path', { d: 'm6 8-4 4 4 4', key: '15zrgr' }],\n ['path', { d: 'm14.5 4-5 16', key: 'e7oirm' }],\n];\n\n/**\n * @component @name CodeXml\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CodeXml = createLucideIcon('code-xml', __iconNode);\n\nexport default CodeXml;\n","/* __next_internal_action_entry_do_not_use__ [{\"40f6a31606ef9d3a57ea86557531e210076280ced2\":\"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(\"40f6a31606ef9d3a57ea86557531e210076280ced2\",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","/* __next_internal_action_entry_do_not_use__ [{\"00f6b6259d29dbe0bc3528e389daf72b74e857f63e\":\"getAllAgentModels\"},\"src/presentation/web/app/actions/get-all-agent-models.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"00f6b6259d29dbe0bc3528e389daf72b74e857f63e\",callServer,void 0,findSourceMapURL,\"getAllAgentModels\");export{$$RSC_SERVER_ACTION_0 as getAllAgentModels};","/* __next_internal_action_entry_do_not_use__ [{\"60664705881efa2602c7486efa5a622dae59df35d0\":\"updateAgentAndModel\"},\"src/presentation/web/app/actions/update-agent-and-model.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"60664705881efa2602c7486efa5a622dae59df35d0\",callServer,void 0,findSourceMapURL,\"updateAgentAndModel\");export{$$RSC_SERVER_ACTION_0 as updateAgentAndModel};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n];\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\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 Bot = createLucideIcon('bot', __iconNode);\n\nexport default Bot;\n","'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';\n\nexport interface RepositoryActionsInput {\n repositoryPath: string;\n}\n\nexport interface RepositoryActionsState {\n openInIde: () => Promise<void>;\n openInShell: () => Promise<void>;\n openFolder: () => Promise<void>;\n ideLoading: boolean;\n shellLoading: boolean;\n folderLoading: boolean;\n ideError: string | null;\n shellError: string | null;\n folderError: 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 [ideError, setIdeError] = useState<string | null>(null);\n const [shellError, setShellError] = useState<string | null>(null);\n const [folderError, setFolderError] = 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\n // Clear timers on unmount\n useEffect(() => {\n const ideRef = ideTimerRef;\n const shellRef = shellTimerRef;\n const folderRef = folderTimerRef;\n return () => {\n if (ideRef.current) clearTimeout(ideRef.current);\n if (shellRef.current) clearTimeout(shellRef.current);\n if (folderRef.current) clearTimeout(folderRef.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 return {\n openInIde: handleOpenIde,\n openInShell: handleOpenShell,\n openFolder: handleOpenFolder,\n ideLoading,\n shellLoading,\n folderLoading,\n ideError,\n shellError,\n folderError,\n };\n}\n"],"names":[],"mappings":"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","ignoreList":[0,2,3,4,7,8,9,11,12,15,19,24]}
@@ -1,3 +0,0 @@
1
- module.exports=[4019,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)},9955,a=>{"use strict";var b=a.i(76096);a.s(["Download",()=>b.default])},63496,a=>{"use strict";var b=a.i(96960),c=a.i(7420),d=a.i(6175),e=a.i(90986),f=a.i(10973);function g(a){let g=a+"CollectionProvider",[h,i]=(0,c.createContextScope)(g),[j,k]=h(g,{collectionRef:{current:null},itemMap:new Map}),l=a=>{let{scope:c,children:d}=a,e=b.default.useRef(null),g=b.default.useRef(new Map).current;return(0,f.jsx)(j,{scope:c,itemMap:g,collectionRef:e,children:d})};l.displayName=g;let m=a+"CollectionSlot",n=(0,e.createSlot)(m),o=b.default.forwardRef((a,b)=>{let{scope:c,children:e}=a,g=k(m,c),h=(0,d.useComposedRefs)(b,g.collectionRef);return(0,f.jsx)(n,{ref:h,children:e})});o.displayName=m;let p=a+"CollectionItemSlot",q="data-radix-collection-item",r=(0,e.createSlot)(p),s=b.default.forwardRef((a,c)=>{let{scope:e,children:g,...h}=a,i=b.default.useRef(null),j=(0,d.useComposedRefs)(c,i),l=k(p,e);return b.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...h}),()=>void l.itemMap.delete(i))),(0,f.jsx)(r,{...{[q]:""},ref:j,children:g})});return s.displayName=p,[{Provider:l,Slot:o,ItemSlot:s},function(c){let d=k(a+"CollectionConsumer",c);return b.default.useCallback(()=>{let a=d.collectionRef.current;if(!a)return[];let b=Array.from(a.querySelectorAll(`[${q}]`));return Array.from(d.itemMap.values()).sort((a,c)=>b.indexOf(a.ref.current)-b.indexOf(c.ref.current))},[d.collectionRef,d.itemMap])},i]}var h=new WeakMap;function i(a,b){var c,d;let e,f,g;if("at"in Array.prototype)return Array.prototype.at.call(a,b);let h=(c=a,d=b,e=c.length,(g=(f=j(d))>=0?f:e+f)<0||g>=e?-1:g);return -1===h?void 0:a[h]}function j(a){return a!=a||0===a?0:Math.trunc(a)}(class a extends Map{#a;constructor(a){super(a),this.#a=[...super.keys()],h.set(this,!0)}set(a,b){return h.get(this)&&(this.has(a)?this.#a[this.#a.indexOf(a)]=a:this.#a.push(a)),super.set(a,b),this}insert(a,b,c){let d,e=this.has(b),f=this.#a.length,g=j(a),h=g>=0?g:f+g,i=h<0||h>=f?-1:h;if(i===this.size||e&&i===this.size-1||-1===i)return this.set(b,c),this;let k=this.size+ +!e;g<0&&h++;let l=[...this.#a],m=!1;for(let a=h;a<k;a++)if(h===a){let f=l[a];l[a]===b&&(f=l[a+1]),e&&this.delete(b),d=this.get(f),this.set(b,c)}else{m||l[a-1]!==b||(m=!0);let c=l[m?a:a-1],e=d;d=this.get(c),this.delete(c),this.set(c,e)}return this}with(b,c,d){let e=new a(this);return e.insert(b,c,d),e}before(a){let b=this.#a.indexOf(a)-1;if(!(b<0))return this.entryAt(b)}setBefore(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d,b,c)}after(a){let b=this.#a.indexOf(a);if(-1!==(b=-1===b||b===this.size-1?-1:b+1))return this.entryAt(b)}setAfter(a,b,c){let d=this.#a.indexOf(a);return -1===d?this:this.insert(d+1,b,c)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#a=[],super.clear()}delete(a){let b=super.delete(a);return b&&this.#a.splice(this.#a.indexOf(a),1),b}deleteAt(a){let b=this.keyAt(a);return void 0!==b&&this.delete(b)}at(a){let b=i(this.#a,a);if(void 0!==b)return this.get(b)}entryAt(a){let b=i(this.#a,a);if(void 0!==b)return[b,this.get(b)]}indexOf(a){return this.#a.indexOf(a)}keyAt(a){return i(this.#a,a)}from(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.at(d)}keyFrom(a,b){let c=this.indexOf(a);if(-1===c)return;let d=c+b;return d<0&&(d=0),d>=this.size&&(d=this.size-1),this.keyAt(d)}find(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return d;c++}}findIndex(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return c;c++}return -1}filter(b,c){let d=[],e=0;for(let a of this)Reflect.apply(b,c,[a,e,this])&&d.push(a),e++;return new a(d)}map(b,c){let d=[],e=0;for(let a of this)d.push([a[0],Reflect.apply(b,c,[a,e,this])]),e++;return new a(d)}reduce(...a){let[b,c]=a,d=0,e=c??this.at(0);for(let c of this)e=0===d&&1===a.length?c:Reflect.apply(b,this,[e,c,d,this]),d++;return e}reduceRight(...a){let[b,c]=a,d=c??this.at(-1);for(let c=this.size-1;c>=0;c--){let e=this.at(c);d=c===this.size-1&&1===a.length?e:Reflect.apply(b,this,[d,e,c,this])}return d}toSorted(b){return new a([...this.entries()].sort(b))}toReversed(){let b=new a;for(let a=this.size-1;a>=0;a--){let c=this.keyAt(a),d=this.get(c);b.set(c,d)}return b}toSpliced(...b){let c=[...this.entries()];return c.splice(...b),new a(c)}slice(b,c){let d=new a,e=this.size-1;if(void 0===b)return d;b<0&&(b+=this.size),void 0!==c&&c>0&&(e=c-1);for(let a=b;a<=e;a++){let b=this.keyAt(a),c=this.get(b);d.set(b,c)}return d}every(a,b){let c=0;for(let d of this){if(!Reflect.apply(a,b,[d,c,this]))return!1;c++}return!0}some(a,b){let c=0;for(let d of this){if(Reflect.apply(a,b,[d,c,this]))return!0;c++}return!1}}),a.s(["createCollection",()=>g])},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)},41305,77127,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(7420),f=a.i(63496),g=a.i(6175),h=a.i(5472),i=a.i(66873),j=a.i(79406),k=a.i(17329),l=a.i(48939),m="rovingFocusGroup.onEntryFocus",n={bubbles:!1,cancelable:!0},o="RovingFocusGroup",[p,q,r]=(0,f.createCollection)(o),[s,t]=(0,e.createContextScope)(o,[r]),[u,v]=s(o),w=c.forwardRef((a,c)=>(0,b.jsx)(p.Provider,{scope:a.__scopeRovingFocusGroup,children:(0,b.jsx)(p.Slot,{scope:a.__scopeRovingFocusGroup,children:(0,b.jsx)(x,{...a,ref:c})})}));w.displayName=o;var x=c.forwardRef((a,e)=>{let{__scopeRovingFocusGroup:f,orientation:h,loop:p=!1,dir:r,currentTabStopId:s,defaultCurrentTabStopId:t,onCurrentTabStopIdChange:v,onEntryFocus:w,preventScrollOnEntryFocus:x=!1,...y}=a,z=c.useRef(null),A=(0,g.useComposedRefs)(e,z),C=(0,l.useDirection)(r),[D,E]=(0,k.useControllableState)({prop:s,defaultProp:t??null,onChange:v,caller:o}),[F,G]=c.useState(!1),H=(0,j.useCallbackRef)(w),I=q(f),J=c.useRef(!1),[K,L]=c.useState(0);return c.useEffect(()=>{let a=z.current;if(a)return a.addEventListener(m,H),()=>a.removeEventListener(m,H)},[H]),(0,b.jsx)(u,{scope:f,orientation:h,dir:C,loop:p,currentTabStopId:D,onItemFocus:c.useCallback(a=>E(a),[E]),onItemShiftTab:c.useCallback(()=>G(!0),[]),onFocusableItemAdd:c.useCallback(()=>L(a=>a+1),[]),onFocusableItemRemove:c.useCallback(()=>L(a=>a-1),[]),children:(0,b.jsx)(i.Primitive.div,{tabIndex:F||0===K?-1:0,"data-orientation":h,...y,ref:A,style:{outline:"none",...a.style},onMouseDown:(0,d.composeEventHandlers)(a.onMouseDown,()=>{J.current=!0}),onFocus:(0,d.composeEventHandlers)(a.onFocus,a=>{let b=!J.current;if(a.target===a.currentTarget&&b&&!F){let b=new CustomEvent(m,n);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=I().filter(a=>a.focusable);B([a.find(a=>a.active),a.find(a=>a.id===D),...a].filter(Boolean).map(a=>a.ref.current),x)}}J.current=!1}),onBlur:(0,d.composeEventHandlers)(a.onBlur,()=>G(!1))})})}),y="RovingFocusGroupItem",z=c.forwardRef((a,e)=>{let{__scopeRovingFocusGroup:f,focusable:g=!0,active:j=!1,tabStopId:k,children:l,...m}=a,n=(0,h.useId)(),o=k||n,r=v(y,f),s=r.currentTabStopId===o,t=q(f),{onFocusableItemAdd:u,onFocusableItemRemove:w,currentTabStopId:x}=r;return c.useEffect(()=>{if(g)return u(),()=>w()},[g,u,w]),(0,b.jsx)(p.ItemSlot,{scope:f,id:o,focusable:g,active:j,children:(0,b.jsx)(i.Primitive.span,{tabIndex:s?0:-1,"data-orientation":r.orientation,...m,ref:e,onMouseDown:(0,d.composeEventHandlers)(a.onMouseDown,a=>{g?r.onItemFocus(o):a.preventDefault()}),onFocus:(0,d.composeEventHandlers)(a.onFocus,()=>r.onItemFocus(o)),onKeyDown:(0,d.composeEventHandlers)(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void r.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return A[e]}(a,r.orientation,r.dir);if(void 0!==b){if(a.metaKey||a.ctrlKey||a.altKey||a.shiftKey)return;a.preventDefault();let e=t().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)e.reverse();else if("prev"===b||"next"===b){var c,d;"prev"===b&&e.reverse();let f=e.indexOf(a.currentTarget);e=r.loop?(c=e,d=f+1,c.map((a,b)=>c[(d+b)%c.length])):e.slice(f+1)}setTimeout(()=>B(e))}}),children:"function"==typeof l?l({isCurrentTabStop:s,hasTabStop:null!=x}):l})})});z.displayName=y;var A={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function B(a,b=!1){let c=document.activeElement;for(let d of a)if(d===c||(d.focus({preventScroll:b}),document.activeElement!==c))return}a.s(["Item",()=>z,"Root",()=>w,"createRovingFocusGroupScope",()=>t],77127);var C=a.i(14272),D="Tabs",[E,F]=(0,e.createContextScope)(D,[t]),G=t(),[H,I]=E(D),J=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,onValueChange:f,defaultValue:g,orientation:j="horizontal",dir:m,activationMode:n="automatic",...o}=a,p=(0,l.useDirection)(m),[q,r]=(0,k.useControllableState)({prop:e,onChange:f,defaultProp:g??"",caller:D});return(0,b.jsx)(H,{scope:d,baseId:(0,h.useId)(),value:q,onValueChange:r,orientation:j,dir:p,activationMode:n,children:(0,b.jsx)(i.Primitive.div,{dir:p,"data-orientation":j,...o,ref:c})})});J.displayName=D;var K="TabsList",L=c.forwardRef((a,c)=>{let{__scopeTabs:d,loop:e=!0,...f}=a,g=I(K,d),h=G(d);return(0,b.jsx)(w,{asChild:!0,...h,orientation:g.orientation,dir:g.dir,loop:e,children:(0,b.jsx)(i.Primitive.div,{role:"tablist","aria-orientation":g.orientation,...f,ref:c})})});L.displayName=K;var M="TabsTrigger",N=c.forwardRef((a,c)=>{let{__scopeTabs:e,value:f,disabled:g=!1,...h}=a,j=I(M,e),k=G(e),l=Q(j.baseId,f),m=R(j.baseId,f),n=f===j.value;return(0,b.jsx)(z,{asChild:!0,...k,focusable:!g,active:n,children:(0,b.jsx)(i.Primitive.button,{type:"button",role:"tab","aria-selected":n,"aria-controls":m,"data-state":n?"active":"inactive","data-disabled":g?"":void 0,disabled:g,id:l,...h,ref:c,onMouseDown:(0,d.composeEventHandlers)(a.onMouseDown,a=>{g||0!==a.button||!1!==a.ctrlKey?a.preventDefault():j.onValueChange(f)}),onKeyDown:(0,d.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&j.onValueChange(f)}),onFocus:(0,d.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==j.activationMode;n||g||!a||j.onValueChange(f)})})})});N.displayName=M;var O="TabsContent",P=c.forwardRef((a,d)=>{let{__scopeTabs:e,value:f,forceMount:g,children:h,...j}=a,k=I(O,e),l=Q(k.baseId,f),m=R(k.baseId,f),n=f===k.value,o=c.useRef(n);return c.useEffect(()=>{let a=requestAnimationFrame(()=>o.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,b.jsx)(C.Presence,{present:g||n,children:({present:c})=>(0,b.jsx)(i.Primitive.div,{"data-state":n?"active":"inactive","data-orientation":k.orientation,role:"tabpanel","aria-labelledby":l,hidden:!c,id:m,tabIndex:0,...j,ref:d,style:{...a.style,animationDuration:o.current?"0s":void 0},children:c&&h})})});function Q(a,b){return`${a}-trigger-${b}`}function R(a,b){return`${a}-content-${b}`}P.displayName=O,a.s(["Content",()=>P,"List",()=>L,"Root",()=>J,"Tabs",()=>J,"TabsContent",()=>P,"TabsList",()=>L,"TabsTrigger",()=>N,"Trigger",()=>N,"createTabsScope",()=>F],287);var S=a.i(287),S=S,T=a.i(85536);let U=S.Root,V=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(S.List,{ref:d,className:(0,T.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",a),...c}));V.displayName=S.List.displayName;let W=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(S.Trigger,{ref:d,className:(0,T.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",a),...c}));W.displayName=S.Trigger.displayName;let X=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(S.Content,{ref:d,className:(0,T.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",a),...c}));X.displayName=S.Content.displayName,a.s(["Tabs",()=>U,"TabsContent",()=>X,"TabsList",()=>V,"TabsTrigger",()=>W],41305)}];
2
-
3
- //# sourceMappingURL=_f5316e67._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Br_2988d950cbd44144aec5e6ce60804441/node_modules/%40radix-ui/react-collection/src/collection-legacy.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Br_2988d950cbd44144aec5e6ce60804441/node_modules/%40radix-ui/react-collection/src/collection.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-collection%401.1.7_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Br_2988d950cbd44144aec5e6ce60804441/node_modules/%40radix-ui/react-collection/src/ordered-dictionary.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/%40radix-ui%2Breact-roving-focus%401.1.11_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40type_61b1e57265158db0f110fd8c0c27aeba/node_modules/%40radix-ui/react-roving-focus/dist/index.mjs","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-tabs%401.1.13_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact%40_68a385a9eea120600bb372a91de22b00/node_modules/%40radix-ui/react-tabs/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/tabs.tsx"],"sourcesContent":["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 React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\n\ntype SlotProps = React.ComponentPropsWithoutRef<typeof Slot>;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like `<CollectionItem as={Slot}>\u2026</CollectionItem>`.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection<ItemElement extends HTMLElement, ItemData = {}>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject<CollectionElement | null>;\n itemMap: Map<\n React.RefObject<ItemElement | null>,\n { ref: React.RefObject<ItemElement | null> } & ItemData\n >;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext<ContextValue>(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ children?: React.ReactNode; scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef<CollectionElement>(null);\n const itemMap = React.useRef<ContextValue['itemMap']>(new Map()).current;\n return (\n <CollectionProviderImpl scope={scope} itemMap={itemMap} collectionRef={ref}>\n {children}\n </CollectionProviderImpl>\n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef<CollectionElement, CollectionProps>(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return <CollectionSlotImpl ref={composedRefs}>{children}</CollectionSlotImpl>;\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef<ItemElement, CollectionItemSlotProps>(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef<ItemElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n <CollectionItemSlotImpl {...{ [ITEM_DATA_ATTR]: '' }} ref={composedRefs}>\n {children}\n </CollectionItemSlotImpl>\n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\nimport type { EntryOf } from './ordered-dictionary';\nimport { OrderedDict } from './ordered-dictionary';\n\ntype SlotProps = React.ComponentPropsWithoutRef<typeof Slot>;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\ninterface BaseItemData {\n id?: string;\n}\n\ntype ItemDataWithElement<\n ItemData extends BaseItemData,\n ItemElement extends HTMLElement,\n> = ItemData & {\n element: ItemElement;\n};\n\ntype ItemMap<ItemElement extends HTMLElement, ItemData extends BaseItemData> = OrderedDict<\n ItemElement,\n ItemDataWithElement<ItemData, ItemElement>\n>;\n\nfunction createCollection<\n ItemElement extends HTMLElement,\n ItemData extends BaseItemData = BaseItemData,\n>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionElement: CollectionElement | null;\n collectionRef: React.Ref<CollectionElement | null>;\n collectionRefObject: React.RefObject<CollectionElement | null>;\n itemMap: ItemMap<ItemElement, ItemData>;\n setItemMap: React.Dispatch<React.SetStateAction<ItemMap<ItemElement, ItemData>>>;\n };\n\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext<ContextValue>(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0,\n }\n );\n\n type CollectionState = [\n ItemMap: ItemMap<ItemElement, ItemData>,\n SetItemMap: React.Dispatch<React.SetStateAction<ItemMap<ItemElement, ItemData>>>,\n ];\n\n const CollectionProvider: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state?: CollectionState;\n }> = ({ state, ...props }) => {\n return state ? (\n <CollectionProviderImpl {...props} state={state} />\n ) : (\n <CollectionInit {...props} />\n );\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n\n const CollectionInit: React.FC<{\n children?: React.ReactNode;\n scope: any;\n }> = (props) => {\n const state = useInitCollection();\n return <CollectionProviderImpl {...props} state={state} />;\n };\n CollectionInit.displayName = PROVIDER_NAME + 'Init';\n\n const CollectionProviderImpl: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state: CollectionState;\n }> = (props) => {\n const { scope, children, state } = props;\n const ref = React.useRef<CollectionElement>(null);\n const [collectionElement, setCollectionElement] = React.useState<CollectionElement | null>(\n null\n );\n const composeRefs = useComposedRefs(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n\n React.useEffect(() => {\n if (!collectionElement) return;\n\n const observer = getChildListObserver(() => {\n // setItemMap((map) => {\n // const copy = new OrderedDict(map).toSorted(([, a], [, b]) =>\n // !a.element || !b.element ? 0 : isElementPreceding(a.element, b.element) ? -1 : 1\n // );\n // // check if the order has changed\n // let index = -1;\n // for (const entry of copy) {\n // index++;\n // const key = map.keyAt(index)!;\n // const [copyKey] = entry;\n // if (key !== copyKey) {\n // // order has changed!\n // return copy;\n // }\n // }\n // return map;\n // });\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true,\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n\n return (\n <CollectionContextProvider\n scope={scope}\n itemMap={itemMap}\n setItemMap={setItemMap}\n collectionRef={composeRefs}\n collectionRefObject={ref}\n collectionElement={collectionElement}\n >\n {children}\n </CollectionContextProvider>\n );\n };\n\n CollectionProviderImpl.displayName = PROVIDER_NAME + 'Impl';\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef<CollectionElement, CollectionProps>(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return <CollectionSlotImpl ref={composedRefs}>{children}</CollectionSlotImpl>;\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef<ItemElement, CollectionItemSlotProps>(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef<ItemElement>(null);\n const [element, setElement] = React.useState<ItemElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n const { setItemMap } = context;\n\n const itemDataRef = React.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n\n React.useEffect(() => {\n const itemData = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n\n if (!map.has(element)) {\n map.set(element, { ...(itemData as unknown as ItemData), element });\n return map.toSorted(sortByDocumentPosition);\n }\n\n return map\n .set(element, { ...(itemData as unknown as ItemData), element })\n .toSorted(sortByDocumentPosition);\n });\n\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n\n return (\n <CollectionItemSlotImpl {...{ [ITEM_DATA_ATTR]: '' }} ref={composedRefs as any}>\n {children}\n </CollectionItemSlotImpl>\n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useInitCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useInitCollection() {\n return React.useState<ItemMap<ItemElement, ItemData>>(new OrderedDict());\n }\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const { itemMap } = useCollectionContext(name + 'CollectionConsumer', scope);\n\n return itemMap;\n }\n\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection,\n };\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n\nfunction shallowEqual(a: any, b: any) {\n if (a === b) return true;\n if (typeof a !== 'object' || typeof b !== 'object') return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\n\nfunction isElementPreceding(a: Element, b: Element) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\n\nfunction sortByDocumentPosition<E extends HTMLElement, T extends BaseItemData>(\n a: EntryOf<ItemMap<E, T>>,\n b: EntryOf<ItemMap<E, T>>\n) {\n return !a[1].element || !b[1].element\n ? 0\n : isElementPreceding(a[1].element, b[1].element)\n ? -1\n : 1;\n}\n\nfunction getChildListObserver(callback: () => void) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n callback();\n return;\n }\n }\n });\n\n return observer;\n}\n","// Not a real member because it shouldn't be accessible, but the super class\n// calls `set` which needs to read the instanciation state, so it can't be a\n// private member.\nconst __instanciated = new WeakMap<OrderedDict<any, any>, boolean>();\nexport class OrderedDict<K, V> extends Map<K, V> {\n #keys: K[];\n\n constructor(iterable?: Iterable<readonly [K, V]> | null | undefined);\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n\n set(key: K, value: V) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n\n insert(index: number, key: K, value: V) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n\n if (safeIndex === this.size || (has && safeIndex === this.size - 1) || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n\n const size = this.size + (has ? 0 : 1);\n\n // If you insert at, say, -2, without this bit you'd replace the\n // second-to-last item and push the rest up one, which means the new item is\n // 3rd to last. This isn't very intuitive; inserting at -2 is more like\n // saying \"make this item the second to last\".\n if (relativeIndex < 0) {\n actualIndex++;\n }\n\n const keys = [...this.#keys];\n let nextValue: V | undefined;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i]!;\n if (keys[i] === key) {\n nextKey = keys[i + 1]!;\n }\n if (has) {\n // delete first to ensure that the item is moved to the end\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1]!;\n const currentValue = nextValue!;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n\n with(index: number, key: K, value: V) {\n const copy = new OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n\n before(key: K) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n\n after(key: K) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n\n first() {\n return this.entryAt(0);\n }\n\n last() {\n return this.entryAt(-1);\n }\n\n clear() {\n this.#keys = [];\n return super.clear();\n }\n\n delete(key: K) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n\n deleteAt(index: number) {\n const key = this.keyAt(index);\n if (key !== undefined) {\n return this.delete(key);\n }\n return false;\n }\n\n at(index: number) {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return this.get(key);\n }\n }\n\n entryAt(index: number): [K, V] | undefined {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return [key, this.get(key)!];\n }\n }\n\n indexOf(key: K) {\n return this.#keys.indexOf(key);\n }\n\n keyAt(index: number) {\n return at(this.#keys, index);\n }\n\n from(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n\n keyFrom(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n\n find(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return undefined;\n }\n\n findIndex(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n filter<KK extends K, VV extends V>(\n predicate: (entry: [K, V], index: number, dict: OrderedDict<K, V>) => entry is [KK, VV],\n thisArg?: any\n ): OrderedDict<KK, VV>;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ): OrderedDict<K, V>;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n const entries: Array<[K, V]> = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new OrderedDict(entries);\n }\n\n map<U>(\n callbackfn: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => U,\n thisArg?: any\n ): OrderedDict<K, U> {\n const entries: [K, U][] = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new OrderedDict(entries);\n }\n\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V]\n ): [K, V];\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduce<U>(\n callbackfn: (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n initialValue: U\n ): U;\n\n reduce<U>(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0)!;\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V]\n ): [K, V];\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduceRight<U>(\n callbackfn: (\n previousValue: [K, V],\n currentValue: U,\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n initialValue: U\n ): U;\n\n reduceRight<U>(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict<K, V>\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1)!;\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index)!;\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n\n toSorted(compareFn?: (a: [K, V], b: [K, V]) => number): OrderedDict<K, V> {\n const entries = [...this.entries()].sort(compareFn);\n return new OrderedDict(entries);\n }\n\n toReversed(): OrderedDict<K, V> {\n const reversed = new OrderedDict<K, V>();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n reversed.set(key, element);\n }\n return reversed;\n }\n\n toSpliced(start: number, deleteCount?: number): OrderedDict<K, V>;\n toSpliced(start: number, deleteCount: number, ...items: [K, V][]): OrderedDict<K, V>;\n\n toSpliced(...args: [start: number, deleteCount: number, ...items: [K, V][]]) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new OrderedDict(entries);\n }\n\n slice(start?: number, end?: number) {\n const result = new OrderedDict<K, V>();\n let stop = this.size - 1;\n\n if (start === undefined) {\n return result;\n }\n\n if (start < 0) {\n start = start + this.size;\n }\n\n if (end !== undefined && end > 0) {\n stop = end - 1;\n }\n\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n result.set(key, element);\n }\n return result;\n }\n\n every(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n\n some(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict<K, V>) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n}\n\nexport type KeyOf<D extends OrderedDict<any, any>> =\n D extends OrderedDict<infer K, any> ? K : never;\nexport type ValueOf<D extends OrderedDict<any, any>> =\n D extends OrderedDict<any, infer V> ? V : never;\nexport type EntryOf<D extends OrderedDict<any, any>> = [KeyOf<D>, ValueOf<D>];\nexport type KeyFrom<E extends EntryOf<any>> = E[0];\nexport type ValueFrom<E extends EntryOf<any>> = E[1];\n\nfunction at<T>(array: ArrayLike<T>, index: number): T | undefined {\n if ('at' in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? undefined : array[actualIndex];\n}\n\nfunction toSafeIndex(array: ArrayLike<any>, index: number) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\n\nfunction toSafeInteger(number: number) {\n // eslint-disable-next-line no-self-compare\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\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","\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Tabs as TabsPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1',\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"names":["React","createContextScope","useComposedRefs","createSlot","jsx","createCollection","itemData"],"mappings":"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","ignoreList":[0,4,5,6]}
@@ -1,3 +0,0 @@
1
- module.exports=[84117,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(85536);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("bg-card text-card-foreground rounded-xl border shadow",a),...c}));e.displayName="Card";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex flex-col space-y-1.5 p-6",a),...c}));f.displayName="CardHeader";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("leading-none font-semibold tracking-tight",a),...c}));g.displayName="CardTitle";let h=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-muted-foreground text-sm",a),...c}));h.displayName="CardDescription";let i=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("p-6 pt-0",a),...c}));i.displayName="CardContent",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex items-center p-6 pt-0",a),...c})).displayName="CardFooter",a.s(["Card",()=>e,"CardContent",()=>i,"CardDescription",()=>h,"CardHeader",()=>f,"CardTitle",()=>g])},86259,a=>{"use strict";var b=a.i(10973),c=a.i(56109),d=a.i(84117),e=a.i(58339),f=a.i(18948),g=a.i(41305);function h({label:a,value:c,badge:d,badgeVariant:f="secondary"}){return(0,b.jsxs)("div",{className:"flex items-center justify-between py-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-sm",children:a}),d?(0,b.jsx)(e.Badge,{variant:f,children:c}):(0,b.jsx)("span",{className:"font-mono text-sm",children:c})]})}function i({versionInfo:a,systemInfo:i}){return(0,b.jsx)("div",{className:"flex flex-col items-center justify-center p-4",children:(0,b.jsxs)("div",{className:"w-full max-w-2xl space-y-6",children:[(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:a.name}),(0,b.jsx)("p",{className:"text-muted-foreground mt-2",children:a.description}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsxs)(e.Badge,{variant:"default","data-testid":"version-badge",children:["v",a.version]})})]}),(0,b.jsxs)(g.Tabs,{defaultValue:"overview",className:"w-full",children:[(0,b.jsxs)(g.TabsList,{className:"grid w-full grid-cols-3",children:[(0,b.jsx)(g.TabsTrigger,{value:"overview",children:"Overview"}),(0,b.jsx)(g.TabsTrigger,{value:"system",children:"System"}),(0,b.jsx)(g.TabsTrigger,{value:"features",children:"Features"})]}),(0,b.jsx)(g.TabsContent,{value:"overview",children:(0,b.jsxs)(d.Card,{children:[(0,b.jsxs)(d.CardHeader,{children:[(0,b.jsx)(d.CardTitle,{children:"Package Information"}),(0,b.jsx)(d.CardDescription,{children:"Details about the Shep AI CLI package"})]}),(0,b.jsxs)(d.CardContent,{className:"space-y-1",children:[(0,b.jsx)(h,{label:"Package",value:a.name}),(0,b.jsx)(h,{label:"Version",value:`v${a.version}`,badge:!0,badgeVariant:"default"}),(0,b.jsx)(h,{label:"License",value:"MIT",badge:!0,badgeVariant:"outline"}),(0,b.jsx)(h,{label:"Author",value:"Shep AI"})]})]})}),(0,b.jsx)(g.TabsContent,{value:"system",children:(0,b.jsxs)(d.Card,{children:[(0,b.jsxs)(d.CardHeader,{children:[(0,b.jsx)(d.CardTitle,{children:"System Information"}),(0,b.jsx)(d.CardDescription,{children:"Runtime environment details"})]}),(0,b.jsxs)(d.CardContent,{className:"space-y-1",children:[(0,b.jsx)(h,{label:"Node.js",value:i.nodeVersion,badge:!0,badgeVariant:"secondary"}),(0,b.jsx)(h,{label:"Platform",value:`${i.platform} ${i.arch}`})]})]})}),(0,b.jsx)(g.TabsContent,{value:"features",children:(0,b.jsxs)(d.Card,{children:[(0,b.jsxs)(d.CardHeader,{children:[(0,b.jsx)(d.CardTitle,{children:"Key Features"}),(0,b.jsx)(d.CardDescription,{children:"What Shep AI can do for you"})]}),(0,b.jsx)(d.CardContent,{children:(0,b.jsxs)("ul",{className:"space-y-2 text-sm",children:[(0,b.jsxs)("li",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Badge,{variant:"outline",children:"AI"}),(0,b.jsx)("span",{children:"Autonomous code generation"})]}),(0,b.jsxs)("li",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Badge,{variant:"outline",children:"SDLC"}),(0,b.jsx)("span",{children:"Full development lifecycle automation"})]}),(0,b.jsxs)("li",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Badge,{variant:"outline",children:"CLI"}),(0,b.jsx)("span",{children:"Powerful command-line interface"})]}),(0,b.jsxs)("li",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.Badge,{variant:"outline",children:"Web"}),(0,b.jsx)("span",{children:"Modern web UI dashboard"})]})]})})]})})]}),(0,b.jsxs)("div",{className:"flex justify-center gap-4",children:[(0,b.jsx)(f.Button,{asChild:!0,variant:"outline",children:(0,b.jsx)(c.default,{href:"/",children:"Back to Home"})}),(0,b.jsx)(f.Button,{asChild:!0,children:(0,b.jsx)("a",{href:"https://github.com/shep-ai/cli",target:"_blank",rel:"noopener noreferrer",children:"View on GitHub"})})]})]})})}a.s(["default",()=>i])}];
2
-
3
- //# sourceMappingURL=src_presentation_web_components_a5e6c910._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/components/ui/card.tsx","../../../../../../../src/presentation/web/components/features/version/version-page-client.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground rounded-xl border shadow', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","'use client';\n\nimport Link from 'next/link';\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';\nimport { Badge } from '@/components/ui/badge';\nimport { Button } from '@/components/ui/button';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\nimport type { VersionInfo, SystemInfo } from '@/lib/version';\n\ninterface InfoRowProps {\n label: string;\n value: string;\n badge?: boolean;\n badgeVariant?: 'default' | 'secondary' | 'outline';\n}\n\nfunction InfoRow({ label, value, badge, badgeVariant = 'secondary' }: InfoRowProps) {\n return (\n <div className=\"flex items-center justify-between py-2\">\n <span className=\"text-muted-foreground text-sm\">{label}</span>\n {badge ? (\n <Badge variant={badgeVariant}>{value}</Badge>\n ) : (\n <span className=\"font-mono text-sm\">{value}</span>\n )}\n </div>\n );\n}\n\ninterface VersionPageClientProps {\n versionInfo: VersionInfo;\n systemInfo: SystemInfo;\n}\n\nexport default function VersionPageClient({ versionInfo, systemInfo }: VersionPageClientProps) {\n return (\n <div className=\"flex flex-col items-center justify-center p-4\">\n <div className=\"w-full max-w-2xl space-y-6\">\n <div className=\"text-center\">\n <h1 className=\"text-3xl font-bold tracking-tight\">{versionInfo.name}</h1>\n <p className=\"text-muted-foreground mt-2\">{versionInfo.description}</p>\n <div className=\"mt-4\">\n <Badge variant=\"default\" data-testid=\"version-badge\">\n v{versionInfo.version}\n </Badge>\n </div>\n </div>\n\n <Tabs defaultValue=\"overview\" className=\"w-full\">\n <TabsList className=\"grid w-full grid-cols-3\">\n <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n <TabsTrigger value=\"system\">System</TabsTrigger>\n <TabsTrigger value=\"features\">Features</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"overview\">\n <Card>\n <CardHeader>\n <CardTitle>Package Information</CardTitle>\n <CardDescription>Details about the Shep AI CLI package</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-1\">\n <InfoRow label=\"Package\" value={versionInfo.name} />\n <InfoRow\n label=\"Version\"\n value={`v${versionInfo.version}`}\n badge\n badgeVariant=\"default\"\n />\n <InfoRow label=\"License\" value=\"MIT\" badge badgeVariant=\"outline\" />\n <InfoRow label=\"Author\" value=\"Shep AI\" />\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"system\">\n <Card>\n <CardHeader>\n <CardTitle>System Information</CardTitle>\n <CardDescription>Runtime environment details</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-1\">\n <InfoRow\n label=\"Node.js\"\n value={systemInfo.nodeVersion}\n badge\n badgeVariant=\"secondary\"\n />\n <InfoRow label=\"Platform\" value={`${systemInfo.platform} ${systemInfo.arch}`} />\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"features\">\n <Card>\n <CardHeader>\n <CardTitle>Key Features</CardTitle>\n <CardDescription>What Shep AI can do for you</CardDescription>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2 text-sm\">\n <li className=\"flex items-center gap-2\">\n <Badge variant=\"outline\">AI</Badge>\n <span>Autonomous code generation</span>\n </li>\n <li className=\"flex items-center gap-2\">\n <Badge variant=\"outline\">SDLC</Badge>\n <span>Full development lifecycle automation</span>\n </li>\n <li className=\"flex items-center gap-2\">\n <Badge variant=\"outline\">CLI</Badge>\n <span>Powerful command-line interface</span>\n </li>\n <li className=\"flex items-center gap-2\">\n <Badge variant=\"outline\">Web</Badge>\n <span>Modern web UI dashboard</span>\n </li>\n </ul>\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n\n <div className=\"flex justify-center gap-4\">\n <Button asChild variant=\"outline\">\n <Link href=\"/\">Back to Home</Link>\n </Button>\n <Button asChild>\n <a href=\"https://github.com/shep-ai/cli\" target=\"_blank\" rel=\"noopener noreferrer\">\n View on GitHub\n </a>\n </Button>\n </div>\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24270,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},80764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(79054);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66033,e=>{"use strict";var t=e.i(79054);e.i(20314);var r=t.createContext(void 0);function n(e){let n=t.useContext(r);return e||n||"ltr"}e.s(["useDirection",()=>n])},98127,e=>{"use strict";var t=e.i(20314),r=e.i(31777);function n({className:e,type:n,...o}){return(0,t.jsx)("input",{type:n,"data-slot":"input",className:(0,r.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...o})}e.s(["Input",()=>n])},10942,94819,e=>{"use strict";var t=e.i(80986);e.s(["CircleCheck",()=>t.default],10942);let r=(0,e.i(3645).default)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Ban",()=>r],94819)},39443,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let n=(0,e.i(18354).createLogger)("[SSE]");function o(e,t,r,n){if("u"<typeof EventSource)return()=>{};let o=null,a=!1,i=1e3,l=null,s=null;return!function u(){a||(o=new EventSource(e?`/api/agent-events?runId=${encodeURIComponent(e)}`:"/api/agent-events"),n("connecting"),o.onopen=()=>{n("connected"),s=setTimeout(()=>{s=null,i=1e3},5e3)},o.onerror=()=>{o?.close(),o=null,n("disconnected"),null!==s&&(clearTimeout(s),s=null);let e=i;i=Math.min(2*e,3e4),l=setTimeout(()=>{l=null,u()},e)},o.addEventListener("notification",e=>{let n=JSON.parse(e.data);t(e=>{let t=[...e,n];return t.length>500?t.slice(-250):t}),r(n)}))}(),()=>{a=!0,null!==l&&(clearTimeout(l),l=null),null!==s&&(clearTimeout(s),s=null),o&&(o.close(),o=null)}}let a=(0,r.createContext)(null);function i({children:e,runId:i}){let{events:l,lastEvent:s,connectionStatus:u}=function(e){let[t,a]=(0,r.useState)([]),[i,l]=(0,r.useState)(null),[s,u]=(0,r.useState)("disconnected"),c=e?.runId,d=(0,r.useRef)(null),f=(0,r.useCallback)(e=>{let t=e.data;if(t&&"object"==typeof t)if("notification"===t.type){let e=t.data;n.debug("event received:",e.eventType,e),a(t=>{let r=[...t,e];return r.length>500?r.slice(-250):r}),l(e)}else"status"===t.type&&u(t.status)},[]);return(0,r.useEffect)(()=>{let e="u">typeof location&&new URLSearchParams(location.search).has("sse");if(!navigator.serviceWorker||e)return o(c,a,l,u);let t=!1,r={current:void 0};function n(e){t||(d.current=e,e.postMessage({type:"subscribe",runId:c}),u("connecting"))}function i(){if(t)return;let e=navigator.serviceWorker.controller;e&&(d.current=e,e.postMessage({type:"subscribe",runId:c}),u("connecting"))}return navigator.serviceWorker.addEventListener("message",f),navigator.serviceWorker.addEventListener("controllerchange",i),navigator.serviceWorker.register("/agent-events-sw.js",{scope:"/"}).then(e=>{if(t)return;let i=e.active??e.installing??e.waiting;if(!i){r.current=o(c,a,l,u);return}if("activated"===i.state)n(i);else{let e=()=>{"activated"===i.state&&(i.removeEventListener("statechange",e),n(i))};i.addEventListener("statechange",e)}}).catch(()=>{t||(r.current=o(c,a,l,u))}),()=>{t=!0,navigator.serviceWorker.removeEventListener("message",f),navigator.serviceWorker.removeEventListener("controllerchange",i),d.current?.postMessage({type:"unsubscribe"}),d.current=null,r.current?.()}},[c,f]),{events:t,lastEvent:i,connectionStatus:s}}({runId:i}),c=(0,r.useMemo)(()=>({events:l,lastEvent:s,connectionStatus:u}),[l,s,u]);return(0,t.jsx)(a.Provider,{value:c,children:e})}function l(){let e=(0,r.useContext)(a);if(!e)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return e}e.s(["AgentEventsProvider",()=>i,"useAgentEventsContext",()=>l],39443)},25235,e=>{"use strict";var t=e.i(20314),r=e.i(79054),n=e.i(87620),o="horizontal",a=["horizontal","vertical"],i=r.forwardRef((e,r)=>{var i;let{decorative:l,orientation:s=o,...u}=e,c=(i=s,a.includes(i))?s:o;return(0,t.jsx)(n.Primitive.div,{"data-orientation":c,...l?{role:"none"}:{"aria-orientation":"vertical"===c?c:void 0,role:"separator"},...u,ref:r})});i.displayName="Separator",e.s(["Root",()=>i,"Separator",()=>i],47402);var l=e.i(47402),l=l,s=e.i(31777);function u({className:e,orientation:r="horizontal",decorative:n=!0,...o}){return(0,t.jsx)(l.Root,{"data-slot":"separator",decorative:n,orientation:r,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...o})}e.s(["Separator",()=>u],25235)},90537,e=>{"use strict";let t=(0,e.i(3645).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["default",()=>t])},48249,e=>{"use strict";var t=e.i(90537);e.s(["XIcon",()=>t.default])},567,e=>{"use strict";var t=e.i(79054),r=e.i(91967),n=e.i(5978),o=e.i(22528),a=e.i(13123),i=e.i(36589),l=e.i(53532),s=e.i(56720),u=e.i(39979),c=e.i(85995),d=e.i(87620),f=e.i(41687),p=e.i(13044),g=e.i(73772),v=e.i(86874),m=e.i(20314),h="Dialog",[y,b]=(0,o.createContextScope)(h),[x,C]=y(h),w=e=>{let{__scopeDialog:r,children:n,open:o,defaultOpen:l,onOpenChange:s,modal:u=!0}=e,c=t.useRef(null),d=t.useRef(null),[f,p]=(0,i.useControllableState)({prop:o,defaultProp:l??!1,onChange:s,caller:h});return(0,m.jsx)(x,{scope:r,triggerRef:c,contentRef:d,contentId:(0,a.useId)(),titleId:(0,a.useId)(),descriptionId:(0,a.useId)(),open:f,onOpenChange:p,onOpenToggle:t.useCallback(()=>p(e=>!e),[p]),modal:u,children:n})};w.displayName=h;var D="DialogTrigger",j=t.forwardRef((e,t)=>{let{__scopeDialog:o,...a}=e,i=C(D,o),l=(0,n.useComposedRefs)(t,i.triggerRef);return(0,m.jsx)(d.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":K(i.open),...a,ref:l,onClick:(0,r.composeEventHandlers)(e.onClick,i.onOpenToggle)})});j.displayName=D;var P="DialogPortal",[E,R]=y(P,{forceMount:void 0}),k=e=>{let{__scopeDialog:r,forceMount:n,children:o,container:a}=e,i=C(P,r);return(0,m.jsx)(E,{scope:r,forceMount:n,children:t.Children.map(o,e=>(0,m.jsx)(c.Presence,{present:n||i.open,children:(0,m.jsx)(u.Portal,{asChild:!0,container:a,children:e})}))})};k.displayName=P;var S="DialogOverlay",A=t.forwardRef((e,t)=>{let r=R(S,e.__scopeDialog),{forceMount:n=r.forceMount,...o}=e,a=C(S,e.__scopeDialog);return a.modal?(0,m.jsx)(c.Presence,{present:n||a.open,children:(0,m.jsx)(O,{...o,ref:t})}):null});A.displayName=S;var _=(0,v.createSlot)("DialogOverlay.RemoveScroll"),O=t.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=C(S,r);return(0,m.jsx)(p.RemoveScroll,{as:_,allowPinchZoom:!0,shards:[o.contentRef],children:(0,m.jsx)(d.Primitive.div,{"data-state":K(o.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),N="DialogContent",T=t.forwardRef((e,t)=>{let r=R(N,e.__scopeDialog),{forceMount:n=r.forceMount,...o}=e,a=C(N,e.__scopeDialog);return(0,m.jsx)(c.Presence,{present:n||a.open,children:a.modal?(0,m.jsx)(I,{...o,ref:t}):(0,m.jsx)(M,{...o,ref:t})})});T.displayName=N;var I=t.forwardRef((e,o)=>{let a=C(N,e.__scopeDialog),i=t.useRef(null),l=(0,n.useComposedRefs)(o,a.contentRef,i);return t.useEffect(()=>{let e=i.current;if(e)return(0,g.hideOthers)(e)},[]),(0,m.jsx)(F,{...e,ref:l,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,r.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),a.triggerRef.current?.focus()}),onPointerDownOutside:(0,r.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,r.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),M=t.forwardRef((e,r)=>{let n=C(N,e.__scopeDialog),o=t.useRef(!1),a=t.useRef(!1);return(0,m.jsx)(F,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),F=t.forwardRef((e,r)=>{let{__scopeDialog:o,trapFocus:a,onOpenAutoFocus:i,onCloseAutoFocus:u,...c}=e,d=C(N,o),p=t.useRef(null),g=(0,n.useComposedRefs)(r,p);return(0,f.useFocusGuards)(),(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(s.FocusScope,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:i,onUnmountAutoFocus:u,children:(0,m.jsx)(l.DismissableLayer,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":K(d.open),...c,ref:g,onDismiss:()=>d.onOpenChange(!1)})}),(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(X,{titleId:d.titleId}),(0,m.jsx)(V,{contentRef:p,descriptionId:d.descriptionId})]})]})}),L="DialogTitle",z=t.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=C(L,r);return(0,m.jsx)(d.Primitive.h2,{id:o.titleId,...n,ref:t})});z.displayName=L;var $="DialogDescription",U=t.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=C($,r);return(0,m.jsx)(d.Primitive.p,{id:o.descriptionId,...n,ref:t})});U.displayName=$;var B="DialogClose",W=t.forwardRef((e,t)=>{let{__scopeDialog:n,...o}=e,a=C(B,n);return(0,m.jsx)(d.Primitive.button,{type:"button",...o,ref:t,onClick:(0,r.composeEventHandlers)(e.onClick,()=>a.onOpenChange(!1))})});function K(e){return e?"open":"closed"}W.displayName=B;var H="DialogTitleWarning",[q,G]=(0,o.createContext)(H,{contentName:N,titleName:L,docsSlug:"dialog"}),X=({titleId:e})=>{let r=G(H),n=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users.
2
-
3
- If you want to hide the \`${r.titleName}\`, you can wrap it with our VisuallyHidden component.
4
-
5
- For more information, see https://radix-ui.com/primitives/docs/components/${r.docsSlug}`;return t.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},V=({contentRef:e,descriptionId:r})=>{let n=G("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return t.useEffect(()=>{let t=e.current?.getAttribute("aria-describedby");r&&t&&(document.getElementById(r)||console.warn(o))},[o,e,r]),null};e.s(["Close",()=>W,"Content",()=>T,"Description",()=>U,"Dialog",()=>w,"DialogClose",()=>W,"DialogContent",()=>T,"DialogDescription",()=>U,"DialogOverlay",()=>A,"DialogPortal",()=>k,"DialogTitle",()=>z,"DialogTrigger",()=>j,"Overlay",()=>A,"Portal",()=>k,"Root",()=>w,"Title",()=>z,"Trigger",()=>j,"WarningProvider",()=>q,"createDialogScope",()=>b])},90033,e=>{"use strict";var t=e.i(567);e.s(["Dialog",0,t])},51251,14748,e=>{"use strict";let t=(0,e.i(3645).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["default",()=>t],14748),e.s(["CircleAlert",()=>t],51251)},83428,15506,e=>{"use strict";let t=(0,e.i(3645).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],15506),e.s(["Loader2",()=>t],83428)},60253,e=>{"use strict";var t=e.i(90537);e.s(["X",()=>t.default])},8361,73709,18354,e=>{"use strict";var t=e.i(44172),r=e.i(79054);let n="shep-sound-enabled",o="shep:sound-toggle";function a(){let[e,t]=(0,r.useState)(!0);(0,r.useEffect)(()=>{"false"===localStorage.getItem(n)&&t(!1);let e=e=>{t(e.detail)};return window.addEventListener(o,e),()=>window.removeEventListener(o,e)},[]);let a=(0,r.useCallback)(()=>{let r=!e;localStorage.setItem(n,String(r)),t(r),window.dispatchEvent(new CustomEvent(o,{detail:r}))},[e]);return{enabled:e,toggle:a}}e.s(["useSoundEnabled",()=>a],73709);let i=new Map,l={navigate:{sound:"tap_01",volume:.2},"menu-item":{sound:"tap_01",volume:.2},select:{sound:"select",volume:.3},"toggle-on":{sound:"toggle_on",volume:.3},"toggle-off":{sound:"toggle_off",volume:.3},click:{sound:"tap_01",volume:.3},cancel:{sound:"transition_down",volume:.3},expand:{sound:"swipe",volume:.3},collapse:{sound:"swipe",volume:.3},"menu-open":{sound:"select",volume:.3},copy:{sound:"select",volume:.3},"drawer-open":{sound:"transition_up",volume:.4},"drawer-close":{sound:"transition_down",volume:.4},submit:{sound:"button",volume:.4},approve:{sound:"celebration",volume:.5},reject:{sound:"caution",volume:.5},create:{sound:"transition_up",volume:.5},delete:{sound:"transition_down",volume:.5},"notification-success":{sound:"celebration",volume:.5},"notification-error":{sound:"caution",volume:.5},"notification-warning":{sound:"notification",volume:.5},"notification-info":{sound:"button",volume:.5}};function s(e){let{sound:t,volume:n}=l[e];return function(e,t={}){let{volume:n=1,loop:o=!1}=t,{enabled:l}=a(),s=(0,r.useRef)(null),u=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{let t,r=((t=i.get(e))||((t=new Audio(`/sounds/${e}.wav`)).preload="auto",i.set(e,t)),t);return r.loop=o,r.volume=Math.max(0,Math.min(1,n)),r.addEventListener("ended",()=>{u.current=!1}),s.current=r,()=>{r.pause(),s.current=null,u.current=!1}},[e,o,n]),{play:(0,r.useCallback)(()=>{if(!l)return;let e=s.current;e&&(e.currentTime=0,e.play()?.catch(e=>{}),u.current=!0)},[l,e]),stop:(0,r.useCallback)(()=>{let e=s.current;e&&(e.pause(),e.currentTime=0,u.current=!1)},[]),isPlaying:u.current}}(t,{volume:n})}e.s(["useSoundAction",()=>s],8361);let u=!!t.default.env.NEXT_PUBLIC_DEBUG,c=()=>void 0;function d(e){return{info:u?(...t)=>console.info(e,...t):c,debug:u?(...t)=>console.debug(e,...t):c,warn:(...t)=>console.warn(e,...t),error:(...t)=>console.error(e,...t)}}e.s(["createLogger",()=>d],18354)},75921,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let n=(0,r.createContext)({skills:!1,envDeploy:!0,debug:!1});function o({children:e,flags:r}){return(0,t.jsx)(n.Provider,{value:r,children:e})}function a(){return(0,r.useContext)(n)}e.s(["FeatureFlagsProvider",()=>o,"useFeatureFlags",()=>a])},31406,(e,t,r)=>{t.exports=e.r(67013)},30153,71326,e=>{"use strict";var t=e.i(20314),r=e.i(79054),n=e.i(22528),o=e.i(5978),a=e.i(567),i=e.i(91967),l=e.i(86874),s="AlertDialog",[u,c]=(0,n.createContextScope)(s,[a.createDialogScope]),d=(0,a.createDialogScope)(),f=e=>{let{__scopeAlertDialog:r,...n}=e,o=d(r);return(0,t.jsx)(a.Root,{...o,...n,modal:!0})};f.displayName=s;var p=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...o}=e,i=d(n);return(0,t.jsx)(a.Trigger,{...i,...o,ref:r})});p.displayName="AlertDialogTrigger";var g=e=>{let{__scopeAlertDialog:r,...n}=e,o=d(r);return(0,t.jsx)(a.Portal,{...o,...n})};g.displayName="AlertDialogPortal";var v=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...o}=e,i=d(n);return(0,t.jsx)(a.Overlay,{...i,...o,ref:r})});v.displayName="AlertDialogOverlay";var m="AlertDialogContent",[h,y]=u(m),b=(0,l.createSlottable)("AlertDialogContent"),x=r.forwardRef((e,n)=>{let{__scopeAlertDialog:l,children:s,...u}=e,c=d(l),f=r.useRef(null),p=(0,o.useComposedRefs)(n,f),g=r.useRef(null);return(0,t.jsx)(a.WarningProvider,{contentName:m,titleName:C,docsSlug:"alert-dialog",children:(0,t.jsx)(h,{scope:l,cancelRef:g,children:(0,t.jsxs)(a.Content,{role:"alertdialog",...c,...u,ref:p,onOpenAutoFocus:(0,i.composeEventHandlers)(u.onOpenAutoFocus,e=>{e.preventDefault(),g.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,t.jsx)(b,{children:s}),(0,t.jsx)(k,{contentRef:f})]})})})});x.displayName=m;var C="AlertDialogTitle",w=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...o}=e,i=d(n);return(0,t.jsx)(a.Title,{...i,...o,ref:r})});w.displayName=C;var D="AlertDialogDescription",j=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...o}=e,i=d(n);return(0,t.jsx)(a.Description,{...i,...o,ref:r})});j.displayName=D;var P=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...o}=e,i=d(n);return(0,t.jsx)(a.Close,{...i,...o,ref:r})});P.displayName="AlertDialogAction";var E="AlertDialogCancel",R=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...i}=e,{cancelRef:l}=y(E,n),s=d(n),u=(0,o.useComposedRefs)(r,l);return(0,t.jsx)(a.Close,{...s,...i,ref:u})});R.displayName=E;var k=({contentRef:e})=>{let t=`\`${m}\` requires a description for the component to be accessible for screen reader users.
6
-
7
- You can add a description to the \`${m}\` by passing a \`${D}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
8
-
9
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${m}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
10
-
11
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return r.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null};e.s(["Action",()=>P,"AlertDialog",()=>f,"AlertDialogAction",()=>P,"AlertDialogCancel",()=>R,"AlertDialogContent",()=>x,"AlertDialogDescription",()=>j,"AlertDialogOverlay",()=>v,"AlertDialogPortal",()=>g,"AlertDialogTitle",()=>w,"AlertDialogTrigger",()=>p,"Cancel",()=>R,"Content",()=>x,"Description",()=>j,"Overlay",()=>v,"Portal",()=>g,"Root",()=>f,"Title",()=>w,"Trigger",()=>p,"createAlertDialogScope",()=>c],28883);var S=e.i(28883),S=S,A=e.i(31777),_=e.i(35364);function O({...e}){return(0,t.jsx)(S.Root,{"data-slot":"alert-dialog",...e})}function N({...e}){return(0,t.jsx)(S.Portal,{"data-slot":"alert-dialog-portal",...e})}function T({className:e,onClick:r,...n}){return(0,t.jsx)(S.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,A.cn)("fixed inset-0 z-50 bg-black/50",e),onClick:e=>{e.stopPropagation(),r?.(e)},...n})}function I({className:e,size:r="default",...n}){return(0,t.jsxs)(N,{children:[(0,t.jsx)(T,{}),(0,t.jsx)(S.Content,{"data-slot":"alert-dialog-content","data-size":r,className:(0,A.cn)("bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",e),...n})]})}function M({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,A.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...r})}function F({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,A.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...r})}function L({className:e,...r}){return(0,t.jsx)(S.Title,{"data-slot":"alert-dialog-title",className:(0,A.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...r})}function z({className:e,...r}){return(0,t.jsx)(S.Description,{"data-slot":"alert-dialog-description",className:(0,A.cn)("text-muted-foreground text-sm",e),...r})}function $({className:e,variant:r="default",size:n="default",...o}){return(0,t.jsx)(_.Button,{variant:r,size:n,asChild:!0,children:(0,t.jsx)(S.Action,{"data-slot":"alert-dialog-action",className:(0,A.cn)(e),...o})})}function U({className:e,variant:r="outline",size:n="default",...o}){return(0,t.jsx)(_.Button,{variant:r,size:n,asChild:!0,children:(0,t.jsx)(S.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,A.cn)(e),...o})})}e.s(["AlertDialog",()=>O,"AlertDialogAction",()=>$,"AlertDialogCancel",()=>U,"AlertDialogContent",()=>I,"AlertDialogDescription",()=>z,"AlertDialogFooter",()=>F,"AlertDialogHeader",()=>M,"AlertDialogTitle",()=>L],71326);let B=(0,r.createContext)(null);function W({children:e}){let n=(0,r.useRef)(null),o=(0,r.useRef)(null),[a,i]=(0,r.useState)(!1),l=(0,r.useCallback)(e=>{n.current=e},[]),s=(0,r.useCallback)(e=>{if(n.current?.isDirty){o.current=e,i(!0);return}e()},[]),u=(0,r.useCallback)(()=>{i(!1),n.current?.onReset(),n.current=null,o.current?.(),o.current=null},[]),c=(0,r.useCallback)(()=>{i(!1),o.current=null},[]),d=(0,r.useCallback)(()=>n.current?.isDirty??!1,[]);return(0,t.jsxs)(B,{value:{setGuard:l,guardedNavigate:s,getIsDirty:d},children:[e,(0,t.jsx)(O,{open:a,children:(0,t.jsxs)(I,{children:[(0,t.jsxs)(M,{children:[(0,t.jsx)(L,{children:"Discard unsaved changes?"}),(0,t.jsx)(z,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),(0,t.jsxs)(F,{children:[(0,t.jsx)($,{variant:"destructive",onClick:u,children:"Discard"}),(0,t.jsx)(U,{onClick:c,children:"Keep editing"})]})]})})]})}function K(){let e=(0,r.useContext)(B);if(!e)throw Error("useDrawerCloseGuard must be used within DrawerCloseGuardProvider");return e}function H({open:e,isDirty:t,onClose:n,onReset:o}){let{setGuard:a,guardedNavigate:i}=K();return(0,r.useEffect)(()=>(e?a({isDirty:t,onReset:o}):a(null),()=>a(null)),[e,t,o,a]),{attemptClose:(0,r.useCallback)(()=>{i(()=>{o(),n()})},[i,n,o])}}e.s(["DrawerCloseGuardProvider",()=>W,"useDrawerCloseGuard",()=>K,"useGuardedDrawerClose",()=>H],30153)},3214,e=>{"use strict";let t=(0,e.i(3645).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],3214)},81975,e=>{"use strict";let t=(0,e.i(3645).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);e.s(["Wrench",()=>t],81975)},80986,e=>{"use strict";let t=(0,e.i(3645).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",()=>t])},30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t])},54277,e=>{"use strict";var t=e.i(30090);e.s(["CircleX",()=>t.default])},27069,e=>{"use strict";function t(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",()=>t])},12103,e=>{"use strict";let t=(0,e.i(3645).default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);e.s(["Puzzle",()=>t],12103)},78521,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("0037950abfc38f16ef684f0d18955e7cb7805d4752",t.callServer,void 0,t.findSourceMapURL,"pickFolder");async function n(){let e=await r();if(e.error)throw Error(e.error);return e.path}e.s(["pickFolder",()=>n],78521)},91925,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["FolderPlus",()=>t],91925)},5147,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let n={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"blocked",pending:"blocked",error:"error",creating:null,deleting:null};function o(e){return n[e]}let a=(0,r.createContext)(null);function i({children:e}){let[n,o]=(0,r.useState)([]),i=(0,r.useMemo)(()=>({features:n,setFeatures:o}),[n]);return(0,t.jsx)(a.Provider,{value:i,children:e})}function l(){let e=(0,r.useContext)(a);if(!e)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return e}e.s(["SidebarFeaturesProvider",()=>i,"mapNodeStateToSidebarStatus",()=>o,"useSidebarFeaturesContext",()=>l])},76314,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95889,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(44066)._(e.r(76314)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",l=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${o}${c}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return l(e)}},58464,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return h},MiddlewareNotFoundError:function(){return C},MissingStaticPage:function(){return x},NormalizeError:function(){return y},PageNotFoundError:function(){return b},SP:function(){return v},ST:function(){return m},WEB_VITALS:function(){return a},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function g(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await g(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let v="u">typeof performance,m=v&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class y extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class C extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},51380,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(58464),o=e.r(53626);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},38670,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},24035,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return h},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(44066),i=e.r(20314),l=a._(e.r(79054)),s=e.r(95889),u=e.r(18152),c=e.r(80764),d=e.r(58464),f=e.r(99267);e.r(24270);let p=e.r(59624),g=e.r(51380),v=e.r(95555);function m(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function h(t){var r;let n,o,a,[s,h]=(0,l.useOptimistic)(p.IDLE_LINK_STATUS),b=(0,l.useRef)(null),{href:x,as:C,children:w,prefetch:D=null,passHref:j,replace:P,shallow:E,scroll:R,onClick:k,onMouseEnter:S,onTouchStart:A,legacyBehavior:_=!1,onNavigate:O,ref:N,unstable_dynamicOnHover:T,...I}=t;n=w,_&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let M=l.default.useContext(u.AppRouterContext),F=!1!==D,L=!1!==D?null===(r=D)||"auto"===r?v.FetchStrategy.PPR:v.FetchStrategy.Full:v.FetchStrategy.PPR,{href:z,as:$}=l.default.useMemo(()=>{let e=m(x);return{href:e,as:C?m(C):e}},[x,C]);if(_){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=l.default.Children.only(n)}let U=_?o&&"object"==typeof o&&o.ref:N,B=l.default.useCallback(e=>(null!==M&&(b.current=(0,p.mountLinkInstance)(e,z,M,L,F,h)),()=>{b.current&&((0,p.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,p.unmountPrefetchableInstance)(e)}),[F,z,M,L,h]),W={ref:(0,c.useMergedRef)(B,U),onClick(t){_||"function"!=typeof k||k(t),_&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!M||t.defaultPrevented||function(t,r,n,o,a,i,s){if("u">typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(81574);l.default.startTransition(()=>{d(n||r,a?"replace":"push",i??!0,o.current)})}}(t,z,$,b,P,R,O)},onMouseEnter(e){_||"function"!=typeof S||S(e),_&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),M&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===T)},onTouchStart:function(e){_||"function"!=typeof A||A(e),_&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),M&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===T)}};return(0,d.isAbsoluteUrl)($)?W.href=$:_&&!j&&("a"!==o.type||"href"in o.props)||(W.href=(0,f.addBasePath)($)),a=_?l.default.cloneElement(o,W):(0,i.jsx)("a",{...I,...W,children:n}),(0,i.jsx)(y.Provider,{value:s,children:a})}e.r(38670);let y=(0,l.createContext)(p.IDLE_LINK_STATUS),b=()=>(0,l.useContext)(y);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81181,e=>{"use strict";var t=e.i(95230);e.s(["Download",()=>t.default])},95812,e=>{"use strict";let t=(0,e.i(3645).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],95812)},35e3,e=>{"use strict";var t=e.i(80986);e.s(["CheckCircle2",()=>t.default])},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},30702,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["ExternalLink",()=>t],30702)},81846,e=>{"use strict";var t=e.i(20314),s=e.i(94237),r=e.i(31777);let a=(0,s.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i({className:e,variant:s,...i}){return(0,t.jsx)("div",{className:(0,r.cn)(a({variant:s}),e),...i})}e.s(["Badge",()=>i])},23925,1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],1012),e.s(["Check",()=>t],23925)},95230,e=>{"use strict";let t=(0,e.i(3645).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["default",()=>t])},87342,e=>{"use strict";var t=e.i(79054),s=e.i(22528),r=e.i(5978),a=e.i(86874),i=e.i(20314);function l(e){let l=e+"CollectionProvider",[n,o]=(0,s.createContextScope)(l),[c,d]=n(l,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:s,children:r}=e,a=t.default.useRef(null),l=t.default.useRef(new Map).current;return(0,i.jsx)(c,{scope:s,itemMap:l,collectionRef:a,children:r})};u.displayName=l;let m=e+"CollectionSlot",f=(0,a.createSlot)(m),h=t.default.forwardRef((e,t)=>{let{scope:s,children:a}=e,l=d(m,s),n=(0,r.useComposedRefs)(t,l.collectionRef);return(0,i.jsx)(f,{ref:n,children:a})});h.displayName=m;let x=e+"CollectionItemSlot",p="data-radix-collection-item",g=(0,a.createSlot)(x),v=t.default.forwardRef((e,s)=>{let{scope:a,children:l,...n}=e,o=t.default.useRef(null),c=(0,r.useComposedRefs)(s,o),u=d(x,a);return t.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...n}),()=>void u.itemMap.delete(o))),(0,i.jsx)(g,{...{[p]:""},ref:c,children:l})});return v.displayName=x,[{Provider:u,Slot:h,ItemSlot:v},function(s){let r=d(e+"CollectionConsumer",s);return t.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,s)=>t.indexOf(e.ref.current)-t.indexOf(s.ref.current))},[r.collectionRef,r.itemMap])},o]}var n=new WeakMap;function o(e,t){var s,r;let a,i,l;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let n=(s=e,r=t,a=s.length,(l=(i=c(r))>=0?i:a+i)<0||l>=a?-1:l);return -1===n?void 0:e[n]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],n.set(this,!0)}set(e,t){return n.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,s){let r,a=this.has(t),i=this.#e.length,l=c(e),n=l>=0?l:i+l,o=n<0||n>=i?-1:n;if(o===this.size||a&&o===this.size-1||-1===o)return this.set(t,s),this;let d=this.size+ +!a;l<0&&n++;let u=[...this.#e],m=!1;for(let e=n;e<d;e++)if(n===e){let i=u[e];u[e]===t&&(i=u[e+1]),a&&this.delete(t),r=this.get(i),this.set(t,s)}else{m||u[e-1]!==t||(m=!0);let s=u[m?e:e-1],a=r;r=this.get(s),this.delete(s),this.set(s,a)}return this}with(t,s,r){let a=new e(this);return a.insert(t,s,r),a}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,s){let r=this.#e.indexOf(e);return -1===r?this:this.insert(r,t,s)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,s){let r=this.#e.indexOf(e);return -1===r?this:this.insert(r+1,t,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=o(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=o(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return o(this.#e,e)}from(e,t){let s=this.indexOf(e);if(-1===s)return;let r=s+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let s=this.indexOf(e);if(-1===s)return;let r=s+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return r;s++}}findIndex(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return s;s++}return -1}filter(t,s){let r=[],a=0;for(let e of this)Reflect.apply(t,s,[e,a,this])&&r.push(e),a++;return new e(r)}map(t,s){let r=[],a=0;for(let e of this)r.push([e[0],Reflect.apply(t,s,[e,a,this])]),a++;return new e(r)}reduce(...e){let[t,s]=e,r=0,a=s??this.at(0);for(let s of this)a=0===r&&1===e.length?s:Reflect.apply(t,this,[a,s,r,this]),r++;return a}reduceRight(...e){let[t,s]=e,r=s??this.at(-1);for(let s=this.size-1;s>=0;s--){let a=this.at(s);r=s===this.size-1&&1===e.length?a:Reflect.apply(t,this,[r,a,s,this])}return r}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let s=this.keyAt(e),r=this.get(s);t.set(s,r)}return t}toSpliced(...t){let s=[...this.entries()];return s.splice(...t),new e(s)}slice(t,s){let r=new e,a=this.size-1;if(void 0===t)return r;t<0&&(t+=this.size),void 0!==s&&s>0&&(a=s-1);for(let e=t;e<=a;e++){let t=this.keyAt(e),s=this.get(t);r.set(t,s)}return r}every(e,t){let s=0;for(let r of this){if(!Reflect.apply(e,t,[r,s,this]))return!1;s++}return!0}some(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return!0;s++}return!1}}),e.s(["createCollection",()=>l])},49228,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["GitBranch",()=>t],49228)},68304,51080,e=>{"use strict";var t=e.i(20314),s=e.i(79054),r=e.i(91967),a=e.i(22528),i=e.i(87342),l=e.i(5978),n=e.i(13123),o=e.i(87620),c=e.i(29297),d=e.i(36589),u=e.i(66033),m="rovingFocusGroup.onEntryFocus",f={bubbles:!1,cancelable:!0},h="RovingFocusGroup",[x,p,g]=(0,i.createCollection)(h),[v,b]=(0,a.createContextScope)(h,[g]),[y,j]=v(h),k=s.forwardRef((e,s)=>(0,t.jsx)(x.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(x.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(w,{...e,ref:s})})}));k.displayName=h;var w=s.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,orientation:n,loop:x=!1,dir:g,currentTabStopId:v,defaultCurrentTabStopId:b,onCurrentTabStopIdChange:j,onEntryFocus:k,preventScrollOnEntryFocus:w=!1,...N}=e,C=s.useRef(null),T=(0,l.useComposedRefs)(a,C),I=(0,u.useDirection)(g),[S,A]=(0,d.useControllableState)({prop:v,defaultProp:b??null,onChange:j,caller:h}),[z,E]=s.useState(!1),M=(0,c.useCallbackRef)(k),D=p(i),L=s.useRef(!1),[P,F]=s.useState(0);return s.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(m,M),()=>e.removeEventListener(m,M)},[M]),(0,t.jsx)(y,{scope:i,orientation:n,dir:I,loop:x,currentTabStopId:S,onItemFocus:s.useCallback(e=>A(e),[A]),onItemShiftTab:s.useCallback(()=>E(!0),[]),onFocusableItemAdd:s.useCallback(()=>F(e=>e+1),[]),onFocusableItemRemove:s.useCallback(()=>F(e=>e-1),[]),children:(0,t.jsx)(o.Primitive.div,{tabIndex:z||0===P?-1:0,"data-orientation":n,...N,ref:T,style:{outline:"none",...e.style},onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,()=>{L.current=!0}),onFocus:(0,r.composeEventHandlers)(e.onFocus,e=>{let t=!L.current;if(e.target===e.currentTarget&&t&&!z){let t=new CustomEvent(m,f);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=D().filter(e=>e.focusable);R([e.find(e=>e.active),e.find(e=>e.id===S),...e].filter(Boolean).map(e=>e.ref.current),w)}}L.current=!1}),onBlur:(0,r.composeEventHandlers)(e.onBlur,()=>E(!1))})})}),N="RovingFocusGroupItem",C=s.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,focusable:l=!0,active:c=!1,tabStopId:d,children:u,...m}=e,f=(0,n.useId)(),h=d||f,g=j(N,i),v=g.currentTabStopId===h,b=p(i),{onFocusableItemAdd:y,onFocusableItemRemove:k,currentTabStopId:w}=g;return s.useEffect(()=>{if(l)return y(),()=>k()},[l,y,k]),(0,t.jsx)(x.ItemSlot,{scope:i,id:h,focusable:l,active:c,children:(0,t.jsx)(o.Primitive.span,{tabIndex:v?0:-1,"data-orientation":g.orientation,...m,ref:a,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{l?g.onItemFocus(h):e.preventDefault()}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>g.onItemFocus(h)),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void g.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,s){var r;let a=(r=e.key,"rtl"!==s?r:"ArrowLeft"===r?"ArrowRight":"ArrowRight"===r?"ArrowLeft":r);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return T[a]}(e,g.orientation,g.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=b().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var s,r;"prev"===t&&a.reverse();let i=a.indexOf(e.currentTarget);a=g.loop?(s=a,r=i+1,s.map((e,t)=>s[(r+t)%s.length])):a.slice(i+1)}setTimeout(()=>R(a))}}),children:"function"==typeof u?u({isCurrentTabStop:v,hasTabStop:null!=w}):u})})});C.displayName=N;var T={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function R(e,t=!1){let s=document.activeElement;for(let r of e)if(r===s||(r.focus({preventScroll:t}),document.activeElement!==s))return}e.s(["Item",()=>C,"Root",()=>k,"createRovingFocusGroupScope",()=>b],51080);var I=e.i(85995),S="Tabs",[A,z]=(0,a.createContextScope)(S,[b]),E=b(),[M,D]=A(S),L=s.forwardRef((e,s)=>{let{__scopeTabs:r,value:a,onValueChange:i,defaultValue:l,orientation:c="horizontal",dir:m,activationMode:f="automatic",...h}=e,x=(0,u.useDirection)(m),[p,g]=(0,d.useControllableState)({prop:a,onChange:i,defaultProp:l??"",caller:S});return(0,t.jsx)(M,{scope:r,baseId:(0,n.useId)(),value:p,onValueChange:g,orientation:c,dir:x,activationMode:f,children:(0,t.jsx)(o.Primitive.div,{dir:x,"data-orientation":c,...h,ref:s})})});L.displayName=S;var P="TabsList",F=s.forwardRef((e,s)=>{let{__scopeTabs:r,loop:a=!0,...i}=e,l=D(P,r),n=E(r);return(0,t.jsx)(k,{asChild:!0,...n,orientation:l.orientation,dir:l.dir,loop:a,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":l.orientation,...i,ref:s})})});F.displayName=P;var O="TabsTrigger",B=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:i,disabled:l=!1,...n}=e,c=D(O,a),d=E(a),u=V(c.baseId,i),m=K(c.baseId,i),f=i===c.value;return(0,t.jsx)(C,{asChild:!0,...d,focusable:!l,active:f,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":m,"data-state":f?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:u,...n,ref:s,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{l||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(i)}),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(i)}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;f||l||!e||c.onValueChange(i)})})})});B.displayName=O;var H="TabsContent",q=s.forwardRef((e,r)=>{let{__scopeTabs:a,value:i,forceMount:l,children:n,...c}=e,d=D(H,a),u=V(d.baseId,i),m=K(d.baseId,i),f=i===d.value,h=s.useRef(f);return s.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(I.Presence,{present:l||f,children:({present:s})=>(0,t.jsx)(o.Primitive.div,{"data-state":f?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":u,hidden:!s,id:m,tabIndex:0,...c,ref:r,style:{...e.style,animationDuration:h.current?"0s":void 0},children:s&&n})})});function V(e,t){return`${e}-trigger-${t}`}function K(e,t){return`${e}-content-${t}`}q.displayName=H,e.s(["Content",()=>q,"List",()=>F,"Root",()=>L,"Tabs",()=>L,"TabsContent",()=>q,"TabsList",()=>F,"TabsTrigger",()=>B,"Trigger",()=>B,"createTabsScope",()=>z],43133);var $=e.i(43133),$=$,U=e.i(31777);let G=$.Root,_=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.List,{ref:r,className:(0,U.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...s}));_.displayName=$.List.displayName;let W=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.Trigger,{ref:r,className:(0,U.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...s}));W.displayName=$.Trigger.displayName;let J=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.Content,{ref:r,className:(0,U.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...s}));J.displayName=$.Content.displayName,e.s(["Tabs",()=>G,"TabsContent",()=>J,"TabsList",()=>_,"TabsTrigger",()=>W],68304)},83902,e=>{"use strict";let t=(0,e.i(3645).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);e.s(["Rocket",()=>t],83902)},44412,e=>{"use strict";var t=e.i(20314),s=e.i(79054),r=e.i(81975),a=e.i(68304),i=e.i(31777),l=e.i(83428),n=e.i(83902),o=e.i(81181),c=e.i(3645);let d=(0,c.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var u=e.i(38573),m=e.i(49228),f=e.i(54277),h=e.i(95812),x=e.i(35e3);let p=(0,c.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var g=e.i(35364),v=e.i(2828),b=e.i(33548),y=e.i(23925),j=e.i(30702),k=e.i(11495);let w={linux:"Linux",darwin:"macOS",win32:"Windows"},N={ide:{label:"IDE",icon:d},"cli-agent":{label:"CLI Agent",icon:u.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:u.Terminal}};function C({status:e}){return"available"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-100 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",children:[(0,t.jsx)(y.Check,{className:"h-3 w-3"}),"Installed"]}):"error"===e?(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-full bg-red-100 px-2 py-0.5 text-xs font-medium text-red-700 dark:bg-red-900/30 dark:text-red-400",children:"Error"}):(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-100 px-2 py-0.5 text-xs font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",children:"Missing"})}function T({tool:e,open:r,onClose:a,onRefresh:i,autoStart:c}){let[u,m]=(0,s.useState)(!1),[f,h]=(0,s.useState)(!1),{logs:x,status:v,startInstall:T}=function(e){let[t,r]=(0,s.useState)([]),[a,i]=(0,s.useState)("idle"),[l,n]=(0,s.useState)(null),o=(0,s.useRef)(null),c=(0,s.useCallback)(()=>{o.current&&(o.current.close(),o.current=null)},[]);return(0,s.useEffect)(()=>c,[c]),{logs:t,status:a,result:l,startInstall:(0,s.useCallback)(()=>{c(),r([]),n(null),i("streaming");let t=new EventSource(`/api/tools/${e}/install/stream`);o.current=t,t.onmessage=e=>{r(t=>[...t,e.data])},t.addEventListener("done",e=>{let t=JSON.parse(e.data);n(t),i("error"===t.status?"error":"done"),c()}),t.onerror=()=>{i("error"),c()}},[e,c])}}(e.id),R=(0,s.useRef)(null),I=(0,s.useRef)(!0),S=(0,s.useRef)(!1),A="available"===e.status.status,z="error"===e.status.status,E=A&&!!e.openDirectory,M=!A&&!z&&e.autoInstall;async function D(){h(!0);try{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})}finally{h(!1)}}(0,s.useEffect)(()=>{r&&c&&M&&"idle"===v&&!S.current&&(S.current=!0,T()),r||(S.current=!1)},[r,c,M,v,T]);let L=(0,s.useCallback)(()=>{let e=R.current;e&&(I.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);(0,s.useEffect)(()=>{I.current&&R.current&&(R.current.scrollTop=R.current.scrollHeight)},[x,v]),(0,s.useEffect)(()=>{"done"===v&&i&&i()},[v,i]);let P=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 pr-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:24,height:24,className:"shrink-0 dark:invert"}):(0,t.jsx)(p,{className:"text-muted-foreground h-6 w-6 shrink-0"}),(0,t.jsx)("h2",{className:"text-base font-bold",children:e.name}),(0,t.jsx)(C,{status:e.status.status})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:e.tags.map(e=>{let s=N[e]??{label:e,icon:d},r=s.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[10px]",children:[(0,t.jsx)(r,{className:"h-3 w-3"}),s.label]},e)})})]});return(0,t.jsx)(k.BaseDrawer,{open:r,onClose:a,size:"md",modal:!0,title:e.name,header:P,"data-testid":"tool-detail-drawer",children:(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-4 overflow-y-auto p-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),e.author||e.platforms?(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",children:[e.author?(0,t.jsxs)("span",{className:"text-muted-foreground",children:["by"," ",e.website?(0,t.jsx)("a",{href:e.website,target:"_blank",rel:"noopener noreferrer",className:"text-foreground hover:underline",children:e.author}):(0,t.jsx)("span",{className:"text-foreground",children:e.author})]}):null,e.platforms&&e.platforms.length>0?(0,t.jsx)("span",{className:"text-muted-foreground",children:e.platforms.map(e=>w[e]??e).join(" · ")}):null]}):null,e.installCommand?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:"Install command"}),(0,t.jsxs)("div",{className:"relative rounded-md bg-zinc-900 text-zinc-100",children:[(0,t.jsx)("pre",{className:"overflow-x-auto px-3 py-2.5 pr-16 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(g.Button,{variant:"ghost",size:"sm",className:"absolute top-1.5 right-1.5 h-7 cursor-pointer px-2 text-zinc-400 hover:text-zinc-100",onClick:function(){e.installCommand&&navigator.clipboard.writeText(e.installCommand).then(()=>{m(!0),setTimeout(()=>m(!1),2e3)})},"aria-label":u?"Copied!":"Copy install command",children:[u?(0,t.jsx)(y.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(b.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1 text-[10px]",children:u?"Copied!":"Copy"})]})]})]}):null,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[M?(0,t.jsxs)(g.Button,{size:"sm",onClick:T,disabled:"streaming"===v,"aria-label":`Install ${e.name}`,className:"cursor-pointer",children:["streaming"===v?(0,t.jsx)(l.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(o.Download,{className:"mr-1.5 h-3.5 w-3.5"}),"streaming"===v?"Installing...":"Install"]}):null,E?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>void D(),disabled:f,"aria-label":`Launch ${e.name}`,className:"cursor-pointer",children:[f?(0,t.jsx)(l.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(n.Rocket,{className:"mr-1.5 h-3.5 w-3.5"}),"Launch"]}):null,e.documentationUrl?(0,t.jsx)(g.Button,{variant:"outline",size:"sm",className:"cursor-pointer",asChild:!0,children:(0,t.jsxs)("a",{href:e.documentationUrl,target:"_blank",rel:"noopener noreferrer",children:["Docs",(0,t.jsx)(j.ExternalLink,{className:"ml-1 h-3 w-3"})]})}):null]}),("streaming"===v||"done"===v||"error"===v)&&x.length>0?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:"Install log"}),(0,t.jsxs)("div",{ref:R,onScroll:L,className:"max-h-60 overflow-auto rounded-md bg-zinc-900 p-3 font-mono text-xs leading-relaxed text-zinc-100","data-testid":"tool-install-log",children:[x.map((e,s)=>(0,t.jsx)("div",{className:"break-all whitespace-pre-wrap",children:e},s)),"done"===v?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-emerald-400",children:"Installation complete"}):null,"error"===v?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-red-400",children:"Installation failed"}):null]})]}):null]})})}let R={ide:{label:"IDE",icon:d},"cli-agent":{label:"CLI Agent",icon:u.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:u.Terminal}};function I({tool:e,onRefresh:r,className:a}){let[c,u]=(0,s.useState)(!1),[m,b]=(0,s.useState)(!1),[y,j]=(0,s.useTransition)(),k="available"===e.status.status,w="error"===e.status.status,N=k&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",onClick:function(){b(!1),u(!0)},className:(0,i.cn)("bg-card group flex h-30 w-full cursor-pointer flex-col rounded-lg border p-3 transition-shadow hover:shadow-md",a),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:20,height:20,className:"shrink-0 dark:invert"}):(0,t.jsx)(p,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"truncate text-sm font-bold",children:e.name})]}),(0,t.jsx)("div",{"data-testid":"tool-card-tags",className:"flex shrink-0 items-center gap-1",children:e.tags.map(e=>{let s=R[e]??{label:e,icon:d},r=s.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[9px]",children:[(0,t.jsx)(r,{className:"h-2.5 w-2.5"}),s.label]},e)})})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground mt-1 truncate text-xs",children:e.summary}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[w&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate text-[10px] text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(f.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):k?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(x.CheckCircle2,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-[10px]",children:[(0,t.jsx)(h.Circle,{className:"h-3 w-3"}),"Not installed"]}),e.required?(0,t.jsx)(v.TooltipProvider,{children:(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[9px] font-medium text-amber-700 dark:bg-amber-900/50 dark:text-amber-400",children:"Required"})}),(0,t.jsx)(v.TooltipContent,{side:"top",children:"This tool is required for Shep to function properly"})]})}):null]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:k&&N?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:function(t){t.stopPropagation(),j(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:y,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[y?(0,t.jsx)(l.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(n.Rocket,{className:"mr-1 h-3 w-3"}),"Launch"]}):k||w?null:(0,t.jsxs)(g.Button,{size:"sm",variant:"default",onClick:function(t){t.stopPropagation(),b(e.autoInstall),u(!0)},"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[(0,t.jsx)(o.Download,{className:"mr-1 h-3 w-3"}),"Install"]})})]})]}),(0,t.jsx)(T,{tool:e,open:c,onClose:()=>u(!1),onRefresh:r,autoStart:m})]})}let S={all:()=>!0,ide:e=>e.tags.includes("ide"),"cli-agent":e=>e.tags.includes("cli-agent"),vcs:e=>e.tags.includes("vcs"),terminal:e=>e.tags.includes("terminal")};function A({tools:e,className:l}){let[n,o]=(0,s.useState)(e),[c,d]=(0,s.useState)("all"),u=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}},[]),m=n.filter(S[c]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,i.cn)("space-y-4",l),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(r.Wrench,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:[n.filter(e=>"available"===e.status.status).length,"/",n.length," installed"]})]}),(0,t.jsxs)(a.Tabs,{value:c,onValueChange:e=>d(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(a.TabsList,{className:"h-7",children:[(0,t.jsx)(a.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(a.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(a.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(a.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(a.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(a.TabsContent,{value:c,className:"mt-3",children:0===m.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-12 text-center",children:[(0,t.jsx)(r.Wrench,{className:"mb-2 h-6 w-6 opacity-20"}),(0,t.jsx)("p",{className:"text-xs",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:m.map(e=>(0,t.jsx)(I,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>A],44412)}]);