@wascartech/devbot 0.0.0-stage → 2.1.1

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 (376) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +638 -2
  3. package/dist/access-grant-store.js +99 -0
  4. package/dist/access-grant-store.js.map +1 -0
  5. package/dist/access-resolve.js +11 -0
  6. package/dist/access-resolve.js.map +1 -0
  7. package/dist/access-rule-store.js +99 -0
  8. package/dist/access-rule-store.js.map +1 -0
  9. package/dist/admin/access-routes.js +73 -0
  10. package/dist/admin/access-routes.js.map +1 -0
  11. package/dist/admin/access-rule-routes.js +107 -0
  12. package/dist/admin/access-rule-routes.js.map +1 -0
  13. package/dist/admin/custom-repos-routes.js +93 -0
  14. package/dist/admin/custom-repos-routes.js.map +1 -0
  15. package/dist/admin/env-routes.js +74 -0
  16. package/dist/admin/env-routes.js.map +1 -0
  17. package/dist/admin/global-settings-routes.js +254 -0
  18. package/dist/admin/global-settings-routes.js.map +1 -0
  19. package/dist/admin/mcp-cleanup.js +12 -0
  20. package/dist/admin/mcp-cleanup.js.map +1 -0
  21. package/dist/admin/mcp-routes.js +169 -0
  22. package/dist/admin/mcp-routes.js.map +1 -0
  23. package/dist/admin/query-params.js +80 -0
  24. package/dist/admin/query-params.js.map +1 -0
  25. package/dist/admin/routes.js +150 -0
  26. package/dist/admin/routes.js.map +1 -0
  27. package/dist/admin/run-history-routes.js +44 -0
  28. package/dist/admin/run-history-routes.js.map +1 -0
  29. package/dist/admin/run-routes.js +99 -0
  30. package/dist/admin/run-routes.js.map +1 -0
  31. package/dist/admin/settings-routes.js +119 -0
  32. package/dist/admin/settings-routes.js.map +1 -0
  33. package/dist/admin/stats-routes.js +51 -0
  34. package/dist/admin/stats-routes.js.map +1 -0
  35. package/dist/admin/task-routes.js +213 -0
  36. package/dist/admin/task-routes.js.map +1 -0
  37. package/dist/admin/test-routes.js +38 -0
  38. package/dist/admin/test-routes.js.map +1 -0
  39. package/dist/admin/volume-routes.js +82 -0
  40. package/dist/admin/volume-routes.js.map +1 -0
  41. package/dist/admin/webhook-routes.js +174 -0
  42. package/dist/admin/webhook-routes.js.map +1 -0
  43. package/dist/agents.js +48 -0
  44. package/dist/agents.js.map +1 -0
  45. package/dist/assignee-value.js +6 -0
  46. package/dist/assignee-value.js.map +1 -0
  47. package/dist/attachments.js +76 -0
  48. package/dist/attachments.js.map +1 -0
  49. package/dist/auto-commands.js +88 -0
  50. package/dist/auto-commands.js.map +1 -0
  51. package/dist/auto-features.js +32 -0
  52. package/dist/auto-features.js.map +1 -0
  53. package/dist/base-branch-store.js +40 -0
  54. package/dist/base-branch-store.js.map +1 -0
  55. package/dist/base-branches.js +9 -0
  56. package/dist/base-branches.js.map +1 -0
  57. package/dist/build-workflow.js +116 -0
  58. package/dist/build-workflow.js.map +1 -0
  59. package/dist/change-request-lifecycle.js +16 -0
  60. package/dist/change-request-lifecycle.js.map +1 -0
  61. package/dist/change-request-store.js +72 -0
  62. package/dist/change-request-store.js.map +1 -0
  63. package/dist/ci-failure.js +80 -0
  64. package/dist/ci-failure.js.map +1 -0
  65. package/dist/cli.js +3 -0
  66. package/dist/cli.js.map +1 -0
  67. package/dist/config.js +17 -0
  68. package/dist/config.js.map +1 -0
  69. package/dist/conflict-fix.js +178 -0
  70. package/dist/conflict-fix.js.map +1 -0
  71. package/dist/cookie.js +70 -0
  72. package/dist/cookie.js.map +1 -0
  73. package/dist/crypto-util.js +40 -0
  74. package/dist/crypto-util.js.map +1 -0
  75. package/dist/custom-repos-store.js +90 -0
  76. package/dist/custom-repos-store.js.map +1 -0
  77. package/dist/custom-repos-sync.js +118 -0
  78. package/dist/custom-repos-sync.js.map +1 -0
  79. package/dist/db.js +12 -0
  80. package/dist/db.js.map +1 -0
  81. package/dist/devbot-scripts.js +18 -0
  82. package/dist/devbot-scripts.js.map +1 -0
  83. package/dist/devcontainer.js +150 -0
  84. package/dist/devcontainer.js.map +1 -0
  85. package/dist/env-config-store.js +132 -0
  86. package/dist/env-config-store.js.map +1 -0
  87. package/dist/error-log-store.js +193 -0
  88. package/dist/error-log-store.js.map +1 -0
  89. package/dist/git.js +605 -0
  90. package/dist/git.js.map +1 -0
  91. package/dist/global-queue.js +127 -0
  92. package/dist/global-queue.js.map +1 -0
  93. package/dist/global-settings-store.js +307 -0
  94. package/dist/global-settings-store.js.map +1 -0
  95. package/dist/help.js +41 -0
  96. package/dist/help.js.map +1 -0
  97. package/dist/http-csp.js +15 -0
  98. package/dist/http-csp.js.map +1 -0
  99. package/dist/http-util.js +40 -0
  100. package/dist/http-util.js.map +1 -0
  101. package/dist/idempotency.js +50 -0
  102. package/dist/idempotency.js.map +1 -0
  103. package/dist/lifecycle.js +234 -0
  104. package/dist/lifecycle.js.map +1 -0
  105. package/dist/logger.js +33 -0
  106. package/dist/logger.js.map +1 -0
  107. package/dist/lsp-servers.js +81 -0
  108. package/dist/lsp-servers.js.map +1 -0
  109. package/dist/mcp/auth.js +62 -0
  110. package/dist/mcp/auth.js.map +1 -0
  111. package/dist/mcp/effective-mcp.js +42 -0
  112. package/dist/mcp/effective-mcp.js.map +1 -0
  113. package/dist/mcp/oauth-refresh.js +138 -0
  114. package/dist/mcp/oauth-refresh.js.map +1 -0
  115. package/dist/mcp/peer-sync.js +109 -0
  116. package/dist/mcp/peer-sync.js.map +1 -0
  117. package/dist/mcp/registry.js +54 -0
  118. package/dist/mcp/registry.js.map +1 -0
  119. package/dist/mcp/runner-bridge.js +93 -0
  120. package/dist/mcp/runner-bridge.js.map +1 -0
  121. package/dist/mcp/server.js +173 -0
  122. package/dist/mcp/server.js.map +1 -0
  123. package/dist/mcp/tools/_helpers.js +88 -0
  124. package/dist/mcp/tools/_helpers.js.map +1 -0
  125. package/dist/mcp/tools/attachments.js +117 -0
  126. package/dist/mcp/tools/attachments.js.map +1 -0
  127. package/dist/mcp/tools/cicd.js +105 -0
  128. package/dist/mcp/tools/cicd.js.map +1 -0
  129. package/dist/mcp/tools/discovery.js +34 -0
  130. package/dist/mcp/tools/discovery.js.map +1 -0
  131. package/dist/mcp/tools/issues.js +56 -0
  132. package/dist/mcp/tools/issues.js.map +1 -0
  133. package/dist/mcp/tools/merge_requests.js +67 -0
  134. package/dist/mcp/tools/merge_requests.js.map +1 -0
  135. package/dist/mcp/tools/metadata.js +127 -0
  136. package/dist/mcp/tools/metadata.js.map +1 -0
  137. package/dist/mcp/tools/peer_sync.js +43 -0
  138. package/dist/mcp/tools/peer_sync.js.map +1 -0
  139. package/dist/mcp/tools/repository.js +178 -0
  140. package/dist/mcp/tools/repository.js.map +1 -0
  141. package/dist/mcp/tools/work_tracking.js +125 -0
  142. package/dist/mcp/tools/work_tracking.js.map +1 -0
  143. package/dist/mcp/tools/workitems.js +30 -0
  144. package/dist/mcp/tools/workitems.js.map +1 -0
  145. package/dist/mcp/volume-files.js +187 -0
  146. package/dist/mcp/volume-files.js.map +1 -0
  147. package/dist/mcp-auth-store.js +134 -0
  148. package/dist/mcp-auth-store.js.map +1 -0
  149. package/dist/mcp-config-store.js +83 -0
  150. package/dist/mcp-config-store.js.map +1 -0
  151. package/dist/mention.js +512 -0
  152. package/dist/mention.js.map +1 -0
  153. package/dist/migrate.js +438 -0
  154. package/dist/migrate.js.map +1 -0
  155. package/dist/mr-assignee.js +71 -0
  156. package/dist/mr-assignee.js.map +1 -0
  157. package/dist/mr-content.js +90 -0
  158. package/dist/mr-content.js.map +1 -0
  159. package/dist/oauth-routes.js +54 -0
  160. package/dist/oauth-routes.js.map +1 -0
  161. package/dist/onboarding-allowlist.js +32 -0
  162. package/dist/onboarding-allowlist.js.map +1 -0
  163. package/dist/opencode.js +291 -0
  164. package/dist/opencode.js.map +1 -0
  165. package/dist/outbound-webhook-store.js +229 -0
  166. package/dist/outbound-webhook-store.js.map +1 -0
  167. package/dist/outbound-webhook.js +314 -0
  168. package/dist/outbound-webhook.js.map +1 -0
  169. package/dist/path-sandbox.js +200 -0
  170. package/dist/path-sandbox.js.map +1 -0
  171. package/dist/platform/git-auth.js +34 -0
  172. package/dist/platform/git-auth.js.map +1 -0
  173. package/dist/platform/gitealike/attachments.js +62 -0
  174. package/dist/platform/gitealike/attachments.js.map +1 -0
  175. package/dist/platform/gitealike/base.js +935 -0
  176. package/dist/platform/gitealike/base.js.map +1 -0
  177. package/dist/platform/gitealike/forgejo.js +16 -0
  178. package/dist/platform/gitealike/forgejo.js.map +1 -0
  179. package/dist/platform/gitealike/gitea.js +16 -0
  180. package/dist/platform/gitealike/gitea.js.map +1 -0
  181. package/dist/platform/gitealike/http.js +152 -0
  182. package/dist/platform/gitealike/http.js.map +1 -0
  183. package/dist/platform/gitealike/schemas.js +284 -0
  184. package/dist/platform/gitealike/schemas.js.map +1 -0
  185. package/dist/platform/github/attachments.js +52 -0
  186. package/dist/platform/github/attachments.js.map +1 -0
  187. package/dist/platform/github/http.js +153 -0
  188. package/dist/platform/github/http.js.map +1 -0
  189. package/dist/platform/github/index.js +936 -0
  190. package/dist/platform/github/index.js.map +1 -0
  191. package/dist/platform/github/schemas.js +308 -0
  192. package/dist/platform/github/schemas.js.map +1 -0
  193. package/dist/platform/github/zip.js +85 -0
  194. package/dist/platform/github/zip.js.map +1 -0
  195. package/dist/platform/gitlab/admin.js +105 -0
  196. package/dist/platform/gitlab/admin.js.map +1 -0
  197. package/dist/platform/gitlab/api.js +229 -0
  198. package/dist/platform/gitlab/api.js.map +1 -0
  199. package/dist/platform/gitlab/attachments.js +79 -0
  200. package/dist/platform/gitlab/attachments.js.map +1 -0
  201. package/dist/platform/gitlab/http.js +165 -0
  202. package/dist/platform/gitlab/http.js.map +1 -0
  203. package/dist/platform/gitlab/index.js +630 -0
  204. package/dist/platform/gitlab/index.js.map +1 -0
  205. package/dist/platform/gitlab/oauth.js +58 -0
  206. package/dist/platform/gitlab/oauth.js.map +1 -0
  207. package/dist/platform/gitlab/read.js +182 -0
  208. package/dist/platform/gitlab/read.js.map +1 -0
  209. package/dist/platform/gitlab/schemas-read.js +274 -0
  210. package/dist/platform/gitlab/schemas-read.js.map +1 -0
  211. package/dist/platform/gitlab/schemas.js +251 -0
  212. package/dist/platform/gitlab/schemas.js.map +1 -0
  213. package/dist/platform/gitlab/signature.js +52 -0
  214. package/dist/platform/gitlab/signature.js.map +1 -0
  215. package/dist/platform/index.js +38 -0
  216. package/dist/platform/index.js.map +1 -0
  217. package/dist/platform/port.js +26 -0
  218. package/dist/platform/port.js.map +1 -0
  219. package/dist/platform/types.js +80 -0
  220. package/dist/platform/types.js.map +1 -0
  221. package/dist/podman.js +119 -0
  222. package/dist/podman.js.map +1 -0
  223. package/dist/project-sync.js +69 -0
  224. package/dist/project-sync.js.map +1 -0
  225. package/dist/prompt.js +47 -0
  226. package/dist/prompt.js.map +1 -0
  227. package/dist/queue-store.js +236 -0
  228. package/dist/queue-store.js.map +1 -0
  229. package/dist/queue.js +129 -0
  230. package/dist/queue.js.map +1 -0
  231. package/dist/redact.js +23 -0
  232. package/dist/redact.js.map +1 -0
  233. package/dist/run-files.js +297 -0
  234. package/dist/run-files.js.map +1 -0
  235. package/dist/run-filters.js +54 -0
  236. package/dist/run-filters.js.map +1 -0
  237. package/dist/run-history-store.js +229 -0
  238. package/dist/run-history-store.js.map +1 -0
  239. package/dist/run-log-sink.js +270 -0
  240. package/dist/run-log-sink.js.map +1 -0
  241. package/dist/run-log.js +97 -0
  242. package/dist/run-log.js.map +1 -0
  243. package/dist/run-usage.js +29 -0
  244. package/dist/run-usage.js.map +1 -0
  245. package/dist/run-view.js +112 -0
  246. package/dist/run-view.js.map +1 -0
  247. package/dist/runner.js +1094 -0
  248. package/dist/runner.js.map +1 -0
  249. package/dist/runtime-apply.js +26 -0
  250. package/dist/runtime-apply.js.map +1 -0
  251. package/dist/runtime-settings.js +71 -0
  252. package/dist/runtime-settings.js.map +1 -0
  253. package/dist/runtime-state.js +19 -0
  254. package/dist/runtime-state.js.map +1 -0
  255. package/dist/server.js +119 -0
  256. package/dist/server.js.map +1 -0
  257. package/dist/settings-store.js +320 -0
  258. package/dist/settings-store.js.map +1 -0
  259. package/dist/status.js +121 -0
  260. package/dist/status.js.map +1 -0
  261. package/dist/stop.js +56 -0
  262. package/dist/stop.js.map +1 -0
  263. package/dist/sweeps.js +87 -0
  264. package/dist/sweeps.js.map +1 -0
  265. package/dist/task-log.js +279 -0
  266. package/dist/task-log.js.map +1 -0
  267. package/dist/task-view.js +62 -0
  268. package/dist/task-view.js.map +1 -0
  269. package/dist/token-store.js +68 -0
  270. package/dist/token-store.js.map +1 -0
  271. package/dist/types/access.js +74 -0
  272. package/dist/types/access.js.map +1 -0
  273. package/dist/types/custom-repos.js +28 -0
  274. package/dist/types/custom-repos.js.map +1 -0
  275. package/dist/types/env-config.js +25 -0
  276. package/dist/types/env-config.js.map +1 -0
  277. package/dist/types/env.js +190 -0
  278. package/dist/types/env.js.map +1 -0
  279. package/dist/types/global-settings.js +178 -0
  280. package/dist/types/global-settings.js.map +1 -0
  281. package/dist/types/lsp-servers.js +145 -0
  282. package/dist/types/lsp-servers.js.map +1 -0
  283. package/dist/types/mcp-config.js +77 -0
  284. package/dist/types/mcp-config.js.map +1 -0
  285. package/dist/types/opencode.js +59 -0
  286. package/dist/types/opencode.js.map +1 -0
  287. package/dist/types/outbound-webhook.js +56 -0
  288. package/dist/types/outbound-webhook.js.map +1 -0
  289. package/dist/types/project-settings.js +114 -0
  290. package/dist/types/project-settings.js.map +1 -0
  291. package/dist/types/provider-registry.js +37 -0
  292. package/dist/types/provider-registry.js.map +1 -0
  293. package/dist/types/runtime-settings.js +78 -0
  294. package/dist/types/runtime-settings.js.map +1 -0
  295. package/dist/usage-stats.js +159 -0
  296. package/dist/usage-stats.js.map +1 -0
  297. package/dist/version.js +19 -0
  298. package/dist/version.js.map +1 -0
  299. package/dist/volume-gc.js +193 -0
  300. package/dist/volume-gc.js.map +1 -0
  301. package/dist/volume-manage.js +191 -0
  302. package/dist/volume-manage.js.map +1 -0
  303. package/dist/volume-store.js +122 -0
  304. package/dist/volume-store.js.map +1 -0
  305. package/dist/webhook.js +1106 -0
  306. package/dist/webhook.js.map +1 -0
  307. package/dist/work-item-auto-store.js +75 -0
  308. package/dist/work-item-auto-store.js.map +1 -0
  309. package/dist/work-item-branch-store.js +37 -0
  310. package/dist/work-item-branch-store.js.map +1 -0
  311. package/migrations/0001_initial.sql +59 -0
  312. package/migrations/0002_queue_status.sql +15 -0
  313. package/migrations/0003_work_item_base_branch.sql +14 -0
  314. package/migrations/0004_project_settings.sql +15 -0
  315. package/migrations/0005_global_settings.sql +34 -0
  316. package/migrations/0006_model_variants.sql +8 -0
  317. package/migrations/0007_container_error_logs.sql +21 -0
  318. package/migrations/0008_project_access_grants.sql +16 -0
  319. package/migrations/0009_drop_imported_legacy.sql +4 -0
  320. package/migrations/0010_container_error_log_model.sql +6 -0
  321. package/migrations/0011_container_error_log_title.sql +5 -0
  322. package/migrations/0012_pending_task_cancel.sql +6 -0
  323. package/migrations/0013_builder_image.sql +6 -0
  324. package/migrations/0014_build_workflow.sql +7 -0
  325. package/migrations/0015_access_rules.sql +24 -0
  326. package/migrations/0016_trigger_policy.sql +17 -0
  327. package/migrations/0017_attachment_upload.sql +8 -0
  328. package/migrations/0018_work_item_branch.sql +11 -0
  329. package/migrations/0019_auto_push_mr.sql +18 -0
  330. package/migrations/0020_outbound_webhooks.sql +47 -0
  331. package/migrations/0021_runtime_settings.sql +12 -0
  332. package/migrations/0022_auto_resolve_conflicts.sql +17 -0
  333. package/migrations/0023_ci_fail_auto_report.sql +27 -0
  334. package/migrations/0024_work_item_auto_override.sql +22 -0
  335. package/migrations/0025_run_history.sql +37 -0
  336. package/migrations/0026_run_history_task_seq.sql +6 -0
  337. package/migrations/0027_custom_repos.sql +11 -0
  338. package/migrations/0028_run_usage.sql +14 -0
  339. package/migrations/0029_drop_ocr_langs.sql +6 -0
  340. package/migrations/0030_mr_assignee.sql +9 -0
  341. package/migrations/0031_lsp_servers.sql +14 -0
  342. package/opencode-config/managed/devbot-agent-policy.md +61 -0
  343. package/opencode-config/managed/opencode.json +77 -0
  344. package/opencode-config/opencode.json +211 -0
  345. package/opencode-config/plugins/devbot-path-guard.js +224 -0
  346. package/package.json +158 -4
  347. package/public/assets/DashboardSidebarCollapse-rIuzCmVm.js +1 -0
  348. package/public/assets/DashboardToolbar-DFCUqZ4Z.js +1 -0
  349. package/public/assets/ErrorLogModal.vue_vue_type_script_setup_true_lang-BCyNIf1E.js +1 -0
  350. package/public/assets/ErrorLogsPage-DyYK2Rop.js +1 -0
  351. package/public/assets/LogSlideover.vue_vue_type_script_setup_true_lang-33xie7TE.js +1 -0
  352. package/public/assets/OverviewPage-CFfa0uwg.js +1 -0
  353. package/public/assets/PageGrid-CBROIU87.js +1 -0
  354. package/public/assets/PeriodRangePicker.vue_vue_type_script_setup_true_lang-DiFUNem7.js +1 -0
  355. package/public/assets/ProjectDetailPage-CreyvUit.js +1 -0
  356. package/public/assets/ProjectsPage-CFx8-elJ.js +1 -0
  357. package/public/assets/RunDetailSlideover.vue_vue_type_script_setup_true_lang-DopYYmCT.js +1 -0
  358. package/public/assets/RunsPage-CRnnXU4P.js +1 -0
  359. package/public/assets/Select-Bvx32Diz.js +1 -0
  360. package/public/assets/SelectMenu-BjMxc4VB.js +1 -0
  361. package/public/assets/SettingsPage-Bb6LM3wO.js +60 -0
  362. package/public/assets/TimeCell.vue_vue_type_script_setup_true_lang-DW_UB0Fu.js +1 -0
  363. package/public/assets/UsagePage-BLMDEsv-.js +332 -0
  364. package/public/assets/UsagePage-DodEeAjB.css +1 -0
  365. package/public/assets/VolumesPage-CxcLc3L2.js +1 -0
  366. package/public/assets/WebhookConfigPanel.vue_vue_type_script_setup_true_lang-B2V2GF6b.js +1 -0
  367. package/public/assets/WorkItemCell.vue_vue_type_script_setup_true_lang-BQn6vTjd.js +1 -0
  368. package/public/assets/index-BMbMibyb.js +4 -0
  369. package/public/assets/index-C5RBBrPj.js +30 -0
  370. package/public/assets/index-CgX29UgC.css +1 -0
  371. package/public/assets/usage-format-jsb31_O8.js +1 -0
  372. package/public/assets/useManagedProjects-8rtjRqVJ.js +1 -0
  373. package/public/assets/useRouteTab-DfwrcMic.js +1 -0
  374. package/public/favicon.ico +0 -0
  375. package/public/favicon.png +0 -0
  376. package/public/index.html +15 -0
@@ -0,0 +1 @@
1
+ import{R as xe,S as ue,T as ge,ak as ve,V as we,al as qe,am as ze,o as ke,e as i,c as z,a as u,w as d,F as O,g as X,h as g,u as e,X as v,l as Z,t as M,D as B,y as oe,an as Te,E as S,j as k,r as pe,x as p,$ as fe,ao as Ce,Z as he,ap as Ve,aq as Ie,ar as _e,q as ce,a6 as Se,a5 as ye,a4 as me,i as N,f as Be,as as De,at as Oe,au as Re,av as Fe,aw as Me,ax as $e,ay as Pe,d as je,az as Ae}from"./index-C5RBBrPj.js";import{_ as Ne}from"./Select-Bvx32Diz.js";function Xe(T,C,m){const o=new URLSearchParams;return T==="custom"?C&&(o.set("from",C.start.toString()),o.set("to",C.end.toString())):o.set("days",String(T)),m.projectId!==null&&o.set("projectId",String(m.projectId)),m.model!==null&&o.set("model",m.model),m.mode!==null&&o.set("mode",m.mode),o.toString()}const Le={slots:{base:["group relative inline-flex items-center rounded-md select-none","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",segment:["rounded text-center outline-hidden data-placeholder:text-dimmed data-[segment=literal]:text-muted data-invalid:text-error data-disabled:cursor-not-allowed data-disabled:opacity-75","transition-colors"],separatorIcon:"shrink-0 size-4 text-muted"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:["px-2 py-1 text-sm/4 gap-1","gap-0.25"],leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",segment:"data-[segment=day]:w-8 data-[segment=month]:w-8 data-[segment=year]:w-10"},sm:{base:["px-2.5 py-1.5 text-sm/4 gap-1.5","gap-0.5"],leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",segment:"data-[segment=day]:w-8 data-[segment=month]:w-8 data-[segment=year]:w-10"},md:{base:["px-2.5 py-1.5 text-base/5 gap-1.5","gap-0.5"],leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",segment:"data-[segment=day]:w-9 data-[segment=month]:w-9 data-[segment=year]:w-11"},lg:{base:["px-3 py-2 text-base/5 gap-2","gap-0.75"],leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",segment:"data-[segment=day]:w-9 data-[segment=month]:w-9 data-[segment=year]:w-11"},xl:{base:["px-3 py-2 text-base gap-2","gap-0.75"],leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",segment:"data-[segment=day]:w-10 data-[segment=month]:w-10 data-[segment=year]:w-12"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",soft:"text-highlighted bg-elevated/50 hover:bg-elevated has-focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented",ghost:"text-highlighted bg-transparent hover:bg-elevated has-focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent has-focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 has-focus-visible:outline-3 has-focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 has-focus-visible:outline-3 has-focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 has-focus-visible:outline-3 has-focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 has-focus-visible:outline-3 has-focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 has-focus-visible:outline-3 has-focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 has-focus-visible:outline-3 has-focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 has-focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 has-focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 has-focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 has-focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 has-focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 has-focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 has-focus-visible:outline-3 has-focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 has-focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"},{variant:"outline",class:{segment:"focus:bg-elevated"}},{variant:"soft",class:{segment:"focus:bg-accented/50 group-hover:focus:bg-accented"}},{variant:"subtle",class:{segment:"focus:bg-accented"}},{variant:"ghost",class:{segment:"focus:bg-elevated group-hover:focus:bg-accented"}},{variant:"none",class:{segment:"focus:bg-elevated"}}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},Ue=Object.assign({inheritAttrs:!1},{__name:"InputDate",props:{as:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},separatorIcon:{type:null,required:!1},range:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},defaultPlaceholder:{type:Object,required:!1},placeholder:{type:Object,required:!1},hourCycle:{type:null,required:!1},step:{type:Object,required:!1},stepSnapping:{type:Boolean,required:!1},granularity:{type:String,required:!1},hideTimeZone:{type:Boolean,required:!1},maxValue:{type:Object,required:!1},minValue:{type:Object,required:!1},locale:{type:String,required:!1},disabled:{type:Boolean,required:!1},readonly:{type:Boolean,required:!1},isDateUnavailable:{type:Function,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","change","blur","focus","update:placeholder"],setup(T,{expose:C,emit:m}){const o=T,a=m,w=xe(),l=ue("inputDate",o),$=fe(),h=ge(ve(l,"id","name","range","modelValue","defaultValue","color","variant","size","highlight","fixed","disabled","autofocus","autofocusDelay","icon","avatar","leading","leadingIcon","trailing","trailingIcon","loading","loadingIcon","separatorIcon","class","ui"),a),{emitFormBlur:y,emitFormFocus:b,emitFormChange:q,emitFormInput:r,size:L,color:V,id:U,name:P,highlight:I,disabled:W,ariaAttrs:Y}=we(o),{orientation:G,size:ae}=qe(o),{isLeading:j,isTrailing:c,leadingIconName:Q,trailingIconName:J}=Ce(l),[te,H]=ze(),le=p(()=>ae.value||L.value),f=p(()=>he({extend:Le,...$.ui?.inputDate||{}})({color:V.value??l.color,variant:l.variant,size:le.value??l.size,highlight:I.value??l.highlight,fixed:l.fixed,loading:l.loading,leading:j.value||!!l.avatar||!!w.leading,trailing:c.value||!!w.trailing,fieldGroup:G.value})),E=pe([]);function se(n,t){E.value[n]=t}function re(n){const t=new Event("change",{target:{value:n}});a("change",t),q(),r()}function ie(n){y(),a("blur",n)}function ne(n){b(),a("focus",n)}function de(){l.autofocus&&E.value[0]?.$el?.focus()}ke(()=>{setTimeout(()=>{de()},l.autofocusDelay)});const K=p(()=>l.range?Ve:Ie);return C({inputsRef:E}),(n,t)=>(i(),z(O,null,[u(e(te),null,{default:d(({segments:s,type:_})=>[(i(!0),z(O,null,X(s,(D,ee)=>(i(),g(e(K).Input,{key:`${D.part}-${ee}`,ref_for:!0,ref:x=>se(ee,x),type:_,part:D.part,"data-slot":"segment",class:v(f.value.segment({class:e(l).ui?.segment})),"data-segment":D.part},{default:d(()=>[Z(M(D.value.trim()),1)]),_:2},1032,["type","part","class","data-segment"]))),128))]),_:1}),u(e(K).Root,S({id:e(U),"data-slot":"base"},{...e(h),...n.$attrs,...e(Y)},{"model-value":e(l).modelValue,"default-value":e(l).defaultValue,name:e(P),disabled:e(W),class:f.value.base({class:[e(l).ui?.base,e(l).class]}),"onUpdate:modelValue":re,onBlur:ie,onFocus:ne}),{default:d(({segments:s})=>[Array.isArray(s)?(i(),g(e(H),{key:0,segments:s},null,8,["segments"])):(i(),z(O,{key:1},[u(e(H),{segments:s.start,type:"start"},null,8,["segments"]),B(n.$slots,"separator",{ui:f.value},()=>[u(oe,{name:e(l).separatorIcon||e($).ui.icons.minus,"data-slot":"separatorIcon",class:v(f.value.separatorIcon({class:e(l).ui?.separatorIcon}))},null,8,["name","class"])]),u(e(H),{segments:s.end,type:"end"},null,8,["segments"])],64)),B(n.$slots,"default",{ui:f.value}),e(j)||e(l).avatar||w.leading?(i(),z("span",{key:2,"data-slot":"leading",class:v(f.value.leading({class:e(l).ui?.leading}))},[B(n.$slots,"leading",{ui:f.value},()=>[e(j)&&e(Q)?(i(),g(oe,{key:0,name:e(Q),"data-slot":"leadingIcon",class:v(f.value.leadingIcon({class:e(l).ui?.leadingIcon}))},null,8,["name","class"])):e(l).avatar?(i(),g(Te,S({key:1,size:e(l).ui?.leadingAvatarSize||f.value.leadingAvatarSize()},e(l).avatar,{"data-slot":"leadingAvatar",class:f.value.leadingAvatar({class:e(l).ui?.leadingAvatar})}),null,16,["size","class"])):k("",!0)])],2)):k("",!0),e(c)||w.trailing?(i(),z("span",{key:3,"data-slot":"trailing",class:v(f.value.trailing({class:e(l).ui?.trailing}))},[B(n.$slots,"trailing",{ui:f.value},()=>[e(J)?(i(),g(oe,{key:0,name:e(J),"data-slot":"trailingIcon",class:v(f.value.trailingIcon({class:e(l).ui?.trailingIcon}))},null,8,["name","class"])):k("",!0)])],2)):k("",!0)]),_:3},16,["id","model-value","default-value","name","disabled","class"])],64))}}),We={slots:{root:"",header:"flex items-center justify-between",body:"flex flex-col space-y-4 pt-4 sm:flex-row sm:space-x-4 sm:space-y-0",heading:"flex-1 min-w-0 text-center",headingLabel:"font-medium block truncate p-1.5",grid:"w-full border-collapse select-none space-y-1 focus:outline-none",gridRow:"grid",gridWeekDaysRow:"mb-1 grid w-full grid-cols-7",gridBody:"grid",headCell:"rounded-md",headCellWeek:"rounded-md text-muted",cell:"relative text-center",cellTrigger:["m-0.5 relative flex items-center justify-center whitespace-nowrap focus-visible:outline-3 data-disabled:text-muted data-unavailable:line-through data-unavailable:text-muted data-unavailable:pointer-events-none data-today:font-semibold","transition"],cellWeek:"relative text-center text-muted"},variants:{color:{primary:{headCell:"text-primary",cellTrigger:"outline-primary/25"},secondary:{headCell:"text-secondary",cellTrigger:"outline-secondary/25"},success:{headCell:"text-success",cellTrigger:"outline-success/25"},info:{headCell:"text-info",cellTrigger:"outline-info/25"},warning:{headCell:"text-warning",cellTrigger:"outline-warning/25"},error:{headCell:"text-error",cellTrigger:"outline-error/25"},neutral:{headCell:"text-highlighted",cellTrigger:"outline-inverted/25"}},variant:{solid:"",outline:"",soft:"",subtle:""},size:{xs:{headingLabel:"text-xs",cell:"text-xs",cellWeek:"text-xs",headCell:"text-[10px]",headCellWeek:"text-[10px]",body:"space-y-2 pt-2"},sm:{headingLabel:"text-xs",headCell:"text-xs",headCellWeek:"text-xs",cellWeek:"text-xs",cell:"text-xs"},md:{headingLabel:"text-sm",headCell:"text-xs",headCellWeek:"text-xs",cellWeek:"text-xs",cell:"text-sm"},lg:{headingLabel:"text-md",headCell:"text-md",headCellWeek:"text-md"},xl:{headingLabel:"text-lg",headCell:"text-lg",headCellWeek:"text-lg"}},view:{day:{gridRow:"grid-cols-7 place-items-center",cellTrigger:"rounded-full data-outside-view:text-muted"},month:{gridRow:"grid-cols-4",cellTrigger:"rounded-md"},year:{gridRow:"grid-cols-4",cellTrigger:"rounded-md"}},weekNumbers:{true:""}},compoundVariants:[{color:"primary",variant:"solid",class:{cellTrigger:"data-selected:bg-primary data-selected:text-inverted data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"solid",class:{cellTrigger:"data-selected:bg-secondary data-selected:text-inverted data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"solid",class:{cellTrigger:"data-selected:bg-success data-selected:text-inverted data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"solid",class:{cellTrigger:"data-selected:bg-info data-selected:text-inverted data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"solid",class:{cellTrigger:"data-selected:bg-warning data-selected:text-inverted data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"solid",class:{cellTrigger:"data-selected:bg-error data-selected:text-inverted data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"primary",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-primary/50 data-selected:text-primary data-selected:focus-visible:ring-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/10 hover:not-data-selected:bg-primary/10"}},{color:"secondary",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-secondary/50 data-selected:text-secondary data-selected:focus-visible:ring-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/10 hover:not-data-selected:bg-secondary/10"}},{color:"success",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-success/50 data-selected:text-success data-selected:focus-visible:ring-success data-today:not-data-selected:text-success data-highlighted:bg-success/10 hover:not-data-selected:bg-success/10"}},{color:"info",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-info/50 data-selected:text-info data-selected:focus-visible:ring-info data-today:not-data-selected:text-info data-highlighted:bg-info/10 hover:not-data-selected:bg-info/10"}},{color:"warning",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-warning/50 data-selected:text-warning data-selected:focus-visible:ring-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/10 hover:not-data-selected:bg-warning/10"}},{color:"error",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-error/50 data-selected:text-error data-selected:focus-visible:ring-error data-today:not-data-selected:text-error data-highlighted:bg-error/10 hover:not-data-selected:bg-error/10"}},{color:"primary",variant:"soft",class:{cellTrigger:"data-selected:bg-primary/10 data-selected:text-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"soft",class:{cellTrigger:"data-selected:bg-secondary/10 data-selected:text-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"soft",class:{cellTrigger:"data-selected:bg-success/10 data-selected:text-success data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"soft",class:{cellTrigger:"data-selected:bg-info/10 data-selected:text-info data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"soft",class:{cellTrigger:"data-selected:bg-warning/10 data-selected:text-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"soft",class:{cellTrigger:"data-selected:bg-error/10 data-selected:text-error data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"primary",variant:"subtle",class:{cellTrigger:"data-selected:bg-primary/10 data-selected:text-primary data-selected:ring data-selected:ring-inset data-selected:ring-primary/25 data-selected:focus-visible:ring-primary data-today:not-data-selected:text-primary data-highlighted:bg-primary/20 hover:not-data-selected:bg-primary/20"}},{color:"secondary",variant:"subtle",class:{cellTrigger:"data-selected:bg-secondary/10 data-selected:text-secondary data-selected:ring data-selected:ring-inset data-selected:ring-secondary/25 data-selected:focus-visible:ring-secondary data-today:not-data-selected:text-secondary data-highlighted:bg-secondary/20 hover:not-data-selected:bg-secondary/20"}},{color:"success",variant:"subtle",class:{cellTrigger:"data-selected:bg-success/10 data-selected:text-success data-selected:ring data-selected:ring-inset data-selected:ring-success/25 data-selected:focus-visible:ring-success data-today:not-data-selected:text-success data-highlighted:bg-success/20 hover:not-data-selected:bg-success/20"}},{color:"info",variant:"subtle",class:{cellTrigger:"data-selected:bg-info/10 data-selected:text-info data-selected:ring data-selected:ring-inset data-selected:ring-info/25 data-selected:focus-visible:ring-info data-today:not-data-selected:text-info data-highlighted:bg-info/20 hover:not-data-selected:bg-info/20"}},{color:"warning",variant:"subtle",class:{cellTrigger:"data-selected:bg-warning/10 data-selected:text-warning data-selected:ring data-selected:ring-inset data-selected:ring-warning/25 data-selected:focus-visible:ring-warning data-today:not-data-selected:text-warning data-highlighted:bg-warning/20 hover:not-data-selected:bg-warning/20"}},{color:"error",variant:"subtle",class:{cellTrigger:"data-selected:bg-error/10 data-selected:text-error data-selected:ring data-selected:ring-inset data-selected:ring-error/25 data-selected:focus-visible:ring-error data-today:not-data-selected:text-error data-highlighted:bg-error/20 hover:not-data-selected:bg-error/20"}},{color:"neutral",variant:"solid",class:{cellTrigger:"data-selected:bg-inverted data-selected:text-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"outline",class:{cellTrigger:"data-selected:ring data-selected:ring-inset data-selected:ring-accented data-selected:text-default data-selected:bg-default data-selected:focus-visible:ring-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/10 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"soft",class:{cellTrigger:"data-selected:bg-elevated data-selected:text-default data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{color:"neutral",variant:"subtle",class:{cellTrigger:"data-selected:bg-elevated data-selected:text-default data-selected:ring data-selected:ring-inset data-selected:ring-accented data-selected:focus-visible:ring-inverted data-today:not-data-selected:text-highlighted data-highlighted:bg-inverted/20 hover:not-data-selected:bg-inverted/10"}},{size:"xs",view:"day",class:{cellTrigger:"size-7"}},{size:"sm",view:"day",class:{cellTrigger:"size-7"}},{size:"md",view:"day",class:{cellTrigger:"size-8"}},{size:"lg",view:"day",class:{cellTrigger:"size-9 text-md"}},{size:"xl",view:"day",class:{cellTrigger:"size-10 text-lg"}},{size:"xs",view:["month","year"],class:{cellTrigger:"h-7 px-2"}},{size:"sm",view:["month","year"],class:{cellTrigger:"h-7 px-2"}},{size:"md",view:["month","year"],class:{cellTrigger:"h-8 px-3"}},{size:"lg",view:["month","year"],class:{cellTrigger:"h-9 px-4 text-md"}},{size:"xl",view:["month","year"],class:{cellTrigger:"h-10 px-5 text-lg"}},{view:"day",weekNumbers:!0,class:{gridRow:"grid-cols-8",gridWeekDaysRow:"grid-cols-8 [&>*:first-child]:col-start-2"}}],defaultVariants:{size:"md",color:"primary",variant:"solid",view:"day"}},Ye={__name:"Calendar",props:{as:{type:null,required:!1},type:{type:String,required:!1,default:"date"},nextYearIcon:{type:null,required:!1},nextYear:{type:Object,required:!1},nextMonthIcon:{type:null,required:!1},nextMonth:{type:Object,required:!1},prevYearIcon:{type:null,required:!1},prevYear:{type:Object,required:!1},prevMonthIcon:{type:null,required:!1},prevMonth:{type:Object,required:!1},viewControl:{type:[Boolean,Object],required:!1,default:!0},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},range:{type:Boolean,required:!1},multiple:{type:Boolean,required:!1},monthControls:{type:Boolean,required:!1,default:!0},yearControls:{type:Boolean,required:!1,default:!0},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},weekNumbers:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultPlaceholder:{type:Object,required:!1},placeholder:{type:Object,required:!1},allowNonContiguousRanges:{type:Boolean,required:!1},pagedNavigation:{type:Boolean,required:!1},preventDeselect:{type:Boolean,required:!1},maximumDays:{type:Number,required:!1},weekStartsOn:{type:Number,required:!1},weekdayFormat:{type:String,required:!1},fixedWeeks:{type:Boolean,required:!1,default:!0},maxValue:{type:Object,required:!1},minValue:{type:Object,required:!1},locale:{type:String,required:!1},numberOfMonths:{type:Number,required:!1},disabled:{type:Boolean,required:!1},readonly:{type:Boolean,required:!1},initialFocus:{type:Boolean,required:!1},isDateDisabled:{type:Function,required:!1},isDateUnavailable:{type:Function,required:!1},isDateHighlightable:{type:Function,required:!1},nextPage:{type:Function,required:!1},prevPage:{type:Function,required:!1},disableDaysOutsideCurrentView:{type:Boolean,required:!1},fixedDate:{type:String,required:!1},isMonthDisabled:{type:Function,required:!1},isMonthUnavailable:{type:Function,required:!1},isYearDisabled:{type:Function,required:!1},isYearUnavailable:{type:Function,required:!1}},emits:["update:modelValue","update:placeholder","update:startValue","update:validModelValue"],setup(T,{emit:C}){const m=T,o=C,a=ue("calendar",m),{dir:w,t:l,locale:$}=_e(),h=fe(),y=["day","month","year"],b=p(()=>a.type==="year"?"year":a.type==="month"?"month":"day"),q="year",r=pe(b.value);ce(()=>a.type,()=>{r.value=b.value});const L=p(()=>b.value!==q),V=p(()=>r.value===b.value);function U(t){const s=y.indexOf(b.value),_=y.indexOf(q);return y[Math.min(Math.max(y.indexOf(t),s),_)]}function P(t){r.value=U(t)}function I(){const t=y.indexOf(q),s=y.indexOf(r.value)>=t?b.value:y[y.indexOf(r.value)+1];r.value=s}function W(t){if(Array.isArray(t))return t[0];if(t){if("start"in t||"end"in t){const s=t;return s.start??s.end??void 0}return t}}const Y=Se(a.placeholder??W(a.modelValue)??W(a.defaultValue)??ye(me()));ce(()=>a.placeholder,t=>{t&&(Y.value=t)});function G(t){Y.value=t,o("update:placeholder",t)}function ae(t){if(V.value){o("update:modelValue",t);return}const s=W(t);s&&G(s),P(y[y.indexOf(r.value)-1])}function j(t,s){return s===-1?t.subtract({years:1}):t.add({years:1})}const c=p(()=>{const t=a.range&&V.value;return r.value==="year"?t?Oe:Re:r.value==="month"?t?Fe:Me:a.range?$e:Pe}),Q=["type","placeholder","range","modelValue","defaultValue","color","variant","size","monthControls","yearControls","viewControl","class","ui"],J=["pagedNavigation","weekStartsOn","weekdayFormat","fixedWeeks","numberOfMonths","isDateDisabled","isDateUnavailable","isDateHighlightable","disableDaysOutsideCurrentView","maximumDays"],te=["isMonthDisabled","isMonthUnavailable"],H=["isYearDisabled","isYearUnavailable"],le=["allowNonContiguousRanges","fixedDate"],f=ge(ve(a,(t,s)=>Q.includes(s)||r.value!=="day"&&J.includes(s)||r.value!=="month"&&te.includes(s)||r.value!=="year"&&H.includes(s)||!V.value&&le.includes(s)));function E(t,s){return r.value==="month"?{month:t}:r.value==="year"?{year:t}:{day:t,month:s}}const se=p(()=>a.nextYearIcon||(w.value==="rtl"?h.ui.icons.chevronDoubleLeft:h.ui.icons.chevronDoubleRight)),re=p(()=>a.nextMonthIcon||(w.value==="rtl"?h.ui.icons.chevronLeft:h.ui.icons.chevronRight)),ie=p(()=>a.prevYearIcon||(w.value==="rtl"?h.ui.icons.chevronDoubleRight:h.ui.icons.chevronDoubleLeft)),ne=p(()=>a.prevMonthIcon||(w.value==="rtl"?h.ui.icons.chevronRight:h.ui.icons.chevronLeft)),de=p(()=>r.value==="day"?l("calendar.prevMonth"):l("calendar.prevYear")),K=p(()=>r.value==="day"?l("calendar.nextMonth"):l("calendar.nextYear")),n=p(()=>he({extend:We,...h.ui?.calendar||{}})({color:a.color,size:a.size,variant:a.variant,weekNumbers:a.weekNumbers,view:r.value}));return(t,s)=>(i(),g(e(c).Root,S(e(f),{"model-value":V.value?e(a).modelValue:void 0,"default-value":V.value?e(a).defaultValue:void 0,placeholder:Y.value,"data-slot":"root",class:n.value.root({class:[e(a).ui?.root,e(a).class]}),"onUpdate:placeholder":G,"onUpdate:modelValue":ae,"onUpdate:startValue":s[0]||(s[0]=_=>o("update:startValue",_)),"onUpdate:validModelValue":s[1]||(s[1]=_=>o("update:validModelValue",_))}),{default:d(({weekDays:_,grid:D,date:ee})=>[u(e(c).Header,{"data-slot":"header",class:v(n.value.header({class:e(a).ui?.header}))},{default:d(()=>[r.value==="day"&&e(a).yearControls?(i(),g(e(c).Prev,{key:0,"prev-page":x=>j(x,-1),"aria-label":e(l)("calendar.prevYear"),"as-child":""},{default:d(()=>[u(N,S({icon:ie.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).prevYear),null,16,["icon","size"])]),_:1},8,["prev-page","aria-label"])):k("",!0),r.value!=="day"||e(a).monthControls?(i(),g(e(c).Prev,{key:1,"aria-label":de.value,"as-child":""},{default:d(()=>[u(N,S({icon:ne.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).prevMonth),null,16,["icon","size"])]),_:1},8,["aria-label"])):k("",!0),u(e(c).Heading,{"data-slot":"heading",class:v(n.value.heading({class:e(a).ui?.heading}))},{default:d(({headingValue:x})=>[B(t.$slots,"heading",{value:x,view:r.value,date:ee,setView:P,setPlaceholder:G},()=>[L.value&&e(a).viewControl?(i(),g(N,S({key:0,label:x,size:e(a).size,color:"neutral",variant:"ghost",block:""},typeof e(a).viewControl=="object"?e(a).viewControl:{},{onClick:I}),null,16,["label","size"])):(i(),z("span",{key:1,"data-slot":"headingLabel",class:v(n.value.headingLabel({class:e(a).ui?.headingLabel}))},M(x),3))])]),_:2},1032,["class"]),r.value!=="day"||e(a).monthControls?(i(),g(e(c).Next,{key:2,"aria-label":K.value,"as-child":""},{default:d(()=>[u(N,S({icon:re.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).nextMonth),null,16,["icon","size"])]),_:1},8,["aria-label"])):k("",!0),r.value==="day"&&e(a).yearControls?(i(),g(e(c).Next,{key:3,"next-page":x=>j(x,1),"aria-label":e(l)("calendar.nextYear"),"as-child":""},{default:d(()=>[u(N,S({icon:se.value,size:e(a).size,color:"neutral",variant:"ghost"},e(a).nextYear),null,16,["icon","size"])]),_:1},8,["next-page","aria-label"])):k("",!0)]),_:2},1032,["class"]),Be("div",{"data-slot":"body",class:v(n.value.body({class:e(a).ui?.body}))},[(i(!0),z(O,null,X(Array.isArray(D)?D:[D],x=>(i(),g(e(c).Grid,{key:x.value.toString(),"data-slot":"grid",class:v(n.value.grid({class:e(a).ui?.grid}))},{default:d(()=>["GridHead"in c.value?(i(),g(e(c).GridHead,{key:0},{default:d(()=>[u(e(c).GridRow,{"data-slot":"gridWeekDaysRow",class:v(n.value.gridWeekDaysRow({class:e(a).ui?.gridWeekDaysRow}))},{default:d(()=>[(i(!0),z(O,null,X(_,R=>(i(),g(e(c).HeadCell,{key:R,"data-slot":"headCell",class:v(n.value.headCell({class:e(a).ui?.headCell}))},{default:d(()=>[B(t.$slots,"week-day",{day:R},()=>[Z(M(R),1)])]),_:2},1032,["class"]))),128))]),_:2},1032,["class"])]),_:2},1024)):k("",!0),u(e(c).GridBody,{"data-slot":"gridBody",class:v(n.value.gridBody({class:e(a).ui?.gridBody}))},{default:d(()=>[(i(!0),z(O,null,X(x.rows,(R,be)=>(i(),g(e(c).GridRow,{key:`row-${be}`,"data-slot":"gridRow",class:v(n.value.gridRow({class:e(a).ui?.gridRow}))},{default:d(()=>[r.value==="day"&&e(a).weekNumbers&&R[0]?(i(),z("td",{key:0,role:"gridcell","data-slot":"cellWeek",class:v(n.value.cellWeek({class:e(a).ui?.cellWeek}))},M(e(De)(R[0],e(a).locale??e($).code)),3)):k("",!0),(i(!0),z(O,null,X(R,F=>(i(),g(e(c).Cell,{key:F.toString(),date:F,"data-slot":"cell",class:v(n.value.cell({class:e(a).ui?.cell}))},{default:d(()=>[u(e(c).CellTrigger,S({ref_for:!0},E(F,x.value),{"data-slot":"cellTrigger",class:n.value.cellTrigger({class:e(a).ui?.cellTrigger})}),{default:d(A=>[r.value==="day"?B(t.$slots,"day",{day:F},()=>[Z(M(F.day),1)],void 0,0):r.value==="month"?B(t.$slots,"month-cell",{month:F,selected:A.selected,disabled:A.disabled},()=>[Z(M(A.monthValue),1)],void 0,1):B(t.$slots,"year-cell",{year:F,selected:A.selected,disabled:A.disabled},()=>[Z(M(A.yearValue),1)],void 0,2)]),_:2},1040,["class"])]),_:2},1032,["date","class"]))),128))]),_:2},1032,["class"]))),128))]),_:2},1032,["class"])]),_:2},1032,["class"]))),128))],2)]),_:3},16,["model-value","default-value","placeholder","class"]))}},Ge=365,Ze=je({__name:"PeriodRangePicker",props:{period:{},range:{}},emits:["update:period","update:range"],setup(T,{emit:C}){const m=T,o=C,a=[{label:"Last 7 days",value:7},{label:"Last 14 days",value:14},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90},{label:"All time",value:365},{label:"Custom",value:"custom"}],w=p({get:()=>m.period,set:b=>o("update:period",b)}),l=p({get:()=>m.range,set:b=>o("update:range",b)}),$=me(),h=ye($),y=h.subtract({days:Ge-1});return(b,q)=>{const r=Ne,L=N,V=Ye,U=Ae,P=Ue;return i(),z(O,null,[u(r,{modelValue:w.value,"onUpdate:modelValue":q[0]||(q[0]=I=>w.value=I),items:a,"value-key":"value",class:"w-40","aria-label":"Period"},null,8,["modelValue"]),T.period==="custom"?(i(),g(P,{key:0,modelValue:l.value,"onUpdate:modelValue":q[2]||(q[2]=I=>l.value=I),"min-value":e(y),"max-value":e(h),range:"",class:"w-56","aria-label":"Custom date range"},{trailing:d(()=>[u(U,null,{content:d(()=>[u(V,{modelValue:l.value,"onUpdate:modelValue":q[1]||(q[1]=I=>l.value=I),class:"p-2","number-of-months":2,range:""},null,8,["modelValue"])]),default:d(()=>[u(L,{color:"neutral",variant:"link",size:"sm",icon:"i-lucide-calendar","aria-label":"Select a date range",class:"px-0"})]),_:1})]),_:1},8,["modelValue","min-value","max-value"])):k("",!0)],64)}}});export{Ze as _,Xe as b};
@@ -0,0 +1 @@
1
+ import{a as pe,_ as Ge,b as Oe,c as Le}from"./DashboardSidebarCollapse-rIuzCmVm.js";import{u as Ie,R as Ne,a as We,j as se,b as Ke,p as oe,s as Je,L as He,i as Ye,m as Ze,c as he,_ as Xe,d as me,e as ye,f as _e,g as Qe,h as el,k as ll,l as al,n as tl,o as ke}from"./WebhookConfigPanel.vue_vue_type_script_setup_true_lang-B2V2GF6b.js";import{z as sl,d as H,A as $e,B as Re,C as re,e as n,c as f,a as t,w as p,D as X,u as e,E as Q,G as qe,P as fe,h as D,j as E,F as z,x as j,H as ol,I as Se,J as xe,K as Ae,r as V,L as rl,M as il,n as ve,q as te,N as be,b as N,O as nl,Q as dl,R as ul,S as cl,T as pl,U as ml,V as fl,W as vl,f as o,X as Y,l as w,t as W,g as J,Y as we,Z as bl,$ as gl,a0 as ce,m as Ve,s as hl,i as ie,o as Ce,a1 as Me,a2 as yl,_ as _l,y as kl,a3 as xl}from"./index-C5RBBrPj.js";import{m as wl,a as je,r as Vl}from"./useManagedProjects-8rtjRqVJ.js";import{u as jl}from"./useRouteTab-DfwrcMic.js";import{V as Ue,u as Pe,_ as Be,a as ge}from"./SelectMenu-BjMxc4VB.js";import{_ as Il}from"./Select-Bvx32Diz.js";const $l="radio.select";function Rl(g,a,i){sl($l,i,{originalEvent:g,value:a})}var ql=H({inheritAttrs:!1,__name:"Radio",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},checked:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:checked","select"],setup(g,{emit:a}){const i=g,l=a,c=$e(i,"checked",l,{passive:i.checked===void 0}),{value:r}=Re(i),{forwardRef:v,currentElement:b}=re(),u=Pe(b),s=Ie(),k=j(()=>i.id&&b.value?document.querySelector(`[for="${i.id}"]`)?.innerText??i.value:void 0);function q(h){i.disabled||Rl(h,i.value,A=>{l("select",A),!A?.defaultPrevented&&(c.value=!0,u.value&&A.stopPropagation())})}return(h,A)=>(n(),f(z,null,[t(e(fe),Q({id:h.id,ref:e(v),role:"radio",type:h.as==="button"?"button":void 0,as:h.as,"aria-checked":e(c)??!1,"aria-label":k.value,"as-child":h.asChild,disabled:h.disabled?"":void 0,"data-state":e(c)?"checked":"unchecked","data-disabled":h.disabled?"":void 0,value:e(r),required:h.required,name:h.name},{...e(s),...h.$attrs},{onClick:qe(q,["stop"])}),{default:p(()=>[X(h.$slots,"default",{checked:e(c)})]),_:3},16,["id","type","as","aria-checked","aria-label","as-child","disabled","data-state","data-disabled","value","required","name"]),e(u)&&h.name?(n(),D(e(Ue),Q({key:0,type:"radio",tabindex:"-1",value:e(r),checked:!!e(c),name:h.name,disabled:h.disabled,required:h.required},e(s)),null,16,["value","checked","name","disabled","required"])):E("v-if",!0)],64))}}),Sl=ql;const[Al,Cl]=Se("RadioGroupRoot");var Ml=H({__name:"RadioGroupRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue"],setup(g,{emit:a}){const i=g,l=a,{forwardRef:c,currentElement:r}=re(),v=$e(i,"modelValue",l,{defaultValue:i.defaultValue,passive:i.modelValue===void 0}),{disabled:b,loop:u,orientation:s,name:k,required:q,dir:h}=Re(i),A=ol(h),M=Pe(r);return Cl({modelValue:v,changeModelValue:x=>{v.value=x},disabled:b,loop:u,orientation:s,name:k?.value,required:q}),(x,B)=>(n(),D(e(Ne),{"as-child":"",orientation:e(s),dir:e(A),loop:e(u)},{default:p(()=>[t(e(fe),{ref:e(c),role:"radiogroup","data-disabled":e(b)?"":void 0,"as-child":x.asChild,as:x.as,"aria-orientation":e(s),"aria-required":e(q),dir:e(A)},{default:p(()=>[X(x.$slots,"default",{modelValue:e(v)}),e(M)&&e(k)?(n(),D(e(Ue),{key:0,required:e(q),disabled:e(b),value:e(v),name:e(k)},null,8,["required","disabled","value","name"])):E("v-if",!0)]),_:3},8,["data-disabled","as-child","as","aria-orientation","aria-required","dir"])]),_:3},8,["orientation","dir","loop"]))}}),Ul=Ml;const[Pl,Bl]=Se("RadioGroupItem");var Dl=H({inheritAttrs:!1,__name:"RadioGroupItem",props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["select"],setup(g,{emit:a}){const i=g,l=a,{forwardRef:c,currentElement:r}=re(),v=Al(),b=j(()=>v.disabled.value||i.disabled),u=j(()=>v.required.value||i.required),s=j(()=>rl(v.modelValue?.value,i.value));Bl({disabled:b,checked:s});const k=V(!1),q=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"];xe("keydown",M=>{q.includes(M.key)&&(k.value=!0)}),xe("keyup",()=>{k.value=!1});function h(){setTimeout(()=>{k.value&&r.value?.click()},0)}const A=Ie();return(M,x)=>(n(),D(e(We),{checked:s.value,disabled:b.value,"as-child":"",focusable:!b.value,active:s.value},{default:p(()=>[t(Sl,Q({...e(A),...M.$attrs,...i},{ref:e(c),checked:s.value,required:u.value,disabled:b.value,"onUpdate:checked":x[0]||(x[0]=B=>e(v).changeModelValue(M.value)),onSelect:x[1]||(x[1]=B=>l("select",B)),onKeydown:x[2]||(x[2]=Ae(qe(()=>{},["prevent"]),["enter"])),onFocus:h}),{default:p(()=>[X(M.$slots,"default",{checked:s.value,required:u.value,disabled:b.value})]),_:3},16,["checked","required","disabled"])]),_:3},8,["checked","disabled","focusable","active"]))}}),El=Dl,Fl=H({__name:"RadioGroupIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(g){const{forwardRef:a}=re(),i=Pl();return(l,c)=>(n(),D(e(il),{present:l.forceMount||e(i).checked.value},{default:p(()=>[t(e(fe),Q({ref:e(a),"data-state":e(i).checked.value?"checked":"unchecked","data-disabled":e(i).disabled.value?"":void 0,"as-child":l.asChild,as:l.as},l.$attrs),{default:p(()=>[X(l.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),zl=Fl;const Tl=["none","minimal","low","medium","high","xhigh","max"];function Gl(){return{planModel:"",buildModel:"",planVariant:"",buildVariant:"",plugins:"",baseBranches:"",lspServers:"",lspDisabled:"",builderImage:"",assignee:"",buildWorkflow:"",mrDescription:"",minRole:"",requireAuthorOrAssignee:"",autoPush:"",autoMr:"",autoResolveConflicts:"",ciFailAutoReport:""}}function Ol(g){return g===""?"inherit":g==="none"?"none":"user"}function Ll(g){const a=ve(),i=V(Gl()),l=be({planModel:"",buildModel:"",planVariant:"",buildVariant:"",plugins:"",baseBranches:"",lspServers:"",lspDisabled:"",builderImage:"",assignee:"",assigneeMode:"inherit",buildWorkflow:"",mrDescription:"",minRole:"",requireAuthorOrAssignee:"",autoPush:"",autoMr:"",autoResolveConflicts:"",ciFailAutoReport:""}),c=V(!1),r=V(!1),v=V({}),b=V([]),u=V([]),s=V([]),k=V([]),q=V(""),h=j(()=>oe(i.value.lspServers)),A=j(()=>Je(l.lspDisabled)),M=j({get:()=>h.value.filter(C=>!A.value.includes(C)),set:C=>{const O=new Set(C),d=new Set(h.value),m=A.value.filter(L=>!d.has(L)),F=new Set([...m,...h.value.filter(L=>!O.has(L))]);l.lspDisabled=se(He.map(L=>L.id).filter(L=>F.has(L)))}}),x=j(()=>Ye(l)&&(q.value!=="custom"||k.value.length>0)),B=j(()=>Ze(b.value)),T=j(()=>[{label:`Inherit global (${i.value.planModel||"none"})`,value:""},...B.value]),S=j(()=>[{label:`Inherit global (${i.value.buildModel||"none"})`,value:""},...B.value]);function U(C){return[{label:`Inherit global (${C||"no variant"})`,value:""},...Tl.map(O=>({label:O,value:O}))]}const y=j(()=>U(i.value.planVariant)),G=j(()=>U(i.value.buildVariant)),I=j(()=>[{label:`Inherit global (${i.value.minRole||"write"})`,value:""},{label:"No project role required",value:"none"},{label:"Reporter (or higher)",value:"read"},{label:"Developer (or higher)",value:"write"},{label:"Maintainer (or higher)",value:"admin"},{label:"Owner only",value:"owner"}]),P=j(()=>[{label:`Inherit global (${i.value.requireAuthorOrAssignee==="false"?"not required":"required"})`,value:""},{label:"Required",value:"true"},{label:"Not required",value:"false"}]),_=j(()=>[{label:`Inherit global (${i.value.autoPush==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),K=j(()=>[{label:`Inherit global (${i.value.autoMr==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),le=j(()=>[{label:`Inherit global (${i.value.autoResolveConflicts==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),$=j(()=>[{label:`Inherit global (${i.value.ciFailAutoReport==="true"?"on":"off"})`,value:""},{label:"On",value:"true"},{label:"Off",value:"false"}]),Z=j(()=>{const C=M.value.length;return C===0?"off":`${C} servers`}),ne=j(()=>[{label:`Inherit global (${Z.value})`,value:""},{label:"Custom list",value:"custom"}]);async function ee(){if(!g.value)return;c.value=!0,v.value={};const[C,O]=await Promise.all([N(`/api/projects/${g.value.projectId}/settings`),N("/api/settings/providers")]);if(c.value=!1,C.error){C.status!==401&&a.add({title:"Failed to load settings",description:C.error,color:"error",icon:"i-lucide-alert-circle"});return}i.value=C.data?.defaults??i.value,b.value=O.data?.providers??[];const d=C.data?.settings;l.planModel=d?.planModel??"",l.buildModel=d?.buildModel??"",l.planVariant=d?.planVariant??"",l.buildVariant=d?.buildVariant??"",l.plugins=d?.plugins??"",l.baseBranches=d?.baseBranches??"",l.lspServers=d?.lspServers??"",l.lspDisabled=d?.lspDisabled??"",l.builderImage=d?.builderImage??"",l.assignee=d?.assignee??"",l.assigneeMode=Ol(l.assignee),l.buildWorkflow=d?.buildWorkflow??"",l.mrDescription=d?.mrDescription??"",l.minRole=d?.minRole??"",l.requireAuthorOrAssignee=d?.requireAuthorOrAssignee??"",l.autoPush=d?.autoPush??"",l.autoMr=d?.autoMr??"",l.autoResolveConflicts=d?.autoResolveConflicts??"",l.ciFailAutoReport=d?.ciFailAutoReport??"",u.value=oe(l.plugins),s.value=oe(l.baseBranches),k.value=oe(l.lspServers),q.value=l.lspServers?"custom":""}async function de(){if(!g.value||!x.value)return;l.plugins=se(u.value),l.baseBranches=se(s.value),l.lspServers=q.value==="custom"?se(k.value):"",r.value=!0;const{error:C,status:O,data:d}=await N(`/api/projects/${g.value.projectId}/settings`,{method:"PUT",body:JSON.stringify(Ke(l))});if(r.value=!1,C){O===400&&d?.issues?(v.value=Object.fromEntries(d.issues.map(m=>[m.path.join("."),m.message])),a.add({title:"Validation error",description:d.issues.map(m=>m.message).join("; "),color:"error",icon:"i-lucide-alert-circle"})):a.add({title:"Save failed",description:C,color:"error",icon:"i-lucide-alert-circle"});return}a.add({title:"Settings saved",color:"success",icon:"i-lucide-check-circle"})}return te(g,C=>{C&&ee()},{immediate:!0}),te(q,C=>{C==="custom"&&k.value.length===0&&(k.value=h.value.filter(O=>!A.value.includes(O)))}),{defaults:i,form:l,loading:c,submitting:r,errors:v,providers:b,pluginItems:u,branchItems:s,lspServerItems:k,lspDisabledIds:A,lspGlobalIds:h,lspInheritedSelection:M,lspMode:q,lspModeItems:ne,lspGlobalSummary:Z,projectId:j(()=>g.value?.projectId??null),isValid:x,planModelItems:T,buildModelItems:S,planVariantItems:y,buildVariantItems:G,policyRoleItems:I,requireAuthorItems:P,autoPushItems:_,autoMrItems:K,autoResolveConflictsItems:le,ciFailAutoReportItems:$,load:ee,submit:de}}const De=Symbol("projectSettings");function Nl(g){const a=Ll(g),i=be(a);return dl(De,i),i}function Wl(){const g=nl(De);if(!g)throw new Error("useProjectSettingsContext must be used within ProjectDetailPage");return g}const Kl={slots:{root:"relative",fieldset:"flex gap-x-2",legend:"mb-1 block font-medium text-default",item:"flex items-start",container:"flex items-center",base:"rounded-full ring ring-inset ring-accented overflow-hidden focus-visible:outline-3",indicator:"flex items-center justify-center size-full after:bg-default after:rounded-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"outline-primary/25 focus-visible:ring-primary",indicator:"bg-primary"},secondary:{base:"outline-secondary/25 focus-visible:ring-secondary",indicator:"bg-secondary"},success:{base:"outline-success/25 focus-visible:ring-success",indicator:"bg-success"},info:{base:"outline-info/25 focus-visible:ring-info",indicator:"bg-info"},warning:{base:"outline-warning/25 focus-visible:ring-warning",indicator:"bg-warning"},error:{base:"outline-error/25 focus-visible:ring-error",indicator:"bg-error"},neutral:{base:"outline-inverted/25 focus-visible:ring-inverted",indicator:"bg-inverted"}},variant:{list:{item:""},card:{item:"border border-muted rounded-lg"},table:{item:"border border-muted"}},orientation:{horizontal:{fieldset:"flex-row"},vertical:{fieldset:"flex-col"}},indicator:{start:{item:"flex-row",wrapper:"ms-2"},end:{item:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3",item:"text-xs",container:"h-4",indicator:"after:size-1"},sm:{fieldset:"gap-y-0.5",legend:"text-xs",base:"size-3.5",item:"text-xs",container:"h-4",indicator:"after:size-1"},md:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},lg:{fieldset:"gap-y-1",legend:"text-sm",base:"size-4.5",item:"text-sm",container:"h-5",indicator:"after:size-1.5"},xl:{fieldset:"gap-y-1.5",legend:"text-base",base:"size-5",item:"text-base",container:"h-6",indicator:"after:size-2"}},highlight:{true:""},disabled:{true:{item:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},required:{true:{legend:"after:content-['*'] after:ms-0.5 after:text-error"}}},compoundVariants:[{size:"xs",variant:["card","table"],class:{item:"p-2.5"}},{size:"sm",variant:["card","table"],class:{item:"p-3"}},{size:"md",variant:["card","table"],class:{item:"p-3.5"}},{size:"lg",variant:["card","table"],class:{item:"p-4"}},{size:"xl",variant:["card","table"],class:{item:"p-4.5"}},{orientation:"horizontal",variant:"table",class:{item:"first-of-type:rounded-s-lg last-of-type:rounded-e-lg",fieldset:"gap-0 -space-x-px"}},{orientation:"vertical",variant:"table",class:{item:"first-of-type:rounded-t-lg last-of-type:rounded-b-lg",fieldset:"gap-0 -space-y-px"}},{color:"primary",variant:"card",class:{item:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{item:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{item:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{item:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{item:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{item:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{item:"has-data-[state=checked]:border-inverted"}},{color:"primary",variant:"table",class:{item:"has-data-[state=checked]:bg-primary/10 has-data-[state=checked]:border-primary/50 has-data-[state=checked]:z-[1]"}},{color:"secondary",variant:"table",class:{item:"has-data-[state=checked]:bg-secondary/10 has-data-[state=checked]:border-secondary/50 has-data-[state=checked]:z-[1]"}},{color:"success",variant:"table",class:{item:"has-data-[state=checked]:bg-success/10 has-data-[state=checked]:border-success/50 has-data-[state=checked]:z-[1]"}},{color:"info",variant:"table",class:{item:"has-data-[state=checked]:bg-info/10 has-data-[state=checked]:border-info/50 has-data-[state=checked]:z-[1]"}},{color:"warning",variant:"table",class:{item:"has-data-[state=checked]:bg-warning/10 has-data-[state=checked]:border-warning/50 has-data-[state=checked]:z-[1]"}},{color:"error",variant:"table",class:{item:"has-data-[state=checked]:bg-error/10 has-data-[state=checked]:border-error/50 has-data-[state=checked]:z-[1]"}},{color:"neutral",variant:"table",class:{item:"has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]"}},{variant:["card","table"],disabled:!0,class:{item:"cursor-not-allowed"}},{color:"primary",highlight:!0,class:{base:"ring-primary"}},{color:"secondary",highlight:!0,class:{base:"ring-secondary"}},{color:"success",highlight:!0,class:{base:"ring-success"}},{color:"info",highlight:!0,class:{base:"ring-info"}},{color:"warning",highlight:!0,class:{base:"ring-warning"}},{color:"error",highlight:!0,class:{base:"ring-error"}},{color:"neutral",highlight:!0,class:{base:"ring-inverted"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},Jl={__name:"RadioGroup",props:{as:{type:null,required:!1},legend:{type:String,required:!1},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},items:{type:null,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},size:{type:null,required:!1},variant:{type:null,required:!1},color:{type:null,required:!1},highlight:{type:Boolean,required:!1},orientation:{type:null,required:!1,default:"vertical"},indicator:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["change","update:modelValue"],setup(g,{emit:a}){const i=g,l=a,c=ul(),r=cl("radioGroup",i),v=gl(),b=pl(ml(r,"as","loop","required"),l),{emitFormChange:u,emitFormInput:s,color:k,name:q,size:h,highlight:A,id:M,disabled:x,ariaAttrs:B}=fl(i,{bind:!1}),T=M.value??vl(),S=j(()=>bl({extend:Kl,...v.ui?.radioGroup||{}})({size:h.value??r.size,color:k.value??r.color,highlight:A.value??r.highlight,disabled:x.value,required:r.required,orientation:r.orientation,variant:r.variant,indicator:r.indicator}));function U(I){if(I===null)return{id:`${T}:null`,value:void 0,label:void 0};if(typeof I=="string"||typeof I=="number"||typeof I=="bigint")return{id:`${T}:${I}`,value:String(I),label:String(I)};const P=ce(I,r.valueKey),_=ce(I,r.labelKey),K=ce(I,r.descriptionKey);return{...I,value:P,label:_,description:K,id:`${T}:${P}`}}const y=j(()=>r.items?r.items.map(U):[]);function G(I){const P=new Event("change",{target:{value:I}});l("change",P),u(),s()}return(I,P)=>(n(),D(e(Ul),Q({id:e(T)},e(b),{"model-value":e(r).modelValue,"default-value":e(r).defaultValue,orientation:e(r).orientation,name:e(q),disabled:e(x),"data-slot":"root",class:S.value.root({class:[e(r).ui?.root,e(r).class]}),"onUpdate:modelValue":G}),{default:p(()=>[o("fieldset",Q({"data-slot":"fieldset",class:S.value.fieldset({class:e(r).ui?.fieldset})},e(B)),[e(r).legend||c.legend?(n(),f("legend",{key:0,"data-slot":"legend",class:Y(S.value.legend({class:e(r).ui?.legend}))},[X(I.$slots,"legend",{},()=>[w(W(e(r).legend),1)])],2)):E("",!0),(n(!0),f(z,null,J(y.value,_=>(n(),D(we(!e(r).variant||e(r).variant==="list"?"div":e(he)),{key:_.value,"data-slot":"item",class:Y(S.value.item({class:[e(r).ui?.item,_.ui?.item,_.class],disabled:_.disabled||e(x)}))},{default:p(()=>[o("div",{"data-slot":"container",class:Y(S.value.container({class:[e(r).ui?.container,_.ui?.container]}))},[t(e(El),{id:_.id,value:_.value,disabled:_.disabled||e(x),"data-slot":"base",class:Y(S.value.base({class:[e(r).ui?.base,_.ui?.base],disabled:_.disabled||e(x)}))},{default:p(()=>[t(e(zl),{"data-slot":"indicator",class:Y(S.value.indicator({class:[e(r).ui?.indicator,_.ui?.indicator]}))},null,8,["class"])]),_:2},1032,["id","value","disabled","class"])],2),_.label||c.label||_.description||c.description?(n(),f("div",{key:0,"data-slot":"wrapper",class:Y(S.value.wrapper({class:[e(r).ui?.wrapper,_.ui?.wrapper]}))},[_.label||c.label?(n(),D(we(!e(r).variant||e(r).variant==="list"?e(he):"p"),{key:0,for:_.id,"data-slot":"label",class:Y(S.value.label({class:[e(r).ui?.label,_.ui?.label],disabled:_.disabled||e(x)}))},{default:p(()=>[X(I.$slots,"label",{item:_,modelValue:e(r).modelValue},()=>[w(W(_.label),1)])]),_:2},1032,["for","class"])):E("",!0),_.description||c.description?(n(),f("p",{key:1,"data-slot":"description",class:Y(S.value.description({class:[e(r).ui?.description,_.ui?.description],disabled:_.disabled||e(x)}))},[X(I.$slots,"description",{item:_,modelValue:e(r).modelValue},()=>[w(W(_.description),1)])],2)):E("",!0)],2)):E("",!0)]),_:2},1032,["class"]))),128))],16)]),_:3},16,["id","model-value","default-value","orientation","name","disabled","class"]))}},Hl={class:"space-y-2"},Yl=H({__name:"ProjectAssigneeControl",props:hl({projectId:{}},{modelValue:{default:""},modelModifiers:{},mode:{default:"inherit"},modeModifiers:{}}),emits:["update:modelValue","update:mode"],setup(g){const a=Ve(g,"modelValue"),i=Ve(g,"mode"),l=g,c=[{label:"Inherit global",value:"inherit"},{label:"Nobody",value:"none"},{label:"Specific user",value:"user"}];te(i,v=>{v==="inherit"?a.value="":v==="none"?a.value="none":v==="user"&&(a.value="")});function r(v){v!=="none"&&(a.value=v,v&&i.value!=="user"&&(i.value="user"))}return(v,b)=>{const u=Jl;return n(),f("div",Hl,[t(u,{modelValue:i.value,"onUpdate:modelValue":b[0]||(b[0]=s=>i.value=s),items:c,orientation:"horizontal","aria-label":"Assignee mode"},null,8,["modelValue"]),i.value==="user"?(n(),D(Xe,{key:0,"model-value":a.value==="none"?"":a.value,"project-id":l.projectId??null,"aria-label":"Project assignee",placeholder:"Search project members…","onUpdate:modelValue":r},null,8,["model-value","project-id"])):E("",!0)])}}}),Zl={class:"space-y-4"},Xl={class:"space-y-3"},Ql={class:"grid grid-cols-2 gap-3"},ea={class:"grid grid-cols-2 gap-3"},la={class:"flex items-center gap-2"},aa={class:"flex items-center gap-2"},ta={class:"space-y-3"},sa={class:"text-xs text-dimmed mt-1"},oa={class:"text-xs text-dimmed mt-1"},ra={class:"space-y-3"},ia={key:0,class:"mt-3 space-y-2"},na={key:1,class:"text-xs text-dimmed"},da={class:"text-xs text-dimmed"},ua={key:1,class:"mt-3 space-y-2"},ca={key:0,class:"text-xs text-error"},pa={class:"space-y-3"},ma={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},fa={class:"space-y-3"},va={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},ba={class:"space-y-3"},ga={class:"flex items-center justify-between mt-1"},ha={class:"text-xs text-dimmed"},ya={class:"flex items-center justify-between mt-1"},_a={class:"text-xs text-dimmed"},ka=H({__name:"ProjectSettingsSection",setup(g){const a=Wl();return(i,l)=>{const c=Be,r=me,v=ie,b=ge,u=Qe;return n(),f("div",Zl,[l[44]||(l[44]=o("p",{class:"text-sm text-dimmed"},[w(" Fields default to inheriting the global setting. Pick "),o("strong",null,"Inherit global"),w(" to keep it, or override it with a value below. ")],-1)),o("section",Xl,[l[25]||(l[25]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Models",-1)),o("div",Ql,[t(r,{label:"Plan model",error:e(a).errors.planModel??!1},{default:p(()=>[t(c,{modelValue:e(a).form.planModel,"onUpdate:modelValue":l[0]||(l[0]=s=>e(a).form.planModel=s),items:e(a).planModelItems,"value-key":"value","aria-label":"Plan model",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Build model",error:e(a).errors.buildModel??!1},{default:p(()=>[t(c,{modelValue:e(a).form.buildModel,"onUpdate:modelValue":l[1]||(l[1]=s=>e(a).form.buildModel=s),items:e(a).buildModelItems,"value-key":"value","aria-label":"Build model",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"])]),o("div",ea,[t(r,{label:"Plan variant (optional)",error:e(a).errors.planVariant??!1},{default:p(()=>[o("div",la,[t(c,{modelValue:e(a).form.planVariant,"onUpdate:modelValue":l[2]||(l[2]=s=>e(a).form.planVariant=s),items:e(a).planVariantItems,"value-key":"value","aria-label":"Plan variant",class:"flex-1"},null,8,["modelValue","items"]),t(v,{icon:"i-lucide-rotate-ccw",color:"neutral",variant:"ghost","aria-label":"Reset plan variant to inherit",disabled:e(a).form.planVariant==="",onClick:l[3]||(l[3]=s=>e(a).form.planVariant="")},null,8,["disabled"])])]),_:1},8,["error"]),t(r,{label:"Build variant (optional)",error:e(a).errors.buildVariant??!1},{default:p(()=>[o("div",aa,[t(c,{modelValue:e(a).form.buildVariant,"onUpdate:modelValue":l[4]||(l[4]=s=>e(a).form.buildVariant=s),items:e(a).buildVariantItems,"value-key":"value","aria-label":"Build variant",class:"flex-1"},null,8,["modelValue","items"]),t(v,{icon:"i-lucide-rotate-ccw",color:"neutral",variant:"ghost","aria-label":"Reset build variant to inherit",disabled:e(a).form.buildVariant==="",onClick:l[5]||(l[5]=s=>e(a).form.buildVariant="")},null,8,["disabled"])])]),_:1},8,["error"])]),l[26]||(l[26]=o("p",{class:"text-xs text-dimmed"},[w(" Models come from your enabled providers. A variant is a named model option set (e.g. reasoning effort). Choose "),o("strong",null,"Inherit global"),w(" to use the global value. ")],-1))]),o("section",ta,[l[30]||(l[30]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Runtime",-1)),t(r,{label:"Plugins override",error:e(a).errors.plugins??!1},{default:p(()=>[t(ye,{modelValue:e(a).pluginItems,"onUpdate:modelValue":l[6]||(l[6]=s=>e(a).pluginItems=s),placeholder:"@scope/plugin","add-label":"Add plugin","item-label":"Plugin"},null,8,["modelValue"]),o("p",sa,[e(a).pluginItems.length===0?(n(),f(z,{key:0},[w("Inherit global: "+W(e(a).defaults.plugins||"none")+".",1)],64)):E("",!0),l[27]||(l[27]=w(" Set replaces the global list; shipped base plugins always apply. ",-1))])]),_:1},8,["error"]),t(r,{label:"Base branches",error:e(a).errors.baseBranches??!1},{default:p(()=>[t(ye,{modelValue:e(a).branchItems,"onUpdate:modelValue":l[7]||(l[7]=s=>e(a).branchItems=s),reorderable:"",placeholder:"dev","add-label":"Add branch","item-label":"Base branch"},null,8,["modelValue"]),o("p",oa,[e(a).branchItems.length===0?(n(),f(z,{key:0},[w("Inherit global: "+W(e(a).defaults.baseBranches||"none")+".",1)],64)):E("",!0),l[28]||(l[28]=w(" Top is tried first (highest priority). A /base mention still wins. ",-1))])]),_:1},8,["error"]),t(r,{label:"Builder image",error:e(a).errors.builderImage??!1},{default:p(()=>[t(b,{modelValue:e(a).form.builderImage,"onUpdate:modelValue":l[8]||(l[8]=s=>e(a).form.builderImage=s),placeholder:e(a).defaults.builderImage||"devbot-builder:latest","aria-label":"Builder image",class:"w-full"},null,8,["modelValue","placeholder"]),l[29]||(l[29]=o("p",{class:"text-xs text-dimmed mt-1"}," Podman image for this project's containers (clone/sync, agent run, push). Empty inherits the global image (placeholder). Must be a valid image reference. ",-1))]),_:1},8,["error"])]),o("section",ra,[l[32]||(l[32]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Language servers",-1)),t(r,{label:"Language servers",error:e(a).errors.lspServers??e(a).errors.lspDisabled??!1},{default:p(()=>[t(c,{modelValue:e(a).lspMode,"onUpdate:modelValue":l[9]||(l[9]=s=>e(a).lspMode=s),items:e(a).lspModeItems,"value-key":"value","aria-label":"Language servers inheritance",class:"w-full"},null,8,["modelValue","items"]),e(a).lspMode===""?(n(),f("div",ia,[e(a).lspGlobalIds.length>0?(n(),D(_e,{key:0,modelValue:e(a).lspInheritedSelection,"onUpdate:modelValue":l[10]||(l[10]=s=>e(a).lspInheritedSelection=s),"server-ids":e(a).lspGlobalIds},null,8,["modelValue","server-ids"])):(n(),f("p",na,"Global LSP is off; there is nothing to inherit.")),o("p",da," Inheriting "+W(e(a).lspGlobalSummary)+". Unchecking a server adds it to this project's disabled list. ",1)])):(n(),f("div",ua,[t(_e,{modelValue:e(a).lspServerItems,"onUpdate:modelValue":l[11]||(l[11]=s=>e(a).lspServerItems=s)},null,8,["modelValue"]),t(r,{label:"Disabled servers (optional)",error:e(a).errors.lspDisabled??!1},{default:p(()=>[t(b,{modelValue:e(a).form.lspDisabled,"onUpdate:modelValue":l[12]||(l[12]=s=>e(a).form.lspDisabled=s),placeholder:"rust, vue","aria-label":"Disabled LSP servers",class:"w-full font-mono"},null,8,["modelValue"]),l[31]||(l[31]=o("p",{class:"text-xs text-dimmed mt-1"}," Comma or whitespace separated ids, subtracted from this custom list. ",-1))]),_:1},8,["error"]),e(a).lspServerItems.length===0?(n(),f("p",ca," Select at least one server, or inherit the global list. ")):E("",!0)]))]),_:1},8,["error"])]),o("section",pa,[l[33]||(l[33]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Permissions",-1)),l[34]||(l[34]=o("p",{class:"text-xs text-dimmed"},[w(" The baseline policy gates who may trigger DevBot; each field inherits the global default unless overridden here. Refine the role gate for one role or user on the "),o("strong",null,"Access"),w(" tab. ")],-1)),o("div",ma,[t(r,{label:"Require author or assignee",error:e(a).errors.requireAuthorOrAssignee??!1},{default:p(()=>[t(c,{modelValue:e(a).form.requireAuthorOrAssignee,"onUpdate:modelValue":l[13]||(l[13]=s=>e(a).form.requireAuthorOrAssignee=s),items:e(a).requireAuthorItems,"value-key":"value","aria-label":"Require author or assignee",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Minimum project role",error:e(a).errors.minRole??!1},{default:p(()=>[t(c,{modelValue:e(a).form.minRole,"onUpdate:modelValue":l[14]||(l[14]=s=>e(a).form.minRole=s),items:e(a).policyRoleItems,"value-key":"value","aria-label":"Minimum project role",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"])])]),o("section",fa,[l[36]||(l[36]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Build output",-1)),l[37]||(l[37]=o("p",{class:"text-xs text-dimmed"},[w(" What DevBot does with the branch after a successful build. Both default to the global setting; the "),o("code",null,"/push"),w(" and "),o("code",null,"/mr"),w(" mention tokens turn a step on for a single run. ")],-1)),o("div",va,[t(r,{label:"Auto-push branch",error:e(a).errors.autoPush??!1},{default:p(()=>[t(c,{modelValue:e(a).form.autoPush,"onUpdate:modelValue":l[15]||(l[15]=s=>e(a).form.autoPush=s),items:e(a).autoPushItems,"value-key":"value","aria-label":"Auto-push branch",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Auto-open merge request",error:e(a).errors.autoMr??!1},{default:p(()=>[t(c,{modelValue:e(a).form.autoMr,"onUpdate:modelValue":l[16]||(l[16]=s=>e(a).form.autoMr=s),items:e(a).autoMrItems,"value-key":"value","aria-label":"Auto-open merge request",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),t(r,{label:"Auto-resolve merge conflicts",error:e(a).errors.autoResolveConflicts??!1},{default:p(()=>[t(c,{modelValue:e(a).form.autoResolveConflicts,"onUpdate:modelValue":l[17]||(l[17]=s=>e(a).form.autoResolveConflicts=s),items:e(a).autoResolveConflictsItems,"value-key":"value","aria-label":"Auto-resolve merge conflicts",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"])]),l[38]||(l[38]=o("p",{class:"text-xs text-dimmed"}," Auto-MR requires auto-push: an MR needs a published branch, so enabling it without a push has no effect. Conflict auto-fix checks the branch against its MR target before opening the MR and runs a direct build run to resolve conflicts; if it cannot, the branch is pushed but the MR is skipped. ",-1)),t(r,{label:"Merge request assignee",error:e(a).errors.assignee??!1},{default:p(()=>[t(Yl,{modelValue:e(a).form.assignee,"onUpdate:modelValue":l[18]||(l[18]=s=>e(a).form.assignee=s),mode:e(a).form.assigneeMode,"onUpdate:mode":l[19]||(l[19]=s=>e(a).form.assigneeMode=s),"project-id":e(a).projectId},null,8,["modelValue","mode","project-id"]),l[35]||(l[35]=o("p",{class:"text-xs text-dimmed mt-1"}," Inherit the global assignee, assign nobody on this project, or pick a specific project member. A stale or non-member user never fails MR creation — it is skipped with a warning. ",-1))]),_:1},8,["error"]),t(r,{label:"Auto-report failed CI",error:e(a).errors.ciFailAutoReport??!1},{default:p(()=>[t(c,{modelValue:e(a).form.ciFailAutoReport,"onUpdate:modelValue":l[20]||(l[20]=s=>e(a).form.ciFailAutoReport=s),items:e(a).ciFailAutoReportItems,"value-key":"value","aria-label":"Auto-report failed CI",class:"w-full"},null,8,["modelValue","items"])]),_:1},8,["error"]),l[39]||(l[39]=o("p",{class:"text-xs text-dimmed"}," When on, a failed pipeline on a merge/pull request DevBot created starts an automatic plan run with the failing job logs. Turning this on attempts to subscribe this project's webhook to CI events; if that fails, re-onboard the project. ",-1))]),o("section",ba,[l[42]||(l[42]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Build workflow templates",-1)),l[43]||(l[43]=o("p",{class:"text-xs text-dimmed"},[w(" Override the global build-mode prompt text for this project. Empty inherits the global value; the built-in default applies if both are empty. The "),o("code",null,"```mr"),w(" scaffold stays fixed. Placeholders: "),o("code",null,"{{iid}}"),w(", "),o("code",null,"{{branch}}"),w(", "),o("code",null,"{{mrTarget}}"),w(", and "),o("code",null,"{{mrBlock}}"),w(" (workflow only). ")],-1)),t(r,{label:"Build workflow override",error:e(a).errors.buildWorkflow??!1},{default:p(()=>[t(u,{modelValue:e(a).form.buildWorkflow,"onUpdate:modelValue":l[21]||(l[21]=s=>e(a).form.buildWorkflow=s),rows:10,placeholder:e(a).defaults.buildWorkflow||"Inherit global","aria-label":"Build workflow template",class:"w-full font-mono text-xs"},null,8,["modelValue","placeholder"]),o("div",ga,[o("p",ha,[e(a).form.buildWorkflow?E("",!0):(n(),f(z,{key:0},[w("Inheriting global.")],64)),l[40]||(l[40]=w(" Set replaces the global template. ",-1))]),t(v,{label:"Load default",size:"xs",color:"neutral",variant:"ghost",disabled:!e(a).defaults.buildWorkflow,onClick:l[22]||(l[22]=s=>e(a).form.buildWorkflow=e(a).defaults.buildWorkflow)},null,8,["disabled"])])]),_:1},8,["error"]),t(r,{label:"MR description override",error:e(a).errors.mrDescription??!1},{default:p(()=>[t(u,{modelValue:e(a).form.mrDescription,"onUpdate:modelValue":l[23]||(l[23]=s=>e(a).form.mrDescription=s),rows:8,placeholder:e(a).defaults.mrDescription||"Inherit global","aria-label":"MR description template",class:"w-full font-mono text-xs"},null,8,["modelValue","placeholder"]),o("div",ya,[o("p",_a,[e(a).form.mrDescription?E("",!0):(n(),f(z,{key:0},[w("Inheriting global.")],64)),l[41]||(l[41]=w(" Set replaces the global template. ",-1))]),t(v,{label:"Load default",size:"xs",color:"neutral",variant:"ghost",disabled:!e(a).defaults.mrDescription,onClick:l[24]||(l[24]=s=>e(a).form.mrDescription=e(a).defaults.mrDescription)},null,8,["disabled"])])]),_:1},8,["error"])])])}}}),xa={class:"space-y-6"},wa={class:"space-y-3"},Va={key:0,class:"divide-y divide-default rounded-md border border-default"},ja={class:"truncate text-default"},Ia={class:"font-mono"},$a={class:"flex items-center gap-2"},Ra={key:1,class:"text-sm text-dimmed"},qa={class:"flex flex-wrap items-end gap-2"},Sa={class:"space-y-3"},Aa={key:0,class:"space-y-2"},Ca={class:"space-y-2"},Ma={key:0,class:"divide-y divide-default rounded-md border border-default"},Ua={class:"truncate text-default"},Pa={key:1,class:"text-sm text-dimmed"},Ba={key:2,class:"flex items-end gap-2 pt-1"},Da={key:3,class:"text-xs text-dimmed pt-1"},Ea={class:"space-y-2"},Fa={key:0,class:"divide-y divide-default rounded-md border border-default"},za={class:"truncate text-default"},Ta={key:1,class:"text-sm text-dimmed"},Ga=H({__name:"ProjectAccessSection",props:{project:{}},setup(g){const a=g,i=ve(),l=V([]),c=V(!1),r=V(!1),v=V(null),b=V("role"),u=V("read"),s=V(""),k=V("plan"),q=[{label:"Read (Reporter/Guest+)",value:"read"},{label:"Write (Developer+)",value:"write"},{label:"Admin (Maintainer+)",value:"admin"},{label:"Owner",value:"owner"},{label:"No access",value:"none"}],h=[{label:"Full (plan + build)",value:"full"},{label:"Plan only",value:"plan"},{label:"Denied (ignore)",value:"denied"}],A=[{label:"Role",value:"role"},{label:"Username",value:"user"}],M=V([]),x=V([]),B=V([]),T=V(!1),S=V(!1),U=V(null),y=V(void 0),G=j(()=>B.value.map(d=>({label:d.projectPath,value:d.projectId}))),I=j(()=>y.value===void 0?{}:{modelValue:y.value});function P(d){y.value=typeof d=="number"?d:void 0}function _(d){return d.subjectType==="role"?`role: ${d.role}`:`@${d.username}`}function K(d){return`${d.subjectType}:${d.subjectId}`}function le(d){return d==="full"?"Full":d==="plan"?"Plan only":"Denied"}async function $(){c.value=!0;const{data:d,error:m,status:F}=await N(`/api/projects/${a.project.projectId}/access-rules`);if(c.value=!1,m){F!==401&&i.add({title:"Failed to load access rules",description:m,color:"error",icon:"i-lucide-alert-circle"});return}l.value=d?.rules??[]}async function Z(){const d=b.value==="role"?{subjectType:"role",role:u.value,level:k.value}:{subjectType:"user",username:s.value.trim(),level:k.value};if(b.value==="user"&&s.value.trim()==="")return;r.value=!0;const{error:m,status:F}=await N(`/api/projects/${a.project.projectId}/access-rules`,{method:"POST",body:JSON.stringify(d)});if(r.value=!1,m){F===404?i.add({title:"User not found",description:`No user matches "${s.value.trim()}".`,color:"error",icon:"i-lucide-alert-circle"}):F!==401&&i.add({title:"Failed to add rule",description:m,color:"error",icon:"i-lucide-alert-circle"});return}b.value==="user"&&(s.value=""),await $()}async function ne(d){v.value=K(d);const{status:m,error:F}=await N(`/api/projects/${a.project.projectId}/access-rules/${d.subjectType}/${encodeURIComponent(d.subjectId)}`,{method:"DELETE"});if(v.value=null,m===204||m===404){await $();return}m!==401&&i.add({title:"Failed to remove rule",description:F??"unknown",color:"error",icon:"i-lucide-alert-circle"})}async function ee(){T.value=!0;const{data:d,error:m,status:F}=await N(`/api/projects/${a.project.projectId}/access`);if(T.value=!1,m){F!==401&&i.add({title:"Failed to load access grants",description:m,color:"error",icon:"i-lucide-alert-circle"}),M.value=[],x.value=[],B.value=[];return}M.value=d?.outbound??[],x.value=d?.inbound??[],B.value=d?.candidates??[]}async function de(){if(y.value===void 0)return;S.value=!0;const{error:d,status:m}=await N(`/api/projects/${a.project.projectId}/access/${y.value}`,{method:"PUT"});if(S.value=!1,d){m!==401&&i.add({title:"Failed to grant access",description:d,color:"error",icon:"i-lucide-alert-circle"});return}i.add({title:"Access granted",color:"success",icon:"i-lucide-check-circle"}),y.value=void 0,await ee()}async function C(d){U.value=d;const{status:m,error:F}=await N(`/api/projects/${a.project.projectId}/access/${d}`,{method:"DELETE"});if(U.value=null,m===204||m===404){i.add({title:"Access revoked",color:"success",icon:"i-lucide-check-circle"}),await ee();return}m!==401&&i.add({title:"Failed to revoke access",description:F??"unknown",color:"error",icon:"i-lucide-alert-circle"})}async function O(){await Promise.all([$(),ee()])}return Ce(O),(d,m)=>{const F=Me,L=ie,ue=Il,ae=me,Ee=ge,Fe=pe,ze=Be;return n(),f("div",xa,[o("section",wa,[m[4]||(m[4]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Trigger access rules",-1)),m[5]||(m[5]=o("p",{class:"text-xs text-dimmed"},[w(" Add a rule to refine the role gate from the Settings tab for one role or user (it can broaden or narrow, and an exact username rule beats a role rule). Users set to "),o("strong",null,"Denied"),w(" are ignored silently; plan-only subjects are ignored on build requests. A rule cannot bypass the author/assignee requirement. Rule changes apply immediately. ")],-1)),l.value.length>0?(n(),f("ul",Va,[(n(!0),f(z,null,J(l.value,R=>(n(),f("li",{key:K(R),class:"flex items-center justify-between px-3 py-2 gap-2"},[o("span",ja,[o("span",Ia,W(_(R)),1)]),o("div",$a,[t(F,{label:le(R.level),color:R.level==="denied"?"error":R.level==="plan"?"warning":"success",variant:"subtle",size:"sm"},null,8,["label","color"]),t(L,{icon:"i-lucide-x",color:"error",variant:"ghost",size:"sm",loading:v.value===K(R),"aria-label":`Remove rule for ${_(R)}`,onClick:Te=>ne(R)},null,8,["loading","aria-label","onClick"])])]))),128))])):c.value?E("",!0):(n(),f("p",Ra,"No per-project rules; the role-based default applies.")),o("div",qa,[t(ae,{label:"Subject",class:"w-32"},{default:p(()=>[t(ue,{modelValue:b.value,"onUpdate:modelValue":m[0]||(m[0]=R=>b.value=R),items:A,"aria-label":"Rule subject type",class:"w-full"},null,8,["modelValue"])]),_:1}),b.value==="role"?(n(),D(ae,{key:0,label:"Role",class:"w-52"},{default:p(()=>[t(ue,{modelValue:u.value,"onUpdate:modelValue":m[1]||(m[1]=R=>u.value=R),items:q,"aria-label":"Rule role",class:"w-full"},null,8,["modelValue"])]),_:1})):(n(),D(ae,{key:1,label:"Username",class:"flex-1 min-w-40"},{default:p(()=>[t(Ee,{modelValue:s.value,"onUpdate:modelValue":m[2]||(m[2]=R=>s.value=R),placeholder:"forge-username","aria-label":"Rule username",class:"w-full font-mono",onKeyup:Ae(Z,["enter"])},null,8,["modelValue"])]),_:1})),t(ae,{label:"Level",class:"w-52"},{default:p(()=>[t(ue,{modelValue:k.value,"onUpdate:modelValue":m[3]||(m[3]=R=>k.value=R),items:h,"aria-label":"Rule level",class:"w-full"},null,8,["modelValue"])]),_:1}),t(L,{label:"Add rule",icon:"i-lucide-plus",color:"primary","aria-label":"Add access rule",loading:r.value,disabled:b.value==="user"&&s.value.trim()==="",onClick:Z},null,8,["loading","disabled"])])]),o("section",Sa,[m[8]||(m[8]=o("h3",{class:"text-sm font-semibold text-highlighted"},"Cross-project access",-1)),m[9]||(m[9]=o("p",{class:"text-xs text-dimmed"},[w(" Allow this project's runs to read another "),o("strong",null,"enrolled"),w(" project via the internal forge MCP and to clone its code. Access is one-directional: granting A access to B does not grant B access to A. Changes apply immediately. ")],-1)),T.value?(n(),f("div",Aa,[(n(),f(z,null,J(2,R=>t(Fe,{key:R,class:"h-10 w-full"})),64))])):(n(),f(z,{key:1},[o("div",Ca,[m[6]||(m[6]=o("h4",{class:"text-xs font-semibold text-muted uppercase"},"Projects this project can access",-1)),M.value.length>0?(n(),f("ul",Ma,[(n(!0),f(z,null,J(M.value,R=>(n(),f("li",{key:R.projectId,class:"flex items-center justify-between px-3 py-2"},[o("span",Ua,W(R.projectPath),1),t(L,{icon:"i-lucide-x",color:"error",variant:"ghost",size:"sm",loading:U.value===R.projectId,"aria-label":`Revoke access to ${R.projectPath}`,onClick:Te=>C(R.projectId)},null,8,["loading","aria-label","onClick"])]))),128))])):(n(),f("p",Pa,"No outbound access granted.")),B.value.length>0?(n(),f("div",Ba,[t(ae,{label:"Grant access to",class:"flex-1"},{default:p(()=>[t(ze,Q(I.value,{"onUpdate:modelValue":P,items:G.value,"value-key":"value","search-input":{icon:"i-lucide-search"},placeholder:"Select an enrolled project","aria-label":"Grant access to project",class:"w-full"}),null,16,["items"])]),_:1}),t(L,{label:"Grant",icon:"i-lucide-plus",color:"primary",loading:S.value,disabled:y.value===void 0,onClick:de},null,8,["loading","disabled"])])):(n(),f("p",Da," Every other enrolled project is already granted (or none are enrolled yet). "))]),o("div",Ea,[m[7]||(m[7]=o("h4",{class:"text-xs font-semibold text-muted uppercase"},"Projects that can access this project",-1)),x.value.length>0?(n(),f("ul",Fa,[(n(!0),f(z,null,J(x.value,R=>(n(),f("li",{key:R.projectId,class:"flex items-center justify-between px-3 py-2"},[o("span",za,W(R.projectPath),1),t(F,{label:"Read-only",color:"neutral",variant:"subtle"})]))),128))])):(n(),f("p",Ta,"No other project can access this one."))])],64))])])}}}),Oa=/^[A-Z_][A-Z0-9_]*$/,La=64;function Na(g,a){return!(!Oa.test(g.name)||g.name.length>La||a==="add"&&!g.value)}const Wa={class:"space-y-4"},Ka={key:0,class:"space-y-4"},Ja={key:0,class:"space-y-2"},Ha={key:1,class:"divide-y divide-default"},Ya={class:"min-w-0"},Za={class:"flex items-center gap-2 flex-wrap"},Xa={class:"font-medium text-default truncate font-mono"},Qa={class:"text-sm text-dimmed"},et={class:"flex items-center gap-1"},lt={key:2,class:"text-center py-4 text-muted"},at={key:1,class:"space-y-4"},tt={class:"flex items-center gap-2"},st={class:"flex items-center justify-end gap-2"},ot=H({__name:"ProjectEnvSection",props:{project:{}},setup(g){const a=g,i=ve(),l=V([]),c=V(!1),r=V(null),v=V(!1),b=V(null),u=be({name:"",value:"",enabled:!0,showValue:!1}),s=V({}),k=V(null),q=j(()=>Na({name:u.name,value:u.value},b.value));async function h(){c.value=!0;const{data:U,error:y,status:G}=await N(`/api/projects/${a.project.projectId}/env`);if(y){G!==401&&i.add({title:"Failed to load env vars",description:y,color:"error",icon:"i-lucide-alert-circle"}),l.value=[],c.value=!1;return}l.value=U?.vars??[],c.value=!1}function A(){B(),b.value="add"}function M(U){B(),b.value=U.name,u.name=U.name,u.enabled=U.enabled,u.value="",u.showValue=!1}function x(){b.value=null}function B(){u.name="",u.value="",u.enabled=!0,u.showValue=!1,s.value={},k.value=null}async function T(){if(!q.value)return;v.value=!0;const U=JSON.stringify({value:u.value,enabled:u.enabled}),{error:y,status:G,data:I}=await N(`/api/projects/${a.project.projectId}/env/${encodeURIComponent(u.name)}`,{method:"PUT",body:U});if(v.value=!1,y){G===400&&I?.issues?(s.value=Object.fromEntries(I.issues.map(P=>[P.path.join("."),P.message])),i.add({title:"Validation error",description:I.issues.map(P=>P.message).join("; "),color:"error",icon:"i-lucide-alert-circle"})):i.add({title:"Save failed",description:y,color:"error",icon:"i-lucide-alert-circle"});return}i.add({title:b.value==="add"?"Added":"Updated",description:u.name,color:"success",icon:"i-lucide-check-circle"}),b.value=null,await h()}async function S(U){r.value=U;const{status:y,error:G}=await N(`/api/projects/${a.project.projectId}/env/${encodeURIComponent(U)}`,{method:"DELETE"});if(r.value=null,y===204||y===404){i.add({title:"Deleted",description:U,color:"success",icon:"i-lucide-check-circle"}),k.value=null,await h();return}i.add({title:"Delete failed",description:G??"unknown",color:"error",icon:"i-lucide-alert-circle"})}return Ce(h),(U,y)=>{const G=pe,I=Me,P=ie,_=ge,K=me,le=el;return n(),f("div",Wa,[b.value===null?(n(),f("div",Ka,[y[4]||(y[4]=o("p",{class:"text-sm text-dimmed"},[w(" These variables are injected into every builder container run and are available to "),o("code",null,".devbot/init.sh"),w(" after clone. ")],-1)),c.value?(n(),f("div",Ja,[(n(),f(z,null,J(3,$=>t(G,{key:$,class:"h-12 w-full"})),64))])):l.value.length>0?(n(),f("ul",Ha,[(n(!0),f(z,null,J(l.value,$=>(n(),f("li",{key:$.name,class:"flex items-center justify-between py-3 gap-2"},[o("div",Ya,[o("div",Za,[o("p",Xa,W($.name),1),t(I,{label:$.enabled?"Enabled":"Disabled",color:$.enabled?"success":"neutral",variant:"subtle",size:"sm"},null,8,["label","color"])]),o("p",Qa,W($.hasValue?"••••••••":"no value"),1)]),o("div",et,[t(P,{icon:"i-lucide-pencil",color:"neutral",variant:"ghost","aria-label":"Edit",onClick:Z=>M($)},null,8,["onClick"]),t(P,{icon:k.value===$.name?"i-lucide-check":"i-lucide-trash",color:k.value===$.name?"error":"neutral",variant:"ghost",loading:r.value===$.name,"aria-label":"Delete",onClick:Z=>k.value===$.name?S($.name):k.value=$.name},null,8,["icon","color","loading","onClick"])])]))),128))])):c.value?E("",!0):(n(),f("div",lt," No environment variables configured for this project. ")),c.value?E("",!0):(n(),D(P,{key:3,label:"Add variable",icon:"i-lucide-plus",color:"primary",variant:"outline",class:"w-full justify-center",onClick:A}))])):(n(),f("div",at,[t(K,{label:"Name",error:s.value.name??!1},{default:p(()=>[t(_,{modelValue:u.name,"onUpdate:modelValue":y[0]||(y[0]=$=>u.name=$),placeholder:"e.g. DATABASE_URL","aria-label":"Variable name",class:"w-full font-mono",disabled:b.value!=="add"},null,8,["modelValue","disabled"]),y[5]||(y[5]=o("p",{class:"text-xs text-dimmed mt-1"},"Uppercase letters, digits, underscore. Must start with a letter or underscore.",-1))]),_:1},8,["error"]),t(K,{label:b.value==="add"?"Value":"Value (leave empty to keep unchanged)",error:s.value.value??!1},{default:p(()=>[t(_,{modelValue:u.value,"onUpdate:modelValue":y[1]||(y[1]=$=>u.value=$),type:u.showValue?"text":"password",placeholder:"••••••••","aria-label":"Variable value",class:"w-full font-mono"},null,8,["modelValue","type"]),t(P,{icon:u.showValue?"i-lucide-eye-off":"i-lucide-eye",color:"neutral",variant:"ghost",size:"xs",class:"mt-1",label:u.showValue?"Hide":"Show",onClick:y[2]||(y[2]=$=>u.showValue=!u.showValue)},null,8,["icon","label"])]),_:1},8,["label","error"]),o("div",tt,[t(le,{modelValue:u.enabled,"onUpdate:modelValue":y[3]||(y[3]=$=>u.enabled=$),"aria-label":"Enabled"},null,8,["modelValue"]),y[6]||(y[6]=o("span",{class:"text-sm"},"Enabled",-1))]),o("div",st,[t(P,{label:"Cancel",color:"neutral",variant:"outline",disabled:v.value,onClick:x},null,8,["disabled"]),t(P,{label:b.value==="add"?"Add":"Save",icon:"i-lucide-check",color:"primary",loading:v.value,disabled:!q.value,onClick:T},null,8,["label","loading","disabled"])])]))])}}}),rt={key:0,class:"space-y-3"},it={class:"space-y-3 py-6"},nt={key:0,class:"space-y-2"},dt={class:"space-y-8"},gt=H({__name:"ProjectDetailPage",setup(g){const a=yl(),i=j(()=>Number(a.params.id)),l=j(()=>je.value.find(u=>u.projectId===i.value)??null);te(()=>i.value,()=>{je.value.length===0&&Vl()},{immediate:!0}),te(l,u=>{u&&(document.title=`DevBot - Project - ${u.projectPath}`)},{immediate:!0});const c=Nl(l),v=jl(["settings","access","env","repos","mcp","webhooks"],"settings"),b=[{label:"Settings",icon:"i-lucide-sliders-horizontal",value:"settings",slot:"settings"},{label:"Access",icon:"i-lucide-share-2",value:"access",slot:"access"},{label:"Environment",icon:"i-lucide-terminal",value:"env",slot:"env"},{label:"Skills & Agents",icon:"i-lucide-sparkles",value:"repos",slot:"repos"},{label:"MCP",icon:"i-lucide-plug",value:"mcp",slot:"mcp"},{label:"Webhooks",icon:"i-lucide-webhook",value:"webhooks",slot:"webhooks"}];return(u,s)=>{const k=Le,q=ie,h=Oe,A=pe,M=kl,x=_l,B=ll,T=Ge;return n(),D(T,{id:"project"},{header:p(()=>[t(h,{title:l.value?.projectPath??"Project",icon:"i-lucide-folder-git-2"},{leading:p(()=>[t(k)]),right:p(()=>[t(q,{label:"Back to projects",icon:"i-lucide-arrow-left",color:"neutral",variant:"ghost",to:"/projects"}),e(v)==="settings"?(n(),D(q,{key:0,label:"Save settings",icon:"i-lucide-check",color:"primary",loading:e(c).submitting,disabled:!e(c).isValid||e(c).loading,onClick:e(c).submit},null,8,["loading","disabled","onClick"])):E("",!0)]),_:1},8,["title"])]),body:p(()=>[e(wl)&&!l.value?(n(),f("div",rt,[(n(),f(z,null,J(4,S=>t(A,{key:S,class:"h-12 w-full"})),64))])):l.value?(n(),D(B,{key:2,modelValue:e(v),"onUpdate:modelValue":s[0]||(s[0]=S=>xl(v)?v.value=S:null),items:b,variant:"link","unmount-on-hide":!1,ui:{trigger:"grow"},class:"gap-6"},{settings:p(()=>[e(c).loading?(n(),f("div",nt,[(n(),f(z,null,J(4,S=>t(A,{key:S,class:"h-10 w-full"})),64))])):(n(),D(ka,{key:1}))]),access:p(()=>[t(Ga,{project:l.value},null,8,["project"])]),env:p(()=>[t(ot,{project:l.value},null,8,["project"])]),repos:p(()=>[o("div",dt,[t(ke,{scope:"project",kind:"skills",project:l.value},null,8,["project"]),t(ke,{scope:"project",kind:"agents",project:l.value},null,8,["project"])])]),mcp:p(()=>[t(tl,{scope:"project",project:l.value},null,8,["project"])]),webhooks:p(()=>[t(al,{scope:"project",project:l.value},null,8,["project"])]),_:1},8,["modelValue"])):(n(),D(x,{key:1,class:"text-center"},{default:p(()=>[o("div",it,[t(M,{name:"i-lucide-folder-x",class:"size-10 text-dimmed mx-auto"}),s[1]||(s[1]=o("p",{class:"text-muted"},"Project not found or no longer managed.",-1)),t(q,{label:"Back to projects",color:"primary",to:"/projects"})])]),_:1}))]),_:1})}}});export{gt as default};
@@ -0,0 +1 @@
1
+ import{_ as H,a as Q,b as W,c as X}from"./DashboardSidebarCollapse-rIuzCmVm.js";import{_ as Y,a as ee}from"./DashboardToolbar-DFCUqZ4Z.js";import{d as O,k as oe,e as b,h as V,w as p,f as T,a,i as D,l as K,t as G,m as J,n as F,p as te,q as B,s as I,v as Z,r as u,x as R,b as N,o as ae,c as C,u as ne,F as L,g as le,_ as re,y as se,j as E}from"./index-C5RBBrPj.js";import{_ as ce,a as ie}from"./SelectMenu-BjMxc4VB.js";import{a as de,r as ue}from"./useManagedProjects-8rtjRqVJ.js";import{_ as pe,w as me}from"./index-BMbMibyb.js";import{_ as ve}from"./TimeCell.vue_vue_type_script_setup_true_lang-DW_UB0Fu.js";const fe={class:"flex items-center gap-1"},_e=O({__name:"ProjectsTable",props:{projects:{},loading:{type:Boolean}},emits:["remove"],setup(j,{emit:g}){const i=g,_=[{accessorKey:"projectPath",header:"Project"},{accessorKey:"createdAt",header:"Onboarded"},{id:"actions"}];return(S,m)=>{const d=oe("RouterLink"),n=D,c=pe;return b(),V(c,{data:j.projects,columns:_,loading:j.loading},{"projectPath-cell":p(({row:e})=>[a(d,{to:`/projects/${e.original.projectId}`,class:"font-medium text-default hover:text-primary"},{default:p(()=>[K(G(e.original.projectPath),1)]),_:2},1032,["to"])]),"createdAt-cell":p(({row:e})=>[a(ve,{value:e.original.createdAt||null,unit:"s"},null,8,["value"])]),"actions-cell":p(({row:e})=>[T("div",fe,[a(n,{label:"Configure",icon:"i-lucide-sliders-horizontal",color:"neutral",variant:"soft",size:"xs",to:`/projects/${e.original.projectId}`,"aria-label":`Configure project ${e.original.projectPath}`},null,8,["to","aria-label"]),a(n,{label:"Remove",icon:"i-lucide-trash",color:"error",variant:"soft",size:"xs","aria-label":`Remove project ${e.original.projectPath}`,onClick:v=>i("remove",e.original)},null,8,["aria-label","onClick"])])]),_:1},8,["data","loading"])}}}),ge=O({__name:"AddProjectModal",props:I({managedIds:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:I(["done"],["update:open"]),setup(j,{emit:g}){const i=J(j,"open"),_=j,S=g,m=F(),d=u(""),n=u([]),c=u(new Set),e=u(!1),v=u(!1);let y;te(()=>{y&&clearTimeout(y)});async function h(){e.value=!0;const{data:l,error:t,status:o}=await N(`/api/projects?q=${encodeURIComponent(d.value)}`);if(e.value=!1,t){o!==401&&m.add({title:"Search failed",description:t,color:"error",icon:"i-lucide-alert-circle"}),n.value=[];return}n.value=l?.projects??[]}B(d,()=>{y&&clearTimeout(y),y=setTimeout(h,300)}),B(i,l=>{l&&(d.value="",c.value=new Set,n.value=[],h())});const x=R(()=>new Set(_.managedIds??[])),A=R(()=>n.value.filter(l=>!x.value.has(l.id)).slice(0,10)),k=u(new Map);B(n,l=>{if(l.length===0)return;const t=new Map(k.value);for(const o of l)t.set(o.id,o);k.value=t});const s=R(()=>{const l=new Set(A.value.map(o=>o.id)),t=[...c.value].map(o=>k.value.get(o)).filter(o=>!!o&&!l.has(o.id));return[...A.value,...t].map(o=>({value:String(o.id),label:o.path}))}),U=R({get:()=>[...c.value].map(String),set:l=>{c.value=new Set(l.map(Number))}});async function $(){if(c.value.size===0)return;v.value=!0;const l={projects:[...c.value].map(r=>{const z=k.value.get(r)??n.value.find(q=>q.id===r);return{id:r,path:z?.path??`project ${r}`}})},{data:t,error:o,status:P}=await N("/api/onboard",{method:"POST",body:JSON.stringify(l)});if(v.value=!1,o){m.add({title:P===400?"Validation error":"Onboard failed",description:o,color:"error",icon:"i-lucide-alert-circle"});return}const w=t?.results??[];for(const r of w)r.ok?m.add({title:r.created?"Onboarded":"Already onboarded",description:r.projectPath,color:"success",icon:"i-lucide-check-circle"}):m.add({title:"Failed",description:`${r.projectPath}: ${r.error??"unknown error"}`,color:"error",icon:"i-lucide-alert-circle"});S("done",w),i.value=!1}return(l,t)=>{const o=ce,P=D,w=Z;return b(),V(w,{open:i.value,"onUpdate:open":t[2]||(t[2]=r=>i.value=r),title:"Add project",description:"Search projects and select one or more to onboard.",ui:{footer:"justify-end"}},{body:p(()=>[a(o,{modelValue:U.value,"onUpdate:modelValue":t[0]||(t[0]=r=>U.value=r),"search-term":d.value,"onUpdate:searchTerm":t[1]||(t[1]=r=>d.value=r),items:s.value,"value-key":"value",multiple:"","ignore-filter":"","reset-search-term-on-select":!1,loading:e.value,"search-input":{icon:"i-lucide-search",loading:e.value},placeholder:"Search projects…","aria-label":"Search projects",class:"w-full"},{empty:p(()=>[...t[3]||(t[3]=[K("No projects found.",-1)])]),_:1},8,["modelValue","search-term","items","loading","search-input"])]),footer:p(({close:r})=>[a(P,{label:"Cancel",color:"neutral",variant:"outline",onClick:r},null,8,["onClick"]),a(P,{label:"Onboard selected",icon:"i-lucide-plus",color:"primary",loading:v.value,disabled:c.value.size===0,onClick:$},null,8,["loading","disabled"])]),_:1},8,["open"])}}}),he=O({__name:"RemoveProjectModal",props:I({project:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:I(["removed"],["update:open"]),setup(j,{emit:g}){const i=J(j,"open"),_=j,S=g,m=F(),d=u(!1);async function n(){if(!_.project)return;d.value=!0;const{data:c,error:e,status:v}=await N(`/api/revoke/${_.project.projectId}`,{method:"POST"});if(d.value=!1,v===404||v===200&&c?.ok){m.add({title:"Revoked",description:_.project.projectPath,color:"success",icon:"i-lucide-check-circle"}),S("removed"),i.value=!1;return}if(e){m.add({title:"Revoke failed",description:e,color:"error",icon:"i-lucide-alert-circle"});return}}return(c,e)=>{const v=D,y=Z;return b(),V(y,{open:i.value,"onUpdate:open":e[0]||(e[0]=h=>i.value=h),title:"Revoke project",description:j.project?.projectPath??"",ui:{footer:"justify-end"}},{body:p(()=>[...e[1]||(e[1]=[T("p",{class:"text-muted"}," This removes the bot from the project, deletes its webhook, and deletes the stored signing token. The bot will no longer respond to mentions in this project. Re-onboard via the project list to undo. ",-1)])]),footer:p(({close:h})=>[a(v,{label:"Cancel",color:"neutral",variant:"outline",disabled:d.value,onClick:h},null,8,["disabled","onClick"]),a(v,{label:"Confirm revoke",icon:"i-lucide-trash",color:"error",loading:d.value,onClick:n},null,8,["loading"])]),_:1},8,["open","description"])}}}),je={class:"space-y-4"},be={key:0,class:"space-y-3"},ye={class:"space-y-3 py-6"},ke={class:"text-muted"},$e={key:0,class:"flex justify-center pt-2"},M=15,Re=O({__name:"ProjectsPage",setup(j){const g=u([]),i=u(!0),_=u(0),S=F(),m=u(""),d=R(()=>m.value.trim()!==""),n=u(1),c=u(!1),e=u(!1),v=u(null);function y(k){v.value=k,e.value=!0}async function h(){i.value=!0;const k=(n.value-1)*M,s=new URLSearchParams,U=m.value.trim();U.length>0&&s.set("q",U),s.set("limit",String(M)),s.set("offset",String(k));const{data:$,error:l,status:t}=await N(`/api/managed?${s.toString()}`);if(i.value=!1,l){t!==401&&S.add({title:"Failed to load projects",description:l,color:"error",icon:"i-lucide-alert-circle"});return}g.value=$?.projects??[],_.value=$?.total??g.value.length;const o=Math.max(1,Math.ceil(_.value/M));if(n.value>o){n.value=o;return}}async function x(){await Promise.all([h(),ue()])}function A(){n.value!==1?n.value=1:h()}return me(m,A,{debounce:300}),B(n,()=>{h()}),ae(x),(k,s)=>{const U=X,$=D,l=W,t=ie,o=ee,P=Q,w=se,r=re,z=Y,q=H;return b(),C(L,null,[a(q,{id:"projects"},{header:p(()=>[a(l,{title:"Projects",icon:"i-lucide-folder-git-2"},{leading:p(()=>[a(U)]),right:p(()=>[a($,{label:"Add project",icon:"i-lucide-plus",color:"primary",onClick:s[0]||(s[0]=f=>c.value=!0)}),a($,{label:"Reload",icon:"i-lucide-refresh-cw",color:"neutral",variant:"soft",loading:i.value,onClick:h},null,8,["loading"])]),_:1}),a(o,null,{left:p(()=>[a(t,{modelValue:m.value,"onUpdate:modelValue":s[1]||(s[1]=f=>m.value=f),icon:"i-lucide-search",placeholder:"Search project path","aria-label":"Search project path",class:"w-64"},null,8,["modelValue"])]),_:1})]),body:p(()=>[T("div",je,[i.value&&g.value.length===0?(b(),C("div",be,[(b(),C(L,null,le(3,f=>a(P,{key:f,class:"h-10 w-full"})),64))])):g.value.length===0?(b(),V(r,{key:1,class:"text-center"},{default:p(()=>[T("div",ye,[a(w,{name:"i-lucide-folder-open",class:"size-10 text-dimmed mx-auto"}),T("p",ke,G(d.value?"No projects match your search.":"No projects onboarded yet."),1),d.value?E("",!0):(b(),V($,{key:0,label:"Add project",icon:"i-lucide-plus",color:"primary",onClick:s[2]||(s[2]=f=>c.value=!0)}))])]),_:1})):(b(),C(L,{key:2},[a(_e,{projects:g.value,loading:i.value,onRemove:y},null,8,["projects","loading"]),_.value>M?(b(),C("div",$e,[a(z,{page:n.value,"onUpdate:page":s[3]||(s[3]=f=>n.value=f),total:_.value,"items-per-page":M},null,8,["page","total"])])):E("",!0)],64))])]),_:1}),a(ge,{open:c.value,"onUpdate:open":s[4]||(s[4]=f=>c.value=f),"managed-ids":ne(de).map(f=>f.projectId),onDone:x},null,8,["open","managed-ids"]),a(he,{open:e.value,"onUpdate:open":s[5]||(s[5]=f=>e.value=f),project:v.value,onRemoved:x},null,8,["open","project"])],64)}}});export{Re as default};
@@ -0,0 +1 @@
1
+ import{_ as E,u as F}from"./index-BMbMibyb.js";import{d as R,e as r,h as N,w as i,f as n,a as b,i as Q,j as g,t as o,u as f,a1 as O,c as v,x as W,r as $,m as z,q as G,a7 as H,s as J,l as m,b as j}from"./index-C5RBBrPj.js";import{f as V,a as w,t as P,u as X}from"./usage-format-jsb31_O8.js";import{_ as Y}from"./WorkItemCell.vue_vue_type_script_setup_true_lang-BQn6vTjd.js";import{_ as D}from"./TimeCell.vue_vue_type_script_setup_true_lang-DW_UB0Fu.js";import{_ as Z,a as _,f as ee}from"./LogSlideover.vue_vue_type_script_setup_true_lang-33xie7TE.js";const te={class:"flex items-center gap-1.5"},ae=["title"],ne={key:1,class:"text-sm text-dimmed"},se={class:"text-sm text-muted whitespace-nowrap"},le={class:"text-sm text-muted whitespace-nowrap"},oe={class:"text-sm text-muted whitespace-nowrap"},ie={class:"text-sm text-muted"},re={class:"flex items-center gap-1"},Ke=R({__name:"RunsTable",props:{runs:{},loading:{type:Boolean},stopping:{},compact:{type:Boolean}},emits:["logs","stop","details"],setup(a,{emit:I}){const S=a,p=I,h=[{accessorKey:"workItemId",header:"Work item"},{accessorKey:"mode",header:"Mode"},{accessorKey:"model",header:"Model"},{accessorKey:"state",header:"State"},{accessorKey:"phase",header:"Phase"},{accessorKey:"tokens",header:"Tokens"},{accessorKey:"costUsd",header:"Cost"},{accessorKey:"enqueuedAt",header:"Queued"},{accessorKey:"finishedAt",header:"Finished"},{accessorKey:"duration",header:"Duration"},{accessorKey:"attempts",header:"Attempts"},{id:"actions"}],K=[{accessorKey:"workItemId",header:"Work item"},{accessorKey:"mode",header:"Mode"},{accessorKey:"model",header:"Model"},{accessorKey:"state",header:"State"},{accessorKey:"enqueuedAt",header:"Queued"},{accessorKey:"duration",header:"Duration"},{accessorKey:"attempts",header:"Attempts"},{id:"actions"}],M=W(()=>S.compact?K:h),T=new Set(["queued","waiting","running"]),x=X({scheduler:l=>F(l,1e3)}),d=$(null);function C(l){if(d.value!==l.seq){d.value=l.seq;return}d.value=null,p("stop",l)}function k(l){return l==="running"?"primary":l==="queued"||l==="waiting"?"warning":l==="ok"?"success":l==="failed"?"error":"neutral"}function q(l){const y=l.durationMs!==null?l.durationMs:T.has(l.state)&&l.enqueuedAt>0?Math.max(0,x.value.getTime()-l.enqueuedAt):null;if(y===null)return"—";const c=Math.round(y/1e3);return c<60?`${c}s`:`${Math.floor(c/60)}m ${c%60}s`}return(l,y)=>{const c=O,A=Q,L=E;return r(),N(L,{data:a.runs,columns:M.value,loading:a.loading},{"workItemId-cell":i(({row:e})=>[b(Y,{"work-item-iid":e.original.workItemIid,"work-item-title":e.original.workItemTitle,"project-path":e.original.projectPath,"project-id":e.original.projectId,onOpen:U=>p("details",e.original)},null,8,["work-item-iid","work-item-title","project-path","project-id","onOpen"])]),"mode-cell":i(({row:e})=>[b(c,{label:e.original.mode,color:"neutral",variant:"subtle"},null,8,["label"])]),"model-cell":i(({row:e})=>[b(Z,{model:e.original.model,variant:e.original.variant},null,8,["model","variant"])]),"state-cell":i(({row:e})=>[n("div",te,[b(c,{label:e.original.state,color:k(e.original.state),variant:"subtle"},null,8,["label","color"]),e.original.state==="waiting"&&e.original.position!==null?(r(),v("span",{key:0,class:"text-xs text-muted whitespace-nowrap",title:`Queue position ${e.original.position}`},"#"+o(e.original.position),9,ae)):g("",!0)])]),"phase-cell":i(({row:e})=>[e.original.phase?(r(),N(c,{key:0,label:e.original.phase,color:"neutral",variant:"subtle"},null,8,["label"])):(r(),v("span",ne,"—"))]),"tokens-cell":i(({row:e})=>[n("span",se,o(f(w)(f(P)(e.original))),1)]),"costUsd-cell":i(({row:e})=>[n("span",le,o(f(V)(e.original.costUsd)),1)]),"enqueuedAt-cell":i(({row:e})=>[b(D,{value:e.original.enqueuedAt,unit:"ms"},null,8,["value"])]),"finishedAt-cell":i(({row:e})=>[b(D,{value:e.original.finishedAt,unit:"ms"},null,8,["value"])]),"duration-cell":i(({row:e})=>[n("span",oe,o(q(e.original)),1)]),"attempts-cell":i(({row:e})=>[n("span",ie,o(e.original.attempts),1)]),"actions-cell":i(({row:e})=>[n("div",re,[b(A,{label:"Logs",icon:"i-lucide-scroll-text",color:"neutral",variant:"ghost",size:"xs",disabled:e.original.logKind==="none","aria-label":`View logs for run ${e.original.historyId??e.original.seq}`,onClick:U=>p("logs",e.original)},null,8,["disabled","aria-label","onClick"]),e.original.canStop?(r(),N(A,{key:0,label:d.value===e.original.seq?"Confirm":"Stop",icon:d.value===e.original.seq?"i-lucide-check":"i-lucide-square",color:d.value===e.original.seq?"error":"neutral",variant:"ghost",size:"xs",loading:a.stopping===e.original.seq,"aria-label":`Stop task ${e.original.seq}`,onClick:U=>C(e.original)},null,8,["label","icon","color","loading","aria-label","onClick"])):g("",!0)])]),_:1},8,["data","columns","loading"])}}}),ue={key:0,class:"text-sm text-muted space-y-1"},de={key:0},ce={key:1},me={key:2},fe={key:3},ge={key:4},ve={key:5},pe=2e3,Te=R({__name:"RunDetailSlideover",props:J({run:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:["update:open"],setup(a){const I=z(a,"open"),S=a,p=$(""),h=$(!1),K=$(!1),M=$(""),T=$(!1),x=$("");let d=null,C=!1,k=0;function q(){d!==null&&(clearInterval(d),d=null)}function l(){p.value="",h.value=!1,K.value=!1,M.value="",T.value=!1,x.value=""}function y(){return"Run logs expired. The run-log file was removed by the retention policy."}async function c(s,t){if(C)return;C=!0;const{data:u}=await j(`/api/tasks/${s}/logs`);C=!1,t===k&&u&&(p.value=u.text,h.value=u.available,K.value=u.truncated,M.value=u.phaseLabel,u.archived&&(T.value=!1,q(),u.available||(x.value=u.reason==="expired"?y():"No logs captured for this run.")))}async function A(s,t){if(!s.historyId){h.value=!1,x.value=s.logKind==="none"?"No logs captured for this run.":y();return}const{data:u}=await j(`/api/run-history/${s.historyId}`);if(t!==k)return;const B=u?.run;p.value=B?.logs??"",h.value=B?.logAvailable??!1,K.value=B?.truncated??!1,h.value||(x.value=B?.logReason==="expired"?y():"No logs captured for this run.")}function L(s){q(),l();const t=++k;s.logKind==="live"?(T.value=!0,(async()=>(await c(s.seq,t),t===k&&(d=setInterval(()=>{c(s.seq,t)},pe))))()):(x.value=s.logKind==="none"?"No logs captured for this run.":y(),A(s,t))}G([I,()=>S.run],([s,t])=>{s&&t?L(t):(k++,q())}),H(()=>{k++,q()});function e(s){return s?new Date(s).toLocaleString():"—"}function U(){const s=S.run;if(!s||s.durationMs===null)return"—";const t=Math.round(s.durationMs/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}return(s,t)=>(r(),N(_,{open:I.value,"onUpdate:open":t[0]||(t[0]=u=>I.value=u),title:a.run?.canStop?"Container logs":"Run detail",description:a.run?`#${a.run.workItemIid} ${a.run.workItemTitle}`:"",text:p.value,available:h.value,truncated:K.value,"phase-label":M.value,live:T.value,"unavailable-text":x.value,"work-item-url":a.run?.workItemUrl??""},{meta:i(()=>[a.run?(r(),v("div",ue,[n("p",null,[t[1]||(t[1]=n("span",{class:"text-default font-medium"},"State:",-1)),m(" "+o(a.run.state),1)]),a.run.state==="waiting"&&a.run.position!==null?(r(),v("p",de,[t[2]||(t[2]=n("span",{class:"text-default font-medium"},"Queue position:",-1)),m(" #"+o(a.run.position),1)])):g("",!0),a.run.phase?(r(),v("p",ce,[t[3]||(t[3]=n("span",{class:"text-default font-medium"},"Phase:",-1)),m(" "+o(a.run.phase),1)])):g("",!0),n("p",null,[t[4]||(t[4]=n("span",{class:"text-default font-medium"},"Model:",-1)),m(" "+o(f(ee)(a.run.model,a.run.variant)),1)]),n("p",null,[t[5]||(t[5]=n("span",{class:"text-default font-medium"},"Started:",-1)),m(" "+o(e(a.run.startedAt)),1)]),n("p",null,[t[6]||(t[6]=n("span",{class:"text-default font-medium"},"Finished:",-1)),m(" "+o(e(a.run.finishedAt)),1)]),n("p",null,[t[7]||(t[7]=n("span",{class:"text-default font-medium"},"Duration:",-1)),m(" "+o(U()),1)]),a.run.exitCode!==null?(r(),v("p",me,[t[8]||(t[8]=n("span",{class:"text-default font-medium"},"Exit code:",-1)),m(" "+o(a.run.exitCode),1)])):g("",!0),f(P)(a.run)>0||a.run.costUsd>0?(r(),v("p",fe,[t[9]||(t[9]=n("span",{class:"text-default font-medium"},"Tokens:",-1)),m(" "+o(f(w)(a.run.inputTokens))+" in · "+o(f(w)(a.run.outputTokens))+" out · "+o(f(w)(a.run.reasoningTokens))+" reasoning · "+o(f(w)(a.run.cacheReadTokens))+" cache read · "+o(f(w)(a.run.cacheWriteTokens))+" cache write",1)])):g("",!0),a.run.costUsd>0?(r(),v("p",ge,[t[10]||(t[10]=n("span",{class:"text-default font-medium"},"Cost:",-1)),m(" "+o(f(V)(a.run.costUsd)),1)])):g("",!0),a.run.message?(r(),v("p",ve,[t[11]||(t[11]=n("span",{class:"text-default font-medium"},"Message:",-1)),m(" "+o(a.run.message),1)])):g("",!0)])):g("",!0)]),_:1},8,["open","title","description","text","available","truncated","phase-label","live","unavailable-text","work-item-url"]))}});export{Te as _,Ke as a};
@@ -0,0 +1 @@
1
+ import{_ as ne,a as ue,b as ie,c as re}from"./DashboardSidebarCollapse-rIuzCmVm.js";import{_ as ce,a as de}from"./DashboardToolbar-DFCUqZ4Z.js";import{d as me,a4 as ve,a5 as pe,a6 as _e,n as fe,q as Q,o as ge,c as h,a as t,w as m,F as T,r as o,b as z,e as r,f as D,g as be,h as C,_ as ye,y as we,t as $e,j as B,a1 as he,i as Ue,a3 as Se,u as ke,x as U}from"./index-C5RBBrPj.js";import{_ as Ve,a as xe}from"./SelectMenu-BjMxc4VB.js";import{u as je}from"./useRouteTab-DfwrcMic.js";import{b as Ie,_ as Pe}from"./PeriodRangePicker.vue_vue_type_script_setup_true_lang-DiFUNem7.js";import{_ as Re,a as qe}from"./RunDetailSlideover.vue_vue_type_script_setup_true_lang-DopYYmCT.js";import{w as Ae}from"./index-BMbMibyb.js";import"./Select-Bvx32Diz.js";import"./usage-format-jsb31_O8.js";import"./WorkItemCell.vue_vue_type_script_setup_true_lang-BQn6vTjd.js";import"./TimeCell.vue_vue_type_script_setup_true_lang-DW_UB0Fu.js";import"./LogSlideover.vue_vue_type_script_setup_true_lang-33xie7TE.js";function Te(s){const c=new URLSearchParams(Ie(s.period,s.range,{projectId:s.projectId,model:s.model,mode:s.mode}));c.set("status",s.status);const n=s.search.trim();return n.length>0&&c.set("q",n),c.set("limit",String(s.limit)),c.set("offset",String(s.offset)),c.toString()}const De={class:"space-y-4"},Ce={key:0,class:"space-y-3"},Be={class:"space-y-3 py-6"},Ee={class:"text-muted"},Me={key:0,class:"flex justify-center pt-2"},S=15,Ye=me({__name:"RunsPage",setup(s){const n=je(["all","active","errored","cancelled","settled"],"all","status"),G=[{label:"All runs",value:"all"},{label:"Active",value:"active"},{label:"Errored",value:"errored"},{label:"Cancelled",value:"cancelled"},{label:"Settled",value:"settled"}],v=o(365),Z=ve(),E=pe(Z),k=_e({start:E.subtract({days:29}),end:E}),p=o(null),_=o(null),f=o(null),g=o(""),b=o([]),y=o(!0),d=o({active:0,max:0,waiting:0}),V=o({projects:[],models:[],modes:[]}),M=o({}),P=fe(),R=o(!1),N=o(null),i=o(1),x=o(0),q=o(null),H=U(()=>[{label:"All projects",value:null},...V.value.projects.map(l=>({label:M.value[String(l)]??`#${l}`,value:l}))]),J=U(()=>[{label:"All models",value:null},...V.value.models.map(l=>({label:l||"—",value:l}))]),K=U(()=>[{label:"All modes",value:null},...V.value.modes.map(l=>({label:l||"—",value:l}))]),F=U(()=>n.value==="all"||n.value==="active"),W=U(()=>p.value!==null||_.value!==null||f.value!==null||g.value.trim()!==""||v.value!==365);function L(l){N.value=l,R.value=!0}async function X(l){q.value=l.seq;const{error:e,status:u}=await z(`/api/tasks/${l.seq}/stop`,{method:"POST"});if(q.value=null,e){u!==401&&P.add({title:"Failed to stop task",description:e,color:"error",icon:"i-lucide-alert-circle"});return}P.add({title:"Stop requested",color:"success",icon:"i-lucide-square"}),await w()}async function w(){y.value=!0;const l=(i.value-1)*S,e=Te({status:n.value,period:v.value,range:k.value,projectId:p.value,model:_.value,mode:f.value,search:g.value,limit:S,offset:l}),{data:u,error:$,status:A}=await z(`/api/runs?${e}`);if(y.value=!1,$){A!==401&&P.add({title:"Failed to load runs",description:$,color:"error",icon:"i-lucide-alert-circle"});return}b.value=u?.runs??[],x.value=u?.total??b.value.length,d.value=u?.quota??{active:0,max:0,waiting:0},V.value=u?.filterOptions??{projects:[],models:[],modes:[]},M.value=u?.projectPaths??{};const j=Math.max(1,Math.ceil(x.value/S));if(i.value>j){i.value=j;return}}function O(){i.value!==1?i.value=1:w()}return Q([n,v,k,p,_,f],O,{deep:!0}),Ae(g,O,{debounce:300}),Q(i,()=>{w()}),ge(w),(l,e)=>{const u=re,$=he,A=Ue,j=ie,I=Ve,Y=xe,ee=de,ae=ue,le=we,te=ye,oe=ce,se=ne;return r(),h(T,null,[t(se,{id:"runs"},{header:m(()=>[t(j,{title:"Runs",icon:"i-lucide-activity"},{leading:m(()=>[t(u)]),right:m(()=>[F.value?(r(),C($,{key:0,label:`${d.value.active} / ${d.value.max} running`,color:d.value.active>0?"primary":"neutral",variant:"subtle",icon:"i-lucide-activity"},null,8,["label","color"])):B("",!0),F.value?(r(),C($,{key:1,label:`${d.value.waiting} waiting`,color:d.value.waiting>0?"warning":"neutral",variant:"subtle",icon:"i-lucide-hourglass"},null,8,["label","color"])):B("",!0),t(A,{label:"Reload",icon:"i-lucide-refresh-cw",color:"neutral",variant:"soft",loading:y.value,onClick:w},null,8,["loading"])]),_:1}),t(ee,null,{left:m(()=>[t(I,{modelValue:ke(n),"onUpdate:modelValue":e[0]||(e[0]=a=>Se(n)?n.value=a:null),items:G,"value-key":"value",class:"w-36","aria-label":"Run status filter"},null,8,["modelValue"]),t(Pe,{period:v.value,"onUpdate:period":e[1]||(e[1]=a=>v.value=a),range:k.value,"onUpdate:range":e[2]||(e[2]=a=>k.value=a)},null,8,["period","range"]),t(I,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=a=>p.value=a),items:H.value,"value-key":"value",class:"w-48","aria-label":"Project filter"},null,8,["modelValue","items"]),t(I,{modelValue:_.value,"onUpdate:modelValue":e[4]||(e[4]=a=>_.value=a),items:J.value,"value-key":"value",class:"w-56","aria-label":"Model filter"},null,8,["modelValue","items"]),t(I,{modelValue:f.value,"onUpdate:modelValue":e[5]||(e[5]=a=>f.value=a),items:K.value,"value-key":"value",class:"w-40","aria-label":"Mode filter"},null,8,["modelValue","items"]),t(Y,{modelValue:g.value,"onUpdate:modelValue":e[6]||(e[6]=a=>g.value=a),icon:"i-lucide-search",placeholder:"Search work item title","aria-label":"Search work item title",class:"w-64"},null,8,["modelValue"])]),_:1})]),body:m(()=>[D("div",De,[y.value&&b.value.length===0?(r(),h("div",Ce,[(r(),h(T,null,be(3,a=>t(ae,{key:a,class:"h-10 w-full"})),64))])):b.value.length===0?(r(),C(te,{key:1,class:"text-center"},{default:m(()=>[D("div",Be,[t(le,{name:"i-lucide-list-checks",class:"size-10 text-dimmed mx-auto"}),D("p",Ee,$e(W.value?"No runs match your filters.":"No runs to show."),1)])]),_:1})):(r(),h(T,{key:2},[t(qe,{runs:b.value,loading:y.value,stopping:q.value,onLogs:L,onDetails:L,onStop:X},null,8,["runs","loading","stopping"]),x.value>S?(r(),h("div",Me,[t(oe,{page:i.value,"onUpdate:page":e[7]||(e[7]=a=>i.value=a),total:x.value,"items-per-page":S},null,8,["page","total"])])):B("",!0)],64))])]),_:1}),t(Re,{open:R.value,"onUpdate:open":e[8]||(e[8]=a=>R.value=a),run:N.value},null,8,["open","run"])],64)}}});export{Ye as default};
@@ -0,0 +1 @@
1
+ import{aV as Qe,r as z,x as K,L as et,d as D,B as ze,A as Oe,aJ as ve,H as tt,e as d,h as w,w as m,D as T,u as e,aW as Ve,c as H,j,F as le,g as Se,E as O,aX as at,I as me,q as Le,f as Be,aY as lt,aZ as He,a_ as it,a$ as nt,b0 as rt,b1 as ot,ac as st,a as N,b2 as ut,G as fe,b3 as dt,Y as We,b4 as ct,b5 as De,C as ne,o as J,ab as ce,aM as pt,P as Y,af as ft,b6 as Re,aA as xe,b7 as gt,b8 as vt,p as je,aB as Ee,M as mt,b9 as yt,aK as $e,z as ht,ba as bt,bb as _t,bc as St,l as ie,t as pe,R as xt,S as qt,T as wt,U as Ct,bd as It,V as Tt,al as Pt,ae as Fe,aE as ae,X as M,y as _e,an as Me,be as kt,a0 as de,bf as Bt,ao as At,bg as Ne,aF as ke,$ as zt,aP as Lt,Z as Et,bh as $t}from"./index-C5RBBrPj.js";import{u as Ot,c as Ue}from"./SelectMenu-BjMxc4VB.js";function Vt(n){const s=Qe({nonce:z()});return K(()=>n?.value||s.nonce?.value)}const Dt=[" ","Enter","ArrowUp","ArrowDown"],Rt=[" ","Enter"],G=10;function ge(n,s,a){return n===void 0?!1:Array.isArray(n)?n.some(f=>Ae(f,s,a)):Ae(n,s,a)}function Ae(n,s,a){return n===void 0||s===void 0?!1:typeof n=="string"?n===s:typeof a=="function"?a(n,s):typeof a=="string"?n?.[a]===s?.[a]:et(n,s)}function Ft(n){return n==null||n===""||Array.isArray(n)&&n.length===0}const Mt=["value"],[Q,Ge]=me("SelectRoot");var Nt=D({inheritAttrs:!1,__name:"SelectRoot",props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},nullableValue:{type:String,required:!1,default:""},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","update:open"],setup(n,{emit:s}){const a=n,f=s,{required:r,disabled:u,multiple:t,dir:c}=ze(a),g=Oe(a,"modelValue",f,{defaultValue:a.defaultValue??(t.value?[]:void 0),passive:a.modelValue===void 0,deep:!0}),v=Oe(a,"open",f,{defaultValue:a.defaultOpen,passive:a.open===void 0}),b=z(),y=z(),I=z({x:0,y:0}),C=K(()=>t.value&&Array.isArray(g.value)?g.value?.length===0:Ve(g.value));ve({isProvider:!0});const $=tt(c),F=Ot(b),L=z(new Set),h=K(()=>Array.from(L.value).map(l=>l.value).join(";"));function B(l){if(t.value){const _=Array.isArray(g.value)?[...g.value]:[],p=_.findIndex(q=>Ae(q,l,a.by));p===-1?_.push(l):_.splice(p,1),g.value=[..._]}else g.value=l}function S(l){return Array.from(L.value).find(_=>ge(l,_.value,a.by))}return Ge({triggerElement:b,onTriggerChange:l=>{b.value=l},valueElement:y,onValueElementChange:l=>{y.value=l},contentId:"",modelValue:g,onValueChange:B,by:a.by,open:v,multiple:t,required:r,onOpenChange:l=>{v.value=l},dir:$,triggerPointerDownPosRef:I,disabled:u,isEmptyModelValue:C,optionsSet:L,onOptionAdd:l=>{const _=S(l.value);_&&L.value.delete(_),L.value.add(l)},onOptionRemove:l=>{const _=S(l.value);_&&L.value.delete(_)}}),(l,_)=>(d(),w(e(at),null,{default:m(()=>[T(l.$slots,"default",{modelValue:e(g),open:e(v)}),e(F)&&l.name?(d(),w(Wt,{key:h.value,"aria-hidden":"true",tabindex:"-1",multiple:e(t),required:e(r),name:l.name,autocomplete:l.autocomplete,disabled:e(u),value:e(g)},{default:m(()=>[e(Ve)(e(g))?(d(),H("option",{key:0,value:l.nullableValue},null,8,Mt)):j("v-if",!0),(d(!0),H(le,null,Se(Array.from(L.value),p=>(d(),H("option",O({key:p.value??""},{ref_for:!0},p),null,16))),128))]),_:1},8,["multiple","required","name","autocomplete","disabled","value"])):j("v-if",!0)]),_:3}))}}),Kt=Nt,Ht=D({__name:"BubbleSelect",props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(n){const s=n,a=z(),f=Q();Le(()=>s.value,(u,t)=>{const c=window.HTMLSelectElement.prototype,v=Object.getOwnPropertyDescriptor(c,"value").set;if(u!==t&&v&&a.value){const b=new Event("change",{bubbles:!0});v.call(a.value,u),a.value.dispatchEvent(b)}});function r(u){f.onValueChange(u.target.value)}return(u,t)=>(d(),w(e(lt),{"as-child":""},{default:m(()=>[Be("select",O({ref_key:"selectElement",ref:a},s,{onInput:r}),[T(u.$slots,"default")],16)]),_:3}))}}),Wt=Ht,jt=D({__name:"SelectPopperPosition",props:{memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:G},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const a=He(n);return(f,r)=>(d(),w(e(it),O(e(a),{style:{boxSizing:"border-box","--reka-select-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-select-content-available-width":"var(--reka-popper-available-width)","--reka-select-content-available-height":"var(--reka-popper-available-height)","--reka-select-trigger-width":"var(--reka-popper-anchor-width)","--reka-select-trigger-height":"var(--reka-popper-anchor-height)"}}),{default:m(()=>[T(f.$slots,"default")]),_:3},16))}}),Ut=jt;const Ye={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[ye,Xe]=me("SelectContent");var Gt=D({__name:"SelectContentImpl",props:{position:{type:String,required:!1,default:"item-aligned"},bodyLock:{type:Boolean,required:!1,default:!0},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:"start"},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(n,{emit:s}){const a=n,f=s,r=Q();nt(),rt(a.bodyLock);const{CollectionSlot:u,getItems:t}=ve(),c=z();ot(c);const{search:g,handleTypeaheadSearch:v}=Ue(),b=z(),y=z(),I=z(),C=z(!1),$=z(!1),F=z(!1);function L(){y.value&&c.value&&De([y.value,c.value])}Le(C,()=>{L()});const{onOpenChange:h,triggerPointerDownPosRef:B}=r;st(p=>{if(!c.value)return;let q={x:0,y:0};const P=k=>{q={x:Math.abs(Math.round(k.pageX)-(B.value?.x??0)),y:Math.abs(Math.round(k.pageY)-(B.value?.y??0))}},A=k=>{k.pointerType!=="touch"&&(q.x<=10&&q.y<=10?k.preventDefault():c.value?.contains(k.target)||h(!1),document.removeEventListener("pointermove",P),B.value=null)};B.value!==null&&(document.addEventListener("pointermove",P),document.addEventListener("pointerup",A,{capture:!0,once:!0})),p(()=>{document.removeEventListener("pointermove",P),document.removeEventListener("pointerup",A,{capture:!0})})});function S(p){const q=p.ctrlKey||p.altKey||p.metaKey;if(p.key==="Tab"&&p.preventDefault(),!q&&p.key.length===1&&v(p.key,t()),["ArrowUp","ArrowDown","Home","End"].includes(p.key)){let A=[...t().map(k=>k.ref)];if(["ArrowUp","End"].includes(p.key)&&(A=A.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const k=p.target,Z=A.indexOf(k);A=A.slice(Z+1)}setTimeout(()=>De(A)),p.preventDefault()}}const l=K(()=>a.position==="popper"?a:{}),_=He(l.value);return Xe({content:c,viewport:b,onViewportChange:p=>{b.value=p},itemRefCallback:(p,q,P)=>{const A=!$.value&&!P,k=ge(r.modelValue.value,q,r.by);if(r.multiple.value){if(F.value)return;(k||A)&&(y.value=p,k&&(F.value=!0))}else(k||A)&&(y.value=p);A&&($.value=!0)},selectedItem:y,selectedItemText:I,onItemLeave:()=>{c.value?.focus()},itemTextRefCallback:(p,q,P)=>{const A=!$.value&&!P;(ge(r.modelValue.value,q,r.by)||A)&&(I.value=p)},focusSelectedItem:L,position:a.position,isPositioned:C,searchRef:g}),(p,q)=>(d(),w(e(u),null,{default:m(()=>[N(e(ut),{"as-child":"",onMountAutoFocus:q[6]||(q[6]=fe(()=>{},["prevent"])),onUnmountAutoFocus:q[7]||(q[7]=P=>{f("closeAutoFocus",P),!P.defaultPrevented&&(e(r).triggerElement.value?.focus({preventScroll:!0}),P.preventDefault())})},{default:m(()=>[N(e(dt),{"as-child":"","disable-outside-pointer-events":p.disableOutsidePointerEvents,onFocusOutside:q[2]||(q[2]=fe(()=>{},["prevent"])),onDismiss:q[3]||(q[3]=P=>e(r).onOpenChange(!1)),onEscapeKeyDown:q[4]||(q[4]=P=>f("escapeKeyDown",P)),onPointerDownOutside:q[5]||(q[5]=P=>f("pointerDownOutside",P))},{default:m(()=>[(d(),w(We(p.position==="popper"?Ut:Qt),O({...p.$attrs,...e(_)},{id:e(r).contentId,ref:P=>{if(!P)return;const A=e(ct)(P);A?.hasAttribute("data-reka-popper-content-wrapper")?c.value=A.firstElementChild:c.value=A},role:"listbox","data-state":e(r).open.value?"open":"closed",dir:e(r).dir.value,style:{display:"flex",flexDirection:"column",outline:"none"},onContextmenu:q[0]||(q[0]=fe(()=>{},["prevent"])),onPlaced:q[1]||(q[1]=P=>C.value=!0),onKeydown:S}),{default:m(()=>[T(p.$slots,"default")]),_:3},16,["id","data-state","dir","onKeydown"]))]),_:3},8,["disable-outside-pointer-events"])]),_:3})]),_:3}))}}),Yt=Gt;const[Xt,Zt]=me("SelectItemAlignedPosition");var Jt=D({inheritAttrs:!1,__name:"SelectItemAlignedPosition",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["placed"],setup(n,{emit:s}){const a=n,f=s,{getItems:r}=ve(),u=Q(),t=ye(),c=z(!1),g=z(!0),v=z(),{forwardRef:b,currentElement:y}=ne(),{viewport:I,selectedItem:C,selectedItemText:$,focusSelectedItem:F}=t;function L(){if(u.triggerElement.value&&u.valueElement.value&&v.value&&y.value&&I?.value&&C?.value&&$?.value){const S=u.triggerElement.value.getBoundingClientRect(),l=y.value.getBoundingClientRect(),_=u.valueElement.value.getBoundingClientRect(),p=$.value.getBoundingClientRect();if(u.dir.value!=="rtl"){const o=p.left-l.left,V=_.left-o,R=S.left-V,W=S.width+R,U=Math.max(W,l.width),ee=window.innerWidth-G,i=Re(V,G,Math.max(G,ee-U));v.value.style.minWidth=`${W}px`,v.value.style.left=`${i}px`}else{const o=l.right-p.right,V=window.innerWidth-_.right-o,R=window.innerWidth-S.right-V,W=S.width+R,U=Math.max(W,l.width),ee=window.innerWidth-G,i=Re(V,G,Math.max(G,ee-U));v.value.style.minWidth=`${W}px`,v.value.style.right=`${i}px`}const q=r().map(o=>o.ref),P=window.innerHeight-G*2,A=I.value.scrollHeight,k=window.getComputedStyle(y.value),Z=Number.parseInt(k.borderTopWidth,10),re=Number.parseInt(k.paddingTop,10),oe=Number.parseInt(k.borderBottomWidth,10),qe=Number.parseInt(k.paddingBottom,10),he=Z+re+A+qe+oe,x=Math.min(C.value.offsetHeight*5,he),se=window.getComputedStyle(I.value),be=Number.parseInt(se.paddingTop,10),we=Number.parseInt(se.paddingBottom,10),X=S.top+S.height/2-G,Ce=P-X,ue=C.value.offsetHeight/2,Ie=C.value.offsetTop+ue,E=Z+re+Ie,Te=he-E;if(E<=X){const o=C.value===q.at(-1);v.value.style.bottom="0px";const V=y.value.clientHeight-I.value.offsetTop-I.value.offsetHeight,R=Math.max(Ce,ue+(o?we:0)+V+oe),W=E+R;v.value.style.height=`${W}px`}else{const o=C.value===q[0];v.value.style.top="0px";const R=Math.max(X,Z+I.value.offsetTop+(o?be:0)+ue)+Te;v.value.style.height=`${R}px`,I.value.scrollTop=E-X+I.value.offsetTop}v.value.style.margin=`${G}px 0`,v.value.style.minHeight=`${x}px`,v.value.style.maxHeight=`${P}px`,f("placed"),requestAnimationFrame(()=>c.value=!0)}}const h=z("");J(async()=>{await ce(),L(),y.value&&(h.value=window.getComputedStyle(y.value).zIndex)});function B(S){S&&g.value===!0&&(L(),F?.(),g.value=!1)}return pt(u.triggerElement,()=>{L()}),Zt({contentWrapper:v,shouldExpandOnScrollRef:c,onScrollButtonChange:B}),(S,l)=>(d(),H("div",{ref_key:"contentWrapperElement",ref:v,style:ft({display:"flex",flexDirection:"column",position:"fixed",zIndex:h.value})},[N(e(Y),O({ref:e(b),style:{boxSizing:"border-box",maxHeight:"100%"}},{...S.$attrs,...a}),{default:m(()=>[T(S.$slots,"default")]),_:3},16)],4))}}),Qt=Jt,ea=D({__name:"SelectArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(n){const s=n,a=ye(Ye);return(f,r)=>e(a).position==="popper"?(d(),w(e(gt),xe(O({key:0},s)),{default:m(()=>[T(f.$slots,"default")]),_:3},16)):j("v-if",!0)}}),ta=ea,aa=D({inheritAttrs:!1,__name:"SelectProvider",props:{context:{type:Object,required:!0}},setup(n){return Ge(n.context),Xe(Ye),(a,f)=>T(a.$slots,"default")}}),la=aa;const ia={key:1};var na=D({inheritAttrs:!1,__name:"SelectContent",props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["closeAutoFocus","escapeKeyDown","pointerDownOutside"],setup(n,{emit:s}){const a=n,r=vt(a,s),u=Q(),t=z();J(()=>{t.value=new DocumentFragment});const c=z(),g=K(()=>a.forceMount||u.open.value),v=z(g.value);let b;function y(){b&&(clearTimeout(b),b=void 0)}return Le(g,(I,C,$)=>{y(),b=setTimeout(()=>{v.value=g.value,b=void 0}),$(y)}),je(y),(I,C)=>g.value||v.value||c.value?.present?(d(),w(e(mt),{key:0,ref_key:"presenceRef",ref:c,present:g.value},{default:m(()=>[N(Yt,xe(Ee({...e(r),...I.$attrs})),{default:m(()=>[T(I.$slots,"default")]),_:3},16)]),_:3},8,["present"])):t.value?(d(),H("div",ia,[(d(),w(yt,{to:t.value},[N(la,{context:e(u)},{default:m(()=>[T(I.$slots,"default")]),_:3},8,["context"])],8,["to"]))])):j("v-if",!0)}}),ra=na;const[oa,sa]=me("SelectGroup");var ua=D({__name:"SelectGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const s=n,a=$e(void 0,"reka-select-group");return sa({id:a}),(f,r)=>(d(),w(e(Y),O({role:"group"},s,{"aria-labelledby":e(a)}),{default:m(()=>[T(f.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),da=ua;const[Ze,ca]=me("SelectItem");var pa=D({__name:"SelectItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(n,{emit:s}){const a=n,f=s,{disabled:r}=ze(a),u=Q(),t=ye(),{forwardRef:c,currentElement:g}=ne(),{CollectionItem:v}=ve(),b=K(()=>ge(u.modelValue?.value,a.value,u.by)),y=z(!1),I=z(a.textValue??""),C=$e(void 0,"reka-select-item-text"),$="select.select";async function F(l){if(l.defaultPrevented)return;const _={originalEvent:l,value:a.value};ht($,L,_)}async function L(l){await ce(),f("select",l),!l.defaultPrevented&&(r.value||(u.onValueChange(a.value),u.multiple.value||u.onOpenChange(!1)))}async function h(l){await ce(),!l.defaultPrevented&&(r.value?t.onItemLeave?.():l.currentTarget?.focus({preventScroll:!0}))}async function B(l){await ce(),!l.defaultPrevented&&l.currentTarget===bt()&&t.onItemLeave?.()}async function S(l){await ce(),!(l.defaultPrevented||t.searchRef?.value!==""&&l.key===" ")&&(Rt.includes(l.key)&&F(l),l.key===" "&&l.preventDefault())}if(a.value==="")throw new Error("A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return J(()=>{g.value&&t.itemRefCallback(g.value,a.value,a.disabled)}),ca({value:a.value,disabled:r,textId:C,isSelected:b,onItemTextChange:l=>{I.value=((I.value||l?.textContent)??"").trim()}}),(l,_)=>(d(),w(e(v),{value:{textValue:I.value}},{default:m(()=>[N(e(Y),{ref:e(c),role:"option","aria-labelledby":e(C),"data-highlighted":y.value?"":void 0,"aria-selected":b.value,"data-state":b.value?"checked":"unchecked","aria-disabled":e(r)||void 0,"data-disabled":e(r)?"":void 0,tabindex:e(r)?void 0:-1,as:l.as,"as-child":l.asChild,onFocus:_[0]||(_[0]=p=>y.value=!0),onBlur:_[1]||(_[1]=p=>y.value=!1),onPointerup:F,onPointerdown:_[2]||(_[2]=p=>{p.currentTarget.focus({preventScroll:!0})}),onTouchend:_[3]||(_[3]=fe(()=>{},["prevent","stop"])),onPointermove:h,onPointerleave:B,onKeydown:S},{default:m(()=>[T(l.$slots,"default")]),_:3},8,["aria-labelledby","data-highlighted","aria-selected","data-state","aria-disabled","data-disabled","tabindex","as","as-child"])]),_:3},8,["value"]))}}),fa=pa,ga=D({__name:"SelectItemIndicator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(n){const s=n,a=Ze();return(f,r)=>e(a).isSelected.value?(d(),w(e(Y),O({key:0,"aria-hidden":"true"},s),{default:m(()=>[T(f.$slots,"default")]),_:3},16)):j("v-if",!0)}}),va=ga,ma=D({inheritAttrs:!1,__name:"SelectItemText",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(n){const s=n,a=Q(),f=ye(),r=Ze(),{forwardRef:u,currentElement:t}=ne(),c=K(()=>({value:r.value,disabled:r.disabled.value,textContent:t.value?.textContent??r.value?.toString()??""}));return J(()=>{t.value&&(r.onItemTextChange(t.value),f.itemTextRefCallback(t.value,r.value,r.disabled.value),a.onOptionAdd(c.value))}),je(()=>{a.onOptionRemove(c.value)}),(g,v)=>(d(),w(e(Y),O({id:e(r).textId,ref:e(u)},{...s,...g.$attrs}),{default:m(()=>[T(g.$slots,"default")]),_:3},16,["id"]))}}),ya=ma,ha=D({__name:"SelectLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(n){const s=n,a=oa({id:""});return(f,r)=>(d(),w(e(Y),O(s,{id:e(a).id}),{default:m(()=>[T(f.$slots,"default")]),_:3},16,["id"]))}}),ba=ha,_a=D({__name:"SelectPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(n){const s=n;return(a,f)=>(d(),w(e(_t),xe(Ee(s)),{default:m(()=>[T(a.$slots,"default")]),_:3},16))}}),Sa=_a,xa=D({__name:"SelectSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const s=n;return(a,f)=>(d(),w(e(Y),O({"aria-hidden":"true"},s),{default:m(()=>[T(a.$slots,"default")]),_:3},16))}}),qa=xa,wa=D({__name:"SelectTrigger",props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(n){const s=n,a=Q(),{forwardRef:f,currentElement:r}=ne(),u=K(()=>a.disabled?.value||s.disabled);a.contentId||=$e(void 0,"reka-select-content"),J(()=>{a.onTriggerChange(r.value)});const{getItems:t}=ve(),{search:c,handleTypeaheadSearch:g,resetTypeahead:v}=Ue();function b(){u.value||(a.onOpenChange(!0),v())}function y(h){b(),a.triggerPointerDownPosRef.value={x:Math.round(h.pageX),y:Math.round(h.pageY)}}function I(h){return h.button===0&&h.ctrlKey===!1}let C=!1;function $(h){if(h.pointerType==="touch")return h.preventDefault();const B=h.target;B.hasPointerCapture(h.pointerId)&&B.releasePointerCapture(h.pointerId),I(h)&&(y(h),C=!0)}function F(h){I(h)&&h.preventDefault()}function L(h){C||h.currentTarget?.focus(),C=!1}return(h,B)=>(d(),w(e(St),{"as-child":"",reference:h.reference},{default:m(()=>[N(e(Y),{ref:e(f),role:"combobox",type:h.as==="button"?"button":void 0,"aria-controls":e(a).contentId,"aria-expanded":e(a).open.value||!1,"aria-required":e(a).required?.value,"aria-autocomplete":"none",disabled:u.value,dir:e(a)?.dir.value,"data-state":e(a)?.open.value?"open":"closed","data-disabled":u.value?"":void 0,"data-placeholder":e(Ft)(e(a).modelValue?.value)?"":void 0,"as-child":h.asChild,as:h.as,onClick:L,onPointerdown:$,onMousedown:F,onPointerup:B[0]||(B[0]=fe(S=>{S.pointerType==="touch"&&y(S)},["prevent"])),onKeydown:B[1]||(B[1]=S=>{const l=e(c)!=="";!(S.ctrlKey||S.altKey||S.metaKey)&&S.key.length===1&&l&&S.key===" "||(e(g)(S.key,e(t)()),e(Dt).includes(S.key)&&(b(),S.preventDefault()))})},{default:m(()=>[T(h.$slots,"default")]),_:3},8,["type","aria-controls","aria-expanded","aria-required","disabled","dir","data-state","data-disabled","data-placeholder","as-child","as"])]),_:3},8,["reference"]))}}),Ca=wa,Ia=D({__name:"SelectValue",props:{placeholder:{type:String,required:!1,default:""},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(n){const s=n,{forwardRef:a,currentElement:f}=ne(),r=Q();J(()=>{r.valueElement=f});const u=K(()=>{let c=[];const g=Array.from(r.optionsSet.value),v=b=>g.find(y=>ge(b,y.value,r.by));return Array.isArray(r.modelValue.value)?c=r.modelValue.value.map(b=>v(b)?.textContent??""):c=[v(r.modelValue.value)?.textContent??""],c.filter(Boolean)}),t=K(()=>u.value.length?u.value.join(", "):s.placeholder);return(c,g)=>(d(),w(e(Y),{ref:e(a),as:c.as,"as-child":c.asChild,style:{pointerEvents:"none"},"data-placeholder":u.value.length?void 0:s.placeholder},{default:m(()=>[T(c.$slots,"default",{selectedLabel:u.value,modelValue:e(r).modelValue.value},()=>[ie(pe(t.value),1)])]),_:3},8,["as","as-child","data-placeholder"]))}}),Ta=Ia,Pa=D({__name:"SelectViewport",props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n){const s=n,{nonce:a}=ze(s),f=Vt(a),r=ye(),u=r.position==="item-aligned"?Xt():void 0,{forwardRef:t,currentElement:c}=ne();J(()=>{r?.onViewportChange(c.value)});const g=z(0);function v(b){const y=b.currentTarget,{shouldExpandOnScrollRef:I,contentWrapper:C}=u??{};if(I?.value&&C?.value){const $=Math.abs(g.value-y.scrollTop);if($>0){const F=window.innerHeight-G*2,L=Number.parseFloat(C.value.style.minHeight),h=Number.parseFloat(C.value.style.height),B=Math.max(L,h);if(B<F){const S=B+$,l=Math.min(F,S),_=S-l;C.value.style.height=`${l}px`,C.value.style.bottom==="0px"&&(y.scrollTop=_>0?_:0,C.value.style.justifyContent="flex-end")}}}g.value=y.scrollTop}return(b,y)=>(d(),H(le,null,[N(e(Y),O({ref:e(t),"data-reka-select-viewport":"",role:"presentation"},{...b.$attrs,...s},{style:{position:"relative",flex:1,overflow:"hidden auto"},onScroll:v}),{default:m(()=>[T(b.$slots,"default")]),_:3},16),N(e(Y),{as:"style",nonce:e(f)},{default:m(()=>y[0]||(y[0]=[ie(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } ")])),_:1,__:[0]},8,["nonce"])],64))}}),ka=Pa;const Ke={slots:{base:["relative group rounded-md inline-flex items-center disabled:cursor-not-allowed disabled:opacity-75","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed",value:"truncate pointer-events-none",placeholder:"truncate text-dimmed",arrow:"fill-bg stroke-default",content:"max-h-[min(15rem,var(--reka-select-content-available-height,15rem))] w-(--reka-select-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden origin-(--reka-select-content-transform-origin) pointer-events-auto flex flex-col",viewport:"relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",group:"p-1 isolate",empty:"text-center text-muted",label:"font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:["group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default","transition-colors"],itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemLeadingChip:"shrink-0",itemLeadingChipSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemWrapper:"flex-1 flex flex-col min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted"},variants:{fieldGroup:{horizontal:"not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",vertical:"not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"},size:{xs:{base:"px-2 py-1 text-xs gap-1",leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",label:"p-1 text-[10px]/3 gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailingIcon:"size-4",empty:"p-2 text-xs"},sm:{base:"px-2.5 py-1.5 text-xs gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4",label:"p-1.5 text-[10px]/3 gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemLeadingChip:"size-4",itemLeadingChipSize:"sm",itemTrailingIcon:"size-4",empty:"p-2.5 text-xs"},md:{base:"px-2.5 py-1.5 text-sm gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailingIcon:"size-5",empty:"p-2.5 text-sm"},lg:{base:"px-3 py-2 text-sm gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5",label:"p-2 text-xs gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemLeadingChip:"size-5",itemLeadingChipSize:"md",itemTrailingIcon:"size-5",empty:"p-3 text-sm"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6",label:"p-2 text-sm gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemLeadingChip:"size-6",itemLeadingChipSize:"lg",itemTrailingIcon:"size-6",empty:"p-3 text-base"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented hover:bg-elevated disabled:bg-default",soft:"text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented hover:bg-accented/75 disabled:bg-elevated",ghost:"text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent focus:outline-none"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},fixed:{false:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"},position:{popper:{content:"data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]"},"item-aligned":{content:""}},multiple:{true:""}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"outline-success/25 focus-visible:outline-3 focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"outline-info/25 focus-visible:outline-3 focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"outline-error/25 focus-visible:outline-3 focus-visible:ring-error"},{color:"primary",variant:["soft","ghost"],class:"outline-primary/25 focus-visible:outline-3"},{color:"secondary",variant:["soft","ghost"],class:"outline-secondary/25 focus-visible:outline-3"},{color:"success",variant:["soft","ghost"],class:"outline-success/25 focus-visible:outline-3"},{color:"info",variant:["soft","ghost"],class:"outline-info/25 focus-visible:outline-3"},{color:"warning",variant:["soft","ghost"],class:"outline-warning/25 focus-visible:outline-3"},{color:"error",variant:["soft","ghost"],class:"outline-error/25 focus-visible:outline-3"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"outline-inverted/25 focus-visible:outline-3 focus-visible:ring-inverted"},{color:"neutral",variant:["soft","ghost"],class:"outline-inverted/25 focus-visible:outline-3"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}},{fixed:!1,size:"xs",class:"md:text-xs"},{fixed:!1,size:"sm",class:"md:text-xs"},{fixed:!1,size:"md",class:"md:text-sm"},{fixed:!1,size:"lg",class:"md:text-sm"}],defaultVariants:{size:"md",color:"primary",variant:"outline",position:"popper"}},za=Object.assign({inheritAttrs:!1},{__name:"Select",props:{id:{type:String,required:!1},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},trailingIcon:{type:null,required:!1},selectedIcon:{type:null,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},valueKey:{type:null,required:!1,default:"value"},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},items:{type:null,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},multiple:{type:Boolean,required:!1},highlight:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},nullableValue:{type:String,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:["change","blur","focus","update:modelValue","update:open"],setup(n,{expose:s,emit:a}){const f=n,r=a,u=xt(),t=qt("select",f),c=zt(),g=wt(Ct(t,"open","defaultOpen","disabled","autocomplete","required","multiple","nullableValue"),r),v=It(ae(()=>t.portal)),b=K(()=>t.content?.position??c.ui?.select?.defaultVariants?.position??Ke.defaultVariants?.position),y=ae(()=>ke(t.content,{side:"bottom",sideOffset:8,collisionPadding:8,position:b.value})),I=ae(()=>ke(t.arrow,{rounded:!0})),{emitFormChange:C,emitFormInput:$,emitFormBlur:F,emitFormFocus:L,size:h,color:B,id:S,name:l,highlight:_,disabled:p,ariaAttrs:q}=Tt(f),{orientation:P,size:A}=Pt(f),{isLeading:k,isTrailing:Z,leadingIconName:re,trailingIconName:oe}=At(ae(()=>ke(t,{trailingIcon:c.ui.icons.chevronDown}))),qe=K(()=>A.value||h.value),he=K(()=>b.value==="item-aligned"),x=K(()=>Et({extend:Ke,...c.ui?.select||{}})({color:B.value??t.color,variant:t.variant,size:qe.value??t.size,loading:t.loading,highlight:_.value??t.highlight,leading:k.value||!!t.avatar||!!u.leading,trailing:Z.value||!!u.trailing,fieldGroup:P.value,position:b.value,multiple:t.multiple})),se=K(()=>t.items?.length?$t(t.items)?t.items:[t.items]:[]),be=K(()=>se.value.flatMap(o=>o));function we(o){if(t.multiple&&Array.isArray(o)){const V=o.map(R=>Ne(be.value,R,{labelKey:t.labelKey,valueKey:t.valueKey})).filter(R=>R!=null&&R!=="");return V.length>0?V.join(", "):void 0}return Ne(be.value,o,{labelKey:t.labelKey,valueKey:t.valueKey})}const X=Fe("triggerRef");function Ce(){t.autofocus&&X.value?.$el?.focus({focusVisible:!0})}J(()=>{setTimeout(()=>{Ce()},t.autofocusDelay)});function ue(o){t.modelModifiers?.trim&&(typeof o=="string"||o===null||o===void 0)&&(o=o?.trim()??null),t.modelModifiers?.number&&(o=Lt(o)),t.modelModifiers?.nullable&&(o??=null),t.modelModifiers?.optional&&!t.modelModifiers?.nullable&&o!==null&&(o??=void 0);const V=new Event("change",{target:{value:o}});r("change",V),C(),$()}function Ie(o){if(o){const V=new FocusEvent("focus");r("focus",V),L()}else{const V=new FocusEvent("blur");r("blur",V),F()}}function E(o){return typeof o=="object"&&o!==null}function Te(o){o||X.value?.$el?.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,button:0}))}const Pe=Fe("viewportRef");return s({triggerRef:ae(()=>X.value?.$el),viewportRef:ae(()=>{const o=Pe.value;return o&&typeof o=="object"&&"$el"in o?o.$el:o})}),(o,V)=>(d(),w(e(Kt),O({name:e(l)},e(g),{autocomplete:e(t).autocomplete,disabled:e(p),"default-value":e(t).defaultValue,"model-value":n.modelValue,"onUpdate:modelValue":ue,"onUpdate:open":Ie}),{default:m(({modelValue:R,open:W})=>[N(e(Ca),O({id:e(S),ref_key:"triggerRef",ref:X,"data-slot":"base",class:x.value.base({class:[e(t).ui?.base,e(t).class]})},{...o.$attrs,...e(q)},{onClick:U=>Te(W)}),{default:m(()=>[e(k)||e(t).avatar||u.leading?(d(),H("span",{key:0,"data-slot":"leading",class:M(x.value.leading({class:e(t).ui?.leading}))},[T(o.$slots,"leading",{modelValue:R,open:W,ui:x.value},()=>[e(k)&&e(re)?(d(),w(_e,{key:0,name:e(re),"data-slot":"leadingIcon",class:M(x.value.leadingIcon({class:e(t).ui?.leadingIcon}))},null,8,["name","class"])):e(t).avatar?(d(),w(Me,O({key:1,size:e(t).ui?.itemLeadingAvatarSize||x.value.itemLeadingAvatarSize()},e(t).avatar,{"data-slot":"itemLeadingAvatar",class:x.value.itemLeadingAvatar({class:e(t).ui?.itemLeadingAvatar})}),null,16,["size","class"])):j("",!0)])],2)):j("",!0),(d(!0),H(le,null,Se([we(R)],U=>(d(),w(e(Ta),{key:U,"data-slot":U!=null?"value":"placeholder",class:M(U!=null?x.value.value({class:e(t).ui?.value}):x.value.placeholder({class:e(t).ui?.placeholder}))},{default:m(()=>[T(o.$slots,"default",{modelValue:R,open:W,ui:x.value},()=>[ie(pe(U??e(t).placeholder??" "),1)])]),_:2},1032,["data-slot","class"]))),128)),e(Z)||u.trailing?(d(),H("span",{key:1,"data-slot":"trailing",class:M(x.value.trailing({class:e(t).ui?.trailing}))},[T(o.$slots,"trailing",{modelValue:R,open:W,ui:x.value},()=>[e(oe)?(d(),w(_e,{key:0,name:e(oe),"data-slot":"trailingIcon",class:M(x.value.trailingIcon({class:e(t).ui?.trailingIcon}))},null,8,["name","class"])):j("",!0)])],2)):j("",!0)]),_:2},1040,["id","class","onClick"]),N(e(Sa),xe(Ee(e(v))),{default:m(()=>[N(e(kt),null,{default:m(()=>[N(e(ra),O({"data-slot":"content",class:x.value.content({class:e(t).ui?.content})},y.value),{default:m(()=>[T(o.$slots,"content-top"),(d(),w(We(he.value?e(ka):"div"),{ref_key:"viewportRef",ref:Pe,role:"presentation","data-slot":"viewport",class:M(x.value.viewport({class:e(t).ui?.viewport}))},{default:m(()=>[(d(!0),H(le,null,Se(se.value,(U,ee)=>(d(),w(e(da),{key:`group-${ee}`,"data-slot":"group",class:M(x.value.group({class:e(t).ui?.group}))},{default:m(()=>[(d(!0),H(le,null,Se(U,(i,te)=>(d(),H(le,{key:`group-${ee}-${te}`},[E(i)&&i.type==="label"?(d(),w(e(ba),{key:0,"data-slot":"label",class:M(x.value.label({class:[e(t).ui?.label,i.ui?.label,i.class]}))},{default:m(()=>[ie(pe(e(de)(i,e(t).labelKey)),1)]),_:2},1032,["class"])):E(i)&&i.type==="separator"?(d(),w(e(qa),{key:1,"data-slot":"separator",class:M(x.value.separator({class:[e(t).ui?.separator,i.ui?.separator,i.class]}))},null,8,["class"])):(d(),w(e(fa),{key:2,"data-slot":"item",class:M(x.value.item({class:[e(t).ui?.item,E(i)&&i.ui?.item,E(i)&&i.class]})),disabled:E(i)&&i.disabled,value:E(i)?e(de)(i,e(t).valueKey):i,onSelect:Je=>E(i)&&i.onSelect?.(Je)},{default:m(()=>[T(o.$slots,"item",{item:i,index:te,ui:x.value},()=>[T(o.$slots,"item-leading",{item:i,index:te,ui:x.value},()=>[E(i)&&i.icon?(d(),w(_e,{key:0,name:i.icon,"data-slot":"itemLeadingIcon",class:M(x.value.itemLeadingIcon({class:[e(t).ui?.itemLeadingIcon,i.ui?.itemLeadingIcon]}))},null,8,["name","class"])):E(i)&&i.avatar?(d(),w(Me,O({key:1,size:i.ui?.itemLeadingAvatarSize||e(t).ui?.itemLeadingAvatarSize||x.value.itemLeadingAvatarSize()},{ref_for:!0},i.avatar,{"data-slot":"itemLeadingAvatar",class:x.value.itemLeadingAvatar({class:[e(t).ui?.itemLeadingAvatar,i.ui?.itemLeadingAvatar]})}),null,16,["size","class"])):E(i)&&i.chip?(d(),w(Bt,O({key:2,size:i.ui?.itemLeadingChipSize||e(t).ui?.itemLeadingChipSize||x.value.itemLeadingChipSize(),inset:"",standalone:""},{ref_for:!0},i.chip,{"data-slot":"itemLeadingChip",class:x.value.itemLeadingChip({class:[e(t).ui?.itemLeadingChip,i.ui?.itemLeadingChip]})}),null,16,["size","class"])):j("",!0)]),Be("span",{"data-slot":"itemWrapper",class:M(x.value.itemWrapper({class:[e(t).ui?.itemWrapper,E(i)&&i.ui?.itemWrapper]}))},[N(e(ya),{"data-slot":"itemLabel",class:M(x.value.itemLabel({class:[e(t).ui?.itemLabel,E(i)&&i.ui?.itemLabel]}))},{default:m(()=>[T(o.$slots,"item-label",{item:i,index:te},()=>[ie(pe(E(i)?e(de)(i,e(t).labelKey):i),1)])]),_:2},1032,["class"]),E(i)&&(e(de)(i,e(t).descriptionKey)||u["item-description"])?(d(),H("span",{key:0,"data-slot":"itemDescription",class:M(x.value.itemDescription({class:[e(t).ui?.itemDescription,E(i)&&i.ui?.itemDescription]}))},[T(o.$slots,"item-description",{item:i,index:te},()=>[ie(pe(e(de)(i,e(t).descriptionKey)),1)])],2)):j("",!0)],2),Be("span",{"data-slot":"itemTrailing",class:M(x.value.itemTrailing({class:[e(t).ui?.itemTrailing,E(i)&&i.ui?.itemTrailing]}))},[T(o.$slots,"item-trailing",{item:i,index:te,ui:x.value}),N(e(va),{"as-child":""},{default:m(()=>[N(_e,{name:e(t).selectedIcon||e(c).ui.icons.check,"data-slot":"itemTrailingIcon",class:M(x.value.itemTrailingIcon({class:[e(t).ui?.itemTrailingIcon,E(i)&&i.ui?.itemTrailingIcon]}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:2},1032,["class","disabled","value","onSelect"]))],64))),128))]),_:2},1032,["class"]))),128))]),_:3},8,["class"])),T(o.$slots,"content-bottom"),e(t).arrow?(d(),w(e(ta),O({key:0},I.value,{"data-slot":"arrow",class:x.value.arrow({class:e(t).ui?.arrow})}),null,16,["class"])):j("",!0)]),_:3},16,["class"])]),_:3})]),_:3},16)]),_:3},16,["name","autocomplete","disabled","default-value","model-value"]))}});export{za as _};