@qelos/aidev 1.2.0 → 1.3.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 (215) hide show
  1. package/.env.aidev.example +12 -1
  2. package/README.md +23 -6
  3. package/dist/ai/devin.d.ts +7 -0
  4. package/dist/ai/devin.d.ts.map +1 -0
  5. package/dist/ai/devin.js +91 -0
  6. package/dist/ai/devin.js.map +1 -0
  7. package/dist/ai/index.js +2 -2
  8. package/dist/ai/index.js.map +1 -1
  9. package/dist/cli.js +31 -0
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/help.js +1 -1
  12. package/dist/commands/help.js.map +1 -1
  13. package/dist/commands/hooks.d.ts +5 -0
  14. package/dist/commands/hooks.d.ts.map +1 -0
  15. package/dist/commands/hooks.js +86 -0
  16. package/dist/commands/hooks.js.map +1 -0
  17. package/dist/commands/init.d.ts +1 -0
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +18 -109
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/run.d.ts +1 -1
  22. package/dist/commands/run.d.ts.map +1 -1
  23. package/dist/commands/run.js +78 -63
  24. package/dist/commands/run.js.map +1 -1
  25. package/dist/commands/schedule.js +2 -2
  26. package/dist/commands/schedule.js.map +1 -1
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +8 -1
  29. package/dist/config.js.map +1 -1
  30. package/dist/diagnostics.d.ts.map +1 -1
  31. package/dist/diagnostics.js +1 -2
  32. package/dist/diagnostics.js.map +1 -1
  33. package/dist/hooks.d.ts +18 -0
  34. package/dist/hooks.d.ts.map +1 -1
  35. package/dist/hooks.js +16 -0
  36. package/dist/hooks.js.map +1 -1
  37. package/dist/hooksTemplate.d.ts +14 -0
  38. package/dist/hooksTemplate.d.ts.map +1 -0
  39. package/dist/hooksTemplate.js +274 -0
  40. package/dist/hooksTemplate.js.map +1 -0
  41. package/dist/logger.d.ts +1 -0
  42. package/dist/logger.d.ts.map +1 -1
  43. package/dist/logger.js +32 -0
  44. package/dist/logger.js.map +1 -1
  45. package/dist/platform.d.ts +2 -2
  46. package/dist/platform.js +2 -2
  47. package/dist/safeMode.d.ts +32 -0
  48. package/dist/safeMode.d.ts.map +1 -0
  49. package/dist/safeMode.js +192 -0
  50. package/dist/safeMode.js.map +1 -0
  51. package/dist/types.d.ts +3 -1
  52. package/dist/types.d.ts.map +1 -1
  53. package/package.json +2 -2
  54. package/ui/.output/nitro.json +1 -1
  55. package/ui/.output/public/_nuxt/6wLLp9Nc.js +1 -0
  56. package/ui/.output/public/_nuxt/BGkU0f28.js +1 -0
  57. package/ui/.output/public/_nuxt/BOIhDy_l.js +4 -0
  58. package/ui/.output/public/_nuxt/BWJzzHTi.js +1 -0
  59. package/ui/.output/public/_nuxt/{3LZdFtk_.js → By4xSvKt.js} +3 -3
  60. package/ui/.output/public/_nuxt/ByAMJ0xS.js +1 -0
  61. package/ui/.output/public/_nuxt/C1xk3ymy.js +1 -0
  62. package/ui/.output/public/_nuxt/CBV5GuL6.js +11 -0
  63. package/ui/.output/public/_nuxt/CTtW-0zG.js +1 -0
  64. package/ui/.output/public/_nuxt/CX0vIr0s.js +131 -0
  65. package/ui/.output/public/_nuxt/{LzHPbXPK.js → CYm8nRCj.js} +1 -1
  66. package/ui/.output/public/_nuxt/CdHqKVo4.js +1 -0
  67. package/ui/.output/public/_nuxt/CnXdKLRd.js +16 -0
  68. package/ui/.output/public/_nuxt/Cz9dogwK.js +1 -0
  69. package/ui/.output/public/_nuxt/DGHfexQZ.js +1 -0
  70. package/ui/.output/public/_nuxt/{CWjftssB.js → DOoocm0F.js} +1 -1
  71. package/ui/.output/public/_nuxt/{DZd8Jv5H.js → D_gcbXK2.js} +1 -1
  72. package/ui/.output/public/_nuxt/{CO4XMBYO.js → Dfhp6TEA.js} +11 -11
  73. package/ui/.output/public/_nuxt/{BtD1YBwM.js → G5BjvTWO.js} +1 -1
  74. package/ui/.output/public/_nuxt/H73b_QUy.js +1 -0
  75. package/ui/.output/public/_nuxt/{BMTHyzVP.js → LCoCV2KL.js} +1 -1
  76. package/ui/.output/public/_nuxt/Zrl3Utak.js +1 -0
  77. package/ui/.output/public/_nuxt/config.CaB_F_OT.css +1 -0
  78. package/ui/.output/public/_nuxt/default.D13_FS9T.css +1 -0
  79. package/ui/.output/public/_nuxt/hooks.B03-GWTh.css +1 -0
  80. package/ui/.output/public/_nuxt/kPPYUzXr.js +2 -0
  81. package/ui/.output/public/_nuxt/logs.DLMkvOEl.css +1 -0
  82. package/ui/.output/public/_nuxt/mHp9eItY.js +1 -0
  83. package/ui/.output/public/_nuxt/{BTfAgCfF.js → tyaD1vVi.js} +1 -1
  84. package/ui/.output/public/_nuxt/{BGlShnpS.js → ynXKxjpn.js} +1 -1
  85. package/ui/.output/public/_nuxt/{B8sr5ZW-.js → yqBy-NAR.js} +2 -2
  86. package/ui/.output/server/chunks/_/hooksTemplate.mjs +365 -0
  87. package/ui/.output/server/chunks/_/hooksTemplate.mjs.map +1 -0
  88. package/ui/.output/server/chunks/build/{Badge-YPOjmkfv.mjs → Badge-nNgbDd8N.mjs} +2 -2
  89. package/ui/.output/server/chunks/build/{Badge-YPOjmkfv.mjs.map → Badge-nNgbDd8N.mjs.map} +1 -1
  90. package/ui/.output/server/chunks/build/{Button-CZHl6fpI.mjs → Button-CQZG7w2L.mjs} +117 -3
  91. package/ui/.output/server/chunks/build/Button-CQZG7w2L.mjs.map +1 -0
  92. package/ui/.output/server/chunks/build/{Card--ibiHV_r.mjs → Card-DdEnDTQW.mjs} +2 -2
  93. package/ui/.output/server/chunks/build/{Card--ibiHV_r.mjs.map → Card-DdEnDTQW.mjs.map} +1 -1
  94. package/ui/.output/server/chunks/build/{FormGroup-CX5VmH8y.mjs → FormGroup-BfYiVGgN.mjs} +2 -2
  95. package/ui/.output/server/chunks/build/{FormGroup-CX5VmH8y.mjs.map → FormGroup-BfYiVGgN.mjs.map} +1 -1
  96. package/ui/.output/server/chunks/build/{Input-kmqS1oY_.mjs → Input-Cnk3P_aB.mjs} +5 -60
  97. package/ui/.output/server/chunks/build/Input-Cnk3P_aB.mjs.map +1 -0
  98. package/ui/.output/server/chunks/build/{Modal-DmZs0Ekg.mjs → Modal-DfVO6DJD.mjs} +10 -5
  99. package/ui/.output/server/chunks/build/Modal-DfVO6DJD.mjs.map +1 -0
  100. package/ui/.output/server/chunks/build/{Select-n4_YfXfk.mjs → Select-Dc9_TJIR.mjs} +3 -3
  101. package/ui/.output/server/chunks/build/{Select-n4_YfXfk.mjs.map → Select-Dc9_TJIR.mjs.map} +1 -1
  102. package/ui/.output/server/chunks/build/client.precomputed.mjs +1 -1
  103. package/ui/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  104. package/ui/.output/server/chunks/build/{config-Bkb2wy7R.mjs → config-BUokZPak.mjs} +78 -58
  105. package/ui/.output/server/chunks/build/config-BUokZPak.mjs.map +1 -0
  106. package/ui/.output/server/chunks/build/config-styles.irltMnuD.mjs +8 -0
  107. package/ui/.output/server/chunks/build/config-styles.irltMnuD.mjs.map +1 -0
  108. package/ui/.output/server/chunks/build/{default-DmD3qBXZ.mjs → default-6TcwTt3p.mjs} +10 -9
  109. package/ui/.output/server/chunks/build/default-6TcwTt3p.mjs.map +1 -0
  110. package/ui/.output/server/chunks/build/default-styles.BqL9zxh4.mjs +8 -0
  111. package/ui/.output/server/chunks/build/default-styles.BqL9zxh4.mjs.map +1 -0
  112. package/ui/.output/server/chunks/build/entry-styles.q-b4rEBh.mjs +11 -0
  113. package/ui/.output/server/chunks/build/entry-styles.q-b4rEBh.mjs.map +1 -0
  114. package/ui/.output/server/chunks/build/hooks-k2ZmlVpA.mjs +4181 -0
  115. package/ui/.output/server/chunks/build/hooks-k2ZmlVpA.mjs.map +1 -0
  116. package/ui/.output/server/chunks/build/hooks-styles.Ddk4F_Gj.mjs +8 -0
  117. package/ui/.output/server/chunks/build/hooks-styles.Ddk4F_Gj.mjs.map +1 -0
  118. package/ui/.output/server/chunks/build/{index-Dy4Tu7MB.mjs → index-DwMIJp2e.mjs} +7 -3
  119. package/ui/.output/server/chunks/build/index-DwMIJp2e.mjs.map +1 -0
  120. package/ui/.output/server/chunks/build/{index-BvfXQQ2n.mjs → index-JLPhao-C.mjs} +5 -5
  121. package/ui/.output/server/chunks/build/{index-BvfXQQ2n.mjs.map → index-JLPhao-C.mjs.map} +1 -1
  122. package/ui/.output/server/chunks/build/{interval-DHZqEf-n.mjs → interval-DPa3fpS0.mjs} +3 -3
  123. package/ui/.output/server/chunks/build/{interval-DHZqEf-n.mjs.map → interval-DPa3fpS0.mjs.map} +1 -1
  124. package/ui/.output/server/chunks/build/{login-B5YkLJCV.mjs → login-D9DpNq3o.mjs} +6 -5
  125. package/ui/.output/server/chunks/build/login-D9DpNq3o.mjs.map +1 -0
  126. package/ui/.output/server/chunks/build/{logs-BvD1Y3HI.mjs → logs-BVuWOSb6.mjs} +49 -31
  127. package/ui/.output/server/chunks/build/logs-BVuWOSb6.mjs.map +1 -0
  128. package/ui/.output/server/chunks/build/logs-styles.C2Mi0JvX.mjs +8 -0
  129. package/ui/.output/server/chunks/build/logs-styles.C2Mi0JvX.mjs.map +1 -0
  130. package/ui/.output/server/chunks/build/{run-BStPkbGg.mjs → run-BVQZSGcX.mjs} +5 -5
  131. package/ui/.output/server/chunks/build/{run-BStPkbGg.mjs.map → run-BVQZSGcX.mjs.map} +1 -1
  132. package/ui/.output/server/chunks/build/{schedule-B2UKsnRW.mjs → schedule-rRz2CwWh.mjs} +10 -9
  133. package/ui/.output/server/chunks/build/schedule-rRz2CwWh.mjs.map +1 -0
  134. package/ui/.output/server/chunks/build/server.mjs +14 -9
  135. package/ui/.output/server/chunks/build/server.mjs.map +1 -1
  136. package/ui/.output/server/chunks/build/styles.mjs +6 -5
  137. package/ui/.output/server/chunks/build/styles.mjs.map +1 -1
  138. package/ui/.output/server/chunks/build/{tasks-DBH3Z6lg.mjs → tasks-DJjZQWcq.mjs} +10 -9
  139. package/ui/.output/server/chunks/build/tasks-DJjZQWcq.mjs.map +1 -0
  140. package/ui/.output/server/chunks/build/{useApi-Bqajqsuz.mjs → useApi-Brbyp7hV.mjs} +3 -3
  141. package/ui/.output/server/chunks/build/useApi-Brbyp7hV.mjs.map +1 -0
  142. package/ui/.output/server/chunks/build/useFormGroup-DqE91r20.mjs +61 -0
  143. package/ui/.output/server/chunks/build/useFormGroup-DqE91r20.mjs.map +1 -0
  144. package/ui/.output/server/chunks/nitro/nitro.mjs +189 -151
  145. package/ui/.output/server/chunks/routes/api/config/test.post.mjs +1 -1
  146. package/ui/.output/server/chunks/routes/api/config/test.post.mjs.map +1 -1
  147. package/ui/.output/server/chunks/routes/api/hooks-execute.post.mjs +83 -0
  148. package/ui/.output/server/chunks/routes/api/hooks-execute.post.mjs.map +1 -0
  149. package/ui/.output/server/chunks/routes/api/hooks-regenerate.post.mjs +31 -0
  150. package/ui/.output/server/chunks/routes/api/hooks-regenerate.post.mjs.map +1 -0
  151. package/ui/.output/server/chunks/routes/api/hooks-update.post.mjs +31 -0
  152. package/ui/.output/server/chunks/routes/api/hooks-update.post.mjs.map +1 -0
  153. package/ui/.output/server/chunks/routes/api/hooks.get.mjs +28 -0
  154. package/ui/.output/server/chunks/routes/api/hooks.get.mjs.map +1 -0
  155. package/ui/.output/server/chunks/routes/api/hooks.put.mjs +33 -0
  156. package/ui/.output/server/chunks/routes/api/hooks.put.mjs.map +1 -0
  157. package/ui/.output/server/chunks/routes/api/logs.get.mjs +7 -2
  158. package/ui/.output/server/chunks/routes/api/logs.get.mjs.map +1 -1
  159. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/_virtual/_rollupPluginBabelHelpers.js +123 -0
  160. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/config/index.js +11 -0
  161. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/index.js +9 -0
  162. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/loader/index.js +175 -0
  163. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/compose.js +16 -0
  164. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/curry.js +20 -0
  165. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/deepMerge.js +18 -0
  166. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/isObject.js +9 -0
  167. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/utils/makeCancelable.js +25 -0
  168. package/ui/.output/server/node_modules/@monaco-editor/loader/lib/cjs/validators/index.js +49 -0
  169. package/ui/.output/server/node_modules/@monaco-editor/loader/package.json +51 -0
  170. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/index.js +1197 -0
  171. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +34 -0
  172. package/ui/.output/server/node_modules/@tanstack/virtual-core/dist/esm/utils.js +74 -0
  173. package/ui/.output/server/node_modules/@tanstack/virtual-core/package.json +56 -0
  174. package/ui/.output/server/node_modules/@tanstack/vue-virtual/dist/esm/index.js +66 -0
  175. package/ui/.output/server/node_modules/@tanstack/vue-virtual/package.json +68 -0
  176. package/ui/.output/server/node_modules/state-local/lib/cjs/state-local.js +195 -0
  177. package/ui/.output/server/node_modules/state-local/package.json +59 -0
  178. package/ui/.output/server/package.json +4 -0
  179. package/ui/package.json +1 -0
  180. package/ui/.output/public/_nuxt/B93YYUZf.js +0 -1
  181. package/ui/.output/public/_nuxt/BAs1isOw.js +0 -1
  182. package/ui/.output/public/_nuxt/BrZL2iQr.js +0 -1
  183. package/ui/.output/public/_nuxt/Bv6Ws9vz.js +0 -1
  184. package/ui/.output/public/_nuxt/C2WdrjFS.js +0 -1
  185. package/ui/.output/public/_nuxt/CVTgFccA.js +0 -2
  186. package/ui/.output/public/_nuxt/Ceb2855t.js +0 -1
  187. package/ui/.output/public/_nuxt/Cg55PjEy.js +0 -4
  188. package/ui/.output/public/_nuxt/D0ZgktSu.js +0 -1
  189. package/ui/.output/public/_nuxt/DZIUG6ZX.js +0 -1
  190. package/ui/.output/public/_nuxt/DihqGT4A.js +0 -1
  191. package/ui/.output/public/_nuxt/MzK2TZ-I.js +0 -16
  192. package/ui/.output/public/_nuxt/TJXLPQOj.js +0 -1
  193. package/ui/.output/public/_nuxt/VuiIFQtE.js +0 -1
  194. package/ui/.output/public/_nuxt/config.C19X1GwO.css +0 -1
  195. package/ui/.output/public/_nuxt/default.Dw-0Xw5D.css +0 -1
  196. package/ui/.output/public/_nuxt/logs.PK6CTQHM.css +0 -1
  197. package/ui/.output/server/chunks/build/Button-CZHl6fpI.mjs.map +0 -1
  198. package/ui/.output/server/chunks/build/Input-kmqS1oY_.mjs.map +0 -1
  199. package/ui/.output/server/chunks/build/Modal-DmZs0Ekg.mjs.map +0 -1
  200. package/ui/.output/server/chunks/build/config-Bkb2wy7R.mjs.map +0 -1
  201. package/ui/.output/server/chunks/build/config-styles.B4mTchgT.mjs +0 -8
  202. package/ui/.output/server/chunks/build/config-styles.B4mTchgT.mjs.map +0 -1
  203. package/ui/.output/server/chunks/build/default-DmD3qBXZ.mjs.map +0 -1
  204. package/ui/.output/server/chunks/build/default-styles.DmprFUrQ.mjs +0 -8
  205. package/ui/.output/server/chunks/build/default-styles.DmprFUrQ.mjs.map +0 -1
  206. package/ui/.output/server/chunks/build/entry-styles.Cg1Sndbr.mjs +0 -11
  207. package/ui/.output/server/chunks/build/entry-styles.Cg1Sndbr.mjs.map +0 -1
  208. package/ui/.output/server/chunks/build/index-Dy4Tu7MB.mjs.map +0 -1
  209. package/ui/.output/server/chunks/build/login-B5YkLJCV.mjs.map +0 -1
  210. package/ui/.output/server/chunks/build/logs-BvD1Y3HI.mjs.map +0 -1
  211. package/ui/.output/server/chunks/build/logs-styles.CU5b1wKf.mjs +0 -8
  212. package/ui/.output/server/chunks/build/logs-styles.CU5b1wKf.mjs.map +0 -1
  213. package/ui/.output/server/chunks/build/schedule-B2UKsnRW.mjs.map +0 -1
  214. package/ui/.output/server/chunks/build/tasks-DBH3Z6lg.mjs.map +0 -1
  215. package/ui/.output/server/chunks/build/useApi-Bqajqsuz.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ import{a as Ne}from"./6wLLp9Nc.js";import{_ as Re}from"./CdHqKVo4.js";import{_ as he}from"./C1xk3ymy.js";import{_ as De}from"./Zrl3Utak.js";import{_ as be}from"./D_gcbXK2.js";import{_ as Pe}from"./BGkU0f28.js";import{_ as Ue}from"./DGHfexQZ.js";import{_ as Ce}from"./BOIhDy_l.js";import{u as Le}from"./G5BjvTWO.js";import{m as Ge,M as xe,j as f,l as a,ao as n,w as H,ab as l,X as A,W as B,R as u,h as k,i as O,k as I,g as i,a4 as C,F as W,Y as j,f as L}from"./CnXdKLRd.js";import{_ as Ke}from"./DlAUqK2U.js";import"./yqBy-NAR.js";import"./Cz9dogwK.js";import"./mHp9eItY.js";const Me={class:"config-page"},we={class:"flex items-center justify-between gap-3"},He={class:"text-xs text-gray-500 mt-1"},Be={key:0,class:"ml-2 text-amber-600"},We={key:1,class:"ml-2 text-emerald-600"},je={class:"flex items-center gap-2"},Ye={key:2,class:"mb-4"},ze={class:"flex items-center justify-between gap-3"},Fe={class:"grid gap-4 md:grid-cols-2"},$e={class:"flex items-center justify-between gap-3"},Je={class:"flex items-center gap-2"},Xe={class:"space-y-3"},Ze={class:"flex items-center justify-between gap-3 mb-3"},qe={class:"flex items-center gap-2 min-w-0"},Qe={class:"flex flex-col gap-0.5"},el={key:1,class:"text-xs text-gray-400"},ll={key:0,class:"grid gap-4 md:grid-cols-2"},tl={key:1,class:"text-sm text-gray-500"},ol={class:"grid gap-4 md:grid-cols-2"},al={class:"grid gap-4 md:grid-cols-2"},sl={class:"flex items-center justify-between gap-3"},nl={key:0,class:"text-sm text-gray-500"},rl={key:1,class:"grid gap-4 md:grid-cols-2"},dl={class:"flex items-center gap-2"},il={class:"space-y-3"},ul={key:0,class:"text-sm text-red-500"},pl={class:"flex justify-end gap-2"},F="PROVIDER",_l=Ge({__name:"config",setup(cl){const N=Le(),$=A(""),G=A(null),x=A(!1),V=A(""),S=A(!1),K=A(!1),J=A(0),s=B({}),R=B({}),g=B({provider:!1,ai:!1}),E=B({provider:null,ai:null}),T=A(""),h=A(!1),D=A(""),b=A(""),P=A(""),ne=[{label:"ClickUp",value:"clickup"},{label:"Jira",value:"jira"},{label:"Linear",value:"linear"},{label:"Monday",value:"monday"},{label:"Notion",value:"notion"},{label:"Trello",value:"trello"},{label:"Local",value:"local"}],Y=["antigravity","anthropic-sdk","claude","codex","cursor","devin"],re=Y.map(t=>({label:t,value:t})),de={claude:[{key:"CLAUDE_MODEL",help:"Model passed to `claude --model`. Default routes plan→opus and code→sonnet.",placeholder:"opusplan"}],"anthropic-sdk":[{key:"ANTHROPIC_API_KEY",help:"Accepts a single key or comma-separated pool; the runner rotates round-robin.",secret:!0},{key:"ANTHROPIC_MODEL",placeholder:"claude-opus-4-6"},{key:"ANTHROPIC_BASE_URL",help:"Optional — leave blank for default.",placeholder:"https://api.anthropic.com"},{key:"ANTHROPIC_SDK_MAX_RETRIES",help:"Retries after transient SDK errors. Set 0 to disable. Default: 3.",placeholder:"3"}],devin:[],cursor:[],codex:[],antigravity:[]},X={cursor:"Uses the `agent` CLI — no extra env keys.",codex:"Uses the `codex` CLI. Set OPENAI_API_KEY or run `codex login`.",antigravity:"Uses the `agy` or `antigravity` CLI — no extra env keys."};let M=0;const m=A([]),ie=L(()=>m.value.map(t=>({label:t.type,value:t.type}))),Z={clickup:[{key:"CLICKUP_API_KEY",secret:!0},{key:"CLICKUP_TEAM_ID"},{key:"CLICKUP_TAG",help:"Tag used to scope tasks to this project."},{key:"CLICKUP_LIST_ID",help:"Optional — required to create tasks."},{key:"CLICKUP_PENDING_STATUS",placeholder:"pending"},{key:"CLICKUP_OPEN_STATUS",placeholder:"open"},{key:"CLICKUP_IN_REVIEW_STATUS",placeholder:"review"}],jira:[{key:"JIRA_BASE_URL",placeholder:"https://mycompany.atlassian.net"},{key:"JIRA_EMAIL"},{key:"JIRA_API_TOKEN",secret:!0},{key:"JIRA_PROJECT"},{key:"JIRA_LABEL"},{key:"JIRA_PENDING_STATUS",placeholder:"To Do"},{key:"JIRA_IN_REVIEW_STATUS",placeholder:"In Review"}],linear:[{key:"LINEAR_API_KEY",secret:!0},{key:"LINEAR_TEAM_ID"},{key:"LINEAR_LABEL"},{key:"LINEAR_PENDING_STATUS",placeholder:"Pending"},{key:"LINEAR_IN_REVIEW_STATUS",placeholder:"In Review"}],monday:[{key:"MONDAY_API_TOKEN",secret:!0},{key:"MONDAY_BOARD_ID"},{key:"MONDAY_STATUS_COLUMN_ID",placeholder:"status"},{key:"MONDAY_GROUP_ID"}],notion:[{key:"NOTION_API_KEY",secret:!0},{key:"NOTION_DATABASE_ID"},{key:"NOTION_STATUS_PROPERTY",placeholder:"Status"},{key:"NOTION_PENDING_STATUS",placeholder:"pending"},{key:"NOTION_IN_REVIEW_STATUS",placeholder:"review"}],trello:[{key:"TRELLO_TOKEN",secret:!0},{key:"TRELLO_BOARD_ID"},{key:"TRELLO_LABEL"},{key:"TRELLO_OPEN_LIST",placeholder:"To Do"},{key:"TRELLO_PENDING_LIST",placeholder:"Blocked"},{key:"TRELLO_IN_PROGRESS_LIST",placeholder:"Doing"},{key:"TRELLO_IN_REVIEW_LIST",placeholder:"In Review"}],local:[]},q=["AGENTS","CLAUDE_MODEL","ANTHROPIC_API_KEY","ANTHROPIC_MODEL","ANTHROPIC_BASE_URL","ANTHROPIC_SDK_MAX_RETRIES"],ue=[{label:"smart",value:"smart"},{label:"always",value:"always"}],Q=["DEV_NOTES_MODE","ASSIGNEE_TAG","AIDEV_TRIGGER_WORD","THINKING_TAG","PLANNING_TAG","ACCEPTED_TAG","DONE_STATUS","AIDEV_COMMENT_PREFIX","AIDEV_HOOKS_PATH","AIDEV_SAFE_MODE","AIDEV_AUTO_COMPRESS","AIDEV_COMPRESS_THRESHOLD","GIT_REMOTE","GITHUB_BASE_BRANCH","GITHUB_REPO"],ee=["AIDEV_LOG_PATH"],pe=L(()=>{const t=(s.PROVIDER||"clickup").toLowerCase();return Z[t]??[]}),_e=L(()=>{const t=new Set([F,...q,...Q,...ee]);for(const e of Object.values(Z))for(const r of e)t.add(r.key);return t}),le=L(()=>Object.keys(s).filter(t=>!_e.value.has(t)).sort()),ce=L(()=>{const t=Object.keys(s),e=Object.keys(R);if(t.length!==e.length)return!0;for(const r of t)if((s[r]??"")!==(R[r]??""))return!0;return!1});function me(t){return/(KEY|TOKEN|SECRET|PASSWORD)$/i.test(t)}function te(t){return de[t]??[]}function fe(t){const e=t.split(",").map(r=>r.trim()).filter(Boolean).filter(r=>Y.includes(r));return e.length===0?[{uid:M++,type:"claude"},{uid:M++,type:"cursor"}]:e.map(r=>({uid:M++,type:r}))}function U(){s.AGENTS=m.value.map(t=>t.type).join(",")}function Ee(){const t=new Set(m.value.map(r=>r.type)),e=Y.find(r=>!t.has(r))??"claude";m.value.push({uid:M++,type:e}),U()}function Ae(t){m.value.length<=1||(m.value.splice(t,1),U())}function oe(t,e){const r=t+e,d=m.value[t];if(!d||r<0||r>=m.value.length)return;const c=[...m.value];c.splice(t,1),c.splice(r,0,d),m.value=c,U()}function z(t){$.value=t.path,G.value=t.exists;for(const d of Object.keys(s))delete s[d];for(const d of Object.keys(R))delete R[d];const e={};e[F]=t.values[F]||"clickup";for(const d of q)e[d]=t.values[d]??"";for(const d of Q)e[d]=t.values[d]??"";for(const d of ee)e[d]=t.values[d]??"";for(const[d,c]of Object.entries(t.values))e[d]=c;for(const[d,c]of Object.entries(e))s[d]=c,R[d]=c;m.value=fe(s.AGENTS||""),U();const r=m.value.map(d=>d.type);(!T.value||!r.includes(T.value))&&(T.value=r[0]??"")}async function ae(){x.value=!0,V.value="";try{const t=await N("/api/config");z(t)}catch(t){V.value=t instanceof Error?t.message:String(t)}finally{x.value=!1}}async function ve(){S.value=!0,K.value=!1,V.value="";try{const t=await N("/api/config",{method:"PUT",body:{values:{...s}}});J.value=Object.keys(t.values).length,z(t),K.value=!0,setTimeout(()=>K.value=!1,3e3)}catch(t){V.value=t instanceof Error?t.message:String(t)}finally{S.value=!1}}async function ye(){const t={PROVIDER:"clickup",AGENTS:"claude,cursor",DEV_NOTES_MODE:"smart",AIDEV_TRIGGER_WORD:"aidev-continue",THINKING_TAG:"thinking",PLANNING_TAG:"planning"};S.value=!0;try{const e=await N("/api/config",{method:"PUT",body:{values:t}});z(e)}catch(e){V.value=e instanceof Error?e.message:String(e)}finally{S.value=!1}}async function Te(){g.provider=!0,E.provider=null;try{E.provider=await N("/api/config/test",{method:"POST",body:{provider:!0}})}catch(t){E.provider={ok:!1,message:t instanceof Error?t.message:String(t)}}finally{g.provider=!1}}async function Ie(){if(T.value){g.ai=!0,E.ai=null;try{E.ai=await N("/api/config/test",{method:"POST",body:{ai:T.value}})}catch(t){E.ai={ok:!1,message:t instanceof Error?t.message:String(t)}}finally{g.ai=!1}}}function ge(t){delete s[t]}function se(){h.value=!1,D.value="",b.value="",P.value=""}function ke(){const t=D.value.trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)){P.value="Key must match [A-Za-z_][A-Za-z0-9_]*";return}if(t in s){P.value=`Key ${t} already exists`;return}s[t]=b.value,se()}return xe(ae),(t,e)=>{const r=Ne,d=Re,c=he,w=De,p=be,_=Pe,Oe=Ue,Ve=Ce;return u(),f("div",Me,[a(c,null,{header:n(()=>[i("div",we,[i("div",null,[e[22]||(e[22]=i("h1",{class:"text-lg font-semibold"},"Config",-1)),i("p",He,[i("code",null,C(l($)||"—"),1),l(G)===!1?(u(),f("span",Be,"not found")):l(G)?(u(),f("span",We,"loaded")):O("",!0)])]),i("div",je,[a(r,{color:"gray",variant:"ghost",size:"sm",loading:l(x),disabled:l(x),onClick:ae},{default:n(()=>[...e[23]||(e[23]=[I(" Reload ",-1)])]),_:1},8,["loading","disabled"]),a(r,{color:"primary",size:"sm",loading:l(S),disabled:l(S)||!l(ce),onClick:ve},{default:n(()=>[...e[24]||(e[24]=[I(" Save changes ",-1)])]),_:1},8,["loading","disabled"])])])]),default:n(()=>[l(V)?(u(),k(d,{key:0,color:"red",variant:"soft",title:l(V),class:"mb-4"},null,8,["title"])):O("",!0),l(G)===!1?(u(),k(d,{key:1,color:"amber",variant:"soft",title:".env.aidev does not exist",description:"Press “Create with defaults” to seed the file with the minimum keys needed to start configuring.",class:"mb-4"},{actions:n(()=>[a(r,{size:"sm",color:"amber",loading:l(S),onClick:ye},{default:n(()=>[...e[25]||(e[25]=[I(" Create with defaults ",-1)])]),_:1},8,["loading"])]),_:1})):O("",!0),l(K)?(u(),f("div",Ye,[a(d,{color:"green",variant:"soft",title:"Saved",description:`Wrote ${l(J)} key(s).`},null,8,["description"])])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",ze,[e[27]||(e[27]=i("h2",{class:"text-base font-semibold"},"Task provider",-1)),a(r,{size:"sm",color:"gray",variant:"soft",loading:l(g).provider,disabled:l(g).provider,onClick:Te},{default:n(()=>[...e[26]||(e[26]=[I(" Test connection ",-1)])]),_:1},8,["loading","disabled"])])]),default:n(()=>[i("div",Fe,[a(p,{label:"PROVIDER",help:"Which task backend aidev should talk to."},{default:n(()=>[a(w,{modelValue:l(s).PROVIDER,"onUpdate:modelValue":e[0]||(e[0]=o=>l(s).PROVIDER=o),options:ne},null,8,["modelValue"])]),_:1}),(u(!0),f(W,null,j(l(pe),o=>(u(),k(p,{key:o.key,label:o.key,help:o.help},{default:n(()=>[a(_,{modelValue:l(s)[o.key],"onUpdate:modelValue":v=>l(s)[o.key]=v,type:o.secret?"password":"text",placeholder:o.placeholder??"",autocomplete:"off"},null,8,["modelValue","onUpdate:modelValue","type","placeholder"])]),_:2},1032,["label","help"]))),128))]),l(E).provider?(u(),k(d,{key:0,color:l(E).provider.ok?"green":"red",variant:"soft",title:l(E).provider.ok?"Provider OK":"Provider failed",description:l(E).provider.message,class:"mt-3"},null,8,["color","title","description"])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",$e,[e[28]||(e[28]=i("h2",{class:"text-base font-semibold"},"AI runners",-1)),i("div",Je,[a(w,{modelValue:l(T),"onUpdate:modelValue":e[1]||(e[1]=o=>H(T)?T.value=o:null),options:l(ie),size:"sm",class:"w-44"},null,8,["modelValue","options"]),a(r,{size:"sm",color:"gray",variant:"soft",loading:l(g).ai,disabled:l(g).ai||!l(T),onClick:Ie},{default:n(()=>[I(" Test "+C(l(T)||"agent"),1)]),_:1},8,["loading","disabled"])])])]),default:n(()=>[e[31]||(e[31]=i("p",{class:"text-sm text-gray-500 mb-3"}," Agents in fallback order — first is primary, rest are tried when the previous fails. ",-1)),i("div",Xe,[(u(!0),f(W,null,j(l(m),(o,v)=>(u(),f("div",{key:o.uid,class:"agent-block rounded-lg border border-gray-200 dark:border-gray-700 p-4"},[i("div",Ze,[i("div",qe,[i("div",Qe,[a(r,{size:"xs",color:"gray",variant:"ghost",icon:"i-heroicons-chevron-up",disabled:v===0,"aria-label":"Move up",onClick:y=>oe(v,-1)},null,8,["disabled","onClick"]),a(r,{size:"xs",color:"gray",variant:"ghost",icon:"i-heroicons-chevron-down",disabled:v===l(m).length-1,"aria-label":"Move down",onClick:y=>oe(v,1)},null,8,["disabled","onClick"])]),a(w,{modelValue:o.type,"onUpdate:modelValue":[y=>o.type=y,U],options:l(re),class:"w-52"},null,8,["modelValue","onUpdate:modelValue","options"]),v===0?(u(),k(Oe,{key:0,color:"primary",variant:"subtle",size:"xs"},{default:n(()=>[...e[29]||(e[29]=[I(" primary ",-1)])]),_:1})):(u(),f("span",el,"fallback "+C(v),1))]),a(r,{size:"xs",color:"red",variant:"ghost",icon:"i-heroicons-trash",disabled:l(m).length<=1,"aria-label":"Remove agent",onClick:y=>Ae(v)},null,8,["disabled","onClick"])]),te(o.type).length>0?(u(),f("div",ll,[(u(!0),f(W,null,j(te(o.type),y=>(u(),k(p,{key:y.key,label:y.key,help:y.help},{default:n(()=>[a(_,{modelValue:l(s)[y.key],"onUpdate:modelValue":Se=>l(s)[y.key]=Se,type:y.secret?"password":"text",placeholder:y.placeholder??"",autocomplete:"off"},null,8,["modelValue","onUpdate:modelValue","type","placeholder"])]),_:2},1032,["label","help"]))),128))])):X[o.type]?(u(),f("p",tl,C(X[o.type]),1)):O("",!0)]))),128)),a(r,{size:"sm",color:"gray",variant:"soft",icon:"i-heroicons-plus",onClick:Ee},{default:n(()=>[...e[30]||(e[30]=[I(" Add agent ",-1)])]),_:1})]),l(E).ai?(u(),k(d,{key:0,color:l(E).ai.ok?"green":"red",variant:"soft",title:l(E).ai.ok?"AI runner OK":"AI runner failed",description:l(E).ai.message,class:"mt-3"},null,8,["color","title","description"])):O("",!0)]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[...e[32]||(e[32]=[i("h2",{class:"text-base font-semibold"},"Logging",-1)])]),default:n(()=>[i("div",ol,[a(p,{label:"AIDEV_LOG_PATH",help:"Path to the aidev log file. Defaults to ./aidev.log when blank."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_LOG_PATH,"onUpdate:modelValue":e[2]||(e[2]=o=>l(s).AIDEV_LOG_PATH=o),placeholder:"aidev.log"},null,8,["modelValue"])]),_:1})])]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[...e[33]||(e[33]=[i("h2",{class:"text-base font-semibold"},"Workflow & Git",-1)])]),default:n(()=>[i("div",al,[a(p,{label:"DEV_NOTES_MODE",help:"smart — ask only when unclear; always — ask before every task."},{default:n(()=>[a(w,{modelValue:l(s).DEV_NOTES_MODE,"onUpdate:modelValue":e[3]||(e[3]=o=>l(s).DEV_NOTES_MODE=o),options:ue},null,8,["modelValue"])]),_:1}),a(p,{label:"ASSIGNEE_TAG",help:"Optional tag to scope tasks to a specific assignee."},{default:n(()=>[a(_,{modelValue:l(s).ASSIGNEE_TAG,"onUpdate:modelValue":e[4]||(e[4]=o=>l(s).ASSIGNEE_TAG=o)},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_TRIGGER_WORD",help:"Word that resumes a paused agent run."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_TRIGGER_WORD,"onUpdate:modelValue":e[5]||(e[5]=o=>l(s).AIDEV_TRIGGER_WORD=o),placeholder:"aidev-continue"},null,8,["modelValue"])]),_:1}),a(p,{label:"THINKING_TAG",help:"Tasks with this tag are broken into sub-tasks first."},{default:n(()=>[a(_,{modelValue:l(s).THINKING_TAG,"onUpdate:modelValue":e[6]||(e[6]=o=>l(s).THINKING_TAG=o),placeholder:"thinking"},null,8,["modelValue"])]),_:1}),a(p,{label:"PLANNING_TAG",help:"Tasks with this tag are split into sub-tickets."},{default:n(()=>[a(_,{modelValue:l(s).PLANNING_TAG,"onUpdate:modelValue":e[7]||(e[7]=o=>l(s).PLANNING_TAG=o),placeholder:"planning"},null,8,["modelValue"])]),_:1}),a(p,{label:"ACCEPTED_TAG",help:"Tag marking a task as accepted for implementation."},{default:n(()=>[a(_,{modelValue:l(s).ACCEPTED_TAG,"onUpdate:modelValue":e[8]||(e[8]=o=>l(s).ACCEPTED_TAG=o),placeholder:"accepted"},null,8,["modelValue"])]),_:1}),a(p,{label:"DONE_STATUS",help:"Provider status treated as done/closed."},{default:n(()=>[a(_,{modelValue:l(s).DONE_STATUS,"onUpdate:modelValue":e[9]||(e[9]=o=>l(s).DONE_STATUS=o)},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_COMMENT_PREFIX",help:"Prefix for aidev comments on tasks."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_COMMENT_PREFIX,"onUpdate:modelValue":e[10]||(e[10]=o=>l(s).AIDEV_COMMENT_PREFIX=o),placeholder:"[aidev]"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_HOOKS_PATH",help:"Optional hooks module (.ts or .js)."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_HOOKS_PATH,"onUpdate:modelValue":e[11]||(e[11]=o=>l(s).AIDEV_HOOKS_PATH=o),placeholder:".aidev/aidev.hooks.ts"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_SAFE_MODE",help:"Redact secret env values from AI prompts (default: true). Set false/0/no to disable."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_SAFE_MODE,"onUpdate:modelValue":e[12]||(e[12]=o=>l(s).AIDEV_SAFE_MODE=o),placeholder:"true"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_AUTO_COMPRESS",help:"Set false/0/no to disable prompt compression."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_AUTO_COMPRESS,"onUpdate:modelValue":e[13]||(e[13]=o=>l(s).AIDEV_AUTO_COMPRESS=o),placeholder:"true"},null,8,["modelValue"])]),_:1}),a(p,{label:"AIDEV_COMPRESS_THRESHOLD",help:"Char count that triggers compression."},{default:n(()=>[a(_,{modelValue:l(s).AIDEV_COMPRESS_THRESHOLD,"onUpdate:modelValue":e[14]||(e[14]=o=>l(s).AIDEV_COMPRESS_THRESHOLD=o),placeholder:"12000"},null,8,["modelValue"])]),_:1}),a(p,{label:"GIT_REMOTE"},{default:n(()=>[a(_,{modelValue:l(s).GIT_REMOTE,"onUpdate:modelValue":e[15]||(e[15]=o=>l(s).GIT_REMOTE=o),placeholder:"origin"},null,8,["modelValue"])]),_:1}),a(p,{label:"GITHUB_BASE_BRANCH"},{default:n(()=>[a(_,{modelValue:l(s).GITHUB_BASE_BRANCH,"onUpdate:modelValue":e[16]||(e[16]=o=>l(s).GITHUB_BASE_BRANCH=o),placeholder:"main"},null,8,["modelValue"])]),_:1}),a(p,{label:"GITHUB_REPO",help:"owner/repo — auto-detected when blank."},{default:n(()=>[a(_,{modelValue:l(s).GITHUB_REPO,"onUpdate:modelValue":e[17]||(e[17]=o=>l(s).GITHUB_REPO=o),placeholder:"owner/repo"},null,8,["modelValue"])]),_:1})])]),_:1}),a(c,{class:"mt-4"},{header:n(()=>[i("div",sl,[e[35]||(e[35]=i("h2",{class:"text-base font-semibold"},"Other keys",-1)),a(r,{size:"xs",color:"gray",variant:"ghost",onClick:e[18]||(e[18]=o=>h.value=!0)},{default:n(()=>[...e[34]||(e[34]=[I(" + Add key ",-1)])]),_:1})])]),default:n(()=>[l(le).length===0?(u(),f("p",nl," No additional keys. Use “Add key” to introduce one. ")):(u(),f("div",rl,[(u(!0),f(W,null,j(l(le),o=>(u(),k(p,{key:o,label:o},{default:n(()=>[i("div",dl,[a(_,{modelValue:l(s)[o],"onUpdate:modelValue":v=>l(s)[o]=v,type:me(o)?"password":"text",autocomplete:"off",class:"flex-1"},null,8,["modelValue","onUpdate:modelValue","type"]),a(r,{size:"xs",color:"red",variant:"ghost",icon:"i-heroicons-trash",onClick:v=>ge(o)},null,8,["onClick"])])]),_:2},1032,["label"]))),128))]))]),_:1}),a(Ve,{modelValue:l(h),"onUpdate:modelValue":e[21]||(e[21]=o=>H(h)?h.value=o:null)},{default:n(()=>[a(c,null,{header:n(()=>[...e[36]||(e[36]=[i("h3",{class:"text-base font-semibold"},"Add config key",-1)])]),footer:n(()=>[i("div",pl,[a(r,{variant:"ghost",color:"gray",onClick:se},{default:n(()=>[...e[37]||(e[37]=[I("Cancel",-1)])]),_:1}),a(r,{color:"primary",onClick:ke},{default:n(()=>[...e[38]||(e[38]=[I("Add",-1)])]),_:1})])]),default:n(()=>[i("div",il,[a(p,{label:"Key",help:"Letters, numbers, and underscores. Must start with a letter or underscore."},{default:n(()=>[a(_,{modelValue:l(D),"onUpdate:modelValue":e[19]||(e[19]=o=>H(D)?D.value=o:null),placeholder:"MY_NEW_KEY",autofocus:""},null,8,["modelValue"])]),_:1}),a(p,{label:"Value"},{default:n(()=>[a(_,{modelValue:l(b),"onUpdate:modelValue":e[20]||(e[20]=o=>H(b)?b.value=o:null),autocomplete:"off"},null,8,["modelValue"])]),_:1}),l(P)?(u(),f("p",ul,C(l(P)),1)):O("",!0)])]),_:1})]),_:1},8,["modelValue"])])}}}),Rl=Ke(_l,[["__scopeId","data-v-bc9f5760"]]);export{Rl as default};
@@ -0,0 +1,131 @@
1
+ import{an as we,f as R,a7 as Kn,a3 as ot,X as P,w as pt,m as ue,M as xe,e as rn,t as Pe,j as J,q as Jn,V as lt,ab as B,am as he,O as Xn,a8 as Bt,Q as xt,D as oe,v as Ot,F as Ye,a5 as G,W as Yn,A as un,c as Ie,a0 as Qn,R as F,h as de,ao as Q,E as K,i as pe,a1 as _e,Z as Te,g as j,B as ft,l as ne,a4 as fe,a as Gn,Y as ht,H as Zn,k as Se,p as jt,a6 as vt,n as eo,aa as to,a9 as We,af as no,L as oo,ap as ao,al as io,_ as lo}from"./CnXdKLRd.js";import{s as so,c as ro,_ as cn,d as Ht,u as uo,b as _t,a as co}from"./6wLLp9Nc.js";import{a as dn,_ as fo}from"./CdHqKVo4.js";import{o as mt,c as V,i as fn,a as Ve,A as Ce,N as $e,d as W,u as ie,t as Wt,T as st,n as vo,l as vn,w as pn,f as hn,E as mn,g as gn,O as bn,e as yn,b as Ee,j as po,h as ho,s as mo,_ as go}from"./BOIhDy_l.js";import{n as bo,a as yo,u as xo}from"./mHp9eItY.js";import{_ as xn}from"./DlAUqK2U.js";import{_ as Oo}from"./C1xk3ymy.js";import{u as So}from"./G5BjvTWO.js";import"./yqBy-NAR.js";import"./Cz9dogwK.js";function wo(e,n,t){var a;let o;pt(t)?o={evaluating:t}:o=t||{};const{lazy:s=!1,flush:i="pre",evaluating:l=void 0,shallow:r=!0,onError:c=(a=globalThis.reportError)!=null?a:bo}=o,u=ot(!s),d=r?ot(n):P(n);let v=0;return we(async y=>{if(!u.value)return;v++;const b=v;let S=!1;l&&Promise.resolve().then(()=>{l.value=!0});try{const w=await e(T=>{y(()=>{l&&(l.value=!1),S||T()})});b===v&&(d.value=w)}catch(w){c(w)}finally{l&&b===v&&(l.value=!1),S=!0}},{flush:i}),s?R(()=>(u.value=!0,d.value)):d}function Ut(e){var n;const t=Kn(e);return(n=t?.$el)!=null?n:t}const ko=Symbol.for("nuxt:client-only"),Co=ue({name:"ClientOnly",inheritAttrs:!1,props:["fallback","placeholder","placeholderTag","fallbackTag"],setup(e,{slots:n,attrs:t}){const a=ot(!1);xe(()=>{a.value=!0});const o=Jn();return o&&(o._nuxtClientOnly=!0),lt(ko,!0),()=>{if(a.value){const r=n.default?.();return r&&r.length===1?[rn(r[0],t)]:r}const s=n.fallback||n.placeholder;if(s)return Pe(s);const i=e.fallback||e.placeholder||"",l=e.fallbackTag||e.placeholderTag||"span";return J(l,t,i)}}});function To(e,n,t){const a=new Array(e);return new Proxy(a,{get(o,s,i){if(typeof s=="string"){const l=s.charCodeAt(0);if(l>=48&&l<=57){const r=+s;if(Number.isInteger(r)&&r>=0&&r<e){let c=o[r];if(!c){const u=n[r*2];c=o[r]={index:r,key:t(r),start:u,size:n[r*2+1],end:u+n[r*2+1],lane:0}}return c}}if(s==="length")return e}return Reflect.get(o,s,i)}})}function Le(e,n,t){let a=t.initialDeps??[],o,s=!0;function i(){const l=e();return(l.length!==a.length||l.some((c,u)=>a[u]!==c))&&(a=l,o=n(...l),t?.onChange&&!(s&&t.skipInitialOnChange)&&t.onChange(o),s=!1),o}return i.updateDeps=l=>{a=l},i}function qt(e,n){if(e===void 0)throw new Error("Unexpected undefined");return e}const Kt=(e,n)=>Math.abs(e-n)<1.01,Eo=(e,n,t)=>{let a;return function(...o){e.clearTimeout(a),a=e.setTimeout(()=>n.apply(this,o),t)}};let Ue;const Jt=()=>{if(Ue!==void 0)return Ue;if(typeof navigator>"u")return Ue=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Ue=!0;const e=navigator.maxTouchPoints;return Ue=navigator.platform==="MacIntel"&&e!==void 0&&e>0},Xt=e=>{const{offsetWidth:n,offsetHeight:t}=e;return{width:n,height:t}},Ro=e=>e,Ao=e=>{const n=Math.max(e.startIndex-e.overscan,0),a=Math.min(e.endIndex+e.overscan,e.count-1)-n+1,o=new Array(a);for(let s=0;s<a;s++)o[s]=n+s;return o},Io=(e,n)=>{const t=e.scrollElement;if(!t)return;const a=e.targetWindow;if(!a)return;const o=i=>{const{width:l,height:r}=i;n({width:Math.round(l),height:Math.round(r)})};if(o(Xt(t)),!a.ResizeObserver)return()=>{};const s=new a.ResizeObserver(i=>{const l=()=>{const r=i[0];if(r?.borderBoxSize){const c=r.borderBoxSize[0];if(c){o({width:c.inlineSize,height:c.blockSize});return}}o(Xt(t))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()});return s.observe(t,{box:"border-box"}),()=>{s.unobserve(t)}},at={passive:!0},Mo=typeof window>"u"?!0:"onscrollend"in window,Po=(e,n,t)=>{const a=e.scrollElement;if(!a)return;const o=e.targetWindow;if(!o)return;const s=e.options.useScrollendEvent&&Mo;let i=0;const l=s?null:Eo(o,()=>n(i,!1),e.options.isScrollingResetDelay),r=d=>()=>{i=t(a),l?.(),n(i,d)},c=r(!0),u=r(!1);return a.addEventListener("scroll",c,at),s&&a.addEventListener("scrollend",u,at),()=>{a.removeEventListener("scroll",c),s&&a.removeEventListener("scrollend",u)}},Do=(e,n)=>Po(e,n,t=>{const{horizontal:a,isRtl:o}=e.options;return a?t.scrollLeft*(o&&-1||1):t.scrollTop}),Vo=(e,n,t)=>{if(n?.borderBoxSize){const a=n.borderBoxSize[0];if(a)return Math.round(a[t.options.horizontal?"inlineSize":"blockSize"])}return e[t.options.horizontal?"offsetWidth":"offsetHeight"]},Lo=(e,{adjustments:n=0,behavior:t},a)=>{var o,s;(s=(o=a.scrollElement)==null?void 0:o.scrollTo)==null||s.call(o,{[a.options.horizontal?"left":"top"]:e+n,behavior:t})},$o=Lo;class zo{constructor(n){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,a,o;return((o=(a=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:a.now)==null?void 0:o.call(a))??Date.now()},this.observer=(()=>{let t=null;const a=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(o=>{o.forEach(s=>{const i=()=>{const l=s.target,r=this.indexFromElement(l);if(!l.isConnected){this.observer.unobserve(l);for(const[c,u]of this.elementsCache)if(u===l){this.elementsCache.delete(c);break}return}this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(l,s,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var o;(o=a())==null||o.disconnect(),t=null},observe:o=>{var s;return(s=a())==null?void 0:s.observe(o,{box:"border-box"})},unobserve:o=>{var s;return(s=a())==null?void 0:s.unobserve(o)}}})(),this.range=null,this.setOptions=t=>{var a,o;const s={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Ro,rangeExtractor:Ao,onChange:()=>{},measureElement:Vo,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate"};for(const c in t){const u=t[c];u!==void 0&&(s[c]=u)}const i=this.options;let l=null,r=null;if(i!==void 0&&i.enabled&&s.enabled&&s.anchorTo==="end"&&this.scrollElement!==null){const c=i.count,u=s.count,d=this.getMeasurements(),v=c>0?((a=d[0])==null?void 0:a.key)??i.getItemKey(0):null,y=c>0?((o=d[c-1])==null?void 0:o.key)??i.getItemKey(c-1):null;if(u!==c||c>0&&u>0&&(s.getItemKey(0)!==v||s.getItemKey(u-1)!==y)){const w=c>0?this.getVirtualItemForOffset(this.getScrollOffset())??d[0]:null;w&&(l=[w.key,this.getScrollOffset()-w.start]);const T=s.followOnAppend===!0?"auto":s.followOnAppend||null;T&&u>c&&this.isAtEnd(i.scrollEndThreshold)&&(c===0||s.getItemKey(u-1)!==y)&&(r=T)}}this.options=s,(l||r)&&(this.pendingScrollAnchor=[l?.[0]??null,l?.[1]??0,r])},this.notify=t=>{var a,o;(o=(a=this.options).onChange)==null||o.call(a,this,t)},this.maybeNotify=Le(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const a=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==a){if(this.cleanup(),!a){this.maybeNotify();return}if(this.scrollElement=a,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,i)=>{this._intendedScrollOffset!==null&&Math.abs(s-this._intendedScrollOffset)<1.5&&(s=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=i?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=i,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const s=this.scrollElement,i=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},l=()=>{this._iosTouching=!1,!(!Jt()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};s.addEventListener("touchstart",i,at),s.addEventListener("touchend",l,at),this.unsubs.push(()=>{s.removeEventListener("touchstart",i),s.removeEventListener("touchend",l),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const o=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,o&&this.scrollElement&&this.options.enabled){const[s,i,l]=o;if(s!==null){const{count:r,getItemKey:c}=this.options;let u=0;for(;u<r&&c(u)!==s;)u++;const d=u<r?this.getMeasurements()[u]:void 0;if(d){const v=d.start+i-this.getScrollOffset();Kt(v,0)||this.applyScrollAdjustment(v)}}l&&this.scrollToEnd({behavior:l})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),a=this.getMaxScrollOffset();if(t<0||t>a)return;const o=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=o,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(t,a)=>{const o=new Map,s=new Map;for(let i=a-1;i>=0;i--){const l=t[i];if(o.has(l.lane))continue;const r=s.get(l.lane);if(r==null||l.end>r.end?s.set(l.lane,l):l.end<r.end&&o.set(l.lane,!0),o.size===this.options.lanes)break}return s.size===this.options.lanes?Array.from(s.values()).sort((i,l)=>i.end===l.end?i.index-l.index:i.end-l.end)[0]:void 0},this.getMeasurementOptions=Le(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(t,a,o,s,i,l,r)=>(this.prevLanes!==void 0&&this.prevLanes!==l&&(this.lanesChangedFlag=!0),this.prevLanes=l,this.pendingMin=null,{count:t,paddingStart:a,scrollMargin:o,getItemKey:s,enabled:i,lanes:l,laneAssignmentMode:r}),{key:!1}),this.getMeasurements=Le(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:a,scrollMargin:o,getItemKey:s,enabled:i,lanes:l,laneAssignmentMode:r},c)=>{const u=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const b of this.laneAssignments.keys())b>=t&&this.laneAssignments.delete(b);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(b=>{this.itemSizeCache.set(b.key,b.size)}));const d=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),l===1){const b=this.options.gap,S=t*2;let w=this._flatMeasurements;if(!w||w.length<S){const p=new Float64Array(S);w&&d>0&&p.set(w.subarray(0,d*2)),w=p,this._flatMeasurements=w}let T;if(d===0)T=a+o;else{const p=d-1;T=w[p*2]+w[p*2+1]+b}for(let p=d;p<t;p++){const h=s(p),f=u.get(h),x=typeof f=="number"?f:this.options.estimateSize(p);w[p*2]=T,w[p*2+1]=x,T+=x+b}const O=To(t,w,s);return this.measurementsCache=O,O}const v=this.measurementsCache.slice(0,d),y=new Array(l).fill(void 0);for(let b=0;b<d;b++){const S=v[b];S&&(y[S.lane]=b)}for(let b=d;b<t;b++){const S=s(b),w=this.laneAssignments.get(b);let T,O;const p=r==="estimate"||u.has(S);if(w!==void 0&&this.options.lanes>1){T=w;const C=y[T],m=C!==void 0?v[C]:void 0;O=m?m.end+this.options.gap:a+o}else{const C=this.options.lanes===1?v[b-1]:this.getFurthestMeasurement(v,b);O=C?C.end+this.options.gap:a+o,T=C?C.lane:b%this.options.lanes,this.options.lanes>1&&p&&this.laneAssignments.set(b,T)}const h=u.get(S),f=typeof h=="number"?h:this.options.estimateSize(b),x=O+f;v[b]={index:b,start:O,size:f,end:x,key:S,lane:T},y[T]=b}return this.measurementsCache=v,v},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Le(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,a,o,s)=>this.range=t.length>0&&a>0?Fo({measurements:t,outerSize:a,scrollOffset:o,lanes:s,flat:s===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Le(()=>{let t=null,a=null;const o=this.calculateRange();return o&&(t=o.startIndex,a=o.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,a]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,a]},(t,a,o,s,i)=>s===null||i===null?[]:t({startIndex:s,endIndex:i,overscan:a,count:o}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const a=this.options.indexAttribute,o=t.getAttribute(a);return o?parseInt(o,10):(console.warn(`Missing attribute name '${a}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var a;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const o=this.scrollState.index??((a=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:a.index);if(o!==void 0&&this.range){const s=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),i=Math.max(0,o-s),l=Math.min(this.options.count-1,o+s);return t>=i&&t<=l}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((i,l)=>{i.isConnected||(this.observer.unobserve(i),this.elementsCache.delete(l))});return}const a=this.indexFromElement(t),o=this.options.getItemKey(a),s=this.elementsCache.get(o);s!==t&&(s&&this.observer.unobserve(s),this.observer.observe(t),this.elementsCache.set(o,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(a)&&this.resizeItem(a,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,a)=>{var o,s;if(t<0||t>=this.options.count)return;let i,l,r;const c=this._flatMeasurements;if(this.options.lanes===1&&c!==null)r=this.options.getItemKey(t),l=c[t*2],i=c[t*2+1];else{const v=this.measurementsCache[t];if(!v)return;r=v.key,l=v.start,i=v.size}const u=this.itemSizeCache.get(r)??i,d=a-u;if(d!==0){const v=this.options.anchorTo==="end"&&((o=this.scrollState)==null?void 0:o.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,y=v?this.getTotalSize():0,b=((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:r,start:l,size:i,end:l+i,lane:0},d,this):l<this.getScrollOffset()+this.scrollAdjustments&&this.scrollDirection!=="backward");(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(r,a),this.itemSizeCacheVersion++,v?this.applyScrollAdjustment(this.getTotalSize()-y):b&&this.applyScrollAdjustment(d),this.notify(!1)}},this.getVirtualItems=Le(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,a)=>{const o=[];for(let s=0,i=t.length;s<i;s++){const l=t[s],r=a[l];o.push(r)}return o},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{const a=this.getMeasurements();if(a.length===0)return;const o=this._flatMeasurements,s=this.options.lanes===1&&o!=null,i=On(0,a.length-1,s?l=>o[l*2]:l=>qt(a[l]).start,t);return qt(a[i])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,a,o=0)=>{if(!this.scrollElement)return 0;const s=this.getSize(),i=this.getScrollOffset();a==="auto"&&(a=t>=i+s?"end":"start"),a==="center"?t+=(o-s)/2:a==="end"&&(t-=s);const l=this.getMaxScrollOffset();return Math.max(Math.min(l,t),0)},this.getOffsetForIndex=(t,a="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const o=this.getSize(),s=this.getScrollOffset(),i=this.measurementsCache[t];if(!i)return;if(a==="auto")if(i.end>=s+o-this.options.scrollPaddingEnd)a="end";else if(i.start<=s+this.options.scrollPaddingStart)a="start";else return[s,a];if(a==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),a];const l=a==="end"?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,a,i.size),a]},this.scrollToOffset=(t,{align:a="start",behavior:o="auto"}={})=>{const s=this.getOffsetForAlignment(t,a),i=this.now();this.scrollState={index:null,align:a,behavior:o,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:o}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:a="auto",behavior:o="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const s=this.getOffsetForIndex(t,a);if(!s)return;const[i,l]=s,r=this.now();this.scrollState={index:t,align:l,behavior:o,startedAt:r,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:o}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:a="auto"}={})=>{const o=this.getScrollOffset()+t,s=this.now();this.scrollState={index:null,align:"start",behavior:a,startedAt:s,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:a}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const a=this.getMeasurements();let o;if(a.length===0)o=this.options.paddingStart;else if(this.options.lanes===1){const s=a.length-1,i=this._flatMeasurements;i!=null?o=i[s*2]+i[s*2+1]:o=((t=a[s])==null?void 0:t.end)??0}else{const s=Array(this.options.lanes).fill(null);let i=a.length-1;for(;i>=0&&s.some(l=>l===null);){const l=a[i];s[l.lane]===null&&(s[l.lane]=l.end),i--}o=Math.max(...s.filter(l=>l!==null))}return Math.max(o-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const a=this.getMeasurements();for(const o of a)o&&this.itemSizeCache.has(o.key)&&t.push({index:o.index,key:o.key,start:o.start,size:o.size,end:o.end,lane:o.lane});return t},this._scrollToOffset=(t,{adjustments:a,behavior:o})=>{this._intendedScrollOffset=t+(a??0),this.options.scrollToFn(t,{behavior:o,adjustments:a},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(n)}applyScrollAdjustment(n,t){n!==0&&(Jt()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=n:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=n,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const a=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,o=a?a[0]:this.scrollState.lastTargetOffset,s=1,i=o!==this.scrollState.lastTargetOffset;if(!i&&Kt(o,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=s){this.getScrollOffset()!==o&&this._scrollToOffset(o,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,i){const l=this.getSize()||600,r=Math.abs(o-this.getScrollOffset()),c=this.scrollState.behavior==="smooth"&&r>l;this.scrollState.lastTargetOffset=o,c||(this.scrollState.behavior="auto"),this._scrollToOffset(o,{adjustments:void 0,behavior:c?"smooth":"auto"})}this.scheduleScrollReconcile()}}const On=(e,n,t,a)=>{for(;e<=n;){const o=(e+n)/2|0,s=t(o);if(s<a)e=o+1;else if(s>a)n=o-1;else return o}return e>0?e-1:0};function Fo({measurements:e,outerSize:n,scrollOffset:t,lanes:a,flat:o}){const s=e.length-1,i=o?u=>o[u*2]:u=>e[u].start,l=o?u=>o[u*2]+o[u*2+1]:u=>e[u].end;if(e.length<=a)return{startIndex:0,endIndex:s};let r=On(0,s,i,t),c=r;if(a===1)for(;c<s&&l(c)<t+n;)c++;else if(a>1){const u=Array(a).fill(0);for(;c<s&&u.some(v=>v<t+n);){const v=e[c];u[v.lane]=v.end,c++}const d=Array(a).fill(t+n);for(;r>=0&&d.some(v=>v>=t);){const v=e[r];d[v.lane]=v.start,r--}r=Math.max(0,r-r%a),c=Math.min(s,c+(a-1-c%a))}return{startIndex:r,endIndex:c}}function No(e){const n=new zo(B(e)),t=ot(n),a=n._didMount();return he(()=>B(e).getScrollElement(),o=>{o&&n._willUpdate()},{immediate:!0}),he(()=>B(e),o=>{n.setOptions({...o,onChange:(s,i)=>{var l;Bt(t),(l=o.onChange)==null||l.call(o,s,i)}}),n._willUpdate(),Bt(t)},{immediate:!0}),Xn(a),t}function Bo(e){return No(R(()=>({observeElementRect:Io,observeElementOffset:Do,scrollToFn:$o,...B(e)})))}function Sn(e,n,t){let a=P(t?.value),o=R(()=>e.value!==void 0);return[R(()=>o.value?e.value:a.value),function(s){return o.value||(a.value=s),n?.(s)}]}function jo(){let e=mt();return xt(()=>e.dispose()),e}function Ho(){let e=jo();return n=>{e.dispose(),e.nextFrame(n)}}function Yt(e,n){if(e)return e;let t=n??"button";if(typeof t=="string"&&t.toLowerCase()==="button")return"button"}function wn(e,n){let t=P(Yt(e.value.type,e.value.as));return xe(()=>{t.value=Yt(e.value.type,e.value.as)}),we(()=>{var a;t.value||V(n)&&V(n)instanceof HTMLButtonElement&&!((a=V(n))!=null&&a.hasAttribute("type"))&&(t.value="button")}),t}function Qt(e){return[e.screenX,e.screenY]}function kn(){let e=P([-1,-1]);return{wasMoved(n){let t=Qt(n);return e.value[0]===t[0]&&e.value[1]===t[1]?!1:(e.value=t,!0)},update(n){e.value=Qt(n)}}}function _o({container:e,accept:n,walk:t,enabled:a}){we(()=>{let o=e.value;if(!o||a!==void 0&&!a.value)return;let s=fn(e);if(!s)return;let i=Object.assign(r=>n(r),{acceptNode:n}),l=s.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,i,!1);for(;l.nextNode();)t(l.currentNode)})}var Cn=(e=>(e[e.Left=0]="Left",e[e.Right=2]="Right",e))(Cn||{});function Wo(e){throw new Error("Unexpected object: "+e)}var H=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(H||{});function gt(e,n){let t=n.resolveItems();if(t.length<=0)return null;let a=n.resolveActiveIndex(),o=a??-1;switch(e.focus){case 0:{for(let s=0;s<t.length;++s)if(!n.resolveDisabled(t[s],s,t))return s;return a}case 1:{o===-1&&(o=t.length);for(let s=o-1;s>=0;--s)if(!n.resolveDisabled(t[s],s,t))return s;return a}case 2:{for(let s=o+1;s<t.length;++s)if(!n.resolveDisabled(t[s],s,t))return s;return a}case 3:{for(let s=t.length-1;s>=0;--s)if(!n.resolveDisabled(t[s],s,t))return s;return a}case 4:{for(let s=0;s<t.length;++s)if(n.resolveId(t[s],s,t)===e.id)return s;return a}case 5:return null;default:Wo(e)}}function St(e={},n=null,t=[]){for(let[a,o]of Object.entries(e))En(t,Tn(n,a),o);return t}function Tn(e,n){return e?e+"["+n+"]":n}function En(e,n,t){if(Array.isArray(t))for(let[a,o]of t.entries())En(e,Tn(n,a.toString()),o);else t instanceof Date?e.push([n,t.toISOString()]):typeof t=="boolean"?e.push([n,t?"1":"0"]):typeof t=="string"?e.push([n,t]):typeof t=="number"?e.push([n,`${t}`]):t==null?e.push([n,""]):St(t,n,e)}var Uo={};function qo(e,n){return e===n}var Ko=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Ko||{}),Jo=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(Jo||{}),Xo=(e=>(e[e.Pointer=0]="Pointer",e[e.Focus=1]="Focus",e[e.Other=2]="Other",e))(Xo||{});let Rn=Symbol("ComboboxContext");function je(e){let n=Ot(Rn,null);if(n===null){let t=new Error(`<${e} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,je),t}return n}let An=Symbol("VirtualContext"),Yo=ue({name:"VirtualProvider",setup(e,{slots:n}){let t=je("VirtualProvider"),a=R(()=>{let l=V(t.optionsRef);if(!l)return{start:0,end:0};let r=window.getComputedStyle(l);return{start:parseFloat(r.paddingBlockStart||r.paddingTop),end:parseFloat(r.paddingBlockEnd||r.paddingBottom)}}),o=Bo(R(()=>({scrollPaddingStart:a.value.start,scrollPaddingEnd:a.value.end,count:t.virtual.value.options.length,estimateSize(){return 40},getScrollElement(){return V(t.optionsRef)},overscan:12}))),s=R(()=>{var l;return(l=t.virtual.value)==null?void 0:l.options}),i=P(0);return he([s],()=>{i.value+=1}),lt(An,t.virtual.value?o:null),()=>[Pe("div",{style:{position:"relative",width:"100%",height:`${o.value.getTotalSize()}px`},ref:l=>{if(l){if(typeof process<"u"&&Uo.JEST_WORKER_ID!==void 0||t.activationTrigger.value===0)return;t.activeOptionIndex.value!==null&&t.virtual.value.options.length>t.activeOptionIndex.value&&o.value.scrollToIndex(t.activeOptionIndex.value)}}},o.value.getVirtualItems().map(l=>rn(n.default({option:t.virtual.value.options[l.index],open:t.comboboxState.value===0})[0],{key:`${i.value}-${l.index}`,"data-index":l.index,"aria-setsize":t.virtual.value.options.length,"aria-posinset":l.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${l.start}px)`,overflowAnchor:"none"}})))]}}),Qo=ue({name:"Combobox",emits:{"update:modelValue":e=>!0},props:{as:{type:[Object,String],default:"template"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],nullable:!0,default:null},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},nullable:{type:Boolean,default:!1},multiple:{type:[Boolean],default:!1},immediate:{type:[Boolean],default:!1},virtual:{type:Object,default:null}},inheritAttrs:!1,setup(e,{slots:n,attrs:t,emit:a}){let o=P(1),s=P(null),i=P(null),l=P(null),r=P(null),c=P({static:!1,hold:!1}),u=P([]),d=P(null),v=P(2),y=P(!1);function b(g=k=>k){let k=d.value!==null?u.value[d.value]:null,I=g(u.value.slice()),M=I.length>0&&I[0].dataRef.order.value!==null?I.sort((N,_)=>N.dataRef.order.value-_.dataRef.order.value):bn(I,N=>V(N.dataRef.domRef)),z=k?M.indexOf(k):null;return z===-1&&(z=null),{options:M,activeOptionIndex:z}}let S=R(()=>e.multiple?1:0),w=R(()=>e.nullable),[T,O]=Sn(R(()=>e.modelValue),g=>a("update:modelValue",g),R(()=>e.defaultValue)),p=R(()=>T.value===void 0?ie(S.value,{1:[],0:void 0}):T.value),h=null,f=null;function x(g){return ie(S.value,{0(){return O?.(g)},1:()=>{let k=G(m.value.value).slice(),I=G(g),M=k.findIndex(z=>m.compare(I,G(z)));return M===-1?k.push(I):k.splice(M,1),O?.(k)}})}let C=R(()=>{});he([C],([g],[k])=>{if(m.virtual.value&&g&&k&&d.value!==null){let I=g.indexOf(k[d.value]);I!==-1?d.value=I:d.value=null}});let m={comboboxState:o,value:p,mode:S,compare(g,k){if(typeof e.by=="string"){let I=e.by;return g?.[I]===k?.[I]}return e.by===null?qo(g,k):e.by(g,k)},calculateIndex(g){return m.virtual.value?e.by===null?m.virtual.value.options.indexOf(g):m.virtual.value.options.findIndex(k=>m.compare(k,g)):u.value.findIndex(k=>m.compare(k.dataRef.value,g))},defaultValue:R(()=>e.defaultValue),nullable:w,immediate:R(()=>!1),virtual:R(()=>null),inputRef:i,labelRef:s,buttonRef:l,optionsRef:r,disabled:R(()=>e.disabled),options:u,change(g){O(g)},activeOptionIndex:R(()=>{if(y.value&&d.value===null&&(m.virtual.value?m.virtual.value.options.length>0:u.value.length>0)){if(m.virtual.value){let k=m.virtual.value.options.findIndex(I=>{var M;return!((M=m.virtual.value)!=null&&M.disabled(I))});if(k!==-1)return k}let g=u.value.findIndex(k=>!k.dataRef.disabled);if(g!==-1)return g}return d.value}),activationTrigger:v,optionsPropsRef:c,closeCombobox(){y.value=!1,!e.disabled&&o.value!==1&&(o.value=1,d.value=null)},openCombobox(){if(y.value=!0,!e.disabled&&o.value!==0){if(m.value.value){let g=m.calculateIndex(m.value.value);g!==-1&&(d.value=g)}o.value=0}},setActivationTrigger(g){v.value=g},goToOption(g,k,I){y.value=!1,h!==null&&cancelAnimationFrame(h),h=requestAnimationFrame(()=>{if(e.disabled||r.value&&!c.value.static&&o.value===1)return;if(m.virtual.value){d.value=g===H.Specific?k:gt({focus:g},{resolveItems:()=>m.virtual.value.options,resolveActiveIndex:()=>{var N,_;return(_=(N=m.activeOptionIndex.value)!=null?N:m.virtual.value.options.findIndex(U=>{var ae;return!((ae=m.virtual.value)!=null&&ae.disabled(U))}))!=null?_:null},resolveDisabled:N=>m.virtual.value.disabled(N),resolveId(){throw new Error("Function not implemented.")}}),v.value=I??2;return}let M=b();if(M.activeOptionIndex===null){let N=M.options.findIndex(_=>!_.dataRef.disabled);N!==-1&&(M.activeOptionIndex=N)}let z=g===H.Specific?k:gt({focus:g},{resolveItems:()=>M.options,resolveActiveIndex:()=>M.activeOptionIndex,resolveId:N=>N.id,resolveDisabled:N=>N.dataRef.disabled});d.value=z,v.value=I??2,u.value=M.options})},selectOption(g){let k=u.value.find(M=>M.id===g);if(!k)return;let{dataRef:I}=k;x(I.value)},selectActiveOption(){if(m.activeOptionIndex.value!==null){if(m.virtual.value)x(m.virtual.value.options[m.activeOptionIndex.value]);else{let{dataRef:g}=u.value[m.activeOptionIndex.value];x(g.value)}m.goToOption(H.Specific,m.activeOptionIndex.value)}},registerOption(g,k){let I=Yn({id:g,dataRef:k});if(m.virtual.value){u.value.push(I);return}f&&cancelAnimationFrame(f);let M=b(z=>(z.push(I),z));d.value===null&&m.isSelected(k.value.value)&&(M.activeOptionIndex=M.options.indexOf(I)),u.value=M.options,d.value=M.activeOptionIndex,v.value=2,M.options.some(z=>!V(z.dataRef.domRef))&&(f=requestAnimationFrame(()=>{let z=b();u.value=z.options,d.value=z.activeOptionIndex}))},unregisterOption(g,k){if(h!==null&&cancelAnimationFrame(h),k&&(y.value=!0),m.virtual.value){u.value=u.value.filter(M=>M.id!==g);return}let I=b(M=>{let z=M.findIndex(N=>N.id===g);return z!==-1&&M.splice(z,1),M});u.value=I.options,d.value=I.activeOptionIndex,v.value=2},isSelected(g){return ie(S.value,{0:()=>m.compare(G(m.value.value),G(g)),1:()=>G(m.value.value).some(k=>m.compare(G(k),G(g)))})},isActive(g){return d.value===m.calculateIndex(g)}};pn([i,l,r],()=>m.closeCombobox(),R(()=>o.value===0)),lt(Rn,m),yn(R(()=>ie(o.value,{0:Ee.Open,1:Ee.Closed})));let E=R(()=>{var g;return(g=V(i))==null?void 0:g.closest("form")});return xe(()=>{he([E],()=>{if(!E.value||e.defaultValue===void 0)return;function g(){m.change(e.defaultValue)}return E.value.addEventListener("reset",g),()=>{var k;(k=E.value)==null||k.removeEventListener("reset",g)}},{immediate:!0})}),()=>{var g,k,I;let{name:M,disabled:z,form:N,..._}=e,U={open:o.value===0,disabled:z,activeIndex:m.activeOptionIndex.value,activeOption:m.activeOptionIndex.value===null?null:m.virtual.value?m.virtual.value.options[(g=m.activeOptionIndex.value)!=null?g:0]:(I=(k=m.options.value[m.activeOptionIndex.value])==null?void 0:k.dataRef.value)!=null?I:null,value:p.value};return Pe(Ye,[...M!=null&&p.value!=null?St({[M]:p.value}).map(([ae,Z])=>Pe(hn,mn({features:gn.Hidden,key:ae,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:N,disabled:z,name:ae,value:Z}))):[],Ce({theirProps:{...t,...st(_,["by","defaultValue","immediate","modelValue","multiple","nullable","onUpdate:modelValue","virtual"])},ourProps:{},slot:U,slots:n,attrs:t,name:"Combobox"})])}}}),Go=ue({name:"ComboboxButton",props:{as:{type:[Object,String],default:"button"},id:{type:String,default:null}},setup(e,{attrs:n,slots:t,expose:a}){var o;let s=(o=e.id)!=null?o:`headlessui-combobox-button-${Ve()}`,i=je("ComboboxButton");a({el:i.buttonRef,$el:i.buttonRef});function l(u){i.disabled.value||(i.comboboxState.value===0?i.closeCombobox():(u.preventDefault(),i.openCombobox()),oe(()=>{var d;return(d=V(i.inputRef))==null?void 0:d.focus({preventScroll:!0})}))}function r(u){switch(u.key){case W.ArrowDown:u.preventDefault(),u.stopPropagation(),i.comboboxState.value===1&&i.openCombobox(),oe(()=>{var d;return(d=i.inputRef.value)==null?void 0:d.focus({preventScroll:!0})});return;case W.ArrowUp:u.preventDefault(),u.stopPropagation(),i.comboboxState.value===1&&(i.openCombobox(),oe(()=>{i.value.value||i.goToOption(H.Last)})),oe(()=>{var d;return(d=i.inputRef.value)==null?void 0:d.focus({preventScroll:!0})});return;case W.Escape:if(i.comboboxState.value!==0)return;u.preventDefault(),i.optionsRef.value&&!i.optionsPropsRef.value.static&&u.stopPropagation(),i.closeCombobox(),oe(()=>{var d;return(d=i.inputRef.value)==null?void 0:d.focus({preventScroll:!0})});return}}let c=wn(R(()=>({as:e.as,type:n.type})),i.buttonRef);return()=>{var u,d;let v={open:i.comboboxState.value===0,disabled:i.disabled.value,value:i.value.value},{...y}=e,b={ref:i.buttonRef,id:s,type:c.value,tabindex:"-1","aria-haspopup":"listbox","aria-controls":(u=V(i.optionsRef))==null?void 0:u.id,"aria-expanded":i.comboboxState.value===0,"aria-labelledby":i.labelRef.value?[(d=V(i.labelRef))==null?void 0:d.id,s].join(" "):void 0,disabled:i.disabled.value===!0?!0:void 0,onKeydown:r,onClick:l};return Ce({ourProps:b,theirProps:y,slot:v,attrs:n,slots:t,name:"ComboboxButton"})}}}),Zo=ue({name:"ComboboxInput",props:{as:{type:[Object,String],default:"input"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},displayValue:{type:Function},defaultValue:{type:String,default:void 0},id:{type:String,default:null}},emits:{change:e=>!0},setup(e,{emit:n,attrs:t,slots:a,expose:o}){var s;let i=(s=e.id)!=null?s:`headlessui-combobox-input-${Ve()}`,l=je("ComboboxInput"),r=R(()=>fn(V(l.inputRef))),c={value:!1};o({el:l.inputRef,$el:l.inputRef});function u(){l.change(null);let f=V(l.optionsRef);f&&(f.scrollTop=0),l.goToOption(H.Nothing)}let d=R(()=>{var f;let x=l.value.value;return V(l.inputRef)?typeof e.displayValue<"u"&&x!==void 0?(f=e.displayValue(x))!=null?f:"":typeof x=="string"?x:"":""});xe(()=>{he([d,l.comboboxState,r],([f,x],[C,m])=>{if(c.value)return;let E=V(l.inputRef);E&&((m===0&&x===1||f!==C)&&(E.value=f),requestAnimationFrame(()=>{var g;if(c.value||!E||((g=r.value)==null?void 0:g.activeElement)!==E)return;let{selectionStart:k,selectionEnd:I}=E;Math.abs((I??0)-(k??0))===0&&k===0&&E.setSelectionRange(E.value.length,E.value.length)}))},{immediate:!0}),he([l.comboboxState],([f],[x])=>{if(f===0&&x===1){if(c.value)return;let C=V(l.inputRef);if(!C)return;let m=C.value,{selectionStart:E,selectionEnd:g,selectionDirection:k}=C;C.value="",C.value=m,k!==null?C.setSelectionRange(E,g,k):C.setSelectionRange(E,g)}})});let v=P(!1);function y(){v.value=!0}function b(){mt().nextFrame(()=>{v.value=!1})}let S=Ho();function w(f){switch(c.value=!0,S(()=>{c.value=!1}),f.key){case W.Enter:if(c.value=!1,l.comboboxState.value!==0||v.value)return;if(f.preventDefault(),f.stopPropagation(),l.activeOptionIndex.value===null){l.closeCombobox();return}l.selectActiveOption(),l.mode.value===0&&l.closeCombobox();break;case W.ArrowDown:return c.value=!1,f.preventDefault(),f.stopPropagation(),ie(l.comboboxState.value,{0:()=>l.goToOption(H.Next),1:()=>l.openCombobox()});case W.ArrowUp:return c.value=!1,f.preventDefault(),f.stopPropagation(),ie(l.comboboxState.value,{0:()=>l.goToOption(H.Previous),1:()=>{l.openCombobox(),oe(()=>{l.value.value||l.goToOption(H.Last)})}});case W.Home:if(f.shiftKey)break;return c.value=!1,f.preventDefault(),f.stopPropagation(),l.goToOption(H.First);case W.PageUp:return c.value=!1,f.preventDefault(),f.stopPropagation(),l.goToOption(H.First);case W.End:if(f.shiftKey)break;return c.value=!1,f.preventDefault(),f.stopPropagation(),l.goToOption(H.Last);case W.PageDown:return c.value=!1,f.preventDefault(),f.stopPropagation(),l.goToOption(H.Last);case W.Escape:if(c.value=!1,l.comboboxState.value!==0)return;f.preventDefault(),l.optionsRef.value&&!l.optionsPropsRef.value.static&&f.stopPropagation(),l.nullable.value&&l.mode.value===0&&l.value.value===null&&u(),l.closeCombobox();break;case W.Tab:if(c.value=!1,l.comboboxState.value!==0)return;l.mode.value===0&&l.activationTrigger.value!==1&&l.selectActiveOption(),l.closeCombobox();break}}function T(f){n("change",f),l.nullable.value&&l.mode.value===0&&f.target.value===""&&u(),l.openCombobox()}function O(f){var x,C,m;let E=(x=f.relatedTarget)!=null?x:Wt.find(g=>g!==f.currentTarget);if(c.value=!1,!((C=V(l.optionsRef))!=null&&C.contains(E))&&!((m=V(l.buttonRef))!=null&&m.contains(E))&&l.comboboxState.value===0)return f.preventDefault(),l.mode.value===0&&(l.nullable.value&&l.value.value===null?u():l.activationTrigger.value!==1&&l.selectActiveOption()),l.closeCombobox()}function p(f){var x,C,m;let E=(x=f.relatedTarget)!=null?x:Wt.find(g=>g!==f.currentTarget);(C=V(l.buttonRef))!=null&&C.contains(E)||(m=V(l.optionsRef))!=null&&m.contains(E)||l.disabled.value||l.immediate.value&&l.comboboxState.value!==0&&(l.openCombobox(),mt().nextFrame(()=>{l.setActivationTrigger(1)}))}let h=R(()=>{var f,x,C,m;return(m=(C=(x=e.defaultValue)!=null?x:l.defaultValue.value!==void 0?(f=e.displayValue)==null?void 0:f.call(e,l.defaultValue.value):null)!=null?C:l.defaultValue.value)!=null?m:""});return()=>{var f,x,C,m,E,g,k;let I={open:l.comboboxState.value===0},{displayValue:M,onChange:z,...N}=e,_={"aria-controls":(f=l.optionsRef.value)==null?void 0:f.id,"aria-expanded":l.comboboxState.value===0,"aria-activedescendant":l.activeOptionIndex.value===null?void 0:l.virtual.value?(x=l.options.value.find(U=>!l.virtual.value.disabled(U.dataRef.value)&&l.compare(U.dataRef.value,l.virtual.value.options[l.activeOptionIndex.value])))==null?void 0:x.id:(C=l.options.value[l.activeOptionIndex.value])==null?void 0:C.id,"aria-labelledby":(g=(m=V(l.labelRef))==null?void 0:m.id)!=null?g:(E=V(l.buttonRef))==null?void 0:E.id,"aria-autocomplete":"list",id:i,onCompositionstart:y,onCompositionend:b,onKeydown:w,onInput:T,onFocus:p,onBlur:O,role:"combobox",type:(k=t.type)!=null?k:"text",tabIndex:0,ref:l.inputRef,defaultValue:h.value,disabled:l.disabled.value===!0?!0:void 0};return Ce({ourProps:_,theirProps:N,slot:I,attrs:t,slots:a,features:$e.RenderStrategy|$e.Static,name:"ComboboxInput"})}}}),ea=ue({name:"ComboboxOptions",props:{as:{type:[Object,String],default:"ul"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},hold:{type:[Boolean],default:!1}},setup(e,{attrs:n,slots:t,expose:a}){let o=je("ComboboxOptions"),s=`headlessui-combobox-options-${Ve()}`;a({el:o.optionsRef,$el:o.optionsRef}),we(()=>{o.optionsPropsRef.value.static=e.static}),we(()=>{o.optionsPropsRef.value.hold=e.hold});let i=vn(),l=R(()=>i!==null?(i.value&Ee.Open)===Ee.Open:o.comboboxState.value===0);_o({container:R(()=>V(o.optionsRef)),enabled:R(()=>o.comboboxState.value===0),accept(c){return c.getAttribute("role")==="option"?NodeFilter.FILTER_REJECT:c.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(c){c.setAttribute("role","none")}});function r(c){c.preventDefault()}return()=>{var c,u,d;let v={open:o.comboboxState.value===0},y={"aria-labelledby":(d=(c=V(o.labelRef))==null?void 0:c.id)!=null?d:(u=V(o.buttonRef))==null?void 0:u.id,id:s,ref:o.optionsRef,role:"listbox","aria-multiselectable":o.mode.value===1?!0:void 0,onMousedown:r},b=st(e,["hold"]);return Ce({ourProps:y,theirProps:b,slot:v,attrs:n,slots:o.virtual.value&&o.comboboxState.value===0?{...t,default:()=>[Pe(Yo,{},t.default)]}:t,features:$e.RenderStrategy|$e.Static,visible:l.value,name:"ComboboxOptions"})}}}),ta=ue({name:"ComboboxOption",props:{as:{type:[Object,String],default:"li"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},order:{type:[Number],default:null}},setup(e,{slots:n,attrs:t,expose:a}){let o=je("ComboboxOption"),s=`headlessui-combobox-option-${Ve()}`,i=P(null),l=R(()=>e.disabled);a({el:i,$el:i});let r=R(()=>{var O;return o.virtual.value?o.activeOptionIndex.value===o.calculateIndex(e.value):o.activeOptionIndex.value===null?!1:((O=o.options.value[o.activeOptionIndex.value])==null?void 0:O.id)===s}),c=R(()=>o.isSelected(e.value)),u=Ot(An,null),d=R(()=>({disabled:e.disabled,value:e.value,domRef:i,order:R(()=>e.order)}));xe(()=>o.registerOption(s,d)),xt(()=>o.unregisterOption(s,r.value)),we(()=>{let O=V(i);O&&u?.value.measureElement(O)}),we(()=>{o.comboboxState.value===0&&r.value&&(o.virtual.value||o.activationTrigger.value!==0&&oe(()=>{var O,p;return(p=(O=V(i))==null?void 0:O.scrollIntoView)==null?void 0:p.call(O,{block:"nearest"})}))});function v(O){O.preventDefault(),O.button===Cn.Left&&(l.value||(o.selectOption(s),vo()||requestAnimationFrame(()=>{var p;return(p=V(o.inputRef))==null?void 0:p.focus({preventScroll:!0})}),o.mode.value===0&&o.closeCombobox()))}function y(){var O;if(e.disabled||(O=o.virtual.value)!=null&&O.disabled(e.value))return o.goToOption(H.Nothing);let p=o.calculateIndex(e.value);o.goToOption(H.Specific,p)}let b=kn();function S(O){b.update(O)}function w(O){var p;if(!b.wasMoved(O)||e.disabled||(p=o.virtual.value)!=null&&p.disabled(e.value)||r.value)return;let h=o.calculateIndex(e.value);o.goToOption(H.Specific,h,0)}function T(O){var p;b.wasMoved(O)&&(e.disabled||(p=o.virtual.value)!=null&&p.disabled(e.value)||r.value&&(o.optionsPropsRef.value.hold||o.goToOption(H.Nothing)))}return()=>{let{disabled:O}=e,p={active:r.value,selected:c.value,disabled:O},h={id:s,ref:i,role:"option",tabIndex:O===!0?void 0:-1,"aria-disabled":O===!0?!0:void 0,"aria-selected":c.value,disabled:void 0,onMousedown:v,onFocus:y,onPointerenter:S,onMouseenter:S,onPointermove:w,onMousemove:w,onPointerleave:T,onMouseleave:T},f=st(e,["order","value"]);return Ce({ourProps:h,theirProps:f,slot:p,attrs:t,slots:n,name:"ComboboxOption"})}}}),Gt=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function Zt(e){var n,t;let a=(n=e.innerText)!=null?n:"",o=e.cloneNode(!0);if(!(o instanceof HTMLElement))return a;let s=!1;for(let l of o.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))l.remove(),s=!0;let i=s?(t=o.innerText)!=null?t:"":a;return Gt.test(i)&&(i=i.replace(Gt,"")),i}function na(e){let n=e.getAttribute("aria-label");if(typeof n=="string")return n.trim();let t=e.getAttribute("aria-labelledby");if(t){let a=t.split(" ").map(o=>{let s=document.getElementById(o);if(s){let i=s.getAttribute("aria-label");return typeof i=="string"?i.trim():Zt(s).trim()}return null}).filter(Boolean);if(a.length>0)return a.join(", ")}return Zt(e).trim()}function oa(e){let n=P(""),t=P("");return()=>{let a=V(e);if(!a)return"";let o=a.innerText;if(n.value===o)return t.value;let s=na(a).trim().toLowerCase();return n.value=o,t.value=s,s}}function aa(e,n){return e===n}var ia=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(ia||{}),la=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(la||{}),sa=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(sa||{});function ra(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let In=Symbol("ListboxContext");function rt(e){let n=Ot(In,null);if(n===null){let t=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,rt),t}return n}let ua=ue({name:"Listbox",emits:{"update:modelValue":e=>!0},props:{as:{type:[Object,String],default:"template"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>aa},horizontal:{type:[Boolean],default:!1},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},multiple:{type:[Boolean],default:!1}},inheritAttrs:!1,setup(e,{slots:n,attrs:t,emit:a}){let o=P(1),s=P(null),i=P(null),l=P(null),r=P([]),c=P(""),u=P(null),d=P(1);function v(p=h=>h){let h=u.value!==null?r.value[u.value]:null,f=bn(p(r.value.slice()),C=>V(C.dataRef.domRef)),x=h?f.indexOf(h):null;return x===-1&&(x=null),{options:f,activeOptionIndex:x}}let y=R(()=>e.multiple?1:0),[b,S]=Sn(R(()=>e.modelValue),p=>a("update:modelValue",p),R(()=>e.defaultValue)),w=R(()=>b.value===void 0?ie(y.value,{1:[],0:void 0}):b.value),T={listboxState:o,value:w,mode:y,compare(p,h){if(typeof e.by=="string"){let f=e.by;return p?.[f]===h?.[f]}return e.by(p,h)},orientation:R(()=>e.horizontal?"horizontal":"vertical"),labelRef:s,buttonRef:i,optionsRef:l,disabled:R(()=>e.disabled),options:r,searchQuery:c,activeOptionIndex:u,activationTrigger:d,closeListbox(){e.disabled||o.value!==1&&(o.value=1,u.value=null)},openListbox(){e.disabled||o.value!==0&&(o.value=0)},goToOption(p,h,f){if(e.disabled||o.value===1)return;let x=v(),C=gt(p===H.Specific?{focus:H.Specific,id:h}:{focus:p},{resolveItems:()=>x.options,resolveActiveIndex:()=>x.activeOptionIndex,resolveId:m=>m.id,resolveDisabled:m=>m.dataRef.disabled});c.value="",u.value=C,d.value=f??1,r.value=x.options},search(p){if(e.disabled||o.value===1)return;let h=c.value!==""?0:1;c.value+=p.toLowerCase();let f=(u.value!==null?r.value.slice(u.value+h).concat(r.value.slice(0,u.value+h)):r.value).find(C=>C.dataRef.textValue.startsWith(c.value)&&!C.dataRef.disabled),x=f?r.value.indexOf(f):-1;x===-1||x===u.value||(u.value=x,d.value=1)},clearSearch(){e.disabled||o.value!==1&&c.value!==""&&(c.value="")},registerOption(p,h){let f=v(x=>[...x,{id:p,dataRef:h}]);r.value=f.options,u.value=f.activeOptionIndex},unregisterOption(p){let h=v(f=>{let x=f.findIndex(C=>C.id===p);return x!==-1&&f.splice(x,1),f});r.value=h.options,u.value=h.activeOptionIndex,d.value=1},theirOnChange(p){e.disabled||S(p)},select(p){e.disabled||S(ie(y.value,{0:()=>p,1:()=>{let h=G(T.value.value).slice(),f=G(p),x=h.findIndex(C=>T.compare(f,G(C)));return x===-1?h.push(f):h.splice(x,1),h}}))}};pn([i,l],(p,h)=>{var f;T.closeListbox(),po(h,ho.Loose)||(p.preventDefault(),(f=V(i))==null||f.focus())},R(()=>o.value===0)),lt(In,T),yn(R(()=>ie(o.value,{0:Ee.Open,1:Ee.Closed})));let O=R(()=>{var p;return(p=V(i))==null?void 0:p.closest("form")});return xe(()=>{he([O],()=>{if(!O.value||e.defaultValue===void 0)return;function p(){T.theirOnChange(e.defaultValue)}return O.value.addEventListener("reset",p),()=>{var h;(h=O.value)==null||h.removeEventListener("reset",p)}},{immediate:!0})}),()=>{let{name:p,modelValue:h,disabled:f,form:x,...C}=e,m={open:o.value===0,disabled:f,value:w.value};return Pe(Ye,[...p!=null&&w.value!=null?St({[p]:w.value}).map(([E,g])=>Pe(hn,mn({features:gn.Hidden,key:E,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:x,disabled:f,name:E,value:g}))):[],Ce({ourProps:{},theirProps:{...t,...st(C,["defaultValue","onUpdate:modelValue","horizontal","multiple","by"])},slot:m,slots:n,attrs:t,name:"Listbox"})])}}}),ca=ue({name:"ListboxButton",props:{as:{type:[Object,String],default:"button"},id:{type:String,default:null}},setup(e,{attrs:n,slots:t,expose:a}){var o;let s=(o=e.id)!=null?o:`headlessui-listbox-button-${Ve()}`,i=rt("ListboxButton");a({el:i.buttonRef,$el:i.buttonRef});function l(d){switch(d.key){case W.Space:case W.Enter:case W.ArrowDown:d.preventDefault(),i.openListbox(),oe(()=>{var v;(v=V(i.optionsRef))==null||v.focus({preventScroll:!0}),i.value.value||i.goToOption(H.First)});break;case W.ArrowUp:d.preventDefault(),i.openListbox(),oe(()=>{var v;(v=V(i.optionsRef))==null||v.focus({preventScroll:!0}),i.value.value||i.goToOption(H.Last)});break}}function r(d){d.key===W.Space&&d.preventDefault()}function c(d){i.disabled.value||(i.listboxState.value===0?(i.closeListbox(),oe(()=>{var v;return(v=V(i.buttonRef))==null?void 0:v.focus({preventScroll:!0})})):(d.preventDefault(),i.openListbox(),ra(()=>{var v;return(v=V(i.optionsRef))==null?void 0:v.focus({preventScroll:!0})})))}let u=wn(R(()=>({as:e.as,type:n.type})),i.buttonRef);return()=>{var d,v;let y={open:i.listboxState.value===0,disabled:i.disabled.value,value:i.value.value},{...b}=e,S={ref:i.buttonRef,id:s,type:u.value,"aria-haspopup":"listbox","aria-controls":(d=V(i.optionsRef))==null?void 0:d.id,"aria-expanded":i.listboxState.value===0,"aria-labelledby":i.labelRef.value?[(v=V(i.labelRef))==null?void 0:v.id,s].join(" "):void 0,disabled:i.disabled.value===!0?!0:void 0,onKeydown:l,onKeyup:r,onClick:c};return Ce({ourProps:S,theirProps:b,slot:y,attrs:n,slots:t,name:"ListboxButton"})}}}),da=ue({name:"ListboxOptions",props:{as:{type:[Object,String],default:"ul"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(e,{attrs:n,slots:t,expose:a}){var o;let s=(o=e.id)!=null?o:`headlessui-listbox-options-${Ve()}`,i=rt("ListboxOptions"),l=P(null);a({el:i.optionsRef,$el:i.optionsRef});function r(d){switch(l.value&&clearTimeout(l.value),d.key){case W.Space:if(i.searchQuery.value!=="")return d.preventDefault(),d.stopPropagation(),i.search(d.key);case W.Enter:if(d.preventDefault(),d.stopPropagation(),i.activeOptionIndex.value!==null){let v=i.options.value[i.activeOptionIndex.value];i.select(v.dataRef.value)}i.mode.value===0&&(i.closeListbox(),oe(()=>{var v;return(v=V(i.buttonRef))==null?void 0:v.focus({preventScroll:!0})}));break;case ie(i.orientation.value,{vertical:W.ArrowDown,horizontal:W.ArrowRight}):return d.preventDefault(),d.stopPropagation(),i.goToOption(H.Next);case ie(i.orientation.value,{vertical:W.ArrowUp,horizontal:W.ArrowLeft}):return d.preventDefault(),d.stopPropagation(),i.goToOption(H.Previous);case W.Home:case W.PageUp:return d.preventDefault(),d.stopPropagation(),i.goToOption(H.First);case W.End:case W.PageDown:return d.preventDefault(),d.stopPropagation(),i.goToOption(H.Last);case W.Escape:d.preventDefault(),d.stopPropagation(),i.closeListbox(),oe(()=>{var v;return(v=V(i.buttonRef))==null?void 0:v.focus({preventScroll:!0})});break;case W.Tab:d.preventDefault(),d.stopPropagation();break;default:d.key.length===1&&(i.search(d.key),l.value=setTimeout(()=>i.clearSearch(),350));break}}let c=vn(),u=R(()=>c!==null?(c.value&Ee.Open)===Ee.Open:i.listboxState.value===0);return()=>{var d,v;let y={open:i.listboxState.value===0},{...b}=e,S={"aria-activedescendant":i.activeOptionIndex.value===null||(d=i.options.value[i.activeOptionIndex.value])==null?void 0:d.id,"aria-multiselectable":i.mode.value===1?!0:void 0,"aria-labelledby":(v=V(i.buttonRef))==null?void 0:v.id,"aria-orientation":i.orientation.value,id:s,onKeydown:r,role:"listbox",tabIndex:0,ref:i.optionsRef};return Ce({ourProps:S,theirProps:b,slot:y,attrs:n,slots:t,features:$e.RenderStrategy|$e.Static,visible:u.value,name:"ListboxOptions"})}}}),fa=ue({name:"ListboxOption",props:{as:{type:[Object,String],default:"li"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(e,{slots:n,attrs:t,expose:a}){var o;let s=(o=e.id)!=null?o:`headlessui-listbox-option-${Ve()}`,i=rt("ListboxOption"),l=P(null);a({el:l,$el:l});let r=R(()=>i.activeOptionIndex.value!==null?i.options.value[i.activeOptionIndex.value].id===s:!1),c=R(()=>ie(i.mode.value,{0:()=>i.compare(G(i.value.value),G(e.value)),1:()=>G(i.value.value).some(p=>i.compare(G(p),G(e.value)))})),u=R(()=>ie(i.mode.value,{1:()=>{var p;let h=G(i.value.value);return((p=i.options.value.find(f=>h.some(x=>i.compare(G(x),G(f.dataRef.value)))))==null?void 0:p.id)===s},0:()=>c.value})),d=oa(l),v=R(()=>({disabled:e.disabled,value:e.value,get textValue(){return d()},domRef:l}));xe(()=>i.registerOption(s,v)),xt(()=>i.unregisterOption(s)),xe(()=>{he([i.listboxState,c],()=>{i.listboxState.value===0&&c.value&&ie(i.mode.value,{1:()=>{u.value&&i.goToOption(H.Specific,s)},0:()=>{i.goToOption(H.Specific,s)}})},{immediate:!0})}),we(()=>{i.listboxState.value===0&&r.value&&i.activationTrigger.value!==0&&oe(()=>{var p,h;return(h=(p=V(l))==null?void 0:p.scrollIntoView)==null?void 0:h.call(p,{block:"nearest"})})});function y(p){if(e.disabled)return p.preventDefault();i.select(e.value),i.mode.value===0&&(i.closeListbox(),oe(()=>{var h;return(h=V(i.buttonRef))==null?void 0:h.focus({preventScroll:!0})}))}function b(){if(e.disabled)return i.goToOption(H.Nothing);i.goToOption(H.Specific,s)}let S=kn();function w(p){S.update(p)}function T(p){S.wasMoved(p)&&(e.disabled||r.value||i.goToOption(H.Specific,s,0))}function O(p){S.wasMoved(p)&&(e.disabled||r.value&&i.goToOption(H.Nothing))}return()=>{let{disabled:p}=e,h={active:r.value,selected:c.value,disabled:p},{value:f,disabled:x,...C}=e,m={id:s,ref:l,role:"option",tabIndex:p===!0?void 0:-1,"aria-disabled":p===!0?!0:void 0,"aria-selected":c.value,disabled:void 0,onClick:y,onFocus:b,onPointerenter:w,onMouseenter:w,onPointermove:T,onMousemove:T,onPointerleave:O,onMouseleave:O};return Ce({ourProps:m,theirProps:C,slot:h,attrs:t,slots:n,name:"ListboxOption"})}}});function re(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var n=e.ownerDocument;return n&&n.defaultView||window}return e}function De(e){var n=re(e).Element;return e instanceof n||e instanceof Element}function ve(e){var n=re(e).HTMLElement;return e instanceof n||e instanceof HTMLElement}function wt(e){if(typeof ShadowRoot>"u")return!1;var n=re(e).ShadowRoot;return e instanceof n||e instanceof ShadowRoot}var Me=Math.max,it=Math.min,ze=Math.round;function bt(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(n){return n.brand+"/"+n.version}).join(" "):navigator.userAgent}function Mn(){return!/^((?!chrome|android).)*safari/i.test(bt())}function Fe(e,n,t){n===void 0&&(n=!1),t===void 0&&(t=!1);var a=e.getBoundingClientRect(),o=1,s=1;n&&ve(e)&&(o=e.offsetWidth>0&&ze(a.width)/e.offsetWidth||1,s=e.offsetHeight>0&&ze(a.height)/e.offsetHeight||1);var i=De(e)?re(e):window,l=i.visualViewport,r=!Mn()&&t,c=(a.left+(r&&l?l.offsetLeft:0))/o,u=(a.top+(r&&l?l.offsetTop:0))/s,d=a.width/o,v=a.height/s;return{width:d,height:v,top:u,right:c+d,bottom:u+v,left:c,x:c,y:u}}function kt(e){var n=re(e),t=n.pageXOffset,a=n.pageYOffset;return{scrollLeft:t,scrollTop:a}}function va(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function pa(e){return e===re(e)||!ve(e)?kt(e):va(e)}function Oe(e){return e?(e.nodeName||"").toLowerCase():null}function Re(e){return((De(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ct(e){return Fe(Re(e)).left+kt(e).scrollLeft}function ke(e){return re(e).getComputedStyle(e)}function Tt(e){var n=ke(e),t=n.overflow,a=n.overflowX,o=n.overflowY;return/auto|scroll|overlay|hidden/.test(t+o+a)}function ha(e){var n=e.getBoundingClientRect(),t=ze(n.width)/e.offsetWidth||1,a=ze(n.height)/e.offsetHeight||1;return t!==1||a!==1}function ma(e,n,t){t===void 0&&(t=!1);var a=ve(n),o=ve(n)&&ha(n),s=Re(n),i=Fe(e,o,t),l={scrollLeft:0,scrollTop:0},r={x:0,y:0};return(a||!a&&!t)&&((Oe(n)!=="body"||Tt(s))&&(l=pa(n)),ve(n)?(r=Fe(n,!0),r.x+=n.clientLeft,r.y+=n.clientTop):s&&(r.x=Ct(s))),{x:i.left+l.scrollLeft-r.x,y:i.top+l.scrollTop-r.y,width:i.width,height:i.height}}function Et(e){var n=Fe(e),t=e.offsetWidth,a=e.offsetHeight;return Math.abs(n.width-t)<=1&&(t=n.width),Math.abs(n.height-a)<=1&&(a=n.height),{x:e.offsetLeft,y:e.offsetTop,width:t,height:a}}function ut(e){return Oe(e)==="html"?e:e.assignedSlot||e.parentNode||(wt(e)?e.host:null)||Re(e)}function Pn(e){return["html","body","#document"].indexOf(Oe(e))>=0?e.ownerDocument.body:ve(e)&&Tt(e)?e:Pn(ut(e))}function Je(e,n){var t;n===void 0&&(n=[]);var a=Pn(e),o=a===((t=e.ownerDocument)==null?void 0:t.body),s=re(a),i=o?[s].concat(s.visualViewport||[],Tt(a)?a:[]):a,l=n.concat(i);return o?l:l.concat(Je(ut(i)))}function ga(e){return["table","td","th"].indexOf(Oe(e))>=0}function en(e){return!ve(e)||ke(e).position==="fixed"?null:e.offsetParent}function ba(e){var n=/firefox/i.test(bt()),t=/Trident/i.test(bt());if(t&&ve(e)){var a=ke(e);if(a.position==="fixed")return null}var o=ut(e);for(wt(o)&&(o=o.host);ve(o)&&["html","body"].indexOf(Oe(o))<0;){var s=ke(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||n&&s.willChange==="filter"||n&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function Ge(e){for(var n=re(e),t=en(e);t&&ga(t)&&ke(t).position==="static";)t=en(t);return t&&(Oe(t)==="html"||Oe(t)==="body"&&ke(t).position==="static")?n:t||ba(e)||n}var le="top",me="bottom",ge="right",se="left",Rt="auto",Ze=[le,me,ge,se],Ne="start",Qe="end",ya="clippingParents",Dn="viewport",qe="popper",xa="reference",tn=Ze.reduce(function(e,n){return e.concat([n+"-"+Ne,n+"-"+Qe])},[]),Vn=[].concat(Ze,[Rt]).reduce(function(e,n){return e.concat([n,n+"-"+Ne,n+"-"+Qe])},[]),Oa="beforeRead",Sa="read",wa="afterRead",ka="beforeMain",Ca="main",Ta="afterMain",Ea="beforeWrite",Ra="write",Aa="afterWrite",Ia=[Oa,Sa,wa,ka,Ca,Ta,Ea,Ra,Aa];function Ma(e){var n=new Map,t=new Set,a=[];e.forEach(function(s){n.set(s.name,s)});function o(s){t.add(s.name);var i=[].concat(s.requires||[],s.requiresIfExists||[]);i.forEach(function(l){if(!t.has(l)){var r=n.get(l);r&&o(r)}}),a.push(s)}return e.forEach(function(s){t.has(s.name)||o(s)}),a}function Pa(e){var n=Ma(e);return Ia.reduce(function(t,a){return t.concat(n.filter(function(o){return o.phase===a}))},[])}function Da(e){var n;return function(){return n||(n=new Promise(function(t){Promise.resolve().then(function(){n=void 0,t(e())})})),n}}function Va(e){var n=e.reduce(function(t,a){var o=t[a.name];return t[a.name]=o?Object.assign({},o,a,{options:Object.assign({},o.options,a.options),data:Object.assign({},o.data,a.data)}):a,t},{});return Object.keys(n).map(function(t){return n[t]})}function La(e,n){var t=re(e),a=Re(e),o=t.visualViewport,s=a.clientWidth,i=a.clientHeight,l=0,r=0;if(o){s=o.width,i=o.height;var c=Mn();(c||!c&&n==="fixed")&&(l=o.offsetLeft,r=o.offsetTop)}return{width:s,height:i,x:l+Ct(e),y:r}}function $a(e){var n,t=Re(e),a=kt(e),o=(n=e.ownerDocument)==null?void 0:n.body,s=Me(t.scrollWidth,t.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),i=Me(t.scrollHeight,t.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),l=-a.scrollLeft+Ct(e),r=-a.scrollTop;return ke(o||t).direction==="rtl"&&(l+=Me(t.clientWidth,o?o.clientWidth:0)-s),{width:s,height:i,x:l,y:r}}function Ln(e,n){var t=n.getRootNode&&n.getRootNode();if(e.contains(n))return!0;if(t&&wt(t)){var a=n;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function yt(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function za(e,n){var t=Fe(e,!1,n==="fixed");return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function nn(e,n,t){return n===Dn?yt(La(e,t)):De(n)?za(n,t):yt($a(Re(e)))}function Fa(e){var n=Je(ut(e)),t=["absolute","fixed"].indexOf(ke(e).position)>=0,a=t&&ve(e)?Ge(e):e;return De(a)?n.filter(function(o){return De(o)&&Ln(o,a)&&Oe(o)!=="body"}):[]}function Na(e,n,t,a){var o=n==="clippingParents"?Fa(e):[].concat(n),s=[].concat(o,[t]),i=s[0],l=s.reduce(function(r,c){var u=nn(e,c,a);return r.top=Me(u.top,r.top),r.right=it(u.right,r.right),r.bottom=it(u.bottom,r.bottom),r.left=Me(u.left,r.left),r},nn(e,i,a));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function ye(e){return e.split("-")[0]}function Be(e){return e.split("-")[1]}function At(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $n(e){var n=e.reference,t=e.element,a=e.placement,o=a?ye(a):null,s=a?Be(a):null,i=n.x+n.width/2-t.width/2,l=n.y+n.height/2-t.height/2,r;switch(o){case le:r={x:i,y:n.y-t.height};break;case me:r={x:i,y:n.y+n.height};break;case ge:r={x:n.x+n.width,y:l};break;case se:r={x:n.x-t.width,y:l};break;default:r={x:n.x,y:n.y}}var c=o?At(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(s){case Ne:r[c]=r[c]-(n[u]/2-t[u]/2);break;case Qe:r[c]=r[c]+(n[u]/2-t[u]/2);break}}return r}function zn(){return{top:0,right:0,bottom:0,left:0}}function Fn(e){return Object.assign({},zn(),e)}function Nn(e,n){return n.reduce(function(t,a){return t[a]=e,t},{})}function It(e,n){n===void 0&&(n={});var t=n,a=t.placement,o=a===void 0?e.placement:a,s=t.strategy,i=s===void 0?e.strategy:s,l=t.boundary,r=l===void 0?ya:l,c=t.rootBoundary,u=c===void 0?Dn:c,d=t.elementContext,v=d===void 0?qe:d,y=t.altBoundary,b=y===void 0?!1:y,S=t.padding,w=S===void 0?0:S,T=Fn(typeof w!="number"?w:Nn(w,Ze)),O=v===qe?xa:qe,p=e.rects.popper,h=e.elements[b?O:v],f=Na(De(h)?h:h.contextElement||Re(e.elements.popper),r,u,i),x=Fe(e.elements.reference),C=$n({reference:x,element:p,placement:o}),m=yt(Object.assign({},p,C)),E=v===qe?m:x,g={top:f.top-E.top+T.top,bottom:E.bottom-f.bottom+T.bottom,left:f.left-E.left+T.left,right:E.right-f.right+T.right},k=e.modifiersData.offset;if(v===qe&&k){var I=k[o];Object.keys(g).forEach(function(M){var z=[ge,me].indexOf(M)>=0?1:-1,N=[le,me].indexOf(M)>=0?"y":"x";g[M]+=I[N]*z})}return g}var on={placement:"bottom",modifiers:[],strategy:"absolute"};function an(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return!n.some(function(a){return!(a&&typeof a.getBoundingClientRect=="function")})}function Ba(e){e===void 0&&(e={});var n=e,t=n.defaultModifiers,a=t===void 0?[]:t,o=n.defaultOptions,s=o===void 0?on:o;return function(l,r,c){c===void 0&&(c=s);var u={placement:"bottom",orderedModifiers:[],options:Object.assign({},on,s),modifiersData:{},elements:{reference:l,popper:r},attributes:{},styles:{}},d=[],v=!1,y={state:u,setOptions:function(T){var O=typeof T=="function"?T(u.options):T;S(),u.options=Object.assign({},s,u.options,O),u.scrollParents={reference:De(l)?Je(l):l.contextElement?Je(l.contextElement):[],popper:Je(r)};var p=Pa(Va([].concat(a,u.options.modifiers)));return u.orderedModifiers=p.filter(function(h){return h.enabled}),b(),y.update()},forceUpdate:function(){if(!v){var T=u.elements,O=T.reference,p=T.popper;if(an(O,p)){u.rects={reference:ma(O,Ge(p),u.options.strategy==="fixed"),popper:Et(p)},u.reset=!1,u.placement=u.options.placement,u.orderedModifiers.forEach(function(g){return u.modifiersData[g.name]=Object.assign({},g.data)});for(var h=0;h<u.orderedModifiers.length;h++){if(u.reset===!0){u.reset=!1,h=-1;continue}var f=u.orderedModifiers[h],x=f.fn,C=f.options,m=C===void 0?{}:C,E=f.name;typeof x=="function"&&(u=x({state:u,options:m,name:E,instance:y})||u)}}}},update:Da(function(){return new Promise(function(w){y.forceUpdate(),w(u)})}),destroy:function(){S(),v=!0}};if(!an(l,r))return y;y.setOptions(c).then(function(w){!v&&c.onFirstUpdate&&c.onFirstUpdate(w)});function b(){u.orderedModifiers.forEach(function(w){var T=w.name,O=w.options,p=O===void 0?{}:O,h=w.effect;if(typeof h=="function"){var f=h({state:u,name:T,instance:y,options:p}),x=function(){};d.push(f||x)}})}function S(){d.forEach(function(w){return w()}),d=[]}return y}}var tt={passive:!0};function ja(e){var n=e.state,t=e.instance,a=e.options,o=a.scroll,s=o===void 0?!0:o,i=a.resize,l=i===void 0?!0:i,r=re(n.elements.popper),c=[].concat(n.scrollParents.reference,n.scrollParents.popper);return s&&c.forEach(function(u){u.addEventListener("scroll",t.update,tt)}),l&&r.addEventListener("resize",t.update,tt),function(){s&&c.forEach(function(u){u.removeEventListener("scroll",t.update,tt)}),l&&r.removeEventListener("resize",t.update,tt)}}const Bn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ja,data:{}};function Ha(e){var n=e.state,t=e.name;n.modifiersData[t]=$n({reference:n.rects.reference,element:n.rects.popper,placement:n.placement})}const _a={name:"popperOffsets",enabled:!0,phase:"read",fn:Ha,data:{}};var Wa={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ua(e,n){var t=e.x,a=e.y,o=n.devicePixelRatio||1;return{x:ze(t*o)/o||0,y:ze(a*o)/o||0}}function ln(e){var n,t=e.popper,a=e.popperRect,o=e.placement,s=e.variation,i=e.offsets,l=e.position,r=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,v=i.x,y=v===void 0?0:v,b=i.y,S=b===void 0?0:b,w=typeof u=="function"?u({x:y,y:S}):{x:y,y:S};y=w.x,S=w.y;var T=i.hasOwnProperty("x"),O=i.hasOwnProperty("y"),p=se,h=le,f=window;if(c){var x=Ge(t),C="clientHeight",m="clientWidth";if(x===re(t)&&(x=Re(t),ke(x).position!=="static"&&l==="absolute"&&(C="scrollHeight",m="scrollWidth")),x=x,o===le||(o===se||o===ge)&&s===Qe){h=me;var E=d&&x===f&&f.visualViewport?f.visualViewport.height:x[C];S-=E-a.height,S*=r?1:-1}if(o===se||(o===le||o===me)&&s===Qe){p=ge;var g=d&&x===f&&f.visualViewport?f.visualViewport.width:x[m];y-=g-a.width,y*=r?1:-1}}var k=Object.assign({position:l},c&&Wa),I=u===!0?Ua({x:y,y:S},re(t)):{x:y,y:S};if(y=I.x,S=I.y,r){var M;return Object.assign({},k,(M={},M[h]=O?"0":"",M[p]=T?"0":"",M.transform=(f.devicePixelRatio||1)<=1?"translate("+y+"px, "+S+"px)":"translate3d("+y+"px, "+S+"px, 0)",M))}return Object.assign({},k,(n={},n[h]=O?S+"px":"",n[p]=T?y+"px":"",n.transform="",n))}function qa(e){var n=e.state,t=e.options,a=t.gpuAcceleration,o=a===void 0?!0:a,s=t.adaptive,i=s===void 0?!0:s,l=t.roundOffsets,r=l===void 0?!0:l,c={placement:ye(n.placement),variation:Be(n.placement),popper:n.elements.popper,popperRect:n.rects.popper,gpuAcceleration:o,isFixed:n.options.strategy==="fixed"};n.modifiersData.popperOffsets!=null&&(n.styles.popper=Object.assign({},n.styles.popper,ln(Object.assign({},c,{offsets:n.modifiersData.popperOffsets,position:n.options.strategy,adaptive:i,roundOffsets:r})))),n.modifiersData.arrow!=null&&(n.styles.arrow=Object.assign({},n.styles.arrow,ln(Object.assign({},c,{offsets:n.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:r})))),n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-placement":n.placement})}const jn={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:qa,data:{}};function Ka(e){var n=e.state;Object.keys(n.elements).forEach(function(t){var a=n.styles[t]||{},o=n.attributes[t]||{},s=n.elements[t];!ve(s)||!Oe(s)||(Object.assign(s.style,a),Object.keys(o).forEach(function(i){var l=o[i];l===!1?s.removeAttribute(i):s.setAttribute(i,l===!0?"":l)}))})}function Ja(e){var n=e.state,t={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(n.elements.popper.style,t.popper),n.styles=t,n.elements.arrow&&Object.assign(n.elements.arrow.style,t.arrow),function(){Object.keys(n.elements).forEach(function(a){var o=n.elements[a],s=n.attributes[a]||{},i=Object.keys(n.styles.hasOwnProperty(a)?n.styles[a]:t[a]),l=i.reduce(function(r,c){return r[c]="",r},{});!ve(o)||!Oe(o)||(Object.assign(o.style,l),Object.keys(s).forEach(function(r){o.removeAttribute(r)}))})}}const Xa={name:"applyStyles",enabled:!0,phase:"write",fn:Ka,effect:Ja,requires:["computeStyles"]};var Ya=[Bn,_a,jn,Xa],Qa={left:"right",right:"left",bottom:"top",top:"bottom"};function nt(e){return e.replace(/left|right|bottom|top/g,function(n){return Qa[n]})}var Ga={start:"end",end:"start"};function sn(e){return e.replace(/start|end/g,function(n){return Ga[n]})}function Za(e,n){n===void 0&&(n={});var t=n,a=t.placement,o=t.boundary,s=t.rootBoundary,i=t.padding,l=t.flipVariations,r=t.allowedAutoPlacements,c=r===void 0?Vn:r,u=Be(a),d=u?l?tn:tn.filter(function(b){return Be(b)===u}):Ze,v=d.filter(function(b){return c.indexOf(b)>=0});v.length===0&&(v=d);var y=v.reduce(function(b,S){return b[S]=It(e,{placement:S,boundary:o,rootBoundary:s,padding:i})[ye(S)],b},{});return Object.keys(y).sort(function(b,S){return y[b]-y[S]})}function ei(e){if(ye(e)===Rt)return[];var n=nt(e);return[sn(e),n,sn(n)]}function ti(e){var n=e.state,t=e.options,a=e.name;if(!n.modifiersData[a]._skip){for(var o=t.mainAxis,s=o===void 0?!0:o,i=t.altAxis,l=i===void 0?!0:i,r=t.fallbackPlacements,c=t.padding,u=t.boundary,d=t.rootBoundary,v=t.altBoundary,y=t.flipVariations,b=y===void 0?!0:y,S=t.allowedAutoPlacements,w=n.options.placement,T=ye(w),O=T===w,p=r||(O||!b?[nt(w)]:ei(w)),h=[w].concat(p).reduce(function(ee,ce){return ee.concat(ye(ce)===Rt?Za(n,{placement:ce,boundary:u,rootBoundary:d,padding:c,flipVariations:b,allowedAutoPlacements:S}):ce)},[]),f=n.rects.reference,x=n.rects.popper,C=new Map,m=!0,E=h[0],g=0;g<h.length;g++){var k=h[g],I=ye(k),M=Be(k)===Ne,z=[le,me].indexOf(I)>=0,N=z?"width":"height",_=It(n,{placement:k,boundary:u,rootBoundary:d,altBoundary:v,padding:c}),U=z?M?ge:se:M?me:le;f[N]>x[N]&&(U=nt(U));var ae=nt(U),Z=[];if(s&&Z.push(_[I]<=0),l&&Z.push(_[U]<=0,_[ae]<=0),Z.every(function(ee){return ee})){E=k,m=!1;break}C.set(k,Z)}if(m)for(var D=b?3:1,A=function(ce){var L=h.find(function(X){var $=C.get(X);if($)return $.slice(0,ce).every(function(Y){return Y})});if(L)return E=L,"break"},q=D;q>0;q--){var te=A(q);if(te==="break")break}n.placement!==E&&(n.modifiersData[a]._skip=!0,n.placement=E,n.reset=!0)}}const ni={name:"flip",enabled:!0,phase:"main",fn:ti,requiresIfExists:["offset"],data:{_skip:!1}};function oi(e,n,t){var a=ye(e),o=[se,le].indexOf(a)>=0?-1:1,s=typeof t=="function"?t(Object.assign({},n,{placement:e})):t,i=s[0],l=s[1];return i=i||0,l=(l||0)*o,[se,ge].indexOf(a)>=0?{x:l,y:i}:{x:i,y:l}}function ai(e){var n=e.state,t=e.options,a=e.name,o=t.offset,s=o===void 0?[0,0]:o,i=Vn.reduce(function(u,d){return u[d]=oi(d,n.rects,s),u},{}),l=i[n.placement],r=l.x,c=l.y;n.modifiersData.popperOffsets!=null&&(n.modifiersData.popperOffsets.x+=r,n.modifiersData.popperOffsets.y+=c),n.modifiersData[a]=i}const ii={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:ai};function li(e){return e==="x"?"y":"x"}function Xe(e,n,t){return Me(e,it(n,t))}function si(e,n,t){var a=Xe(e,n,t);return a>t?t:a}function ri(e){var n=e.state,t=e.options,a=e.name,o=t.mainAxis,s=o===void 0?!0:o,i=t.altAxis,l=i===void 0?!1:i,r=t.boundary,c=t.rootBoundary,u=t.altBoundary,d=t.padding,v=t.tether,y=v===void 0?!0:v,b=t.tetherOffset,S=b===void 0?0:b,w=It(n,{boundary:r,rootBoundary:c,padding:d,altBoundary:u}),T=ye(n.placement),O=Be(n.placement),p=!O,h=At(T),f=li(h),x=n.modifiersData.popperOffsets,C=n.rects.reference,m=n.rects.popper,E=typeof S=="function"?S(Object.assign({},n.rects,{placement:n.placement})):S,g=typeof E=="number"?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),k=n.modifiersData.offset?n.modifiersData.offset[n.placement]:null,I={x:0,y:0};if(x){if(s){var M,z=h==="y"?le:se,N=h==="y"?me:ge,_=h==="y"?"height":"width",U=x[h],ae=U+w[z],Z=U-w[N],D=y?-m[_]/2:0,A=O===Ne?C[_]:m[_],q=O===Ne?-m[_]:-C[_],te=n.elements.arrow,ee=y&&te?Et(te):{width:0,height:0},ce=n.modifiersData["arrow#persistent"]?n.modifiersData["arrow#persistent"].padding:zn(),L=ce[z],X=ce[N],$=Xe(0,C[_],ee[_]),Y=p?C[_]/2-D-$-L-g.mainAxis:A-$-L-g.mainAxis,ct=p?-C[_]/2+D+$+X+g.mainAxis:q+$+X+g.mainAxis,He=n.elements.arrow&&Ge(n.elements.arrow),Hn=He?h==="y"?He.clientTop||0:He.clientLeft||0:0,Mt=(M=k?.[h])!=null?M:0,_n=U+Y-Mt-Hn,Wn=U+ct-Mt,Pt=Xe(y?it(ae,_n):ae,U,y?Me(Z,Wn):Z);x[h]=Pt,I[h]=Pt-U}if(l){var Dt,Un=h==="x"?le:se,qn=h==="x"?me:ge,Ae=x[f],et=f==="y"?"height":"width",Vt=Ae+w[Un],Lt=Ae-w[qn],dt=[le,se].indexOf(T)!==-1,$t=(Dt=k?.[f])!=null?Dt:0,zt=dt?Vt:Ae-C[et]-m[et]-$t+g.altAxis,Ft=dt?Ae+C[et]+m[et]-$t-g.altAxis:Lt,Nt=y&&dt?si(zt,Ae,Ft):Xe(y?zt:Vt,Ae,y?Ft:Lt);x[f]=Nt,I[f]=Nt-Ae}n.modifiersData[a]=I}}const ui={name:"preventOverflow",enabled:!0,phase:"main",fn:ri,requiresIfExists:["offset"]};var ci=function(n,t){return n=typeof n=="function"?n(Object.assign({},t.rects,{placement:t.placement})):n,Fn(typeof n!="number"?n:Nn(n,Ze))};function di(e){var n,t=e.state,a=e.name,o=e.options,s=t.elements.arrow,i=t.modifiersData.popperOffsets,l=ye(t.placement),r=At(l),c=[se,ge].indexOf(l)>=0,u=c?"height":"width";if(!(!s||!i)){var d=ci(o.padding,t),v=Et(s),y=r==="y"?le:se,b=r==="y"?me:ge,S=t.rects.reference[u]+t.rects.reference[r]-i[r]-t.rects.popper[u],w=i[r]-t.rects.reference[r],T=Ge(s),O=T?r==="y"?T.clientHeight||0:T.clientWidth||0:0,p=S/2-w/2,h=d[y],f=O-v[u]-d[b],x=O/2-v[u]/2+p,C=Xe(h,x,f),m=r;t.modifiersData[a]=(n={},n[m]=C,n.centerOffset=C-x,n)}}function fi(e){var n=e.state,t=e.options,a=t.element,o=a===void 0?"[data-popper-arrow]":a;o!=null&&(typeof o=="string"&&(o=n.elements.popper.querySelector(o),!o)||Ln(n.elements.popper,o)&&(n.elements.arrow=o))}const vi={name:"arrow",enabled:!0,phase:"main",fn:di,effect:fi,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},pi=Ba({defaultModifiers:[...Ya,ii,ni,ui,jn,Bn,vi]});function hi({locked:e=!1,overflowPadding:n=8,offsetDistance:t=8,offsetSkid:a=0,gpuAcceleration:o=!0,adaptive:s=!0,scroll:i=!0,resize:l=!0,arrow:r=!1,placement:c,strategy:u},d){const v=P(null),y=P(null),b=P(null);return xe(()=>{we(S=>{if(!y.value||!v.value)return;const w=Ut(y),T=Ut(v);if(!(w instanceof HTMLElement)||!T)return;const O={modifiers:[{name:"flip",enabled:!e},{name:"preventOverflow",options:{padding:n}},{name:"offset",options:{offset:[a,t]}},{name:"computeStyles",options:{adaptive:s,gpuAcceleration:o}},{name:"eventListeners",options:{scroll:i,resize:l}},{name:"arrow",enabled:r}]};c&&(O.placement=c),u&&(O.strategy=u),b.value=pi(T,w,O),S(b.value.destroy)})}),[v,y,b]}const be=un(Ie.ui.strategy,Ie.ui.select,so),Ke=un(Ie.ui.strategy,Ie.ui.selectMenu,ro),mi=ue({components:{HCombobox:Qo,HComboboxButton:Go,HComboboxOptions:ea,HComboboxOption:ta,HComboboxInput:Zo,HListbox:ua,HListboxButton:ca,HListboxOptions:da,HListboxOption:fa,UIcon:cn,UAvatar:dn},inheritAttrs:!1,props:{modelValue:{type:[String,Number,Object,Array,Boolean],default:""},query:{type:String,default:null},by:{type:String,default:void 0},options:{type:Array,default:()=>[]},id:{type:String,default:null},name:{type:String,default:null},required:{type:Boolean,default:!1},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>be.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:()=>be.default.trailingIcon},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},selectedIcon:{type:String,default:()=>Ke.default.selectedIcon},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},searchable:{type:[Boolean,Function],default:!1},searchablePlaceholder:{type:String,default:()=>Ke.default.searchablePlaceholder.label},searchableLazy:{type:Boolean,default:!1},clearSearchOnClose:{type:Boolean,default:()=>Ke.default.clearSearchOnClose},debounce:{type:Number,default:200},creatable:{type:Boolean,default:!1},showCreateOptionWhen:{type:[String,Function],default:()=>Ke.default.showCreateOptionWhen},placeholder:{type:String,default:null},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(e){return Object.keys(be.size).includes(e)}},color:{type:String,default:()=>be.default.color,validator(e){return[...Ie.ui.colors,...Object.keys(be.color)].includes(e)}},variant:{type:String,default:()=>be.default.variant,validator(e){return[...Object.keys(be.variant),...Object.values(be.color).flatMap(n=>Object.keys(n))].includes(e)}},optionAttribute:{type:String,default:"label"},valueAttribute:{type:String,default:null},searchAttributes:{type:Array,default:null},inputTargetForm:{type:String,default:null},popper:{type:Object,default:()=>({})},selectClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})},uiMenu:{type:Object,default:()=>({})}},emits:["update:modelValue","update:query","open","close","change"],setup(e,{emit:n,slots:t}){const{ui:a,attrs:o}=Ht("select",vt(e,"ui"),be,vt(e,"class")),{ui:s}=Ht("selectMenu",vt(e,"uiMenu"),Ke),i=R(()=>eo({},e.popper,s.value.popper)),[l,r]=hi(i.value),c=R(()=>{if(!e.by)return;if(typeof e.by=="function")return e.by;const L=e.by;return L.indexOf(".")>0?($,Y)=>Z($,L)===Z(Y,L):L}),{size:u,rounded:d}=uo({ui:a,props:e}),{emitFormBlur:v,emitFormChange:y,inputId:b,color:S,size:w,name:T}=yo(e,be),O=R(()=>u.value??w.value),p=P(""),h=R({get(){return e.query??p.value},set(L){p.value=L,n("update:query",L)}}),f=R(()=>{function L($,Y){return c.value&&typeof c.value!="function"&&D($)&&D(Y)?_t($[c.value],Y[c.value]):_t($,Y)}function X($){return e.valueAttribute?Z($,e.valueAttribute):$}if(e.multiple){const $=e.modelValue;return!Array.isArray($)||!$.length?[]:U.value.filter(Y=>{const ct=X(Y);return $.some(He=>L(He,ct))})}return U.value.find($=>{const Y=X($);return L(Y,G(e.modelValue))})??e.modelValue}),x=R(()=>e.modelValue?Array.isArray(e.modelValue)&&e.modelValue.length?`${e.modelValue.length} selected`:["string","number"].includes(typeof e.modelValue)?e.valueAttribute?Z(f.value,e.optionAttribute):e.modelValue:Z(e.modelValue,e.optionAttribute):null),C=R(()=>{const L=a.value.color?.[S.value]?.[e.variant]||a.value.variant[e.variant];return to(We(a.value.base,s.value.select,d.value,a.value.size[O.value],a.value.gap[O.value],e.padded?a.value.padding[O.value]:"p-0",L?.replaceAll("{color}",S.value),(m.value||t.leading)&&a.value.leading.padding[O.value],(E.value||t.trailing)&&a.value.trailing.padding[O.value]),e.placeholder&&(!e.modelValue||Array.isArray(e.modelValue)&&!e.modelValue.length)&&a.value.placeholder,e.selectClass)}),m=R(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),E=R(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),g=R(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),k=R(()=>e.loading&&!m.value?e.loadingIcon:e.trailingIcon||e.icon),I=R(()=>We(a.value.icon.leading.wrapper,a.value.icon.leading.pointer,a.value.icon.leading.padding[O.value])),M=R(()=>We(a.value.icon.base,S.value&&Ie.ui.colors.includes(S.value)&&a.value.icon.color.replaceAll("{color}",S.value),a.value.icon.size[O.value],e.loading&&a.value.icon.loading)),z=R(()=>We(a.value.icon.trailing.wrapper,a.value.icon.trailing.pointer,a.value.icon.trailing.padding[O.value])),N=R(()=>We(a.value.icon.base,S.value&&Ie.ui.colors.includes(S.value)&&a.value.icon.color.replaceAll("{color}",S.value),a.value.icon.size[O.value],e.loading&&!m.value&&a.value.icon.loading)),_=e.searchable&&typeof e.searchable=="function"?xo(e.searchable,e.debounce):void 0,U=wo(async()=>_?await _(h.value):e.options||[],[],{lazy:e.searchableLazy});function ae(L){return L.replace(/[.*+?^${}()|[\]\\]/g,X=>`\\${X}`)}function Z(L,X){return jt(L,X)}function D(L){return!Array.isArray(L)&&L!==null&&typeof L=="object"}const A=R(()=>{if(!h.value||_)return U.value;const L=ae(h.value);return U.value.filter(X=>(e.searchAttributes?.length?e.searchAttributes:[e.optionAttribute]).some($=>{if(["string","number"].includes(typeof X))return String(X).search(new RegExp(L,"i"))!==-1;const Y=jt(X,$);return Y!=null&&String(Y).search(new RegExp(L,"i"))!==-1}))}),q=R(()=>h.value===""||e.showCreateOptionWhen==="empty"&&A.value.length||e.showCreateOptionWhen==="always"&&A.value.find(X=>["string","number"].includes(typeof X)?X===h.value:Z(X,e.optionAttribute)===h.value)||typeof e.showCreateOptionWhen=="function"&&!e.showCreateOptionWhen(h.value,A.value)?null:["string","number"].includes(typeof e.modelValue)?h.value:{[e.optionAttribute]:h.value});function te(){e.clearSearchOnClose&&(h.value="")}he(r,L=>{L?n("open"):(te(),n("close"),v())});function ee(L){G(e.modelValue)!==L&&(n("update:modelValue",L),n("change",L),y())}function ce(L){h.value=L.target.value}return mo(()=>no()),{ui:a,uiMenu:s,attrs:o,name:T,inputId:b,popper:i,trigger:l,container:r,selected:f,label:x,accessor:Z,isLeading:m,isTrailing:E,selectClass:C,leadingIconName:g,leadingIconClass:M,leadingWrapperIconClass:I,trailingIconName:k,trailingIconClass:N,trailingWrapperIconClass:z,filteredOptions:A,createOption:q,query:h,onUpdate:ee,onQueryChange:ce,by:c}}}),gi=["value","required","form"],bi=["id","disabled"],yi={class:"truncate"};function xi(e,n,t,a,o,s){const i=cn,l=Qn("HComboboxInput"),r=dn;return F(),de(_e(e.searchable?"HCombobox":"HListbox"),{by:e.by,name:e.name,"model-value":e.multiple?Array.isArray(e.modelValue)?e.modelValue:[]:e.modelValue,multiple:e.multiple,disabled:e.disabled,as:"div",class:K(e.ui.wrapper),"onUpdate:modelValue":e.onUpdate},{default:Q(({open:c})=>[e.required?(F(),J("input",{key:0,value:e.modelValue,required:e.required,class:K(e.uiMenu.required),form:e.inputTargetForm,tabindex:"-1","aria-hidden":"true"},null,10,gi)):pe("",!0),(F(),de(_e(e.searchable?"HComboboxButton":"HListboxButton"),{ref:"trigger",as:"div",role:"button",class:K(e.uiMenu.trigger)},{default:Q(()=>[Te(e.$slots,"default",{open:c,disabled:e.disabled,loading:e.loading},()=>[j("button",ft({id:e.inputId,class:e.selectClass,disabled:e.disabled,type:"button"},e.attrs),[e.isLeading&&e.leadingIconName||e.$slots.leading?(F(),J("span",{key:0,class:K(e.leadingWrapperIconClass)},[Te(e.$slots,"leading",{selected:e.selected,disabled:e.disabled,loading:e.loading},()=>[ne(i,{name:e.leadingIconName,class:K(e.leadingIconClass)},null,8,["name","class"])])],2)):pe("",!0),Te(e.$slots,"label",{selected:e.selected},()=>[e.label?(F(),J("span",{key:0,class:K(e.uiMenu.label)},fe(e.label),3)):(F(),J("span",{key:1,class:K(e.uiMenu.label)},fe(e.placeholder||" "),3))]),e.isTrailing&&e.trailingIconName||e.$slots.trailing?(F(),J("span",{key:1,class:K(e.trailingWrapperIconClass)},[Te(e.$slots,"trailing",{selected:e.selected,disabled:e.disabled,loading:e.loading},()=>[ne(i,{name:e.trailingIconName,class:K(e.trailingIconClass),"aria-hidden":"true"},null,8,["name","class"])])],2)):pe("",!0)],16,bi)])]),_:2},1032,["class"])),c?(F(),J("div",{key:1,ref:"container",class:K([e.uiMenu.container,e.uiMenu.width])},[ne(Gn,ft({appear:""},e.uiMenu.transition),{default:Q(()=>[j("div",null,[e.popper.arrow?(F(),J("div",{key:0,"data-popper-arrow":"",class:K(Object.values(e.uiMenu.arrow))},null,2)):pe("",!0),(F(),de(_e(e.searchable?"HComboboxOptions":"HListboxOptions"),{static:"",class:K([e.uiMenu.base,e.uiMenu.ring,e.uiMenu.rounded,e.uiMenu.shadow,e.uiMenu.background,e.uiMenu.padding,e.uiMenu.height])},{default:Q(()=>[e.searchable?(F(),de(l,{key:0,"display-value":()=>e.query,name:"q",placeholder:e.searchablePlaceholder,autofocus:"",autocomplete:"off",class:K(e.uiMenu.input),onChange:e.onQueryChange},null,8,["display-value","placeholder","class","onChange"])):pe("",!0),(F(!0),J(Ye,null,ht(e.filteredOptions,(u,d)=>(F(),de(_e(e.searchable?"HComboboxOption":"HListboxOption"),{key:d,as:"template",value:e.valueAttribute?e.accessor(u,e.valueAttribute):u,disabled:u.disabled},{default:Q(({active:v,selected:y,disabled:b})=>[j("li",{class:K([e.uiMenu.option.base,e.uiMenu.option.rounded,e.uiMenu.option.padding,e.uiMenu.option.size,e.uiMenu.option.color,v?e.uiMenu.option.active:e.uiMenu.option.inactive,y&&e.uiMenu.option.selected,b&&e.uiMenu.option.disabled])},[j("div",{class:K(e.uiMenu.option.container)},[Te(e.$slots,"option",{option:u,active:v,selected:y},()=>[u.icon?(F(),de(i,{key:0,name:u.icon,class:K([e.uiMenu.option.icon.base,v?e.uiMenu.option.icon.active:e.uiMenu.option.icon.inactive,u.iconClass]),"aria-hidden":"true"},null,8,["name","class"])):u.avatar?(F(),de(r,ft({key:1,ref_for:!0},{size:e.uiMenu.option.avatar.size,...u.avatar},{class:e.uiMenu.option.avatar.base,"aria-hidden":"true"}),null,16,["class"])):u.chip?(F(),J("span",{key:2,class:K(e.uiMenu.option.chip.base),style:Zn({background:`#${u.chip}`})},null,6)):pe("",!0),j("span",yi,fe(["string","number"].includes(typeof u)?u:e.accessor(u,e.optionAttribute)),1)])],2),y?(F(),J("span",{key:0,class:K([e.uiMenu.option.selectedIcon.wrapper,e.uiMenu.option.selectedIcon.padding])},[ne(i,{name:e.selectedIcon,class:K(e.uiMenu.option.selectedIcon.base),"aria-hidden":"true"},null,8,["name","class"])],2)):pe("",!0)],2)]),_:2},1032,["value","disabled"]))),128)),e.creatable&&e.createOption?(F(),de(_e(e.searchable?"HComboboxOption":"HListboxOption"),{key:1,value:e.createOption,as:"template"},{default:Q(({active:u,selected:d})=>[j("li",{class:K([e.uiMenu.option.base,e.uiMenu.option.rounded,e.uiMenu.option.padding,e.uiMenu.option.size,e.uiMenu.option.color,u?e.uiMenu.option.active:e.uiMenu.option.inactive])},[j("div",{class:K(e.uiMenu.option.container)},[Te(e.$slots,"option-create",{option:e.createOption,active:u,selected:d},()=>[j("span",{class:K(e.uiMenu.option.create)},'Create "'+fe(typeof e.createOption=="string"?e.createOption:e.accessor(e.createOption,e.optionAttribute))+'"',3)])],2)],2)]),_:3},8,["value"])):e.searchable&&e.query&&!e.filteredOptions?.length?(F(),J("p",{key:2,class:K(e.uiMenu.option.empty)},[Te(e.$slots,"option-empty",{query:e.query},()=>[Se(fe(e.uiMenu.default.optionEmpty.label.replace("{query}",e.query)),1)])],2)):e.filteredOptions?.length?pe("",!0):(F(),J("p",{key:3,class:K(e.uiMenu.empty)},[Te(e.$slots,"empty",{query:e.query},()=>[Se(fe(e.uiMenu.default.empty.label),1)])],2))]),_:3},8,["class"]))])]),_:3},16)],2)):pe("",!0)]),_:3},8,["by","name","model-value","multiple","disabled","class","onUpdate:modelValue"])}const Oi=xn(mi,[["render",xi]]),Si={class:"hooks-page"},wi={class:"flex items-center justify-between gap-3 flex-wrap"},ki={class:"text-xs text-gray-500 mt-1"},Ci={key:0},Ti={key:1,class:"text-amber-600"},Ei={class:"flex items-center gap-2 flex-wrap"},Ri={class:"flex flex-col"},Ai={class:"text-sm"},Ii={class:"text-xs text-gray-400"},Mi=["id"],Pi={class:"hook-panel-summary"},Di={class:"hook-panel-body"},Vi=["onUpdate:modelValue"],Li={class:"mt-2"},$i={class:"flex items-center justify-between"},zi={class:"text-sm font-semibold"},Fi={key:0,class:"modal-loading"},Ni={key:1,class:"space-y-3"},Bi={key:2,class:"log-output"},ji={key:3,class:"text-sm text-gray-500 italic"},Hi=`
2
+ interface RunContext {
3
+ config: Record<string, unknown>;
4
+ filter: string;
5
+ taskCount: number;
6
+ }
7
+ interface TaskContext {
8
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
9
+ config: Record<string, unknown>;
10
+ branchName: string;
11
+ prompt: string;
12
+ }
13
+ interface ResolveConflictsContext {
14
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
15
+ config: Record<string, unknown>;
16
+ branchName: string;
17
+ conflictFiles: string[];
18
+ prompt: string;
19
+ }
20
+ interface NonCodeTaskContext {
21
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
22
+ config: Record<string, unknown>;
23
+ prompt: string;
24
+ }
25
+ interface ThinkingTaskContext {
26
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
27
+ config: Record<string, unknown>;
28
+ branchName: string;
29
+ subtasks: Array<{ id: number; title: string; description: string; status: string }>;
30
+ }
31
+ interface ReviewTaskContext {
32
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
33
+ config: Record<string, unknown>;
34
+ branchName: string;
35
+ threads: Array<{ id: string; body: string; resolved: boolean }>;
36
+ prompt: string;
37
+ }
38
+ interface CommentContext {
39
+ task: { id: string; name: string; description: string; status: string; url: string; tags: string[] };
40
+ config: Record<string, unknown>;
41
+ text: string;
42
+ }
43
+ interface HookVM {
44
+ runAI(prompt: string): Promise<{ success: boolean; output: string; error: string }>;
45
+ postComment(taskId: string, text: string): Promise<void>;
46
+ updateStatus(taskId: string, status: string): Promise<void>;
47
+ getComments(taskId: string): Promise<Array<{ id: string; text: string; author: string }>>;
48
+ log: { info(msg: string): void; warn(msg: string): void; error(msg: string): void };
49
+ }
50
+
51
+ interface AidevHooks {
52
+ beforeRun?(context: RunContext, vm: HookVM): Promise<RunContext | void>;
53
+ afterRun?(context: RunContext & { processed: number; skipped: number }, vm: HookVM): Promise<void>;
54
+ beforeEachTask?(context: TaskContext, vm: HookVM): Promise<TaskContext | void>;
55
+ afterEachTask?(context: TaskContext & { success: boolean }, vm: HookVM): Promise<void>;
56
+ beforeResolveConflicts?(context: ResolveConflictsContext, vm: HookVM): Promise<ResolveConflictsContext | void>;
57
+ afterResolveConflicts?(context: ResolveConflictsContext & { resolved: boolean }, vm: HookVM): Promise<void>;
58
+ beforeNonCodeTask?(context: NonCodeTaskContext, vm: HookVM): Promise<NonCodeTaskContext | void>;
59
+ afterNonCodeTask?(context: NonCodeTaskContext & { success: boolean; output: string }, vm: HookVM): Promise<void>;
60
+ beforeThinkingTask?(context: ThinkingTaskContext, vm: HookVM): Promise<ThinkingTaskContext | void>;
61
+ afterThinkingTask?(context: ThinkingTaskContext & { success: boolean }, vm: HookVM): Promise<void>;
62
+ beforeReviewTask?(context: ReviewTaskContext, vm: HookVM): Promise<ReviewTaskContext | void>;
63
+ afterReviewTask?(context: ReviewTaskContext & { success: boolean; resolvedCount: number }, vm: HookVM): Promise<void>;
64
+ beforeComment?(context: CommentContext, vm: HookVM): Promise<CommentContext | void>;
65
+ afterComment?(context: CommentContext, vm: HookVM): Promise<void>;
66
+ }
67
+ `,_i=ue({__name:"hooks",setup(e){const n=["beforeRun","afterRun","beforeEachTask","afterEachTask","beforeResolveConflicts","afterResolveConflicts","beforeNonCodeTask","afterNonCodeTask","beforeThinkingTask","afterThinkingTask","beforeReviewTask","afterReviewTask","beforeComment","afterComment"],t={id:"T-1",name:"Example task",description:"Build a feature",status:"in-progress",url:"",tags:[]},a={beforeRun:JSON.stringify({config:{},filter:"",taskCount:3},null,2),afterRun:JSON.stringify({config:{},filter:"",taskCount:3,processed:2,skipped:1},null,2),beforeEachTask:JSON.stringify({task:t,config:{},branchName:"feature/example",prompt:"Implement the feature."},null,2),afterEachTask:JSON.stringify({task:t,config:{},branchName:"feature/example",prompt:"Implement the feature.",success:!0},null,2),beforeResolveConflicts:JSON.stringify({task:t,config:{},branchName:"feature/example",conflictFiles:["src/index.ts"],prompt:"Resolve conflicts."},null,2),afterResolveConflicts:JSON.stringify({task:t,config:{},branchName:"feature/example",conflictFiles:["src/index.ts"],prompt:"Resolve conflicts.",resolved:!0},null,2),beforeNonCodeTask:JSON.stringify({task:t,config:{},prompt:"Answer the question."},null,2),afterNonCodeTask:JSON.stringify({task:t,config:{},prompt:"Answer the question.",success:!0,output:"AI response."},null,2),beforeThinkingTask:JSON.stringify({task:t,config:{},branchName:"feature/example",subtasks:[{id:1,title:"Subtask 1",description:"Do X",status:"open"}]},null,2),afterThinkingTask:JSON.stringify({task:t,config:{},branchName:"feature/example",subtasks:[{id:1,title:"Subtask 1",description:"Do X",status:"done"}],success:!0},null,2),beforeReviewTask:JSON.stringify({task:t,config:{},branchName:"feature/example",threads:[{id:"r-1",body:"Fix X",resolved:!1}],prompt:"Address review comments."},null,2),afterReviewTask:JSON.stringify({task:t,config:{},branchName:"feature/example",threads:[{id:"r-1",body:"Fix X",resolved:!0}],prompt:"Address review comments.",success:!0,resolvedCount:1},null,2),beforeComment:JSON.stringify({task:t,config:{},text:"Work complete. Tests pass."},null,2),afterComment:JSON.stringify({task:t,config:{},text:"Work complete. Tests pass."},null,2)},o=[{title:"1. Safety guard — beforeEachTask",hookName:"beforeEachTask",code:`export async function beforeEachTask(context, vm) {
68
+ const { output } = await vm.runAI(
69
+ \`Is this task potentially destructive or irreversible?\\nTask: \${context.task.name}\\nReply only YES or NO.\`
70
+ );
71
+ if (output.trim().toUpperCase().startsWith('YES')) {
72
+ throw new Error(\`Safety guard blocked "\${context.task.name}" — looks destructive\`);
73
+ }
74
+ return context;
75
+ }`},{title:"2. TypeScript type-check — afterEachTask",hookName:"afterEachTask",code:`import { spawnSync } from 'node:child_process';
76
+
77
+ export async function afterEachTask(context, vm) {
78
+ const result = spawnSync('npx', ['tsc', '--noEmit'], { cwd: process.cwd(), encoding: 'utf8' });
79
+ if (result.status !== 0) {
80
+ vm.log.error('TypeScript errors:\\n' + result.stdout);
81
+ throw new Error('TypeScript type-check failed');
82
+ }
83
+ vm.log.info('TypeScript check passed');
84
+ }`},{title:"3. Lint & format — afterEachTask",hookName:"afterEachTask",code:`import { spawnSync } from 'node:child_process';
85
+
86
+ export async function afterEachTask(context, vm) {
87
+ spawnSync('npx', ['eslint', '--fix', '.'], { cwd: process.cwd() });
88
+ spawnSync('npx', ['prettier', '--write', '.'], { cwd: process.cwd() });
89
+ vm.log.info('Lint and format complete');
90
+ }`},{title:"4. Slack notification — afterRun",hookName:"afterRun",code:`export async function afterRun(context, vm) {
91
+ const webhookUrl = process.env.SLACK_WEBHOOK_URL;
92
+ if (!webhookUrl) return;
93
+ await fetch(webhookUrl, {
94
+ method: 'POST',
95
+ headers: { 'Content-Type': 'application/json' },
96
+ body: JSON.stringify({
97
+ text: \`aidev run complete: \${context.processed} processed, \${context.skipped} skipped\`,
98
+ }),
99
+ });
100
+ vm.log.info('Slack notification sent');
101
+ }`},{title:"5. Append ticket ID to prompt — beforeEachTask",hookName:"beforeEachTask",code:"export async function beforeEachTask(context, vm) {\n context.prompt = `[Ticket: ${context.task.id}]\\n${context.prompt}`;\n vm.log.info('Prefixed prompt with ticket ID: ' + context.task.id);\n return context;\n}"},{title:'6. Post "Starting…" comment — beforeEachTask',hookName:"beforeEachTask",code:"export async function beforeEachTask(context, vm) {\n await vm.postComment(context.task.id, `🤖 Starting implementation of: ${context.task.name}`);\n return context;\n}"},{title:"7. npm audit security scan — beforeEachTask",hookName:"beforeEachTask",code:`import { spawnSync } from 'node:child_process';
102
+
103
+ export async function beforeEachTask(context, vm) {
104
+ const result = spawnSync('npm', ['audit', '--audit-level=high'], { cwd: process.cwd(), encoding: 'utf8' });
105
+ if (result.status !== 0) {
106
+ vm.log.error('npm audit found high-severity issues:\\n' + result.stdout);
107
+ throw new Error('Security audit failed — fix vulnerabilities before running AI tasks');
108
+ }
109
+ vm.log.info('npm audit passed');
110
+ return context;
111
+ }`},{title:"8. Test suite gate — afterEachTask",hookName:"afterEachTask",code:`import { spawnSync } from 'node:child_process';
112
+
113
+ export async function afterEachTask(context, vm) {
114
+ if (!context.success) return;
115
+ const result = spawnSync('npm', ['test', '--', '--passWithNoTests'], { cwd: process.cwd(), encoding: 'utf8' });
116
+ if (result.status !== 0) {
117
+ vm.log.error('Test suite failed:\\n' + (result.stdout || result.stderr || ''));
118
+ throw new Error('Tests failed after task completion');
119
+ }
120
+ vm.log.info('All tests passed');
121
+ }`},{title:"9. Reject non-code tasks — beforeNonCodeTask",hookName:"beforeNonCodeTask",code:`export async function beforeNonCodeTask(context, vm) {
122
+ vm.log.info('Skipping non-code task: ' + context.task.name);
123
+ throw new Error('Non-code tasks are disabled in this project');
124
+ }`},{title:"10. Append signature to comments — beforeComment",hookName:"beforeComment",code:`export async function beforeComment(context, vm) {
125
+ const signature = '\\n\\n---\\n*Generated by aidev*';
126
+ context.text = context.text + signature;
127
+ vm.log.info('Signature appended to comment');
128
+ return context;
129
+ }`}],s=So(),i=P(""),l=P(""),r=P(!1),c=P(!1),u=P(!1),d=P(!1),v=P(""),y=P(""),b=P(!1),S=P(Object.fromEntries(n.map(D=>[D,a[D]]))),w=P(null),T=P(!1),O=P(!1),p=P(""),h=P(!0),f=P(""),x=P([]),C=P(null);let m=null,E=null;he(C,async D=>{if(!D||m)return;const{default:A}=await lo(async()=>{const{default:te}=await import("./CBV5GuL6.js");return{default:te}},[],import.meta.url);m=await A.init();const q=m.languages.typescript;q.typescriptDefaults.setCompilerOptions({target:q.ScriptTarget.ES2020,module:q.ModuleKind.ESNext,moduleResolution:q.ModuleResolutionKind.NodeJs,allowNonTsExtensions:!0,strict:!0,noEmit:!0,esModuleInterop:!0}),q.typescriptDefaults.setDiagnosticsOptions({noSemanticValidation:!1,noSyntaxValidation:!1}),q.typescriptDefaults.addExtraLib(Hi,"file:///aidev-hooks.d.ts"),E=m.editor.create(D,{value:l.value,language:"typescript",theme:"vs",minimap:{enabled:!1},automaticLayout:!0,fontSize:13,scrollBeyondLastLine:!1,tabSize:2}),E.onDidChangeModelContent(()=>{l.value=E.getValue()})},{flush:"post"}),oo(()=>{E?.dispose(),E=null,m=null});function g(D,A){return D?.data?.statusMessage??D?.message??A}function k(D,A){b.value=D,y.value=A}async function I(){r.value=!0,v.value="",y.value="";try{const D=await s("/api/hooks");i.value=D.path,l.value=D.content,E&&E.setValue(D.content)}catch(D){v.value=g(D,"Failed to load hooks file")}finally{r.value=!1}}async function M(){c.value=!0,y.value="";const D=E?E.getValue():l.value;try{await s("/api/hooks",{method:"PUT",body:{content:D}}),k(!0,"Hooks file saved.")}catch(A){k(!1,g(A,"Failed to save"))}finally{c.value=!1}}async function z(){if(confirm("Replace the entire hooks file with the default template? Unsaved editor changes will be lost.")){u.value=!0,y.value="";try{const D=await s("/api/hooks-regenerate",{method:"POST"});l.value=D.content,E&&E.setValue(D.content),k(!0,"Hooks file regenerated from template.")}catch(D){k(!1,g(D,"Failed to regenerate"))}finally{u.value=!1}}}async function N(){d.value=!0,y.value="";try{const D=await s("/api/hooks-update",{method:"POST"});l.value=D.content,E&&E.setValue(D.content),k(!0,D.added.length?`Added missing hooks: ${D.added.join(", ")}`:"All hooks are already present.")}catch(D){k(!1,g(D,"Failed to update hooks"))}finally{d.value=!1}}async function _(D){w.value=D,p.value=`Execute: ${D}`,h.value=!0,f.value="",x.value=[],O.value=!0,T.value=!0;let A={};try{A=JSON.parse(S.value[D]??"{}")}catch{O.value=!1,h.value=!1,f.value="Mock data is not valid JSON",w.value=null;return}try{const q=await s("/api/hooks-execute",{method:"POST",body:{hookName:D,mockData:A}});h.value=q.ok,f.value=q.error??"",x.value=q.logs}catch(q){h.value=!1,f.value=g(q,"Request failed"),x.value=[]}finally{w.value=null,O.value=!1}}const U=P(null),ae=o.map((D,A)=>({label:D.title,hookName:D.hookName,idx:A}));function Z(D){if(!D)return;oe(()=>{U.value=null});const A=o[D.idx];if(!A)return;if(E&&m){const ee=E.getSelection()?.getStartPosition()??{lineNumber:1,column:1};E.executeEdits("sample-insert",[{range:new m.Range(ee.lineNumber,ee.column,ee.lineNumber,ee.column),text:`
130
+ `+A.code+`
131
+ `}]),E.focus()}const q=document.getElementById(`hook-panel-${A.hookName}`);q&&(q.open=!0,q.scrollIntoView({behavior:"smooth",block:"nearest"}),q.classList.add("hook-panel-highlight"),setTimeout(()=>q.classList.remove("hook-panel-highlight"),1200))}return xe(()=>{I()}),(D,A)=>{const q=Oi,te=co,ee=fo,ce=Co,L=Oo,X=go;return F(),J("div",Si,[ne(L,null,{header:Q(()=>[j("div",wi,[j("div",null,[A[4]||(A[4]=j("h1",{class:"text-lg font-semibold"},"Hooks",-1)),j("p",ki,[B(i)?(F(),J("span",Ci,[A[3]||(A[3]=Se("Editing ",-1)),j("code",null,fe(B(i)),1)])):(F(),J("span",Ti,"AIDEV_HOOKS_PATH not configured"))])]),j("div",Ei,[ne(q,{modelValue:B(U),"onUpdate:modelValue":[A[0]||(A[0]=$=>pt(U)?U.value=$:null),Z],options:B(ae),"option-attribute":"label",placeholder:"Insert sample…",size:"sm",class:"sample-select-menu"},{option:Q(({option:$})=>[j("div",Ri,[j("span",Ai,fe($.label),1),j("span",Ii,fe($.hookName),1)])]),_:1},8,["modelValue","options"]),ne(te,{color:"gray",variant:"ghost",size:"sm",loading:B(r),disabled:B(r),onClick:I},{default:Q(()=>[...A[5]||(A[5]=[Se(" Refresh ",-1)])]),_:1},8,["loading","disabled"]),ne(te,{color:"gray",variant:"soft",size:"sm",loading:B(d),disabled:B(d),onClick:N},{default:Q(()=>[...A[6]||(A[6]=[Se(" Add missing ",-1)])]),_:1},8,["loading","disabled"]),ne(te,{color:"amber",variant:"soft",size:"sm",loading:B(u),disabled:B(u),onClick:z},{default:Q(()=>[...A[7]||(A[7]=[Se(" Regenerate ",-1)])]),_:1},8,["loading","disabled"]),ne(te,{color:"primary",size:"sm",loading:B(c),disabled:B(c),onClick:M},{default:Q(()=>[...A[8]||(A[8]=[Se(" Save ",-1)])]),_:1},8,["loading","disabled"])])])]),default:Q(()=>[B(v)?(F(),de(ee,{key:0,color:"red",variant:"soft",title:B(v),class:"mb-4"},null,8,["title"])):pe("",!0),B(y)?(F(),de(ee,{key:1,color:B(b)?"green":"red",variant:"soft",title:B(b)?"Done":"Error",description:B(y),class:"mb-4"},null,8,["color","title","description"])):pe("",!0),ne(ce,null,{fallback:Q(()=>[...A[9]||(A[9]=[j("div",{class:"editor-placeholder"},"Loading editor…",-1)])]),default:Q(()=>[j("div",{ref_key:"editorContainer",ref:C,class:"editor-container"},null,512)]),_:1})]),_:1}),ne(L,{class:"mt-4"},{header:Q(()=>[...A[10]||(A[10]=[j("h2",{class:"text-base font-semibold"},"Test hooks",-1)])]),default:Q(()=>[(F(),J(Ye,null,ht(n,$=>j("div",{key:$,class:"mb-2"},[j("details",{id:`hook-panel-${$}`,class:"hook-panel"},[j("summary",Pi,[j("code",null,fe($),1)]),j("div",Di,[A[12]||(A[12]=j("label",{class:"block text-xs font-medium text-gray-500 mb-1"},"Mock data (JSON)",-1)),ao(j("textarea",{"onUpdate:modelValue":Y=>B(S)[$]=Y,class:"mock-json",rows:"5",spellcheck:"false"},null,8,Vi),[[io,B(S)[$]]]),j("div",Li,[ne(te,{color:"primary",variant:"soft",size:"sm",loading:B(w)===$,disabled:B(w)!==null,onClick:Y=>_($)},{default:Q(()=>[...A[11]||(A[11]=[Se(" Execute now ",-1)])]),_:1},8,["loading","disabled","onClick"])])])],8,Mi)])),64))]),_:1}),ne(X,{modelValue:B(T),"onUpdate:modelValue":A[2]||(A[2]=$=>pt(T)?T.value=$:null)},{default:Q(()=>[ne(L,{ui:{ring:"",divide:"divide-y divide-gray-100 dark:divide-gray-800"}},{header:Q(()=>[j("div",$i,[j("h3",zi,fe(B(p)),1),ne(te,{color:"gray",variant:"ghost",size:"xs",onClick:A[1]||(A[1]=$=>T.value=!1)},{default:Q(()=>[...A[13]||(A[13]=[Se("✕",-1)])]),_:1})])]),default:Q(()=>[B(O)?(F(),J("div",Fi,[...A[14]||(A[14]=[j("div",{class:"modal-spinner","aria-hidden":"true"},null,-1),j("p",{class:"text-sm text-gray-500"},"Executing hook…",-1)])])):(F(),J("div",Ni,[B(h)?(F(),de(ee,{key:1,color:"green",variant:"soft",title:"Hook executed successfully"})):(F(),de(ee,{key:0,color:"red",variant:"soft",title:"Hook failed",description:B(f)||void 0},null,8,["description"])),B(x).length?(F(),J("div",Bi,[(F(!0),J(Ye,null,ht(B(x),($,Y)=>(F(),J("div",{key:Y,class:"log-line"},fe($),1))),128))])):(F(),J("p",ji,"No log output."))]))]),_:1})]),_:1},8,["modelValue"])])}}}),el=xn(_i,[["__scopeId","data-v-ad1d8ba7"]]);export{el as default};
@@ -1 +1 @@
1
- import{aa as $,O as s,i as n,f as d,aj as B,af as V,A as q,D as t,X as g,h as u,l as A,b as p,e as b,z as j,j as m,a1 as h,a2 as v,a5 as N,a4 as O}from"./MzK2TZ-I.js";import{b as D}from"./Ceb2855t.js";import{u as z}from"./Bv6Ws9vz.js";import{_ as F}from"./DlAUqK2U.js";const M={wrapper:"relative flex items-start",container:"flex items-center h-5",base:"h-4 w-4 dark:checked:bg-current dark:checked:border-transparent dark:indeterminate:bg-current dark:indeterminate:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent",form:"form-checkbox",rounded:"rounded",color:"text-{color}-500 dark:text-{color}-400",background:"bg-white dark:bg-gray-900",border:"border border-gray-300 dark:border-gray-700",ring:"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",inner:"ms-3 flex flex-col",label:"text-sm font-medium text-gray-700 dark:text-gray-200",required:"text-sm text-red-500 dark:text-red-400",help:"text-sm text-gray-500 dark:text-gray-400",default:{color:"primary"}},T=$,y=j(p.ui.strategy,p.ui.checkbox,M),U=A({inheritAttrs:!1,props:{id:{type:String,default:()=>null},value:{type:[String,Number,Boolean,Object],default:null},modelValue:{type:[Boolean,Array],default:null},name:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:void 0},help:{type:String,default:null},label:{type:String,default:null},required:{type:Boolean,default:!1},color:{type:String,default:()=>y.default.color,validator(e){return p.ui.colors.includes(e)}},inputClass:{type:String,default:""},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","change"],setup(e,{emit:r}){const{ui:a,attrs:f}=D("checkbox",v(e,"ui"),y,v(e,"class")),{emitFormChange:c,color:l,name:o,inputId:k}=z(e),C=k.value??T(),I=b({get(){return e.modelValue},set(i){r("update:modelValue",i)}}),S=i=>{r("change",i.target.checked),c()},w=b(()=>N(O(a.value.base,a.value.form,a.value.rounded,a.value.background,a.value.border,l.value&&a.value.ring.replaceAll("{color}",l.value),l.value&&a.value.color.replaceAll("{color}",l.value)),e.inputClass));return{ui:a,attrs:f,toggle:I,inputId:C,name:o,inputClass:w,onChange:S}}}),E=["data-n-ids"],G=["id","name","required","value","disabled","indeterminate"],J=["for"];function P(e,r,a,f,c,l){return s(),n("div",{class:t(e.ui.wrapper),"data-n-ids":e.attrs["data-n-ids"]},[d("div",{class:t(e.ui.container)},[B(d("input",q({id:e.inputId,"onUpdate:modelValue":r[0]||(r[0]=o=>e.toggle=o),name:e.name,required:e.required,value:e.value,disabled:e.disabled,indeterminate:e.indeterminate,type:"checkbox",class:e.inputClass},e.attrs,{onChange:r[1]||(r[1]=(...o)=>e.onChange&&e.onChange(...o))}),null,16,G),[[V,e.toggle]])],2),e.label||e.$slots.label?(s(),n("div",{key:0,class:t(e.ui.inner)},[d("label",{for:e.inputId,class:t(e.ui.label)},[g(e.$slots,"label",{label:e.label},()=>[m(h(e.label),1)]),e.required?(s(),n("span",{key:0,class:t(e.ui.required)},"*",2)):u("",!0)],10,J),e.help||e.$slots.help?(s(),n("p",{key:0,class:t(e.ui.help)},[g(e.$slots,"help",{help:e.help},()=>[m(h(e.help),1)])],2)):u("",!0)],2)):u("",!0)],10,E)}const L=F(U,[["render",P]]),Q=globalThis.setInterval;export{L as _,Q as s};
1
+ import{af as B,R as s,j as n,g as d,ap as $,ak as V,B as q,E as t,Z as g,i as u,m as A,c as p,f as m,A as j,k as b,a4 as h,a6 as v,aa as N,a9 as O}from"./CnXdKLRd.js";import{d as D}from"./6wLLp9Nc.js";import{a as E}from"./mHp9eItY.js";import{_ as F}from"./DlAUqK2U.js";const M={wrapper:"relative flex items-start",container:"flex items-center h-5",base:"h-4 w-4 dark:checked:bg-current dark:checked:border-transparent dark:indeterminate:bg-current dark:indeterminate:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent",form:"form-checkbox",rounded:"rounded",color:"text-{color}-500 dark:text-{color}-400",background:"bg-white dark:bg-gray-900",border:"border border-gray-300 dark:border-gray-700",ring:"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",inner:"ms-3 flex flex-col",label:"text-sm font-medium text-gray-700 dark:text-gray-200",required:"text-sm text-red-500 dark:text-red-400",help:"text-sm text-gray-500 dark:text-gray-400",default:{color:"primary"}},R=B,y=j(p.ui.strategy,p.ui.checkbox,M),T=A({inheritAttrs:!1,props:{id:{type:String,default:()=>null},value:{type:[String,Number,Boolean,Object],default:null},modelValue:{type:[Boolean,Array],default:null},name:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:void 0},help:{type:String,default:null},label:{type:String,default:null},required:{type:Boolean,default:!1},color:{type:String,default:()=>y.default.color,validator(e){return p.ui.colors.includes(e)}},inputClass:{type:String,default:""},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["update:modelValue","change"],setup(e,{emit:r}){const{ui:a,attrs:c}=D("checkbox",v(e,"ui"),y,v(e,"class")),{emitFormChange:f,color:l,name:o,inputId:k}=E(e),C=k.value??R(),I=m({get(){return e.modelValue},set(i){r("update:modelValue",i)}}),S=i=>{r("change",i.target.checked),f()},w=m(()=>N(O(a.value.base,a.value.form,a.value.rounded,a.value.background,a.value.border,l.value&&a.value.ring.replaceAll("{color}",l.value),l.value&&a.value.color.replaceAll("{color}",l.value)),e.inputClass));return{ui:a,attrs:c,toggle:I,inputId:C,name:o,inputClass:w,onChange:S}}}),U=["data-n-ids"],z=["id","name","required","value","disabled","indeterminate"],G=["for"];function J(e,r,a,c,f,l){return s(),n("div",{class:t(e.ui.wrapper),"data-n-ids":e.attrs["data-n-ids"]},[d("div",{class:t(e.ui.container)},[$(d("input",q({id:e.inputId,"onUpdate:modelValue":r[0]||(r[0]=o=>e.toggle=o),name:e.name,required:e.required,value:e.value,disabled:e.disabled,indeterminate:e.indeterminate,type:"checkbox",class:e.inputClass},e.attrs,{onChange:r[1]||(r[1]=(...o)=>e.onChange&&e.onChange(...o))}),null,16,z),[[V,e.toggle]])],2),e.label||e.$slots.label?(s(),n("div",{key:0,class:t(e.ui.inner)},[d("label",{for:e.inputId,class:t(e.ui.label)},[g(e.$slots,"label",{label:e.label},()=>[b(h(e.label),1)]),e.required?(s(),n("span",{key:0,class:t(e.ui.required)},"*",2)):u("",!0)],10,G),e.help||e.$slots.help?(s(),n("p",{key:0,class:t(e.ui.help)},[g(e.$slots,"help",{help:e.help},()=>[b(h(e.help),1)])],2)):u("",!0)],2)):u("",!0)],10,U)}const L=F(T,[["render",J]]),Q=globalThis.setInterval;export{L as _,Q as s};
@@ -0,0 +1 @@
1
+ import{_ as x,d as E,a as I}from"./6wLLp9Nc.js";import{R as a,j as o,h as p,B as f,a1 as D,E as n,a4 as $,i,Z as c,m as M,am as F,c as m,f as d,X as R,A as P,a6 as N,aa as C,a9 as b,g as j,ar as B,k as O,F as A,Y as U}from"./CnXdKLRd.js";import{_ as T}from"./DlAUqK2U.js";const J={wrapper:"relative inline-flex items-center justify-center flex-shrink-0",background:"bg-gray-100 dark:bg-gray-800",rounded:"rounded-full",text:"font-medium leading-none text-gray-900 dark:text-white truncate",placeholder:"font-medium leading-none text-gray-500 dark:text-gray-400 truncate",size:{"3xs":"h-4 w-4 text-[8px]","2xs":"h-5 w-5 text-[10px]",xs:"h-6 w-6 text-xs",sm:"h-8 w-8 text-sm",md:"h-10 w-10 text-base",lg:"h-12 w-12 text-lg",xl:"h-14 w-14 text-xl","2xl":"h-16 w-16 text-2xl","3xl":"h-20 w-20 text-3xl"},chip:{base:"absolute rounded-full ring-1 ring-white dark:ring-gray-900 flex items-center justify-center text-white dark:text-gray-900 font-medium",background:"bg-{color}-500 dark:bg-{color}-400",position:{"top-right":"top-0 right-0","bottom-right":"bottom-0 right-0","top-left":"top-0 left-0","bottom-left":"bottom-0 left-0"},size:{"3xs":"h-[4px] min-w-[4px] text-[4px] p-px","2xs":"h-[5px] min-w-[5px] text-[5px] p-px",xs:"h-1.5 min-w-[0.375rem] text-[6px] p-px",sm:"h-2 min-w-[0.5rem] text-[7px] p-0.5",md:"h-2.5 min-w-[0.625rem] text-[8px] p-0.5",lg:"h-3 min-w-[0.75rem] text-[10px] p-0.5",xl:"h-3.5 min-w-[0.875rem] text-[11px] p-1","2xl":"h-4 min-w-[1rem] text-[12px] p-1","3xl":"h-5 min-w-[1.25rem] text-[14px] p-1"}},icon:{base:"text-gray-500 dark:text-gray-400 flex-shrink-0",size:{"3xs":"h-2 w-2","2xs":"h-2.5 w-2.5",xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6",xl:"h-7 w-7","2xl":"h-8 w-8","3xl":"h-10 w-10"}},default:{size:"sm",icon:null,chipColor:null,chipPosition:"top-right"}},L={wrapper:"w-full relative overflow-hidden",inner:"w-0 flex-1",title:"text-sm font-medium",description:"mt-1 text-sm leading-4 opacity-90",descriptionOnly:"mt-0 leading-5",actions:"flex items-center gap-2 mt-3 flex-shrink-0",shadow:"",rounded:"rounded-lg",padding:"p-4",gap:"gap-3",icon:{base:"flex-shrink-0 w-5 h-5"},avatar:{base:"flex-shrink-0 self-center",size:"md"},color:{white:{solid:"text-gray-900 dark:text-white bg-white dark:bg-gray-900 ring-1 ring-gray-200 dark:ring-gray-800"}},variant:{solid:"bg-{color}-500 dark:bg-{color}-400 text-white dark:text-gray-900",outline:"text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400",soft:"bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400",subtle:"bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 ring-opacity-25 dark:ring-opacity-25"},default:{color:"white",variant:"solid",icon:null,closeButton:null,actionButton:{size:"xs",color:"primary",variant:"link"}}},u=P(m.ui.strategy,m.ui.avatar,J),X=M({components:{UIcon:x},inheritAttrs:!1,props:{as:{type:[String,Object],default:"img"},src:{type:[String,Boolean],default:null},alt:{type:String,default:null},text:{type:String,default:null},icon:{type:String,default:()=>u.default.icon},size:{type:String,default:()=>u.default.size,validator(e){return Object.keys(u.size).includes(e)}},chipColor:{type:String,default:()=>u.default.chipColor,validator(e){return["gray",...m.ui.colors].includes(e)}},chipPosition:{type:String,default:()=>u.default.chipPosition,validator(e){return Object.keys(u.chip.position).includes(e)}},chipText:{type:[String,Number],default:null},imgClass:{type:String,default:""},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},setup(e){const{ui:t,attrs:h}=E("avatar",N(e,"ui"),u),g=d(()=>typeof e.src=="boolean"?null:e.src),y=d(()=>(e.alt||"").split(" ").map(S=>S.charAt(0)).join("").substring(0,2)),l=d(()=>C(b(t.value.wrapper,(r.value||!g.value)&&t.value.background,t.value.rounded,t.value.size[e.size]),e.class)),v=d(()=>C(b(t.value.rounded,t.value.size[e.size]),e.imgClass)),z=d(()=>b(t.value.icon.base,t.value.icon.size[e.size])),k=d(()=>b(t.value.chip.base,t.value.chip.size[e.size],t.value.chip.position[e.chipPosition],t.value.chip.background.replaceAll("{color}",e.chipColor))),r=R(!1);F(()=>e.src,()=>{r.value&&(r.value=!1)});function w(){r.value=!0}return{ui:t,attrs:h,wrapperClass:l,imgClass:v,iconClass:z,chipClass:k,url:g,placeholder:y,error:r,onError:w}}});function Y(e,t,h,g,y,l){const v=x;return a(),o("span",{class:n(e.wrapperClass)},[e.url&&!e.error?(a(),p(D(e.as),f({key:0,class:e.imgClass,alt:e.alt,src:e.url},e.attrs,{onError:e.onError}),null,16,["class","alt","src","onError"])):e.text?(a(),o("span",{key:1,class:n(e.ui.text)},$(e.text),3)):e.icon?(a(),p(v,{key:2,name:e.icon,class:n(e.iconClass)},null,8,["name","class"])):e.placeholder?(a(),o("span",{key:3,class:n(e.ui.placeholder)},$(e.placeholder),3)):i("",!0),e.chipColor?(a(),o("span",{key:4,class:n(e.chipClass)},$(e.chipText),3)):i("",!0),c(e.$slots,"default")],2)}const V=T(X,[["render",Y]]),s=P(m.ui.strategy,m.ui.alert,L),Z=M({components:{UIcon:x,UAvatar:V,UButton:I},inheritAttrs:!1,props:{title:{type:String,default:null},description:{type:String,default:null},icon:{type:String,default:()=>s.default.icon},avatar:{type:Object,default:null},closeButton:{type:Object,default:()=>s.default.closeButton},actions:{type:Array,default:()=>[]},color:{type:String,default:()=>s.default.color,validator(e){return[...m.ui.colors,...Object.keys(s.color)].includes(e)}},variant:{type:String,default:()=>s.default.variant,validator(e){return[...Object.keys(s.variant),...Object.values(s.color).flatMap(t=>Object.keys(t))].includes(e)}},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})}},emits:["close"],setup(e){const{ui:t,attrs:h}=E("alert",N(e,"ui"),s),g=d(()=>{const l=t.value.color?.[e.color]?.[e.variant]||t.value.variant[e.variant];return C(b(t.value.wrapper,t.value.rounded,t.value.shadow,t.value.padding,l?.replaceAll("{color}",e.color)),e.class)});function y(l){l.click&&l.click()}return{ui:t,attrs:h,alertClass:g,onAction:y,twMerge:C}}});function q(e,t,h,g,y,l){const v=x,z=V,k=I;return a(),o("div",f({class:e.alertClass},e.attrs),[j("div",{class:n(["flex",[e.ui.gap,{"items-start":e.description||e.$slots.description,"items-center":!e.description&&!e.$slots.description}]])},[c(e.$slots,"icon",{icon:e.icon},()=>[e.icon?(a(),p(v,{key:0,name:e.icon,class:n(e.ui.icon.base)},null,8,["name","class"])):i("",!0)]),c(e.$slots,"avatar",{avatar:e.avatar},()=>[e.avatar?(a(),p(z,f({key:0},{size:e.ui.avatar.size,...e.avatar},{class:e.ui.avatar.base}),null,16,["class"])):i("",!0)]),j("div",{class:n(e.ui.inner)},[e.title||e.$slots.title?(a(),o("p",{key:0,class:n(e.ui.title)},[c(e.$slots,"title",{title:e.title},()=>[O($(e.title),1)])],2)):i("",!0),e.description||e.$slots.description?(a(),o("div",{key:1,class:n(e.twMerge(e.ui.description,!e.title&&!e.$slots.title&&e.ui.descriptionOnly))},[c(e.$slots,"description",{description:e.description},()=>[O($(e.description),1)])],2)):i("",!0),(e.description||e.$slots.description)&&(e.actions.length||e.$slots.actions)?(a(),o("div",{key:2,class:n(e.ui.actions)},[c(e.$slots,"actions",{},()=>[(a(!0),o(A,null,U(e.actions,(r,w)=>(a(),p(k,f({key:w},{ref_for:!0},{...e.ui.default.actionButton||{},...r},{onClick:B(S=>e.onAction(r),["stop"])}),null,16,["onClick"]))),128))])],2)):i("",!0)],2),e.closeButton||!e.description&&!e.$slots.description&&e.actions.length?(a(),o("div",{key:0,class:n(e.twMerge(e.ui.actions,"mt-0"))},[!e.description&&!e.$slots.description&&(e.actions.length||e.$slots.actions)?c(e.$slots,"actions",{key:0},()=>[(a(!0),o(A,null,U(e.actions,(r,w)=>(a(),p(k,f({key:w},{ref_for:!0},{...e.ui.default.actionButton||{},...r},{onClick:B(S=>e.onAction(r),["stop"])}),null,16,["onClick"]))),128))]):i("",!0),e.closeButton?(a(),p(k,f({key:1,"aria-label":"Close"},{...e.ui.default.closeButton||{},...e.closeButton},{onClick:t[0]||(t[0]=B(r=>e.$emit("close"),["stop"]))}),null,16)):i("",!0)],2)):i("",!0)],2)],16)}const Q=T(Z,[["render",q]]);export{Q as _,V as a};