wherdr 2.4.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{CPlkxpge.js → 2fsYF-LK.js} +41 -41
  3. package/.output/public/_nuxt/2fsYF-LK.js.br +0 -0
  4. package/.output/public/_nuxt/2fsYF-LK.js.gz +0 -0
  5. package/.output/public/_nuxt/{CV6ukk-M.js → 3bE7s96N.js} +1 -1
  6. package/.output/public/_nuxt/6YTlf8ot.js +1 -0
  7. package/.output/public/_nuxt/6YTlf8ot.js.br +0 -0
  8. package/.output/public/_nuxt/6YTlf8ot.js.gz +0 -0
  9. package/.output/public/_nuxt/{BYZVrreW.js → 7KozZy5Y.js} +1 -1
  10. package/.output/public/_nuxt/AgentView.BwyQIUef.css +1 -0
  11. package/.output/public/_nuxt/AgentView.BwyQIUef.css.br +0 -0
  12. package/.output/public/_nuxt/AgentView.BwyQIUef.css.gz +0 -0
  13. package/.output/public/_nuxt/{BdJIc1Xf.js → B40shTLf.js} +1 -1
  14. package/.output/public/_nuxt/{BdJIc1Xf.js.br → B40shTLf.js.br} +0 -0
  15. package/.output/public/_nuxt/B40shTLf.js.gz +0 -0
  16. package/.output/public/_nuxt/B5cSia3P.js +62 -0
  17. package/.output/public/_nuxt/B5cSia3P.js.br +0 -0
  18. package/.output/public/_nuxt/B5cSia3P.js.gz +0 -0
  19. package/.output/public/_nuxt/BK1_9FXg.js +1 -0
  20. package/.output/public/_nuxt/BK1_9FXg.js.br +0 -0
  21. package/.output/public/_nuxt/BK1_9FXg.js.gz +0 -0
  22. package/.output/public/_nuxt/{CgUSTIM1.js → Bqz3nVVB.js} +1 -1
  23. package/.output/public/_nuxt/{CgUSTIM1.js.br → Bqz3nVVB.js.br} +0 -0
  24. package/.output/public/_nuxt/Bqz3nVVB.js.gz +0 -0
  25. package/.output/public/_nuxt/{B2KlcBQ-.js → ByLPJEo6.js} +1 -1
  26. package/.output/public/_nuxt/ByLPJEo6.js.br +0 -0
  27. package/.output/public/_nuxt/ByLPJEo6.js.gz +0 -0
  28. package/.output/public/_nuxt/C8tHIeGN.js +3 -0
  29. package/.output/public/_nuxt/C8tHIeGN.js.br +0 -0
  30. package/.output/public/_nuxt/C8tHIeGN.js.gz +0 -0
  31. package/.output/public/_nuxt/CAkH_IfS.js +9 -0
  32. package/.output/public/_nuxt/CAkH_IfS.js.br +0 -0
  33. package/.output/public/_nuxt/CAkH_IfS.js.gz +0 -0
  34. package/.output/public/_nuxt/COWXF9OU.js +123 -0
  35. package/.output/public/_nuxt/COWXF9OU.js.br +0 -0
  36. package/.output/public/_nuxt/COWXF9OU.js.gz +0 -0
  37. package/.output/public/_nuxt/{BDTOz37p.js → CiG2Lovu.js} +1 -1
  38. package/.output/public/_nuxt/CiG2Lovu.js.br +0 -0
  39. package/.output/public/_nuxt/CiG2Lovu.js.gz +0 -0
  40. package/.output/public/_nuxt/CnjxEm0H.js +27 -0
  41. package/.output/public/_nuxt/CnjxEm0H.js.br +0 -0
  42. package/.output/public/_nuxt/CnjxEm0H.js.gz +0 -0
  43. package/.output/public/_nuxt/DNs2cMBZ.js +23 -0
  44. package/.output/public/_nuxt/DNs2cMBZ.js.br +0 -0
  45. package/.output/public/_nuxt/DNs2cMBZ.js.gz +0 -0
  46. package/.output/public/_nuxt/D_x7Rysx.js +31 -0
  47. package/.output/public/_nuxt/D_x7Rysx.js.br +0 -0
  48. package/.output/public/_nuxt/D_x7Rysx.js.gz +0 -0
  49. package/.output/public/_nuxt/{CLf2i_DM.js → T-qXNaMY.js} +1 -1
  50. package/.output/public/_nuxt/{board.fZYj3O-m.css → board.CpFnG_Ho.css} +1 -1
  51. package/.output/public/_nuxt/board.CpFnG_Ho.css.br +0 -0
  52. package/.output/public/_nuxt/board.CpFnG_Ho.css.gz +0 -0
  53. package/.output/public/_nuxt/builds/latest.json +1 -1
  54. package/.output/public/_nuxt/builds/meta/e2ee8d99-6a6a-4754-934f-8b7dbecfcdcb.json +1 -0
  55. package/.output/public/_nuxt/entry.C_hImCpq.css +2 -0
  56. package/.output/public/_nuxt/entry.C_hImCpq.css.br +0 -0
  57. package/.output/public/_nuxt/entry.C_hImCpq.css.gz +0 -0
  58. package/.output/public/_nuxt/{settings.Cdb21nNw.css → settings.ycbeituV.css} +1 -1
  59. package/.output/public/_nuxt/settings.ycbeituV.css.br +0 -0
  60. package/.output/public/_nuxt/settings.ycbeituV.css.gz +0 -0
  61. package/.output/public/_nuxt/useViewport.D9mmYA6A.css +1 -0
  62. package/.output/public/_nuxt/useWorktrees.BWpb3OO0.css +1 -0
  63. package/.output/public/_nuxt/useWorktrees.BWpb3OO0.css.br +0 -0
  64. package/.output/public/_nuxt/useWorktrees.BWpb3OO0.css.gz +0 -0
  65. package/.output/public/sw.js +6 -2
  66. package/.output/server/chunks/_/branding.mjs +1 -1
  67. package/.output/server/chunks/_/fileDownload.mjs +1 -1
  68. package/.output/server/chunks/_/files.mjs +26 -3
  69. package/.output/server/chunks/_/machineOrder.mjs +1 -1
  70. package/.output/server/chunks/_/onboarding.mjs +1 -1
  71. package/.output/server/chunks/_/package.mjs +1 -1
  72. package/.output/server/chunks/_/plugins.mjs +1 -1
  73. package/.output/server/chunks/_/restart.mjs +1 -1
  74. package/.output/server/chunks/_/revoke.mjs +22 -0
  75. package/.output/server/chunks/_/selfupdate.mjs +2 -1
  76. package/.output/server/chunks/_/splitShell.mjs +42 -0
  77. package/.output/server/chunks/_/updates.mjs +18 -4
  78. package/.output/server/chunks/_/uploadHashes.mjs +46 -0
  79. package/.output/server/chunks/_/worktrees.mjs +1 -1
  80. package/.output/server/chunks/_/ws.mjs +3 -3
  81. package/.output/server/chunks/nitro/nitro.mjs +15815 -15082
  82. package/.output/server/chunks/raw/check-leaks.mjs +1 -1
  83. package/.output/server/chunks/raw/ci-browser-plan.mjs +5 -0
  84. package/.output/server/chunks/raw/engine-changes.mjs +5 -0
  85. package/.output/server/chunks/raw/engine-result.mjs +7 -0
  86. package/.output/server/chunks/raw/herdr-plugin.mjs +1 -1
  87. package/.output/server/chunks/raw/prerelease.mjs +1 -1
  88. package/.output/server/chunks/raw/test-affected.mjs +1 -1
  89. package/.output/server/chunks/routes/api/_..._.mjs +5 -5
  90. package/.output/server/chunks/routes/api/agents.post.mjs +5 -5
  91. package/.output/server/chunks/routes/api/ask-tab.post.mjs +5 -5
  92. package/.output/server/chunks/routes/api/attach.post.mjs +5 -5
  93. package/.output/server/chunks/routes/api/auth/disable.post.mjs +14 -7
  94. package/.output/server/chunks/routes/api/auth/lock-all.post.mjs +12 -6
  95. package/.output/server/chunks/routes/api/auth/lock.post.mjs +5 -5
  96. package/.output/server/chunks/routes/api/auth/login/options.post.mjs +7 -7
  97. package/.output/server/chunks/routes/api/auth/login/verify.post.mjs +5 -5
  98. package/.output/server/chunks/routes/api/auth/max-session.post.mjs +5 -5
  99. package/.output/server/chunks/routes/api/auth/register/options.post.mjs +5 -5
  100. package/.output/server/chunks/routes/api/auth/register/verify.post.mjs +5 -5
  101. package/.output/server/chunks/routes/api/auth/status.get.mjs +10 -10
  102. package/.output/server/chunks/routes/api/changes.get.mjs +6 -6
  103. package/.output/server/chunks/routes/api/chat/image.get.mjs +6 -6
  104. package/.output/server/chunks/routes/api/chat.get.mjs +20 -49
  105. package/.output/server/chunks/routes/api/choose.post.mjs +6 -6
  106. package/.output/server/chunks/routes/api/claude-setup.post.mjs +6 -6
  107. package/.output/server/chunks/routes/api/claude-statusline.post.mjs +6 -6
  108. package/.output/server/chunks/routes/api/clear-queued-input.post.mjs +6 -6
  109. package/.output/server/chunks/routes/api/close/status.get.mjs +6 -6
  110. package/.output/server/chunks/routes/api/close-preview.get.mjs +62 -0
  111. package/.output/server/chunks/routes/api/close.post.mjs +5 -5
  112. package/.output/server/chunks/routes/api/codex-update.post.mjs +6 -6
  113. package/.output/server/chunks/routes/api/commands.get.mjs +6 -6
  114. package/.output/server/chunks/routes/api/config.get.mjs +6 -6
  115. package/.output/server/chunks/routes/api/dirs.get.mjs +6 -6
  116. package/.output/server/chunks/routes/api/dismiss-stopped.post.mjs +6 -6
  117. package/.output/server/chunks/routes/api/dismiss.post.mjs +6 -6
  118. package/.output/server/chunks/routes/api/effort.post.mjs +6 -6
  119. package/.output/server/chunks/routes/api/efforts.get.mjs +6 -6
  120. package/.output/server/chunks/routes/api/file.post.mjs +6 -6
  121. package/.output/server/chunks/routes/api/files/download.get.mjs +5 -5
  122. package/.output/server/chunks/routes/api/files/download.head.mjs +5 -5
  123. package/.output/server/chunks/routes/api/files/read.get.mjs +6 -6
  124. package/.output/server/chunks/routes/api/files.get.mjs +6 -6
  125. package/.output/server/chunks/routes/api/health.get.mjs +5 -5
  126. package/.output/server/chunks/routes/api/input.post.mjs +6 -6
  127. package/.output/server/chunks/routes/api/interrupt.post.mjs +6 -6
  128. package/.output/server/chunks/routes/api/isgit.get.mjs +6 -6
  129. package/.output/server/chunks/routes/api/machine/awake.get.mjs +6 -6
  130. package/.output/server/chunks/routes/api/machine/awake.post.mjs +6 -6
  131. package/.output/server/chunks/routes/api/machine/order.get.mjs +5 -5
  132. package/.output/server/chunks/routes/api/machine/order.post.mjs +5 -5
  133. package/.output/server/chunks/routes/api/machine/reconnect.post.mjs +6 -6
  134. package/.output/server/chunks/routes/api/machine/rename.post.mjs +6 -6
  135. package/.output/server/chunks/routes/api/machine/status.post.mjs +6 -6
  136. package/.output/server/chunks/routes/api/menu-left.post.mjs +6 -6
  137. package/.output/server/chunks/routes/api/menu.post.mjs +6 -6
  138. package/.output/server/chunks/routes/api/model.post.mjs +6 -6
  139. package/.output/server/chunks/routes/api/models.get.mjs +6 -6
  140. package/.output/server/chunks/routes/api/nav.post.mjs +6 -6
  141. package/.output/server/chunks/routes/api/onboarding.get.mjs +5 -5
  142. package/.output/server/chunks/routes/api/onboarding.post.mjs +5 -5
  143. package/.output/server/chunks/routes/api/phone.get.mjs +6 -6
  144. package/.output/server/chunks/routes/api/phone.post.mjs +6 -6
  145. package/.output/server/chunks/routes/api/plugins/actions.get.mjs +5 -5
  146. package/.output/server/chunks/routes/api/plugins/invoke.post.mjs +5 -5
  147. package/.output/server/chunks/routes/api/plugins/projects.get.mjs +6 -6
  148. package/.output/server/chunks/routes/api/plugins/projects.post.mjs +6 -6
  149. package/.output/server/chunks/routes/api/prompt.post.mjs +6 -6
  150. package/.output/server/chunks/routes/api/push/devices.post.mjs +49 -0
  151. package/.output/server/chunks/routes/api/push/quiet.post.mjs +6 -6
  152. package/.output/server/chunks/routes/api/push/subscribe.post.mjs +8 -7
  153. package/.output/server/chunks/routes/api/push/test.post.mjs +6 -6
  154. package/.output/server/chunks/routes/api/push/unsubscribe.post.mjs +6 -6
  155. package/.output/server/chunks/routes/api/quotas.get.mjs +6 -6
  156. package/.output/server/chunks/routes/api/rename.post.mjs +5 -5
  157. package/.output/server/chunks/routes/api/requeue.post.mjs +6 -6
  158. package/.output/server/chunks/routes/api/restart.get.mjs +5 -5
  159. package/.output/server/chunks/routes/api/restart.post.mjs +5 -5
  160. package/.output/server/chunks/routes/api/reveal.post.mjs +6 -6
  161. package/.output/server/chunks/routes/api/screen-key.post.mjs +6 -6
  162. package/.output/server/chunks/routes/api/screen.get.mjs +6 -6
  163. package/.output/server/chunks/routes/api/search.get.mjs +6 -6
  164. package/.output/server/chunks/routes/api/seen.post.mjs +6 -6
  165. package/.output/server/chunks/routes/api/send-now.post.mjs +6 -6
  166. package/.output/server/chunks/routes/api/sessions.get.mjs +6 -6
  167. package/.output/server/chunks/routes/api/sessions.post.mjs +6 -6
  168. package/.output/server/chunks/routes/api/settings-tab.post.mjs +6 -6
  169. package/.output/server/chunks/routes/api/settings.get.mjs +6 -6
  170. package/.output/server/chunks/routes/api/settings.post.mjs +6 -6
  171. package/.output/server/chunks/routes/api/space.post.mjs +6 -6
  172. package/.output/server/chunks/routes/api/split-command.post.mjs +9 -44
  173. package/.output/server/chunks/routes/api/state.get.mjs +6 -6
  174. package/.output/server/chunks/routes/api/tasks/action.post.mjs +6 -6
  175. package/.output/server/chunks/routes/api/tasks/add.post.mjs +6 -6
  176. package/.output/server/chunks/routes/api/tasks/after.post.mjs +6 -6
  177. package/.output/server/chunks/routes/api/tasks/approve.post.mjs +6 -6
  178. package/.output/server/chunks/routes/api/tasks/archive-done.post.mjs +6 -6
  179. package/.output/server/chunks/routes/api/tasks/archived.get.mjs +6 -6
  180. package/.output/server/chunks/routes/api/tasks/autopilot.get.mjs +6 -6
  181. package/.output/server/chunks/routes/api/tasks/autopilot.post.mjs +6 -6
  182. package/.output/server/chunks/routes/api/tasks/board-settings.get.mjs +6 -6
  183. package/.output/server/chunks/routes/api/tasks/board-settings.post.mjs +6 -6
  184. package/.output/server/chunks/routes/api/tasks/coordinator.get.mjs +6 -6
  185. package/.output/server/chunks/routes/api/tasks/coordinator.post.mjs +6 -6
  186. package/.output/server/chunks/routes/api/tasks/describe.post.mjs +6 -6
  187. package/.output/server/chunks/routes/api/tasks/details.get.mjs +6 -6
  188. package/.output/server/chunks/routes/api/tasks/limit.post.mjs +6 -6
  189. package/.output/server/chunks/routes/api/tasks/links.get.mjs +7 -7
  190. package/.output/server/chunks/routes/api/tasks/models.get.mjs +6 -6
  191. package/.output/server/chunks/routes/api/tasks/pick.post.mjs +6 -6
  192. package/.output/server/chunks/routes/api/tasks/project.get.mjs +6 -6
  193. package/.output/server/chunks/routes/api/tasks/project.post.mjs +6 -6
  194. package/.output/server/chunks/routes/api/tasks/question.post.mjs +6 -6
  195. package/.output/server/chunks/routes/api/tasks/scheduled.get.mjs +6 -6
  196. package/.output/server/chunks/routes/api/tasks/settings.get.mjs +6 -6
  197. package/.output/server/chunks/routes/api/tasks/start.get.mjs +6 -6
  198. package/.output/server/chunks/routes/api/tasks/tell.post.mjs +6 -6
  199. package/.output/server/chunks/routes/api/tasks/transcript-image.get.mjs +47 -0
  200. package/.output/server/chunks/routes/api/tasks/transcript.get.mjs +48 -0
  201. package/.output/server/chunks/routes/api/tasks.get.mjs +6 -6
  202. package/.output/server/chunks/routes/api/unqueue.post.mjs +6 -6
  203. package/.output/server/chunks/routes/api/update/status.get.mjs +5 -5
  204. package/.output/server/chunks/routes/api/update.get.mjs +5 -5
  205. package/.output/server/chunks/routes/api/update.post.mjs +5 -5
  206. package/.output/server/chunks/routes/api/upload.post.mjs +6 -6
  207. package/.output/server/chunks/routes/api/worktrees/remove.post.mjs +5 -5
  208. package/.output/server/chunks/routes/api/worktrees.get.mjs +5 -5
  209. package/.output/server/chunks/routes/favicon.ico.get.mjs +5 -5
  210. package/.output/server/chunks/routes/icons/_name_.get.mjs +6 -6
  211. package/.output/server/chunks/routes/renderer.mjs +7 -7
  212. package/.output/server/chunks/routes/uploads/_...name_.get.mjs +6 -6
  213. package/.output/server/chunks/routes/ws/_..._.mjs +6 -6
  214. package/.output/server/chunks/routes/ws/events.mjs +6 -6
  215. package/.output/server/chunks/routes/ws/term.mjs +6 -6
  216. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  217. package/.output/server/index.mjs +6 -6
  218. package/.output/server/package.json +1 -1
  219. package/README.md +1 -1
  220. package/bin/lib/tailnet.d.mts +7 -4
  221. package/bin/lib/tailnet.mjs +76 -18
  222. package/bin/lib/updater.mjs +6 -0
  223. package/docs/README.md +4 -0
  224. package/docs/RELEASING.md +27 -5
  225. package/docs/configuration.md +3 -4
  226. package/docs/conversation.md +11 -3
  227. package/docs/design.md +1 -1
  228. package/docs/devices.md +28 -0
  229. package/docs/home.md +29 -0
  230. package/docs/installation.md +14 -5
  231. package/docs/networks.md +9 -4
  232. package/docs/notifications.md +7 -0
  233. package/docs/plugins.md +1 -1
  234. package/docs/quick-start.md +7 -6
  235. package/docs/quotas.md +10 -1
  236. package/docs/release-notes-2.5.0.md +25 -0
  237. package/docs/release-notes-2.6.0.md +29 -0
  238. package/docs/security.md +61 -11
  239. package/docs/troubleshooting.md +4 -0
  240. package/package.json +1 -1
  241. package/skills/wherdr/SKILL.md +21 -0
  242. package/.output/public/_nuxt/AgentView.B12D6ccj.css +0 -1
  243. package/.output/public/_nuxt/AgentView.B12D6ccj.css.br +0 -0
  244. package/.output/public/_nuxt/AgentView.B12D6ccj.css.gz +0 -0
  245. package/.output/public/_nuxt/B2KlcBQ-.js.br +0 -0
  246. package/.output/public/_nuxt/B2KlcBQ-.js.gz +0 -0
  247. package/.output/public/_nuxt/BDTOz37p.js.br +0 -0
  248. package/.output/public/_nuxt/BDTOz37p.js.gz +0 -0
  249. package/.output/public/_nuxt/BGD5AamG.js +0 -25
  250. package/.output/public/_nuxt/BGD5AamG.js.br +0 -0
  251. package/.output/public/_nuxt/BGD5AamG.js.gz +0 -0
  252. package/.output/public/_nuxt/BdJIc1Xf.js.gz +0 -0
  253. package/.output/public/_nuxt/BxlzUs1i.js +0 -23
  254. package/.output/public/_nuxt/BxlzUs1i.js.br +0 -0
  255. package/.output/public/_nuxt/BxlzUs1i.js.gz +0 -0
  256. package/.output/public/_nuxt/C-BDzEtI.js +0 -3
  257. package/.output/public/_nuxt/C-BDzEtI.js.br +0 -0
  258. package/.output/public/_nuxt/C-BDzEtI.js.gz +0 -0
  259. package/.output/public/_nuxt/CO4sDeSt.js +0 -62
  260. package/.output/public/_nuxt/CO4sDeSt.js.br +0 -0
  261. package/.output/public/_nuxt/CO4sDeSt.js.gz +0 -0
  262. package/.output/public/_nuxt/CPlkxpge.js.br +0 -0
  263. package/.output/public/_nuxt/CPlkxpge.js.gz +0 -0
  264. package/.output/public/_nuxt/CTPNZj4T.js +0 -9
  265. package/.output/public/_nuxt/CTPNZj4T.js.br +0 -0
  266. package/.output/public/_nuxt/CTPNZj4T.js.gz +0 -0
  267. package/.output/public/_nuxt/CgUSTIM1.js.gz +0 -0
  268. package/.output/public/_nuxt/CwurhZnh.js +0 -123
  269. package/.output/public/_nuxt/CwurhZnh.js.br +0 -0
  270. package/.output/public/_nuxt/CwurhZnh.js.gz +0 -0
  271. package/.output/public/_nuxt/D7fCPncR.js +0 -1
  272. package/.output/public/_nuxt/D7fCPncR.js.br +0 -0
  273. package/.output/public/_nuxt/D7fCPncR.js.gz +0 -0
  274. package/.output/public/_nuxt/DFe-cDm2.js +0 -1
  275. package/.output/public/_nuxt/DFe-cDm2.js.br +0 -0
  276. package/.output/public/_nuxt/DFe-cDm2.js.gz +0 -0
  277. package/.output/public/_nuxt/Dpe9TNcA.js +0 -31
  278. package/.output/public/_nuxt/Dpe9TNcA.js.br +0 -0
  279. package/.output/public/_nuxt/Dpe9TNcA.js.gz +0 -0
  280. package/.output/public/_nuxt/board.fZYj3O-m.css.br +0 -0
  281. package/.output/public/_nuxt/board.fZYj3O-m.css.gz +0 -0
  282. package/.output/public/_nuxt/builds/meta/75cc4ea7-3027-463a-aa3e-29e474ed7173.json +0 -1
  283. package/.output/public/_nuxt/entry.KNdllmoL.css +0 -2
  284. package/.output/public/_nuxt/entry.KNdllmoL.css.br +0 -0
  285. package/.output/public/_nuxt/entry.KNdllmoL.css.gz +0 -0
  286. package/.output/public/_nuxt/settings.Cdb21nNw.css.br +0 -0
  287. package/.output/public/_nuxt/settings.Cdb21nNw.css.gz +0 -0
@@ -0,0 +1,27 @@
1
+ import{A as e,B as t,Et as n,Ft as r,Hn as i,Jt as a,M as o,Mn as s,N as c,Ot as l,P as u,Pt as d,Rt as f,St as p,U as m,V as h,Zt as g,b as _,fr as v,gr as y,hr as b,ht as x,j as S,ln as C,mt as w,nn as T,sn as E,vt as D,wn as O,zn as k}from"./C25ROUa9.js";import{_t as A,gt as j,ht as ee,vt as M}from"./CDWjMk9C.js";import{$n as N,A as te,Ar as P,At as ne,B as F,Br as re,Cr as I,Dt as L,Et as ie,G as ae,I as R,K as z,L as oe,Lt as se,Pt as B,Q as ce,R as le,Rt as ue,Sr as de,W as fe,X as pe,_r as me,_t as he,ar as ge,b as _e,br as ve,cr as ye,dn as be,dt as xe,er as Se,f as V,fr as Ce,gr as we,h as Te,hr as Ee,ir as H,jt as De,k as Oe,kt as ke,lr as Ae,m as je,mr as Me,nr as Ne,or as Pe,ot as Fe,pr as Ie,r as Le,rr as Re,s as ze,tr as U,ur as W,vr as Be,wt as Ve,x as He,xr as Ue,y as We,yr as Ge,zt as Ke}from"./DNs2cMBZ.js";import{f as qe,p as Je,u as Ye}from"./CXJnLmWv.js";import{t as Xe}from"./Bpoxvzh6.js";import{c as Ze,r as Qe}from"./ByLPJEo6.js";import{A as $e,At as et,Br as tt,C as nt,E as rt,Et as G,G as it,Gr as at,H as ot,Hr as st,Jr as ct,Kr as lt,Lr as ut,M as dt,Mi as ft,Mt as pt,N as mt,Nt as ht,O as K,Ot as gt,Qr as _t,R as vt,Rr as yt,S as bt,St as xt,Tt as St,Ur as Ct,V as wt,Vr as Tt,Wr as Et,_ as Dt,_i as q,_t as Ot,a as kt,ai as At,at as jt,b as Mt,bt as Nt,ci as Pt,et as J,f as Ft,g as It,gi as Y,gr as Lt,gt as Rt,h as zt,hr as Bt,ht as Vt,i as X,ii as Ht,jt as Ut,k as Wt,kt as Gt,n as Kt,ni as Z,nt as qt,o as Jt,ot as Yt,st as Xt,tt as Zt,v as Qt,vt as $t,wt as en,x as tn}from"./COWXF9OU.js";import{E as nn,T as rn,_ as Q,a as an,c as on,d as sn,g as cn,i as ln,l as un,n as dn,o as fn,p as pn,r as mn,s as hn,t as gn,u as _n,x as vn}from"./BK1_9FXg.js";import{t as yn}from"./BDNMzG2s.js";import{M as bn,N as xn,P as Sn,a as Cn,c as wn,d as Tn,f as En,i as Dn,j as On,l as kn,m as An,n as jn,o as Mn,r as Nn,s as Pn,u as Fn}from"#entry";import{a as In,d as Ln,g as Rn,i as zn,l as Bn,n as Vn,o as Hn,r as Un,s as Wn,t as Gn,u as $}from"./B5cSia3P.js";import{a as Kn,c as qn,i as Jn,l as Yn,n as Xn,o as Zn,r as Qn,s as $n,t as er}from"./CiG2Lovu.js";var tr=m({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let a=t,s=te(),c=z(),u=e(()=>a.tabStopId||c),d=e(()=>s.currentTabStopId.value===u.value),{getItems:f,CollectionItem:m}=F();p(()=>{a.focusable&&s.onFocusableItemAdd()}),n(()=>{a.focusable&&s.onFocusableItemRemove()}),T(()=>a.focusable,(e,t)=>{e!==t&&(e?s.onFocusableItemAdd():s.onFocusableItemRemove())});function g(e){if(e.key===`Tab`&&e.shiftKey){s.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=oe(e,s.orientation.value,s.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!a.allowShiftKey&&e.shiftKey)return;e.preventDefault();let n=[...f().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=s.loop.value?le(n,r+1):n.slice(r+1)}x(()=>R(n))}}return(e,t)=>(l(),o(i(m),null,{default:E(()=>[h(i(fe),{tabindex:d.value?0:-1,"data-orientation":i(s).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?i(s).onItemFocus(u.value):t.preventDefault()},onFocus:t[1]||=e=>i(s).onItemFocus(u.value),onKeydown:g},{default:E(()=>[r(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),nr=`radio.select`;function rr(e,t,n){Ve(nr,n,{originalEvent:e,value:t})}var ir=m({inheritAttrs:!1,__name:`Radio`,props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},checked:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:checked`,`select`],setup(t,{emit:n}){let a=t,s=n,d=xe(a,`checked`,s,{passive:a.checked===void 0}),{value:f}=k(a),{forwardRef:p,currentElement:m}=pe(),g=fn(m),v=an(),y=e(()=>a.id&&m.value?document.querySelector(`[for="${a.id}"]`)?.innerText:void 0);function b(e){a.disabled||rr(e,a.value,e=>{s(`select`,e),!e?.defaultPrevented&&(d.value=!0,g.value&&e.stopPropagation())})}return(e,t)=>(l(),u(_,null,[h(i(fe),w({id:e.id,ref:i(p),role:`radio`,type:e.as===`button`?`button`:void 0,as:e.as,"aria-checked":i(d)??!1,"aria-label":y.value,"as-child":e.asChild,disabled:e.disabled?``:void 0,"data-state":i(d)?`checked`:`unchecked`,"data-disabled":e.disabled?``:void 0,value:i(f),required:e.required,name:e.name},{...i(v),...e.$attrs},{onClick:M(b,[`stop`])}),{default:E(()=>[r(e.$slots,`default`,{checked:i(d)})]),_:3},16,[`id`,`type`,`as`,`aria-checked`,`aria-label`,`as-child`,`disabled`,`data-state`,`data-disabled`,`value`,`required`,`name`]),i(g)&&e.name?(l(),o(i(ln),w({key:0,type:`radio`,tabindex:`-1`,value:i(f),checked:!!i(d),name:e.name,disabled:e.disabled,required:e.required},i(v)),null,16,[`value`,`checked`,`name`,`disabled`,`required`])):c(`v-if`,!0)],64))}}),[ar,or]=ie(`RadioGroupRoot`),sr=m({__name:`RadioGroupRoot`,props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1,default:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,a=t,{forwardRef:s,currentElement:u}=pe(),d=xe(n,`modelValue`,a,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),{disabled:f,loop:p,orientation:m,name:g,required:_,dir:v}=k(n),y=ce(v),b=fn(u);return or({modelValue:d,changeModelValue:e=>{d.value=e},disabled:f,loop:p,orientation:m,name:g?.value,required:_}),(e,t)=>(l(),o(i(Oe),{"as-child":``,orientation:i(m),dir:i(y),loop:i(p)},{default:E(()=>[h(i(fe),{ref:i(s),role:`radiogroup`,"data-disabled":i(f)?``:void 0,"as-child":e.asChild,as:e.as,"aria-orientation":i(m),"aria-required":i(_),dir:i(y)},{default:E(()=>[r(e.$slots,`default`,{modelValue:i(d)}),i(b)&&i(g)?(l(),o(i(ln),{key:0,required:i(_),disabled:i(f),value:i(d),name:i(g)},null,8,[`required`,`disabled`,`value`,`name`])):c(`v-if`,!0)]),_:3},8,[`data-disabled`,`as-child`,`as`,`aria-orientation`,`aria-required`,`dir`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),[cr,lr]=ie(`RadioGroupItem`),ur=m({inheritAttrs:!1,__name:`RadioGroupItem`,props:{id:{type:String,required:!1},value:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`select`],setup(t,{emit:n}){let a=t,c=n,{forwardRef:u,currentElement:d}=pe(),f=ar(),p=e(()=>f.disabled.value||a.disabled),m=e(()=>f.required.value||a.required),g=e(()=>Qe(f.modelValue?.value,a.value));lr({disabled:p,checked:g});let _=s(!1),v=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`];Fe(`keydown`,e=>{v.includes(e.key)&&(_.value=!0)}),Fe(`keyup`,()=>{_.value=!1});function y(){setTimeout(()=>{_.value&&d.value?.click()},0)}let b=an();return(e,t)=>(l(),o(i(tr),{checked:g.value,disabled:p.value,"as-child":``,focusable:!p.value,active:g.value},{default:E(()=>[h(ir,w({...i(b),...e.$attrs,...a},{ref:i(u),checked:g.value,required:m.value,disabled:p.value,"onUpdate:checked":t[0]||=t=>i(f).changeModelValue(e.value),onSelect:t[1]||=e=>c(`select`,e),onKeydown:t[2]||=A(M(()=>{},[`prevent`]),[`enter`]),onFocus:y}),{default:E(()=>[r(e.$slots,`default`,{checked:g.value,required:m.value,disabled:p.value})]),_:3},16,[`checked`,`required`,`disabled`])]),_:3},8,[`checked`,`disabled`,`focusable`,`active`]))}}),dr=m({__name:`RadioGroupIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:t}=pe(),n=cr();return(e,a)=>(l(),o(i(ae),{present:e.forceMount||i(n).checked.value},{default:E(()=>[h(i(fe),w({ref:i(t),"data-state":i(n).checked.value?`checked`:`unchecked`,"data-disabled":i(n).disabled.value?``:void 0,"as-child":e.asChild,as:e.as},e.$attrs),{default:E(()=>[r(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),fr={slots:{root:`relative`,fieldset:`flex gap-x-2`,legend:`mb-1 block font-medium text-default`,item:`flex items-start`,container:`flex items-center`,base:`rounded-full ring ring-inset ring-accented overflow-hidden focus-visible:outline-none`,indicator:`flex items-center justify-center size-full after:bg-default after:rounded-full`,wrapper:`w-full`,label:`block font-medium text-default`,icon:`shrink-0`,description:`text-muted`},variants:{color:{primary:{indicator:`bg-primary`},neutral:{indicator:`bg-inverted`},success:{indicator:`bg-success`},warning:{indicator:`bg-warning`},error:{indicator:`bg-error`},info:{indicator:`bg-info`}},variant:{list:{fieldset:`flex-wrap`,item:``},card:{fieldset:`flex-wrap`,item:[`border border-default rounded-lg hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:bg-elevated/50`,`transition-colors`]},table:{item:[`border border-default hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:bg-elevated/50`,`transition-colors`]}},orientation:{horizontal:{fieldset:`flex-row`},vertical:{fieldset:`flex-col`}},indicator:{start:{item:`flex-row`,wrapper:`ms-2`},end:{item:`flex-row-reverse`,wrapper:`me-2`},hidden:{base:`sr-only`,wrapper:`flex flex-col items-center gap-1 text-center`}},size:{xs:{fieldset:`gap-y-0.5`,legend:`text-xs`,base:`size-3`,item:`text-xs`,container:`h-4`,indicator:`after:size-1`},sm:{fieldset:`gap-y-0.5`,legend:`text-xs`,base:`size-3.5`,item:`text-xs`,container:`h-4`,indicator:`after:size-1`},md:{fieldset:`gap-y-1`,legend:`text-sm`,base:`size-4`,item:`text-sm`,container:`h-5`,indicator:`after:size-1.5`},lg:{fieldset:`gap-y-1`,legend:`text-sm`,base:`size-4.5`,item:`text-sm`,container:`h-5`,indicator:`after:size-1.5`},xl:{fieldset:`gap-y-1.5`,legend:`text-base`,base:`size-5`,item:`text-base`,container:`h-6`,indicator:`after:size-2`}},highlight:{true:``,false:``},disabled:{true:{item:`opacity-75`,base:`cursor-not-allowed`,label:`cursor-not-allowed`,description:`cursor-not-allowed`}},required:{true:{legend:`after:content-['*'] after:ms-0.5 after:text-error`}}},compoundVariants:[{indicator:`hidden`,class:{container:`h-auto`}},{variant:[`card`,`table`],highlight:!1,class:{item:`hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:border-accented`}},{size:`xs`,indicator:`hidden`,class:{icon:`size-3`}},{size:`sm`,indicator:`hidden`,class:{icon:`size-3.5`}},{size:`md`,indicator:`hidden`,class:{icon:`size-4`}},{size:`lg`,indicator:`hidden`,class:{icon:`size-4.5`}},{size:`xl`,indicator:`hidden`,class:{icon:`size-5`}},{size:`xs`,variant:[`card`,`table`],class:{item:`p-2.5`}},{size:`sm`,variant:[`card`,`table`],class:{item:`p-3`}},{size:`md`,variant:[`card`,`table`],class:{item:`p-3.5`}},{size:`lg`,variant:[`card`,`table`],class:{item:`p-4`}},{size:`xl`,variant:[`card`,`table`],class:{item:`p-4.5`}},{orientation:`horizontal`,variant:`table`,class:{item:`first-of-type:rounded-s-lg last-of-type:rounded-e-lg`,fieldset:`gap-0 -space-x-px`}},{orientation:`vertical`,variant:`table`,class:{item:`first-of-type:rounded-t-lg last-of-type:rounded-b-lg`,fieldset:`gap-0 -space-y-px`}},{color:`primary`,variant:`list`,indicator:[`start`,`end`],class:{base:`outline-primary/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-primary`}},{color:`neutral`,variant:`list`,indicator:[`start`,`end`],class:{base:`outline-neutral/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-neutral`}},{color:`success`,variant:`list`,indicator:[`start`,`end`],class:{base:`outline-success/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-success`}},{color:`warning`,variant:`list`,indicator:[`start`,`end`],class:{base:`outline-warning/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-warning`}},{color:`error`,variant:`list`,indicator:[`start`,`end`],class:{base:`outline-error/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-error`}},{color:`info`,variant:`list`,indicator:[`start`,`end`],class:{base:`outline-info/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-info`}},{color:`neutral`,variant:`list`,indicator:[`start`,`end`],class:{base:`outline-inverted/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-inverted`}},{color:`primary`,variant:[`card`,`table`],class:{item:`outline-primary/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-primary has-focus-visible:z-[1]`}},{color:`neutral`,variant:[`card`,`table`],class:{item:`outline-neutral/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-neutral has-focus-visible:z-[1]`}},{color:`success`,variant:[`card`,`table`],class:{item:`outline-success/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-success has-focus-visible:z-[1]`}},{color:`warning`,variant:[`card`,`table`],class:{item:`outline-warning/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-warning has-focus-visible:z-[1]`}},{color:`error`,variant:[`card`,`table`],class:{item:`outline-error/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-error has-focus-visible:z-[1]`}},{color:`info`,variant:[`card`,`table`],class:{item:`outline-info/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-info has-focus-visible:z-[1]`}},{color:`neutral`,variant:[`card`,`table`],class:{item:`outline-inverted/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-inverted has-focus-visible:z-[1]`}},{color:`primary`,variant:`list`,indicator:`hidden`,class:{item:`outline-primary/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-primary has-focus-visible:z-[1]`}},{color:`neutral`,variant:`list`,indicator:`hidden`,class:{item:`outline-neutral/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-neutral has-focus-visible:z-[1]`}},{color:`success`,variant:`list`,indicator:`hidden`,class:{item:`outline-success/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-success has-focus-visible:z-[1]`}},{color:`warning`,variant:`list`,indicator:`hidden`,class:{item:`outline-warning/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-warning has-focus-visible:z-[1]`}},{color:`error`,variant:`list`,indicator:`hidden`,class:{item:`outline-error/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-error has-focus-visible:z-[1]`}},{color:`info`,variant:`list`,indicator:`hidden`,class:{item:`outline-info/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-info has-focus-visible:z-[1]`}},{color:`neutral`,variant:`list`,indicator:`hidden`,class:{item:`outline-inverted/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-inverted has-focus-visible:z-[1]`}},{color:`primary`,variant:`card`,class:{item:`has-data-[state=checked]:border-primary/50 has-data-[state=checked]:bg-primary/10`}},{color:`neutral`,variant:`card`,class:{item:`has-data-[state=checked]:border-neutral/50 has-data-[state=checked]:bg-neutral/10`}},{color:`success`,variant:`card`,class:{item:`has-data-[state=checked]:border-success/50 has-data-[state=checked]:bg-success/10`}},{color:`warning`,variant:`card`,class:{item:`has-data-[state=checked]:border-warning/50 has-data-[state=checked]:bg-warning/10`}},{color:`error`,variant:`card`,class:{item:`has-data-[state=checked]:border-error/50 has-data-[state=checked]:bg-error/10`}},{color:`info`,variant:`card`,class:{item:`has-data-[state=checked]:border-info/50 has-data-[state=checked]:bg-info/10`}},{color:`neutral`,variant:`card`,class:{item:`has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:bg-elevated`}},{color:`primary`,variant:`table`,class:{item:`has-data-[state=checked]:bg-primary/10 has-data-[state=checked]:border-primary/50 has-data-[state=checked]:z-[1]`}},{color:`neutral`,variant:`table`,class:{item:`has-data-[state=checked]:bg-neutral/10 has-data-[state=checked]:border-neutral/50 has-data-[state=checked]:z-[1]`}},{color:`success`,variant:`table`,class:{item:`has-data-[state=checked]:bg-success/10 has-data-[state=checked]:border-success/50 has-data-[state=checked]:z-[1]`}},{color:`warning`,variant:`table`,class:{item:`has-data-[state=checked]:bg-warning/10 has-data-[state=checked]:border-warning/50 has-data-[state=checked]:z-[1]`}},{color:`error`,variant:`table`,class:{item:`has-data-[state=checked]:bg-error/10 has-data-[state=checked]:border-error/50 has-data-[state=checked]:z-[1]`}},{color:`info`,variant:`table`,class:{item:`has-data-[state=checked]:bg-info/10 has-data-[state=checked]:border-info/50 has-data-[state=checked]:z-[1]`}},{color:`neutral`,variant:`table`,class:{item:`has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]`}},{variant:[`card`,`table`],disabled:!0,class:{item:`cursor-not-allowed`}},{color:`primary`,indicator:`hidden`,highlight:!0,class:{item:`not-has-disabled:border-primary not-has-disabled:has-data-[state=checked]:border-primary`}},{color:`neutral`,indicator:`hidden`,highlight:!0,class:{item:`not-has-disabled:border-neutral not-has-disabled:has-data-[state=checked]:border-neutral`}},{color:`success`,indicator:`hidden`,highlight:!0,class:{item:`not-has-disabled:border-success not-has-disabled:has-data-[state=checked]:border-success`}},{color:`warning`,indicator:`hidden`,highlight:!0,class:{item:`not-has-disabled:border-warning not-has-disabled:has-data-[state=checked]:border-warning`}},{color:`error`,indicator:`hidden`,highlight:!0,class:{item:`not-has-disabled:border-error not-has-disabled:has-data-[state=checked]:border-error`}},{color:`info`,indicator:`hidden`,highlight:!0,class:{item:`not-has-disabled:border-info not-has-disabled:has-data-[state=checked]:border-info`}},{color:`neutral`,indicator:`hidden`,highlight:!0,class:{item:`not-has-disabled:border-inverted not-has-disabled:has-data-[state=checked]:border-inverted`}},{color:`primary`,highlight:!0,class:{base:`ring-primary`}},{color:`neutral`,highlight:!0,class:{base:`ring-neutral`}},{color:`success`,highlight:!0,class:{base:`ring-success`}},{color:`warning`,highlight:!0,class:{base:`ring-warning`}},{color:`error`,highlight:!0,class:{base:`ring-error`}},{color:`info`,highlight:!0,class:{base:`ring-info`}},{color:`neutral`,highlight:!0,class:{base:`ring-inverted`}}],defaultVariants:{highlight:!1,size:`md`,color:`primary`,variant:`list`,indicator:`start`}},pr={__name:`URadioGroup`,props:{as:{type:null,required:!1},legend:{type:String,required:!1},valueKey:{type:null,required:!1,default:`value`},labelKey:{type:null,required:!1,default:`label`},descriptionKey:{type:null,required:!1,default:`description`},items:{type:null,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},size:{type:null,required:!1},variant:{type:null,required:!1},color:{type:null,required:!1},highlight:{type:Boolean,required:!1},orientation:{type:null,required:!1,default:`vertical`},indicator:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},disabled:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`change`,`update:modelValue`],setup(n,{emit:s}){let p=n,m=s,b=g(),x=_e(`radioGroup`,p),C=Ze(),T=We(he(x,`as`,`loop`,`required`),m),{emitFormChange:D,emitFormInput:O,color:k,name:A,size:j,highlight:ee,id:M,disabled:N,ariaAttrs:te}=Te(p,{bind:!1}),P=M.value??a(),ne=e(()=>k.value??x.color),F=e(()=>ee.value??x.highlight),re=e(()=>j.value??x.size),I=e(()=>N.value??x.disabled),L=e(()=>je({extend:fr,...C.ui?.radioGroup||{}})({size:re.value,color:ne.value,highlight:F.value,disabled:I.value,required:x.required,orientation:x.orientation,variant:x.variant,indicator:x.indicator}));function ie(e){if(e===null)return{id:`${P}:null`,value:void 0,label:void 0};if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`)return{id:`${P}:${e}`,value:String(e),label:String(e)};let t=He(e,x.valueKey),n=He(e,x.labelKey),r=He(e,x.descriptionKey);return{...e,value:t,label:n,description:r,id:`${P}:${t}`}}let ae=e(()=>x.items?x.items.map(ie):[]);function R(e){return x.indicator===`hidden`?e.icon:void 0}function z(e){let t=new Event(`change`,{target:{value:e}});m(`change`,t),D(),O()}return(e,n)=>(l(),o(i(sr),w({id:i(P)},i(T),{"model-value":i(x).modelValue,"default-value":i(x).defaultValue,orientation:i(x).orientation,name:i(A),disabled:I.value,"data-slot":`root`,class:L.value.root({class:[i(x).ui?.root,i(x).class]}),"onUpdate:modelValue":z}),{default:E(()=>[S(`fieldset`,w({"data-slot":`fieldset`,class:L.value.fieldset({class:i(x).ui?.fieldset})},i(te)),[i(x).legend||b.legend?(l(),u(`legend`,{key:0,"data-slot":`legend`,class:v(L.value.legend({class:i(x).ui?.legend}))},[r(e.$slots,`legend`,{},()=>[t(y(i(x).legend),1)])],2)):c(``,!0),(l(!0),u(_,null,d(ae.value,n=>(l(),o(f(!i(x).variant||i(x).variant===`list`?`div`:i(mn)),{key:n.value,"data-slot":`item`,class:v(L.value.item({class:[i(x).ui?.item,n.ui?.item,n.class],disabled:n.disabled||I.value}))},{default:E(()=>[S(`div`,{"data-slot":`container`,class:v(L.value.container({class:[i(x).ui?.container,n.ui?.container]}))},[h(i(ur),{id:n.id,value:n.value,disabled:n.disabled||I.value,"data-slot":`base`,class:v(L.value.base({class:[i(x).ui?.base,n.ui?.base],disabled:n.disabled||I.value}))},{default:E(()=>[h(i(dr),{"data-slot":`indicator`,class:v(L.value.indicator({class:[i(x).ui?.indicator,n.ui?.indicator]}))},null,8,[`class`])]),_:2},1032,[`id`,`value`,`disabled`,`class`])],2),R(n)||n.label||b.label||n.description||b.description?(l(),u(`div`,{key:0,"data-slot":`wrapper`,class:v(L.value.wrapper({class:[i(x).ui?.wrapper,n.ui?.wrapper]}))},[R(n)?(l(),o(V,{key:0,name:R(n),"data-slot":`icon`,class:v(L.value.icon({class:[i(x).ui?.icon,n.ui?.icon]}))},null,8,[`name`,`class`])):c(``,!0),n.label||b.label?(l(),o(f(!i(x).variant||i(x).variant===`list`?i(mn):`p`),{key:1,for:n.id,"data-slot":`label`,class:v(L.value.label({class:[i(x).ui?.label,n.ui?.label],disabled:n.disabled||I.value}))},{default:E(()=>[r(e.$slots,`label`,{item:n,modelValue:i(x).modelValue},()=>[t(y(n.label),1)])]),_:2},1032,[`for`,`class`])):c(``,!0),n.description||b.description?(l(),u(`p`,{key:2,"data-slot":`description`,class:v(L.value.description({class:[i(x).ui?.description,n.ui?.description],disabled:n.disabled||I.value}))},[r(e.$slots,`description`,{item:n,modelValue:i(x).modelValue},()=>[t(y(n.description),1)])],2)):c(``,!0)],2)):c(``,!0)]),_:2},1032,[`class`]))),128))],16)]),_:3},16,[`id`,`model-value`,`default-value`,`orientation`,`name`,`disabled`,`class`]))}},mr={class:`theme-section-title bar-pref-title`},hr={key:0,class:`settings-toggle`},gr={class:`bar-pref-head`},_r={class:`machine-group-list`},vr=[`onClick`],yr={class:`machine-group-summary`},br={class:`machine-group-name`},xr={class:`muted settings-hint`},Sr={key:2,class:`bar-pref-head`},Cr=[`data-bar-id`],wr=[`aria-label`,`title`,`onPointerdown`,`onKeydown`],Tr={class:`bar-pref-label`},Er=[`checked`,`onChange`],Dr=[`title`],Or={key:2},kr={key:4,class:`machine-group-actions`},Ar={class:`muted settings-hint`},jr=Object.assign(m({__name:`MachineBarSettings`,setup(n){p(hn);let r=_n,a=s(null),f=s([]),m=e=>ot(it.value.find(t=>(t.baseKey??t.key)===e)?.key??e)||e||dt.value||`herdr`;function g(e){a.value=e?{...e,machines:[...e.machines]}:{id:`*group:${crypto.randomUUID()}`,name:``,machines:[]},f.value=[...new Set([...a.value.machines,...cn.value.length?cn.value:[``]])]}let w=qe(),k=s(null);T(()=>[w.query.group,Q.value.length],([e])=>{let t=typeof e==`string`?Q.value.find(t=>t.id===e):void 0;if(!t)return;g(t);let{group:n,...r}=w.query;Ye({path:w.path,query:r},{replace:!0}),x(()=>k.value?.scrollIntoView?.({block:`start`}))},{immediate:!0});function A(){let e=a.value;if(!e?.name.trim())return;let t={...e,name:e.name.trim(),machines:f.value.filter(t=>e.machines.includes(t))};Q.value=Q.value.some(e=>e.id===t.id)?Q.value.map(e=>e.id===t.id?t:e):[...Q.value,t],a.value=null}function j(){let e=a.value.id;Q.value=Q.value.filter(t=>t.id!==e),sn.value=sn.value.filter(t=>t!==e),on.value=on.value.filter(t=>t!==e),pn.value===e&&(pn.value=`*`),a.value=null}let M=s(null),N=s(null),te={online:`online`,connecting:`reconnecting…`,offline:`offline`};function P(e){let t=it.value.filter(t=>(t.baseKey??t.key)===e);return t.length?t.some(e=>e.status===`online`)?`online`:t.some(e=>e.status===`connecting`)?`connecting`:`offline`:e===``&&K.value.ok?`online`:`offline`}let ne=e(()=>a.value?f.value.map(e=>({id:e,label:m(e),shown:a.value.machines.includes(e),status:P(e)})):un.value.map(e=>({...e,label:e.id===`*`?Y(`All`):Q.value.find(t=>t.id===e.id)?.name||m(e.id),status:e.id===`*`||Q.value.some(t=>t.id===e.id)?null:P(e.id)}))),F=()=>ne.value.map(e=>e.id),re=e(()=>!sn.value.length&&!on.value.length);function I(e,t){if(a.value){a.value.machines=t?[...a.value.machines,e]:a.value.machines.filter(t=>t!==e);return}on.value=nn(on.value,e,t)}function L(e,t){let n=rn(F(),e,t);a.value?f.value=n:n.join(`
2
+ `)!==F().join(`
3
+ `)&&(sn.value=n)}function ie(e,t){let n=F().indexOf(e);if(t.key===`ArrowUp`&&n>0)L(e,n-1);else if(t.key===`ArrowDown`&&n<F().length-1)L(e,n+2);else return;t.preventDefault(),Z(),x(()=>M.value?.querySelector(`[data-bar-id="${CSS.escape(e)}"] .bar-pref-grip`)?.focus())}function ae(e){let t=N.value;if(t){if(e===t.from)return`translateY(${t.dy}px)`;if(t.from<e&&e<=t.to)return`translateY(${-t.h}px)`;if(t.to<=e&&e<t.from)return`translateY(${t.h}px)`}}function R(e){N.value&&e.preventDefault()}let z=null;D(()=>z?.());function oe(e,t){if(N.value||!t.isPrimary||t.pointerType===`mouse`&&t.button!==0)return;t.preventDefault();let n=[...M.value?.querySelectorAll(`[data-bar-id]`)||[]],r=n.findIndex(t=>t.dataset.barId===e);if(r<0)return;let i=n.map(e=>{let t=e.getBoundingClientRect();return t.top+t.height/2}),a=n[r].getBoundingClientRect().height,o=t.clientY;N.value={id:e,from:r,dy:0,to:r,h:a},Z();let s=e=>{if(e.pointerId!==t.pointerId||!N.value)return;let n=e.clientY-o,a=i[r]+n,s=i.filter((e,t)=>t!==r&&e<a).length;s!==N.value.to&&Z(),N.value={...N.value,dy:n,to:s}},c=n=>r=>{if(r.pointerId!==t.pointerId)return;let i=N.value;z?.(),n&&i&&i.to!==i.from&&L(e,i.to>i.from?i.to+1:i.to)};z=()=>{z=null,N.value=null,window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,l),window.removeEventListener(`pointercancel`,u),document.removeEventListener(`touchmove`,R)};let l=c(!0),u=c(!1);window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,l),window.addEventListener(`pointercancel`,u),document.addEventListener(`touchmove`,R,{passive:!1})}return(e,n)=>{let s=gn,f=V,p=ze;return l(),u(`div`,{ref_key:`root`,ref:k,class:`machine-bar-settings`},[S(`h4`,mr,y((`tl`in e?e.tl:i(q))(`Machine bar`,`Barre des machines`)),1),i(a)?c(``,!0):(l(),u(`label`,hr,[S(`span`,null,[S(`b`,null,y((`tl`in e?e.tl:i(q))(`Show the machine bar`,`Afficher la barre des machines`)),1),S(`small`,null,y((`tl`in e?e.tl:i(q))(`At the top of the home screen: “All”, then each machine. A tap shows that machine only.`,`En haut de l’accueil : « Toutes », puis chaque machine. Un toucher n’affiche que cette machine.`)),1)]),h(s,{modelValue:i(r),"onUpdate:modelValue":n[0]||=e=>O(r)?r.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])])),i(r)?(l(),u(_,{key:1},[i(a)?(l(),u(_,{key:1},[h(p,{color:`neutral`,variant:`ghost`,icon:`i-lucide-arrow-left`,onClick:n[2]||=e=>a.value=null},{default:E(()=>[t(y((`t`in e?e.t:i(Y))(`Cancel`)),1)]),_:1}),S(`label`,br,[t(y((`tl`in e?e.tl:i(q))(`Group name`,`Nom du groupe`)),1),C(S(`input`,{"onUpdate:modelValue":n[3]||=e=>i(a).name=e,type:`text`,maxlength:`100`},null,512),[[ee,i(a).name]])]),S(`p`,xr,y((`tl`in e?e.tl:i(q))(`Check the machines to include. Drag the handles to set their order.`,`Cochez les machines à inclure. Glissez les poignées pour définir leur ordre.`)),1)],64)):(l(),u(_,{key:0},[S(`h4`,gr,y((`tl`in e?e.tl:i(q))(`Groups`,`Groupes`)),1),S(`ul`,_r,[(l(!0),u(_,null,d(`machineGroups`in e?e.machineGroups:i(Q),t=>(l(),u(`li`,{key:t.id},[S(`button`,{type:`button`,onClick:e=>g(t)},[h(f,{name:`i-lucide-group`}),S(`span`,yr,[S(`b`,null,y(t.name),1),S(`small`,null,y(t.machines.map(m).join(` · `)||(`tl`in e?e.tl:i(q))(`No machines`,`Aucune machine`)),1)]),h(f,{name:`i-lucide-chevron-right`})],8,vr)]))),128))]),h(p,{class:`new-machine-group`,color:`neutral`,variant:`outline`,icon:`i-lucide-plus`,onClick:n[1]||=e=>g()},{default:E(()=>[t(y((`tl`in e?e.tl:i(q))(`New group`,`Nouveau groupe`)),1)]),_:1})],64)),i(a)?c(``,!0):(l(),u(`p`,Sr,y((`tl`in e?e.tl:i(q))(`Order and display`,`Ordre et affichage`)),1)),S(`ul`,{ref_key:`list`,ref:M,class:v([`bar-pref-list`,{dragging:i(N)}])},[(l(!0),u(_,null,d(i(ne),(t,n)=>(l(),u(`li`,{key:t.id,class:v([`bar-pref-row`,{moving:i(N)?.id===t.id,off:!t.shown}]),style:b({transform:ae(n)}),"data-bar-id":t.id},[S(`button`,{type:`button`,class:`bar-pref-grip`,"aria-label":(`tl`in e?e.tl:i(q))(`Move ${t.label} — up and down arrows`,`Déplacer ${t.label} — flèches haut et bas`),title:(`t`in e?e.t:i(Y))(`Drag to reorder`),onPointerdown:e=>oe(t.id,e),onKeydown:e=>ie(t.id,e)},`⠿`,40,wr),S(`label`,Tr,[S(`input`,{class:`agent-pref-check`,type:`checkbox`,checked:t.shown,onChange:e=>I(t.id,e.target.checked)},null,40,Er),!i(a)&&(`machineGroups`in e?e.machineGroups:i(Q)).some(e=>e.id===t.id)?(l(),o(f,{key:0,name:`i-lucide-group`,"aria-hidden":`true`})):c(``,!0),t.status?(l(),u(`i`,{key:1,class:v([`bar-pref-state`,t.status]),title:(`t`in e?e.t:i(Y))(te[t.status]),"aria-hidden":`true`},null,10,Dr)):c(``,!0),S(`span`,null,y(t.label),1),t.status&&t.status!==`online`?(l(),u(`small`,Or,y((`t`in e?e.t:i(Y))(te[t.status])),1)):c(``,!0)])],14,Cr))),128))],2),i(a)?c(``,!0):(l(),o(p,{key:3,color:`neutral`,variant:`outline`,icon:`i-lucide-rotate-ccw`,class:`bar-pref-reset`,disabled:i(re),onClick:`resetMachineBar`in e?e.resetMachineBar:i(vn)},{default:E(()=>[t(y((`machineGroups`in e?e.machineGroups:i(Q)).length?(`tl`in e?e.tl:i(q))(`Reset: All + groups + machines`,`Rétablir : Toutes + groupes + machines`):(`tl`in e?e.tl:i(q))(`Reset: All + every machine`,`Rétablir : Toutes + toutes les machines`)),1)]),_:1},8,[`disabled`,`onClick`])),i(a)?(l(),u(`div`,kr,[(`machineGroups`in e?e.machineGroups:i(Q)).some(e=>e.id===i(a).id)?(l(),o(p,{key:0,class:`delete-machine-group`,color:`error`,variant:`outline`,onClick:j},{default:E(()=>[t(y((`t`in e?e.t:i(Y))(`Delete`)),1)]),_:1})):c(``,!0),h(p,{class:`save-machine-group`,color:`neutral`,disabled:!i(a).name.trim(),onClick:A},{default:E(()=>[t(y((`t`in e?e.t:i(Y))(`Save`)),1)]),_:1},8,[`disabled`])])):c(``,!0)],64)):c(``,!0),S(`p`,Ar,y((`t`in e?e.t:i(Y))(`Choices follow you on every device.`)),1)],512)}}}),{__name:`MachineBarSettings`}),Mr=`J’ai trouvé la cause : le cache n’était jamais invalidé après une mise à jour. Le correctif tient en trois points :
4
+
5
+ - vider l’entrée à chaque écriture ;
6
+ - ajouter un test de régression ;
7
+ - garder la durée de vie à 5 minutes.
8
+
9
+ \`\`\`ts
10
+ cache.delete(key)
11
+ await save(item)
12
+ \`\`\`
13
+
14
+ Tous les tests passent.`,Nr=`Found the cause: the cache was never invalidated after an update. The fix has three parts:
15
+
16
+ - clear the entry on every write;
17
+ - add a regression test;
18
+ - keep the time to live at 5 minutes.
19
+
20
+ \`\`\`ts
21
+ cache.delete(key)
22
+ await save(item)
23
+ \`\`\`
24
+
25
+ All tests pass.`,Pr=e=>e===`fr`?Mr:Nr,Fr=(e,t)=>e===`off`?null:t,Ir={class:`typing-preview`},Lr=[`aria-label`,`disabled`],Rr=Object.assign(m({__name:`TypingPreview`,setup(e){let t=Ln(Pr(`en`)),n=s(null),r=s(null),a=s(``),o=()=>{n.value=Fr(et.value,Date.now())};return p(()=>{r.value&&(a.value=`${r.value.offsetHeight}px`),o()}),T([et,bt],o),(e,s)=>{let c=V,d=Le,f=Rn;return l(),u(`figure`,Ir,[S(`figcaption`,null,[S(`span`,null,y((`t`in e?e.t:i(Y))(`Preview`)),1),h(d,{text:(`t`in e?e.t:i(Y))(`Replay`)},{default:E(()=>[S(`button`,{type:`button`,class:`typing-replay`,"aria-label":(`t`in e?e.t:i(Y))(`Replay`),disabled:!(`typewriterActive`in e?e.typewriterActive:i(gt)),onClick:o},[h(c,{name:`i-lucide-rotate-ccw`})],8,Lr)]),_:1},8,[`text`])]),S(`div`,{ref_key:`box`,ref:r,class:`typing-sample md`,style:b({minHeight:i(a)})},[h(f,{html:i(t),typing:i(n),onDone:s[0]||=e=>n.value=null},null,8,[`html`,`typing`])],4)])}}}),{__name:`TypingPreview`}),zr=[`data-mode`,`data-playing`],Br=[`aria-label`,`disabled`],Vr={class:`qt-conv`},Hr={class:`qt-agent`},Ur={class:`qt-tag one`},Wr={class:`qt-tag two`},Gr={class:`qt-sent`},Kr={class:`qt-sent-q`},qr={class:`qt-sent-q`},Jr={class:`qt-chips`},Yr={class:`qt-chip one`},Xr={class:`qt-chip two`},Zr={class:`qt-field`},Qr={class:`qt-ph`},$r={class:`qt-tok one`},ei={class:`qt-ans one`},ti={class:`qt-tok two`},ni=Object.assign(m({__name:`QuoteTokensPreview`,props:{mode:{}},setup(e){let n=e,r=s(0),a=s(!1),o=()=>{jt.value||(r.value++,a.value=!0)};return p(o),T(()=>n.mode,o),(n,s)=>{let c=V,d=Le;return l(),u(`figure`,{class:`qt-preview`,"data-mode":e.mode,"data-playing":i(a)},[S(`figcaption`,null,[S(`span`,null,y((`t`in n?n.t:i(Y))(`Preview`)),1),h(d,{text:(`t`in n?n.t:i(Y))(`Replay`)},{default:E(()=>[S(`button`,{type:`button`,class:`typing-replay`,"aria-label":(`t`in n?n.t:i(Y))(`Replay`),disabled:`reducedMotion`in n?n.reducedMotion:i(jt),onClick:o},[h(c,{name:`i-lucide-rotate-ccw`})],8,Br)]),_:1},8,[`text`])]),(l(),u(`div`,{key:i(r),class:`qt-stage`,"aria-hidden":`true`,onAnimationend:s[0]||=e=>a.value=!1},[S(`div`,Vr,[S(`div`,Hr,[S(`p`,null,[t(y((`tl`in n?n.tl:i(q))(`Tea or coffee?`,`Thé ou café ?`))+` `,1),S(`span`,Ur,`↳ `+y((`t`in n?n.t:i(Y))(`Reply`)),1)]),S(`p`,null,[t(y((`tl`in n?n.tl:i(q))(`And your favorite series?`,`Et ta série préférée ?`))+` `,1),S(`span`,Wr,`↳ `+y((`t`in n?n.t:i(Y))(`Reply`)),1)])]),S(`div`,Gr,[S(`span`,Kr,[s[1]||=S(`b`,null,`↳ 09:12`,-1),t(y((`tl`in n?n.tl:i(q))(`Tea or coffee?`,`Thé ou café ?`)),1)]),S(`span`,null,y((`tl`in n?n.tl:i(q))(`Coffee.`,`Café.`)),1),S(`span`,qr,[s[2]||=S(`b`,null,`↳ 09:12`,-1),t(y((`tl`in n?n.tl:i(q))(`And your favorite series?`,`Et ta série préférée ?`)),1)]),s[3]||=S(`span`,null,`Lost !`,-1)])]),S(`div`,Jr,[S(`span`,Yr,[t(y((`tl`in n?n.tl:i(q))(`Tea or coffee?`,`Thé ou café ?`)),1),s[4]||=S(`i`,null,`✕`,-1)]),S(`span`,Xr,[t(y((`tl`in n?n.tl:i(q))(`And your favorite series?`,`Et ta série préférée ?`)),1),s[5]||=S(`i`,null,`✕`,-1)])]),S(`div`,Zr,[S(`span`,Qr,y((`tl`in n?n.tl:i(q))(`Message to Claude…`,`Message à Claude…`)),1),S(`span`,$r,[s[6]||=S(`b`,null,`↳`,-1),s[7]||=S(`em`,null,`Quote point 09:12 :`,-1),S(`span`,null,y((`tl`in n?n.tl:i(q))(`Tea or coffee?`,`Thé ou café ?`)),1),s[8]||=S(`em`,null,`—`,-1)]),S(`span`,ei,y((`tl`in n?n.tl:i(q))(`Coffee.`,`Café.`)),1),S(`span`,ti,[s[9]||=S(`b`,null,`↳`,-1),s[10]||=S(`em`,null,`Quote point 09:12 :`,-1),S(`span`,null,y((`tl`in n?n.tl:i(q))(`And your favorite series?`,`Et ta série préférée ?`)),1),s[11]||=S(`em`,null,`—`,-1)]),s[12]||=S(`span`,{class:`qt-ans two`},`Lost !`,-1),s[13]||=S(`span`,{class:`qt-send`},`↑`,-1)])],32))],8,zr)}}}),{__name:`QuoteTokensPreview`}),ri={class:`settings-group phone-key-order`},ii={class:`muted settings-lead`},ai={class:`bar-pref-head`},oi={class:`key-order-preview`,"aria-hidden":`true`},si=[`data-key`],ci={class:`bar-pref-head`},li=[`aria-label`],ui=[`data-key-row`],di=[`aria-label`,`title`,`onPointerdown`,`onKeydown`],fi={class:`key-order-label`},pi={class:`key-order-name`},mi=[`disabled`,`aria-label`,`onClick`],hi=[`disabled`,`aria-label`,`onClick`],gi={class:`key-order-announcement`,"aria-live":`polite`},_i={class:`muted settings-hint`},vi=Object.assign(m({__name:`PhoneKeyOrderSettings`,setup(n){let r=e(()=>J.value.map(e=>Bn[e])),a=e(()=>pt(J.value)),c=s(``),f=s(null);function p(e,t){let n=ht(J.value,e,t);if(n.join(`
26
+ `)===J.value.join(`
27
+ `))return;J.value=n,Z();let r=n.indexOf(e)+1;c.value=q(`${$(Bn[e])}: position ${r} of ${n.length}`,`${$(Bn[e])} : position ${r} sur ${n.length}`)}function m(e,t){x(()=>{let n=f.value?.querySelector(`[data-key-row="${CSS.escape(e)}"]`),r=n?.querySelector(t);r&&!r.disabled?r.focus():n?.querySelector(`.key-order-step:not(:disabled)`)?.focus()})}function g(e,t){p(e,J.value.indexOf(e)+t),m(e,t<0?`.key-order-up`:`.key-order-down`)}function C(e,t){let n=J.value.indexOf(e);if(t.key===`ArrowUp`&&n>0)p(e,n-1);else if(t.key===`ArrowDown`&&n<J.value.length-1)p(e,n+1);else return;t.preventDefault(),m(e,`.bar-pref-grip`)}function w(){J.value=[...Ut],c.value=q(`Default order restored`,`Ordre par défaut rétabli`)}let T=s(null);function O(e){let t=T.value;if(t){if(e===t.from)return`translateY(${t.dy}px)`;if(t.from<e&&e<=t.to)return`translateY(${-t.h}px)`;if(t.to<=e&&e<t.from)return`translateY(${t.h}px)`}}function k(e){T.value&&e.preventDefault()}let A=null;D(()=>A?.());function j(e,t){if(T.value||!t.isPrimary||t.pointerType===`mouse`&&t.button!==0)return;t.preventDefault();let n=[...f.value?.querySelectorAll(`[data-key-row]`)||[]],r=n.findIndex(t=>t.dataset.keyRow===e);if(r<0)return;let i=n.map(e=>{let t=e.getBoundingClientRect();return t.top+t.height/2}),a=n[r].getBoundingClientRect().height,o=t.clientY;T.value={id:e,from:r,dy:0,to:r,h:a},Z();let s=e=>{if(e.pointerId!==t.pointerId||!T.value)return;let n=e.clientY-o,a=i[r]+n,s=i.filter((e,t)=>t!==r&&e<a).length;s!==T.value.to&&Z(),T.value={...T.value,dy:n,to:s}},c=n=>r=>{if(r.pointerId!==t.pointerId)return;let i=T.value;A?.(),n&&i&&i.to!==i.from&&p(e,i.to)},l=c(!0),u=c(!1);A=()=>{A=null,T.value=null,window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,l),window.removeEventListener(`pointercancel`,u),document.removeEventListener(`touchmove`,k)},window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,l),window.addEventListener(`pointercancel`,u),document.addEventListener(`touchmove`,k,{passive:!1})}return(e,n)=>{let s=V,p=ze;return l(),u(`div`,ri,[S(`h3`,null,y((`tl`in e?e.tl:i(q))(`Phone key bar`,`Barre de touches du téléphone`)),1),S(`p`,ii,y((`tl`in e?e.tl:i(q))(`One row that scrolls sideways, in the Conversation and the Terminal: only the first keys show at once. Put the ones you use most first.`,`Une seule rangée qui défile sur le côté, dans la Conversation et le Terminal : seules les premières touches sont visibles d’emblée. Mets en tête celles dont tu te sers le plus.`)),1),S(`p`,ai,y((`tl`in e?e.tl:i(q))(`Preview`,`Aperçu`)),1),S(`div`,oi,[(l(!0),u(_,null,d(i(r),e=>(l(),u(`span`,{key:e.id,class:v([`key-order-cap`,{danger:e.danger}]),"data-key":e.id},[e.icon?(l(),o(s,{key:0,name:e.icon,mode:`svg`},null,8,[`name`])):(l(),u(_,{key:1},[t(y(e.cap()),1)],64))],10,si))),128))]),S(`p`,ci,y((`tl`in e?e.tl:i(q))(`Order`,`Ordre`)),1),S(`ul`,{ref_key:`list`,ref:f,class:v([`bar-pref-list key-order-list`,{dragging:i(T)}]),"aria-label":(`tl`in e?e.tl:i(q))(`Order of the phone keys`,`Ordre des touches du téléphone`)},[(l(!0),u(_,null,d(i(r),(n,a)=>(l(),u(`li`,{key:n.id,class:v([`bar-pref-row`,{moving:i(T)?.id===n.id}]),style:b({transform:O(a)}),"data-key-row":n.id},[S(`button`,{type:`button`,class:`bar-pref-grip`,"aria-label":(`tl`in e?e.tl:i(q))(`Move ${i($)(n)} — up and down arrows`,`Déplacer ${i($)(n)} — flèches haut et bas`),title:(`t`in e?e.t:i(Y))(`Drag to reorder`),onPointerdown:e=>j(n.id,e),onKeydown:e=>C(n.id,e)},`⠿`,40,di),S(`span`,fi,[S(`span`,{class:v([`key-order-cap`,{danger:n.danger}]),"aria-hidden":`true`},[n.icon?(l(),o(s,{key:0,name:n.icon,mode:`svg`},null,8,[`name`])):(l(),u(_,{key:1},[t(y(n.cap()),1)],64))],2),S(`span`,pi,y(i($)(n)),1)]),S(`button`,{type:`button`,class:`key-order-step key-order-up`,disabled:a===0,"aria-label":(`tl`in e?e.tl:i(q))(`Move ${i($)(n)} up`,`Monter ${i($)(n)}`),onClick:e=>g(n.id,-1)},[h(s,{name:`i-lucide-chevron-up`})],8,mi),S(`button`,{type:`button`,class:`key-order-step key-order-down`,disabled:a===i(r).length-1,"aria-label":(`tl`in e?e.tl:i(q))(`Move ${i($)(n)} down`,`Descendre ${i($)(n)}`),onClick:e=>g(n.id,1)},[h(s,{name:`i-lucide-chevron-down`})],8,hi)],14,ui))),128))],10,li),S(`p`,gi,y(i(c)),1),h(p,{color:`neutral`,variant:`outline`,icon:`i-lucide-rotate-ccw`,class:`bar-pref-reset`,disabled:i(a),onClick:w},{default:E(()=>[t(y((`tl`in e?e.tl:i(q))(`Reset to default order`,`Rétablir l’ordre par défaut`)),1)]),_:1},8,[`disabled`]),S(`p`,_i,y((`tl`in e?e.tl:i(q))(`Saved on this device.`,`Enregistré sur cet appareil.`)),1)])}}}),{__name:`PhoneKeyOrderSettings`}),yi={class:`settings-group`},bi={class:`settings-card wt-card`},xi={key:0,class:`muted`},Si={key:1,class:`muted`},Ci=[`aria-label`],wi=[`id`,`aria-selected`,`aria-controls`,`tabindex`,`onClick`,`onKeydown`],Ti=[`id`,`aria-labelledby`],Ei=[`aria-expanded`,`aria-controls`,`onClick`],Di={class:`wt-count`},Oi=[`id`],ki={class:`wt-main`},Ai={class:`wt-meta`},ji={class:`wt-path`},Mi=[`disabled`,`aria-label`,`onClick`],Ni={key:0,class:`spinner`},Pi={class:`muted`},Fi=Object.assign(m({__name:`WorktreesSection`,setup(n){p(Gn);let r=e(()=>[...new Set((zn.value||[]).map(e=>e.machine))]),f=s(null),m=e(()=>f.value!==null&&r.value.includes(f.value)?f.value:r.value[0]),g=e(()=>{let e=new Map;for(let t of zn.value||[])t.machine===m.value&&(e.has(t.repoRoot)||e.set(t.repoRoot,{root:t.repoRoot,name:t.repo,items:[]}),e.get(t.repoRoot).items.push(t));return[...e.values()]}),b=s(new Set),x=e=>JSON.stringify([m.value,e]);function w(e){let t=x(e);b.value.has(t)?b.value.delete(t):b.value.add(t)}let T=a(),E=e=>`${T}-machine-${r.value.indexOf(e)}`;function D(e,t){if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key))return;e.preventDefault();let n=r.value.length,i=e.key===`Home`?0:e.key===`End`?n-1:(t+(e.key===`ArrowRight`?1:-1)+n)%n;f.value=r.value[i],document.getElementById(E(f.value))?.focus()}let O=e(()=>!!(K.value.machines&&K.value.machines.length>1)),k=e=>(K.value.machines||[]).find(t=>t.key===e)?.label||e||dt.value;function A(e){return e.prunable?Y(`folder missing`):e.workspace?e.agents?q(`open · ${e.agents} agent${e.agents>1?`s`:``}`,`ouvert · ${e.agents} agent${e.agents>1?`s`:``}`):q(`open`,`ouvert`):Y(`closed`)}let ee=s(null);async function M(e){ee.value=e.path,await Vn(e),ee.value=null}return(e,n)=>{let a=V;return l(),u(`div`,yi,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Worktrees`)),1),S(`div`,bi,[(`worktrees`in e?e.worktrees:i(zn))===null?(l(),u(`p`,xi,[...n[0]||=[S(`span`,{class:`spinner`},null,-1)]])):(`worktrees`in e?e.worktrees:i(zn)).length?(l(),u(_,{key:2},[S(`div`,{class:`wt-machines`,role:`tablist`,"aria-label":(`t`in e?e.t:i(Y))(`Worktrees`)},[(l(!0),u(_,null,d(i(r),(e,t)=>(l(),u(`button`,{id:E(e),key:e,type:`button`,role:`tab`,"aria-selected":i(m)===e,"aria-controls":`${i(T)}-panel`,tabindex:i(m)===e?0:-1,onClick:t=>f.value=e,onKeydown:e=>D(e,t)},y(k(e)),41,wi))),128))],8,Ci),S(`div`,{id:`${i(T)}-panel`,role:`tabpanel`,tabindex:`0`,"aria-labelledby":E(i(m))},[(l(!0),u(_,null,d(i(g),(r,s)=>(l(),u(`section`,{key:x(r.root),class:`wt-project`},[S(`button`,{type:`button`,class:`wt-project-heading`,"aria-expanded":!i(b).has(x(r.root)),"aria-controls":`${i(T)}-project-${s}`,onClick:e=>w(r.root)},[h(a,{name:i(b).has(x(r.root))?`i-lucide-chevron-right`:`i-lucide-chevron-down`},null,8,[`name`]),S(`span`,null,y(r.name),1),S(`span`,Di,y(r.items.length),1)],8,Ei),C(S(`ul`,{id:`${i(T)}-project-${s}`,class:`wt-list`},[(l(!0),u(_,null,d(r.items,r=>(l(),u(`li`,{key:`${r.machine}|${r.path}`,class:v({open:r.workspace,gone:r.prunable})},[S(`div`,ki,[S(`b`,null,[h(a,{name:`i-lucide-git-branch`}),t(y((`worktreeName`in e?e.worktreeName:i(Un))(r)),1)]),S(`span`,Ai,[t(y(r.repo),1),i(O)?(l(),u(_,{key:0},[t(` · `+y(k(r.machine)),1)],64)):c(``,!0),n[1]||=t(` · `,-1),S(`i`,null,y(A(r)),1)]),S(`span`,ji,y((`shortPath`in e?e.shortPath:i(Pt))(r.path)),1)]),S(`button`,{type:`button`,class:`wt-del`,disabled:i(ee)===r.path,"aria-label":(`t`in e?e.t:i(Y))(`Delete`),onClick:e=>M(r)},[i(ee)===r.path?(l(),u(`span`,Ni)):(l(),o(a,{key:1,name:`i-lucide-trash-2`}))],8,Mi)],2))),128))],8,Oi),[[j,!i(b).has(x(r.root))]])]))),128))],8,Ti)],64)):(l(),u(`p`,Si,y((`t`in e?e.t:i(Y))(`No worktrees.`)),1)),S(`p`,Pi,y((`t`in e?e.t:i(Y))(`Deleting a worktree removes its folder; the Git branch is kept.`)),1)])])}}}),{__name:`WorktreesSection`}),Ii={class:`notification-level`},Li=[`value`,`aria-label`],Ri={key:0,value:`custom`,disabled:``},zi=[`value`],Bi={class:`notification-level-hint`},Vi=[`open`],Hi={class:`notification-events`},Ui=[`checked`,`onChange`],Wi=Object.assign(yn(m({__name:`NotificationLevel`,props:{events:{},label:{},muted:{type:Boolean}},emits:[`change`],setup(n,{emit:r}){let a=n,o=r,s=e(()=>a.muted?`muted`:de(a.events));function f(e){o(`change`,[...me[e]])}function p(e,t){o(`change`,Be.filter(n=>n===e?t:a.events.includes(n)))}return(e,r)=>{let a=V;return l(),u(`div`,Ii,[S(`select`,{value:i(s),"aria-label":n.label,onChange:r[0]||=e=>f(e.target.value)},[i(s)===`custom`?(l(),u(`option`,Ri,y((`levelLabel`in e?e.levelLabel:i(H))(`custom`)),1)):c(``,!0),(l(!0),u(_,null,d(i(Ge),t=>(l(),u(`option`,{key:t,value:t},y((`levelLabel`in e?e.levelLabel:i(H))(t)),9,zi))),128))],40,Li),S(`small`,Bi,y(i(s)===`custom`?(`t`in e?e.t:i(Y))(`Only the events checked under Customize.`):(`levelHint`in e?e.levelHint:i(Re))(i(s))),1),S(`details`,{class:`notification-customize`,open:i(s)===`custom`||void 0},[S(`summary`,null,[h(a,{name:`i-lucide-chevron-right`,class:`notification-chev`}),t(y((`t`in e?e.t:i(Y))(`Customize`)),1)]),S(`div`,Hi,[(l(!0),u(_,null,d(i(Be),r=>(l(),u(`label`,{key:r},[S(`input`,{type:`checkbox`,checked:!n.muted&&n.events.includes(r),onChange:e=>p(r,e.target.checked)},null,40,Ui),t(` `+y((`eventLabel`in e?e.eventLabel:i(Ne))(r)),1)]))),128))])],8,Vi)])}}}),[[`__scopeId`,`data-v-aa9b4e30`]]),{__name:`NotificationLevel`}),Gi={class:`notification-rules`,"data-testid":`notification-rules`},Ki={class:`settings-group notification-default`,"data-testid":`notification-default`},qi={class:`settings-toggle notification-subagents`},Ji={class:`muted notification-help`},Yi={class:`settings-group notification-exceptions`,"data-testid":`notification-exceptions`},Xi={key:0,class:`muted`},Zi={class:`notification-rule-head`},Qi={class:`notification-diff`},$i={key:0,class:`settings-toggle notification-subagents`},ea=[`onClick`],ta={class:`muted`},na=[`aria-expanded`],ra={key:1,class:`notification-picker`,"data-testid":`notification-picker`},ia={key:0,class:`muted`},aa=[`onClick`],oa=Object.assign(yn(m({__name:`NotificationRules`,setup(n){Ee(),we();let r=P(),a=ye,o=ge;function f(e){Ie({...a.value,default:{...a.value.default,...e}})}let p=e(()=>a.value.default.events),m=e(()=>a.value.exceptions.filter(e=>Ue(e,o.value)&&!(e.kind===`conversation`&&v(e.id))).map(e=>({e,machine:Pe(e.machine),name:g(e)})).sort((e,t)=>e.machine.localeCompare(t.machine)||e.name.localeCompare(t.name)));function g(e){return e.kind===`coordinator`?N(e.machine,e.id):b(e.id)||e.label}function v(e){let t=K.value.panes.find(t=>t.id===e);return t?!!Ae(t).subagent:!1}let b=e=>K.value.panes.find(t=>t.id===e)?.title||``,x=e=>e.until!==null&&e.until>o.value?e.until:null,C=e=>e.events??p.value;function w(e){let t=U(),n=x(e);if(n)return e.events===null?q(`Muted until ${_t(n)}, then back to the default (${t})`,`Muet jusqu’au ${_t(n)}, puis retour au défaut (${t})`):q(`Muted until ${_t(n)}, then ${H(de(e.events))}`,`Muet jusqu’au ${_t(n)}, puis ${H(de(e.events))}`);let r=ve(C(e),p.value);return r===1?q(`Louder than the default (${t})`,`Plus que le défaut (${t})`):r===-1?q(`Quieter than the default (${t})`,`Moins que le défaut (${t})`):r===0?q(`Same as the default (${t})`,`Identique au défaut (${t})`):q(`Different from the default (${t})`,`Différent du défaut (${t})`)}let T=e=>e.kind===`coordinator`?Y(`Coordinator`):Y(`Conversation`),E=s(!1),D=e(()=>{let e=new Map,t=t=>{if(a.value.exceptions.some(e=>Ue(e,o.value)&&I(e,t)))return;let n=e.get(t.machine)??{machine:t.machine,name:Pe(t.machine),items:[]};n.items.some(e=>I(e,t))||n.items.push(t),e.set(t.machine,n)},n={top:0,machine:1,project:2};for(let e of r.value)for(let r of[...e.coordinators].sort((e,t)=>n[e.level]-n[t.level]||(e.repo??``).localeCompare(t.repo??``)))t(Se(e.machine,r));for(let e of K.value.panes){if(!e.agent)continue;let n=W(e);n?.kind===`conversation`&&t(n)}return[...e.values()].sort((e,t)=>e.name.localeCompare(t.name))});function O(e){let t=de(p.value)===`muted`;Me(e,{events:t?[...me.finished]:[],subagents:!1,until:null}),E.value=!1}function k(){Ie({...a.value,exceptions:[]}),G(q(`All exceptions removed. Everything follows the default: ${U()}`,`Exceptions retirées. Tout suit le défaut : ${U()}`))}return(e,n)=>{let r=Wi,o=gn,s=V;return l(),u(`div`,Gi,[S(`div`,Ki,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Default (applies to everything)`)),1),h(r,{events:i(p),label:(`t`in e?e.t:i(Y))(`Default level`),onChange:n[0]||=e=>f({events:e})},null,8,[`events`,`label`]),S(`label`,qi,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Sub-agents`)),1),S(`small`,null,y(i(a).default.subagents?(`t`in e?e.t:i(Y))(`On: task agents (workers, reviewers, attempts) notify too, at the same level.`):(`t`in e?e.t:i(Y))(`Off: only coordinators, standalone agents and board events notify. Task agents stay silent.`)),1)]),h(o,{color:`success`,size:`xl`,"model-value":i(a).default.subagents,"aria-label":(`t`in e?e.t:i(Y))(`Sub-agents`),"onUpdate:modelValue":n[1]||=e=>f({subagents:e})},null,8,[`model-value`,`aria-label`])]),S(`p`,Ji,y((`t`in e?e.t:i(Y))(`Visible conversations stay silent on every device. Push resumes after about 30 seconds away. Inactive tabs expire automatically.`)),1)]),S(`div`,Yi,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Exceptions`)),1),i(m).length?c(``,!0):(l(),u(`p`,Xi,y((`t`in e?e.t:i(Y))(`No exceptions: everything follows the default. Add one for a coordinator or an agent, or use Notifications in its menu.`)),1)),(l(!0),u(_,null,d(i(m),({e:n,machine:a,name:d})=>(l(),u(`article`,{key:JSON.stringify([n.kind,n.machine,n.id]),class:`notification-rule`,"data-testid":`notification-exception`},[S(`div`,Zi,[S(`small`,null,y(a)+` · `+y(T(n)),1),S(`b`,null,y(d),1),S(`small`,Qi,y(w(n)),1)]),h(r,{events:C(n),muted:!!x(n),label:(`tl`in e?e.tl:i(q))(`Notifications: ${d}`,`Notifications : ${d}`),onChange:t=>(`setException`in e?e.setException:i(Me))(n,{events:t,until:null})},null,8,[`events`,`muted`,`label`,`onChange`]),n.kind===`coordinator`?(l(),u(`label`,$i,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Sub-agents`)),1),S(`small`,null,y(n.subagents?(`t`in e?e.t:i(Y))(`On: the task agents of this board follow this exception.`):(`t`in e?e.t:i(Y))(`Off: only this coordinator. Its board’s task agents follow the default.`)),1)]),h(o,{color:`success`,size:`lg`,"model-value":n.subagents,"aria-label":(`tl`in e?e.tl:i(q))(`Sub-agents: ${d}`,`Sous-agents : ${d}`),"onUpdate:modelValue":t=>(`setException`in e?e.setException:i(Me))(n,{subagents:t})},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])])):c(``,!0),S(`button`,{type:`button`,class:`settings-action`,onClick:t=>(`removeException`in e?e.removeException:i(Ce))(n)},[h(s,{name:`i-lucide-x`}),t(y((`t`in e?e.t:i(Y))(`Remove exception`)),1),S(`small`,ta,y((`tl`in e?e.tl:i(q))(`Back to the default: ${(`defaultLevelLabel`in e?e.defaultLevelLabel:i(U))()}`,`Retour au défaut : ${(`defaultLevelLabel`in e?e.defaultLevelLabel:i(U))()}`)),1)],8,ea)]))),128)),S(`button`,{type:`button`,class:`settings-action solo notification-add`,"aria-expanded":i(E),onClick:n[2]||=e=>E.value=!i(E)},[h(s,{name:`i-lucide-plus`}),t(y((`t`in e?e.t:i(Y))(`Add an exception`)),1)],8,na),i(E)?(l(),u(`div`,ra,[i(D).length?c(``,!0):(l(),u(`p`,ia,y((`t`in e?e.t:i(Y))(`No coordinator or agent conversation to add. Task agents follow the Sub-agents switch.`)),1)),(l(!0),u(_,null,d(i(D),e=>(l(),u(`div`,{key:e.machine,class:`notification-picker-group`},[S(`small`,null,y(e.name),1),(l(!0),u(_,null,d(e.items,e=>(l(),u(`button`,{key:e.kind+e.id,type:`button`,class:`settings-action`,onClick:t=>O(e)},[h(s,{name:e.kind===`coordinator`?`i-lucide-message-square-text`:`i-lucide-bot`},null,8,[`name`]),t(y(e.label),1)],8,aa))),128))]))),128))])):c(``,!0),i(m).length?(l(),u(`button`,{key:2,type:`button`,class:`settings-action solo notification-reset`,onClick:k},[h(s,{name:`i-lucide-rotate-ccw`}),t(y((`t`in e?e.t:i(Y))(`Remove all exceptions`)),1)])):c(``,!0)])])}}}),[[`__scopeId`,`data-v-aeafb17e`]]),{__name:`NotificationRules`}),sa={key:0,class:`settings-card push-devices`,"data-testid":`push-devices`},ca={class:`muted`},la={class:`push-device-main`},ua={key:0},da={class:`muted`},fa=[`onClick`],pa=Object.assign(yn(m({__name:`PushDevices`,setup(e){let n={apple:[`Apple (Safari, iPhone, iPad)`,`Apple (Safari, iPhone, iPad)`],google:[`Chrome or Android`,`Chrome ou Android`],mozilla:[`Firefox`,`Firefox`],microsoft:[`Edge (Windows)`,`Edge (Windows)`]},r=e=>n[e]?q(...n[e]):q(`Other browser`,`Autre navigateur`),a=e=>new Date(e).toLocaleString(`en-GB`,{day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`});function o(e){let t=e.last;if(!t)return{text:q(`Nothing sent yet`,`Rien d’envoyé pour l’instant`),tone:`none`};let n=a(t.at),r=t.code?` (${t.code})`:``;switch(t.status){case`ok`:return{text:q(`Delivered · ${n}`,`Distribuée · ${n}`),tone:`ok`};case`expired`:return{text:q(`Expired${r} · ${n}: this subscription no longer exists`,`Expirée${r} · ${n} : cet abonnement n’existe plus`),tone:`bad`};case`rejected`:return{text:q(`Rejected by the push service${r} · ${n}`,`Refusée par le service push${r} · ${n}`),tone:`bad`};case`network`:return{text:q(`Push service unreachable · ${n}`,`Service push injoignable · ${n}`),tone:`bad`};default:return{text:q(`Failed${r} · ${n}`,`Échec${r} · ${n}`),tone:`bad`}}}return p(()=>st()),(e,n)=>{let s=V;return(`pushDevices`in e?e.pushDevices:i(ut))&&(`pushDevices`in e?e.pushDevices:i(ut)).length?(l(),u(`div`,sa,[S(`p`,ca,y((`tl`in e?e.tl:i(q))(`Registered devices and the result of the last notification sent to each.`,`Appareils enregistrés et résultat de la dernière notification envoyée à chacun.`)),1),S(`ul`,null,[(l(!0),u(_,null,d(`pushDevices`in e?e.pushDevices:i(ut),n=>(l(),u(`li`,{key:n.id,"data-testid":`push-device`},[S(`div`,la,[S(`b`,null,[t(y(r(n.provider)),1),n.current?(l(),u(`small`,ua,y((`tl`in e?e.tl:i(q))(`This device`,`Cet appareil`)),1)):c(``,!0)]),S(`span`,da,y((`tl`in e?e.tl:i(q))(`Added ${a(n.addedAt)}`,`Ajouté ${a(n.addedAt)}`)),1),S(`span`,{class:v(`push-result push-result-${o(n).tone}`)},y(o(n).text),3)]),n.last?.status===`expired`?(l(),u(`button`,{key:0,type:`button`,class:`push-device-remove`,onClick:t=>(`refreshPushDevices`in e?e.refreshPushDevices:i(st))(n.id)},[h(s,{name:`i-lucide-trash-2`}),t(y((`tl`in e?e.tl:i(q))(`Remove`,`Retirer`)),1)],8,fa)):c(``,!0)]))),128))])])):c(``,!0)}}}),[[`__scopeId`,`data-v-a2f67b97`]]),{__name:`PushDevices`}),ma={class:`settings-group projects-plugin`},ha={class:`projects-plugin-intro`},ga=[`href`],_a={class:`projects-plugin-head`},va={key:0},ya={key:1},ba={key:2},xa={key:0,class:`projects-plugin-note`},Sa={key:0,class:`projects-plugin-actions`},Ca={class:`projects-plugin-note projects-plugin-update`},wa={key:0,class:`projects-plugin-actions`},Ta={key:1,class:`projects-plugin-note`},Ea={key:3,class:`projects-plugin-note`},Da={key:4,class:`projects-plugin-note`},Oa={key:2,class:`plugin-input-note reload projects-plugin-reload`},ka={key:3,class:`projects-plugin-note`},Aa={key:0,class:`projects-plugin-notify`},ja={class:`projects-plugin-note`},Ma={class:`projects-upgrade-cmd`},Na={class:`projects-plugin-command`},Pa=Object.assign(m({__name:`ProjectsPluginSettings`,props:{machines:{}},setup(n){let r=n,a=s({}),f=s({}),p=s({}),m=s({}),g=s({});async function b(e){if(e.online){p.value={...p.value,[e.key]:!0};try{let t=await X(`/api/plugins/projects?machine=${encodeURIComponent(e.key)}`);a.value={...a.value,[e.key]:t},f.value={...f.value,[e.key]:``}}catch(t){f.value={...f.value,[e.key]:t.message}}finally{p.value={...p.value,[e.key]:!1}}}}T(()=>r.machines.map(e=>`${e.key}:${e.online}`).join(`|`),()=>{for(let e of r.machines)b(e)},{immediate:!0});async function x(e){if(Z(),await be(q(`Install herdr-projects 1.2.21 on ${e.label}? Herdr downloads the plugin from GitHub (release ${Kn}, a prebuilt program) and runs its installer on this machine.`,`Installer herdr-projects 1.2.21 sur ${e.label} ? Herdr télécharge le plugin depuis GitHub (version ${Kn}, un programme déjà compilé) et exécute son installation sur cette machine.`),Y(`Install`),`primary`)){m.value={...m.value,[e.key]:!0};try{await X(`/api/plugins/projects`,{machine:e.key}),G(q(`herdr-projects installed on ${e.label}.`,`herdr-projects installé sur ${e.label}.`)),g.value={...g.value,[e.key]:`install`},await b(e)}catch(e){G(e.message,!0)}finally{m.value={...m.value,[e.key]:!1}}}}let C=e=>!!e&&e.status===`ready`&&qn(e.program),w=[[`1.2.8`,`auto access for agents`,`l’accès auto des agents`],[`1.2.10`,`a settings page`,`une page de réglages`],[`1.2.11`,`chat-only tasks`,`les tâches conversation seule`],[`1.2.14`,`archiving every done task at once`,`l’archivage de tous les terminés d’un coup`],[`1.2.15`,`autopilot`,`l’autopilot`],[`1.2.18`,`archiving a whole project`,`l’archivage d’un projet entier`]];function D(e){let t=w.filter(([t])=>!Yn(e,t)),n=q(`your tasks and settings stay.`,`tes tâches et tes réglages restent.`);return t.length?q(`Adds ${t.map(e=>e[1]).join(`, `)}, and fixes; ${n}`,`Ajoute ${t.map(e=>e[2]).join(`, `)}, et des corrections ; ${n}`):q(`Fixes and smaller changes; ${n}`,`Des corrections et de petits changements ; ${n}`)}async function O(e){Z();let t=a.value[e.key]?.program||``;if(await be(q(`Update herdr-projects from ${t} to 1.2.21 on ${e.label}? Herdr downloads release ${Kn} from GitHub (a prebuilt program) and replaces its copy of the plugin. Your tasks and settings stay.`,`Mettre à jour herdr-projects de ${t} en 1.2.21 sur ${e.label} ? Herdr télécharge la version ${Kn} depuis GitHub (un programme déjà compilé) et remplace sa copie du plugin. Tes tâches et tes réglages restent.`),q(`Update`,`Mettre à jour`),`primary`)){m.value={...m.value,[e.key]:!0};try{await X(`/api/plugins/projects`,{machine:e.key,update:!0}),G(q(`herdr-projects updated to ${$n} on ${e.label}.`,`herdr-projects mis à jour en ${$n} sur ${e.label}.`)),g.value={...g.value,[e.key]:`update`},await b(e)}catch(e){G(e.message,!0)}finally{m.value={...m.value,[e.key]:!1}}}}let k=re(Qn),A=e(()=>Object.values(a.value).some(e=>e.status===`ready`));async function j(){try{await navigator.clipboard.writeText(k),G(Y(`Copied`))}catch{G(q(`Copy failed`,`Copie impossible`),!0)}}function ee(e){let t=e.program||e.version,n=t?` · v${t}`:``;return C(e)?q(`Update available`,`Mise à jour disponible`)+n:e.status===`ready`?q(`Installed`,`Installé`)+n:e.status===`disabled`?q(`Disabled`,`Désactivé`)+n:e.status===`shepherdr`?q(`Shepherdr 2 unsupported`,`Shepherdr 2 non pris en charge`)+n:e.status===`old`?q(`Update needed`,`Mise à jour nécessaire`)+n:q(`Not installed`,`Non installé`)}return(e,r)=>{let s=V,b=ze,w=er,T=Xe;return l(),u(`div`,ma,[r[6]||=S(`h3`,null,`herdr-projects`,-1),S(`p`,ha,y((`tl`in e?e.tl:i(q))(`herdr-projects is a work board for Herdr: one list of tasks, each handed to an agent in its own space. wherdr shows its tasks on the Board, where you can add tasks, start and stop them, reply to an agent, approve finished work and write to its coordinators. It needs herdr-projects ${i(Jn)} or later; the plugin is optional.`,`herdr-projects est un tableau de travail pour Herdr : une liste de tâches, chacune confiée à un agent dans son propre space. wherdr affiche ses tâches dans le Board, où tu peux ajouter des tâches, les lancer et les arrêter, répondre à un agent, approuver un travail fini et écrire à ses coordinateurs. Il faut herdr-projects ${i(Jn)} ou plus ; le plugin est facultatif.`)),1),S(`a`,{class:`projects-plugin-link`,href:i(Zn),target:`_blank`,rel:`noopener noreferrer`},[t(y((`tl`in e?e.tl:i(q))(`View plugin repository`,`Voir le dépôt du plugin`))+` `,1),h(s,{name:`i-lucide-external-link`})],8,ga),(l(!0),u(_,null,d(n.machines,n=>(l(),u(`div`,{key:n.key,class:`projects-plugin-machine`},[S(`div`,_a,[S(`strong`,null,y(n.label),1),n.online?i(p)[n.key]&&!i(a)[n.key]?(l(),u(`span`,ya,y((`tl`in e?e.tl:i(q))(`Checking…`,`Vérification…`)),1)):i(f)[n.key]?(l(),u(`span`,ba,y((`tl`in e?e.tl:i(q))(`Status unavailable`,`État indisponible`)),1)):i(a)[n.key]?(l(),u(`span`,{key:3,class:v([i(a)[n.key].status,{behind:C(i(a)[n.key])}])},y(ee(i(a)[n.key])),3)):c(``,!0):(l(),u(`span`,va,y((`tl`in e?e.tl:i(q))(`Offline`,`Hors ligne`)),1))]),n.online&&i(f)[n.key]?(l(),u(`p`,xa,y(i(f)[n.key]),1)):c(``,!0),n.online&&i(a)[n.key]&&!i(f)[n.key]?(l(),u(_,{key:1},[i(a)[n.key].status===`missing`&&i(a)[n.key].installable?(l(),u(`div`,Sa,[h(b,{size:`sm`,color:`primary`,icon:`i-lucide-download`,loading:i(m)[n.key],onClick:e=>x(n)},{default:E(()=>[t(y((`tl`in e?e.tl:i(q))(`Install herdr-projects`,`Installer herdr-projects`)),1)]),_:1},8,[`loading`,`onClick`])])):c(``,!0),C(i(a)[n.key])?(l(),u(_,{key:1},[S(`p`,Ca,y((`tl`in e?e.tl:i(q))(`Tested with ${i($n)}.`,`Testé avec ${i($n)}.`))+` `+y(D(i(a)[n.key].program)),1),i(a)[n.key].installable?(l(),u(`div`,wa,[h(b,{size:`sm`,color:`primary`,icon:`i-lucide-circle-arrow-up`,loading:i(m)[n.key],onClick:e=>O(n)},{default:E(()=>[t(y((`tl`in e?e.tl:i(q))(`Update to ${i($n)}`,`Mettre à jour en ${i($n)}`)),1)]),_:1},8,[`loading`,`onClick`])])):(l(),u(`p`,Ta,[t(y((`tl`in e?e.tl:i(q))(`By hand on this machine:`,`À la main sur cette machine :`))+` `,1),S(`code`,null,y(i(Xn)),1)]))],64)):c(``,!0),i(a)[n.key].status===`missing`||i(a)[n.key].status===`old`||i(a)[n.key].status===`shepherdr`?(l(),o(w,{key:2,status:i(a)[n.key].status,version:i(a)[n.key].version},null,8,[`status`,`version`])):c(``,!0),i(a)[n.key].status===`disabled`?(l(),u(`p`,Ea,y((`tl`in e?e.tl:i(q))(`The plugin is disabled in Herdr: herdr plugin enable herdr-projects`,`Le plugin est désactivé dans Herdr : herdr plugin enable herdr-projects`)),1)):c(``,!0),i(a)[n.key].status===`ready`?(l(),u(`p`,Da,[h(T,{to:`/board`},{default:E(()=>[t(y((`tl`in e?e.tl:i(q))(`Open the Board`,`Ouvrir le Board`)),1)]),_:1})])):c(``,!0)],64)):c(``,!0),i(g)[n.key]?(l(),u(`div`,Oa,[h(s,{name:`i-lucide-refresh-cw`}),S(`div`,null,[S(`strong`,null,y((`tl`in e?e.tl:i(q))(`Reload the Herdr client config`,`Recharge la config du client Herdr`)),1),S(`p`,null,[t(y((`tl`in e?e.tl:i(q))(`In the Herdr terminal: `,`Dans le terminal Herdr : `)),1),r[0]||=S(`kbd`,null,`prefix`,-1),r[1]||=t(` + `,-1),r[2]||=S(`kbd`,null,`Shift`,-1),r[3]||=t(` + `,-1),r[4]||=S(`kbd`,null,`R`,-1),r[5]||=t(`.`,-1),i(g)[n.key]===`install`?(l(),u(_,{key:0},[t(y((`tl`in e?e.tl:i(q))(`Then open its work board once in Herdr: it asks its first-run questions there.`,`Puis ouvre une fois son tableau dans Herdr : il y pose ses questions de premier lancement.`)),1)],64)):c(``,!0)])])])):c(``,!0),!n.online||i(f)[n.key]?(l(),u(`p`,ka,[t(y((`tl`in e?e.tl:i(q))(`By hand on this machine:`,`À la main sur cette machine :`))+` `,1),S(`code`,null,y(i(Xn)),1)])):c(``,!0)]))),128)),i(A)?(l(),u(`div`,Aa,[S(`strong`,null,y((`tl`in e?e.tl:i(q))(`Push for the Board`,`Notifications du Board`)),1),S(`p`,ja,y((`tl`in e?e.tl:i(q))(`To get a push when a task needs you, is ready to approve, or failed, run this once on each machine with herdr-projects. A tap on the push opens the task.`,`Pour recevoir une notification quand une tâche a besoin de toi, est prête à approuver ou a échoué, lance ceci une fois sur chaque machine qui a herdr-projects. Toucher la notification ouvre la tâche.`)),1),S(`div`,Ma,[S(`code`,Na,y(i(k)),1),h(b,{size:`sm`,color:`neutral`,variant:`outline`,icon:`i-lucide-copy`,"aria-label":(`t`in e?e.t:i(Y))(`Copy command`),onClick:j},null,8,[`aria-label`])])])):c(``,!0)])}}}),{__name:`ProjectsPluginSettings`}),Fa={class:`network-tips`},Ia={class:`network-tips-label`},La=Object.assign(m({__name:`NetworkTips`,setup(e){return(e,n)=>{let r=V;return l(),u(`div`,Fa,[S(`p`,Ia,y((`tl`in e?e.tl:i(q))(`Good practices`,`Bonnes pratiques`)),1),S(`ul`,null,[S(`li`,null,[h(r,{name:`i-lucide-shield-check`}),t(y((`tl`in e?e.tl:i(q))(`Prefer Tailscale: a private HTTPS address, only for your devices.`,`Préfère Tailscale : une adresse HTTPS privée, pour tes appareils seulement.`)),1)]),S(`li`,null,[h(r,{name:`i-lucide-wifi`}),t(y((`tl`in e?e.tl:i(q))(`A network added without HTTPS gets no passkey, no installed app and no notifications, and any device on it can control your agents.`,`Un réseau ajouté sans HTTPS n’a ni passkey, ni app installée, ni notifications, et tout appareil de ce réseau peut piloter tes agents.`)),1)]),S(`li`,null,[h(r,{name:`i-lucide-lock`}),t(y((`tl`in e?e.tl:i(q))(`Optional: a passkey adds an automatic lock on each device (over HTTPS).`,`Facultatif : une passkey ajoute un verrou automatique sur chaque appareil (en HTTPS).`)),1)])])])}}}),{__name:`NetworkTips`});function Ra(){let e=navigator.userAgent;return/iPhone/.test(e)?`iPhone`:/iPad/.test(e)||Ht&&!/iPhone/.test(e)?`iPad`:/Macintosh/.test(e)?`Mac`:/Windows/.test(e)?`Windows`:/Android/.test(e)?`Android`:Y(`Device`)}var za={class:`settings-card`},Ba={class:`passkey-tailnet`},Va=[`href`],Ha={class:`passkey-tailnet-text`},Ua=[`disabled`],Wa={class:`muted`},Ga={class:`muted keys`},Ka={class:`muted`},qa=Object.assign(m({__name:`PasskeyCard`,props:{continueHash:{default:`#/settings?section=security`}},setup(e){let n=e,r=Nn,a=!!window.PublicKeyCredential;async function o(){try{let e=r.value?.enabled?void 0:window.prompt(q(`Bootstrap token (in server logs)`,`Jeton d’amorçage (dans les journaux du serveur)`));if(!r.value?.enabled&&!e)return;let t=await X(`/api/auth/register/options`,{bootstrapToken:e}),n=await jn({optionsJSON:t});await X(`/api/auth/register/verify`,{response:n,name:Ra(),bootstrapToken:e}),await xt(),G(Y(`Lock enabled on this device ✓`))}catch(e){let t=e;G(t.name===`NotAllowedError`?Y(`Registration cancelled`):t.name===`InvalidStateError`?Y(`This device is already registered`):t.message,!0)}Dn()}async function s(){await X(`/api/auth/lock`,{}).catch(()=>{}),Rt()}async function d(){if(await be(Y(`Lock every device? Each one, this one included, will need its passkey again. The keys are kept.`),Y(`Lock all`)))try{await X(`/api/auth/lock-all`,{}),Rt()}catch(e){G(e.message,!0)}}async function f(){if(await be(Y(`Turn off the lock? The app will be open again to anyone who can reach this server.`),Y(`Turn off`))){try{await X(`/api/auth/disable`,{}),Lt(),await xt(),lt().catch(()=>{}),G(Y(`Lock turned off`))}catch(e){G(e.message,!0)}Dn()}}return p(()=>{Dn(),kn()}),(e,p)=>{let m=V;return l(),u(`div`,za,[i(r)&&!i(r).enabled&&(`tailnet`in e?e.tailnet:i(Fn))?(l(),u(_,{key:0},[S(`p`,Ba,y((`tl`in e?e.tl:i(q))(`A passkey only works on the address it was created on: one made here on localhost would not open wherdr on ${(`tailnet`in e?e.tailnet:i(Fn)).name}, the address your phone uses. Enable the lock there.`,`Une passkey ne marche que sur l’adresse où elle a été créée : faite ici sur localhost, elle n’ouvrirait pas wherdr sur ${(`tailnet`in e?e.tailnet:i(Fn)).name}, l’adresse de ton téléphone. Active le verrou là-bas.`)),1),S(`a`,{class:`settings-action passkey-tailnet-go`,href:i(Tn)((`tailnet`in e?e.tailnet:i(Fn)).url,n.continueHash)},[h(m,{name:`i-lucide-lock`}),S(`span`,Ha,[S(`small`,null,y((`tl`in e?e.tl:i(q))(`Continue on`,`Continuer sur`)),1),p[0]||=t(),S(`b`,null,y((`tailnet`in e?e.tailnet:i(Fn)).name),1)]),h(m,{name:`i-lucide-arrow-right`})],8,Va)],64)):i(r)&&!i(r).enabled?(l(),u(_,{key:1},[S(`button`,{type:`button`,class:`settings-action`,disabled:!i(a),onClick:o},[h(m,{name:`i-lucide-lock`}),t(y((`t`in e?e.t:i(Y))(`Enable passkey lock`)),1)],8,Ua),S(`p`,Wa,y(i(a)?(`appConfig`in e?e.appConfig:i(kt)).openNetwork?(`tl`in e?e.tl:i(q))(`wherdr accepts every network here: without a lock, anyone who can reach this machine can control your agents. Passkey: Face ID, Touch ID, Windows Hello…`,`wherdr accepte ici tous les réseaux : sans verrou, toute personne qui joint cette machine peut piloter tes agents. Passkey : Face ID, Touch ID, Windows Hello…`):(`t`in e?e.t:i(Y))(`Optional: wherdr already answers only this computer and your own tailnet devices. If you want one, a passkey adds an automatic lock on each device, with Face ID, Touch ID, Windows Hello…`):(`t`in e?e.t:i(Y))(`This browser does not support passkeys.`)),1)],64)):i(r)?(l(),u(_,{key:2},[S(`p`,Ga,y((`t`in e?e.t:i(Y))(`Registered keys:`))+` `+y(i(r).devices.map(e=>e.name).join(`, `)),1),S(`button`,{type:`button`,class:`settings-action`,onClick:o},[h(m,{name:`i-lucide-plus`}),t(y((`t`in e?e.t:i(Y))(`Add this device`)),1)]),S(`button`,{type:`button`,class:`settings-action`,onClick:s},[h(m,{name:`i-lucide-lock`}),t(y((`t`in e?e.t:i(Y))(`Lock now`)),1)]),S(`button`,{type:`button`,class:`settings-action danger`,onClick:d},[h(m,{name:`i-lucide-shield-alert`}),t(y((`t`in e?e.t:i(Y))(`Lock all devices`)),1)]),S(`button`,{type:`button`,class:`settings-action danger`,onClick:f},[h(m,{name:`i-lucide-lock-open`}),t(y((`t`in e?e.t:i(Y))(`Turn off lock`)),1)]),S(`p`,Ka,y((`hostLabel`in e?e.hostLabel:i(dt))?(`tl`in e?e.tl:i(q))(`Lost or stolen device: Lock all devices. Lost key: delete data/auth.json on ${`hostLabel`in e?e.hostLabel:i(dt)}.`,`Appareil perdu ou volé : Verrouiller tous les appareils. Clé perdue : supprimer data/auth.json sur ${`hostLabel`in e?e.hostLabel:i(dt)}.`):(`tl`in e?e.tl:i(q))(`Lost or stolen device: Lock all devices. Lost key: delete data/auth.json on the server.`,`Appareil perdu ou volé : Verrouiller tous les appareils. Clé perdue : supprimer data/auth.json sur le serveur.`)),1)],64)):c(``,!0)])}}}),{__name:`PasskeyCard`}),Ja=[`appearance`,`conversation`,`terminal`,`agents`,`plugins`,`phone`,`notifications`,`security`,`shortcuts`,`advanced`,`about`];function Ya(e){let t=e.historyBack;return!e.desk&&e.section?t===`/settings`?`history`:`list`:typeof t==`string`&&t.startsWith(`/`)&&!t.startsWith(`/settings`)?`history`:`home`}var Xa={id:`settings`,class:`view settings-view`},Za={class:`top bar settings-top`},Qa=[`aria-label`],$a=[`aria-current`,`onClick`],eo={class:`settings-section-title`},to={class:`settings-section`},no={class:`settings-group`},ro=[`aria-expanded`],io={class:`theme-sw`},ao={class:`theme-name`},oo=[`aria-label`],so=[`aria-label`],co={class:`theme-section-title`},lo={class:`theme-grid`},uo=[`aria-checked`],fo={class:`theme-sw`},po={class:`theme-name`},mo=[`aria-checked`,`onClick`],ho={class:`theme-sw`},go={class:`theme-name`},_o={key:0},vo={key:1},yo={class:`muted settings-hint`},bo={class:`settings-group`},xo={class:`muted settings-hint`},So={class:`settings-group`},Co={id:`home-group-label`},wo={class:`settings-toggle`},To={class:`settings-toggle`},Eo={class:`settings-toggle`},Do={class:`settings-toggle`},Oo={class:`settings-toggle`},ko={class:`settings-toggle`},Ao={class:`settings-group`},jo={class:`muted settings-hint`},Mo={class:`eyebrow settings-subhead`},No={class:`settings-group`},Po={key:0,class:`settings-toggle`},Fo={class:`muted settings-hint`},Io={class:`settings-group settings-width`},Lo={class:`muted settings-hint`},Ro={class:`settings-section`},zo={class:`settings-group`},Bo={class:`muted settings-hint`},Vo={class:`settings-group settings-typing`},Ho={class:`muted settings-hint`},Uo={class:`settings-group`},Wo={class:`muted settings-lead`},Go={class:`muted settings-hint`},Ko={class:`settings-group`},qo={class:`muted settings-lead`},Jo={class:`muted settings-hint`},Yo={class:`settings-section`},Xo={class:`settings-group`},Zo={class:`settings-toggle`},Qo={class:`settings-group`},$o={class:`settings-stepper`},es=[`aria-label`],ts=[`aria-label`],ns={class:`settings-group`},rs={class:`settings-toggle`},is={class:`settings-group`},as={class:`settings-toggle`},os={class:`settings-group settings-renderer`},ss={class:`muted settings-hint`},cs={class:`settings-renderer-status`,role:`status`},ls={class:`settings-section`},us={class:`settings-group`},ds={class:`muted agent-pref-intro`},fs={key:0,class:`agent-pref-list`},ps={key:0},ms=[`checked`,`onChange`],hs={key:1,class:`muted agent-pref-intro`},gs={class:`muted agent-pref-note`},_s={id:`claude-quotas`,class:`settings-group`},vs={class:`settings-section`},ys={class:`settings-group`,"data-testid":`notification-quiet`},bs={class:`settings-toggle quiet-toggle`},xs={class:`notify-caption`},Ss={key:0,class:`muted notify-hint`},Cs={class:`notify-caption`},ws={class:`settings-group`},Ts={class:`settings-section`},Es={class:`settings-section`},Ds={class:`settings-section`},Os={class:`settings-group`},ks={key:0,class:`muted settings-hint`},As={class:`settings-group`},js={key:0,class:`settings-group`},Ms={class:`muted settings-hint`},Ns={key:0,class:`muted settings-hint`},Ps={key:0,class:`settings-section`},Fs={class:`settings-section`},Is={class:`settings-group`},Ls={class:`settings-toggle`},Rs={class:`muted settings-hint`},zs={class:`mono paste-journal`,style:{"white-space":`pre-wrap`,"overflow-wrap":`anywhere`,"font-size":`11px`}},Bs={class:`settings-section`},Vs={class:`settings-group`},Hs={class:`settings-version`},Us={key:1,class:`muted settings-hint`};function Ws(){ft()}var Gs=Object.assign(m({__name:`SettingsView`,setup(n){let r=dn.version,a=Je(),f=qe();T(()=>[f.path,f.query.section],()=>{(f.query.section===`desktop`||f.path===`/settings/desktop`)&&a.replace({path:`/settings`,query:{...f.query,section:`conversation`}})},{immediate:!0});let m=e(()=>Ja.includes(String(f.query.section))?f.query.section:null),g={appearance:`i-lucide-palette`,conversation:`i-lucide-message-square`,terminal:`i-lucide-square-terminal`,agents:`i-lucide-bot`,plugins:`i-lucide-puzzle`,phone:`i-lucide-smartphone`,notifications:`i-lucide-bell`,security:`i-lucide-lock`,shortcuts:`i-lucide-keyboard`,advanced:`i-lucide-bug`,about:`i-lucide-info`},w={appearance:`Appearance`,conversation:`Conversation`,terminal:`Terminal`,agents:`Agents`,plugins:`Plugins`,phone:`Phone`,notifications:`Notifications`,security:`Security`,shortcuts:`Shortcuts`,advanced:`Advanced`,about:`About`},E=e(()=>Ja.filter(e=>e!==`shortcuts`||tn.value&&!Ft.value).map(e=>({id:e,label:Y(w[e]),icon:g[e]}))),D=e(()=>m.value&&E.value.some(e=>e.id===m.value)?m.value:tn.value?`appearance`:null),k=e(()=>E.value.find(e=>e.id===D.value)?.label||Y(`Settings`)),A=s(null);T(m,()=>x(()=>{A.value&&(A.value.scrollTop=0)}));function ee(e){if(e===m.value)return;let t={path:`/settings`,query:{section:e}};tn.value?a.replace(t):a.push(t)}function M(){let e=Ya({desk:tn.value,section:m.value,historyBack:history.state?.back});e===`list`?a.replace(`/settings`):e===`history`?a.back():Ye(`/`,{replace:!0})}p(async()=>{if(tn.value||typeof history.state?.back==`string`)return;let e=f.fullPath;await a.replace(`/`),await a.push(e)});let N=$t,te=Vt,P=Ot,F=$e,re=mt,I=e(()=>[{value:`machine`,label:Y(`Machine`)},{value:`state`,label:Y(`State`)}]),ie=zt,ae=Jt,R=nt,z=Kt,oe=qt,ce=e(()=>[{label:q(`Tokens, native field`,`Jetons, champ natif`),description:q(`Each “↳ … —” line is drawn as a token in the usual field. Typing, dictation and autocorrect unchanged. Default.`,`Chaque ligne « ↳ … — » est dessinée en jeton dans le champ habituel. Saisie, dictée et correction auto inchangées. Par défaut.`),value:`native`},{label:q(`Plain text`,`Texte simple`),description:q(`The same “↳ … —” lines, shown as plain text. A fallback if the tokens misbehave.`,`Les mêmes lignes « ↳ … — », affichées en texte simple. Un secours si les jetons se comportent mal.`),value:`lines`}]),le=Xt,de=e(()=>[{label:q(`Icon`,`Icône`),description:q(`A small ↳ after each question, and a grey one after each point (on hover on a computer). Default.`,`Un petit ↳ après chaque question, et un gris après chaque point (au survol sur ordinateur). Par défaut.`),value:`icon`},{label:q(`Tap the text`,`Toucher le texte`),description:q(`No button: a question is underlined, tap it. A point: click it on a computer; on a phone, tap it, then “↳ Discuss”.`,`Aucun bouton : une question est soulignée, touche-la. Un point : clique-le sur ordinateur ; sur téléphone, touche-le, puis « ↳ Discuter ».`),value:`text`},{label:q(`List under the message`,`Liste sous le message`),description:q(`A number after each question and the questions listed under the message; “+ Quote a point”, then the point.`,`Un numéro après chaque question et les questions listées sous le message ; « + Citer un point », puis le point.`),value:`list`}]),fe=e({get:()=>et.value,set:e=>{Gt.value=e}}),pe=e(()=>[{label:Y(`Off`),description:Y(`The reply appears at once.`),value:`off`},{label:Y(`Fast`),description:Y(`Original speed · 0.5 to 2 s.`),value:`fast`},{label:Y(`Medium`),description:Y(`Twice as slow · 1 to 4 s.`),value:`medium`},{label:Y(`Slow`),description:Y(`Three times as slow · 1.5 to 6 s.`),value:`slow`}]),me=St,he=Nt,ge=Dt,_e=e(()=>[{label:Y(`Normal`),description:Y(`760 px column · terminal fitted to width.`),value:`normal`},{label:Y(`Wide`),description:Y(`Up to 1100 px · terminal fitted to width.`),value:`wide`},{label:Y(`Full width`),description:Y(`The whole width, terminal included.`),value:`full`}]),ve=Mt,ye=[{label:Y(`Conversation`),description:Y(`Read the transcript first.`),value:`chat`},{label:Y(`Terminal`),description:Y(`Type straight into the pane.`),value:`term`}],be=Zt,xe=e(()=>[{label:Y(`Remaining`),description:Y(`What is left in each window, like Codex.`),value:`left`},{label:Y(`Used`),description:Y(`What has been used, like Claude.`),value:`used`}]),Se=De,Ce=e(()=>[{label:Y(`Border only`),description:Y(`A second color glides slowly around the border.`),value:`border`},{label:Y(`Halo`),description:Y(`The same, with a faint glow around the field.`),value:`halo`},{label:Y(`None`),description:Y(`Plain 1 px border, no animation.`),value:`off`}]),we=ke,Te=ne,Ee=e(()=>[{label:`wherdr grid`,description:Y(`Dotted grid with light packets, like wherdr.dev.`),value:`wherdr`},{label:`herdr grid`,description:Y(`Flat line grid, like herdr.dev.`),value:`herdr`}]),H=e(()=>kt.value.machines?.filter(e=>e.local||!!e.home&&(wt(e.key)?.status===`online`||!wt(e.key)&&e.online))||[{key:``,label:dt.value||Y(`This machine`),kinds:kt.value.kinds}]),Oe=e(()=>[...new Set(H.value.flatMap(e=>e.kinds||[]))]);function Ae(e){return!Wt.value.includes(e)}function je(e,t){Wt.value=t?Wt.value.filter(t=>t!==e):[...Wt.value,e]}function Me(e){let t=H.value.filter(t=>t.kinds.includes(e));return t.length===H.value.length?``:t.map(e=>e.label||Y(`This machine`)).join(`, `)}let Ne=yt,Pe=Ct,Fe=s(`all`),Ie=s(`manual`),Le=e(()=>[{label:q(`This device`,`Cet appareil`),value:`device`,disabled:!Ne.value},{label:q(`All devices`,`Tous les appareils`),value:`all`}]),Re=[{label:q(`1 hour`,`1 heure`),value:`hour`},{label:q(`Until tomorrow morning (8 am)`,`Jusqu’à demain matin (8 h)`),value:`morning`},{label:q(`Until turned back on`,`Jusqu’à réactivation`),value:`manual`}];T(tt,e=>{if(!e)return;Fe.value=e.scope;let t=e.quiet.until===null?null:e.quiet.until-Date.now();Ie.value=t===null?`manual`:t<=36e5?`hour`:`morning`},{immediate:!0});async function U(e){try{let t=tt.value?.scope;e&&await at(Fe.value,!0,ct(Ie.value)),t&&(!e||t!==Fe.value)&&await at(t,!1)}catch(e){G(e.message,!0)}}let W=e({get:()=>!!tt.value,set:e=>{U(e)}});function Be(e){Fe.value=e,W.value&&U(!0)}function Ve(e){Ie.value=e,W.value&&U(!0)}let He=e(()=>{let e=tt.value;if(!e)return``;let t=e.scope===`all`?q(`all devices`,`tous les appareils`):q(`this device`,`cet appareil`),n=An(e.quiet,Tt.value);if(n.kind===`manual`)return q(`Silenced on ${t} until turned back on.`,`Silence sur ${t} jusqu’à réactivation.`);let r=new Date(n.at).toLocaleTimeString(`en`,{hour:`2-digit`,minute:`2-digit`});if(n.kind===`today`)return q(`Silenced on ${t} until ${r}.`,`Silence sur ${t} jusqu’à ${r}.`);if(n.kind===`tomorrow`)return q(`Silenced on ${t} until tomorrow ${r}.`,`Silence sur ${t} jusqu’à demain ${r}.`);let i=new Date(n.at).toLocaleDateString(`en`,{weekday:`short`,day:`numeric`,month:`short`});return q(`Silenced on ${t} until ${i} ${r}.`,`Silence sur ${t} jusqu’au ${i} ${r}.`)}),Ue=e=>e===`agents`?q(`Agents`,`Agents`):e===`herdr`?`Herdr`:`wherdr`,We=e=>[e.c.bg,e.c.surface,e.c.line,e.c.text,e.c.accent,e.c.blue,e.c.rose,e.c.teal],Ge=e(()=>{let e=kt.value.herdrTheme;return e?e.autoSwitch?`${e.darkName||`catppuccin`} / ${e.lightName||`catppuccin-latte`}`:e.name||`catppuccin`:null}),Xe=e(()=>ue(se(kt.value.herdrTheme,!1).id)),Ze=s(!1),Qe=e(()=>B.value===`follow`?Xe.value:ue(B.value)),it=e(()=>B.value===`follow`?`${Y(`Follow Herdr`)}${Xe.value?` · ${Xe.value.label}`:``}`:Qe.value?Qe.value.label:B.value);function ot(e){B.value=e,Z()}let st=e=>{rt.value=Math.max(8,Math.min(20,rt.value+e))},lt=[{label:`WebGL`,value:`webgl`},{label:`HTML`,value:`html`}],ut=e(()=>en.value===`html-fallback`?Y(`Active rendering: HTML (WebGL unavailable)`):en.value===`html`?Y(`Active rendering: HTML`):Y(`Active rendering: WebGL`));T(me,Yt);let ft=Nn,pt=Dn,ht=e(()=>Bt.map(e=>({label:e===1?Y(`1 day`):e===365?Y(`1 year`):q(`${e} days`,`${e} jours`),value:e}))),K=e({get:()=>ft.value?.maxSessionDays??7,set:async e=>{try{await X(`/api/auth/max-session`,{days:e}),await It()}catch(e){G(e.message,!0)}pt()}}),_t=e(()=>{let e=ft.value;if(!e?.deadline)return``;let t=new Date(e.deadline+Date.now()-(e.now??Date.now())).toLocaleString(`en-GB`,{weekday:`short`,day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`});return q(`This device asks for the passkey again at the first opening after ${t}.`,`Cet appareil redemandera la clé d’accès à la première ouverture après le ${t}.`)});return p(bn),p(()=>{Yt(),vt(),Pe().then(Et),pt()}),(e,n)=>{let a=ze,s=V,f=pr,p=gn,m=jr,g=Rr,x=ni,w=vi,T=Pn,ne=Fi,se=oa,ue=Mn,H=pa,De=Pa,ke=wn,Pe=Sn,U=La,qe=qa,Je=En,Ye=On;return l(),u(`section`,Xa,[S(`header`,Za,[h(a,{icon:`i-lucide-chevron-left`,color:`neutral`,variant:`ghost`,size:`lg`,class:`icon-btn`,"aria-label":(`t`in e?e.t:i(Y))(`Back`),onClick:M},null,8,[`aria-label`]),S(`h2`,null,y((`desk`in e?e.desk:i(tn))?(`t`in e?e.t:i(Y))(`Settings`):i(k)),1)]),S(`div`,{class:v([`settings-layout`,{"section-open":i(D)}])},[S(`nav`,{class:`settings-nav`,"aria-label":(`t`in e?e.t:i(Y))(`Settings sections`)},[(l(!0),u(_,null,d(i(E),e=>(l(),u(`button`,{key:e.id,type:`button`,class:v([`settings-nav-item`,{selected:i(D)===e.id}]),"aria-current":i(D)===e.id?`page`:void 0,onClick:t=>ee(e.id)},[h(s,{name:e.icon},null,8,[`name`]),S(`span`,null,y(e.label),1),h(s,{name:`i-lucide-chevron-right`,class:`settings-nav-arrow`})],10,$a))),128))],8,Qa),C(S(`div`,{ref_key:`body`,ref:A,class:`settings-body`},[S(`h2`,eo,y(i(k)),1),C(S(`div`,to,[S(`div`,no,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Theme`)),1),S(`button`,{type:`button`,class:`theme-opt theme-current`,"aria-expanded":i(Ze),onClick:n[0]||=e=>Ze.value=!i(Ze)},[S(`span`,io,[(l(!0),u(_,null,d(i(Qe)?We(i(Qe)):[],(e,t)=>(l(),u(`i`,{key:t,style:b({background:e})},null,4))),128))]),S(`span`,ao,[t(y(i(it)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(i(Ze)?`Hide themes`:`Change theme`)),1)]),h(s,{name:i(Ze)?`i-lucide-chevron-up`:`i-lucide-chevron-down`,class:`theme-check`},null,8,[`name`])],8,ro),C(S(`div`,{class:`theme-list`,role:`radiogroup`,"aria-label":(`t`in e?e.t:i(Y))(`Theme`)},[(l(!0),u(_,null,d((`themeSections`in e?e.themeSections:i(Ke))(),r=>(l(),u(`section`,{key:r.group,class:`theme-section`,"aria-label":Ue(r.group)},[S(`h4`,co,y(Ue(r.group)),1),S(`div`,lo,[r.group===`herdr`?(l(),u(`button`,{key:0,type:`button`,role:`radio`,class:v([`theme-opt`,{on:(`themeChoice`in e?e.themeChoice:i(B))===(`FOLLOW_HERDR`in e?e.FOLLOW_HERDR:i(L))}]),"aria-checked":(`themeChoice`in e?e.themeChoice:i(B))===(`FOLLOW_HERDR`in e?e.FOLLOW_HERDR:i(L)),onClick:n[1]||=t=>ot(`FOLLOW_HERDR`in e?e.FOLLOW_HERDR:i(`follow`))},[S(`span`,fo,[(l(!0),u(_,null,d(i(Xe)?We(i(Xe)):[],(e,t)=>(l(),u(`i`,{key:t,style:b({background:e})},null,4))),128))]),S(`span`,po,[t(y((`t`in e?e.t:i(Y))(`Follow Herdr`)),1),S(`small`,null,y(i(Ge)?`config.toml · ${i(Ge)}`:(`t`in e?e.t:i(Y))(`config.toml not found`)),1)]),(`themeChoice`in e?e.themeChoice:i(B))===(`FOLLOW_HERDR`in e?e.FOLLOW_HERDR:i(`follow`))?(l(),o(s,{key:0,name:`i-lucide-check`,class:`theme-check`})):c(``,!0)],10,uo)):c(``,!0),(l(!0),u(_,null,d(r.themes,n=>(l(),u(`button`,{key:n.id,type:`button`,role:`radio`,class:v([`theme-opt`,{on:(`themeChoice`in e?e.themeChoice:i(B))===n.id}]),"aria-checked":(`themeChoice`in e?e.themeChoice:i(B))===n.id,onClick:e=>ot(n.id)},[S(`span`,ho,[(l(!0),u(_,null,d(We(n),(e,t)=>(l(),u(`i`,{key:t,style:b({background:e})},null,4))),128))]),S(`span`,go,[t(y(n.label),1),n.id===(`DEFAULT_THEME`in e?e.DEFAULT_THEME:i(`wherdr-titanium`))?(l(),u(`small`,_o,y((`t`in e?e.t:i(Y))(`default`)),1)):n.light?(l(),u(`small`,vo,y((`t`in e?e.t:i(Y))(`light`)),1)):c(``,!0)]),(`themeChoice`in e?e.themeChoice:i(B))===n.id?(l(),o(s,{key:0,name:`i-lucide-check`,class:`theme-check`})):c(``,!0)],10,mo))),128))])],8,so))),128))],8,oo),[[j,i(Ze)]])]),S(`p`,yo,y((`t`in e?e.t:i(Y))(`The theme follows you on every device.`)),1),S(`div`,bo,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Message field border on focus`)),1),h(f,{modelValue:i(Se),"onUpdate:modelValue":n[2]||=e=>O(Se)?Se.value=e:null,items:i(Ce),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`,`items`]),S(`p`,xo,y((`t`in e?e.t:i(Y))(`Also on omp’s running actions (border only). Frozen when the system asks for reduced motion. Follows you on every device.`)),1)]),S(`div`,So,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Home screen`)),1),S(`h4`,Co,y((`t`in e?e.t:i(Y))(`Group by`)),1),h(f,{modelValue:i(F),"onUpdate:modelValue":n[3]||=e=>O(F)?F.value=e:null,items:i(I),"aria-labelledby":`home-group-label`,variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`,`items`]),S(`label`,wo,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Individual agents`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`List standalone agents separately. Board tasks stay grouped. Follows you on every device.`)),1)]),h(p,{modelValue:i(re),"onUpdate:modelValue":n[4]||=e=>O(re)?re.value=e:null,"aria-label":(`t`in e?e.t:i(Y))(`Individual agents`),color:`success`,size:`xl`},null,8,[`modelValue`,`aria-label`])]),S(`label`,To,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Compact list`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Tasks: one line in Compact, two in Normal with current activity and relevant labels. Details stay in the task sheet. Follows you on every device.`)),1)]),h(p,{modelValue:i(ie),"onUpdate:modelValue":n[5]||=e=>O(ie)?ie.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])]),S(`label`,Eo,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Reorder automatically`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`In Ready, show unread agents before read ones. Follows you on every device.`)),1)]),h(p,{modelValue:i(ae),"onUpdate:modelValue":n[6]||=e=>O(ae)?ae.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])]),S(`label`,Do,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Show terminals`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Show terminal spaces in the list, filed under Ready.`)),1)]),h(p,{modelValue:i(N),"onUpdate:modelValue":n[7]||=e=>O(N)?N.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])]),S(`label`,Oo,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Show counters`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Show agent counters on the home screen.`)),1)]),h(p,{modelValue:i(te),"onUpdate:modelValue":n[8]||=e=>O(te)?te.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])]),S(`label`,ko,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Show quotas`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Show Claude and Codex quotas on the home screen.`)),1)]),h(p,{modelValue:i(P),"onUpdate:modelValue":n[9]||=e=>O(P)?P.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])]),h(m)]),S(`div`,Ao,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Quotas`)),1),h(f,{modelValue:i(be),"onUpdate:modelValue":n[10]||=e=>O(be)?be.value=e:null,items:i(xe),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`,`items`]),S(`p`,jo,y((`t`in e?e.t:i(Y))(`The color always flags a nearly exhausted quota. Follows you on every device.`)),1)]),(`desk`in e?e.desk:i(tn))?(l(),u(_,{key:0},[S(`div`,Mo,[S(`span`,null,y((`t`in e?e.t:i(Y))(`Desktop`)),1)]),S(`div`,No,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Background`)),1),h(f,{modelValue:i(we),"onUpdate:modelValue":n[11]||=e=>O(we)?we.value=e:null,items:i(Ee),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`,`items`]),i(we)===`wherdr`?(l(),u(`label`,Po,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Animated packets`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Small glowing squares running along the wherdr grid.`)),1)]),h(p,{modelValue:i(Te),"onUpdate:modelValue":n[12]||=e=>O(Te)?Te.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])])):c(``,!0),S(`p`,Fo,y((`t`in e?e.t:i(Y))(`In the margins of the conversation. Still when the system asks for reduced motion. Follows you on every device.`)),1)]),S(`div`,Io,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Content width`)),1),h(f,{modelValue:i(ge),"onUpdate:modelValue":n[13]||=e=>O(ge)?ge.value=e:null,items:i(_e),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`,`items`]),S(`p`,Lo,y((`t`in e?e.t:i(Y))(`Conversation, terminal, settings and other content. Saved on this device.`)),1)])],64)):c(``,!0)],512),[[j,i(D)===`appearance`]]),C(S(`div`,Ro,[S(`div`,zo,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Default pane view`)),1),h(f,{modelValue:i(ve),"onUpdate:modelValue":n[14]||=e=>O(ve)?ve.value=e:null,items:ye,variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`]),S(`p`,Bo,y((`t`in e?e.t:i(Y))(`What an agent pane opens on. A pane you switched to Terminal stays there. Follows you on every device.`)),1)]),S(`div`,Vo,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Typewriter`)),1),h(f,{modelValue:i(fe),"onUpdate:modelValue":n[15]||=e=>O(fe)?fe.value=e:null,items:i(pe),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`,disabled:`reducedMotion`in e?e.reducedMotion:i(jt)},null,8,[`modelValue`,`items`,`disabled`]),S(`p`,Ho,y((`t`in e?e.t:i(Y))((`reducedMotion`in e?e.reducedMotion:i(jt))?`Off: the system asks for reduced motion.`:`Only new replies are animated; history appears at once. Tap a reply while it types to show it in full. Follows you on every device.`)),1),S(`label`,{class:v([`settings-toggle encrypted-toggle`,{"is-disabled":!(`typewriterActive`in e?e.typewriterActive:i(gt))}])},[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Encrypted text`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Writing advances in glyphs, then the text decrypts behind it.`)),1)]),h(p,{modelValue:i(R),"onUpdate:modelValue":n[16]||=e=>O(R)?R.value=e:null,disabled:!(`typewriterActive`in e?e.typewriterActive:i(gt)),color:`success`,size:`xl`},null,8,[`modelValue`,`disabled`])],2),i(D)===`conversation`?(l(),o(g,{key:0})):c(``,!0)]),S(`div`,Uo,[S(`h3`,null,y((`tl`in e?e.tl:i(q))(`Reply style`,`Style de réponse`)),1),S(`p`,Wo,y((`tl`in e?e.tl:i(q))(`Each question an agent asks, and each point it lists, can be quoted in the field to answer them one by one. Choose how they offer it.`,`Chaque question d’un agent, et chaque point qu’il liste, peut être cité dans le champ pour y répondre un par un. Choisis comment ils le proposent.`)),1),h(f,{modelValue:i(le),"onUpdate:modelValue":n[17]||=e=>O(le)?le.value=e:null,items:i(de),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio reply-style-radio`},null,8,[`modelValue`,`items`]),S(`p`,Go,y((`tl`in e?e.tl:i(q))(`Follows you on every device.`,`Te suit sur tous tes appareils.`)),1)]),S(`div`,Ko,[S(`h3`,null,y((`tl`in e?e.tl:i(q))(`Quoted replies`,`Réponses citées`)),1),S(`p`,qo,y((`tl`in e?e.tl:i(q))(`Answer several questions, passages or decisions of an agent in one message: each one goes into the field as a “↳ … —” line that names the message and quotes it, your answer below. Choose how the field shows these lines; the message sent is the same.`,`Réponds à plusieurs questions, passages ou décisions d’un agent dans un seul message : chacun entre dans le champ sous la forme d’une ligne « ↳ … — » qui nomme le message et le cite, ta réponse en dessous. Choisis comment le champ affiche ces lignes ; le message envoyé est le même.`)),1),i(D)===`conversation`?(l(),o(x,{key:0,mode:i(oe)},null,8,[`mode`])):c(``,!0),h(f,{modelValue:i(oe),"onUpdate:modelValue":n[18]||=e=>O(oe)?oe.value=e:null,items:i(ce),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio quote-mode-radio`},null,8,[`modelValue`,`items`]),S(`p`,Jo,y((`tl`in e?e.tl:i(q))(`Saved on this device.`,`Enregistré sur cet appareil.`)),1)])],512),[[j,i(D)===`conversation`]]),C(S(`div`,Yo,[S(`div`,Xo,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Home screen`)),1),S(`label`,Zo,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Show terminals`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Show terminal spaces in the list, filed under Ready.`)),1)]),h(p,{modelValue:i(N),"onUpdate:modelValue":n[19]||=e=>O(N)?N.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])])]),S(`div`,Qo,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Text`)),1),S(`div`,$o,[S(`span`,null,y((`t`in e?e.t:i(Y))(`Terminal text size`)),1),S(`div`,null,[S(`button`,{type:`button`,"aria-label":(`t`in e?e.t:i(Y))(`Decrease text size`),onClick:n[20]||=e=>st(-1)},`A−`,8,es),S(`output`,null,y(`fontSize`in e?e.fontSize:i(rt)),1),S(`button`,{type:`button`,"aria-label":(`t`in e?e.t:i(Y))(`Increase text size`),onClick:n[21]||=e=>st(1)},`A+`,8,ts)])])]),S(`div`,ns,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Clipboard`)),1),S(`label`,rs,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Agent copies`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Text an agent copies in the terminal (OSC 52) goes to this device’s clipboard. Never read from it. Saved on this device.`)),1)]),h(p,{modelValue:i(z),"onUpdate:modelValue":n[22]||=e=>O(z)?z.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])])]),S(`div`,is,[S(`label`,as,[S(`span`,null,[S(`b`,null,y((`t`in e?e.t:i(Y))(`Smooth touch scrolling (beta)`)),1),S(`small`,null,y((`t`in e?e.t:i(Y))(`Experimental finger tracking and inertia. Saved on this device.`)),1)]),h(p,{modelValue:i(he),"onUpdate:modelValue":n[23]||=e=>O(he)?he.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])])]),S(`div`,os,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Terminal rendering`)),1),h(f,{modelValue:i(me),"onUpdate:modelValue":n[24]||=e=>O(me)?me.value=e:null,items:lt,variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`]),S(`p`,ss,y((`t`in e?e.t:i(Y))(`Rendering is saved on this device.`)),1),S(`p`,cs,y(i(ut)),1)]),h(w)],512),[[j,i(D)===`terminal`]]),C(S(`div`,ls,[S(`div`,us,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Offered agents`)),1),S(`p`,ds,y((`t`in e?e.t:i(Y))(`Agents offered wherever an agent is chosen. Terminal is always available.`)),1),i(Oe).length?(l(),u(`div`,fs,[(l(!0),u(_,null,d(i(Oe),t=>(l(),u(`label`,{key:t,class:`settings-toggle`},[S(`span`,null,[S(`b`,null,y((`kindLabel`in e?e.kindLabel:i(At))(t)),1),Me(t)?(l(),u(`small`,ps,y(Me(t)),1)):c(``,!0)]),S(`input`,{class:`agent-pref-check`,type:`checkbox`,checked:Ae(t),onChange:e=>je(t,e.target.checked)},null,40,ms)]))),128))])):(l(),u(`p`,hs,y((`t`in e?e.t:i(Y))(`No agents installed on online machines.`)),1)),S(`p`,gs,y((`t`in e?e.t:i(Y))(`Choices follow you on every device.`)),1)]),S(`div`,_s,[S(`h3`,null,y((`tl`in e?e.tl:i(q))(`Claude quotas`,`Quotas Claude`)),1),i(D)===`agents`?(l(),o(T,{key:0})):c(``,!0)]),h(ne)],512),[[j,i(D)===`agents`]]),C(S(`div`,vs,[S(`div`,ys,[S(`label`,bs,[S(`span`,null,[S(`b`,null,[h(s,{name:i(W)?`i-lucide-bell-off`:`i-lucide-bell`},null,8,[`name`]),t(y((`tl`in e?e.tl:i(q))(`Do not disturb`,`Silence`)),1)]),S(`small`,null,y((`tl`in e?e.tl:i(q))(`Turns off every notification, no exceptions: the rules below are ignored.`,`Coupe toutes les notifications, sans exception : les réglages ci-dessous sont ignorés.`)),1)]),h(p,{modelValue:i(W),"onUpdate:modelValue":n[25]||=e=>O(W)?W.value=e:null,color:`success`,size:`xl`},null,8,[`modelValue`])]),S(`p`,xs,y((`tl`in e?e.tl:i(q))(`Silence on`,`Couper pour`)),1),h(f,{"model-value":i(Fe),items:i(Le),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`,"onUpdate:modelValue":n[26]||=e=>Be(e)},null,8,[`model-value`,`items`]),i(Ne)?c(``,!0):(l(),u(`p`,Ss,y((`tl`in e?e.tl:i(q))(`“This device” needs notifications turned on below.`,`« Cet appareil » demande d’activer les notifications ci-dessous.`)),1)),S(`p`,Cs,y((`tl`in e?e.tl:i(q))(`Duration`,`Durée`)),1),h(f,{"model-value":i(Ie),items:Re,variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`,"onUpdate:modelValue":n[27]||=e=>Ve(e)},null,8,[`model-value`]),S(`p`,{class:v([`muted notify-hint`,{"quiet-end":i(W)}])},y(i(He)||(`tl`in e?e.tl:i(q))(`Notifications come back on by themselves at the end.`,`Retour automatique à la normale à la fin de la durée choisie.`)),3)]),h(se),S(`div`,ws,[S(`h3`,null,y((`tl`in e?e.tl:i(q))(`This device’s notifications`,`Notifications de cet appareil`)),1),h(ue,{detailed:``}),i(D)===`notifications`?(l(),o(H,{key:0})):c(``,!0)])],512),[[j,i(D)===`notifications`]]),C(S(`div`,Ts,[h(De,{machines:(`appConfig`in e?e.appConfig:i(kt)).machines||[{key:``,label:(`hostLabel`in e?e.hostLabel:i(dt))||(`t`in e?e.t:i(Y))(`This machine`),local:!0,home:``,dirs:[],online:!0,kinds:[]}]},null,8,[`machines`])],512),[[j,i(D)===`plugins`]]),C(S(`div`,Es,[h(ke,{active:i(D)===`phone`},null,8,[`active`])],512),[[j,i(D)===`phone`]]),C(S(`div`,Ds,[S(`div`,Os,[S(`h3`,null,y((`tl`in e?e.tl:i(q))(`Network access`,`Accès réseau`)),1),h(Pe),(`appConfig`in e?e.appConfig:i(kt)).openNetwork?c(``,!0):(l(),u(`p`,ks,y((`tl`in e?e.tl:i(q))(`wherdr only answers this computer (localhost) and your own tailnet devices. A device on another network (a Wi-Fi, a LAN, the Internet) is refused, even with the address and the port, and so are other people's devices on your tailnet. A proxy or tunnel you run on this computer counts as this computer.`,`wherdr ne répond qu’à cet ordinateur (localhost) et à tes propres appareils du tailnet. Un appareil sur un autre réseau (un Wi-Fi, un réseau local, Internet) est refusé, même avec l’adresse et le port, comme les appareils des autres personnes de ton tailnet. Un proxy ou un tunnel que tu fais tourner sur cet ordinateur compte comme cet ordinateur.`)),1)),h(U)]),S(`div`,As,[S(`h3`,null,y((`tl`in e?e.tl:i(q))(`Passkey · optional`,`Passkey · facultative`)),1),h(qe)]),i(ft)?.enabled?(l(),u(`div`,js,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Ask for the passkey again after`)),1),h(f,{modelValue:i(K),"onUpdate:modelValue":n[28]||=e=>O(K)?K.value=e:null,items:i(ht),variant:`table`,indicator:`end`,color:`primary`,size:`lg`,class:`settings-radio`},null,8,[`modelValue`,`items`]),S(`p`,Ms,y((`t`in e?e.t:i(Y))(`Counted from the last passkey unlock, used or not, for every device. Never in the middle of use: at the next opening of the app.`)),1),i(_t)?(l(),u(`p`,Ns,y(i(_t)),1)):c(``,!0)])):c(``,!0)],512),[[j,i(D)===`security`]]),(`desk`in e?e.desk:i(tn))&&!(`coarse`in e?e.coarse:i(Ft))?C((l(),u(`div`,Ps,[h(Je)],512)),[[j,i(D)===`shortcuts`]]):c(``,!0),C(S(`div`,Fs,[S(`div`,Is,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Paste journal`)),1),S(`label`,Ls,[S(`span`,null,y((`t`in e?e.t:i(Y))(`Paste journal`)),1),h(p,{"model-value":i(Hn),"onUpdate:modelValue":i(Wn)},null,8,[`model-value`,`onUpdate:modelValue`])]),S(`p`,Rs,y((`t`in e?e.t:i(Y))(`Records the last 50 paste events on this device, without text content. Turning it off clears the journal.`)),1),S(`pre`,zs,y(JSON.stringify(i(In),null,2)),1)])],512),[[j,i(D)===`advanced`]]),C(S(`div`,Bs,[S(`div`,Vs,[S(`h3`,null,y((`t`in e?e.t:i(Y))(`Application`)),1),S(`p`,Hs,`wherdr · v`+y(i(r)),1),(`updateInfo`in e?e.updateInfo:i(xn))?.latest?(l(),o(Ye,{key:0,info:`updateInfo`in e?e.updateInfo:i(xn)},null,8,[`info`])):(`updateInfo`in e?e.updateInfo:i(xn))?.checked?(l(),u(`p`,Us,y((`t`in e?e.t:i(Y))(`This is the latest version.`)),1)):c(``,!0),S(`button`,{type:`button`,class:`settings-action solo`,onClick:Ws},[h(s,{name:`i-lucide-refresh-cw`}),t(y((`t`in e?e.t:i(Y))(`Reload app`)),1)]),S(`button`,{type:`button`,class:`settings-action solo`,onClick:n[29]||=(...t)=>(`openOnboarding`in e?e.openOnboarding:i(Cn))&&(`openOnboarding`in e?e.openOnboarding:i(Cn))(...t)},[h(s,{name:`i-lucide-compass`}),t(y((`tl`in e?e.tl:i(q))(`Setup guide`,`Guide de démarrage`)),1)])])],512),[[j,i(D)===`about`]])],512),[[j,i(D)]])],2)])}}}),{__name:`SettingsView`}),Ks=m({__name:`settings`,setup(e){return p(()=>{Qt.value=null}),(e,t)=>{let n=Gs;return l(),o(n)}}});export{Ks as default};